Joachim Breitner

Blog

An academic birthday present

Published 2015-03-28 in sections English, Haskell.

Yesterday, which happened to be my 30th birthday, a small package got delivered to my office: The printed proceedings of last year's “Trends in Functional Programming” conference, where I published a paper on Call Arity (preprint). Although I doubt the usefulness of printed proceedings, it was a nicely timed birthday present.

Looking at the rather short table of contents – only 8 papers, after 27 presented and 22 submitted – I thought that this might mean that, with some luck, I might have chances to get the “Best student paper award”, which I presumed to be announced at the next iteration of the conference.

For no particular reason I was leisurely browsing through the book, and started to read the preface. And what do I read there?

Among the papers selected for these proceedings, two papers stood out. The award for Best Student Paper went to Joachim Breitner for his paper entitled Call Arity, and the award for Best Paper Overall went to Edwin Brady for his paper entitled Resource-dependent Algebraic Effects. Congratulations!

Now, that is a real nice birthday present! Not sure if I even would have found out about it, had I not have thrown a quick glance at page V...

I hope that it is a good omen for my related ICFP'15 submission.

Tiptoi-Artikel in der c't

Published 2015-03-21 in sections Deutsch, Tiptoi.

Gestern erschien Ausgabe 08/15 der c't, und darin ein Artikel von Carsten Podszun und mir: „Stiftzauber – Eigene Bücher und Spiele für den Tiptoi vertonen“. Dies ist meine erste Veröffentlichung in einem derart populärem Magazin (Auflage etwa 270.000)! Ich bin gespannt ob das Tiptoi-Bastel-Projekt: jetzt einen neuen Aktivitätsschub bekommt und freue mich auf viele Fragen und Berichte auf der tiptoi-Mailingliste.

Ich habe ja schon ein paar mal in kleineren Magazinen veröffentlicht (3× im Linux-Magazin, Auflage 26.000; 2× in FreeX), und der Prozess war schon recht unterschiedlich. Beim Linux-Magazin bekommt man Autorenrichtlinien, die z.B. auch festlegen, mit welchen Tags man die Formatierung (Überschriften, Inline-Code) festlegt. Ich dann den Artikel geschrieben, es gab vielleicht noch etwas Feedback, und er wurde im großen und ganzen so gedruckt wie eingereicht – Tippfehler wurden eventuell noch behoben.

Der Wichtel, der den Artikel ziert

Der Wichtel, der den Artikel ziert

Bei der c't wurde ich als Autor deutlich intensiver betreut. Ende Oktober reichten wir einen erstes Konzept und Mitte November einen Rohentwurf (als Textdatei) ein – wir hofften noch in eine Ausgabe vor oder zu Weihnachten zu kommen, da um diese Zeit viele neue Tiptoi-Stifte in die Haushalte kommen und Eltern die Zeit zum Basteln haben. Dann war allerdings erst mal Funkstille bis Anfang Januar. Ich schätze dass unser Artikel in der Warteschlange von höher priorisierten Texten überholt wurde...

Mitte Januar bekamen wir dann von der uns betreuenden Redakteurin den Rohentwurf in überarbeiteter Form und als RTF-Datei zurück. Da waren dann auch die Heise-spezifischen Tags für Zwischenüberschriften o.ä. drin. Die Verzögerung hatte allerdings ihr gutes: Das tttool hat sich bis dahin deutlich weiterentwickelt und insgesamt wurde der Prozess deutlich einfacher. Ich bin also nochmal ran und habe den Text entsprechend aktualisiert und am 1. Februar wieder in die Redaktion geschickt, jetzt als RTF-Datei. Nach drei Wochen gab es dann wieder Feedback und die Aussicht auf ein Erscheinen in c't 8. Ich hab das Feedback eingearbeitet und am nächsten Tag zurück geschickt. Nach einer Woche ohne Aktivität hatte ich noch weitere kleine Verbesserungen hinterhergeschickt.

