Rheintalquerung 2014 – 43km durch die Rheinebene

Zum zweiten Mal für mich hieß es am vergangenen Wochenende: Von der Bergstraße an die Weinstraße. Eine kleine Gruppe von rund 20 Läufern nimmt diese Strecke traditionell im Februar in Angriff. Das ganze hat keinerlei Wettkmapf-Charakter sondern ist vielmehr als eine Sonderform einer langen Laufeinheit zu sehen. Die Organisation findet dabei rein privat statt. Ähnlich wie beim Amberger Ultra Lauf (AULA) gibt es an vorab definierten Stellen entlang der Strecke Versorgung mit Getränken und Verpflegung. Auf dem Weg sind vier solche Stopps verteilt, im Abstand von rund 10 km – je nachdem was die Bebauung und die Geographie gerade zuläst – man ist als Läufer da ja doch etwas flexibel. Abschluss in Bad Dürkheim bildet der Besuch in der Therme bzw. Sauna, um wieder aufzutauen.

Für mich beginnt die Vorbereitung bereits am Vorabend: Nachdem mein Spezial-Schoko-Kuchen bereits letztes Jahr sehr gut ankam, gab es diesmal bereits vorab viele Anfragen ob ich den auch wieder mitbringe. Klar mache ich das. Viel bedarf es eigentlich nicht für den Kuchen, aber Einkaufen muss ich dennoch was fehlt. Ein Blick in den Schrank sagt mir: Verzierung (Smarties) ist noch da … zumindest sugeriert die Rolle das. Wie sich nach dem Backen herausstellt ist die Packung zwar da, aber nicht mehr viel darin … also gibt es weniger Smarties auf dem Kuchen, dafür brauche ich die noch vorhandenen restlichen Weihnachts-Zucker-Streusel in verschiedenen Formen und Farben auf … so sieht der Kuchen hinterher immer noch richtig gut aus.

Los geht es am nächsten Tag um kurz nach sieben: Mit dem Läufertaxi der Familie Müller geht es mit Stopp in Heddesheim weiter zum Startpunkt in Leutershausen. Dort warten bereits die ersten Läufer auf den Start. Losgehen soll es um 8:00h. Bis kurz vor dem Start unterhalten wir uns, während der Kleinbus mit Gepäck und Verpflegung bestückt wird.

Pünktlich starten wir dann den Lauf mit der Unterquerung der Bergstraße in Leutershausen – erstes Ziel ist die Versorgungsstation in Ilvesheim am Neckar-Kanal. Es geht über die Autobahn und die Eisenbahn, durch die Randbezirke von Heddesheim – das Wetter ist wunderbar, die Sonne scheint, ein wenig Wind und Temperaturen um die 10°c. So lässt es sich aushalten. In Heddesheim hat Frank noch einen Foto-Posten stationiert, da die Strecke praktisch fast bei ihm vor der Haustüre vorbei läuft.

Schneller als mancher glauben kann haben wir den ersten Versorgungspunkt in Ilvesheim erreicht – ich genehmige mir ein Stück Kuchen und einen guten Schluck Tee bevor es weiter geht.

Den folgenden Streckenabschnitt kenne ich nur zu gut – wenn auch in entgegengesetzter Richtung – entlang des Neckarkanals sind wir regelmäßig von der DJK aus unterwegs – wenn auch eher im Sommer, aber das Wetter würde aktuell ja dazu passen. Mit langer Hose und langem Trikot plus Jäckchen bin ich schon fast zu warm angezogen.

In Feudenheim geht es über die Schleuse und auf der anderen Neckarseite weiter – in der Ferne das MVV-Hochhaus – kurz dahinter liegt schon der nächste Versorgungspunkt am Brückenkopf der Kurt-Schuhmacher-Brücke, die letzte Versorgung bevor es nach Rheinland-Pfalz geht.

Auf der Brücke bekommen wir einen leichten Vorgeschmack für die noch bevorstehenden rund 28km – es windet ganz ordentlich und ich bin froh, als wir wieder in der Bebauung in Ludwigshafen sind. Im Stadtteil Hemshof heißt es aber auch aufpassen – reihenweise liegen Tretminen in Form von Hunderückständen auf der Straße – so schlimm wie auf keinem anderen Streckenabschnitt.

Es folgt eine Strecke für den Kopf: Immer parallel zur Bahntrasse geht es nach Oggersheim – schnurgerade aus über mehrere Kilometer. Die Stimmung ist gut, und so ist diese Strecke schneller überwunden als ich gedacht hätte. Insgesamt läuft es besser als beim letzten Mal, zumindest für mich. Das Feld der Läufer hat sich zwischenzeitlich sehr gestreckt – im Zentrum Oggersheims machen wir einen Halt und warten auf den Rest. Letztes Jahr ging es uns ähnlich und die ersten Schneeflocken fielen vom Himmel. Dieses Jahr ist es dafür zu warm, aber es zieht sich langsam doch etwas zu. Einer unserer langsameren Mitläufer steigt notgedrungen aus und lässt sich vom Versorgungsbus abholen – er hat die Strecke ein wenig falsch eingeschätzt und ist heute einfach nicht so gut drauf, als das er sie jetzt durchbeißen könnte. So geht es weiter, und wir lassen kurze Zeit später die Gemarkung Ludwigshafens hinter uns.

Das nächste Ziel heißt Ruchheim – dort steht nach 12km dann auch wieder der Versorgungsbus. Der Kuchen findet mittlerweile gut Anklang – ich habe ettliche Fragen nach dem Rezept. Auch für mich gibts noch ein Stück des Energiespenders und ordentlich warmen Tee bevor es weiter geht. Mittlerweile haben wir eine fast geschlossene Wolkendecke und der Wind pfeift unangenehm, vor allem wenn man wie vor Ruchheim durchs offene Feld ohne größeren Windschutz läuft.

Wir überqueren die Autobahn und erreichen wenige Minuten später das östliche Ende von Maxdorf – das Dorf ist ein typisches Straßendorf was die Ausdehnung betrifft. Es zieht sich mehrere Kilometer bis man am Westende angekommen ist. Immerhin laufen wir nicht entlang der Hauptstraße sondern in der Bebauung. Es ist mittlerweile um die Mittagszeit herum und so wabern uns immer wieder interessante Küchengerüche entgegen, die einen doch irgendwie vom Laufen ablenken. Obwohl es Vorschläge gibt einfach die nächste Küche mit der Mannschaft zu stürmen besinnen wir uns eines Besseren – der Versorgungsbus ist ja auch nicht mehr so weit. Im direkt angrenzenden Birkenheide verfehle ich mit der Vorausgruppe eine Abzweigung – was sich aber als nicht dramatisch heraus stellt, die beiden möglichen Pfade vereinigen sich nach etwas mehr als einem Kilometer von selbst wieder, direkt in Sichtweite der letzten Verpflegung vor Bad Dürkheim.

Ein letztes Mal greife ich bei Kuchen und Tee zu, dann geht es auf die Schluss-Etappe, noch einmal durchs freie Feld. Nach einem leichten Rechtsschwenk ist dann auch schon Bad Dürkheim in der Ferne zu sehen. Noch sind es etwa 6 Kilometer bis ins Zentrum an das Gradierwerk der Saline, aber mit einem Ziel vor Augen läuft es sich gleich nochmal leichter – da kann auch das etwas trostlose Gewerbegebiet nicht mehr bremsen. Es geht in einigen Kurven durch die Randlagen der Stadt – sowie der Blick auf das Gradierwerk frei wird, gibt es auch die wichtigste Meldung der GPS-Läufer: Die 42,2km sind geschafft – Marathondistanz. Ich fühle mich noch richtig gut, ich bin fast versucht zu sagen: „Lasst uns gleich noch einen laufen…“ aber ich lasse es. Den letzten Kilometer bis an die Weinstraße geht es entlang des Gradierwerks.

Nach etwas mehr als 5h sind wir am Ziel unserer Trainingseinheit – im Salinarium heißt es Aufwärmen und entspannen – meine Freundin stößt von Speyer nach ihrem Training zu uns, was mich natürlich total glücklich macht. Gemeinsam verbringen wir zwei entspannte Stunden in Sauna und Solebecken bevor es in der Gaststätte „zum Faß“ (untergebracht im größten Fass der Welt) zum Abendessen geht.

Für einige Läufer ist das Training damit noch nicht vorbei – sie übernachten in Bad Dürkheim und laufen am Sonntag wieder zurück nach Leutershausen. Eigentlich bin ich ja für solcherlei Exkursionen auch zu haben, aber für mich steht am Sonntag ein anderes Training auf dem Programm: Möbel- und Kistentragen – der Umzug meiner Freundin zu mir rückt näher. Da muss man eben Prioritäten setzen. Auf alle Fälle kommt die Rheintalquerung (egal in welcher Form) für das kommende Jahr wieder mit in die Planung. Dann hoffentlich auch wieder mit genügend Smarties für den Kuchen :O

 

Drei Monate Jobticket – ein Zwischenstand

Seit Juli kenne ich meine Freundin Marion, noch wohnt Sie in Speyer. Schon bald nachdem ich häufiger zu ihr gefahren sind, habe ich gemerkt: Das geht ins Geld, alleine für den Sprit. Eigentlich hatte ich ja Bahnfahren für mich abgehakt – bis dahin war es zu umständlich und zu teuer. Aber angesichts der veränderten Situation habe ich mich nochmal mit den Angeboten auseinander gesetzt. Und siehe da: Mit dem Jobticket viermal nach Speyer und zurück gefahren und schon bin ich im Plus.

Das Jobticket kostet aktuell etwas mehr als 35 EUR, weil auch mein Arbeitgeber einen Anteil bezahlt. Von daher war es dann keine Frage der Kosten mehr, Viel interessanter war der Komfort-Faktor: Wie flott komme ich von A nach B? Mit dem Auto habe ich mal nachgeschaut: Ca. 40-50 Minuten brauche ich von Haustüre zu Haustüre bzw. von Haustür bis ins Geschäft. Mit der Bahn und Bus dauert der Spaß ca. 60 Minuten, tendentiell etwas mehr.

Positiv überrascht hat mich die Qualität der Verbindung – mit 1-2x Umsteigen komme ich direkt bis vors Werkstor bzw. zu mir nach Hause. Für die Strecke von daheim bis zur Arbeit taugt die Verbindung auch weiterhin nicht, da bin ich mit dem Rad oder sogar zu Fuß schneller.

Kritisch ist die Vertaktung der einzelnen Strecken. Der S-Bahn-Haltepuntk an der SAP-Arena ist zwar ganz gut angebunden, aber nicht wirklich ein Highlight. Besonders ärgerlich ist der Bus-Takt des 50er Buses – nur alle 20 Minuten – besser als nichts, aber besonders ärgerlich einfach wenn man ihn gerade verpasst, weil die S-Bahn mal wieder einige Minuten Verspätung eingefahren hat.

Mit der Umstellung des Fahrplans im Dezember ist die Verbindung noch etwas ungünstiger geworden – nur noch alle Stunde mit etwas verlängerter Wartezeit klappt die Vertaktung an der SAP-Arena. Die S3 hält dort nämlich nicht mehr, oder zumindest nicht zu den Zeiten an denen ich dort durchkomme. Alternative lautet am Hauptbahnhof umsteigen, aber die Zeit ist verdammt knapp wenn man von Gleis 9 bis auf den Vorplatz kommen will – tägliches Spurttraining inklusive. Die nächste Bahn dort kommt dann aber auch schon 10 Minuten später. Die Busverbindung kann man dann allerdings auch in den Wind schreiben.

Was sind die praktischen Erfahrungswerte: Insgesamt ist das Reisen deutlich entspannter als sich jeden Morgen mit dem Auto nach Mannheim zu quälen. Nachteilig ist sicherlich die etwas längere Fahrzeit und die verminderte Flexibilität – pünktlich muss man schon sein, sonst hat man das Nachsehen. Dafür hat man aber auch während der Fahrt in der Regel die Chance sich um diverse Kleinigkeiten zu kümmern. Dank Laptop und Smartphone kann ich in der Bahn einigen Schriftkram wie e-mails oder Protokolle zu Vereinssitzungen recht gut machen.

