Ist beides Technik, könnte man meinen. Aber es gibt noch mehr: das Betriebssystem.

In einem Podcast (FLOSS Weekly 119: The Mars Rover Drivers) habe ich erfahren dass die Mars-Rover Spirit und Opportunity mit einem kommerziellen Echtzeit-Betriebssystem namens VxWorks betrieben werden.

Immer neugierig habe ich mir den Wikipedia-Eintrag zum Thema durchgelesen und bin darauf gestossen dass das System auch in einigen Canon-Kameras eingesetzt wird. Genauer gesagt in den DIGIC-Prozessoren die für die Bildverarbeitung eingesetzt werden. In meiner EOS 400D steckt ein DIGIC II, und somit das gleiche Betriebssystem das auch auf dem Mars eingesetzt wird… faszinierend!

Ich baue gerade an einer Webseite auf der ich Schriften benutzen möchte die nicht zum Standard gehören. Die gängigen Browser unterstützen das seit einiger Zeit — wenn auch eine bestimmte Browserfamilie natürlich wieder mal ihr Extrawürstchen braucht. Die Eigenschaft im CSS lautet ‚@font-face‘, die Syntax wird etwas tricky wenn man versucht möglichst viele Browser zu bedienen.

Natürlich sollte man den Einsatz eigener Fonts nicht überstrapazieren, aber in diesem speziellen Fall passt es einfach besser zum Thema. Allgemein ist es wohl besser, auf eigene Fonts zu verzichten und mit dem vorlieb zu nehmen was der Browser kennt. Schon allein damit keine zusätzlichen Dateien gezogen werden müssen — so ein Font kann durchaus groß werden. Aber bevor man in Versuchung gerät, Texte mit einem Malprogramm vorzubereiten und als Bild hochzuladen, ist ein Font wohl die bessere und vor allem barrierefreie Alternative.

Wie man mit eigenen Schriftarten arbeitet ist auf dieser Seite sehr gut beschrieben. Von dort hatte ich auch den Link zu Font Squirrel. Hier kann man Schriften hochladen und bekommt im Gegenzug ein Paket mit verschiedenen Schriftformaten (TTF, EOT, WOFF, SVG) und einem passenden CSS-File zurück. Sehr gut gemacht. Und immer für eine schicke ‚Überschrift-Schrift‘ zu haben ist dafont.com. Bei Fliesstexten (Brotschrift) sollte man sehr zurückhaltend sein, und sich an Empfehlungen von Fachleuten halten. Für den Laien ist es erstaunlich auf was wirkliche Schrift-Geeks achten…

Ich musste das einfach ausprobieren:

% python
Python 2.6.5 (r265:79063, Mar 23 2010, 04:44:21)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import braces
File "", line 1
SyntaxError: not a chance
>>>

:-D

Ich hatte mir mal einen Link gesichert den ich mir ansehen wollte sobald ich wieder auf die Idee käme, mit Daten rechnen zu wollen. Wenn man sich da ansieht was man alles bedenken muss verwirft man schnell alle Ideen die in die Richtung gehen. Das sollen besser andere machen… :-)

Heute war es wieder so weit. OK, kein kompletter Kalender. Aber ich war einsam und alleine in einer Korn-Shell auf Solaris unterwegs und wollte wissen welches Datum wir Gestern hatten. Heute ist einfach, aber Gestern? Mit GNU date sagt man einfach was man will:

date --date yesterday

Unter Solaris ist man von den GNU-Segnungen verschont, da erfordert das einen kleinen Kunstgriff (den ich dann auch im Netz finden konnte):

TZ=GMT+24 date

Man verstellt also einfach (nur für das eine Kommando, nicht für das ganze System!) die Zeitzone um 24 Stunden und fragt dann nach dem Datum. Das funktioniert auch mit mehr als 24 Stunden, und mit negativen Werten für Daten in der Zukunft. Gut zu wissen.

In dem Zusammenhang zitiere ich dann auch nochmal einen Absatz den ich mir vor knapp vier Jahren von blog.detux.de kopiert hatte, es geht um die Unixzeit (auch Unix-Epoche genannt). Den Blog dazu gibt es leider nicht mehr, die Notiz hat sich aber schon mehrfach bewährt:

