Mist! Ich wollte doch jeden Sonntag posten. Naja, ich versuche diese Ausrutscher minimal zu halten und möglichst immer gleich nach zu holen.

Eine Neuigkeit: Das TheLib-Projekt benutzt nun ein Subversion-Repository!

Nachdem Mercurial sich absolut nicht bewährt hat war unsere Experimentierfreude aufgebraucht und wir sind lieber auf einem System umgestiegen, von dem wir wissen dass es tut und wie es tut.

Natürlich gib es viele Projekte die mit Mercurial super toll funktionieren und natürlich gibt es viele Gründe warum alles mit Git besser wäre. Ganz ehrlich: Ist mir egal.

Vor einiger Zeit hab ich über Mercurial gewettert. Ich sehe durchaus keinen Grund meine Meinung von damals zu ändern. Die Konvertierungs-Tools sind immer noch lächerlich schlecht und die Tatsache, das SCM-Protokoll-Interoperability offensichtlich keine dieser Entwicklergruppen interessiert ist erbärmlich.

Trotzdem möchte ich über Mercurial sprechen. Die letzten Wochen habe ich an einigen (wissenschaftlichen) Texten zusammen mit anderen Mitautoren geschrieben. Diese waren in Svn-Repositories verwaltet und ich kann nur sagen: das funktioniert einwandfrei!

Dann arbeite ich gerade auch an einem kleineren (vielleicht auch mittelgroßen) Programmier-Projekt. Dabei entsteht eine Bibliothek die inzwischen auch schon von mehreren Personen benutzt wird. Das ganze ist in mein Arbeitsprojekt VICCI eingebettet. Aus Gründen die sich meiner Befugnis entziehen gibt es in diesem Projekt nur ein einzelnen SVN-Repository mit global vorgegebener Verzeichnisstruktur für die Teilprojekte. In der wirren Unterverzeichnisstruktur lassen sich leider die „Branches“- und „Tags“-Verzeichnisse wegen externe Abhängigkeiten nicht sinnvoll einpflegen. Das ist so … schmerzhaft. Ich müsste dringend an der API des Projekts Änderungen durchführen. Aber ohne sinnvolle Branch-Struktur würde ich dabei zwangsläufig entweder nicht einchecken können oder den Code meiner Kollegen beeinflussen. Natürlich gibt es immer Lösungen die nur kurzfristig Probleme bereiten und wo danach alles besser wird. Aber es ist erstaunlich wie schwierig es ist Änderungen herbei zu führen wenn eine größere Gruppe in der Arbeit beteiligt ist. Wie dem auch sei, so wie es ist, werde ich mit dem SVN hier nicht glücklich.

Was eine schöne technische Lösung wäre, wären Multi-Protokoll-Interfaces auf ein Repository: z.B. ein Hg-Repository mit Interfaces für Hg, Git und Svn. Möglich ist das (siehe meinen Konvertier-Tools-Rant). Es macht nur keiner. *seufz*

Ich möchte heute eine neue Kategorie auf meiner Webseite einweihen: „Tool Links“. Hier werde ich auf Tools anderer verweisen. Kleine (oder größere) Programme die ich sehr gut finde und auch selber benutze.

