Im Knast und doch frei – iPod Touch unter Linux befüllen

Auch wenn MacOS X bekanntlich auf Unix basiert, ignoriert Apple die Linuxbenutzer leider beständig und veröffentlicht kein Programm á la iTunes, mit dem unsereins seinen iPod Touch oder sein iPhone unter Linux mit Musik befüllen kann. Zwar existieren  Lösungen wie „iFuse„, die das Gerät als USB-Laufwerk einbinden, aber das allein reicht nicht, da die iTunes-Datenbank des Gerätes von einem einfachen Kopiervorgang nichts mitbekommt und die neuen Musikdateien nicht anzeigt.

Ich suchte daraufhin nach einer Lösung, die insbesondere ohne das berühmte „Jailbreaking“ auskam und so den Nutzungsregelungen und Garantiebedingungen von Apple nicht widersprach. Gefunden habe ich zunächst einen Artikel auf „FERNmanns Blog„, der über das o.g. iFuse hinaus auf eine spezielle Version von libgpod verweist, die man nach der verlinkten Anleitung selbst kompilieren muss. Das klappte bei mir (Ubuntu 9.10 Karmic Koala) auch, allerdings musste ich zwei Anpassungen vorher (!) machen, die im Blogeintrag nicht bzw. erst im Kommentar erwähnt sind:

  • zusätzliches Installieren der Pakete libsqlite0-dev, libsqlite3-dev, gtk-doc-tools, intltool, libltdl-dev, libtool, libgcrypt11-dev, libgnutls-dev, libgpg-error-dev, libtasn1-3-dev
  • manuelles Kompilieren und Nachinstallieren der Software libimobiledevice von dieser Quelle

Bevor der geneigte Leser sich aber gleich ans Kompilieren macht: Inzwischen gibt es noch eine viel viel einfachere Lösung, ebenfalls dokumiert auf „FERNmanns Blog„. Die erste Lösung habe ich für den Fall noch erwähnt, dass der einfache Weg aus irgendeinem Grund scheitert. Zu letzterem Weg ist noch zu sagen, dass ich bei meinem Ubuntu alle Vorkommen von „libiphone“ in der Paketliste durch „libimobiledevice“ ersetzen und das Paket „python-iphone“ rausstreichen musste. Danach kann man mittels Rhythmbox einwandfrei auf die Musiksammlung des iPods zugreifen. Viel Spaß!

Keiner versteht mich…

Seit einem Upgrade des Hostsystems auf Ubuntu 8.10 waren die Keyboardschemata in allen meinen VM-Guests verhunzt. Das hat zwar bisweilen amüsante Effekte („Pfeil-nach-unten“ war z.B. auf einmal das Signal für „mach einfach alles zu, frag erst gar nicht“), nach kurzer Zeit wird es aber sehr nervig. Nach einigem Herumprobieren mit Tastaturtreibern und Co. stöberte ich dann doch mal in der VMWare Knowledge Base und fand diesen Hinweis. In aller Kürze: Durch die Umstellung auf die neuen „evdev„-Treiber sendet das Hostsystem nun andere Tastencodes an VMWare und das knallt dementsprechend. In dem KB-Artikel werden einige Hinweise zur Behebung gegeben, bei mir genügten folgende zwei Zeilen in der Datei „/etc/vmware/config“:

xkeymap.nokeycodeMap = true
xkeymap.keysym.ISO_Level3_Shift = 0x138

Die erste Zeile behob bereits fast alle Probleme, die zweite war für die besonders bockige „AltGr“-Taste (was im übrigen für „Alt Graph“ steht, wie ich nun auch weiß) nötig. Der Wert „ISO_Level3_Shift“ kann dabei auf jedem System anders aussehen, Näheres dazu im KB-Artikel.

Wem auch der o.g. Artikel nicht weiterhilft, der findet im folgenden Blogeintrag weitere Lösungsvorschläge:

http://tinyurl.com/5kd7uz

Mein neuer Liebling