BASH: Unix-Timestamp in Datum konvertieren
Gerade 10 Minuten nach gesucht, deshalb hier nochmal schnell als Merkzettel:
TIMESTAMP=date +%s DATE=date --date="1970-01-01 $TIMESTAMP sec GMT" echo $DATE
Kann man immer mal wieder gebrauchen…

Etwas konkreter sähe das dann so aus (das Datum ist übrigens der 13. Februar 2009, 23:31:30):

date --date="1970-01-01 1234567890 sec GMT"

Man nutzt hier also den Umstand aus dass Unix die Sekunden seit dem 01.01.1970 zählt und fragt nach wie spät es soundsoviel Sekunden nach eben diesem Datum ist. Logisch. Nicht allzu naheliegend, aber wenn man es weiss: logisch. :-)

Da sich Gestern jemand über zu seltene Postings beschwert hat (Herzlichen Glückwunsch nochmal, Andreas ;-) ), und da ich gerade mal wieder an einem kleinen Python-Projekt bastele: ein aktuelles Fundstück. Wenn man sich — wie ich — nichts merken kann, und zudem — wie ich — dauernd zwischen verschiedenen Programmiersprachen hin- und herspringt findet man so eine Sammlung mit Codeschnipseln sehr praktisch, stelle ich gerade fest. Hinweise auf bessere Schnipselsammlungen nehme ich dankend entgegen!

Ich war mit der Funktionalität des NX-Servers prima zufrieden, den ich mir letzte Tage installiert hatte. Einen Account für mich, einen für meine Frau eingerichtet, und die Welt war schön. Dann wollte ich noch einen Test-Account haben, um rumspielen zu können ohne was kaputt zu machen… Tja… ist halt nur die kostenlose Community-Version des kommerziellen Produktes gewesen, da gehen nur zwei Accounts.

Also bin ich — wieder unter Anwendung einer wirklich simplen Anleitung — auf freie Software umgestiegen. FreeNX macht das gleiche wie die kommerzielle Version, zumindest in dem Rahmen in dem ich es benutzen möchte. Nebenbei ist das Paket direkt Bestandteil der Distribution, das macht alles sogar noch einfacher als es ohnehin schon war.

Übrigens, da ich gefragt wurde: ja, man sieht wirklich einen Performance-Unterschied zum einfachen X-Betrieb im Netz. Wenn ich zum Beispiel oowrite starte kann ich per X sehen wie die Icons der Reihe nach erscheinen. Per NX ist die Anwendung — einfach da. Und außerdem hat man den Vorteil dass man, ähnlich wie bei Benutzung von screen an der Kommandozeile, sich ganz einfach von einer Session trennen kann die man später weiter benutzen möchte. Ob und wenn ja wie das mit X geht müsste ich noch herausfinden…

Letzte Tage habe ich mal wieder eine Datei per Mail bekommen die ich nicht ohne weiteres öffnen konnte. Ich brauche extrem selten irgendwelche Office-Anwendungen, daher gibt es sowas nicht auf meinem Notebook. Arch Linux macht ‚rolling updates‘, das heißt dass man mit einer neuen Version eines Programms nicht warten muss bis das nächste Release der Distribution ansteht, sondern die Neuigkeiten direkt rauspustet. Wenn ich hier ein OpenOffice drauf hätte würde ich das wahrscheinlich diverse Male updaten müssen ohne es zwischendurch benutzt zu haben. Und bei meiner bekanntermaßen lahmen Netzanbindung würde das echt Nerven kosten.

Bis jetzt habe ich in so einer Situation immer das Notebook meiner Frau gequält, die hat da ein Kubuntu und somit auch ein Office.

Da ich aber eh außer Gefecht gesetzt war habe ich eine Lösung gebastelt die mich hoffentlich dauerhaft glücklich macht. Eine Art Terminal-Server. Allerdings nicht auf Basis von LTSP oder x2go, sondern mit Nomachine NX. Also kein wirklicher Terminal Server von dem ich auch booten kann (zumindest bis jetzt noch nicht), sondern einfach nur eine zentrale Maschine auf der ich Anwendungen starten kann — wie zum Beispiel OpenOffice.

Den Server habe ich als VServer auf meinem total überdimensionierten Home-Server angelegt. Das Host-System ist ein Debian Stable, die virtuelle Maschine sollte in diesem Fall ein Kubuntu sein, damit die Anwendungen dort halbwegs aktuell sind. Den VServer anzulegen ist nicht ganz einfach, weil Kubuntu nicht mehr auf das gute alte System V Init setzt, sondern stattdessen Upstart benutzt.

