Jahr-20xx-Probleme

Vor etwa einem Jahrzehnt hat man das “Grauen” angekündigt: die Jahr-2000-Probleme. Entsprechend viel wurde dagegen im Vorfeld unternommen. Da dies einiges an Aufwand bedeutet hat, müsste man eigentlich davon ausgehen, dass man aus der Vergangenheit gelernt hat.

Zum Jahreswechsel gab es aber wieder Probleme. Neben den EC-Karten-Problem funktionierten auch einige Spamfilter (Spamassassin-Konfiguration) nicht korrekt. Auch wenn es sich bei den Problemen um verschiedene technische Hintergründe handelt, sollte man von Entwicklern doch eigentlich erwarten, dass sie auch für die Zukunft planen.

Das nächste (bekannte) Problem ist das Jahr-2038-Problem, diesmal nicht zum Jahreswechsel. Auch wenn bis zu dem Zeitpunkt die meisten System nicht mehr mit 32bit laufen werden, kann man nach den letzten Erfahrungen nicht sagen, ob die Geräte auch darauf vorbereitet sein werden.

Bis dahin werde ich mich (auch) erstmal mit anderen Problemen beschäftigen 😉

Achja, weil dies mein erster Artikel in diesem Jahr ist wünsche ich von hier aus allen Lesern ein gutes Jahr 2010 !

Ausgiebige Fehlersuche

Immer mal wieder muss man in der Software-Entwicklung Fehler korrigieren. Bei manchen Problemen ahnt man mit etwas Erfahrung, wie sie am besten und schnellsten zu beheben sind. Bei anderen Fehlern muss man systematisch vorgehen: Ort und Quelle einschränken, Debug-Ausgaben (natürlich möglichst nicht für den Benutzer sichtbar), usw. Das erleichtert das Finden, die Fehlerbehebung kann sich aber trotzdem hinziehen.  Heute Abend hat die Suche und Behebung eines Fehlers etwa zwei Stunden gedauert.

Wenigstens eine kleine “Entschädigung” ist die “Freude”, wenn man den Fehler gefunden und behoben hat. (Möglichst ohne weitere Bugs hinzuzufügen 😉 )

Blogs plus in AJAX

Ich kann nicht auf jedem Computer einen Feedreader benutzen, der sich automatisch meldet, wenn ein Blogger einen neuen Eintrag verfasst hat. Deshalb hatte ich mir ein Skript geschrieben, welches den neuesten Eintrag von Blogs, die ich lese, anzeigt. Darüber hatte ich auch im Juli schonmal geschrieben. Mittlerweile habe ich die Cache-Zeit von 30 Minuten auf 3 Stunden erhöht. Zur Not kann man ja den Cache “abstellen”.

Was mich jedoch gestört hat war, dass während die Blogs eingelesen werden die Seite und die Domain “gesperrt” war, also keine weiteren Anfragen beantwortet hat. Ich musste also immer warten, bis die Tabelle vollständig war, konnte mir erst dann die neuesten Einträge heraus suchen und lesen.

Heute Abend habe ich das noch etwas verbessert: Nun werden die Einträge über AJAX geladen. Die letzten Einträge werden somit erst dann angezeigt, wenn sie gelesen wurden. Allerdings wird die Webseite gleich zu Beginn komplett geladen. Es gibt nicht mehr diese “lange Blockade”. 😉

Einziges Manko der neueren Version: Das Aktualisieren ist nicht möglich, wenn Javascript im Browser deaktiviert ist.

Update 2012: neue Adresse

GUI-Freundlichkeit

Vor der Bachelorarbeit habe ich nicht viele Programme mit grafischer Benutzeroberfläche (z.B. “Fenster”) geschrieben. Meine Erfahrung gehen weitestgehend auf die damaligen Borland-Produkte, vor allem Delphi zurück.

Normalerweise wird ein Programm von Version zu Version besser, komfortabler zu bedienen. Als Benutzer erwartet man das ja auch. Ich habe jetzt aber festgestellt, dass eine kleine “Hilfe” in mittleren bis größeren Programmen viel Arbeit erfordern kann. Oft muss man sich dann entscheiden, ob man Wert legt auf bestimmte Funktionen oder auf bessere Bedienbarkeit.

Fehler & Rückschritt

Eigentlich wollte ich heute Abend auch noch eine Kleinigkeit essen. Seit heute Nachmittag bin ich hier am Computer an dem WebService bzw. der jsp-Seite dafür.

Ab und zu kommt es zu Fehlern, dass ist ganz normal, auch dass die Fehlersuche seine Zeit braucht. Doch als es einfach keine Veränderung der Ausgabe geben sollte habe ich mir Gedanken gemacht. Der Browser zeigte meistens eine interne Fehlerseite an. Mal trat der Fehler auf, mal nicht. Eigentlich hatte ich auch im Verlauf des Tages das Problem bereits behoben.
Ich habe mir dann (nochmal) (nochmal) (nochmal 😉 ) mal die Quelldatei angesehen. Da musste ich feststellen, dass mein “schöner” Code von heute “weg” war. Deshalb konnte es ja auch nicht funktionieren.

Jetzt hoffe ich nur, dass ich irgendwie aus Versehen die Datei durch eine alte Version ersetzt habe. Wenn nämlich nicht ich, sondern die Entwicklungsumgebung für den Quatsch verantwortlich war, könnte es in den nächsten Tagen wieder vorkommen 🙁 . Es könnte nämlich auch an einem Absturz liegen, wenn man zum falschen Zeitpunkt etwas startet oder stoppt. Blöd, wenn nach einem Fortschritt gleich schon wieder so ein Rückschritt kommt.

Sicherheitskopien mache ich ja in regelmäßigen Abständen. Meine Version von heute ist auch wieder hergestellt. Ich bin auch trotz der Fehlersuche weiter gekommen. Es läuft also, soweit es bisher laufen kann – bin eben noch nicht fertig. Jetzt muss ich endlich mein Abendessen nachholen…