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
18. August 2006
Eins ist Null
Labels: Code, Zahlentheorie, Zeitgeist
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.
Labels: Code, Coding Rule
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()
Labels: Code, Virtuelle Präsenz
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()
17. Januar 2006
Alles freundlich
Der beliebteste Jabber Server der Welt jabber.org schickt jedem neu angemeldeten User eine persönliche Nachricht des Admins, dass er in der Jabber Welt willkommen sei und wo er mehr über Jabber erfahren kann. Das ist schön, denn dann ist die frische IM-Box nicht ganz so leer. Der Admin, der den Text verfasst hat, weisst ausserdem darauf hin, dass man darauf nicht antworten müsse.
Auch LLuna User sind Jabber User und neue LLuna User bekommen auch die Nachricht. Weil LLuna User nett sind, antworten Sie gerne und schicken ein freundliches "Hi" zurück an jabber.org. Der Server schickt alles weiter an seinen Admin und der Admin hat eine IM-Mailbox voll mit freundlichen "Hi"s neuer LLuna User.
Zum Glück erkennt der Admin, dass diese User von LLuna sind, weil LLuna netterweise die User ID mit "lluna_" prefixt. Er bittet den Projektleiter von LLuna die freundlichen "Hi"s abzustellen und der freundliche Projektleiter programmiert ein Stückerl Code ins LLuna, dass vermeidet, dass freundliche LLuna User aus Versehen indirekt den Admin von jabber.org nerven. Mit anderen Worten LLuna schickt jetzt keine
Woher kommen die vielen LLuna User?
http://www.entwickler.com/itr/news/psecom,id,26289,nodeid,82.html
http://www.testticker.de/pcpro/news/netzwerke/news20060113013.aspx
http://www.computerwelt.at/detailArticle.asp?a=100401&n=5
http://www.ibusiness.de/aktuell/db/1137064280.html
GIGA Tool of the day
_happy_coding()
11. Januar 2006
Webmobs Pressemitteilung
Schoen, wenn eine Pressemitteilung mal gelesen wird. Wir haben gestern Webmobs announced. Das war schon lange noetig. Das Web wird doch erst mit Menschen so richtig "Social". Webmobs, Virtuelle-Praesenz-LLuna ist Social Software vomn Feinsten. Gerade Blogger, die ja eh mir Ihren Lesern kommunizieren koennen auf dem Blog die Leser echt treffen. Auf irgendwelchen Themenseiten können sich ad-hoc Communities bilden und Mitglieder von bestehenden Communities treffen sich im Web, überall, nicht nur auf der Community-Page.
Virtuelle Praesenz, die Theorie: http://www.virtual-presence.org/
Webmobs, die Praxis: http://www.webmobs.de/
LLuna, eine Implementierung: http://www.lluna.de/
Labels: Virtuelle Präsenz