Weitere zwei Wochen ruhe und plötzlich lag uns vorletzten Mittwoch eine PDF-Datei mit einem fertig gelayouteten Artikel vor. In dem Text fehlten aber manche Änderungen aus meinen letzten beiden Mails. Ich verglich die beiden Versionen Satz für Satz um herauszufinden, was fehlt, und stellte fest dass jeder zweite Satz umformuliert oder zumindest leicht umgestellt wurde. Mein Bruder hat sich schon gewundert und gefragt ob der Text wirklich von mir geschrieben wurde...

Wir hatten nun plötzlich eine harte Deadline von 48h für letzte Änderungen – auf einmal muss also alles schnell gehen. Ich meldete daher gleich die übersehenen Passagen aus meinen letzten Mails.

Am Donnerstag kam dann die vorerst letzte Version, in der ich noch ein paar kleine sachliche Ungenauigkeiten1, Tippfehler und sprachliche Unschönheiten bemängelte. Leider kamen diese Änderungen wegen einem Problem mit meinem Mailserver (Debian-Bug 780256 mit 780578) erst Freitag Nachmittag an und konnten nicht mehr berücksichtigt werden – schade! Ich hab die finale Version jetzt noch gar nicht gesehen; vielleicht wurden sie ja im Lektorat noch behoben.

In dieser letzten Version war dann auch der Aufmacher, also das Bild oben auf der ersten Seite zu sehen. Auf die Gestaltung, die auf der Tiptoi-Mailingliste schon verwundert kommentiert wurde, hatten wir als Autoren keinen Einfluss.

Anders als beim Linux-Magazin entsteht so ein c't-Artikel also in einem recht intensiveren Dialog mit einem Redakteur, der zum Beispiel darauf achtet, dass der Artikel zur Zielgruppe passt, dass alles wichtige erklärt wird und der sprachlich nochmal drübergeht. Das ist natürlich sinnvoll und die Voraussetzung für gute Qualität.

Andererseits hat der Prozess auch große Nachteile. Die Gesamtdauer – mehr als 5 Monate vom ersten Kontakt bis zum Erscheinen mit langen Phasen des Stillstandes – ist etwas demotivierend. Zusätzlich ist die Interaktion nicht besonders wohldefiniert: Nachdem ich einen überarbeiteten Entwurf geschickt habe war mir nicht klar, ob und in welcher Form ich weitere Verbesserungen nachreichen kann. Da die Texte als RTF-Dateien rumgeschickt wurden, habe ich daraus geschlossen, dass sie nicht vernünftig versioniert werden, wie etwa Textdateien in einem Git-Repo, und eventuell manuell zusammengeführt werden müssen. Eine Lektorin in einem Buchverlag erzählte mir, dass es dort ein Token-System gibt, und immer klar ist ob der Redakteur oder der Autor jetzt den Text weiter entwickeln darf. Das hätte Missverständnisse vermieden. Noch schöner fände ich allerdings ein von Redaktion und Autor gemeinsam genutztes Etherpad, Git-Repository o.ä., was mir auch ermöglicht hätte, die Änderungen der Redaktion besser nachzuvollziehen. Bei einem technischen Verlag wie Heise sollte das doch vielen Autoren entgegen kommen.

Ich hoffe das war nicht meine letzte Veröffentlichung in einem Magazin wie der c't und weiß jetzt dass ich da das nächste Mal besser darauf achten muss, dass so Missverständnisse vermieden werden können.

An der Stelle nochmal vielen Dank an Rebecca Schwerdt für die Zeichnung, mit der wir den Artikel illustriert haben.


  1. Da steht z.B. „..., wo [der OID-Code] für das menschliche Auge nicht erkennbar ist“. Der Satz wurde von der Redaktion dazugeschrieben, ist aber falsch: Richtig wäre allenfalls „...kaum erkennbar ist.“

Sim Serim geschenkt bekommen

Published 2015-03-17 in sections Deutsch.