Ein praktisches Hilfsmittel für jeden ÖPNV-Nutzer ist ein Roller bzw. Kickboard. Gefunden habe ich das meiner Schwester, es lag bislang ungenutzt auf dem Speicher bei meinen Eltern. Die ersten Versuche resultierten in etwas Muskelkater (ganz andere Muskulatur als beim Laufen), einigen kleinen blauen Flecken von unerwarteten Stopps an Randsteinen, Kuhlen und Co. Aber mit der Zeit lernt man mit dem Ding richtig umzugehen. Egal wie blöd das aussieht, das Gerät ist einfach praktisch. Besonders gut eignet es sich nach meiner Erfahrung für Distanzen bis ca. 1km. Das ist ausreichend um an den Bahnhof in Speyer zu gelangen (Bus wäre deutlich länger), oder auch die letzte Meile von der Haltestelle bis in die Firma zu überbrücken, wenn man nicht auf den Bus warten will. In der Regel bin ich so deutlich schneller.

Fazit: Anfänglich war ich ja wirklich skeptisch, aber mittlerweile muss ich sagen: Das Jobticket lohnt sich auf alle Fälle. Ich werde es auch behalten, wenn ich nicht mehr so häufig nach Speyer muss, weil wir unsere Haushalte zusammengelegt haben. Aber alleine der Komfort Abends in die Stadt und wieder nach Hause zu kommen, ohne ständig nach einem Parkplatz suchen zu müssen, das ist einfach nicht zu toppen. Auch für Ausflüge am Wochenende ist das Ticket super praktisch – dank Mitnahme-Regelung ist es sehr einfach möglich in den Odenwald oder auch in Pfalz zu fahren. Je nach Region kann man dann auch einen „Pälzer Weinschorle“ oder „Äppel-Woi“ trinken ohne das man groß daran denken muss auch wieder heim zu fahren.

Ich kann es jedem bisher nur empfehlen. Mal sehen wie es sich weiter entwickelt, wenn ich umziehe. Die ÖPNV-Anbindung wird bei der Auswahl der Wohnung auf alle Fälle eine Rolle spielen.

RLT Ultra-Marthon – von wegen Rodgau „Monotones“

Das neue Jahr ist gestartet – das Training läuft und läuft (im wahrsten Sinne des Wortes) – nur die Wettkämpfe lassen noch auf sich warten. Eigentlich ist es ja auch noch etwas arg kühl für einen Wettkampf und nicht die klassische Zeit – wer sich zu Jahresbeginn einen guten Vorsatz genommen hat, der ist jetzt noch nicht so weit einen größeren Wettkampf durchzuziehen. Aber wer schon im Training ist und „nur“ über Weihnachten etwas „aktive Regeneration mit verstärkter Kalorienaufnahme“ gemacht hat, der lauert ja schon förmlich auf die ersten Chancen.

Bisher habe ich meine Saison frühestens im Februar in Groß-Gerau über 10km gestartet. Letztes Jahr hat mich eine ordentliche Grippe davon abgehalten in Rodgau gleich zu Jahresbeginn einen Testlauf für Biel zu absolvieren – ob das damals schon ein Vorhinweis auf den Einsatz an der Elbe war? – Egal, schon vor Weihnachten haben wir das in der Laufgruppe in den Kalender eingetragen. Mit einem Ziel trainiert es sich ja bekanntlich leichter. Rodgau ist für mich der erste Ultra des Jahres in der näheren Umgebung – etwas mehr als 100km mit dem Auto – das ist definitiv machbar.

Aus der Anmeldung wusste ich schon: Es sind etwas mehr als 1000 Leute angemeldet für diesen Ultra-Lauf entsprechend voll ist es auf den Parkplätzen aber wir finden doch noch einen Platz, gut dass wir als Fahrgemeinschaft angerückt sind. Auf den Support durch meine Freundin Marion muss ich dieses Mal verzichten, sie hat selbst eine Vereinsveranstaltung im Laufe des Tages – aber bei den Temperaturen an der Strecke stehen, ist auch nicht jedermanns Sache (auch wenn die Organisatoren die Supportler gegen eine Spende an der Versorgung teilhaben lassen – sehr löblich).

Vor dem Lauf noch eine kurze Abstimmung – die Gruppe um Peter Müller (auch bekannt als P.U.L.T. = Peters Ultra LaufTreff) ist bunt gemischt und so teilen wir uns auf – einige wollen nur ankommen oder kündigen gleich zu Beginn an, nur 40km oder ggf. einen Marathon mitzumachen – die große andere Gruppe peilt anfänglich mal die 5:45 min/km an. Eine Besonderheit des Laufs im Rodgau: Es ist ein Rundenlauf – jede Runde 5km, 10 Runden sind zu absolvieren. Jeder der nach mehr als 15km aussteigt wird aber in der entsprechenden Streckenlänge separat gewertet – auch nicht verkehrt, falls es nur ein Testlauf ist, kann man wenn es hart auf hart kommt elegant aussteigen. Vor dem Start gibt es eine kleine Aufwärm-Übung: Vom Parkplatz bis an den Start geht es erst einmal 1km durch den Wald – schon der Kilometer kommt mir etwas langezogen vor, ich hoffe innerlich, dass die anderen offiziell vermessen sind.

Pünktlich um 10:00h ist Start und die Masse setzt sich in Bewegung. Noch ist das Feld dicht gedrängt und beim Überqueren der Matte staut es ein wenig, aber nach und nach kommt alles ins Laufen. Ich orientiere mich – Jürgen, Frank und Harald sind alle dicht bei mir und wir geben ein wenig Gas. Frank ist noch etwas kalt und daher schlagen wir ein geringfügig schnelleres Tempo an, damit ihm nicht kalt wird. Auf den ersten Kilometern sind wir mir 5:30min/km unterwegs. Aber es läuft sich ja so locker, also lassen wir es laufen. Nach 800m kommt die Versorgungstation und es geht ins freie Feld – es ist mit Temperaturen um den Gefrierpunkt recht frisch und ein leichter Wind kühlt zusätzlich. Kurz nachdem es wieder in den Wald geht, passieren wir bereits Kilometer 2 – na das ging ja fix. Bei Kilometer 2,5 steht ein weiteres Zelt mit Musik für die Läufer, an der Kreuzung geht es auf eine kurze Pendelstrecke damit pro Runde auch wirklich 5km zusammen kommen. Kurz nach der Pendelstrecke steht auch schon das Kilometerschild 3km – superfix und lockerleicht bisher. Natürlich immer noch deutlich zu schnell – mittlerweile sind wir bei nur noch etwas mehr 5min/km und ich mahne ganz vorsichtig, doch etwas langsamer zu machen. Aber warum nicht laufen wenn es gut läuft? Es geht im Zick-Zack durch eine paar Wiesen bevor die Strecke wieder im Wald verschwindet. Im Gegensatz zu letztem Jahr, als überall Eis und Schnee lagen haben wir dieses Jahr jede Menge Matsch, der natürlich durch die Läufermassen auch noch schön breit getreten wird. Bei Kilometer 4 geht es eine kleine Steigung hoch – nicht wirklich viel, laut Höhenmesser sind es pro Runde nur um die 10hm. Aber ich ahne schon, dass dieser Buckel am Ende sich um so höher anfühlen wird. Noch ein paar Schlenker und schon geht es auf die Start-Ziel-Gerade. Die gut sichtbare rote LED-Uhr spitzt schon aus der Ferne durch das Geäst.

In Runde zwei greife ich gleich mal bei der Ernährung zu – Banane und Keks, das halbwegs gemütlich gekaut und schon ist man wieder bei Kilometer zwei – aus der Entfernung schallt und da schon „Cotton Eye Joe“ entgegen. Wieder nix von wegen „Rodgau Monotones“ mit „Die Hesse komme“ – aber es sind ja noch einige Runden bis zum Ziel. Ich laufe ein gutes Stück mit anderen Läufern – Frank hat sich vorne abgesetzt, Jürgen sehe ich jedesmal auf der Pendelstrecke, Harald ist auch irgendwo unterwegs.

Runde drei hänge ich mich an ein paar nette Läufer, einer aus Heilbronn – Tempo weiterhin deutlich unter 5:30 min/km.Aber noch ist es recht gut zu laufen, auch wenn die Strecke langsam doch etwas monoton wird. Runde vier gibt es wieder Kekse und Banane wie jede Runde, da ich selbst etwas zu trinken am Gürtel habe, entfällt der Stopp am Getränkestand. Die kleine Gruppe zerfällt, ich ziehe an der Verpflegung schneller wieder von dannen. Bei Kilometer 4 haben sie mich dann wieder eingeholt. Irgendwo entlang der Strecke sammle ich auch Frank wieder ein. Jürgen hält weiter Abstand, auch wenn der scheinbar kürzer wird.

Runde vier läuft weiterhin richtig gut für mich, ich werde immer noch schneller obwohl ich eigentlich langsamer machen wollte. Naja kann man nichts machen. Langsam wird die Strecke aber tatsächlich langweilig bzw. monoton. Immerhin rolle ich langsam das Feld von hinten auf, es sind also immer Läufer vorhanden an die man sich langsam „ransaugen“ kann. Das motiviert natürlich ungemein. Auch die fünfte Runde vergeht one irgendwelche nennenswerten Beschwerden oder Veränderungen – ich futtere weiterhin jede Runde Banane und Kekse, dazu Apfelsaftschorle. Aber die Motivation lässt langsam nach. Ich versuche mich damit aufzuheitern, dass die Hälfte ja schon geschafft ist und 25km die noch vor mir liegen ja nur ein wenig mehr als eine Trainingseinheit sind.

Auf Runde sechs ist es deutlich zu merken: Jürgen holt langsam aber sicher auf – ich weiß nur nicht ob er schneller oder ich langsamer werde. Aber es sind ja nur noch 20km als ich durchs Ziel laufe – nicht mal mehr ein Halbmarathon, ja fast noch nicht mal eine richtige Trainingseinheit – aufgeben: Jetzt nicht mehr. An der Versorgung ist es etwas voll in dieser Runde – ich erwische gerade keine Kekse sondern nur Banane. Aber das sollte ja eigentlich auch reichen – weit ist es ja nicht mehr. Was mir auffällt: Der Wind hat ein wenig aufgefrischt, auf den Passagen durch die Felder wird es merklich frisch in meiner dünnen Bekleidung. Ich laufe mittlerweile meinen ganz eigenen Pace, irgendwie findet sich keiner in meiner Geschwindigkeitsklasse. Aber immer noch jede Menge Leute. Auch die erste Frau hat zwischenzeitlich überholt, aber es ist ja auch ein Testlauf für mich. Die Platzierung ist mir im Prinzip egal, das Wichtigste ist immer noch das Ankommen.

Immerhin: Runde sechs ist gemeistert, weiter geht es mit Runde 7. Immerhin schon 35km gelaufen – die Marathon-Marke kann man schon fast sehen (genauer gesagt kommt man jede Runde an der entsprechenden Markierung vorbei, aber sie zählt natürlich nur in Runde 9). Ich motiviere mich – bis ins Ziel komme ich auf alle Fälle nochmal, und wegen drei läppischer 5km-Runden werde ich jetzt nicht mehr aufgeben, auch wenn es mittlerweile härter wird, aber noch fühle ich mich ganz passabel.

Runde acht beginnt ganz gut, aber ich merke, dass ich langsam Federn lassen muss – ich habe etwas mehr Durst und bediene mich an meiner Flasche – nur um dann festzustellen, dass die fast leer ist. Das ist natürlich gerade etwas blöd, aber weit ist die nächste Versorgung ja eigentlich nicht. Trotzdem: ich werde langsamer und Jürgen zieht an mir vorbei. An der Verpflegung tanke ich ein wenig, aber ich bin so fertig, dass es gar nicht recht flutschen will. Immerhin bin ich ja nun in der Marathonrunde – noch ein klein wenig mehr als 9km liegen vor – mir. Also Kopf hoch und durchbeißen. So zumindest die Theorie. Die geht aber nur bis zur nach der Marathon-Marke auf – bei Kilometer 43 streikt mein Körper endgültig und ich muss frustriert gehen. Immerhin finde ich einen anderen Läufer dem es ähnlich geht – er hat sogar noch eine Runde mehr vor mir. Gegenseitig motivieren wir uns und schieben uns so langsam aber sicher in Richtung Verpflegung – eine Runde ist es noch, die will ich dann auch noch machen, der Ehre halber wenigstens ankommen. Was ich bisher vergessen hatte beim Esssen: Elektrolyte, insbesondere Salz. Das merke ich nun um so mehr, bei jedem Versuch auch nur ganz vorsichtig wieder anzujoggen zucken die Waden und machen mir klar: Mach weiter und es krampft richtig.