Angelegt habe ich die Maschine letztendlich mit dem folgenden Kommando:

vserver terminator build -m debootstrap --context 40012 \
--hostname terminator.asgard --interface eth0:192.168.0.63/24 -- \
-d karmic -m http://odin:9999/ubuntu/

Dabei ist terminator der Name meiner neuen Maschine, asgard die Domäne, und auf dem Server odin läuft ein apt-proxy, damit sich die realten und virtuellen Rechner die mühsam aus dem Netz gelutschten Pakete teilen können. Ach ja, und karmic ist der Name der aktuellen Kubuntu-Distribution (Karmic Koala, Version 9.10).

An den Klippen von Upstart habe ich mir erst die Zähne ausgebissen. Kurz vor der Kapitulation — ich dachte es läge daran dass Kubuntu damit rechnet von CD installiert zu werden, statt mit debootstrap — habe ich dann noch einen Artikel über Upstart Issues gefunden. Genau was ich brauchte, sogar zugeschnitten auf Karmic. Damit ging es dann endlich.

Dann noch nach dem Ubuntu-Wiki den NX-Server installiert, und es kann losgehen. OpenOffice ist schon drauf, und ich glaube dass es sich bei einer lokalen Installation auf meinem Notebook nicht viel schneller anfühlen würde.

Was man jetzt noch — auch im Sinne eines höheren WAF — verbessern könnte wäre eine Art Application Launcher auf dem Server. Ich könnte einen kompletten Desktop auf dem Server starten, das würde aber mein ästhetisches Empfinden stören. Ich habe die Fenster lieber in einer Optik die so wirkt als ob die Anwendungen lokal laufen würden. Jetzt öffnet der NX-Client ein xterm auf dem Server mit dem ich nach Belieben Anwendungen starten kann. Ein kleines Menü würde mir da aber besser gefallen.

Vorschläge?

Ach ja, die Datei die den Anstoß für diese Aktion gegeben hat war übrigens belanglos: eine Präsentation mit dem alten 710-Gag. ;-)

Ich kann mich an Zeiten erinnern, in denen man sich wirklich überlegt hat ob man ein Bild auf dem Bildschirmhintergrund haben möchte, oder ob da vielleicht eine einfarbige Fläche reicht. Damals hat das — zumindest auf meinem damaligen Rechner — einen echten Unterschied gemacht: das Anzeigen kostet Zeit. Erst recht wenn es sich bei dem Bild nicht um ein einfaches Bitmap handelt, sondern zum Beispiel um ein JPG.

Aber die Zeiten ändern sich.

Unter Windows 7 Windows 6.1 dauert die Anmeldung offenbar eine halbe Minute länger wenn man die Ressourcenschonende einfarbige Variante wählt. Microsoft weiss das und bietet einen Patch an, oder wahlweise den guten Rat dass man sich doch auch ein einfarbiges Bitmap oder JPG malen kann, das man dann verwendet…

Was tut Windows in der Zeit? Ist das eine halbe Gedenkminute für die ungenutzten Bilder die ohnehin auf der Platte rumliegen?

Interessanterweise ist ’30 Sekunden‘ in etwa auch die Zeit die mein Notebook mit Arch Linux braucht um zu booten. Und da ist die BIOS-Wartezeit und die Anmeldung schon mit drin: nach einer halben Minute habe ich schon meinen Screen im urxvt vor mir und kann arbeiten… oder so. ;-)

Aber zugegeben: ein Hintergrundbild wird auch geladen. Einmal für den Desktop Manager (Slim) und einmal für den Window Manager (Compiz). Vielleicht würde es ohne Bild auch länger brauchen… :-D

Dass es unter Linux den inotify-Mechanismus gibt mit dem man Aktionen basierend auf Events im Dateisystem auslösen kann wusste ich. Dass es mit dem Paket incron ein echt einfach zu bedienendes Tool gibt mit dem man das benutzen kann war mir neu. Die Bedienung ist genau wie beim traditionellen cron, nur dass Aktionen halt nicht basierend auf Uhrzeit ausgelöst werden sondern basierend auf Dateiänderungen.