Lauf in Groß-Gerau (Fastnachtslauf)

Die Laufsaison läuft seit etwas anderthalb Monaten, eigentlich Zeit für einen kleinen Test wie es um die eigene Fitness steht – auch im Hinblick auf die weiteren Marathonvorbereitungen. Aber so richtig bin ich nicht in die Pötte gekommen mit der Planung für einen Lauf.
Am Freitag hatte ich dann mal bei unserem Trainer im Verein angefragt, ob er mir mal einen Trainingsplan zusammenstellen kann. Dazu brauchte er allerdings eine Angabe über den letzten Wettkampf, vorzugsweise etwas über 10km. Mein letzter Wettkampf war im November, LGA-Indoor-Marathon – die Zeiten von dort kann man aufgrund der Streckencharakteristik nicht gut vergleichen und als Grundlage heran ziehen. Außerdem ist das ja auch schon wieder einige Zeit her.

Ich wusste, dass es in Groß-Gerau (ca. 50km von Mannheim) einen Lauf immer am Fastnachtsamstag gibt, an dem hatte ich sogar schon einmal teilgenommen – das war 2008. Also nach dem Training mal nachgeschaut: Ja findet statt, Start um 15:00h und 7 EUR Nachmeldegebühr. Insgesamt ein sehr humanes Angebot, aber es sind ja auch nur 10km – in Erinnerung hatte ich komischerweise 12km, aber das dürfte die Erinnerung an den Dreikönigslauf in Kersbach gewesen sein.
Immerhin lässt mir das ja doch einige Stunden mehr Zeit zur Regeneration als ich gedacht hatte – ich hatte schon befürchtet, dass der Lauf sehr früh um 9:00h startet – also ca. 12h nach der letzten Trainingseinheit.

Samstag, das Wetter grau in grau, anfänglich sogar noch mit etwas Nieselregen garniert. Eigentlich absolut kein Laufwetter, aber egal ich mache mich dennoch auf den Weg nach Groß Gerau. Das Wetter wird etwas besser, allerdings auch windiger und somit etwas kühler 6°C lese ich ab als ich auf dem schon rappelvollen Parkplatz 45 Minuten vor dem Start eintreffe. Umziehen, Nachmeldebogen ausfüllen, Startnummer anheften und noch ca. 15 Minuten aufwärmen. Etwas was ich bisher bei Wettkämpfen eher vernachlässigt habe – aber man ist ja lernfähig.
Angesichts des Windes laufe ich mit Jacke und Handschuhen – auch darunter lange Funktionskleidung. Das Starterfeld ist auch bunt gemischt – teilweise in kurzen Hosen (mir wird schon bei dem Gedanken kalt) aber auch passende Bekleidung für die 5. Jahreszeit ist vertreten. Gefühlt ordne ich mich doch recht weit vorne in die Reihen der Starter ein – ob es gut geht weiß ich noch nicht, aber ich bin gewillt das ausgegbene Ziel von 5 min/km oder weniger anzugehen. Im Training tue ich mir da immer sehr schwer, da ich keine GPS-Uhr mit mir herum trage sondern nur einen Pulsmesser (der macht dafür auch klaglos so Dinge wie Ulm mit ohne das die Batterie irgendwann aufgibt). Aber im Wettkampf stehen ja alle Kilometer angeschrieben.

Die Strecke an sich bietet keinerlei besondere Highlights, sie ist bis auf wenige Stellen topfeben, und geht in langen Geraden durch den Wald – fast wie ich sie aus meinen Anfangszeiten in Nürnberg kenne. Pünkltich um 15:00h knallt der Startschuss und der Pulk setzt sich in Bewegung. Nach etwa 10 Sekunden bin auch ich endlich über die Startlinie gelaufen. Es beginnt das übliche Sortieren des Feldes auf den ersten Kilometern. Ich überhole jede Menge Läufer, mal links mal rechts, wo es der Weg eben gerade hergibt. Die Strecke bis zum ersten Kilometer fühlt sich elend lang an – aber ich bin recht flott unterwegs – die Stoppuhr zeigt 4:18 – also doch recht flott – aber ich merke es auch, so weiter wird wohl nicht ganz drin sein, auch wenn ich mir das wünschen würde. Ich zwinge mich dazu mein ständiges Überholen etwas zu reduzieren – das Feld hat sich etwas gelichtet aber es ist immer noch recht dicht. Es folgt die Abzweigung auf die Schleife, eine Gerade die sich knapp 3 km wie mit dem Lineal gezogen durch den Wald zieht. Dabei zieht sich das Feld immer weiter auseinander – ich versuche mich etwas im Zaum zu halten und reihe mich bei hinter einem etwa gleich schnellen Läufer ein. 4:25, 4:27, 4:34 – ich werde also langsamer, aber innerlich fühle ich mich langsam besser – es ist nicht mehr kühl um die Zehen und auch die Handschuhe habe ich zwischenzeitlich in der Jacke verpackt. Außerdem zwischendrin schon mal vorsorglich einen Schluck aus der Flasche genommen – auch wenn andere meinen 10km könne man ohne irgendwas machen – wenn ich Durst habe laufe ich schlechter, also rein mit dem Apfelschorle, und wenn es nur ist um den Mund zu befeuchten.