An der Versorgung mache ich dann Nägel mit Köpfen: Jede Menge Wasser, warmer Instant-Tee, Iso-Getränk, Cola – dazu Bananen und Salz-Cracker. Danach der vorsichtige Versuch wieder anzulaufen, es sind ja nur noch 4,2km – also ein Zehntel Marathon. Nach anfänglichen Protesten aus der Wadengegend läuft es dann docch wieder – wenn auch nicht mehr mit ganz so hohem Tempo. Ich beginne mich auf den Zieleinlauf vorzubereiten. Nochmal die Pendelstrecke, danach sind es nur noch 2km. Letzte abgelesene Zwischenzeit war irgendetwas um 4:10h – im Kopf überschlage ich was angesichts des Gehens bis an die Versorgung noch drin sein könnte – die 4:30h sind definitiv nicht zu erreichen – die 4:40h wären es wohl mit einem Sprint, was aber nicht mehr geht – aber 4:45 sollten machbar sein. Ganz vorsichtig steigere ich wieder das Tempo. Rein in den Wald und die einzige kleine Steigung hoch – noch 1km, ich mahne mich dazu nicht zu sprinten sondern die Kräfte einzuteilen. Endlich kommt die Zieluhr in Sicht – und passend zu meiner wieder hergestellten Form läuft gerade „All right now“ von Free … beim Spurt über die Ziellinie muss ich dann doch mitgrölen – laut und schräg, denn nun ist ja wirklich alles in Ordnung, ich bin im Ziel, ich hab es geschafft.

Die Verpflegung im Ziel ist richtig gut, auch wenn ich wenig Hunger habe – Malzbier, Weizenbier alkoholfrei, Limonade, Tee – was das Läuferherz begehrt. Ich hole meine Tasche und ziehe mir ob der Kälte gleich mal ein frisches langes Trikot und eine trockene Jacke über, die Wettkampfklamotten sind absolut durchnässt. Kurz nach mir trifft Frank ein – auch er hat es geschafft und war im Endeffekt nur wesentlich langsamer. Ich ärgere mich ein wenig über den „Anfänger-Fehler“ mit zu wenig Essen und Trinken, irgendwie muss ich mir wohl doch mal einen Ernährungsplan für solche Aktionen zusammenstellen. Harald lässt noch auf sich warten, aber mir wird es zusehens kalt, trotz der Folienjacke die es im Ziel gibt (sehr praktisch!). Also machen wir uns langsam auf den Weg zur Halle und zum Auto. Ich habe für Haralds Fahrzeug natürlich keinen Schlüssel und da drin liegt mein Handy sowie das Duschzeug. Immerhin mein Notfall-Set aus Handtuch und Duschgelproben habe ich bei mir. Da Harald uns auch am Auto noch nicht eingeholt hat, hinterlasse ich meine Startnummer mit einer Nachricht und begebe mich zum Duschen. Die gibts leider auch nur in Ultra-Form: entweder ultrakalt oder ultraheiß in homäopathischen Dosen. Es reicht fürs notwendigste. Zudem treffe ich Jürgen wieder. Am Auto ist dann auch Harald eingetroffen – ich ziehe endlich wieder richtig warme Klamotten an bevor es heimgeht. Was eine Wohltat.

Insgesamt muss ich sagen: Ein interessanter, gut organisierter und gut besuchter Lauf. Leider mit der Zeit wegen der Runden dann doch auch „Monoton“ wie die passende Band. Aber ich halte mir den definitiv einmal im Hinterkopf, immerhin ist es eine der ersten Veranstaltungen im Jahr, bei der man sehen kann was von der Ultraform aus dem Vorjahr noch übrig ist.

Modularer Querbaukasten in PHP: Traits

Objektorientierte Entwicklung ist mittlerweile der Standard wenn es um Geschäftslogiken geht. Für verschiedene weitere Anwendungszwecke gibt es auch immer noch gute Funktionale Programmiersprachen. Jede Herangehensweise hat ihre Vor- und Nachteile.

Wie immer sind Programmierer komische Wesen und würden an einigen Stellen gerne das Beste aus beiden Welten haben, auch wenn diese sich eigentlich gegenseitig ausschließen.

Aktuell hatte ich mal wieder einen solchen Fall: Es gibt eine „fertige“ PHP-Bibliothek zum Erzeugen von PDF-Dokumenten (diese eigenen sich in der Regel besser zum Ausdrucken als HTML-Seiten) – etabliert hat sich hier FPDF bzw. dessen Fork TCPDF. TCPDF ist die aktuellere und modernere Fassung, sie unterstützt unter anderem die Verwendung von UTF-8-Zeichensätzen. Daher musste ich mich auch „mal wieder“ mit schon lange gepflegten und eigentlich abgeschlossenen PDF-Routinen beschäftigen: FPDF kann mit UTF8 nicht richtig umgehen, somit sehen die erzeugten PDFs aus wie Kraut und Rüben sobald Umlaute oder Sonderzeichen im Spiel sind.

Beim Umstellen gibt es ein paar Feinheiten, aber nichts was einen wirklich davon abhält die Umstellung halbwegs zügig durchzuführen. Die meisten Probleme erkennt man einmal und kann sie dann in den Folgedateien direkt korrigieren.

In diesem Zusammenhang habe ich mich mal wieder etwas geärgert: Viele unserer Dokumente enthalten Tabellen. Soweit so langweilig. Aus Mangel an Alternativen haben wir häufig den Code einfach von der einen eigenen Klasse in die nächste mit kopiert. Das Ergebnis ist altbekannt. Wenn man einen Fehler beseitigen will, muss man alle Kopien mit durcharbeiten. Effizient ist das nicht gerade.

Eine mögliche Option ist es eine eigene Klasse dazwischen zu setzen, die solche Funktionen realisiert. Aber was ist mit den Dokumenten wo man dann gar keine Tabelle braucht – da hat man Pech gehabt? Fazit das geht, aber richtig schön finde ich das auch nicht. Mehrfach-Vererbung kennt PHP nicht – aus gutem Grund (Diamond-Problem). Für meinen Fall hätte ich mir etwas gewünscht wie eine Art Plugin oder von mir aus auch eine Art „include“ das entsprechende Funktionen einbindet wenn sie benötigt werden. Vergleichbar mit dem was ein Präprozessort für C erreichen kann: Macro-mäßig das einfügen was gerade gebraucht wird – bei compilierten Sprachen eine sehr feine Sache, bei Skripten leider kein gangbarer Weg.

Was braucht man eigentlich genau? bzw. was wünsche ich mir? – Das waren meine Fragen. Damit man eine Tabelle einfach einbauen kann braucht man Zugriff auf einige Klassenvariablen – man könnte sich ggf. behelfen, eine Referenz an eine Tabellenklasse zu übergeben und dort den notwendigen Code zu schreiben. Aber eine Tabelle ist ja auch nur wieder eine Sammlung von einfacheren PDF-Elementen – würde also auch wieder aus der TCPPDF-Klasse erben müssen, davon den Code in die andere Klasse zu übergeben mal ganz abgesehen. Eine Art „Nachbau“ des Präprozessors wäre es wenn man hergehen könnte und an der benötigten Stelle in der Klasse einfach per include die Funktionen einbaut die man braucht. Das geht natürlich so nicht, auch weil es im Tabellencode ja durchaus sinnvoll ist, diesen strukturiert zu halten und keinen Spaghetti-Code zu erzeugen, den keiner mehr durchschaut. Auch die Nutzung von Klassenvariablen innerhalb der Tabelle wäre doch praktisch. Kurzum: ein simples Include kann das nicht leisten und sollte es auch nie.

Nun ist es ja aber bei weitem kein super exotisches Problem, mit dem wir hier konfrontiert sind: Modulbauweise mit Blackboxes die nur definierte Schnittstellen haben ist ja auch in anderen Bereichen üblich: Keiner entwickelt heute mehr für jedes Auto Standard-Komponenten vollständig neu – vielmehr werden Grundelemente mit einen neuen Aufsatz versehen oder neu miteinander kombiniert. PHP löst das Dilemma mit sogenannten Traits – ich vergleiche das gerne mit Matrix-Vererbung – um ein Gesamtpaket zu erhalten markiert man einfach die Zusatzfunktionen die das Ergebnis haben soll. Klingt kompliziert – ist es aber nicht.

Einen Trait programmiert man fast wie eine ganz normale Klasse – abgesehen, davon dass sie keinen eigenen Konstruktor enthält, gibt es alles was man sonst auch kennt: Funktionen, Zugriffsbeschränkungen (public,private,protected) und Klassenvariablen. Kurzum man kann alles was man immer wieder braucht damit sauber realisieren – in meinem Fall, habe ich alles was ich für eine Tabelle benötige im Trait verpackt. Man hat sogar Zugriff auf die Methoden und Variablen der Klasse in der man den Trait am Ende einsetzen will – hier ist die Unterstützung der Entwicklungsumgebung natürlich nicht so gut wie in einer vererbten Klasse, denn der Trait kann ja in jeder beliebigen Klasse verwendet werden – von daher etwas mehr Denkarbeit. Ich habe vieles direkt aus der bisherigen Realisierung übernehmen können, das macht es etwas leichter.

