Joachim Breitner

Blog

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.

Can one recommend Debian stable to Desktop users?

Published 2014-11-01 in sections English, Debian.

My significant other is running Debian stable on her laptop, and it has worked fine for quite a while. But since a week or two, she could not access her University IMAP account via Evolution. Obviously quite a showstopper!

Today I had a closer look, and my suspicion was that the University changed their SSL configuration due to the recent POODLE attack and that Evolution was incompatible with that. After some more searching, I found that Ubuntu had applied a patch, originally from Fedora, two weeks ago. For Debian, there is a bug report but no sign of action.

So I fetched the sources, applied the patch, built the package, installed it and things were working again. Yay for that! But this is obviously not the best way to handle such issues.

I know that Debian is volunteer driven and we often lack the manpower for certain things, so I don’t want to rant about this particular issue. I also continue to be a happy user of Debian unstable on my laptop, and Debian stable on my servers. But I seriously wonder: Can I really recommend Debian stable to users, for their laptops and desktops? If not, what are the alternatives? Ubuntu obviously comes to mind, having some full-time staff for such issues... But that would be giving up on promoting Debian as the universal operating system.

Update (2010-11-3): Laney just uploaded a fixed package. Thanks!

Switching to systemd-networkd

Published 2014-10-14 in sections English, Debian.

Ever since I read about systemd-networkd being in the making I was looking forward to try it out. I kept watching for the package to appear in Debian, or at least ITP bugs. A few days ago, by accident, I noticed that I already have systemd-networkd on my machine: It is simply shipped with the systemd package!

My previous setup was a combination of ifplugd to detect when I plug or unplug the ethernet cable with a plain DHCP entry in /etc/network/interface. A while ago I was using guessnet to do a static setup depending on where I am, but I don’t need this flexibility any more, so the very simple approach with systemd-networkd is just fine with me. So after stopping ifplugd and

$ cat > /etc/systemd/network/eth.network <<__END__
[Match]
Name=eth0
[Network]
DHCP=yes
__END__
$ systemctl enable systemd-networkd
$ systemctl start systemd-networkd

I was ready to go. Indeed, systemd-networkd, probably due to the integrated dhcp client, felt quite a bit faster than the old setup. And what’s more important (and my main motivation for the switch): It did the right thing when I put it to sleep in my office, unplug it there, go home, plug it in and wake it up. ifplugd failed to detect this change and I often had to manually run ifdown eth0 && ifup eth0; this now works.

But then I was bitten by what I guess some people call the viral nature of systemd: systemd-networkd would not update /etc/resolv.conf, but rather relies on systemd-resolved. And that requires me to change /etc/resolv.conf to be a symlink to /run/systemd/resolve/resolv.conf. But of course I also use my wireless adapter, which, at that point, was still managed using ifupdown, which would use dhclient which updates /etc/resolv.conf directly.

So I investigated if I can use systemd-networkd also for my wireless account. I am not using NetworkManager or the like, but rather keep wpa_supplicant running in roaming mode, controlled from ifupdown (not sure how that exactly works and what controls what, but it worked). I found out that this setup works just fine with systemd-networkd: I start wpa_supplicant with this service file (which I found in the wpasupplicant repo, but not yet in the Debian package):

[Unit]
Description=WPA supplicant daemon (interface-specific version)
Requires=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=simple
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I

[Install]
Alias=multi-user.target.wants/wpa_supplicant@%i.service

Then wpa_supplicant will get the interface up and down as it goes, while systemd-networkd, equipped with

[Match]
Name=wlan0
[Network]
DHCP=yes

does the rest.

So suddenly I have a system without /etc/init.d/networking and without ifup. Feels a bit strange, but also makes sense. I still need to migrate how I manage my UMTS modem device to that model.

The only thing that I’m missing so far is a way to trigger actions when the network configuration has changes, like I could with /etc/network/if-up.d/ etc. I want to run things like killall -ALRM tincd and exim -qf. If you know how to do that, please tell me, or answer over at Stack Exchange.

New website layout

Published 2014-10-07 in sections English, Digital World.

After 10 years I finally got around to re-decorating my website. One reason was ICFP, where just too many people told me that I don’t look like on my old website any more (which is very true). Another reason was that I was visting my brother, who is very good at web design (check out his portfolio), who could help me a bit.

I wanted something practical and maybe a bit staid, so I drew inspiration from typical Latex typography, and also from Edward Z. Yang’s blog: A serif font (Utopia) for the main body, justified and hyphenated text. Large section headers in a knobbly bold sans-serif font (Latin Modern Sans, which reasonably resembles Computer Modern). To intensify that impression, I put the main text on a white box that lies – like a paper – on the background. As a special gimmic the per-page navigation (or, in the case of the blog, the list of categories) is marked up like a figure in a paper.

Of course this would be very dire without a suitable background. I really like the procedural art by Jared Tarbell, espcially substrate and interAggregate. Both have been turned into screensavers shipped with xscreensaver, so I hacked the substrate code to generate a seamless tile and took a screenshot of the result. I could not make up my mind yet how dense it has to be to look good, so I for every page I randomly pick one of six variants randomly for now.

I simplified the navigation a bit. The old News section has been removed recently already. The Links section is gone – I guess link lists on homepages are so 90s. The section Contact and About me are merged and awaiting some cleanup. The link to the satire news Heisse News is demoted to a mention on the Contents section.

This hopefully helps to make the site navigatable on mobile devices (the old homepage was unusable). CSS media queries adjust the layout slightly on narrow screens, and separately for print devices.

Being the nostaltic I am, I still keep the old design, as well as the two designs before that, around and commented their history.