Vor gut einem Jahr habe ich das Brettspiel „Sim Serim“ unter dem Namen „Sum Serum“ als Browserspiel implementiert. Da ich das Spiel nicht selber besitze und mir die Regeln nur kurz in der Karlsruher Spielepyramide erklärt wurden, hatte ich etwas übersehen: Die Zahl der Steine pro Spieler ist eigentlich begrenzt, worauf mich kürzlich Ulrich Roth auf BoardGameGeek aufmerksam gemacht hat. Darauf hin habe ich das noch korrigiert und dabei die Grafik des Spiels (ein klein wenig) aufgehübscht.

Dass muss Heinrich Glumpler, der Autor von Sim Serim, mitbekommen haben, denn er hat meine Implementierung nicht nur ausgiebig gelobt, sondern mir tatsächlich einfach ein Exemplar des „echten“ Sim Serims geschenkt! Das freut mich natürlich sehr! (Und ist deutlich angemeher als die Reaktion von Brian Hersch auf meine Java-ME-Version von Tabu damals vor 9 Jahren...)

DarcsWatch End-Of-Life’d

Published 2015-02-25 in sections English, Haskell.

Almost seven years ago, at a time when the “VCS wars” have not even properly started yet, GitHub was seven days old and most Haskell related software projects were using Darcs as their version control system of choice, when you submitted a patch, you simply ran darcs send and mail with your changes would be sent to the right address, e.g. the maintainer or a mailing list. This was almost as convenient as Pull Requests are on Github now, only that it was tricky to keep track of what was happening with the patch, and it would be easy to forget to follow up on it.

So back then I announced DarcsWatch: A service that you could CC in your patch submitting mail, which then would monitor the repository and tell you about the patches status, i.e. whether it was applied or obsoleted by another patch.

Since then, it quitely did its work without much hickups. But by now, a lot of projects moved away from Darcs, so I don’t really use it myself any more. Also, its Darcs patch parser does not like every submissions by a contemporary darcs, so it is becoming more and more unreliable. I asked around on the xmonad and darcs mailing lists if others were still using it, and noboy spoke up. Therefore, after seven years and 4660 monitored patches, I am officially ceasing to run DarcsWatch.

The code and data is still there, so if you believe this was a mistake, you can still speak up -- but be prepared to be asked to take over maintaining it.

I have a disklike for actually deleting data, so I’ll keep the static parts of DarcsWatch web page in the current state running.

I’d like to thank the guys from spiny.org.uk for hosting DarcsWatch on urching for the last 5 years.

Tiptoi-Bastelei im Modellansatz-Podcast

Published 2015-02-05 in sections Deutsch, Tiptoi.

Letzten Samstag wurde ich von Sebastian Ritterbusch vom Podcast Modellansatz zum den Tiptoi-Basteleien interviewt, und heraus kam eine 80-minütige Sendung über das Reverse-Engineering, den Code und darüber, wie genau man 2^16-1 auswendig wissen sollte.

Das Interview fand direkt im Anschluss an den Tiptoi-Bastel-Workshop im Fablab Karlsruhe statt, bei dem ich knapp zehn Vätern gezeigt habe, wie das mit dem Erstellen von eigenen Tiptoi-Sachen so funktioniert. Der Workshop war am Ende tatsächlich ausgebucht; vielleicht gibt es da mal eine Wiederholung.

Andere waren in letzter Zeit auch nich untätig: Pronwan hat ein Video von seiner sehr coolen Monkey-Island-3-Adaption für den Tiptoi-Stift erstellt!

Tiptoi-Basteleien live im Radio

Published 2015-01-30 in sections Deutsch, Tiptoi.

Heute um Punkt 12:10 hatte ich meinen ersten Live-Auftritt im Radio: Der Berliner Sender FluxFM, der diese Woche ein Special zum Thema Spielwaren macht, hat mich per Telefon zu den Basteleien rund um den Ravensburger Tiptoi-Stift interviewt. Viel kann man in ein paar Minuten natürlich nicht erzählen, aber auf der (inzwischen vervollständigten) deutschen Webseite zum Projekt, deren URL ich buchstabieren sollte, findet der geneigte Höhrer ja alle Infos. Wer nochmal hören auf wieviele „ähs“ und „genau“ ich in 5 Minuten komme kann sich nochmal den Mitschnitt anhören.