Mit dem Passieren des 4km Schilds kommt auch die nächste Kurve in Sicht – fast die Hälfte habe ich geschafft motiviere ich mich, während es durch die Lagerstätte der örtlichen Försterei geht – dort liegt derzeit jede Menge Holz fein säuberlich aufgereiht auf den Wiesen rechts und links des Weges – eine interessante Kulisse. Kurz danach geht am 5km Schild vorbei, wieder 4:34 – das scheint mein Los für diesen Lauf zu sein. Wenige Meter nach dem Schild geht es um die nächste Kurve, man ist also jetzt auch psychologisch auf “Heimweg” eingestellt. Auf dem folgenden Streckenabschnitt gibt es immerhin einige leichte Kurven, damit ist die Strecke etwas kurzweiliger und die Kilometer kommen mir kürzer vor. zudem geht es ganz leicht bergan – ich merke an dieser Stelle doch einige Muskeln die sich für das Training am Vorabend rächen. Aber die werden jetzt einfach ingnoriert. Eine rechts-links Kombination folgt, und direkt nach derersten Kurve steht auch schon das 6km Schild. Noch 4 Kilometer, Ankommen ist auf alle Fälle drin, nur die Zeit noch nicht ganz sicher. Wahrscheinlich aufgrund der langezogenen Abwärtsphase des letzten Kilometers bin ich wieder schneller geworden 4:32 meldet die Uhr.

Ich motiviere mich weiter, mahne mich allerdings auch wieder zu etwas mehr Disziplin – jetzt nur nicht reintreiben lassen, sonst gibt es am Ende ein böses Erwachen. Mit einer Läuferin liefere ich mir fast den gesamten Kilometer ein zähes Ringen, wir bewegen uns scheinbar ewig auf gleicher Höhe, wann ich immer ich etwas Gas gebe zieht sie auch an, ebenso natürlich umgekehrt. Dazu kommt teilweise ein ekelhafter Wind an den Lichtungen: Schräg von vorne – da heißt es zusätzlich nochmal Kraft aufbringen. Dafür fliegt der Kilometer 7 schon fast an mir vorbei – 4:31 laut Uhr, also nochmal schneller geworden. Das Feld ist an meiner Stelle doch schon sehr weit auseinander gezogen – ich habe gute 20 m bis zum Vordermann und hinter mir ist auch eine größere Lücke. Nahc der nächsten Kurve taucht auch schon das 8km Schild auf – trotz allem Apell an die Vernunft ich bin wieder schneller geworden, das muss der Stallgeruch des Ziels sein, der mich da antreibt: 4:28.

Noch zwei Kilometer, kurz nach dem Kilometerschild 8 verläuft die Strecke wieder auf der gleichen Trasse wie zu Beginn, nur eben in die andere Richtung. Ich versuche bewusst die Geschwindigkeit konstant zu halten, um noch etwas Luft zum Beschleunigen zu haben – nochmal ein Zug aus der Getränkeflasche und dann kommt auch schon der Kilometer 9 in Sicht – 4:30 also doch etwas langsamer geworden – heißt im Gegenzug: Für den letzten muss ich noch etwas Gas geben. Leider fehlt es gerade an Läufern, an die man sich “heransaugen” könnte – Stück für Stück komme ich doch einigen näher, aber auf der Zielgeraden sind doch ettliche Meter Abstand zur Läuferin vor mir – noch dazu bremst sie im Zielkanal völlig abprupt ab, so dass ich fast mit vollem Schwung des Endspurts in sie reinrausche … vor allem vergesse ich meine Stoppuhr zu betätigen – es dürften aber auch wieder etwas um die 4:25 rum gewesen sein.

