5. November 2006

Endlich Schluss mit dem Grind

Wer hat nicht mindestens 20 Tage (=20*24h) seiner Lebenszeit in einen WoW Level 60 Charakter gesteckt? Wer fragt sich nicht, wozu das alles? Auch ich habe keine Antwort.

Aber eine Lösung für das nächste Mal. Denn, endlich gibt es ein Rollenspiel, dass nicht endlos Zeit beim Leveln verbraucht. Es automatisiert den mühsamen Grind-Zyklus: Quest annehmen, Mobs killen, Looten, Verkaufen, bessere Ausüstung kaufen, XP bekommen, hochleveln. Das Game killt Monster automatisch, lässt dann den Charakter zum nächsten Händler gehen, verkauft, kauft das beste neue Item und holt sich die nächste Quest ab. Ganz allein. Ich muss nicht mehr stundenlang davorsitzen. Man kann nebenbei etwas anderes machen.

Was mir auch gut gefällt ist die Characterauswahl mit Stats rollen. Bei den meisten RPGs im Computerzeitalter muss man sich irgendwann entscheiden, ob man die gerollten Stats annehmen will. Hier kann man sich später entscheiden und wieder zurück, wenn man keine besseren findet.

Spiel: Progress Quest
URL: http://progressquest.com/
Mein Character: http://progressquest.com/pemptus.php?name=Wolfspelz

Und hier kommt der Knüller: auf Google personalized Homepage kann man den Fortschritt beobachten. Google Homepage Card: http://progressquest.com/char-card.php

13. Oktober 2006

Fraktales Gemuese

Neulich im Alnatura gab es endlich wieder fraktales Gemuese. Selbstaehnlich in 4 Stufen. Da freut sich das Mathematikerinnenherz:

18. August 2006

Eins ist Null

Ein neuer Beitrag zum Thema die schönsten Fehlermeldungen:



1 ist NULL, also 1 = 0, aha.
naja, er rettet sich noch mit der Aussage: "oder kein Objekt", die aber auch gefährlich ist, weil mache ja behaupten "alles ist ein Objekt". Wenn alles ein Objekt ist, ist 1 auch ein Objekt, also doch 1 = 0?