Ich habe ein neues Lieblingsprogramm: Songbird! Das Programm als iTunes-Ersatz zu bezeichnen, ist fast schon eine Beleidigung. Es bietet alles, was ich von einem guten Musiktool erwarte – Songtextanzeige, Erweiterbarkeit über Module (Mozilla-Style) mit Autoupdate, mehrere Wiedergabelisten, Anbindung an ShoutCast und seit der kürzlich erschienenen Version 1.1 auch Verzeichnisüberwachung und die Anbindung an einen MusicStore (7digital). Dabei ist Songbird open-source und auf Windows, Linux und Mac lauffähig. Gegenüber iTunes empfinde ich es als übersichtlicher, insbesondere da man sich die benötigten Module selbst aussuchen kann. Unter diesen finden sich nette Dinge wie mashTape, welches zum gerade gespielten Interpreten Infos aus Wikipedia, last.fm etc. zusammenstellt und als Infobox anzeigt.

UNetbootin: Vereinfachte Linux-Installation auf Netbooks

Linux-Installation ohne Live-CD? Das Tool UNetbootin erstellt Live-USB-Sticks mit Linux.

Ein Betriebssystem auf einem Netbook zu installieren, kann gewisse Mühen bereiten: Da an den Kleinst-Laptops kein DVD-Laufwerk verbaut ist, muss – wenn die Installation über eine (Live-)CD/DVD durchgeführt wird – ein externes Laufwerk angeschlossen werden.
Ein USB-Stick als Installationsmedium kann einem die Arbeit erleichtern. (Zukünftige) Linux-Nutzer haben es da besonders leicht: Bevor man sich daran macht, den Stick zu formatieren, partitionieren etc., genügt ein Blick auf das Tool UNetbootin („Universal Netboot Installer“). Das Programm, das unter der GNU-GPL-Lizenz läuft, installiert eine Linux-Distribution der Wahl auf einen USB-Stick.
Nach dem Download und dem Start fragt UNetbootin zunächst, welche Distribution installiert werden soll. Dort bietet sich die Möglichkeit, aus der Liste eine der bekannteren Distributionen (wie z.B. (K,X)Ubuntu, Debian, openSUSE, Fedora u.ä.) auszuwählen. Ist die gewünschte Linux-Variante nicht dabei, kann man auf andere Distributionen als ISO-Datei zurückgreifen.
Über den so erstellten Live-Stick lässt sich das Betriebssystem der Wahl auf einem Notebook starten, nach Belieben mit der dort verbauten Hardware testen und (bei Gefallen) installieren. Dadurch lassen sich mit Sicherheit einige CD-/DVD-Rohlinge sparen.
Das Tool ist unter Windows und Linux lauffähig. Download und weitere Informationen unter http://unetbootin.sourceforge.net/

Auch Gnome gehen mal fremd

Obwohl ich unter Linux generell den Gnome-Desktop gegenüber KDE vorziehe, gibt es doch 3 KDE-Programme, die aus meiner Sicht kein gleichwertiges Pendant unter Gnome haben und die ich daher quasi „unter falscher Flagge“ verwende: Das Brennprogramm K3B, den LaTeX-Editor Kile und ganz besonders das KDE-Terminal „Konsole“. Letzteres lässt sich imho nicht nur wesentlich besser, schneller und gezielter konfigurieren als das Gnome-Terminal, es bietet auch die für Administrationsarbeiten unglaublich nützliche Funktion „send input to all sessions“. Damit ist es beispielsweise möglich, mehrere SSH-Sessions zu verschiedenen Servern zu starten und langweilige Standardaufgaben auf allen Servern mit nur einer Eingabe gleichzeitig zu erledigen – beispielsweise regelmäßige Paketupdates oder das Abnicken von Tripwiremeldungen, zu dem man vom grausamen Sysadmin gezwungen wird. Allerdings sollte man natürlich höllisch aufpassen, die Funktion nachher auch wieder zu deaktivieren. Insbesondere bevor man lustige Dinge wie „rm -rf *“ schreibt…

Unter KDE4 heißt die Funktion übrigens „Eingabe kopieren nach…“ (bzw. „copy input to…“). Sie ist zwar etwas aufwendiger zu bedienen als die alte Funktion, bietet dafür aber die Möglichkeit, die Fenster gezielt auszuwählen, an die die Eingabe übertragen werden soll.

