Ordnerweise Flac zu Ogg konvertieren

Da ich meine CD-Sammlung inzwischen als flac-Dateien auf der Platte habe, ich aber auf dem Handy (das ich als Musikspieler verwende) nicht soviel Platz habe bietet es sich an die Dateien vorher in ein platzsparenderes Format zu konvertieren, zum Beispiel ogg Vorbis. oggenc legt seine Dateien aber immer in den gleichen Ordner ab, oder konvertiert nur eine Datei, was mühsam ist. Also müsste ich manuell Transkoding anstoßen, einen neuen Ordner erstellen, ogg-Dateien rüberkopieren, und so weiter. Da mir das zu doof war habe ich mir einen Bash-Skript geschrieben, der das für mich macht :-)

Es können auch mehrere Quellordner angegeben werden: flac2ogg.sh -t /mnt/portable /pub/music/The_Juliana_Theory-Deadbeat_Sweetheartbeat /pub/music/Panic!_At_The_Disco-A_Fever_You_Cant_Sweat_Out.

Download: flac2ogg.sh.gz

SVG-Datei aus Gnuplot in Inkscape nachbearbeiten

Im Programm „Inkscape“ ist das Menü „Effects“ geöffnet und der Menüpunkt „Fix Gnuplot SVG File...“ ausgewählt.

Wer schonmal eine SVG-Datei aus Gnuplot in der aktuelle Inkscape-Version 0.46 geöffnet hat wird einige Linien vermisst haben. Die Linien sind nicht weg - Inkscape stellt sie nur nicht dar.

In der aktuellen SVN-Version von Inkscape soll das Problem zwar behoben sein, aber es gibt auch einen Workaround für die 0.46er-Version. Eine Möglichkeit ist von Hand in der SVG-Datei nach stroke:currentColor; suchen und currentColor durch den Wert von color, das direkt davor steht, zu ersetzen. Die andere - vor allem bei mehreren Dateien praktischere - Möglichkeit ist es die svgfix-Extension für Inkscape herunterzuladen, nach ${HOME}/.inkscape/extensions (Linux) oder c:/Program Files/Inkscape/share/extensions (Windows) zu entpacken und nach dem Öffnen der SVG-Datei im Menü „Effects“ „Fix Gnuplot SVG file…“ auszuwählen.

Single Sign-On mit Ubuntu, SSH und PAM

Mit PAM und SSH lässt sich auch ohne zentralen Login-Server ein passables SSO realisieren. Damit entfällt das lästige Passwort-eingeben beim SSH-Login oder mounten via SSH.

  1. SSH-Schlüssel erstellen: Entweder über die Konsole ($ ssh-keygen) oder über das GUI:
    1. Schlüsselmanager öffnen:
    2. "Neuer SSH-Schlüssel" auswählen:
    3. Als Kommentar am besten user@host eingeben. Dann kann man den Schlüssel später besser zuordnen:
    4. Als Passphrase kann man zum Beispiel einen Satz nehmen und ein paar Buchstaben vertauschen, auslassen oder durch Zahlen ersetzen. So kann zum Beispiel aus "Der Himmel ist grau und es regnet." der Passphrase "derH!mm3Li$tgraUndESrgnt." werden. Da ist alles drin, was man sich in einem guten Passwort wünscht: Groß- und Kleinbuchstaben, Zahlen und sogar Sonderzeichen und merken kann man sich das dann auch relativ gut.
  2. Die entsprechende Bibliothek für PAM mit $ sudo aptitude install libpam-ssh installieren
  3. Nun müssen noch die entsprechenden Anwendungen von der neuen Möglichkeit in Kenntnis gesetzt werden. Dazu in den Konfigurationsdateien in /etc/pam.d nach @include common-auth suchen und in die Zeile darüber @include pam-ssh-auth eintragen. Anschließend noch nach @include common-session suchen und darüber @include pam-ssh-session eintragen.
    GDM (Anmelde-Manager)
    /etc/pam.d/gdm
    Login auf der Konsole
    /etc/pam.d/login
    sudo
    /etc/pam.d/sudo: Nur @include pam-ssh-auth. Falls der Key falsch eingegeben wird, fällt sudo auf das normale Password zurück. Um das zu deaktivieren, kann man #@include common-auth mit einer Raute deaktivieren.

Update: Mir ist grade aufgefallen, dass man das unter Ubuntu so gar nicht braucht, weil da der Gnome-Keyring-Manager das alles verwaltet. Macht aber nix: funktioniert ja auch unter andern Distributionen ;-)

Firefox mit Tastatur bedienen

Nachdem ich letzte Woche mal mit der Firefox-Erweiterung vimperator installiert habe und es mir dann doch zu viel Einarbeitung war, hab ich gerade im Linux-Magazin einen Hinweis auf die Extension Lol (ja, toller Name :p) gefunden. Damit werden - wie bei vimperator - die Links mit Ziffern verknüpft und lassen sich so direkt per Tastatur ansteuern.