Am Ende sind es 44:58,8 die ich für die 10km benötigt habe, also deutlich unter der Vorgabe der 5 min/km. Von daher bin ich ja mal ganz zufrieden mit dem Lauf. Im Nachinein muss ich feststellen – gegenüber 2008 waren es nur knapp 38 Sekunden weniger. Aber immerhin schneller. Nur bei der Platzierung bin ich diesmal schlechter – was wohl auch daran liegt, dass dieses Jahr mehr Teilnehmer dabei sind – und vor allem deutlich mehr in meiner Altersklasse – gesamt Platz 181 und in der Altersklasse im hinteren Drittel auf Platz 32 bei insgesamt 430 Teilnehmern (davon 39 in meiner AK). Zum Vergleich 2008: Platz 161 gesamt, 14. in der AK, 386 Teilnehmer und 32 meiner Altersklasse. Damit werde ich wohl leben müssen – die Traumzeiten meiner Altersklasse werde ich wohl nicht mehr erreichen: 32:15,3 dieses Jahr und damit auch der Gesamtsieger – und das ist noch nicht mal Streckenrekord. Da müsste ich wohl wirklich meinen Trainingsplan ganz gehörig umstellen und noch mehr Einheiten machen um auf solche Zeiten zu kommen. Die Grenzen zwischen Freude am Sport und Quälerei sind ja bekanntlich fließend.

Die Siegerehrung findet in der Turnhalle in Groß-Gerau statt, das ist leider etwas weiter weg vom Start und Ziel – was sich auch in der Teilnehmerzahl dort und den Ehrungen bemerkbar macht. Es dauert relativ lange bis es endlich losgeht und auch die Startnummern-Tombola bringt mir diesmal nichts. Aber auch egal – das Kuchenbuffet sorgt auf alle Fälle für den zeitnahen Kalorien-Ausgleich. Auch hier merkt man wieder, dass die Veranstaltung ehrenamtlich organisiert wird – die Preise sind mehr als im Rahmen – 1 EUR für ein Stück Kuchen, 50 Cent für eine Tasse Kaffee – da kann man echt nicht meckern. Ich denke mal ich nehme den Lauf in den Plan für kommendes Jahr auf – auch wieder als Test für die Fitness – mal sehen ob nicht doch noch ein paar Sekunden rauszuholen sind.

Die unbeschreibliche Macht des Doppelklick

Da bekomme ich mal wieder eine Nachricht: Da funktioniert was nicht richtig, kannst du mal helfen …
Klar kann ich das in aller Regel – ist ja mein Job, und in dem Fall auch noch meine Software.

Wie in so vielen Fällen (ja auch meine Software hat mal den ein oder anderen Fehler, ich bin auch nur ein Mensch), liegt das Problem aber nicht bei meiner Programmierung sondern sitzt ca. 80cm vor dem Bildschirm. Genauer gesagt liegt das Problem rund 60cm neben selbigem. Die Rede ist von nichts anderem als einem Zeigerät – wahlweise als Maus, Nager, Ratte, Trackball oder Touchpad zu bezeichnen.

Die Verwendung ist denkbar einfach: Aufgrund von Bewegungen des Geräts (oder entsprechenden Sensoren bei Touchpads und Trackballs) kann man den Mauszeiger über den Bildschirm bewegen. Für die Leute die es sich nicht vorstellen können: Es gab auch eine Zeit, da bediente man Rechner nicht über eine graphische Oberfläche oder musste diese gar von Hand erst starten. Auch heute ist solches Wissen oftmals Gold wert. Wer regelmäßig im Remote-Bereich arbeitet weiß wie mächtig die angeblich so dröge Kommandozeile sein kann (egal für welches Betriebssystem) – nur erfordert sie deutlich mehr Wissen und Mitdenken des Benutzers. Das will man nicht immer, gerade wenn man für andere Arbeiten den Kopf frei haben möchte.

