Geändert: 25. 4. 2015, 21:03
Railroad Tycoon, die Zweite
Heute spielen wir etwas weiter südlich als beim letzten Mal: rund um Hameln. Die Bahnstrecke Elze-Löhne soll wieder zweigleisig und elektrifiziert werden. In Bad Oeynhausen regt sich dagegen Widerstand, da man mehr Bahnlärm befürchtet.
Also spielen wir das mal so, dass die Strecke als Ausweichstrecke taugt, aber nicht allzu attraktiv ist. Und trotzdem toll.
- Die Strecke wird wie geplant durchgehend elektrifiziert.
- Zweigleisig wird (wieder) der Abschnitt zwischen Hameln und Rinteln.
- Die S51 wird von Hameln aus verlängert über Hameln-Süntelstraße, Fischbeck und Hessisch Oldendorf nach Rinteln.
- Als kleiner Nebenzweig wird die Lammetalbahn auch noch elektrifiziert. Die 9 km fallen auch nicht mehr ins Gewicht.
- Dann kann die NordWestBahn ihre LINT 41 gegen irgendwas elektrisches tauschen und auf ganzer Länge elektrisch fahren.
So, genug phantasiert. Heute kein OpenTTD, vielleicht mache ich mal was sinnvolles ;)
Generating DANE DNS records for OpenPGP keys with tinydns
As a followup for the SSL records howto here is a howto for generating DANE DNS records for OpenPGP keys.
- First, you need to get the encoded string for the localpart, i. e. everything left of the @ in your email address:
echo -n eike | sha224sum
Don't forget the -n, otherwise the encoded string will include the newline character at the end of the echo output. Now you know the beginning of the DNS record, which looks like this::53a02807b5bea35087407b8b73f68cca29bd916b062a2723e5918534._openpgpkey.sf-mail.de:61:
- Now, you need the actual payload, which can be generated using this command:
gpg --export --export-options export-minimal 69b9fc4e|hexdump -ve '"\\" /1 "%.3o"'
This will be quite long, better pipe this into a file. - Finally add the TTL to the line, e. g. ":86400"
Geändert: 3. 10. 2014, 15:01
Marvelous Marble
I'm one of those persons that always prefers a native application over some web stuff. Usually this comes from some things I want to have, may it be speed, offline capabilities or just hacking possibility. So as a long-time user and contributor of OpenStreetMap as well as an active firefighter I of course know about OpenFireMap. And of course I want a local version of it.
Well, the way to go is obvious for a KDE hacker, no? Right, using Marble, or better: using libmarble as explained in the KDE Techbase. So, what did I end up with? A small pure-Qt application that uses libmarble to display OpenStreetMap tiles, showing some custom placemarks. Those placemarks are collected directly from the OpenStreetMap (online) database using the Overpass API. Then a bit of brute-force XML parsing using QXmlStreamReader and then: pure awesomeness.
This currently is based on Qt4, therefore I use XML and parse it brute-force. Eventually I'll switch to a Qt5-based libmarble, and will use the builtin JSON-support of Qt5. And maybe one day I'll finally find an example on how to draw different graphics for different types of placemarks.
Of course, this is not entirely local. But the information about the extra placemarks can easily be saved locally and restored from there (in fact, that is what the first versions did before I starte using QNetworkAccessManager), and Marble caches the tiles so it will sort-of work even offline. And of course the source code is available for everyone to hack around with it: OSMhyd version 1.
mtan enttarnt
Warum gibt es eigentlich für Online-Überweisungen das mtan-Verfahren? Vorgeblich deshalb, damit die Banken jetzt Leuten, die fälschlicherweise Geld überweisen, die Schuld zuschieben können. Inzwischen ist ja die Unsicherheit des Verfahrens hinreiched bekannt. Ich glaube, der Grund ist ein anderer. Die NSA kennt alle internationalen Überweisungen. Und da sie ja auch unsere Telefonnetze abhören kennen sie damit auch die meisten nationalen.
Gleichschaltung
Damals, vor gefühlt unendlich langer Zeit, als ich noch richtig viel Zeit hatte, da hing ich auch ständig im Usenet rum. In der Newsgroup de.alt.fan.fruehstyxradio hatte jemand eine Signatur, die mit den Worten Gleichschaltung des deutschen Rundfunks - Formatradio
endete.
Vor zwei Wochen war es dann wieder so weit, auf der Rückfahrt vom Dienstabend der Feuerwehr konnte ich auf 4 der 6 in meinem Autoradio eingespeicherten Sender die Übertragung des deutschen Radiopreises hören. Völlig uninteressant, absolut unnötig sowas überhaupt zu senden. Das einzig interessante daran ist, dass ffn, Antenne Niedersachsen, NDR 2 und Radio 21 untereinander jeweils um mehrere Sekunden versetzt gesendet haben. Herzlichen Dank übrigens an die Stimme bzw. Musik des Widerstandes, N-Joy.
Geändert: 25. 4. 2015, 20:31
Railroad Tycoon
Was tut man wenn einem langweilig ist oder man sich zu nichts sinnvollem motivieren kann? Man spielt ein bisschen. Heute spiele ich mal Railroad Tycoon.
Carsten schrieb das der morgentliche Güterzug nach Barsinghausen jetzt über Haste zurück fahren muss, da die S-Bahn-Sprinterzüge die Strecke blockieren. Ich nehme an das liegt daran, dass sie S21 in Barsinghausen auf den Gegenzug wartet und der Güterzug dort nicht mehr vernünftig wenden kann. Dann spielen wir doch mal wie ich das Problem normalerweise lösen würde ;)
- Gleis 3 in Barsinghausen wird wieder geöffnet, zumindest der östliche Teil bis zur Rampe, die man über das Gleis gebaut hat. Gerne auch erst mal ohne Elektrifizierung, der Güterzug fährt sowieso mit einer Diesellok. Damit sollte das unmittelbare Problem schon fast gelöst sein.
- Bei erstbester Gelegenheit wird die Eisenbahnbrücke über die Hannoversche Straße auf 2 Gleise verbreitert. Das Nachbarhaus kann man ja im Zweifelsfall einfach kaufen.
- Die Baumreihe und der Grünstreifen nördlich der Ausfädelung des Industriestammgleises werden durch eine neue Ausfädelung ersetzt. Die Hauptstrecke wird 2-gleisig bis kurz vor Kirchdorf geführt. Damit sollte auch genug Luft in den An- und Abfahrtszeiten für einen zusätzlichen Halt der S21 in Egestorf sein.
- Wenn es jetzt Gedränge auf der Strecke ab Weetzen gibt: kein Problem. Vom Bahnhof Weetzen aus kann die Strecke bis kurz vor die Ronnenberger Straße in Empelde 3-gleisig ausgebaut werden. In Ronnenberg ist da genug Platz, die alten Gleisanlagen des Kalischachtes sind nicht überbaut worden.
- Direkt östlich des Körtingsdorfer Weges in Hannover (zwischen Bornum und Linden/Fischerhof) endet ein Gleis. Weiche dran, fertig. Oder bei der Tycoon-Lösung: den westlichen Bahnsteig Bornum nach außen verlegen und das Gleis gleich bis zur Einfädelung der Empelder Kurve von der Güterumgehungsbahn verlängern. Das mittlere Gleis hat dann keinen Bahnsteig mehr und kann flexibel genutzt werden.
- Die Abfahrt der Güterumgehungsbahn zum Güterbahnhof Linden ab Bornumer Holz wird von 7 auf 2 Gleise immer enger. Da könnte man dann auch gleich Hand anlegen. Kostet alles nur ein paar Kleingärten.
- Zur Cebit und so fährt die S21 dann mit einem Wagen mehr. In Linden/Fischerhof wird der Zug getrennt, der erste Teil fährt wie gewohnt weiter, der letzte Wagen fährt direkt nach Hannover Messe/Laatzen.
- Wenn Barsinghausen West gebaut wird kann man den 2-gleisigen Abschnitt gleich bis kurz vor Winninghausen verlängern, dann hat man da auch genug Freiraum für Zugbegegnungen bei Verspätungen.
- Ach ja, irgendwann sollte man Gleis 3 in Barsinghausen dann auch wieder durchgängig und elektrisch befahrbar machen.
So, genug phantasiert. Ich spiele jetzt noch eine Runde OpenTTD.
Geändert: 15. 7. 2014, 11:25
Generating DANE DNS records for servers using CAcert.org certificates with tinydns
For those that do not have the money or nationality to be included into the bullshit made in Germany network, or that simply say that this is, well, bullshit, there is the way to use DANE records. They have one disadvantage: they need DNSSEC to be really secure, and sadly my hoster Hetzner currently doesn't support that. But I thought that having them in place anyway can't hurt.
There are several ways to match a certificate by those records, e. g. you can assert that a specific certificate is used, or the root of your trust chain is a specific certificate. You can also publish the complete certificate or just a hash. Since I am a lazy folk I decided that I would publish the root of the certificate chain, i. e. the CAcert root certificate. This is slightly less secure as any certificate signed by CAcert.org for my domain name would be accepted, but the way CAcert works I would have to do that signing. On the other side this is one of the advantages, as I can change the keys and certs any time, as long as it is signed by CAcert the DANE records don't need to change. The other advantage is that the same record for every host and service I use, as all of them use CAcert.
Most howtos will end in "IN TLSA" records, which are for BIND nameservers. I run tinydns from the djbdns package, which uses a different format. So, how did I proceed?
- I used the TLSA generator from huque.com, selected the desired options (usage: 2, selector: 1, signing type: 1) and pasted the CAcert.org root certificate. This resulted in
_443._tcp.webmail.sf-mail.de IN TLSA 2 1 1 6f2851409d710504a35115abcb9a6dd3f2577ec937c9ef1938926fa82fd6ff5d
- Now this needs to be converted to a tinydns record. Tinydns does not know about TLSA records, but you can drop any record type you want using the : line, you just need to know the record number. The record number of TLSA is 52 (see RfC 6698, section 7.1).
- Now you need to convert the information from the record to binary. The first 3 bytes are easy, 2 1 1 translates to \002\001\001. For the rest I used a simple bash command, nothing especially fancy since I planned to run this only once anyway:
for i in 6f 28 51 40 9d 71 05 04 a3 51 15 ab cb 9a 6d d3 f2 57 7e c9 37 c9 ef 19 38 92 6f a8 2f d6 ff 5d; do a=0x$i printf "\\%03o" $a done echo
I just broke the hex string by hand into 2 character parts (i. e. representing one byte), and that was converted to octal. - Now the complete tinydns record is ready to be written:
:_443._tcp.webmail.sf-mail.de:52:\002\001\001\157\050\121\100\235\161\005\004\243\121\025\253\313\232\155\323\362\127\176\311\067\311\357\031\070\222\157\250\057\326\377\135:60
I used a TTL of 60 seconds first to be able to change this fastly if neccessary, but I didn't need that as I surprisingly got it right on the first try. - Then go to SSL-Tools.net, enter your server name, and look at the output. For CAcert signed stuff it shows a certificate error as it does not have CAcert.org root certificates in it's database, and it showed a DANE error for me because my DNS does not support DNSSEC.
- I copied that record e.g. for my MX entry (i. e. _25._tcp.mx.sf-mail.de).
- Time for another test, again using SSL-Tools.net
Two more tips, slightly related: if you are on an openSUSE system the CAcert certificates are not installed by default. But you don't have to do any magic by hand:
zypper in ca-certificates-cacert
And for those that want DNSSEC with tinydns: tinydnssec could be the way to go (haven't tested that yet).
Geändert: 27. 5. 2014, 19:18
Ich will das richtig
Ich will GPS im Auto. Und USB. Und überhaupt. Aber bitte richtig.
Also der Plan ist folgender: die meisten Autos haben heutzutage bereits ein Ortungssystem eingebaut, in absehbarer Zeit werden das alle sein. Jetzt hätte ich gerne an jedem Sitzplatz im Auto einen USB-Anschluss. Dieser sollte folgende Eigenschaften haben:
- "verdeckt" eingebaut, d.h. im Normalfall ist da eine nicht-verlierbare Staubschutzkappe drauf
- an einer Stelle montiert wo man zwar gut rankommt, die aber insbesondere von mitfahrenden Kindern auf den hinteren Sitzen nicht permanent bespielt wird, also z.B. zwischen dem Fahrer- und Beifahrersitz
- der Anschluss stellt eine entsprechende Leistung zur Verfügung um auch neuere Geräte zu laden, zumindest so lange der Motor läuft (oder die Zündung an ist, idealerweise kann man das einstellen)
- das Auto meldet sich dem Gerät gegenüber als USB-Hub, an dem ein GPS-artiges Gerät (ich nutze das mal als Sammelbegriff) angeschlossen ist, das nicht konfigurierbar ist und über ein offenes, standarisiertes Protokoll (NMEA 0183 reicht aus) im Abstand von einer Sekunde die aktuelle Position ausgibt
- weitere Daten dürfen über Zusatznachrichten oder zusätzliche virtuelle Geräte auch gerne zur Verfügung gestellt werden, wie Geschwindigkeit und Orientierung des Fahrzeugs
- optional können weitere Geräte vorhanden sein, die am Besten selektiv für die einzelnen Plätze konfiguriert werden können, z. B. ein Audio-Device, mit dem das angeschlossene Gerät auf die Bordlautsprecher übertragen kann, oder ein ggf. vorhandenes Mikrofon für die Freisprecheinrichtung
- Alle Plätze sind gegeneinander abgeschottet, d. h. sie sehen sich nicht gegenseitig auf dem USB-Bus
Irgendwer würde an dieser Stelle bestimmt Bluetooth ins Spiel bringen. Das klappt für die Datenübertragung vielleicht, für das Laden eher nicht. Außerdem gehöre ich zu der Fraktion von Leuten, die kabelgebundene Übertragung bevorzugt wenn möglich, da diese meiner Meinung nach prinzipiell störfester und schwerer abhörbar ist.
Random platform fixes #3
Every once in a while I get bored and pick a random downstream platform and look on their CMake patches. The first time it was obviously Gentoo, because my toy machines run Gentoo. For reasons I don't remember anymore the next was Haiku. A bit strange, I never before (and basically never again) touched that OS. And at the moment it is OpenBSD.
I must say the findings are different. Gentoo still ships a lot of obscure old patches, that do e.g. platform fixes for things Gentoo doesn't really have anything to do with like AIX. I think most of them should be either send upstream or dropped, better sooner than later. Then they have a set of Python related patches because of the heavy Python usage in Gentoo. And of course the usual set of backports that are absolutely fine, especially as CMake 3.0 takes way longer than expected. I fought a long battle against some of the Python stuff because that actually broke stuff just to get it compliant with their thinking of how it should be, and finally gave them a clean version that does what they want (i.e. respect the global Python default version of the system) without breaking applications requesting a specific version. Meanwhile I get added to CMake bugs to give comments if patches are fine, so I file that as success.
Haiku had a bunch of platform fixups for their own stuff, because their API changed or whatever. I cleaned them up, submitted upstream what was sensible, and from what I know they should not need a single downstream patch once CMake 3.0 is released. One of the Haiku developers now comes into the CMake IRC channel every now and then to ask for comments or simply sends patches. Success, definitely.
OpenBSD is another beast. It is a bit like a mix of Gentoo and Haiku, having all sorts of arcane and obsolete stuff in it (i.e. things that are not needed at all because the code would work the same without their patches), as well as their platform stuff. One example is that Linux systems have their man pages in */share/man, while OpenBSD uses */man. Those stuff is currently sitting in the next branch, probably going to master soon if nothing unexpected shows up. Then there is the obsolete stuff, that can only be cleaned up by the OpenBSD folks themselves. I had the impression that the stuff that Gentoo shipped at least did make a change in behavior, some of the OpenBSD stuff can simply be discarded without anyone noticing. And then there is their platform specific stuff. OpenBSD does not want sonames in libraries, which is one feature that makes work on an ELF based platform much more comfortable. This will probably not go upstream anytime soon. But hopefully their huge patchset will shrink soon.
Geändert: 20. 5. 2014, 21:41
Politikerkompetenz, die Siebte
Schon etwas länger her, und zeitlich definitiv vor der letzten Ausgabe: mein wirklich allerherzlichster Dank an Thomas Oppermann. Er hat etwas geschafft, das längst überfällig war. Nachdem Urteile des Bundesverfassungsgerichts bezüglich Grundrechten keine Wirkung zeigten, hat er den Law-and-Order-Schnösel Friedrich in der einzig ihm angemessenen Weise abgeräumt: strafrechtlich. Jetzt müsste er nur noch eingesperrt werden und seine Versorgungsansprüche verlieren.