Ich habe hier ja schon öfter was über Emulatoren geschrieben. Insbesondere fasziniert mich, was sich mittlerweile mittels JavaScript im Browser nachbauen lässt. Auch wenn das vermutlich nie meine Sprache wird: Hut ab für die Möglichkeiten die man da offenbar hat!

Bislang komplett an mir vorbeigegangen ist das Projekt JSMESS. Das ist ein JavaScript-Port von MESS, man kann damit also ein ganzes Museum von alten Rechnern emulieren. Unter anderem auch einen Schneider CPC 464 — meinen allerersten Computer. :-)

Aber zurück zum Titel: MESS ist eigentlich eine Abwandlung von MAME, dem Multiple Arcade Machine Emulator (der mich seinerzeit zu MAME-Control inspiriert hat). Und mit einer JavaScript-Version von MAME hat das Internet Archive jetzt eine Online-Arcade gebaut: in der Internet Arcade kann man hunderte von alten Automatenspielen im Browser daddeln. Timekiller! :-D

Reversed Hand...

Reversed Hand…

Mit Unicode 6.1.0 hatte ich ja seinerzeit schon Spass. Schon vor längerer Zeit ist Version 7 veröffentlicht worden, und die hat auch wieder ein paar Perlen zu bieten:

Neu — und extrem brauchbar, möchte ich hinzufügen — ist ‚REVERSED HAND WITH MIDDLE FINGER EXTENDED‘ (U+1F595). Schade dass es den noch nicht zu Usenet-Zeiten gab. :-D

Als Trekkie spricht mich natürlich auch ‚RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS‘ (U+1F596) besonders an. Ich kann kaum abwarten den auch als Emoji im Threema zu haben.

Meine Erwartung von damals, nach der Unicode mit dem Pile of Poo vollständig sein dürfte, hat sich somit als falsch erwiesen. Und ich bin somit gespannt was die nächste Version noch bringen kann… Vorschläge?

Test bestanden

Test bestanden

Ich habe schon viel zu lange vor mir hergeschoben mich mal mit IPv6 zu beschäftigen. Raketentechnik, unumgänglich aber kompliziert.

So kompliziert ist es gar nicht. Zumindest nicht der Einstieg, ich weiß noch nicht welche Fallstricke da noch auf mich zu kommen. Und der Komplexität gegenüber stehen einige Vorteile die man sich — zumindest als Heimanwender — mit IPv4 nur träumen lassen konnte.

Ich habe mir letzte Tage einen Zugang bei SixXS geklickt. Das kostet nichts, und das ist einer der gängigen Wege wenn einem der Provider kein V6 zur Verfügung stellt. Richtig einfach ist das — so habe ich gehört — für DSL-Kunden die beispielsweise eine FritzBox ihr Eigen nennen. Da kann man die Tunnel-Infos einfach reinhacken und ist fertig.

Bei mir hat sich das etwas komplizierter gestaltet. Ich bin LTE-Kunde bei der Telekom. So kann ich als Router nur den mitgelieferten SpeedPort benutzen. Dahinter nutze ich pfSense als Firewall. Die kann ich allgemein sehr empfehlen, aber in diesem Fall fehlt noch ein Feature: die Telekom versteckt mich hinter einem NAT, also kann ich nur einen sogenannten AYIYA-Tunnel benutzen. Den unterstützt pfSense ab Werk nicht, aber mit diesem Forumseintrag konnte ich das Teil so weit hacken dass es doch irgendwie geht.

Tanzende Schildkröte

Tanzende Schildkröte

Das Ergebnis ist: die Schildkröte tanzt! Endlich! :-)

Einer der angesprochenen Vorteile ist jetzt zum Beispiel, dass ich zu Hause ein ganzes Netz von öffentlich gültigen IP-Adressen habe. So kann ich im Firewall beispielsweise einen SSH-Zugang auf einen meiner Heimrechner freigeben und mich auf die Weise jederzeit zu Hause anmelden. Mit einem ansonsten geNATteten Internetzugang erfordert das sonst Tricksereien mit AutoSSH und einem Gegenpunkt im Netz. Geht auch, aber so ist es komfortabler. Und Raketentechnik… :-D

Nur ganz kurz: ich habe schon öfter die Herausforderung gehabt, in Shell-Skripten human-readable Dateigrößen in Bytes umzurechnen, damit man den Wert einfach ans Monitoring übergeben kann.
Bislang habe ich das Problem immer mit einer Hand voll Awk beworfen. Heute habe ich ein passendes Tool gefunden, und man kann sogar einstellen ob man Geek-Kilo oder normale Kilo haben will:

% echo 1234K | numfmt --from=si
1234000
% echo 1234K | numfmt --from=iec
1263616

Auf einem etwas angestaubten Debian (Squeeze) habe ich dieses Tool noch nicht, auf aktuelleren Systemen gehört das aber offenbar zu den coreutils. Kennt jemand eine bessere Lösung?

Ein kurzer Nachtrag zu meinem Artikel über den Intel NUC: ich bin nach wie vor sehr zufrieden mit dem Ding als XBMC-Maschine. Und seit ein paar Tagen sogar noch zufriedener…

Bis Anfang der Woche habe ich den NUC nur über eine kleine Funktastatur gesteuert, nicht über meine Logitech Harmony 885 (die ja seit ein paar Wochen sogar unsere Beleuchtung steuert, dazu muss ich noch was ausführliches schreiben). Jetzt habe ich mich doch dazu durchgerungen mich nochmal durch die Konfiguration der Fernbedienung zu quälen.

