Skip to content

Das tolle an "Standards" ist, dass es so viele davon gibt

So zum Beispiel, was die Formatierung von Datums- und Zeitangaben angeht.

In Java's DateFormat wird für das spezifizieren eines Zeitoffset der RFC 822 unterstützt, wo man einfach mit dem Zeichen "z" diesen Offset im Format "+HHmm" parsen kann.
Hätte man also einen Datums-String, der folgendermaßen aussieht:
2011-03-23T22:15:00.000+0100

kann man das mit zB SimpleDateFormat mit folgendem Format-String parsen:
yyyy-MM-dd'T'HH:mm:ss.SSSz


Soweit, so schön. Problematisch wird es allerdings, wenn man solche Angaben in XML-Dokumenten haben möchte.
Die XSD-Spezifikation stellt einen Typ "xs:dateTime" bereit, der einen String erwartet, der dem oben angegebenen "ähnlich" sieht. ähnlich, weil ein kleines Detail eben doch anders sein muss: im Offset, müssen Stunden und Minuten durch einen Doppelpunkt getrennt werden! Damit würde der String also so aussehen:
2011-03-23T22:15:00.000+01:00

...und der SimpleDateFormater würde das nicht als valide Datumsangabe ansehen, gemäß dem oben stehenden FormatString! Denn der RFC 822 sieht an dieser Stelle keinen Doppelpunkt vor. An den hält sich XSD auch gar nicht, sondern an RFC 3339 (und auch das nur partiell - RFC 3339 erlaubt einige Dinge, die xs:dateTime nicht akzeptiert. zB ein Leerzeichen statt dem "T" in der Mitte zu benutzen).

Der geneigte Entwickler möchte vermutlich bereits an dieser Stelle den Kopf auf die Tischplatte knallen. Nun das war zumindest meine erste Reaktion. Die Zweite war: "da gibts doch bestimmt was von Ratiopharm... äh, ich meine Apache (Commons)." Die haben ja sonst auch für alle gängigen Probleme "schon mal etwas vorbereitet". Bei der Suche stieß ich dann darauf, dass es sogar schon etwas in Java eingebautes gibt!
Man soll es nicht für möglich halten: "javax.xml.bind.DatatypeConverter" stellt eine Methode "parseDateTime" bereit, die einen "lexicalXSDDateTime"-String erwartet. ...natürlich, da hätte man ja drauf kommen können, dass eine Datumsangabe ein Datentyp ist

Was hat man früher ohne mobiles Internet gemacht?

Also abgesehen davon, dem Wahnsinn anheim zu fallen?
Ich musste mal wieder fest stellen, dass so eine Zugfahrt sehr viel entspannter ist, wenn man Internet hat. Mit einem Andoid-handy sowie einem passenden Datentarif (bei O2 schon für 10€ pro Monat) ist das sehr einfach machbar - wenn man von den Funklöchern absieht! Ich hab mir auch sagen lassen, dass iPhone-user diesbezüglich in die Röhre gucken... also was das Benutzen des Handy als Modem für den Schleppie angeht.

Jedenfalls kann man dann nämlich nicht nur die fehlenden Libraries nachladen, die man braucht um unterwegs am neuesten Projekt weiter zu basteln - nein, man kann sich auch youtube-videos anschauen. Oder noch besser: seine Mitreisenden damit unterhalten. Zum Beispiel, wenn der Zug, der durch eine eingefrohrene Weiche oder eine defekte Signalanlage bereits 40 Minuten verspätung hatte, auf einmal wegen eines "Personenschadens" auf offener Strecke hält, und nach einem Umweg plötzlich 3 Stunden Verspätung hat! Dann bietet sich nämlich folgendes Video an: Bodo Wartke - Reisetagebuch!!!

Wenn man jetzt noch in Betracht zieht, dass die Bahn selbst, wegen der Wetterlage vom Reisen mit der Bahn ab rät, dann erscheint einem der Beitrag von Bodo gar nicht mehr so übertrieben.
Aber hey, wenigstens funktioniert die Heizung! Nachdem ja im Sommer da reihenweise die Klimaanlagen ausgefallen waren, weil die Bahn ja nicht damit rechnen konnte, dass es im Sommer auch mal warm wird, hatte ich schon befürchtet, dass die auch nicht damit rechnen, dass es im Winter kalt wird.

Der berüchtigte "Lockschaden" ist zwar ausgeblieben - aber am Zielort angekommen ist der Zug dennoch nicht. Denn aufgrund der hohen Verspätung, wurde einfach schon 2 Stunden vor erreichen des Zielorts Feierabend gemacht. Wie man von da aus weiter kommt? Tja, dass wusste der Zugführer auch nicht.

"What were they thinking?"

Eigentlich sollte der Titel "Steam sucks" oder "Bei Valve arbeiten nur Pfosten" heißen, aber diesen Satz des AVGN fand ich dann doch passender.
Denn genau das fragte ich mich auch, als ich zwischenzeitlich doch gezwungen war, mich mit Steam rum zu schlagen.

Angefangen hat alles damit, dass ich mir nun doch mal das Spiel "Aliens vs. Predator" aka AvP3 gekauft habe. Die Kritiken waren, soweit ich das mitbekommen habe, nicht sonderlich überragend. Aber die Aussage "es ist eigentlich nur ein AvP2 mit besserer Grafik und nix neuem" hat mich voll überzeugt. Denn genau das ist es, was ich schon immer mal haben wollte.
Also wie immer bei Okaysoft bestellt - soweit, so gut.