Was man noch beachten muss: Gleichnamige Funktionen in der übernehmenden Klasse „überdecken“ bzw. überschreiben die Funktionen des Traits (vergleichbar mit dem was man aus der Vererbung kennt: Es wird immer die „nächstliegende“ Funktion genommen, es sei denn man gibt den Namespace bzw. die Elternklasse mit an (parrent::) . Für mich hat es sich bewährt im Trait die Funktionen als solche entsprechend zu bennen – sie bekommen alle den Prefix „pdf_table_trait_“ – die Wahrscheinlichkeit, dass man somit ungeplant etwas überschreibt ist vergleichsweise gering. Die Programmiersprache nimmt einem eben nicht alles ab und etwas Coding-Disziplin hat noch keinem Entwickler geschadet.

Insgesamt habe ich nun mit dem Trait das was ich gesucht habe: Einen Code-Block, den ich separat warten kann – wenn ich einen Fehler in der Tabellenerzeugung beseitige, dann muss ich das nur noch an einer Stelle tun, nicht mehr in jedem Dokument. Zudem habe ich es so realisiert, dass ich den Code sogar innerhalb einer Klasse mehrfach aufrufen kann um verschiedene Tabellen zu zeichnen (das hatte ich vorher mit etwas Verrenkungen unsauber gelöst). Man sollte natürlich jetzt nicht alles und jedes zwingend in einen Trait auslagern, nur weil es geht – mit Maß und Ziel das richitige Werkzeug an der richtigen Stelle ansetzen. Traits gehören dabei eindeutig in die Kiste mit der Aufschrift „Spezialwerkzeuge“ – man braucht sie nicht all zu häufig, aber wenn man weiß dass es sie gibt und wie man sie richtig einsetzt, geht vieles sehr elegant zu lösen.

Jahresrückblick 2013

Ja es ist schon wieder ein Jahr rum – die Zeit der Weihnacht-Besinnungslosigkeit ist auch überstanden, also kommt nun die Bilanzierung der letzten 365 Tage. Wie in jedem Jahr glieder ich das nach Monaten.

Januar

Im Januar war noch nicht all zu viel los, ich habe die ersten Vorbereitungen für den Lauf in Biel begonen – fast hätte ich ja den Start ins Training mit 42km gemacht, aber es war dann doch etwas zu frisch. Eine erste Investition in meinen Haushalt habe ich getätigt und mir einen Staubsauger-Roboter zugelegt. Der hat sich mittlerweile super bewährt, die Staubmenge ist deutlich zurück gegangen.

Februar

Noch immer hatte der Winter das Land fest im Griff, aber das Training ging wie geplant weiter – mit oder ohne Schnee, die Berge des Odenwaldes waren niemals sicher vor den Biel-Läufern am Wochenende. Zudem bin ich ein ein Projekt eingestiegen, dass mich länger als geplant begleiten würde (es hat vor kurzem seinen Abschluss gefunden) der Neubau der DJK Feudenheim sollte mit Netzwerk und Telefon ausgerüstet werden. In der Wohnung habe ich endlich ein noch fehlendes Stück Einrichtung gebaut: Nach zwei Jahren endlich den Wunschspiegel mit Beleuchtung im Bad.

März

Im März war ich ziemlich zugedeckelt mit Arbeit, die bald zum Frust ausartete und in dem Moment auch keinerlei Spaß mehr machte, immerhin war das Wetter etwas besser und mit ausreichend Sport als Ausgleich war auch das zu ertragen. Sport der immer wichtiger wurde, denn Peter hatte den Count-Down auf Biel in jeder Mail eingebunden. Eine gewisse Vorfreude war zu spüren.

April

Ein wichtiges Event im April war sicherlich mein Geburtstag, ich habe ein neues Lebensjahrzehnt begonnen – ein komisches Gefühl. An die neue Klassierung bei Laufveranstaltungen muss man sich auch mal gewöhnen. Die Feier mit vielen Läufern war richtig gut, auhc wenn das Wetter kurzfristig einen Strich durch das geplante Grillen im Freien gemacht hat. Davon abgesehen war der Stresslevel auf Arbeit immer noch recht hoch, und der Frustpegel auch.

Mai

Zeit für einen ersten Testlauf in Vorbereitung auf Biel, allerdings nur ein Halbmarathon, dafür ein richtig schöner: Der Weltkulturerbelauf in Bamberg, zusammen mit Helgas Lauffreunden – immer ein Erlebnis. Einen Marathon der anderen Sorte habe ich mit dem Turnfest in Mannheim mitgemacht – eine Woche lang Ausnahmezustand mit rund 600 Gästen in der Feudenheim-Schule. Aber es hat alles geklappt und auch wenn die Veranstaltung bei den Gästen teilweise etwas „zersplittert“ ankam – die Übernachtung und die Betreuung in der Schule wurde von allen gelobt,

Juni

Der Juni kannte in den Medien und auch für mich nur ein großes Thema: Jahrhunderflut an der Elbe. Damit fiel leider auch sehr sehr kurzfristig mein Lauf über 100km in Biel ind Wasser (im wahrsten Sinne des Wortes). Dafür gab es reichlich Einsatzerfahrung mit unserer Großpumpe und derm ersten richtig großen Hochwasser für mich. Die Menschen in Dresden und  Umgebung waren sehr dankbar, und die Versorgung mit Speisen und Getränken war scon fast luxusriös. Man hatte zeitweise fast vergessen können, dass man in einen Katastrophengebiet befindet.

Juli

Damit das Lauftraining nicht ganz für umme war, musste ich einen Ersatz finden. Den habe ich mit dem Wallensteinlauf in Altdorf als Halbmarathon und dem Römerman als Triathlon in Ladenburg gefunden, wenn auch beim Triathlon nur die Fitness-Variante. Zum Abschluss des Triathlons gab es dann abends noch ein Wiedersehen mit all den Abiturienten, denn es ist zehn Jahre her, dass ich mit der Schule abgeschlossen habe – wie die Zeit vergeht.
Und noch etwas hat sich im Juli ereignet – ich bin nicht mehr Single – mittlerweile sind 5,5 Monate seit dem ersten Treffen vergangen. Daher geht es jetzt auch Schlag auf Schlag weiter.

August

Schon lange geplant (seit Januar) war der Besuch bei den Tauchfreunden aus Glasgow bzw. die Teilnahme an deren verlängertem Wochenende. Mit Raimund bin ich wieder nach Schottland gefahren und habe dort viele schöne Stunden im Wasser in St. Abbs und an den Farne-Islands verbracht. Die Seelöwen sind echt ein Highlight – tierisch verspielt. Das kommt für 2014 auch aufs Programm.
Wichtigstes sportliches Ereignis im August war der Firmen-Ultra-Triathlon – jeder Teilnehmer eines Teams legt dabei einen zehntel Ironman zurück. Dieses Jahr wurde die Veranstaltung für alle Beteiligten zur Geduldsprobe – es hat den ganzen Tag gegossen wie aus Kübeln. Dennoch hat mich meine Freundin begleitet und fleißig Bilder gemacht. Das hat mich überrascht, aber im Rückblick ist das echt super wenn jemand an der Strecke steht den man kennt und der einen nach Kräften unterstützt.

September

Weiter gehts mit Urlaub – diesmal in Schweden, da war ich noch nicht. Zusammen mit meiner Freundin habe ich ein verlängertes Wochenende in Stockholm verbracht. Eine wahnsinnig tolle Stadt bei herrlichem Wetter. Highlights waren unter anderem die Teilnahme an der ersten Evakuierung des ABBA-Museums wegen eines Feueralarms. Abends gab es dann richtig kräftig Musik auf dem Festival „where’s the party?“ – inklusive dem lustigen Spiel „Wie viele Schweden passen in einen Bus?“ – denn die Verkehrsanbindung war absolut überfordert. Es dauerte irgendwie fast 15 Minuten bis der Bus die Türen überhaupt zubekommen hat … wir sind dann doch gelaufen, das war schneller. Hinterher haben wir erfahren, dass es eine Transport-Garantie in Stockholm gibt, wenn man mehr als 20 Minuten Verspätung hat, kann man sich einfach ein Taxi nehmen und bekommt es erstattet, wenn man den Beleg einreicht. Gut zu wissen.
Zudem haben wir ein richtig gutes Restaurant ausgegraben: Svartegrens – sehr sehr lecker und absolut zu empfehlen.

Oktober

Der 3. Oktober ist Tag der deutschen Einheit – für mich ein Tag in Nürnberg beim Stadtlauf. Zudem ist es der Auftakt für die Lebkuchen-Saison. Selbstverständlich habe ich viele bekannte Gesichter wieder getroffen, Helga und Heinrich waren an der Strecke mit dabei, Marion hat mich begleitet und wieder viele Fotos gemacht (endlich habe ich mal welche vom Stadtlauf). Ebenso durfte ein kurzes Treffen mit Erwin Bittel vom Team Bittel natürlich nicht fehlen. Die Laufzeit war ganz ordentlich, und auf das Essen in der L’Osteria kann man sich immer freuen, gerade als ausgehungerter Läufer.
Mit Marion feiere ich 3 Monate Partnerschaft, echt klasse sich wie sich das entwickelt hat, wir verstehen uns echt klasse.
Und auch bei der DJK heißt es wieder mit anpacken: der Herbstlauf ist eine der größten Veranstaltungen auf dem Gelände, dieses Jahr zum zweiten Mal durch die Triathlon-Abteilung durchgeführt. Mit den Erfahrungen aus dem vergangenen Jahr lief es diesmal richtig flüssig.

November

Schon wieder ein Wochenende in Nürnberg, und schon wieder zum Sport – diesmal nicht nur ein Halbmarathon im Freien sondern ein ganzer Marathon bei der LGA – Indoor versteht sich.
Schon Ende November bin ich mit den Geschenken für den Dezember eingedeckt – dann kann die Vorweihnachtszeit ja kommen – bei mir ja auch immer gepflastert mit einigen Geburtstagen – kurz nach Weihnachten ist dann auch Marion noch an der Reihe. Mich selbst beschenke ich dann auch noch und erfülle mir einen lang gehegten Wunsch – seit Mitte November habe ich nun eine Auto-Erweiterung in Form eines Tadem-Achs-Anhängers, auch wenn die Zulassung etwas mühsamer war als geplant.

Dezember

Wie schon angedeutet, ist der Dezember mit jeder Menge Geburtstagen und Weihnachtsfeiern gepflastert. Aber auch um sich Gedanken zu machen um das kommende Jahr 2014 – sowohl was die Wettkämpfe betrifft aber auch den Urlaub. Der ist fürs kommende Jahr schon geplant, auch die meisten Läufe sind schon angemeldet – es geht mal wieder quer durch die Republik soviel sei schon mal verraten.
Zum ersten Mal habe ich Weihnachten einen Tannenbaum bei mir in die Wohnung gestellt und nicht alleine oder bei meinen Eltern gefeiert. Etwas mehr als 5 Monate sind vergangen und es fühlt sich einfach nur gut an. Ich möchte nicht mehr Single sein.

Ausblick für 2014

So wie es im Moment aussieht steht für 2014 ein Umzug in eine gemeinsame Wohnung an. Mal sehen was das Jahr sonst noch bringt. Infos gibts wie immer hier im Blog.

Vom Himmel hoch da komm ich her – Skydrive-Schwachsinn zur Weihnachtszeit

Vor einigen Tagen hatte ich mal wieder ein absolutes Schlüsselerlebnis, das mich in meiner Skepsis gegenüber Windows 8 und Microsoft-Produktem im Allgemeinen deutlich bestärkt hat. Sicher sind die Produkte von Microsoft in vielen Fällen ein gewisser Standard, aber es gibt immer wieder Ecken und Kanten an denen ich mich einfach nur ärgere wie etwas gelöst ist.

Windows Vista ist ebenso eine Ladenhüter wie es schon seinerseits Windows ME war – viele Feautres gut gemeint und gewollt, aber die Realisierung war nicht der Knaller. Ähnliches sehe ich gerade bei Windows 8 – auch hier hakt es an vielen Stellen und das Betriebsystem hat sich meilenweit von dem entfernt was es eigentlich machen sollte – Ressourcen des Rechners bündeln und allen Anwendungen zur Verfügung stellen, auf Basis einer einheitlichen Schnittstelle. Das Fehlen des Startmenüs mit der Suchfunktion ist eines, aber eine komplette Touch-Bedienung für einen Desktop-PC oder Laptop an dem Maus und Tastatur angeschlossen sind – das kann in meinen Augen nicht hinhauen. Ironie dabei ist der Werbesong „Everything at once“ von „Lenka“ – dort werden verschiedenste nicht miteinander vereinbare Gegensätze postuliert, welche die Sängerin alle doch erfüllen möchte. Wer das mal probiert hat, weiß: Manche Dinge schließen sich einfach gegenseitig aus … Ich bin gespannt wann sich diese Erkenntnis auch in Firmen herum spricht (und das betrifft leider nicht nur Microsoft, auch andere Firmen verwenden „Standard-Software“ für Zwecke, für die sie nie gedacht war und wundern sich dann noch über „komische“ Ergebnisse).

Was war das konkrete Problem diesmal? Ein Kunde wollte wie bisher unter Windows verschiedene Bild-Dateien per e-mail verschicken. Soweit nichts wirklich Spannendes oder Nerviges. Da es bequem und auch legitim ist, markierte er die Bilder seiner Wahl und wählte im Kontext-Menü: Senden an … => e-mail-Empfänger. Nun ging auch brav das eingerichtete (und mitgelieferte) Windows Live Mail auf (oder wie ich es nach der Erfahrung wohl eher nenne: „Windows Live Quäl“ – es quält dich ggf. ein Leben lang…). Interessanterweise wollte das System jedesmal einen Hotmail-Account einrichten, obwohl bereits eine e-mail-Adresse konfiguriert war. Klickte man den Dialog einfach weg und schaute in die e-mail so wurde vom Mailprogramm angestrebt, die Bilder nur als Thumbnails in die e-mail einzubetten und die Originale zu Skydrive für eine bestimmte Zeit hochzuladen und per Link oder Bildergalerie verfügbar zu machen. Natürlich ist das nicht das was der Anwender eigentlich wollte, nämlich die Bilder einfach an die e-mail anhängen.

Was ist der Hintergrund? Generell bietet e-mail die Möglichkeit Anhänge mit zu versenden, so wie man es auch von klassicher Snail-Mail her kennt. Einfach etwas mehr in den Umschlag packen und im Anschreiben darauf verweisen. Mit HTML-Mails sind auch direkte Anzeige-Referenzen möglich, aber im Prinzip ist es jedesmal ein elektronisches Kuvert mit dem Inhalt, mal nur reiner Text, mal eben mit Anlagen. Problematisch ist die Mailbox-Größe der Empfänger bzw. Restriktionen der e-mail-Server aus Performance und Sicherheitsgründen: Oftmals sind hier Limits für eine Nachricht vorhanden und oft sind die recht knapp bemessen (es sei denn man ist sein eigener Mail-Admin und stellt sich die Einschränkungen entsprechend ab oder zumindest mal hoch ein). Daher ist es bei größeren Dateien oder Datenmenge oftmals ratsam auf Alternativen auszuweichen, also zum Beispiel den Upload der Datei auf einen Webserver und dem Empfänger nur einen Link (genauer einen URL) zuzuschicken damit er die Datei bei Bedarf herunter laden kann. In Etwa kann man es mit dem Angebot eines Webshops vergleichen bei dem man online bestellt und dann die Info bekommt: „Ihre Ware können Sie in Warenhaus XYZ in ihrer Nähe abholen, sie ist dort für sie bis zum soundsovielten reserviert).

Daher ist das Ansinnen von Live-Mail ja ganz gut gemeint, bewahrt es doch den Nutzer vor etwaigen e-mail-Rückläufern wenn die e-mail nicht zugestellt werden kann. Aber will ich wirklich jedes Bild in die Cloud eines amerikanischen Konzerns auslagern? Gerade im Blick auf die NSA-Affaire halte ich den Vorschlag für nicht zielführend und gelinde gesagt für Irreführung des Benutzers. Es wird eine Notwendigkeit vorgegaukelt die es schlichtweg nicht gibt.

