Ich habe den Inhalt der Springerjagd-Webseite hier her auf meinen Blog verschoben. Ist einfach einfacher nur eine Webseite wirklich warten zu müssen. Die Springerjagd-Webseite bleibt aber natürlich online. Zum einen gibt es dort natürlich die Weiterleitung auf meinen Blog. Zum anderen werde ich dort die online Prototypen für das Spiel selbst veröffentlichen.

Ende dieser Woche war es soweit: die wichtigen Demo-Termine.

Am Donnerstag fand die Output statt. Eine Art Tag der offenen Tür der TU Dresden, an dem Forschungsergebnisse und studentische Arbeiten der Öffentlichkeit präsentiert werden. Zusammen mit Ständen von Industriepartnern bietet diese Mini-Messe einen Überblick über alles was so aus der Uni entsteht. Dieses Mal war die Demo für uns recht wichtig. Die Nachwuchsforschergruppe VICCI, in der ich arbeite, ist an ResUbic angeschlossen, ein Verbund mehrerer Nachwuchsforschergruppen für die gemeinsame Arbeit an Themen rund um das Internet der Dinge und Cyber-physikalische Systeme. Für viele Gruppen ist dies das letzte Jahr ihrer Finanzierung und daher war die diesjährige Präsentation auf der Output für einen großen Teil von ResUbic eine Abschlusspräsentation. Entsprechen waren auch viele wichtige Personen eingeladen: Industriepartner, Presse und Regierungsvertreter. Entsprechen viel Aufwand haben wir alle in unsere Demos gesteckt, damit diese einen sehr guten Eindruck machen können.

Die vielleicht beste Demo von VICCI, wobei ich hier natürlich voreingenommen bin, ist die Follower-Demo die meine beiden Kollegen Alex und André aufgesetzt haben. Sie zeigt die Kombination aus einfacher Robotersteuerung und Bildverarbeitung, genauer: Objektverfolgung. Der Roboter besitzt ein Kamera, in unserem Fall eine Kinect, mit der er ein Objekt anlernt und dieses anschließend im Kamerabild verfolgt. In diesem Bild haben wir eine rote Kaffeetasse benutzt. Der Roboter versucht nun immer einen festen Abstand und eine gerade Orientierung zum verfolgten Objekt zu halten. Damit ist es möglich berührungslos den Roboter fernzusteuern indem man einfach die Tasse entsprechend bewegt.

Das Schöne an dieser Demo ist aber nicht, dass wir einen Roboter mit einer Kaffeetasse steuern können. Das ist zwar ein tolle Gimmick, aber halt nicht richtig wissenschaftlich. Die interessanten Details stecken im Verfolgen und Anlernen des Objekts. Hier nutzt Alex einen Partikelfilter-Algorithmus der mit Wahrscheinlichkeitsverteilungen die Objektpositionen schätzt, aktualisiert und schließlich erkennt. Die Objektverfolgung ist dadurch sehr robust und schnell. Neue Objekte, wie zum Beispiel auch einfach eine Hand, können innerhalb eines Sekundenbruchteils angelernt und zur Steuerung des Roboters genutzt werden.

Am Freitag kann gleich im Anschluss an die Output die lange Nacht der Wissenschaft. Der zweite Demo-Marathon. Prinzipiell zeigten wir dort die gleichen Demos wie schon zur Output. Lediglich einige andere Forschergruppen aus ResUbic haben zur langen Nacht keine Präsentationen mehr gegeben. Nun, wir aber schon. Wir haben den ganzen Abend und die Nacht bis zum Ende um etwa 1 Uhr alles gezeigt, was VICCI ermöglicht.

Als fazit kann ich sagen, die zwei Tage waren sehr anstrengend und ich bin froh, dass sie endlich vorbei sind. Abgesehen davon, waren den unsere Demonstrationen ein voller Erfolg und sind beim Publikum sehr gut angekommen.

Diese Woche war ich auf der EuroVis 2013 in Leipzig. Die größte europäische Konferenz für Visualisierung. In meinem Post über die Jahrestagung der BZS hab ich geschrieben, für wissenschaftliche Diskussionen wären die kleinen Konferenzen die besten. Das ist auch so. Die EuroVis ist toll, aber es ist sehr sehr schwer mit Leuten ins Gespräch zu kommen die man nicht sowieso schon kenn. Das ist aber nicht so schlimm. Die großen Konferenzen haben andere Qualität.

Die großen Konferenzen bieten immer einen guten Überblick über die aktuelle Forschungslandschaft. Sie haben den Anspruch qualitativ hochwerte Paper auszuwählen und damit die besten und wichtigsten Forschungsergebnisse zu präsentieren. Nun, ich will nicht lästern. Es gibt immer gute Paper und es gibt immer Paper bei denen ich nur staunend dastehen und mich fragen kann: WTF?

Und so war es auch dieses Jahr wieder. Es gab einige gute Paper und ich bin mit einigen Ideen zurück gekommen. Mal sehen was draus wird.

Diese Woche war ich auf der V. Jahrestagung der Boltzmann Zuse Society for Computational Molecular Engineering in Kaiserslautern. Für wissenschaftliche Zusammenarbeit sind die kleinen Konferenzen einfach die besten! Auch dieses Jahr wieder haben wir viele interessante Themen und Ideen diskutiert und ich bin mit einem ganzen Berg von Projekten zurück nach Hause gekommen.

Außerdem habe ich diese Woche (Dienstagnacht) noch eine Nachricht erhalten die mich unglaublich ärgert. Mehr will ich aber darüber noch nicht schreiben, bevor nicht klar ist, was die Konsequenzen sind. Vielleicht nächste Woche…

Heute möchte ich wieder ein Tool vorstellen auf das ich heute nicht mehr verzichten möchte: KeePass

Es ist ein sehr schicker Editor für verschlüsselte Passwortdatenbanken. Seit mir ein Freund von dem Tool erzählt hat und seit ich es ausprobiert habe, muss ich mir deutlich weniger Passwörter merken, und, vor allem, seit der Zeit benutze ich generierte, sichere Passwörter. Dank KeePass werden diese Passwörter automatisch „eingegeben“ ohne jemals auf meinem Bildschirm zu erscheinen oder jemals auf meiner Tastatur wirklich gedrückt zu werden.

Ok. das ganze Sicherheits-Gelaber ist irgendwie paranoid. Aber, KeePass ist auch einfach Bequem! Bequem und Sicher, das ist einfach eine super Kombination.

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.