Problem
Die Münchner kennen sie vielleicht und fragen sich, was das ist, ob das jemals genutzt wurde und wenn ja: wie? Die Rede ist von der jambel. Einem fast-feedback-device, dessen Geschichte bis in die frühen jambit-Jahre zurück reicht. Die Idee war damals folgende: ein Projektteam hat ein zentrales SVN-Repository, aus dem bei jedem commit (das, was heute ein push ist) ein Hudson-job (oder was auch immer man damals hatte) loslief. Um nun schnell zu sehen, ob der Job erfolgreich war (und das vor allem sichtbar kundzutun) wurde das Ergebnis direkt auf einem "echten Gerät zum Anfassen" angezeigt: der jambel.
Kann man die noch irgendwie benutzen?
Lösung
Der erste Prototyp wurde noch per RS-232 an einen Entwickler-Rechner angeschlossen, danach kam USB und schließlich gab es Ethernet-jambeln. Die ersten paar vergessen wir jetzt einfach mal und nehmen nur die Ethernet-jambeln.
Die kann man in der Tat noch immer per Telnet steuern. Jedes der drei Lichter kann man einzeln an- und ausschalten sowie blinken und "blitzen" lassen. Die jambeln beziehen ihre IP-Adressen per DHCP; manche von ihnen haben noch fix zugeordnete Adressen und sogar DNS-Einträge. Nachdem telnet aber relativ mühsam ist, kann man das natürlich auch per Programm tun. Eine Java-Bibliothek, die einem die Details der Ansteuerung abnimmt, will ich hier vorstellen.
Beispiel
final String hostname = "ampel10.dev.jambit.com";
final int port = JambelFactory.DEFAULT_PORT;
final int connectTimeoutMsec = 2000;
final boolean redLightOnTop = false; // there are two variants:
// red top / red bottom
final Jambel jambel = JambelFactory.build(
hostname, port, redLightOnTop, connectTimeoutMsec);
System.out.println("jambel version: " + jambel.version());
jambel.reset(); // Lights off. Reset blink timing to
// factory settings.
jambel.red().flash();
jambel.setDefaultBlinkTimes(100, 400); // Blinking scheme: msec on - msec off
jambel.yellow().blink();
jambel.green().blinkInverse(); // blink inverse to the yellow light
jambel.red().off();
final Jambel.Status status = jambel.status();
System.out.println("Status: " + status.toString());
Weiterführende Aspekte
- Code dieser Bibliothek auf Github: https://github.com/aytchell/jambel
- Es gibt ähnliche Libs für Go (https://github.com/jambit/go-jambel) und Python (https://github.com/jambit/python-jambel)
---
Autor: Hannes Lerchl / Senior Software Architect / Business Devision Industry & Energy
Toilet Paper #156 als PDF-Download: Ancient jambit technology: die jambel
Lust, das nächste ToiletPaper zu schreiben? Jetzt bei jambit bewerben!