Aha:
1= 1+0+0+0+...
= 1+(1-1)+(1-1)+(1-1)+...
= (1+1)-(1+1)-(1+1)-(1+...
= 2-2-2-2...
= (2-2)-(2-2...
= 0-0...
= 0

21. Juli 2006

Windows Vista - Neuer Netzwerk-Stack in der Kritik

Anscheinend hat Microsoft das Networking fuer Vista komplett neu entwickelt. Ein erfahrener Netzwerkprogrammierer dankt da wahrscheinlich: Oha! ziemlich mutig Jahre an Debugging wegzuwerfen, aber MS wird es mit so vielen leuten schon schaffen.

Symantec hat den Stack getestet und Probleme entdeckt. Laut einer Pressemeldung zeigt sich Symantec "beeindruckt davon, dass jemand den Anlauf wagt, einen Netzwerk-Stack von Grund auf neu zu entwickeln". Anscheinend haben die Symantec Leute auch Oha! gedacht.
Meine Vermutung: Oha! ist zurueckhaltend und freundlich formuliert. Wahrscheinlich haben sie sich gedacht: Unsinn! Denn üblicherweise dauert es mehrere Jahre bis Netzwerkstacks stabil sind, weil man beim Netzwerk Programieren nicht ale Faelle testen kann. Das machen die Kunden.

Meinung: Unsinn! aber verstaendlich. Programmierer machen ja gerne mal was neu, wenn sie den Code nicht mehr sehen koennen. Sie glauben, dass die Funktionalitaet ziemlich schnell wieder nachprogrammiert ist (stimmt) und glauben das mit dem Debugging wird schon (stimmt nicht). Denn sie vergessen dabei die tausend Stunden Debugging nach dem Deployment, mit heissen Ohren am Telefon, unfreundliche Pressemeldungen, panikartige Hotfixes und die unzaehligen kleinen Codestellen, die spezielle Bedingungen beim Networking behandeln, von Rueckwaertskompatibilitaet mit anderen alten Stacks auf der Gegenseite mal ganz zu schweigen.

Heiner's Merkregel zum Neumachen: Neumachen, weil man den alten Code nicht mehr sehen kann, amortisiert sich ungefaer dann, wenn man auch den neuen Code schon nicht mehr sehen kann.

19. Juli 2006

Spam-Poesie

Heute morgen ist mir das Herz aufgegangen. Manchmal finden Poeten Worte, die den Leser im Innersten berühren. Eine der schönsten Spam Emails, die ich je bekommen habe:

Wanderzirkus der Eifersucht

Ich denke dass du impulsiv in seiner Manier wieder giltst beruhige
sich und sage obwohl dass irgendwelcher dass einfach grosser einfacher
Anschuldigungen deine Eifersucht die Grenze nicht kennt.

Ich verstehe warum du sie alle noch schirmen Sie seinen alle nicht.
Ich habe schon soviel der Beweise gesammelt,
dass deine Bemerkungen horend ist gesenkt,
dass auch bei dir mit sie etwas auch zu denken war.
Jetzt ich die Unausgesprochenen schon vermeide schicke ich die Fotografie
ab wo sie gesaugt meinem Boss macht!

Also, eben was du mir darauf sagen wirst?

P.S. Niemandem es zeige auf.
Wenn ich von deinem Nachbarn erkenne dass auch du es im Wanderzirkus
umgewandelt hast, ich garantiere die Unannehmlichkeit dir.
In die nachsten Tage schreibe nicht, ich habe in das buro schon
ausgetrunken und ich denke, fur die Stadt zu fahren,
was ich und dir wunsche.

- Ende

Wir planen den Beitrag beim internationalen Poesiewettbewerb IX Certamen Internacional de Poesía Ciudad de Torrevieja einzureichen.

14. Februar 2006

Yet Another Firefox Chat on Webpage Plugin

Sie kommen. Erst yakalike, dann Search Party, jetzt QuickChat und NetMite Communities
Vier relativ neue Firefox Plugins mit denen man auf Webseiten einen Chatkanal öffnen kann, um mit den Leuten zu chatten, die zur gleichen Zeit auf der gleichen Seiten sind. Das naechste heisst dann YAFCWP: Yet Another Firefox Chat on Webpage Plugin.

Das bedeutet aber auch
1. dass die Leute es endlich gefressen haben, dass man auf dem Web andere treffen will
2. dass LLuna jetzt noch eins darufsetzen muss, um den Vorsprung zu halten.

Bisher haben sie noch nicht verstanden, dass ein Chat-Channel alt ist, Avatare und Sprechblasen besser sind. Wenn sie das merken, wird es eng. Bis dahin sollten die LLuna Avatare animierte 3D Figuren sein.

_happy_coding()

1. Februar 2006

Peer to Peer Sockets: die Wiedergeburt des Internets

Vor 2 Monaten hat Google LibJingle veröffentlicht. Enthalten ist darin ein sogenannter Peer to Peer Socket (p2p). Der p2p Socket überträgt Daten zwischen 2 Computern. Das ist eigentlich nichts spektakuläres. Der Unterschied zu normalen Sockets ist, dass sich der p2p Socket einen möglichen Weg sucht und dabei auch Relays benutzt und asymmetrische Kommunikation. p2p Socket "Verbindungen" gehen im Gegensatz zu einfachem TCP/UDP über Firewalls. Der p2p Socket ist eine Abstraktionsschicht höher, als UDP/TCP Sockets. Er testet, wie Computer an das Internet angebunden sind und wählt dann selbst die beste (oder einzige) funktionierende Verbindungsmethode aus. Falls alle Stricke reißen verbindet er zu einem Relay über den TCP Port 443 und tut so, als ob er ein Webbrowser ist, der SSL macht.

Die gesamte Komplexität einschließlich der Relay Server im Internet ist in einer Library verborgen. Die Technik ist nicht neu. Sie wird seit Jahren in p2p Filesharing Netzen und bei Skype verwendet. Aber mit LibJingle steht so eine Funktionalität jetzt als Open Source (BSD Lizenz) zur Verfügung. Jeder kann p2p verwenden ohne den aufwendigen p2p-Teil programmieren zu müssen. Man kann p2p Funktionen in eigene Anwendungen einbauen und endlich wieder kommunizieren. Das klingt banal, ist aber eine Revolution.

In der Anfangszeit des Internet konnte man einfach Programme schreiben, die per TCP Daten von einem Computer zum anderen übertragen haben. Jeder konnte zu jedem verbinden, per TCP und UDP. Dann kamen Firewalls und NAT und haben die Computer voneinander isoliert. Heute können Arbeitsplatz- und Home-PCs nur noch mit Servern kommunizieren, aber nicht mehr direkt miteinander. Computer wurden zu Clients degradiert. Es ist schwierig einen Server zu betreiben, weil die meisten Computer hinter Firewalls, NAT und dynamisch vergebenen IP Adressen versteckt sind.

Mit öffentlich verfügbarer p2p Technologie können Computer wieder miteinander kommunizieren. Das Internet wird wieder geboren als das p2p Netzwerk, dass es früher einmal war.

Beispiel VoIP: IP-Telefonie braucht SIP Gateways und/oder Firewall-Regeln für SIP-Datenpakete. Das funktioniert nur zwischen Firmen, die sich für SIP entschieden haben, SIP Produkte gekauft haben und betreiben. Das kostet Geld und geht nicht überall. MS Netmeeting ist daran gescheitert. Mit Skypes p2p Technik wurde IP-Telefonie wieder möglich. Mit Googles Library kann man jetzt IP-Telefonie in alle Programme einbauen.

Beispiel Filetransfer: Filetransfer in Instant Message (IM) Systemen geht, wenn die IM Server den Filetransfer-Traffic aushalten. Das funktioniert gut bei den großen IM-Netzwerken, aber ein offenes und verteiltes IM-System (Jabber/XMPP) hat Schwierigkeiten, weil sich die Server untereinander den Filetransfer-Traffic weiterleiten. Viele Jabber Server werden von kleinen Organisationen betrieben und wollen nicht unkontrollierten Filesharing-Traffic. Deshalb ist Filesharing-Support nicht allgegenwärtig und praktisch nicht nutzbar. Ein Workaround ist, dass Jabber Clients sich direkt verbinden, z.B. per http. Das bedeutet aber, dass einer offen im Netz sein muss ohne Firewall. Die Lösung ist p2p. Filesharing wird in Jabber Clients bald ganz normal sein dank frei verfügbaren p2p Socket Libraries.

Beispiel LLuna Video Icon: LLuna überträgt das mini Live-Video per HTTP. Der Computer, der das Video bereitstellt, benötigt ein Firewall-Loch und DynDNS. Das ist schwer für Normalanwender. Die Alternative wäre, alle Videodaten über die Jabber Verbindung zu leiten, was aus den oben genannten Gründen nicht geht. Die Lösung ist p2p.

Ich glaube, dass wir inzwischen verlernt haben, zwischen Computern Daten auszutauschen, weil wir darauf konditioniert sind, die Firewall-Probleme zu sehen. Es gibt unheimlich viele Anwendungen für p2p Kommunikation und wir werden wieder lernen p2p zu denken, wie in der guten alten Zeit, als das Internet noch offen war.

_happy_coding()