Während dem Gespräch war ich gerade vor den Toren der Spielwarenmesse in Nürnberg, zu der ich von Ravensburger eingeladen wurde, die inzwischen auf das Projekt aufmerksam geworden sind und mich kennen lernen wollten. So hatte ich die Gelegenheiten, ein paar Neuheiten für 2015 in Augenschein zu nehmen, etwa die nächste Version des Stiftes, die auch spezielle Hörbücher abspielen können wird, und neue Tiptoi-Bücher, unter anderem eines mit der kompletten Starwars-Geschichte aus Episode I-VI. Ich vermute dass letzteres eher die Eltern als die Kinder ansprechen wird.

Bezüglich des tttool und der Aktivitäten auf der Mailingliste hält es Ravensburger so, dass sie das weiter offiziell ignorieren. Das heißt für uns Bastler: Keine Unterstützung, aber auch keinen Ärger. Ich solle halt stets anmerken dass das alles inoffiziell ist, von Ravensburger nicht unterstützt wird und dass kommerzielle Verwendung sicherlich rechtlichen Ärger mit sich ziehen wird. Das kann ich so mittragen. Das heißt ja nicht dass Leute von Ravensburger nicht beobachten was wir so treiben und vielleicht die eine oder andere Idee aufgreifen werden...

Ansonsten war die Spielemesse eine interessante Erfahrung: Spielwaren soweit das Auge reicht, viele Hallen voll mit Plüschtieren, mit Holzspielzeug, mit Brettspielen, mit Elektro-Gadgets und sogar Feuerwerkskörper und Kostümbedarf. Für Kinder (die es dort nicht gibt) wäre es eine Folter, denn mitnehmen darf man nichts.

Ich hab mich vor allem an den Ständen der Brettspielverlage rumgetrieben und Spiele erklären lassen wie „Om nom nom“ von Brain Games und „Kolejka“, ein sehr schön gestaltetes Spiel über das Schlangestehen im Ostblock der 80er von HUCH! & friends. Besonders nett war es am Stand von Gerhards Spiel und Design, wo ich gegen den Mitarbeiter eine Runde „Mixtour“ verlieren und eine Runde „Fendo“ gewinnen durfte. Deren Holzspiele sind ein Hand- und Augenschmauß. Schade dass ich in der Regel keine Gelegenheit habe, solche abstrakte Spiele für zwei zu spielen. (Außer auf yucata.de, aber dafür brauche ich kein Spielbrett.)

Jenseits der Brettspiele fand ich noch erwähnenswert, da innovativ, aus Kartoffelstärke gefertigte Blöcke, die man mit Bildhauerwerkzeugen bearbeitet und die innen durch Farben umrissene Skulptur herausarbeit – Bildhauen nach Zahlen!

Ein Tiptoi-Taschenrechner

Published 2015-01-23 in sections Deutsch, Tiptoi.

Die Tiptoi-Bastelei hat wieder neuen Schwung bekommen. Auf der neuen Tiptoi-Mailingliste sind bereits 27 Leute unterwegs, und wir haben neue Features des Tiptoi-Dateiformats GME entschlüsselt. Auch wird unser kleines All-Round-Tiptoi-Tool tttool mächtiger: Man kann jetzt den Skripten symbolische Namen geben, statt die Codes direkt zu verwenden, und auf Wunsch erstellt tttool Audio-Samples direkt mittels eines Text-To-Speech-Programms (siehe z.B. text2speech.yaml). Außerdem hat es jetzt eine anfängerfreundlich(ere) Deutsche Webseite.

Insbesondere wurde kürzlich ein Sprungbefehl entschlüsselt, mit dem man jetzt schon richtig komplizierte Abläufe ausführen kann. Als kleine Demonstration habe ich ein Photo eines Taschenrechners genommen, über alle Tasten (bis auf den Dezimalpunkt) Codes gelegt und in unserem selbsterfunden YAML-Dateiformat den Rechner zum Leben erweckt.

Ein Taschenrechner, der jetzt sprechen kann

Ein Taschenrechner, der jetzt sprechen kann