Ich selbst verwende schon seit sehr langer Zeit alternative e-mail-Programme wie Pegasus-Mail (früher) und Mozilla Thunderbird (aktuell). Thunderbird macht hierbei vor wie man es besser machen kann: Hängt man Attachments einer bestimmten Größe an, gibt es einen Hinweis auf einen Cloudservice, der darauf hinweist, dass es problematisch sein könnte eine derat „dicke“ e-mail zu versenden, und ob man diesen nutzen möchte. Man hat also definitiv die Wahl was man machen möchte, etwas was mit Live Mail leider nicht geht – zumindest habe ich auf die Schnelle keine passende Option gefunden und diverse Foren-Einträge im Netz schildern ähnliche Erfahrungen. Von daher kann ich leider als ITler keinem Menschen mehr die Benutzung von Live-Mail auch nur nahelegen als Alternative, sondern kann nur auf externe Programme verweisen die dem alten Unix/Linux-Mantra der Software treu geblieben sind „do one thing and do it right“ – auf gut deutsch: Mache eine Sache, die aber dafür richtig und nicht alles nur so halb und dafür auf einmal (everything at once). In der Linux-Welt gibt es viele spezialisierte Programme für genau einen Zweck, weitere Funktionen, die nichts mit der eigentlichen Aufgabe zu tun haben, sucht man aber (zu Recht) vergeblich. Sicherlich ist das nicht immer und überall bis ins Letzte sinnvoll, aber es hat sich als gute Richtlinie für die Modularisierung von Programmen erwiesen: Für jeden Zweck das passende Werkzeug. Man versucht doch auch nicht, Schrauben mit einem Hammer „einzuschrauben“…

Einen Würg-Around gibt es dann dennoch für Windows Live Mail und das Kontext-Menü:

  1. Im Ordner, in dem sich die Bilddateien befinden eine leere Textdatei erzeugen (z.B. bla.txt), diese muss noch nicht einmal Inhalt haben
  2. Zusätzlich zu den Bildern die gerade erzeugte Dummy-Datei anwählen
  3. Kontextmenü => Senden an e-mail-Empfänger
  4. In Windows Live-Mail wird nun eine e-mail mit regulären Attachments erzeugt (es geht also …)
  5. Aus der Attachmentliste und der Auflistung im Text die leere Textdatei wieder rauswerfen
  6. Voila!

Das so ein Murks notwendig ist, zeugt davon, dass man scheints noch nicht gelernt hat, auf einen Anwendungsfall wirklich passende Lösungen zu liefern – das Gängeln des Benutzers hat ja aber auch eine jahrzehnte lange Tradition bei Microsoft. Warum das wissen wohl nur die Marketing-Menschen aus Redmond.

In diesem Sinne erst mal frohe Weihnachten und viel Spaß beim Verschicken von e-mails mit handelsüblichen Attachments.

Umstellung von Webprojekten auf UTF-8

Im letzten Artikel habe ich die Grundlagen zusammengefasst, mit denen ich mich beschäftigen musste um mein aktuelles Projekt voran zu bringen. Das Problem war ursprünglich die nicht einheitliche Handhabung diverser Zeichenketten, was bei Benutzer-Inhalten und Sonderzeichen zum berühmten Mojibake führen konnte (aber eben nicht zwingend muss). Nun denn, gehen wir ans Eingemacht und stellen das Projekt auf UTF-8 um, damit habe ich hoffentlich dann einen wichtigen Schritt in Richtung Zukunftsfähigkeit getan. Außerdem bietet sich UTF-8 wegen seiner Kompatibilität zu ASCII an – Programmcode wird dadurch nicht angetastet und PHP ist dankenswerter Weise sehr einfach gestrickt war Text-Ausgaben mittels „echo“ oder ähnlichen Befehlen betrifft: Was hintendran als Argument kommt wird genauso wiedergegeben wie es reingekommen ist – Byte für Byte. Damit hat man wenig Probleme, auch wenn eine Seite eben mal doch Sonderzeichen enthält (wie es im Deutschen leider häufiger der Fall ist). Dieser Post kann als grundlegendes Howto verwendet werden, es gilt jedoch immer: „Keine Garantie“ und „your milage may vary“

Erster Schritt – Anpassen der Entwicklungsumgebung

Damit man in Zukunft mit der Entwicklungsumgebung weiterhin einfach arbeiten kann, ohne sich jedesmal Gedanken über irgendwelche Sonderzeichen machen zu müssen – wenn man mal eben drei Zeilen Kommentar schreibt, sollte man sich auf dessen Inhalt konzentrieren können. Je nachdem was man verwendet gibt es da verschiedene Stellen die eingestellt werden müssen. Ich verwende Eclipse, dort kann man das Encoding einmal generell (unter Window -> Preferences -> General -> Workspace:  Text-File-Encoding) einstellen.  Zudem sollte man für die verschiedenen Einträge unter „Content Types“ sicherstellen, dass per default dort auch UTF-8 genommen wird. Unter Linux habe ich festgestellt, dass es meistens schon vorab eingestellt ist, denn die meisten aktuellen Linux-Distris sind vom System aus schon löblicherweise auf UTF-8 als Standard umgestellt. Ein Blick in die Äste Web -> CSS Files und Web -> HTML-Files schadet auch nicht. Im Ast XML sollte es per Default auch schon passen, aber Nachgucken schadet auch hier nicht.

Nun muss man noch die Projekt-Einstellungen anpassen (wenn man bestehende Projekte hat) – wenn man den Fehler gemacht hatte und ein neues Projekt angefangen hat ohne sich vorher über die Verwendung von Zeichensätzen Gedanken zu machen (sowas sollte auf jeder Checkliste für Projekte stehen, aber wer achtet da schon drauf wenn es mal eben um eine kleines Projekt geht …. das dann später wächst …). Wenn man die Umstellung gemacht hat, kann man einmal Buchstabensuppe sehen, indem man eine Datei öffnet die Sonderzeichen enthält … die sehen nun etwas komisch aus. Alle händisch ersetzen ist nur was für Hartgesottene oder sehr sehr kleine Projekte.

Zweiter Schritt – Datein umwandeln / umcodieren

Es gibt ein praktisches Tool zum Umwandeln <code>iconv</code> das Werkzeug gibt es auch für Windows, aber so richtig mächtig und scharf wird das erst in Kombination mit ein wenig Scripting (bei mir in Bash)


#!/bin/bash

for file in $(find . -type f -name ‚*.php‘)
do
iconv -f iso88591 -t utf8 -o $file.utf8 $file
if [ $? -eq 0 ]
then
#echo „$file erfolgreich“
mv $file.utf8 $file
else
echo $file geht nicht $?
fi
done

Was machen wir und warum mache ich da so? Ersteinmal suche ich alle betroffenen Dateien heraus, da ich mit PHP arbeite sind das alle Dateien die auf <code>.php</code> enden. Jede dieser Dateien lasse ich durch Iconv laufen und als neue Datei abspeichern. Man sollte nicht auf die Idee kommen <code>iconv -f iso88591 -t utf8 -o $file $file</code> zu verwenden. Das klappt nur bei kleinen Dateien. Wenn das nicht der Fall ist, hat man evtl. unvollständige Dateien und wundert sich was passiert ist, denn <code>iconv</code> gibt in diesem Fall keine Fehlerme. Mit dem Speichern in eine separate Datei bleibt das Original erst einmal unberührt und man kann sich ggf. auf die Fehlersuche machen, denn: Wenn beim Konvertieren selbst etwas schiefgeht gibt es einen exit-Code > 0. Wo es geklappt hat, überschreibe ich das Original. Ansonsten ein kleines <code>echo</code> das mir die fehlerhaften Dateien angibt damit man dort nachsuchen kann, meistens hat man schon irgendwo mal etwas als UTF8 gespeichert oder die Zeichensätze verbeult, das findet sich aber meist recht schnell. Bei mir waren es von 500 Dateien zwei Stück die etwas Handarbeit erforderten. Das gleiche Schema kann man auf alle reinen Textdateien anwenden, wenn man es braucht, z.B. reine HTML-Dateien (Endung htm oder html) oder auch JavaScript-Code. Wichtig ist noch dass man seinem Webserver ggf. beibringt, per default auch in UTF-8 auszuliefern. Dazu sucht man in den Konfigurationsdateien die folgende Zeile:

AddDefaultCharset UTF-8

Nach einem Neustart des Daemons wird das dann als default verwendet. Warum aber nur im default-Fall? Klar es gibt noch ne Möglichkeit das einzustellen und zwar in den ganzen HTML-Headern. Dort gibt es das META-Tag mit dem man Vorgaben machen kann auch für den Fall, dass man auf dem Server keinen Zugriff auf die Einstellungen des Apache oder wie auch immer sonst gearteten Webserver-Prozess hat.

&lt;meta equiv="content-type" content="text/html; charset=utf8"&gt;

Damit sollte jeder aktuelle und die allermeisten der älteren Browser in der Lage sein zu erkennen: Jetzt kommt was in UTF8.

Wenn man nur eine statische Website hat, ist man jetzt schon fertig – nur wer hat das schon heute noch?

Datenbankumstellung (MariaDB/MySQL)

Die Website an sich sollte nach der Umstellung weiterhin funktionieren, denn der eingebettete PHP-Code ist besteht nur aus Zeichen des ASCII-Repertoires und ist somit nicht verändert. Über das was zwischen Klammern steht oder einfach „unverdaut“ ausgegeben wird, macht PHP sich praktischerweise keine Gedanken sondern gibt es einfach aus, egal wie viel Bytes das sind und ob das nun ein besonderes Zeichen ist oder nicht.

Unlustig sind die Dinge die jetzt noch dynamisch aus der Datenbank nachgeladen werden. Wenn man es bisher (wie häufig bei Standardinstallationen) versäumt hatte auf UTF8 umzustellen, dann muss das jetzt auch noch erfolgen. Ich halte nichts davon die Daten bei jeder Ausgabe in UTF8-Strings zu konvertieren – das ist viel zu viel Aufwand wenn das Projekt eine gewisse Größe erreicht hat. Im übrigen haben viele Leute noch per default den Zeichensatz auf „latin1-swedish“ stehen, ein Hinweis woher MySQL denn ursprünglich mal kam. Im 0815-Tagesgeschäft fällt das aber in Europa meist niemandem auf.

Praktischerweise gibt es die Funktion
ALTER TABLE xyz CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]

Damit kann man jeweils eine ganze Tabelle umstellen und eine Collation vorgeben, wir erinnern uns: Collations regeln die Sortierreihenfolge je nach dem wie es gehandhabt werden soll.

Das klingt nicht schlecht und klappt im Allgemeinen auch ganz hervorragend, wenn da nicht einige Fallstricke wären.

Der erste ist ja noch gut gemeint seitens der Engine-Designer: Möglicherweise zu kleine Felder werden in das nächstgrößere Format überführt, wenn der Ausgangszeichensatz einer mit nur einem Byte pro Character ist, der Zielzeichensatz aber mehrere hat oder zumindest haben kann. So werden Textfelder mit bis zu 256 Zeichen zu Mediumtext umgewandelt. Das ist von der Auswirkung her eigentlich zu verschmerzen, aber in meinem Fall habe ich das hinteher wieder manuell korrigiert. richtig problematisch wird das wenn man über die entsprechenden Spalten Indizes angelegt hat, denn Textspalten lassen sich nicht indizieren.

Womit wir beim nächsten Fallstrick wären: An einigen Stellen funktioniert das mit der Umstellung nicht wie geplant, Ursache sind die Foreign-Keys. Ich habe an einigen Stellen „sprechende“ Schlüssel anstelle von numerischen verwendet. Gerade dann wenn man in den referenzierten Tabellen wirklich nur Sateliten-Informationen stehen, wie etwa ein Icon und eine ausführliche textuelle Beschreibung zu einem bestimmten Zustand. Einige werden jetzt die Hände über dem Kopf zusammen schlagen, aber ich habe bisher keine negativen Auswirkungen auf die Performance feststellen können, eher positive Effekte bei der Fehlersuche. Wenn man schon anhand des Eintrags in der Tabelle selbst weiß was Sache ist, kann man sich einen zusätzlichen Join sparen. Das hat ja auch seine Vorteile.

Was also tun? Im Netz findet man praktische Anweisungen, die gesamte DB einmal per  mysqldump in eine Textdatei zu konvertieren, dort dann mit iconv das Gleiche zu veranstalten wie mit den Code-Files, danach noch die Tabellen-Definitionen automatisiert anpassen und den Dump wieder in die Datenbank kippen. Das funktioniert, ist aber bei größeren Datenmengen unhandlich.