Das böse „F“-Wort

Als Mitarbeiter des Rechenzentrums etwas über Filesharing zu schreiben ist wohl so als ob der Papst ein Lehrvideo zur Benutzung von Kondomen auf YouTube einstellt, aber ich bin ja schon lange für ein drittes vatikanisches Konzil. 🙂 P2P-Filesharing verströmt bekanntlich seit Langem den Duft des Illegalen, seine legalen Anwendungsbereiche dürfen dabei aber nicht übersehen werden und sind inzwischen sogar Gegenstand wissenschaftlicher Untersuchungen.

Hier soll es nun um ein Filesharing-Tool gehen, dessen Dienste ich speziell in LAN-Umgebungen nicht mehr missen möchte. Der konkrete Anlass war die Versammlung eines halben Dutzends bier- und chipsbewaffneter Endzwanziger nebst mehr oder minder moderner Unterhaltungselektronik in meinem Keller, kurz und neudeutsch: Eine LAN-Party. Aufgrund des höchst unterschiedlichen Alters des mitgeführten Equipments – die Spanne reichte von cebitfrisch bis prähistorisch – erwies es sich als erstaunlich schwierig, die neuesten Warcraftkarten oder die letzten Partybilder untereinander auszutauschen. Windows-Dateifreigaben mussten erstmal eingerichtet werden, waren dann über verschiedene Versionen (98, 2000, XP, Vista) aber auch nicht erreichbar, Linux wollte auch nicht so recht mitspielen und wenn dann noch diverse Personal Firewalls etwas zu sagen haben, kann man die Sache komplett vergessen. Also wurden schließlich USB-Sticks oder externe Festplatten herumgereicht, alles sehr nervig und unflexibel.

Ich machte mich bei nächster Gelegenheit auf die Suche nach einem Tool, welches dieses Dilemna eleganter lösen sollte. Und ich fand Lanshark, ein Programm des Schweizers Jonas Wagner. Die Programmversion 0.0.2 stimmte mich zwar etwas bedenklich, aber die verwendete Programmiersprache Python gab Anlass zur Hoffnung, dass ich das Programm selbst für meine Zwecke anpassen konnte. Das war im Endeffekt aber gar nicht nötig, da Lanshark bereits in der vorliegenden Version genau das Werkzeug war, nach dem ich gesucht hatte. Das Programm ist unter der GPL freigegeben, die Installation ist kinderleicht, Lanshark sucht im lokalen Netz selbständig nach Austauschpartnern, die Oberfläche ist übersichtlich und es gibt ein paar weitere nette Features (UTF8-Support oder eine Resumefunktion zum Beispiel). Daher beschränke ich meine Beteiligung am Projekt momentan auf die Pflege des Pakets für Debian/Ubuntu. Lanshark ist darüber hinaus für Windows, Gentoo und als tar-Ball für andere Linuxderivate verfügbar.

Abgesehen davon, dass es für LAN-Partys sehr nützlich ist, verwende ich Lanshark auch manchmal bei der Arbeit, z.B. um Dateien schnell und unkompliziert auf mehrere virtuelle Maschinen zu verteilen (wenn AFS nicht zur Verfügung steht). Also: Testen und immer schön artig (und legal) bleiben!

Thunderbird-Addons für “Profis”: Nostalgy

Teil 2 der Reihe Thunderbird Addons für Vielbenutzer

Mail, die man nicht archivieren möchte kann man einfach aus der Mailbox mit der Taste „D“ löschen und landet danach am Anfang der nächsten Email. Auf diese Art lässt sich eine volle Mailbox schnell duchlaufen und reduzieren. Leider geht das mit Mail, die man aufheben will nicht so leicht. Um Email zur Archivierung in Unterordner zu verschieben, muss man meist zur Maus greifen, was häufg lästig ist.