PHP-Extension für Firebug

Die nützliche Firefox-Extension zum JavaScript debugging Firebug dürfte inzwischen weithin bekannt sein. Firebug selbst ist auch wieder erweiterbar und gestern bin ich auf eine Firebug-Extension für PHP mit dem sinnigen Namen FirePHP gestoßen. Damit lassen sich Logging- oder Debug-Ausgaben direkt auf die Firebug-Konsole ausgeben. Damit die Kommunikation (über eigene HTTP-Header-Zeilen) funktioniert, muss auf dem Server allerdings das Output-Buffering aktivert werden. Eine Anleitung gibt’s auf der FirePHP-Homepage.

Type hinting für PDT

Wen, wie mich, auch schon immer gestört hat, dass man Arrays mit PHPDoc nicht "typisieren" kann, und man somit für die Array-Elemente keine Code-Vervollständigung mehr hat, für den habe ich gerade einen praktischen Workaround gefunden:

<?php
foreach ($foos as $foo) {
    /* @var $foo Foo */
    $foo->bar(); // <-- this will generate code completion
}
?>

Videos mit Flash in Webseiten einbetten

Für ein Projekt musste ich mich vor kurzem mit dem Thema Videos auf Webseiten auseinandersetzen. Am einfachsten und massentauglichsten erschien mir da die Variante mit einem Flash-Player.

Mit dem freien FFmpeg Encoder (LGPL) und den unter der GPL lizensierbaren Flowplayer hat man eigentlich schon alle benötigten Werkzeuge zusammen. Nun braucht man natürlich den Ausgangsfilm und muss ihn ins Flash-Video-Format konvertieren:

ffmpeg -b 1000kb/s -antialias auto -i video.avi -vcodec flv -ab 56 \
  -ar 22050 -s 450x370 -r 15 -y video.flv

Um noch ein passendes Vorschaubild zu erstellen braucht man folgenden Befehl:

ffmpeg -y -i video.avi -vframes 1 -ss 00:00:10 -an -s 450×360 \
  -qmin 10 -f mjpeg video.jpg

Anschließend den Player im HTML wie im Quickstart beschrieben einbinden, und fertig.

In einer Anleitung von Lars Schenk wird das alles etwas ausführlicher für Windows mit dem Riva FLV Encoder beschrieben.

Kaffeemaschinen hacken

Nachdem Computer, Mobiltelefone und Spielekonsolen schon länger das Ziel von Hackern avancierten, folgt nun das erste Küchengerät: die Kaffeemaschine.

Über den Internetzugang, der eigentlich zu Wartungszwecken gedacht ist, soll es laut heise online, unter anderem möglich sein das Pulver-/Wasserverhältnis zu manipulieren. Was kommt als nächstes? Die Abschaltung der Gefriertruhe über das Internet oder die Online-Brandstiftung mit dem Backofen?

Screenshots mit Firefox

Wenn man einen Screenshot einer Webseite erstellen will, kann das ohne passende Hilfsprogramme recht unangenehm werden. Aber zum Glück gibt es ja Hilfsprogramme!

Das Firefox-Plugin FireShot macht nicht nur Screenshots, sondern bringt auch gleich noch einige Bearbeitungsfunktionen mit. Damit kann man einfach Bemerkungen und andere Hinweise im Bild unterbringen. Einziger Wehmutstropfen: Das Ding läuft nur unter Windows...

Die deutlich weniger umfangreiche Alternative, aber dafür recht platformunabhängig, stellt die Erweiterung Screengrab! dar. Screenshots lassen sich wahlweise von der ganzen Seite, vom sichtbaren Bereich oder von einem auswählbaren Bereich machen. Da die Erweiterung mit der Firefox-Canvas-Methode arbeitet, muss aber für die entsprechende Seite Javascript erlaubt sein. Mit installierter Java-VM sollen sich auch Screenshots von Flash-Animationen machen lassen, aber das habe ich noch nicht getestet. Das Plugin steht übrigens unter der GPL.

Zahlenbasis konvertieren

Irgendwie sind mir bei den Farbangaben die HEX-Werte lieber als die Notation mit rgb(0,0,0) und daher ist immer wieder eine Umrechnung nötig. Unter Windows kann man das mit dem Taschenrechner erledigen, aber unter Linux haben die minimalistischeren Windowmanager keinen Taschenrechner dabei, über den sich diese Aufgabe mit Klicki-Bunti erledigen ließe. Nach kurzer Suche habe ich dann eine Zusammenfassung nützlicher Shellbefehle gefunden, die unter anderem den gewünschten Befehl enthielt:

$ echo 'obase=16; ibase=10; 244'|bc
F4
Befehl zur Konvertierung von der Basis 16 zur Basis 10