Aber zurück zum eigentliche Problem, bzw. dessen genauerer Eingrenzung: Während die Interaktion des Mauszeigers mit der Bewegung der Hand für die allermeisten Benutzer recht zügig zu erlernen und intuitiv verstanden wird (wenn nicht gerade jemand die Auswertung von X und Y-Koordinate vertauscht hat – ein großer Spaß um Kollegen zu verwirren), ist die nächste Ebene der Interaktion schon deutlich komplexer: Es geht um die Tasten die auf dem Gerät vorhanden sind. Die aktuellen Ausführungen bestehend zumeist aus drei Tasten:
[list]
[*]links
[*]rechts
[*]Mitte (oftmals als Rad ausgeführt)
[/list]
Das Mausrad als eine eigentlich recht späte Entwicklungsphase des PC-Nagers (eingeführt von Microsoft mit der IntelliMouse im Jahr 1996), häufig ist er mit der praktischen Funktion verknüpft durch den aktuellen Bildinhalt zu scrollen (je nach Ausführung sogar waagrecht, in aller Regel jedoch nur vertikal) – diese Funktionalität hatte man früher auf der Tastatur mit den Pfeiltasten – auch heute funktioniert das noch erstaunlich gut. Eigentlich eine sehr komplexe Funktion, dennoch wird sie intuitiv meist richtig angewandt.

Die eigentlichen Funktionstasten der Maus bereiten hingegen immer wieder Probleme, obwohl die Funktion denkbar einfach ist: Durch das Drücken einer Taste wird ein Schalter geschlossen – der Rechner erkennt welche Taste gedrückt wurde und meldet das der Software weiter, damit diese darauf reagieren kann. Wie die Reaktion ausfällt ist von Software zu Software unterschiedlich. Software meint in diesem Zusammenhang auch ausdrücklich das Betriebssystem des Rechners (also Windows, Linux, MacOS – ob man es glaubt oder nicht, auch das ist “nur” Software).

Im allgemeinen hat sich ein gewisser Standard herausgebildet – die Maustaste unter dem Ringfinger (bei 3 Tasten) bzw. dem Mittelfinger (bei 2 Tasten) öffnet ein Menü mit zusätzlichen Funktionen, abhängig vom Kontext. Daher auch der Name Kontext-Menü. Schon die Verwendung dieser alternativen Funktion ist vielen Benutzern nicht wirklich geläufig. Dabei ermöglichen sie dem Programmierer von graphischen Oberflächen eine direkte Möglichkeit auf die Bedürfnisse des Benutzer so spezifisch als möglich zu reagieren. Denn vielfach kann man heute nicht mehr zwingend vorhersagen was sich genau an welcher Stelle auf dem Bildschirm finden wird, auch das ein Folge von graphischen, fenster-basierten Benutzeroberflächen.

Noch weniger bekannt (und oftmals auch ohne weitere Funktion) ist die Tastenfunktion des Mausrades – diese variiert von Software zu Software stark.

Bleibt eigentlich nur noch eine Taste übrig, im Regelfall als linke Maustaste bezeichnet, allgemeiner ist es die unter dem Zeigefinger. Mit dieser Taste führen wir die allermeisten Operationen aus – von Markieren durch Ziehen, Positionieren des Cursors im Programmcode bis hin zum Anwählen/Anklicken von Schaltflächen verschiedenster Art. Eigentlich ganz logisch, der Mauszeiger als verlängerter, digitaler, virtueller Zeigefinger. Leider hat sich unter Windows die Technik des Doppelklicks zum Starten von Programmen etabliert (unter Linux reicht ein einfacher Klick) – mit teilweise skurielen Auswüchsen: Auf nahezu alles und jedes wird doppelt drauf geklickt – ob sinnvoll oder nicht! Da wird im Netz auf Links ein Doppelklick ausgeführt, weil man ja eine Aktion erwartet und man bei Rechnern immer alles mit Nachdruck tun muss … so oder ähnlich muss sich das Doppelklicken bei einigen Leuten ins Gedächtnis eingebrannt haben. Ich frage mich manchmal was wohl passiert wäre, wenn Microsoft damals es für praktischer befunden hätte den Tripleclick oder gar den Penta-Klick als Startoperation zu verwenden …