Mit dem Addon Nostalgy kann man auch diese Aufgabe bequem auf das Keyboard verlegen. Das lohnt sich insbesondere, wenn man viele Email bekommt, die man lediglich lesen und anschließend archivieren muss. (Die Möglichkeit, diese dann gleich per Filter in die passenden Ordner sortieren zu lassen, habe ich persönlich als nicht sinnvoll empfunden. Was bereits im Archivordner liegt liest man meistens gar nicht mehr…). „Thunderbird-Addons für “Profis”: Nostalgy“ weiterlesen

Logfiles: zeitliche Verteilung von Fehlern schnell sichtbar machen.

Ein schnelle Kommando-Sequenz, die bei der Analyse von Logfiles nützlich sein kann:

Taucht eine Fehlermeldung (oder eine ungewöhnliche Meldung) im Logfile auf, dann ist die Frage wie die zeitliche Verteilung dieser Fehler aussieht:

grep $SUCHBEGRIFF /var/log/$LOGFILE | cut -c 1-9 | uniq -c

ergibt eine Ausgabe in der in der ersten Spalte die Anzahl der Vorkommnisse und in dahinter Datum und Uhrzeit stehen. Damit kann man schnell überblicken, ob der Fehler sporadisch auftritt oder zu einer Uhrzeit gehäuft. Je nach Wahl der Cut-Grenzen, kann man in Stunden- oder auch 10-Minuten Intervallen schauen.

Perl und Unicode

Obwohl ich eigentlich ganz gut verstehe, wie Unicode in seinen verschiedenen Ausprägungen funktioniert, war mir (und ist zum Teil noch) ein Rätsel, wie Perl damit umgeht. In der Vergangenheit hatte ich vornehmlich das Problem, dass Skripte obskure Unicode-Fehlermeldungen an Stellen produzierten, an denen ich garantiert nicht mit Unicode arbeiten wollte. Ursache ist die Verwendung eines Unicode-Locales unter Linux, z.B. das bei uns standardmäßig eingesetzte „de_DE.UTF-8“. Dafür benutze ich seit einiger Zeit diesen Quickfix:

if (defined $ENV{"LANG"}) {
exec 'env', 'LANG=C', $0, @ARGV unless $ENV{"LANG"} eq "C";
}

Damit wird das Skript garantiert im Locale „C“ ausgeführt.

Jetzt hatte ich zum ersten Mal eine Situation, in der ich wirklich Unicode benutzen wollte. Es ging darum, Umlaute im Input in die Umschreibung „ae“ etc. umzuwandeln. Mein erster Versuch dafür war grundsätzlich richtig:

$input =~ s/ä/ae/g;

Das funktionierte aber nicht, d.h. die Umlaute blieben erhalten. Nach etwas Suchen habe ich gefunden, dass man das Pragma utf8 setzen muss, wenn solche Zeichen im Skripttext auftauchen. So funktioniert es also:

use utf8;

$input =~ s/ä/ae/g;

NB: das setzt voraus, dass das Skript mit einem UTF8-fähigen Editor geschrieben und gespeichert ist.

Fehler in Gnome bei Aufruf eines Webservers

Mir ist im Rahmen der Arbeit mit dem Modul “webserver” von Python aufgefallen, dass Gnome bzw. GTK einen kleinen Fehler aufweist. Beim Aufruf einer URL erscheint nämlich ggf. die Nachricht “Error: Failed to send command: 500 command not parseable” auf stderr. Der folgende Aufruf behebt das Problem (für Firefox als Webbrowser, eine Zeile):

gconftool –set /desktop/gnome/url-handlers/http/command
–type=string ‘firefox -remote openurl('/%s,new-tab')’

Ob der Fehler überhaupt existiert, kann mit folgendem Befehl geprüft werden:

gconftool –get /desktop/gnome/url-handlers/http/command

Wenn bei der Ausgabe die “openurl” Option in Anführungsstrichen steht, existiert der Fehler.

Die Kontrolle nochmal mit Python und dem subprocess-Modul:

>>> import subprocess
>>> p1 = subprocess.Popen([“gconftool”,”–get”,
”/desktop/gnome/url-handlers/http/command”],stdout=subprocess.PIPE)
>>> p1.communicate()[0]
‘firefox -remote “openurl('/%s,new-tab')”n’