Die meiste Logik war dabei für das Vorlesen deutscher Zahlen bis im Zehntausender-Bereich (der Stift rechnet mit 16bit, mehr braucht man also nicht) nötig. Der Code mag vielleicht auch für andere nützlich sein.

Mit dem Ausdrucken hatte ich ein wenig Schwierigkeiten. Mit dem Farblaserdrucker, auf den ich Zugriff habe, konnte ich gar nichts erreichen, und auch der Schwarz-Weiß-Laserdrucker liefert erst dann etwas brauchbares, als ich die Flächen der Tasten (etwas krude) komplett weiß gefärbt habe.

Alle nötigen Dateien – YAML-Datei, die Audio-Dateien, die fertige GME sowei die Bilder in drei Varianten als GIMP-Datei – habe ich in ein Git-Repository gepackt, falls jemand damit spielen möchte.

PS: Die Deutsche Webseite ist noch etwas unvollständig. Ich freue mich über jede Hilfe bei der Pflege der Seite.

...und wo sind die Ings?

Published 2015-01-04 in sections Deutsch.

Vor ein paar Tagen schrieb ich an dieser Stelle, dass die meisten Ortsnamen auf -ingen im Süden liegen, und belegte das mit einer Google-Maps-Karte mit eigezeichnetem mittlerem Breitengrad. Darauf hin wurde ich gebeten, dies doch auch für Orte auf -ing zu machen, und auf der Karte die Orte auch einzuzeichnen.

Dies habe ich jetzt gemacht. Diesmal verwendete ich die Generic Mapping Tools, wie schon bei dem Familienbuchprojekt. Hier die Grafik für die Orte auf -ingen und hier für die auf -ing.

Ich hab nur den Median eingezeichnet, der bei -ing bei 48,499°N liegt. Der Durchschnitt liegt bei 48,950°N.

Fazit: Orte auf -ingen liegen (meist) im Schwabenland, Orte auf -ing (meist) in Bayern, aber auf die Karte sollte man trotzdem schauen bevor man in die falsche Himmelsrichtung fährt.

Wo sind die -ingens

Published 2014-12-29 in sections Deutsch.

Wenn ich einen Ortsnamen höre, der auf -ingen endet, dann verorte ich ihn erstmal im Süden Deutschlands, zumindest ohne weitere Informationen. Kürzlich wurde angezweifelt, ob das sinnvoll sei, schließlich gibt es ja auch z.B. in Niedersachsen etliche Orte auf -ingen. Das konnte ich nicht auf mir sitzen lassen.

Also nahm ich die Daten von geonames.org für Deutschland. Von den 147327 Orten enden 2089 auf -ingen. Nun war es einfach den Durchschnitt und Median des Breitengrades für alle Orte (50,63° und 50,62°) sowie für alle Ingens (49,64° und 48,93°) auszurechnen. Besonders der Median war auf meiner Seite: Die Hälfte aller Orte auf -ingen in Deutschland liegen südlich von Karlsruhe!

Hier das Ganze nochmal als Bild:

Durchschnitt und Median der Orte auf -ingen

Durchschnitt und Median der Orte auf -ingen

Geschenke mit dem Tiptoi-Stift verteilen

Published 2014-12-26 in sections Deutsch, Tiptoi.

Nachdem inzwischen klar ist, dass man mit haushaltsüblichen Mitteln die Punkt-Codes für den Tiptoi-Stift selber herstellen kann, wurde es für mich Zeit, damit etwas jenseits der üblichen Anwendungen zu machen. Und so spannte ich den Tiptoi-Stift in die großfamiliäre Bescherungszeremonie ein.

Die Idee war, dass auf allen Geschenken kleine Aufkleber zu finden sind, die, wenn man mit dem Stift draufgeht, verraten, für wen das Geschenk ist. So kann ein (und wirklich nur ein! – daher weniger Chaos) Kind die Aufkleber suchen, aktivieren und dem Empfänger das Geschenk bringen.