Falls irgendjemand eine Idee hat, wie man die “Seuche” der Doppelklickeritis auszurotten – ich bin für jede Anregung dankbar. Ich habe ja schon überlegt, ob ich einfach überall ein JavaScript einbaue, das zentral die Doppelklicks zählt und dann ggf. nach übermäßiger Menge eine Fehlermeldung ausgibt. Ob das wirklich zielführend ist, wage ich zu bezweifeln. In diesem Sinne “happy x-fach clicking”

RPM und andere Höllen

Da denkt man an nichts böses und will nur mal eben eine aktualisierte Software auf dem Server einspielen. Eigentlich keine größere Sache sollte man meinen, sind doch die aktuellen Linux-Distributionen allesamt mit einem Paket-Management-System ausgestattet, das es erlaubt Software recht einfach zu installieren und zu warten. Wenn alles glattläuft, wie gesagt, wenn …

Angefangen hat alles mit einer Fehlermeldung, dass in einem Webinterface die Bilder nicht angezeigt werden. Im Hintegrund werkelt ein PHP-Skript, das die Bilder bei Bedarf auf die passende Größe runter sakliert – das senkt den Bandbreitenbedarf und die Übetragungszeiten für eine Website. Zudem hat man dann als Autor noch ein wenig mehr Einfluss auf die Qualität – die Skalierungsmechanismen der verschiedenen Browser sind nicht alle wirklich gut.

Ursprünglich habe ich mal auf die integrierte GD-Bibliothek von PHP gesetzt allerdings musste ich recht bald schon feststellen: Die ist für einfache Dinge ganz brauchbar (und in den meisten Fällen auch einfach schon vorhanden), aber die Performance ist nicht unbedingt berauschend. Gerade aber für die Erstellung von Bildergalieren on-the-fly ist die Performance (oder die Ungeduld des Benutzers) wichtig. Fündig geworden bin ich bei der Imagick-Erweiterung für PHP. Diese basiert auf der ImageMagick-Bibliothek. Diese hat den Vorteil direkt in C geschrieben zu sein und die Performance macht echt Freude. Zudem sind die Möglichkeiten doch mittlerweile sehr ausgefeilt.

Wie nahezu jede Software hat sich auch Imagick weiterentwickelt und damit gab es einige Veränderungen an den Schnittstellen und Funktionen – daher funktioniert die Bilder-Skalierung nicht mehr wie gewünscht: Auf dem Testserver hatte ich eine aktuellere Version installiert und auch auf dieser Basis programmiert – mit der älteren wollte das nicht so recht harmonieren, es fehlten einfach ein paar Funktionen bzw. diese wurden verändert und teilweise umbenannt.

Nun gut, dann aktualisiert man doch einfach auch mal das produktive System. Da mein Hosting-Anbieter zum Installationszeitpunkt nur die Wahl zwischen Plesk (alles vorgefertigt und Clicki-Bunti) oder CentOS 5 minimal geboten hatte, habe ich mich notgedrungen für CentOS als RedHat-Devirat entschieden, denn auf einigen Komponenten möchte ich doch gerne etwas mehr Einfluss nehmen als es Plesk von Hause aus zulässt (Stichwort Mailserver, Virenscanner und Authentifizierungsmethoden). CentOS ist ein Unternehmenslinux und das merkt man – hier wird viel Wert auf stabile und sichere Software gelegt, weniger darauf die aktuellsten Funktionen bereit zu halten. Als Folge habe ich damals schon einige Software von Hand kompiliert und installiert – eine Zeit lang hatte ich ja auch mit Linux from Scratch gearbeitet – also kein wirkliches Neuland für mich. Allerdings klappt es nicht immer auf Anhieb, die Software selbst zu installieren und nur bestimmte Teile direkt wie geliefert zu verwenden. Aber es hat ja am Ende alles funktioniert. Nur mit den Updates muss man dann halt vorsichtig sein.

Das letzte Update ist denn auch irgendwo mal stecken geblieben. Als Folge davon gab es noch nicht vollendete Transaktionen des Paket-Managers (yum) – mit
[code]yum-complete-transaction[/code] lässt sich soetwas auch beheben. Nur ärgerlich wenn das auch nicht klappt, weil dem virtuellen Server mal wieder der Arbeitsspeicher ausgeht – also erst mal einige Server-Prozesse stoppen, und dann das Update machen … Immerhin läuft es dann auch durch. Auch wenn noch ein paar Klippen wie beschädigte Repository-Datenbanken zu beheben sind.