Den Anfang mach ich mit „Everything“ (http://www.voidtools.com/). Diese nette Program liest direkt die lokalen NTFS-Festplatten-Partitionstabellen aus und liefert so Ergebnisse einer Dateinamen-Suche innerhalb von Sekundenbruchteilen für die gesamte Platte. Schneller geht es nicht!

War nicht gerade eben schon zeit wieder was zu posten? … Wie die Zeit vergeht.

Was mich in den letzten Tagen beschäftigt ist das Problem der Software-Entwicklung. Irgendwie ist das alles ziemlich unbefriedigend. Programmieren ist harte, anstrengende und langwierige Arbeit. Es dauert unendlich lange. Ein Programm von der Komplexität eines „Hello World“ braucht, wenn man mal eherlich ist, vermutlich so eine Woche. Kein Witz! Natürlich kann man das in 10 Minuten runterprogrammieren, aber wenn das Program in Wirklichkeit sowas absurdes machen muss wie eine Eingabe verarbeiten um eine Ausgabe zu erzeugen, dann gibt es so unendlich viele Kleinigkeiten. Jeder der behauptet „Ach was, das mach ich G’schwind.“ macht sich unglaubwürdig und disqualifiziert sich für die Arbeit an größeren Projekten. Leider gilt das für mich auch immer noch. Ich unterschätze auch immer noch die Zeit die Software braucht.

Was aber wirklich am frustrierentsten ist, ist dass man es Software nicht ansieht. Da buttert man Wochen und Monate in ein Programm rein und es will und will einfach nicht fertig werden. Von außen betrachtet sieht man ewig keinerlei Fortschritt. Sicher, irgendwann macht es „klick“ und dann tut fast alles auf einmal, aber bis dahin ist es eine lange Durststrecke.

Nun, warum dann nicht gleich RAD? Meiner Erfahrung nach ist RAD ok für keine GUI-Programme. Aber wenn die anvisierte Funktionalität der Software zu groß ist, dann erreicht man bei RAD sehr schnell einen Punkt wo es immer und immer schwieriger wird die noch fehlenden Funktionen einzubauen. Wenn man so 80% fertig hat, muss man um jede neue Funktion kämpfen, damit das alles noch zusammen passt. Damit das nicht passiert braucht die Software ein gutes Fundament auf dem man aufbauen kann. Womit wir wieder bei etwas sind, was viel Zeit frist ohne früh sichtbare Erfolge zu liefern.

Naja. Dann ist es halt wohl so.

Hab ich jetzt eigentlich schon wieder über Software-Entwicklung gemeckert?

Ich bin der festen Überzeugung, dass ich weniger programmieren sollte. Im Besonderen will ich keine Lösungen mehr schreiben zu denen andere Lösungen geschrieben haben.

Daher habe ich mich jetzt auch der selbstverwalteten Publikationsliste entledigt.

Zuerst habe ich mich auf Mendeley angemeldet. Die Publikationen waren schnell gefunden oder eingetragen, alles wunderbar soweit. Dann das entsprechende WP-Plugin installiert und siehe da, die Publikationsliste war völlig unbrauchbar, da ich innerhalb angemessener Zeit (wenige Minuten) nicht herausfinden konnte wie ich dem Ding Bibtex-Einträge direkt entlocken kann.

Dann bin ich auf das Plugin zu BibSonomy gekommen. Dort hab ich mich auch angemeldet. Die Suche dort hat deutlich weniger meiner Paper gefunden und ich musste mehr von Hand eintragen, was aber gut und schnell ging. Dann zum WP-Plugin. Tja, schade. Nach der Installation ließ es sich wegen einem kritischen Fehler nicht aktivieren. …

Warum nochmal wollte ich nichts selber schreiben?

Die einfachsten Lösungen sind oft die besten und darum habe ich das Papercite Plugin ausprobiert. Ein Bib-File hochladen und aktualisieren kriege ich ja wohl hin. Die Publikationsliste war schnell erstellt und sieht (fast) so aus wie ich es gerne hätte. Ist nicht gerade bahnbrechend gut, tut aber was es soll. Auch das zitieren meiner Paper in Posts und auf Seiten funktioniert direkt.

Damit habe ich eine 90%-Lösung für mein Problem gefunden, womit ich mich wohl zufrieden geben werden.

Ich hab so einen Hals!

Ich versuch schon das halbe Wochenende über ein Hg-Repository in ein Svn-Repository zu konvertieren. Das ist halt die Richtung die sonst (scheinbar) keine braucht weil Hg (oder Git) ja soo viel toller ist und man immer nur ZU diesen konvertieren will. Es funktioniert *kein einziges* der Tools da draußen in der Richtung. Um mein Hg-Repository ist nun wirklich nicht besondern komplex. Die Tools scheitern an so hochkomplexen Aufgaben, wie dass Dateien nicht gelöscht werden können, weil sie nicht da sind. Das kann es ja wohl echt nicht sein.