Webaholic - Blog


Die Tücken der KI

26. Oktober 2008

Jaja - meist hört man Computerspieler über die dumme KI mosern. Hier und da stellen sich die Gegner ja auch wirklich zu doof an.  Es ist aber auch wirklich eine Herausforderung eine KI für einen Ego-Shooter zu bauen… es sei denn natürlich man programmiert einen sogenannten Camper ;-)
Ganz anders schaut die Sache bei einem Tischtennisspiel […]

Jaja - meist hört man Computerspieler über die dumme KI mosern. Hier und da stellen sich die Gegner ja auch wirklich zu doof an.  Es ist aber auch wirklich eine Herausforderung eine KI für einen Ego-Shooter zu bauen… es sei denn natürlich man programmiert einen sogenannten Camper ;-)

Ganz anders schaut die Sache bei einem Tischtennisspiel aus… wenn ich da (als Nicht-Tisch-Tennis-Spieler der bei Mausgeschicklichkeitsübungen meistens nicht sooo doll abschneidet) mit nem Score von 11:280 (Mensch:Maschine) nachhause gehe, wird das Spiel dadurch nicht unbedingt interessanter. Ich bin zwar mit Sicherheit alles andere als ein Profi in dem Gebiet (sowohl was Spieleprogrammierung als auch die Bedienung dieses Spiels angeht)  - aber manchmal liegt die echte Herausforderung auch einfach darin eine KI zu entwickeln, die man besiegen kann (auch als Normalsterblicher und ohne jahrelange Übung).

Probierts halt mal aus, wie weit ihr mit dem Spiel kommt und keine falsche Bescheidenheit: Was für Scores schafft ihr? Kleiner Tip von mir, was ich erst nach dem 0:150 herausgefunden habe, euch also einen “kleinen” Vorteil mir gegenüber verschafft:

Es ist wie im echten Leben auch, wenn der Ball auf die Tischkante fällt wird er mit hoher Geschwindigkeit  zur Seite katapultiert. Das schafft selbst ein Computergegner nicht mehr - ohne den Kantentreffer hab ich aber keinen einzigen Punkt bekommen. Findet jemand noch eine “Lücke” in der Defensive?

Gedanken… Back To Murphey

21. Oktober 2008

Heutiges Thema: Back to Murphey… gemeint sind natürlich die bekannten Murphey’s Gesetze.
Allerdings in der “Neuauflage” passend zur Programmierung - sei es Internet- oder sonstige Programmierung.
Eine knappe zusammenstellung der - meiner rein subjektiven Meinung nach - zutreffendsten Sprüche:
Investment in reliability will increase until it exceeds the probable cost of errors, or until someone insists on getting […]

Heutiges Thema: Back to Murphey… gemeint sind natürlich die bekannten Murphey’s Gesetze.

Allerdings in der “Neuauflage” passend zur Programmierung - sei es Internet- oder sonstige Programmierung.

Eine knappe zusammenstellung der - meiner rein subjektiven Meinung nach - zutreffendsten Sprüche:

Investment in reliability will increase until it exceeds the probable cost of errors, or until someone insists on getting some useful work done.

Die Investitionen in Zuverlässigkeit wachsen solange, bis sie die potentiellen Fehlerkosten übertreffen oder bis jemand darauf besteht etwas sinnvolles zu tun. >> Das passt vor allem darauf, dass manch einer Pixelgenaues Webdesign erwartet - gibt aber noch viele andere Bereiche, in denen das passt.

Any given program, when running, is obsolete.

Jedes lauffähige Programm ist veraltet. Anmerkung: Zumindest solange es gewartet wird ;-)

Nothing is impossible for the man who doesn’t have to do it himself

Nichts ist unmöglich - für denjenigen, der es nicht selbst machen muss.

Every technical problem can be solved if you get enogh time an money - you just will never get enough.

Jedes technische Problem kann gelöst werden, wenn du genug Zeit und Geld bekommst - du wirst nur niemals genug davon bekommen.

To estimate the time it takes to do a task: estimate the time you think it should take, multiply by two and change the unit of measure to the next highest unit. Thus, we allocate two days for a one hour task.