Wie sich herausstellt: Leider ist mit den verwendeten Quellen / Repositories keine aktuellere Version von Imagick zu bekommen. Aber es gibt ja alternative Quellen wie das Remi-Repository – dort finden sich viele Pakete aktuellerer Software als in den offiziellen Quellen von CentOS. Das führt ggf. zu doppelten und widersprüchlichen Paketen und Abhängigkeiten die sich im Kreis drehen. Mit ein wenig Nacharbeit kann man diese Abhängigkeiten aber auflösen, indem man explizit vorgibt, welche Version aus welcher Quelle man denn nun haben möchte. Damit lässt sich schon mal die aktuelle Fassung von ImageMagick installieren (das Paket dazu im Remi-Repository heißt ImageMagick2).

Wie ich bereits geschrieben hatte, habe ich einiges an Software selbst kompiliert – unter anderem PHP, da es das von Haus aus bei CentOS nicht mit den Erweiterungen und Einstellungen und vor allem in einer aktuellen Fassung gab. Das macht mir natürlich jetzt etwas Probleme, denn die Imagick-Erweiterung lässt sich nicht so ohne weiteres per Paket-manager installieren. PHP hat dafür mittlerweile etwas vergleichbares wie einen Paket-Manager – nur auf Quellcode-Basis mit automatischer Kompilierung. Vergleichbar ist das mit dem CPAN-Archiv von Perl – auch dort werden viele Module für Perl bereit gehalten und lassen sich damit auch problemlos installieren und auf dem aktuellen Stand halten. Bei PHP heißt das Tool dazu PECL (PHP Extension Community Library), zudem gibt es noch PEAR (PHP Extension and Application Repository) – beide arbeiten recht gut zusammen und machen das Leben mit PHP um einiges leichter.

PECL ist das richtige Stichwort – es bietet unter anderem auch die Option die Imagick-Erweiterung zu installieren. Leider ist die Freude erst mal nur kurz – das verwendete PHP-Modul wird weiterhin gegen die veraltete Version (6.2.x) von Imagick gelinkt. Klar die hatte ich ja nicht deinstalliert, denn das Package ImageMagick2 darf parallel zu ImageMagick installiert sein. Also das alte endlich mal loswerden und per Paket-Manager deinstallieren. Aber oh Wunder – PECL kann auf einmal das Modul nicht mehr bauen….
Lösung: Es fehlten die notwendigen Header-Dateien zum Paket ImageMagick2 – das Paket dazu heißt praktischerweise ImageMagick2-devel (für development-version) – das bringt die Header mit, im normalen Betrieb werden die nicht benötigt, nur wenn man eben selbst Software unter Verwendung der Library schreiben oder kompilieren möchte.
Damit klappt dann auch endlich die Kompilation des aktuellen Modules. Nochmal den Webserver neu starten und dann funktioniert auch endlich die ursprünglich gewünschte Anzeige der Bilder. 🙂
Mittlerweile ist es mal wieder kurz vor 0:00h geworden, aber die Mühe und der Bastelaufwand waren ja vom Erfolg gekrönt.

Nur noch kurz testen ob auch sonst alles auf dem Server noch richtig läuft – beim Update wurden ja doch auch einige andere Pakete gleich mit aktualisiert. Und – oh Schreck! – der Mailserver mag nicht … genauer gesagt, das Filter-Daemon amavisd kommt nicht mehr richtig in Gang. Amavisd ist die zentrale Schnittstelle zwischen Mailserver und diversen Viren und Spam-Scannern. Ohne die Software, kein e-mail-Vekehr.
Der Neustart von Amavisd bringt die Ursache recht schnell an den Tag: Da sind einige Perl-Module beim Update zu Bruch gegangen, wahrscheinlich, weil sie in verschiedenen Versionen installiert wurden – einmal per CPAN und einmal per Paket-Manager der Distribution (leider sind sich diese beiden Werkzeuge in den seltensten Fällen wirklich grün). Das manuelle Entfernen der Module aus der Installation bringt auch das wieder ins Lot.