Stattdessen habe ich mir die Information-Schema-Tabellen zu Nutze gemacht: dort stehen die Meta-Informationen zu den Tabellen in Tabellen, die man wie gewohnt mit SQL-Befehlen lesen kann – schreiben leider nicht, aber immerhin etwas. Dort sucht man sich nun die betroffenen Spalten und Tabellen heraus (Varchars und Texte), zudem schaut man auf die Foreign-Keys und merkt sich diese. Dann schmeißt man die Foreign Keys weg, führt die Veränderungen an den Tabellen durch (das geht ja dann). Wenn das durchgelaufen ist, kann man noch die vergrößerten Spalten wieder auf die Original-Größe zurück setzen (also Mediumtext => Text usw). Zu guter Letzt schaltet man die Foreign-Keys die man sich gemerkt hat wieder scharf. Fertig ist die Laube. Ganz so einfach ist es im Detail nicht, denn man muss stets vollständige Spaltendefinitionen verwenden, einfach nur den Typ ändern geht so leider nicht, auch wenn das eine praktische Sache wäre.

Jetzt hat man das gesamte Projekt umgestellt – zumindest was die Datenbasis und was die HTML-Seiten und den eingebetteten JS-Code betrifft. Das ist in aller Regel alles was man braucht.

Was noch an Problemen auftreten kann, beschreibe ich in einem weiteren Artikel. Stichwort sind hier externe Libraries und Frameworks.

Mojibake – Buchstabensuppe

Na da hatte ich mir doch eine lange währende Aufgabe ausgesucht, die ich in der aktuellen Pflegephase meines Softwareprojekts endlich einmal angehen wollte. Aktuell läuft das Produkt soweit zufriedenstellend, nur an einigen kleiner Ecken knackt und knirscht es immer mal wieder. Unter anderem das leidige Thema „Sonderzeichen und deren Darstellung“ – da nicht absolut zwingend für die Funktionsfähigkeit habe ich das längere Zeit nicht großartig beachtet.

Nun gut, was ist das eigentliche Problem und woher kommt es? Die Ursachen liegen in der Historie des PCs ver- oder besser begraben: Da Speicher und Datenverarbeitung teuer war, hat man so sparsam wie möglich gearbeitet. Man stellte dabei fest: Inklusive aller wichtigen Zeichen der englischen Sprache und allem was man als Steuerzeichen (Zeilenumbruch, Tabulator, etc.) benötigt, bekommt man in 7 Bit unter. Das ist schon mal etwas krumm, denn gängig ist bei allem was Rechner betrifft doch eigentlich etwas eine Potenz von 2. Die ersten Rechner die ich verwendet habe (mit einem Intel 8088 als Unterbau) konnten nur 8 Bit parallel verarbeiten – immer mehr als die 7. Schon wenig später gab es 16Bit als Standard und mit der großen Verbreitung des PCs in die Büros war der Standard 32 Bit erreicht. Heute findet der sich bereits größtenteils in Ablösung durch 64Bit-Systeme. Was war der Sinn des 8. Bits? Man konnte es je nach Gusto verwenden: Entweder bohrte man damit den Zeichenvorrat auf, oder man konnte es zur Fehlererkennung und Korrektur einsetzen. Insgesamt muss man sagen: Alles mit Hand und Fuß.

Nur leider waren Rechner damals noch nicht gängigerweise vernetzt und die Standard-Definitoren etwas kurzsichtig – erst einmal wurde nur an die eigene Heimat gedacht, dass es möglicherweise andere Sprachen gibt, die nicht Englisch sind und einige Zeichen mehr mitbringen – wer konnte das schon ahnen? So kam was kommen musste: Einschränkungen bei diversen Dingen wie dem Betriebssystem: Umlaute oder Sonderzeichen in Dateinamen waren einfach nicht vorgesehen oder führten zu unvorhergesehenen Ergebnissen. Für das Verfassen und Verarbeiten von Texten war das natürlich keine Option, wer in Deutschland einen Text schreiben wollte, der sollte das auch tun können. Daher erweiterte man den Zeichensatz auf das 8 Bit und schon hatte man jede Menge Möglichkeiten auch Sonderzeichen abzuspeichern. Wichtig war nur, das jeder die gleiche Zuordnung traf und nicht einer ein ü für ein ö verwendete was die binäre Darstellung betraf. Soweit so gut oder auch schlecht.

Nun gehen leider bei verschiedenen Betrachtungen immer wieder einige Dinge durcheinander, auch ich habe hier am Anfag so meine liebe Mühe gehabt alles richtig zu verorten, daher hier einmal die Kurzfassung, zu allem was notwendig ist bzw. was sich auf die Darstellung und Handhabung von Texten am Rechner auswirken kann.

Binärer-Code

Eine Abfolge von 0en und 1en die irgendetwas darstellen – was ist für den Rechner erstmal unerheblich, dafür bedarf es einer Zuordnungs oder Code-Tabelle oder eines Algorithmus, der den Binärcode in etwas umsetzt, das dem Benutzer eher vertraut ist (leider sind wir Menschen nicht sonderlich gut binär veranlagt).

Code-Tabelle/Zuordnung/Algorithmus

Je nachdem was für eine Datentyp abgebildet werden soll, gibt es verschiedene Methoden dies zu tun. Am einfachsten sind ganze, positive Zahlen. Diese lassen sich aus der Abfolge von 0en und 1en entsprechend „errechnen“ – man muss nur noch wissen wo man anfangen muss (little endian vs. big endian). Für positive und negative Ganzzahlen hat sich das Zweierkomplement bewährt, für Fixkomma und Gleitkomma gibt es entsprechende Standards. Alles ein Thema für sich, denn wir wollen ja Texte bzw. Strings beleuchten. Hier hat sich eine Übersetzungstabelle als Mittel der Wahl erwiesen – sie ordnet jeder möglichen Abfolge von 0en und 1en eine menschenlesbare Bedeutung zu. So wird z.B aus der binären Folge 0110 1101  = 0x6D = O155 = „m“. Die Zuordnung an und für sich ist reine Willkür – man hat sich mal auf gewisse Standards geeinigt bzw. diese festgelegt, damit eben auf allen Rechner ein „m“ ein „m“ ist und nicht aus der „e-mail“ durch Willkür eine „e-nail“ wird. Der Urvater aller Standards dazu heißt ASCII (America Standard Code for Information Interchange) – wie der Name schon sagt ein nationales Standardformat. Auch bekannt ist diese Tabelle als Character-Set.

Windows-Codepages und Nornumg

Für verschiedene Regionen wurden verschiedene Verwendungen des verbliebenen 8. Bits (siehe oben) standardisiert – leider teilweise recht unterschiedlich, zum Teil nur an wenigen Stellen. Ziel war es, die in der jeweiligen Region verwendeten Sprachen möglichst gut abzubilden. Leider gab es da erst sehr spät eine Einigung auf einheitliche Standards, so dass zeitweise unterschiedliche Hersteller unterschiedliche Zuordnungen trafen. Ganz genauso wie wenn man Dateien ohne Angabe des verwendeten Zeichensatzes weitergab konnte es also passieren, dass der Zielrechner die Bit-Folge unterschiedlich interpretierte, weil bestimmte Bitfolgen eben etwas unterschiedliches bedeuteten. Dankenswerterweise hat man dabei die sichtbaren Zeichen (leider nicht so bei den Steuerzeichen) aus dem Urvater ASCII gleich belassen (das hatte sich ja bewährt, und für den internationalen Textaustausch reichte dieser kleinste gemeinsame Nenner auch aus). Gängig sind in der westlichen Welt die Standards der ISO 8859 in den Varianten 1-16, unter Windows die Codepage 1250 und unter DOS die Codepage 850.

Unicode

Mit der steigenden Internationalisierung und der immer stärker zunehmenden Vernetzung von Computern ist das mit den Nachschlagetabellen so eine Sache – man muss immer wieder etwas anderes berücksichtigen: Das Betriebsystem und die Region bzw. die Regionaleinstellungen des Anwenders – nur damit Text auch so ankommt wie er einegeben wurde. An einigen Stellen hat man sich beholfen oder die Probleme durch menschliche Intuition überbrückt – durch die Redundanz in der menschlichen Sprache kann man viele Worte ja auch lesen wenn Buchstaben vertauscht wurden oder nicht lesbar sind. Jeder Mensch der Lesen lernt kann das mehr oder weniger: Wenn aus einen Königreich dann plötzlich ein K$nigreich wird, dann wird der geneigte Leser das immer noch erkennen, auch wenn so ein Text etws mühsamer zu lesen ist. Ohnehin: wenn es international wird, dann ist die Sprache der Wahl in aller Regel doch Englisch und somit problemfrei. Aber wäre es nicht toll, wenn jemand eine Lösung hätte, damit ich auch chinesische Texte richtig angezeigt bekomme? Oder auch mal einen arabischen Text im Original anschauen? Das klingt weit hergeholt, aber diese Anwendungsfälle gibt es häufiger als man denkt. Die ursprüngliche Idee mit 32Bit und somit 4 Bytes pro codiertem Zeichen zu arbeiten (UTF-32) ist zwar einfach zu realisieren, aber ein wenig „over the top“ ist das schon: Wer überträgt schon gerne 3 komplett genullte Bytes wenn die Info doch nur in einem steht? Außerdem ist der Standard nicht abwärtskompatibel, er bricht mit den alten Vorgaben von ASCII, was bei älterer Software oder inkompatibler Software Ärger machen kann. Daher gibt es verschiedene Methoden mit variabler Anzahl von Zeichen, sozusagen das Beste aus beiden Welten: UTF-16 oder UTF-8 sind hierbei die bekanntesten Möglichkeiten.

Schriftarten und Glyphen

Wir haben uns nun langsam von der Bits & Bytes-Ebene nach oben gearbeitet hin zum abstrakten Begriff eines „characters“. Es gibt aber noch eine Ebene obendran – die Schriftarten oder auch Glyphen. Das ist im Prinzip eine weitere Tabelle die festlegt wie ein abstraktes Zeichen auf dem Ausgabemedium dargestellt werden soll. Jeder der sich einmal durch den Schriftenkatalog einer gängigen Office-Sammlung gewühlt hat, weiß das ein A ein A bleibt, auch wenn es etwas unterschiedlich geformt ist. Das beste Beispiel ist noch immer die eigene Handschrift im Vergleich zu einem beliebigen, gedruckten Werk. So lange eine gewisse Basis-Form erhalten bleibt, erkennt jeder Leser darin auch weiterhin ein A. Es gibt natürlich auch wieder Spezielle Schriftarten die als Darstellungvon Buchstaben Symbole haben, die nichts mit dem eigentlichen Zeichen zu tun haben – das bekannteste dürfte die Schriftarte Wingding oder auch Webdings sein. Besonders unpraktisch fällt mir diese immer wieder in e-mails aus Outlook auf, wenn man diese als Text ließt. Dort wird der Smily 🙂 automatisch in ein J umgewandelt und mit der Schriftart Wingdings formatiert – sieht zwar im ersten Moment richtig aus, aber mancher hat sich schon gewundert wo das „J“ denn nun herkommt. Ich merke es mir immer so: Ein Glyph macht aus einer Bit-Folge mittels einer Tabelle eine ganz bestimmte Grafik. Das ist zwar etwas vereinfacht, denn Schriftarten machen manchmal noch mehr, aber um den Überblick zu behalten reicht es allemal.

Collations

Was nochwas? Haben wir nicht alles endlich abgehandelt? Leider noch nicht ganz: Es gibt nämlich noch etwas was man mit Zeichenketten gerne macht: Aufreihen und Sortieren. Kling trivial, und es gibt doch Sortieralgorithmen wie Sand am Meer. Könnte man meinen, leider ist dem nicht ganz so (und das ist mit ein Grund weshalb man Sortieralgorithmen am besten an Zahlen erklärt …), denn auch wenn es im ersten Moment verlockend sein mag zu sagen: Man sortiert einfach nach der Größe der entsprechenden Ganzzahl der Bitfolge, das bringt leider nicht das gewünschte Ergebnis, denn schon bei ASCII haben wir ja große und kleine Buchstaben, ordnet man nun nach der errechneten Wertigkeit, so würde das folgende Sortierreihenfolge ergeben A,B,C…..,X,YZ,a,b,c – für die alphabetische Auflistung eines Materialkatalogs nicht das gewünschte Ergebnis – auch im Telefonbuch sucht man die Leute mit „von“ im Vornamen ja nicht unter „v“ sondern unter „V“ und dort irgendwo nach „Voldemort“…. und nun wirds ganz interessant: Wo ordne ich denn die Sonderzeichen wie Ä,Ö,Ü ein … sind das separate Zeichen am Ende? Oder soll ich sie behandeln wie „Ae“,“Oe“ und „Ue“? Das ganze nun noch auf die internationale Ebene gehoben und es wird ganz spannend: Je nach Land gibt es gleiche Zeichen, aber die werden unterschiedlich einsortiert, aber der Rechner soll es dennoch richtig machen. Das kann nur bedingt funktionieren, alles weitere regelt man über die Collation, die kann man zur Not auch bei der Sortierung mit angeben, und dem Sortierprogramm somit die Regeln vorgeben.