Um die Zeit zu schätzen, die eine Aufgabe benötigen wird: Schätze die Zeit, die du denkst, dass es brauchen sollte, multipliziere das mit zwei und nehme die nächst höhere Einheit. Das heißt, wir rechnen mit zwei Tagen für eine Aufgabe von einer Stunde.

If it looks easy, it’s tough. If it looks tough, it’s damn near impossible.

Wenn etwas einfach aussieht, ist es kompliziert - wenn etwas kompliziert aussieht, ist es nahezu unmöglich. Anmerkung: Wenn etwas nahezu unmöglich aussieht, kann man sich die Lösung bei SourceForge runterladen ;-)

Adding manpower to a late software makes it later.

Wenn man in eine verspätete Software mehr Manpower steckt wird sie nur weiter verzögert.

If a program is usefull it must be changed

Wenn ein Programm nützlich ist, muss es verändert werden.

Program complexity grows until it exceeds the capability of the programmer who must maintain it.

Die Komplexität eines Programmes wächst so lange, bis es die Fähigkeiten des Programmierers übersteigt, der es warten muss. Anmerkung: Oder noch weiter - sonst würden 80-90% der Programme weltweit schon seit jahrzehnten nicht mehr weiterentwickelt. Und damit meine ich unter anderem auch Betas, die erst seit wenigen Wochen auf dem Markt sind.

There’s always one more bug.

Es gibt immer noch einen weiteren Fehler.
Anmerkung: Wie einen?

Not until a program has been in production for six months will the most harmful error be discovered.

Bevor ein Programm nicht sechs Monate produktiv genutzt wurde, wird der schlimmste Fehler nicht gefunden sein.
Anmerkung: Und passend zu dem Spruch davor: Und es gibt immer noch einen schlimmeren ;-)

At least one bug will be observed after the author leaves the organization.

Mindestens ein Fehler wird festgestellt, nachdem der Programmierer die Firma verlassen hat und kein anderer kennt sich mit dem Ding aus.

Bugs will appear in one part of a working program when another unrelated part is modified.

Fehler tauchen in einem laufenden Programmteil dann auf, wenn ein anderer, unabhängiger Teil geändert wurde.
Anmerkung: Zum Teil durch erhöhte Aufmerksamkeit, zum Teil durch die “Unabhängigkeit”, die doch nicht ganz so Unabhängig war…

If one time there is no software problem a hardware failure will cause system software to crash, and the customer engineer will blame the programmer.

Wenn es gerade einmal kein Software Problem gibt, wird ein Hardwareausfall die Systemsoftware abstürzen lassen und dem Programmierer wird die Schuld in die Schuhe geschoben.

# Any cool program always requires more memory than you have.
# When you finally buy enough memory, you will not have enough disk space.
# If a program actually fits in memory and has enough disk space, it is guaranteed to crash.
# If such a program has not crashed yet, it is waiting for a critical moment before it crashes.

# Jedes Coole Programm braucht mehr Arbeitsspeicher als du hast.
# Wenn du endlich genug Arbeitsspeicher gekauft hast, brauchst du mehr Platz auf der Festplatte.
# Wenn ein Programm genug Arbeitsspeicher und genug Festplattenplatz hat, wird es mit Sicherheit abstürzen.
# Wenn es das noch nicht getan hat, wartet es nur auf einen kritischen Moment, in dem es sich lohnt abzustürzen.

Patches - don’t.

Ohne Worte ;-)

A patch is a piece of software which replaces old bugs with new bugs.

Bang.

Good enough - isn’t, unless there is a deadline.

Und noch einer aus dem Real Life:

Freunde kommen und gehen, aber Feinde sammeln sich an.

Man könnte aber auch sagen: “Features kommen und gehen, aber Bugs sammeln sich an”

Und ganz am Rande:

Es gibt immer jemanden, der besser ist als du.
Das Problem dabei:
Er weiß es, du weißt es, aber ihr wollt es beide nicht wahrhaben.

(er nicht, weil das Arbeit bedeutet, du nicht, weil du dafür zu stolz bist )