Ich hatte erwartet dass ich bei Logitech sage dass ich eine Windows Mediacenter Fernbedienung haben will, und dass ich dann auf dem NUC die Tasten entsprechend zuordnen müsste. Nix da: bei Logitech konnte ich meinen NUC samt Typenbezeichnung eintragen. Und das OpenElec ließ sich auf Anhieb — also ohne weitere Konfiguration — infrarot fernbedienen. Mit sinnvoller Tastenbelegung, und das sogar einschließlich der Power-Taste: wenn ich der Fernbedienung sage dass ich XBMC sehen will schaltet sie den NUC ein, wenn ich fertig bin schaltet sie ihn wieder aus. So wie man es sich wünscht.

In Ermangelung (naja, nicht wirklich ;-) ) eines Windows-Systems kann ich das nicht ausprobieren, aber für mich klingt das absolut plausibel: es gibt einen Patch für den Linux-Kernel. In der Funktion ändert der nichts, es wird lediglich eine Datei umbenannt. Weil man die offenbar sonst auf Windows-Systemen nicht einsehen kann… 8-O

Nein, es geht nicht um irgendwelche Sonderzeichen oder Backslashes. Nicht mal um die 8.3-Konvention. Es geht schlicht und ergreifend darum dass MS-DOS (!) bestimmte Dateinamen reserviert hatte, um damit Geräte ansprechen zu können. Ich erinnere mich noch dunkel daran dass man mit copy con: datei.txt sowas ähnliches machen konnte wie mit cat > datei.txt. Dass aber dadurch auch diese Dateinamen verbrennen wenn sie von einer Extension gefolgt werden war mir neu…

Mit AUX wurden vor dreißig Jahren offenbar serielle Geräte angesprochen (mir war nur COM bekannt). Und deshalb kann Windows auch im Jahr 2014 keine Datei mit dem Namen aux.c öffnen… :-D

Seit mehr als zehn Jahren habe ich einen Rechner am Fernseher hängen der mit Linux und der Software VDR mein Videorecorder ist. Als reiner Videorecorder ist VDR kaum zu schlagen, damit bin ich immer noch sehr zufrieden. Schwächen hat er nur wenn es um die Wiedergabe anderer Medien geht: MP3 ist noch OK, aber bei Fremd-Videos hat mich die Bedienung nie überzeugt, und die Anzeige von Fotos ist prinzipbedingt zu anstrengend für meine kleine Atom-CPU.

Seit etwa einem halben Jahr hängt daneben ein Raspberry Pi, der mit XBMC eine wirklich erstklassige Medienzentrale abgibt. Ein paar Monate hatte ich den unter Xbian, zuletzt unter OpenELEC im Einsatz. Wenn ich mir ansehe was für ein Rechnerchen mir da eine sehr moderne Oberfläche und eine komfortable Wiedergabe sogar von Full-HD-Material bietet bin ich immer noch sehr beeindruckt. Das ganze bei einem echt überschaubaren Preis, und einem Stromverbrauch deutlich unter zehn Watt.

Konkurrenzlos… oder?

Letzte Woche hat ein Arbeitskollege vom Intel NUC erzählt. Genauer vom Intel NUC DN2820FYKH (bzw. DN2820FYK wenn man keinen Platz für eine Festplatte braucht). Im Stromverbrauch kaum höher als der Raspberry, dafür aber in der Rechenleistung weit überlegen. Und preiswert: ich habe für den Rechner im Paket mit 2GB RAM etwa 150 Euro bezahlt. Dafür habe ich als Mehrwert zum Raspi ein wohnzimmertaugliches Gehäuse, WLAN, einen eingebauten Empfänger für eine Infrarotfernbedienung (habe ich noch nicht getestet) und wie gesagt: deutlich mehr Leistung.

Wenn man keinen direkten Vergleich hat kann man mit dem Raspberry sehr zufrieden sein. Wenn man aber den NUC daneben stellt fällt auf dass die Bedienung von XBMC hier weitaus flüssiger läuft, es macht rundum einfach mehr Spaß. Wer sich ein nettes Medienzentrum ins Wohnzimmer stellen will sollte einen Blick auf blaupausen.net werfen, ich habe mich von dem Artikel wirklich gut informiert gefühlt.

Ich glaube ich erwähnte es schon: eines meiner Steckenpferde bei der Arbeit ist das Monitoring, also die Überwachung von Rechnern. Bei bestimmten Überwachungen bietet es sich an, den überwachten Rechner seine Messwerte selbst schicken zu lassen. Oft heißt es „es reicht wenn wir den Wert alle fünf Minuten kriegen“, also bietet sich ein Cronjob mit einem geschickt platzierten „*/5“ an.

Nachteil dabei: unter Umständen wird das Monitoring genau alle fünf Minuten zeitgleich mit hunderten Werten von hunderten Rechnern beworfen.

Um das zu entzerren habe ich mir was formschönes ausgedacht:

Diese Zeile bewirkt am Anfang eines Skriptes, dass vor der Ausführung eine variable Zeit gewartet wird. Das charmante daran: die Zeit ist abhängig vom Hostnamen, dem Skriptnamen und den Parametern die dem Skript übergeben werden. Es ist keine wirklich zufällige Zeit, das heißt dass man sich darauf verlassen kann dass das Skript ziemlich genau alle fünf Minuten einen Wert ausgibt.

Oh, falls das cut irritiert: wenn ich die hexadezimale Prüfsumme einfach mit $((0x…)) dezimal mache kommt da unter Umständen ein negativer Wert raus. Meine sleep-Version unterstützt leider keine Zeitreisen… ;-)

Hat jemand einen Vorschlag wie ich das noch eleganter hinkriegen würde?

EDIT: Vielleicht ist diese Variante noch schöner. Man umgeht mit Awk den ‚bashismus‘ mit dem Modulo, dafür spart man sich aber auch den Aufruf von cut.