Von der technischen Seite her ist das einfach. Mit meinem Tiptoi-Tool erzeuge ich mit dem Befehl tttool generate-oid 272,3701-3716 einen eigenen Anschaltcode und genügend weitere Codes: Einen pro Familienmitglied („Grandpa“, „Homer“, „Marge“ etc.), und noch ein paar für Kombinationen („Dies ist für Homer und Marge.“). Mit GIMP verteilte ich diese großflächig auf ein Blatt. 1200dpi×A4 sind zwar ganz schön viele Pixel, aber auf meinem drei Jahre alten Laptop trotzdem noch gut zu bearbeiten.

Leider haben die im generate-oid-Befehl verwendeten Zahlen nicht viel mit den vom Stift gelesenen Zahlen zu tun. Daher musste ich mir die richtigen Werte erst noch vom Stift im Debug-Modus auf Chinesisch vorlesen lassen: Der Startcode ist 42, der erste weitere Code ist 8066 und dann gehts so weiter.

Mit diesen Daten habe ich dann ein sehr einfaches Tiptoi-Programm im tttool-eigenen YAML-Format erstellt:

product-id: 42
comment: Weihnachtsgeschenktags
welcome: hallo

scripts:
  8066:
  - P(grandpa)
  8067:
  - P(homer)
  8068:
  - P(marge)
  8069:
  - P(bart)
  8070:
  - P(lisa)
  8071:
  - P(bartundlisa,lisaundbart)
  8072:
  - P(maggie)
  8073:
  - P(moe)

Es werden keine Register verwendet, da es keine Dynamik gibt. Lediglich bei den Geschenken für zwei liest er die Namen in einer zufällig Reihnenfolge vor – nicht dass Bart sonst behauptet, das Geschenk ist ja mehr für ihn als für Lisa.

Natürlich habe ich auch die entsprechenden Texte aufgenommen und als grandpa.ogg, homer.ogg usw. im gleichen Verzeichnis gespeichert. Auch eine hallo.ogg habe ich aufgenommen, damit man auch mitbekommt, wenn der Stift den Anschaltcode erkannt hat.

Mit tttool assemble weihnachten.yaml entsteht nun die weihnachten.gme-Datei, die ich auf den Tiptoi-Stift kopiere.

Nun müssen nur noch die Codes auf die Geschenke. Zuerst hatte ich die Codes auf Etiketten gedruckt (daher auch die 2×6-Anordnung in der PNG-Datei), aber da war noch ein Bug im Punktmuster, den ich erst merkte, als ich kurz vor knapp das ganze mit einem Stift testen konnte. Als der Bug dann behoben war, hatte ich nur noch normales Druckerpapier zur Verfügung, aber mit so Klebe-Quadraten für Photoalben war es genauso gut möglich, die Geschenke zu markieren. Zumindest als mir aufgefallen ist, dass ich die Schnipsel auch wirklich richtig rum draufkleben sollte...

Die Reste der Codes

Die Reste der Codes

Den Anschaltcode darf man natürlich nicht vergessen; der kam auf einen Schoko-Goldtaler. Damit war dann alles bereit und die Kinder konnten zur Bescherung auf die Jagd nach kleinen weißen Quadraten gehen, und hatten einen rießen Spaß, als sie meine Stimme aus dem Stift hörten.

Mit etwas mehr Vorbereitungszeit könnte man die Aufkleber natürlich noch schöner gestalten, in dem man mit den Codes schöne kindgerechte Motive aufs Papier bringt. Dies dann vielleicht fürs nächste Mal.

PS: Am 31. Januar werde ich im Fablab Karlsruhe einen Workshop geben, in dem gezeigt wird, wie man sein eigenes Tiptoi-Produkt erstellt. Es gibt noch keine Webseite dafür, aber im Mikrokontroller-Forum stehen die wichtigsten Infos. Wenn du in der Gegend ist: Ich freue mich über jeden Teilnehmer!

PPS: Es gibt seit heute eine Tiptoi-Bastler-Mailingliste, auf der Ideen wie diese hier besprochen, Probleme mit dem tttool-geklärt und neue Erkentnisse über den Stift und das GME-Format ausgetauscht werden können. Auch hier bist du herzlich willkommen, mitzumachen.