Die Probleme gingen los, als ich das Spiel installieren wollte. Leider hatte ich vorher nicht darauf geachtet, dass es Steam braucht. Nunja, trotz allen Vorurteilen die ich vorher schon gegenüber Steam hatte, dachte ich nur "die halbe (gamer)Welt verwendet das auch, also drauf geschissen - installieren wir halt Steam".
Für den Steam-account waren, außer einer (trash)mail-addresse, auch keine weiteren persönlichen Daten erforderlich - immerhin.

Aber dann fingen die Probleme an: beim Installieren meckert Steam an, dass nicht genug Platz zur Verfügung steht. Kein Wunder - ich will es ja auch nicht auf Laufwerk C installieren, sondern auf Partition, die ich für Spiele eingerichtet hab. (btw. wieder mal ein großartiges Beispiel, wie beschissen dieses Konzept der "Laufwerke" eigentlich ist!)
Also starte ich die Installation neu - schließlich kann man bei jedem besseren Installer auswählen, wohin man installieren möchte! ...nicht so bei Steam!! Steam will unter allen Umständen immer nur dahin installieren, wo es selbst installiert wurde. Wo das ist, konnte man sich natürlich auch nicht aussuchen.

Erster Wut-anfall.

Bei google brauchte ich nicht lange suchen, um - oh welch Überraschung - gleich als erstes diverse Einträge zu finden, wo andere Leute das selbe Problem haben. Zu meiner Überraschung, lies sich das Problem sogar lösen! Man muss einfach den kompletten Ordner, in dem Steam installiert ist, auf die andere Partition/Laufwerk verschieben. Das bedeutet im Umkehrschluss natürlich auch, dass man alle über Steam installierten Spiele IMMER auf EINER Partition hat - man kann die nicht verteilen!
Nunja, das war/ist mir erst mal egal - so schnell kommt mir kein weiteres Steam-spiel auf den Rechner. Aber damit hörten die Probleme noch nicht auf.

Nachdem ich also Steam neu gestartet habe, bietet er mir an, AvP3 zu installieren. Ich denke noch "na immerhin", und klicke auf den Button - und was macht er? Er will es DOWNLOADEN!!!! Verdammt ich hab die DVD noch im Laufwerk, und der will es DOWNLOADEN??? WTF??
Und es kommt noch besser: es gibt keine Möglichkeit dem beizuprügeln, es _nicht_ zu downloaden, sondern von DVD zu installieren, außer mit dem Setup von der DVD erst noch mal zu "deinstallieren" - obgleich ja eigentlich noch gar nix installiert ist - und dann noch mal von da zu installieren.

Da kann man sich doch nur noch fragen: sind die eigentlich total panne? Wenn ich auf Arbeit so einen Scheiß zusammen programmieren würde, würde mich mein Chef (und/oder der Kunde) ordentlich zusammen scheißen - und zwar mit Recht!


In diesem Sinne: steckt euch euer bekacktes Steam dahin, wo die Sonne niemals scheint!

Neues Spielzeug

Nachdem ich lange Zeit gehadert habe, ob ich es mir nun kaufen soll oder nicht, halte ich nun überglücklich mein neues Spielzeug in Händen:

Ein stylisches "HTC Legend" mit Android 2.1 - wer braucht oder will da noch ein IPhone!?

Mehr brauch ich dazu eigentlich nicht zu sagen... außer: endlich was zum spielen in langweiligen Meetings ;-)



[Update]
Dass das Gerät trotz des recht großen Display gar nicht so klobig ist, zeigt der folgende Vergleich mit einem Nokia 6600 - was für ein Klotz!:

Ein Hoch auf variable Arbeitszeiten

Man stelle sich vor, man arbeitet gerade an einem neuen Feature für das hauseigene ContentManagementSystem und will das ganze testweise auf der eigenen Workstation deployen - aber das firmeneigene Maven-repository ist nicht erreichbar, weil der Server auf dem es läuft wegen Lastproblemen die Grätsche gemacht hat.
Man widmet sich anderen Dingen, nur um eine Stunde später fest zu stellen, dass das CMS nicht hoch fährt, weil ein Kollege ein paar "unnötige dependencies" raus geschmissen hat, und Hibernate auf einmal die bytecode manipulation library nicht mehr findet. Wenn man das Problem - verzeihung die "Heraussforderung" (denn es gibt nur Herausforderungen und keine Probleme) - endlich gelöst hat, einige Kollegen der Marke "kannst du mal eben schnell" abgewimmelt hat und endlich weiter arbeiten will, fällt dann plötzlich das Netz aus. Offenbar ein Kollege von Operations, der gerade ein paar "Dosen umpatcht". Es steht nur noch WLAN zur Verfügung, aber darüber kommt man nicht direkt an die Server im Office - also alle Tunnel neu aufbauen, und ggfs. laufende Applikationen neu deployen oder neu starten, weil die jetzt auf localhost und einen anderen Port zugreifen müssen. Wenn dann noch beim Speichern der neuen Import-Spezifikation der X-Server ab raucht ...dann, ja dann ist es Zeit zur Abwechslung mal früher Feierabend zu machen!


Zum Schluss noch ein Gag für alle Java-entwickler:
Das kommt dabei raus, wenn man den CTO zu wörtlich nimmt, wenn dieser postuliert "Bei uns wird Qualität groß geschrieben!"
public Format findBestContentFormat(String contentType, int QualityMin, int QualityMax) {
...

Alle die den Witz nicht verstehen, sollten einen Blick in die Java Coding Conventions werfen ;-)