Nun stellt sich nur noch der Virenscanner Clam-AV etwas bockig – das Scanner-Daemon will und will nicht starten – Ursache ist diesmal aber nicht die Software sondern leider mal wieder die Beschränkungen der Virtualisierung – zum Starten braucht Clamd recht viel Arbeitsspeicher: ca. 100 Megabyte – bei nur 768 MB virtuellem RAM kann es aufgrund der anderen Prozesse wie MySQL, Apache, Postfix usw. da recht bald recht eng im Speicher werden. Da MySQL sich doch auch recht gut im Speicher breit macht (klar Cache braucht nunmal Platz) ziehe ich dort die Daumenschrauben ein wenig fester an, dann reicht es auch noch für den Start von Clamd – aber gut ist diese Lösung auf Dauer nicht, ich werde wohl oder übel einen anderen Server brauchen, ob es wieder ein virtualisierter wird, weiß ich noch nicht so genau. Auf alle Fälle machen derartige Nachschichten nicht wirklich Spaß

Ein echter Mangel – mehrere Dimensionen in HTML

Die Erde ist eine Scheibe … dieser fehlerhaften Auffassung ist ein Großteil der Menschheit mittlerweile entwachsen. Leider ist die mehrdimensionale Denkweise in Rechnern immer noch ein Problem. Vor allem in einem der modernsten Kommunikationsmittel überhaupt. Das WWW ist bestenfalls noch zweidimensional, aber eigentlich ja noch nicht mal das.

Jetzt werden einige einwenden, dass ein Bildschirm doch schon immerhin mal 2 Dimensionen (Breite und Höhe) mitbringt, und es auch schon Ansätze für dreidimensionale Videos im Netz gibt – alles recht und schön – nur das Datenformat HTML ist leider so flach wie man es sich nur irgend vorstellen kann. Es sollte halt möglichst universell und einfach sein – so war einmal die Philosophie.

Schlecht gefahren ist man damit nicht – vor allem in der Anfangszeit des Netzes war es auch mehr als ausreichend – lästig wird die flache Struktur, wenn man nicht mehr nur die Anzeige einer Seite betrachtet sondern an Web-Applikationen denkt.

Altbekannt ist den meisten Leuten das Dilemma mit den Tabellen – jeweils eine Zeile und dann die Spalten Stück für Stück füllen. Soweit ja kein Problem und mit vergleichsweise wenig Aufwand lässt sich auch aus jeder mehrdimensionalen Struktur (z.B. einer Datenbank) eine “plattgeklopfte” Variante erzeugen die für die Anzeige taugt.

Umgekehrt wird es aber ungemütlich – ich habe es beruflich immer wieder mit tabellenförmigen Daten zu tun, die auch als solche am leichtesten intuitiv eingegeben werden können. Klassisches Beispiel ist die Relation von Mitarbeitern und deren geleisteten Arbeitsstunden – im allgegenwärtigen Excel würde man kurzerhand hergehen und je nach Gusto in die Zeilen die Personen und in die Spalten die Tage des zu betrachtenden Zeitraums eintragen, wahlweise geht es natürlich auch mit vertauschten Rollen zwischen Zeilen und Spalten. Aber: Jede Zelle in Excel lässt sich wunderbar über Zeile und Spalte adressieren. In HTML gibt es für entsprechende Formularlemente nur einen Referenz-Wert: Das name-Tag – denn nur dieses wird als Schlüssel für die serverseitige Auswertung geliefert, immer ein Satz Tupel. Zwar gibt es gerade in PHP Vereinfachungen auf Basis der Benennung um beispielsweise multiple-Choice etwas leichter zu machen, aber das hilft auch nur bei Ankreuz-Antworten.

Was bleibt ist eine eigene Logik zu erstellen nach der die Felder benannt werden und dann anhand dieser die Felder eindeutig zu kennzeichen – z.B. mittel AxB wobei A und B beliebige ganze Zahlen sind. Das macht auf der Serverseite oder auch im JavaScript natürlich wieder jede Menge Aufwand. Ein anderer Weg ist mir derzeit aber nicht bekannt. Ich frage mich, mit welcher Version von HTTP und/oder HTML endlich vernünftige Möglichkeiten geschaffen werden mehrdimensionale Eingaben standardisiert zu behandeln.

Wie gesagt: So selten sind mehrdimensionale Daten in der realen Welt gar nicht – sie ist ja bekanntlich auch keine Scheibe.