So jetzt habe ich einmal die Grundlagen zusammengefasst, die Auswirkungen und Mittel die man braucht um das alles umzusetzen behandle ich in einem separaten Artikel.

 

 

Laufbericht LGA-Indoormarathon

Die Laufsaison neigt sich dem Ende, draußen ist es kalt, nass und bis auf wenige Trainingstermine ist es einfach nur noch ungemütlich draußen unterwegs zu sein. An Wettkampf denkt da kaum noch ein Läufer. Aber es gibt durchaus Alternativen: Eine davon ist der LGA-Indoormarathon mit garantiert gutem Wetter. Wie der Name schon andeutet, findet das ganze Indoor statt. Aber einfach in einer Sporthalle laufen wäre ja öde und langweilig. Dem begegnet der LGA-Indoor-Marathon mit einer ausgewöhnlichen Location: Gelaufen wird in den Büro-Gebäuden der Landesgewerbeanstalt. Zu laufen sind 55 Runden, verteilt zwei Stockwerke, somit sind jede Runde zwei Treppenhäuser zu bewältigen: Einmal runter und natürlich auch wieder hoch.

Anreise nach Nürnberg ist ja für mich als ehemaliger Einwohner (habe dort zwei Praxissemester verbracht und dabei mit der Lauferei angefangen) kein Problem. Auch den Weg zur LGA finde ich mittlerweile ohne Probleme. So kann ich bereits am Samstag nachmittag meine Startunterlagen abholen. Im Gegensatz zum letzten Jahr habe ich mir diesmal tatkräftige Unsterstützung in Form meiner Freundin Marion mitgenommen. Sie wird den Lauf mit Fotos dokumentieren und mich seelisch „über die Runden“ bringen und anfeuern.

Den Abend vor dem Lauf geht es in die Alstadtbrauerei zum Carbo-Loading. Diese Brauerei hat mir mal jemand bei meinen Praxissemestern genannt, und sie ist immer noch ein echt heißer Tipp, wenn man gut essen will und vor allem gutes Bier genießen. Mindestens 4 Sorten gibt es zur Auswahl und alle sind super lecker und gut isotonisch, also genau das richtige für vor einem Marathon. Da kann ich auch verschmerzen, dass es keine Pasta im klassischen Sinne gibt.

Nach dem Frühstück im Hostel in der Nürnberger-City (mit Blick auf die Laufstrecke des Stadtlaufs) geht es zum Start. Alles wie immer bestens organisiert. Marion nimmt ihre Foto-Position ein, und ich beginne mit dem Warmlaufen, auch um die optomael Einstellung für die Kamera zu finden. Trotz scheinbar heller Beleuchtung ist es verdammt dunkel um Bilder zu machen, vor allem wenn die Läufer sich auch noch so schnell bewegen (was nunmal in der Natur des Läufers liegt).

Ich treffe Helga und Heinrich, beide sind dieses Jahr nicht dabei. Ich bin somit der einzige Läufer von Helgas Lauffreunden, der in diesem Jahr teilnimmt. Natürlich treffe ich auch Erwin aka Lionheart Bittel. Wir unterhalten uns auf dem Weg zum Start, natürlich gab es auch wieder die oblkigatorische Einweisung: rechts Laufen, links überholen und in den Treppenhäusern ist Überholverbot.

IMG_8640Ich habe mir vor dem Start noch ausgerechnet, das ich etwa 4:15 Minuten pro Runde (also 767 Meter) laufen muss um auf eine Zielzeit von 3:50h zu erreichen. Aber ich werde mich aber nicht verrückt machen lassen und laufe mit dem Start der Masse los. Recht bald finde ich meinen Rhythmus, meine Pulsuhr sagt mir: Alles ok. Aber irgendwie habe ich latent Durst, und das bereits auf den ersten Runden. Aus meiner Erfahrung weiß ich: Einfach auf den Körper hören, und so erbame ich mich bei der dritten Runde und „entjungfere“ die Versorgungsstation mit einem Becher Wasser. Auf der Runde drauf gibt es dann noch eine Runde ISO hinterher.

In den ersten Runden sortiert sich das Feld sich noch etwas, es streckt sich vor allem. Das ist auch gut so, denn so gibt es keine Staus mehr vor den Treppenhäusern oder zumindest nur noch sehr selten. Es läuft alles einfach, selbst die Treppen fallen mir (noch) recht leicht.

So vergehen die ersten zehn Runden, schneller als ich mir das vorgestellt habe. Natürlich liegt das auch an der Motivation, Marion macht entweder Fotos (auf denen gebe ich mir Mühe nicht übermäßig abgekämpft zu wirken. Nach der Umrundung des Aufzugs an der Katine vorbei stehen Helga und Heinrich und feuern kräftig an.

Ehe ich mich versehen habe, bin ich 18 Runden gelaufen, Marion gratuliert mit einer Notiz auf ihrer Tafel: „Endlich volljährig“. Kurze Zeit später bin ich bereits eine Stunde unterwegs – also knapp ein Viertel der Strecke. Bisher hatr mich Erwin nur wenige Male überrundet. Also ist er entweder dieses Jahr deutlich langsamer oder ich bin verdammt schnell. Ich habe es mir verkniffen Rundenzeiten selbst zu nehmen mit der Pulsuhr. Stattdessen orientiere ich mich an der großen Anzeige – so ganz falsch kann ich aber nicht liegen was die Geschwindigkeit betrifft. Grob überschlagen bin ich bei irgendwas um die 4-5 Minuten, das passt ganz gut mit dem Plan zusammen.

Runde für Runde nähere ich mich der Halbzeit bei 28 Runden. Ich versuche zwischenzeitlich mich nicht aufs zählen zu konzentrieren, aber gelegentlich erhasche ich dann doch einen Blick auf die Rundenanzeige. 30 Runden habe ich noch vor mir, die Halbzeit ist also zum Greifen nah. Ich greife zur Energieversorgung: Banane in handlichen Stücken – mit zunehmender Strecke gelingt es mir nicht mehr so recht einen einzelnen Happen zu greifen, irgendwie sind es immer gleich zwei die ich in der Hand habe. Auch sonst merke ich langsam den typischen Marathon-Effekt bzw. allgmein Ausdauer und Langzeitanstrengung: Man bekommt eine Art Tunnelblick – durch die Flure wird der Eindruck noch weiter verstärkt. Die Halbzeit fliegt dann irgendwie an mir vorbei, Marion hält mir die Tafel mit der frohen Botschaft hoch. Nun gut, ich bin ja auch schon fast zwei Stunden unterwegs – mein Gefühl beim Blick auf die Uhr sagt mir: „Sollte machbar sein, zumindest die Zeit vom letzten Jahr wieder einzustellen“. Der Blick auf die Pulsuhr sagt mir auch: Soweit alles in Ordnung, auch wenn der Puls bei der Veranstaltung leider nur eine geringe Aussagekraft hat: Ich kenne mein Diagramm ja recht gut, beim LGA sieht das immer aus wie mit Haiffischflossen – jedesmal am Treppenhaus steigt der Puls um dann langsam wieder abzuflachen, wenn die Belastung nachlässt.IMG_8761

IMG_8976Schon wieder sind ettliche Runden vergangen, zwischenzeitlich ist die Marke von zwei Stunden überschritten, also auch zeitlich für mich Halbzeit. Ich gewöhne mir wieder einen gewissen Turnus an: Alle 4 Runden etwas trinken, alle 6 Runden etwa etwas Engergie. Als es noch 24 Runden sind, muss ich spontan an die ganzen vorweihnachtlichen Dinge aus Nürnberg denken: vor allem an einen Adventskalender. Der für Läufer beim LGA ist allerdings etwas kurios: Hinter jedem der 24 Türen steckt ein Treppenhaus … und immer das gleiche … ;-). Spätestens ab der Runde ist es mit dem „einfach laufen lassen“ vorbei – ich beginne (mal wieder viel zu früh) die Runden zu zählen und mich zu motivieren. Marion zeigt mir das auch an und betätigt sich bei 20 Runden als Nummern-Girl: „Noch 20 Runden“ … Ich mahne mich dazu mich keinenfalls gehen zu lassen und konstant weiter zu laufen, auch wenn es gerade schwerfällt.

Ab nun finden sich auch die Läufer der Down-Syndrom-Staffel auf der Strecke – hier heißt es zusätzlich Rücksicht nehmen und nach Kräften anfeuern und motivieren, eine tolle Leistung die hier sowohl die Teilnehmer als auch deren Begleiter hier zeigen. Auch ich motiviere mit, soweit ich die Puste dazu habe, denn auf einigen Strecken ist es doch etwas stickig geworden. Vor allem das Wechselbad der Temperaturen im Foyer macht mir etwas zu schaffen – erst wird es feucht warm auf dem Weg zum Wendepunkt um den Aufzugsschacht und an der Kantine vorbei, kurz darauf pfeift es unangenehm kalt von draußen herein ins Foyer – brr…

Ab 15 Runden vor Schluss belohne ich mich und pushe mich nochmal: Ich greife zur Cola, deutlich früher als beim Marathonlauf: Dort hole ich mir den Zucker und Kofein-Schock erst 5km vor dem Ziel, hier liegen noch etwa 11km vor mir – also definitiv keine Strecke mehr vor der ich mich fürchten müsste, vielmehr doch eher eine „kurze“ Trainingseinheit mit ein paar zusätzlichen Höhenmetern. Mittlerweile fallen mir vor allem aber die positiven Höhenmeter doch etwas schwerer – die Treppen „hochtippeln“ klappt nicht mehr ganz so häufig, und ich bin fast froh gelegentlich in langsamere Läufer hinein zu laufen wenn es die Treppen hochgeht, dann habe ich dank Überholverbot wenigstens eine Chance zum Luftholen. Was mir dennoch erstaunlich gut gelingt ist das „Wiederanlaufen“ nach dem Treppenhaus – im vergangenen Jahr ging das in den Endrunden nur noch sehr mühsam, diesmal komme ich damit besser zurecht. Ich habe mir aber auch eine etwas andere Technik angewöhnt. Anstelle gleich wieder mit größtmöglicher Beschleunigung auf die Laufgeschwindigkeit zu kommen, nehme ich mir eine Türe als Marke – die liegt rund 20m nach dem Treppenhaus, so habe ich zumindest mal das Gefühl Energie zu sparen.

IMG_9111Mit Runde 12 beginnt die innere Uhr zu laufen – ich stelle mir bildlich eine Uhr vor und schiebe jedesmal den Zeiger 5 Minuten zurück (eigentlich ja nur um die 4 Minuten, so lange brauche ich ungefähr pro Runde) … das motiviert mich mental. Zudem kündigt mir Marion die ersehnte Spezial-Versorgung an: Bei noch 10 Runden gibt es Domino-Steine, eine Nürnberger-Spezialität die ich fast kiloweise verfuttern kann. Leider erweisen die sich als nicht ganz marathontauglich – ich verschlucke mich beinahe beim Verzehr. Daher bleibt es erst mal bei einem und einem großen Schluck Cola an der Versorgungsstelle.

