2011-02-24 digital life Vor sechs Jahren Ein Jahr der Projekte Nun ist das sechste Jahr mit Unix vollendet. Am 24. Februar 2005 habe ich mein erstes Unix installiert, heute, sechs Jahre spaeter ist es fuer mich normal unter Unix zu arbeiten, Windows habe ich schon lange nicht mehr installiert. Normalerweise schreibe ich diesen Rueckblick immer am Jahrestag der Erstinstallation. Dieses Mal war ich zu dem Zeitpunkt allerd- ings in Suedamerika und hatte anderes im Kopf als stundenlang an diesem Text zu sitzen. Seit April bin ich zurueck doch der Text blieb laenger und laenger ungeschrieben. Heute, vier Monate ver- spaetet, arbeite ich endlich nach was noch offenstehend ist. Auch das vergangene Jahr war beeindruckend, rueckblickend, und das obwohl ich etwa die halbe Zeit offline war. Aber beginnen wir im Fruehjahr 2010. Planloses rumgehacke an `cropper' fuehrte zu der Erkenntnis, dass man besser was richtig macht statt wild Codestuecke zusammenzuk- leben. Vielleicht war diese Erkenntnis wegweisend fuer das ver- gangene Jahr, denn dass es cropper gab, fiel mir erst wieder ein als ich in den alten Eintraegen gegruschtelt habe, dafuer habe ich in dem Jahr aber allerlei Sachen intensiv und richtig gemacht. Als erstes Projekt eine Seminararbeit zur Unix Philosophie. [0] Ich hatte schon einige Monate locker daran gearbeitet, hauptsae- chlich um Informationen zu sammeln. Dann habe ich einen guten Monat gezielt daran gearbeitet und geschrieben. Zum ersten Mal habe ich ein groesseres Dokument mit troff gesetzt. Ich habe dazu die ms-Macros verwendet. Da troff Postscript erzeugt und nicht PDF (wie bei Latex ueblich) verwendete ich gv(1) als Betrachter. So sparte ich mir die Konvertierung in PDF. Zum Abschluss gab ich ein ChaosSeminar zur Unix Philosophie. [1] Der Vortrag fiel mir schwerer als sonst, da mir das Thema persoenlich wichtig ist. Das folgende Sommersemester an der Uni stand ganz im Zeichen von masqmail. Ich hatte mir die Moeglichkeit erarbeitet mein kom- plettes Projektmodul mit einem Individualprojekt abzudecken. Endlich Zeit und Zwang (brauche ich manchmal) um an masqmail zu arbeiten. Ziel war es masqmail auf vordermann zu bringen. Das Projekt sah ich als Fortsetzung meiner Diplomarbeit. Jene blieb letztlich rein theoretisch, den praktischen Teil offenlassend. In dem Jahr danach schaffte ich es nicht mich auch an die Umsetzung zu machen. Somit war das Projekt genau das was ich wollte und brauchte. Dreieinhalb Monate lang arbeitete ich intensiv und ohne viel Ablenkung an masqmail. Das bedeutete zuerst mich (erneut) in den Code einzuarbeiten. Danach machte ich mich daran bekannte Bugs zu fixen und verfuegbare Patches einzubauen. Auch veroeffentlichte ich endlich neue Versionen. :-) Meine Arbeiten und Erfahrungen habe ich in einem Projektbericht dokumentiert und zudem in einem ChaosSeminar praesentiert. [2] In dem Vortrag ging es mir in er- ster Linie um meine Erfahrungen beim Wiederbeleben von alten Softwareprojekten. Wenn man sowas mal gemacht hat, dann weiss man *gute* Dokumentation zu schaetzen. Mir hat das gezeigt was ``gute Doku'' bedeutet: Das ist naemlich die die man spaeter mal gerne haette. (So trivial das auch klingen mag, dokumentiert wird meist etwas ganz anderes.) Waehrend meiner Arbeit an masqmail hatte ich Kontakt zur Autohell (leider), freute mich ueber Debian equivs, und durfte mich um Lizenzfragen kuemmern (MD5, HMAC-MD5). In diesem Zusammenhang machte ich ein weiteres Mal Gedanken zur Lizenzfrage, kam aber erneut ohne Ueberzeugung zu dem Ergebnis, dass die MIT Lizenz nicht die schlechteste Wahl ist. Nach meinen ersten Begegnungen mit der ueberregionalen Compu- terszene in 2009, intensivierte ich das 2010. Ich war bei den Chemnitzer Linuxtagen. Dort traf ich (ueberraschend) Yannic, und nach seinem Vortrag auch arg. Zudem war das Debianforum anwesend. Drei Monate spaeter war ich auch in Berlin beim Linuxtag und der Mini-Debconf die parallel dazu veranstaltet wurde. Ich nahm mir ein paar Tage frei und war auch beim Aufbau schon anwesend. Das Event war eine wertvolle Erfahrung und hat viel Spass gemacht. Wieder war die Begegnung mit Hauke ein Highlight. Zur MDC war auch zack anwesend, der frisch gewaehlte DPL. Seine Wahl war die erste die ich mitverfolgt hatte. Auf der MDC bin ich auf --Toni++ Mueller gestossen als ich in die Runde gefragt hatte welchen einfachen Konsolentexteditor ausser nano es denn gaebe. Er hatte geantwortet ``vi''. Daraufhin hatten wir eine laengere Diskussion und ich dachte viel darueber nach. Schliesslich kam ein ein-Seiten-Merkblatt zum vi [3] heraus und der Versuch eine normale Computernutzerin von gedit/nano zum vim zu wechseln. In dieser Hinsicht freue ich mich jederzeit auf Er- fahrungen von Versuchen und Kommentare. Neben den grossen Treffen hatte ich auch ein kleines mit Azerty, das mir sehr viel bedeutet hat. Wenn sein Name faellt kommt bei mir natuerlich immer die Assoziation ``Plan9''. Bisher gibt es nichts Neues auf dem Gebiet ... aber das kommt irgendwann schon noch. Ich hatte allerlei Kontakt zu Software-Projekten. Erwaehenswert ist roffit, bei dem ich Bugs fand, es deshalb kri- tisiert habe, aber auch Patches lieferte. Die Frage wie ich zu ``experimenteller'' Software stehe und ob sie geeignet ist in eine Distribution eingebaut zu werden, kann ich leider immer noch nicht fuer mich beantworten. Ich habe mich selbst mit ihr kon- frontiert indem ich Kritik uebte die erwidert wurde. Ob meine Kritik richtig war? Ich bin unschluessig. Letztlich haben ihre Folgen aber roffit voran gebracht. Angenehmer war mein Kontakt mit Gunnar Ritter von den Heirloom Tools, dem ich einen Bug in col(1) (invertiertes -x) gemeldet habe, mit Patch. Ich glaube das war mein erster signifikanter Beitrag der herkoemmlichen Art zu einem bedeutenden Softarepro- jekt. ;-) Bei uzbl und nmh war ich nur auf den Mailinglisten mit dabei. Bei suckless natuerlich auch. Bedeutende Computerbuecher die ich dieses Jahr gelesen habe, waren: - Peter Salus: ``A Quarter Century of UNIX'' - Das Lions' Book - Diomidis Spinellis: ``Code Reading'' - Jerry Peek: ``MH & xmh'' (Letzteres insbesondere im Bezug auf die zweite Jahreshaelfte.) Eine der bedeutendsten Aenderungen dieses Jahr war die Umstellung meiner Website. Die Ideen und Plaene dafuer waren schon lange da, erste Arbeiten auch. Im Mai habe ich dann alles fertig gemacht und aktiviert. Die Website laeuft nun auf deifls Server, da mein Webspace mich dafuer zu sehr einschraenkt. Wenn man shell scripte mit nroff und imagemagick verwendet, dann braucht man eben auch mehr als einen Webspace. Ich bin mit der neuen Website sehr zufrieden und erhielt auch positives Feedback. Es mag sein, dass die die sie seltsam finden sich nur nicht gemeldet haben. ;-) Und dann war es Sommer. Zeit offline zu gehen. Unsere Reise nach und durch Suedamerika wollte ich bewusst auch nutzen um Abstand zur Computertechnik zu bekommen. Am Computer sassen wir nur fuer drei Dinge: Uns zu informieren, Texte und Fotos von uns fuer die daheim online zu stellen, und um Mails zu schreiben. Die Texte schrieben wir ueber Putty mit dem vi, die Fotos luden wir per Webinterface hoch und liessen sie per Shellscript verkleinern. Die Anzeige der Inhalte uebernahm das Directory Listing des Browsers. Das war fuer manche sicher gewoehnungsbeduerftig, aber das sollte auch ruhig so sein. Schoen war als wir hoerten, dass krt und yannic Feeds fuer unsere Daten gebastelt hatten. Emails schreibe ich normalerweise ueber ssh auf meinem Server daheim. Das eruebrigte sich in den ersten Monaten meiner Abwesenheit, denn kurz nachdem ich weg war bekam unser Router etwas ab und vergass alle seine Einstellungen. Folglich war nichts mehr los mit dyndns und einem offenen Port, die zuhause hatten ja noch nicht mal mehr eine Internetverbindung. Telefonsupport war bei den Telefonkosten, der Zeitverschiebung, und den Computerlaien zuhause ein schwieriger Vorgang. Es dauerte rund zwei Monate bis wieder alles soweit konfiguriert war, dass ich wieder auf meine Mails zugreifen konnte. Diese Zwangspause war mir nur recht. Im Oktober, November, Dezember war allerdings wieder computern angesagt. Um das Urlaubssemester genemigt zu bekommen musste ich ein Praktikum machen. Ich fand in Michael Richardson aus Kanada einen Betreuer der meine selbststaendigen Arbeiten an nmh be- treute. War nur noch die Frage *wo* ich arbeiten wuerde. Ich brauchte ja einen Computer. Hierfuer fand ich ueber die debian-ar Mailingliste Juan Granda der im Gesundheitsministerium in Santi- ago del Estero arbeitet und mir dort einen Computerarbeitsplatz organisierte. Dass das so klappte freut mich sehr. Der Optimal- fall war eingetreten: Ich konnte selbstbestimmt an nmh arbeiten und hatte dazu uneingeschraenkten Zugang zu einem Computer den ich selbst installieren durfte. Zudem fand ich in Juan und seinem Freund Ale zwei klasse Typen die ebenso Freie Software entwickeln und unsere Zeit in Santiago auch sonst stark aufwerteten. Mein eigentliches Ziel, nmhs Encoding-Support bei zitirtem Text in Replies, zu verbessern musste ich leider bald fallen lassen, da dies einer der kompliziertesten Teile von nmh ist und mich das zu Beginn ueberforderte. Vielmehr nutzte ich meine Zeit um mit nmh warm zu werden. Ich lernte den das Projekt kennen, las viel Code, las viel Dokumentation, fand kleine Unstimmigkeiten die ich verbesserte. Das Ziel war, mich auf zukuenftige Arbeiten an nmh vorzubereiten. Wenn ich auch in dem Praktikum nichts konkretes umsetzen konnte, so sollte ich danach zumindest bereit sein um spaeter mal ohne viel Einarbeitungsaufwand daran arbeiten zu koennen. Wobei ich natuerlich schon auch direkt etwas beitragen wollte. Dabei kam mir eher die Community dazwischen. Ich lernte (auf dem harten Weg), dass nicht alle Communities so sind wie die von modernen Freien Software-Projekten. MH kommt aus den 70ern, viele bei nmh nutzten Computer schon bevor ich laufen konnte. So eine Community ist nicht zu vergleichen mit dem was man heutzu- tage so kennt. Folglich eckte ich an. (Das war mir auch Anfang 2010 schon mal passiert.) Ich will halt auch Konzepte umkrempeln wenn ich der Meinung bin, dass sie momentan nicht gut sind. Nmh, das habe ich gelernt, sieht sich aber als gereiftes, stabiles Backend, da ist Kompatibilitaet entscheidend. Jedenfalls musste ich schliesslich so manches Ende offen lassen. Gelernt habe ich aber eine ganze Menge. Als netter Nebeneffekt ist mein nmh-Setup nun auch um einiges besser als es zuvor war, und mit mhpgp habe ich nicht mehr so viele Probleme mit ver- schluesselten Mails. Einen Teil meiner Praktikumszeit habe ich auch masqmail gewidmet, das ich weiter voranbringen konnte. Erwaehnenswerte Tools sind noch autossh, write und rr. Ersteres um bei der instabilen Internetverbindung in Santiago dennoch be- quem ueber ssh arbeiten zu koennen. Wer mal in so einer Situation ist, der weiss was er an autossh hat ... und an demjenigen (Axel Beckert) der ihm davon erzaehlt hat. Zweiteres weil ich damit zum ersten Mal richtig gechattet habe. :-) Und dritteres um mir `find . -type f | xargs grep -i' abzukuerzen. Dieses Tool ist mir beim Einarbeiten in fremden Code sehr wertvoll geworden. Vielleicht koennte man es auch durch ctags ersetzen, keine Ahnung. Mit dem Thema git vs. hg wurde ich immer wieder konfrontiert. Ebenso mit dem Thema branching in der Versionskontrolle. Un- veraendert ist mein Standpunkt, dass weniger mehr ist. Leider zaehlen auch in der Welt Freier Software Features mehr als leichte Eleganz. In Suedamerika hatte ich Tastaturen mit entweder spanischem oder US-amerikanischem Layout vor mir. Es dauerte eine Weile bis ich damit klar kam, hatte dann aber keine Probleme mehr. Die span- ische Tastatur ist meiner Meinung nach schlechter als die deutsche. Die US-amerikanische ist aber, wie nicht anders zu erwarten, zum Programmieren vorteilhaft. Gerade bei klassischen Unix-Tools merkt man wie sehr sie vom QWERTY-Layout profitieren. Nur mit `-' und `+' bin ich schlecht klargekommen. Der `/' ist dafuer unbeschreiblich geil eingebbar ... da will man nur noch Slashes tippen. :-) Die Schriftgroesse am Bildschirm hat sich bei mir in den letzten Jahren bestaendig vergroessert. Das Problem ist nicht mehr, dass der Bildschirm zu wenig Platz bietet sondern dass das Lesen mehr anstrengt. Ich denke es liegt viel an meinem jetzigen Program- mierstil und den verwendeten Programmiersprachen, dass ich ein- fach nicht mehr so viel horizontalen Platz brauche. Frueher waren Zeilen mit 200 Zeichen noch nicht lang genug, jetzt bietet mein Terminal meist nur noch 90 (80 + 1 Tab fuer Zeilennummern). Zugegeben, je nach Quellcode waeren 132 Zeichen aber nicht schlecht. Damit waere ich am Ende meines Rueckblicks. Das vergangene Jahr war aussergewoehnlich, nie war ich soviel ohne Computer gewesen. Aber durch die zwei grossen Projekte war meine Taetigkeit am Com- puter auch anders strukturiert als sonst. Mit meiner praktischen Arbeit an masqmail bin ich nun auch gefuehlt zum Projektleiter geworden. Mit meiner Arbeit an nmh habe ich zum ersten Mal aktiv an einem groesseren Projekt mitgearbeitet. Beides hat mich tech- nisch und persoenlich stark weitergebracht. Ich will mal gewagt behaupten, dass ich mich damit auf eine hoehere Ebene gehoben habe. Das vergangene Jahr war ganz klar ein Jahr der Projekte. Mal sehen was in den naechsten zwoelf Monaten auf mich zukommen wird. Wahrscheinliche Themen sind: Weg von Debian zu ???; weitere grundlegende Aenderungen bei masqmail; ein experimentell- er nmh Fork? (Masterarbeit?); ein eigener Server im Netz; und sicher auch sonst noch viel Interessantes. Langweilig wird's bes- timmt nicht. :-) [0] http://marmaro.de/docs/studium/unix-phil/ [1] http://marmaro.de/docs/chaosseminar/unix-phil/ [2] http://marmaro.de/docs/chaosseminar/sw-project-revival/ [3] http://marmaro.de/docs/vi-for-nano-users/ http://marmaro.de/apov/ markus schnalke