IMG_9129Nun geht eigentlich alles recht fix, auch weil ich mir immer wieder „Belohnungspunkte“ auslobe – alle zwei Runden gibt es was an der Versorgung – wahlweise ISO oder Wasser, bei Runde 50 nochmal Cola. Die Beine werden langsam richtig schwer und ich verwünsche (wie in jedem Jahr) das Treppenhaus. Erwin überholt mich auf seiner letzten Runde noch einmal, er ist bereits auf seiner letzten, dennoch motiviert er mich natürlich, ich habe noch vier Treppenhäuser aufwärts vor mir (ich lege den Punkt zum runterzählen immer ans Ende dieser kraftraubenden Stelle, der restliche Zieleinlauf ist dann ja nicht mehr schwer und topfeben. Drei Runden vor Schluss gibts nochmal Cola, den Rest beiße ich einfach so durch. Irgendwie kann ich es noch gar nicht fassen, ich schaue zur Sicherheit nochmal auf die Rundenzählung: Aber es stimmt nur noch zwei Mal die Runde, also auch nur noch zwei Treppenhäuser. Ich verschärfe ganz vorsichtig das Tempo, da mittlerweile deutlich weniger Läufer auf der Strecke sind, kann ich mich diesmal durchgängig links halten. Mit richtig gutem Gefühl geht es auf die letzte Runde – hier bin ich schon fast versucht frühzeitig zum Endspurt über zu gehen, aber ich mäßige mich noch ein klein wenig. Zu deutlich sind mir die Erinnerungen an die vergangenen Jahre, als ich es etwas zu früh habe laufen lassen und dann fast das Treppenhaus nicht mehr hochgekommen bin. Diesmal geht die Rechnung aber auf: Nach dem Treppenhaus lege ich nochmal einen Spurt ein, es ist ja nun wirklich gleich geschafft. Rum um die Ecke und durch das Zeitmess-Portal durch. Marion empfängt mich kurz hintendran.

Am Ende sind es 3:49: 47 – somit habe ich mein geplantes Ziel von 3:50 auch erreicht und zwar sogar ziemlich exakt. Dass der vor mir in der Alterklasse dann nur 6 Sekunden schneller war und es somit sogar aufs Treppchen geschafft hat, fuchst mich ein wenig, denn die 6 Sekunden hätten ja eigentlich auch noch drin sein müssen. Aber sei es drum – ich bin immerhin nicht letzter in meiner Klasse und auf Platz 18 im Gesamteinlauf und Platz 16 bei den Gesamt-Herren, da kann ich doch echt nicht maulen. Vor allem bei meiner doch eher „laschen“ Trainingsvorbereitung, mit nur 2x die Woche trainieren, und selbst da fast keine Intervalltrainings und erst recht keine richtig langen Strecken. Merke: für nächstes Jahr doch ein wenig mehr trainieren.

Der Termin fürs nächste Jahr ist auch schon gesetzt bei mir, immerhin feiert der LGA-Indoormarathon seinen 10. Geburtstag – er soll diesmal bereits Samstag am Abend starten und hinterher soll es eine ordentlich Party geben. Das klingt alles sehr positiv, aber es schwingt auch eine etwas traurige Nachricht mit: Da sich der Marathon werbe- und aufwandsmäßig nicht rechnet wird kommendes Jahr wohl der vorerste letzte Marathon in der LGA stattfinden. Das ist schade, denn die Stimmung ist echt klasse, und alle Beteiligten geben sich immer große Mühe und sind mit viel Herzblut dabei. Denn wo sonst kann man bei schlechtem Wetter dennoch ungestört und trockenen Fußes einen Wettkmapf austragen? Das Wetter außerhalb war übrigens absolut richtig für den Indoor-Marathon – als ich das Gebäude verlasse regnet es wie schon die ganze Veranstaltung über.

Filmkritik – Sein letztes Rennen

Bereits beim Stadtlauf in Nürnberg bin ich auf den neuen Film mit Dieter Hallervorden aufmerksam geworden – Erwin (Lionheart) Bittel hatte lustige Bilder davon gemacht, als er vor dem Plakat posierte – ich hoffe mal nicht, dass Lionheart so bald sein letztes Rennen bestreitet.

Nun lief der Film bereits einige Zeit in den Kinos und ich habe mal wieder just-in-time die Kurve bekommen ihn mir noch anzuschauen. Erwartungen hatte ich direkt keine, ich habe mich einfach auf einen unterhaltsamen Abend gefreut – und als Ultra-Marathoni sind die Trainingspausen mit Lauf-Filmen doch gut erträglich. Zwar weiß ich aus der Vergangenheit, dass Dieter eher für Satire bekannt ist, und um einiges kommt man ja einfach nicht herum. Aber ich habe nur bedingt erwartet, dass es in Bully-Herbig-Manier vom Schuh des Manitus genauso in dem Film mit der Komik und Satire einfach hintereinander weggeht.

Jeder Läufer kennt ja das Problem, dass man in jedem Lauf auch mal Phasen hat bei denen es anstrengend wird, sei es wegen des Streckenprofils oder vom Kopf her, somit wäre ein Lauffilm der nur die positiven Seiten zeigt ja auch furchtbar langweilig.

Auch wenn der Filmtitel eine Lauffilm impliziert, so ist die Thematik im Ganzen doch eine andere. Es geht um die alternde Gesellschaft in Deutschland und den Umgang mit alten Menschen. Der ehemalige Marathon-Superstar Paul Averhoff ist alt geworden und hat seit Jahren keinen Wettkampf mehr bestritten. Etwas was ich mir bei Läufern eigentlich nur vorstellen kann, wenn es gesundheitlich nicht mehr geht, aber die Vielzahl älterer Teilnehmer bei fast jeder größeren Veranstaltung zeigt mir eigentlich: Wer regelmäßig weiter trainiert ist auch im hohen Alter noch fit, wenn es auch nicht mehr reichen mag ganz vorne in den Spitzengruppen mitzumischen. Ich habe Respekt vor jedem der sich der Herausforderung eines Laufes stellt (egal ob Volkslauf, Halbmarathon, Marathon oder Ultra-Marathon), und um so mehr Respekt vor denjenigen die sie bezwingen (egal in welcher Zeit, wichtig ist das Durchhalten und ankommen). Aber nun gut, es gibt sicherlich für alles Gründe, auch dafür nicht mehr regelmäßig zu trainieren.

Zu Beginn des Filmes erfahren wir, dass die Lebensgefährtin Margot Averhoff –  welche Paul Averhoff früher als Trainerin zur Seite stand – gesundheitlich angeschlagen ist, sie bricht in der Küche zusammen. Nachdem dies nicht zum ersten Mal geschehen ist, drängt die Tochter darauf, dass ihre Eltern ins Altenheim gehen, da sie keine Zeit hat sich um die Pflege der Eltern zu kümmern. Leider ein sehr häufiges Szenario in der heutigen Arbeitswelt – eine Doppelbelastung mit Pflege der Eltern und Job steht kaum jemand heute auf lange Sicht durch. Auch muss man natürlich sehen, dass die junge Generation auch eigene Bedürfnisse und Wünsche hat.

So endet das Ehepaar im Altenheim, aber schnell wird klar: Das ist nicht wirklich zielführend, vielmehr ist das Heim die letzte Station auf dem Weg aus dem Leben zu scheiden. Genauso wird sie auch betrieben, möglichst effizient und mit allen Notständen die man aus der Pflege so kennt: ungelerntes Personal, zu wenig Zeit etc. Das ist natürlich nix für jemanden der weiß was es heißt draußen unterwegs zu sein und aktiv zu sein.

So beginnt Paul sich wieder zu berappeln und vor lauter Frust gibt er beim Essen bekannt, dass er beim Berlin-Marathon starten will. Es folgt was folgen muss: Training und die Rebellion im Altenheim – wenn sie auch leider nicht so ausgeht wie man es sich im ersten Moment denkt. Margot verstirbt überraschend einige Tage vor dem Rennen. Daraufhin fällt Paul ersteinmal in eine tiefe Krise, leider verwehrt ihm das Altenheim jegliche sinnvolle Betreuung – stattdessen wird er ruhig gestellt und im Bett fixiert. So einfach kann man sich Hilfe machen und Arbeit sparen.

Zusammen mit einem Heimbewohner und einen engagierten Pfleger gelingt Paul gerade noch rechtzeitig die Anreise zum Start beim Marathon. Den Rest verrate ich jetzt hier mal besser nicht…

Insgesamt ein sehr rührender Film, das muss man lassen. Er macht vor allen Dingen nachdenklich wie wir mit der alternden Gesellschaft umgehen wollen und wie wir als Nachfolgegeneration mit unseren Eltern umgehen wollen. Ich bin kein Fan von irgendwelchen Alten-Sammelheimen, auch unseren Großeltern und allen Angehörigen blieb das zum Glück erspart. Aber ich bin auch realistisch: In der heutigen Arbeitswelt ist es beinahe unmöglich sich in Eigenregie um die Eltern kümmern zu können. In vielen Familien wird es dadurch erschwert, dass sich die Last auf zwei oder auch nur vier Schultern verteilt. Kommen dann noch längere Distanzen zwischen den Familienteilen hinzu wird es sehr schnell beinnahe unmöglich oder nur mit sehr hohem Aufwand.

Da das Altern ein schleichender Prozess ist, bin ich der Meinung man muss den älter werdenden Menschen Hilfe anbieten, aber Ihnen diese nicht aufzwingen – niemand wird gerne bevormundet. Viele Menschen haben einen gewissen Stolz den sie auch als Würde empfinden. Dieser verbietet es dem Individum erst einmal sich helfen zu lassen. Gerade wenn es um Dinge geht, die eigentlich trivial sind oder jahrelang einfach dazu gehörten. Das fängt mit dem Kochen und Wäschewaschen an und hört bei eigenständiger Mobiltät auf. Sich selbst eingestehen zu müssen das etwas nicht mehr so bleiben kann wie es ist, ist mit Sicherheit nicht einfach. Hier verhält es sich wie beim Laufen: Einfach von jetzt auf gleich aufhören, das kann nicht gelingen, genauso wenig wie von jetzt auf gleich eine Ultra zu laufen. Unterstützung da wo es gewünscht oder notwendig ist, ansonsten soviel Würde und Eigenständigkeit wie möglich. Die aktuellen Angebote wie betreutes Wohnen oder auch das Mehr-Generationen-Quatier sind hier denke ich erfolgversprechende Ansätze.

Abschließend noch ein paar Gedanken zum Film aus Sicht eines Läufers: 12 Wochen Vorbereitung sind der Standard für einen grundlegend trainierten Läufer. Das kann man mit etwas Willen und Abstrichen in der Zielzeit auch auf 8 Wochen verkürzen, aber das ist schon wirklich ambitioniert. Von daher ist das gewählte Szenario schon etwas grenzwertig und keinenfalls für den Laufanfänger zur Nachahmung empfohlen (dann schon eher etwas in der Art „von null auf 42“ – innerhalb eines Jahres). Auch im fortgeschrittenen Alter sollte man sich ausreichend Zeit für die Vorbereitung nehmen, vor allem aber auch eine entsprechende Betreuung haben. Kontakte sollte man als ehemaliger Olympia-Teilnehmer dafür eigentlich noch irgendwo haben. Die Ausrüstung ist auch etwas kurios, aber es sollte machbar sein, mit einer derartigen Ausstattung einen Marathon zu bestehen – es gibt ja auch Leute die barfuß einen Marathon bestreiten, und früher ging es ja auch, mit weit weniger ausgfeiltem Schuhwerk als heute.

Die Bilder von der Laufstrecke sind beeindruckend und reißen einen als Läufer durchaus mit, wenn man weiß wie schwer es sich anfühlt, jenseits der 30km. Sehr schön dargestellt fand ich die Unterstützung an der Strecke: Aus Erfahrung weiß ich: Ohne die ist jeder Lauf um ein vielfaches anstrengender. Gegen Ende der Strecke hin, sind dem Regisseur dann aber doch die Pferde ein wenig durchgegangen – wie dargestellt ist Paul mit Sicherheit nicht der schnellste Läufer, schlägt sich aber wacker im hinteren Mittelfeld, so würde ich es zumindest einmal einschätzen. Selbst ganz hinten wäre man nicht so verlassen und allein wie im Film dargestellt, ferner würde doch auch mindestens ein Begleitradler als Besenfahrzeug irgendwo in der Nähe sein – wie gut es hinten laufen kann, darüber berichtet Erwin ja häufiger einmal (besonders am Stadtlauf in Nürnberg). Auch die zwischenzeitlich gezeigte Uhr zur Zeitnahme scheint mir etwas sehr optimistisch für einen einsamen Schlussläufer: bei 3:34h ist nach meiner Erfahrung das dicke Hauptfeld im Einlaufen, und auch bei um die 4h sind sicherlich noch mehr Läufer im Zielbereich unterwegs. Das will ebensowenig passen wie ein immer noch voll besetztes Olympia-Stadion zum Einlauf des Helden.

Insgesamt: Sehenswert und zum Nachdenken anregend, aber durchaus auch mit heiteren und sportlichen Momenten. So und jetzt mach ich Schluss – ich muss noch meine Laufschuhe schnüren, damit ich nicht einroste …