Übersetzungsskript

Ich habe gestern ein großartiges Übersetzungsskript gebastelt. Auf einen Tastatur-Shortcut gelegt, übersetzt es mir gerade markierte Worte, wenn ich den Shortcut drücke. Hier die Version von Englisch nach Deutsch:

#!/bin/bash
zenity --info --no-markup --text="$(dict -d eng-deu $(xsel))"

Voraussetzungen für das Skript sind (in Ubuntu) die Pakete zentiy, dict und xsel. Man kann sie natürlich durch andere ersetzen. Dazu muss man dann halt den Befehl entsprechend anpassen.

Ich würde mich sehr über Verbesserungsvorschläge oder Ideen für weitere Einsatzgebiete in den Kommentaren freuen.

edit: Ich habe grade noch eine weniger aufdringliche Version gebastelt. Diese basiert statt auf zenity auf libnotify-bin und einem laufenden Notify-System (welches in allen größeren Desktopumgebungen eingebaut ist):

#!/bin/bash
notify-send "$(xsel)" "$(dict -f -d eng-deu $(xsel) | grep '  ')"

Selfsigned Zertifikate in Chromium

Möchte man in Chromium selbst signierte Zertifikate akzeptieren, muss man sich zunächst einmal das Zertifikat besorgen. Dazu geht man auf die entsprechende Webseite, klickt auf das Schloss-Symbol neben dem roten, durchgestrichenen https und da auf Zertifikatinformationen. In dem Fenster kann man das Zertifikat dann im Reiter Details in eine Datei exportieren.

Da Chromium von sich aus keine Möglichkeit mitbringt, das Zertifikat nun auch zu akzeptieren muss man da von Hand ran. Unter Linux geht das absurderweise mit einem Tool von Firefox.

Das heißt certutil und gibt es bei Ubuntu im Paket libnss3-tools. Also erst mit:

aptitude install libnss3-tools

das Paket installieren und dann das Zertifikat, dass man nach DATEINAME exportiert hat mit

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n ZERTIFIKATSNAME -i DATEINAME

zur Datenbank hinzufügen. Jetzt sollte das Zertifikat akzeptiert werden und die lästige Warnung verschwinden.

Gefunden habe ich den Befehl auf http://code.google.com/p/chromium/wiki/LinuxCertManagement

sudo & Pipes

Wenn man einen Befehl mit sudo durch eine Pipe leiten möchte, wie z.B.:

sudo echo "xscreensaver-command -lock" > usr/lib/kde4/libexec/kscreenlocker

besteht das Problem, dass nur der Teil vor dem > mit root-Rechten ausgeführt wird und nicht der ganze Befehl.
Nach kurzem Googlen habe ich auf dieser Seite folgende Lösung gefunden:
Statt sudo BEFEHL  gibt man sudo bash -c 'BEFEHL' ein. Das führt dazu, dass sudo eine Bash mit root-Rechten ausführt, die dann den eigentlichen Befehl ausführt.
Also für mein Beispiel:

sudo bash -c 'echo "xscreensaver-command -lock" > /usr/lib/kde4/libexec/kscreenlocker'

(Dieser Befehl sorgt übrigens dafür, dass man in KDE seinen Bildschirm mit xscreensaver statt mit kscreensaver sperren kann.)

Probleme mit Evolution und Dovecot

Ich habe grade festgestellt, dass Evolution auf meinem Notebook seit dem Update auf Ubuntu 11.04 („The Natty Narwhal„) Probleme mit dem Auffrischen der IMAP-Ordner auf meinem Mail-Server hat. Um das Problem zu lösen brauchte ich erst einmal ein paar Informationen. Während mir die Fehlermeldung von Evolution nur verraten konnte, dass es eben nicht geht, war der Log des Servers schon hilfreicher:

Panic: file mail-index-transaction.c: line 637 (mail_index_transaction_lookup): assertion failed: (seq >= t->first_new_seq && seq <= t->last_new_seq)


Diese Fehlermeldung konnte ich im Web suchen und bin so zu der Mailingliste von Dovecot und darüber zu dem entsprechenden Bugreport gekommen.

Der Bug wurde also in Dovecot offenbar in Version 1.2.14 behoben. Für meinen Server gibt es allerdings leider kein so aktuelles Paket. Und bis ich Zeit habe, ein Distributions-Update zu machen, möchte ich trotzdem Mails mit Evolution abholen können. Also muss ich mir den Fehler etwas genauer angucken und sehen, ob ich einen Workaround finde. Schließlich lief mit Maverick noch alles bestens.

Das Problem ist laut Bugreport ein neues Feature in Evolution, das in Dovecot scheinbar Fehlerhaft implementiert ist: QRESYNC. Dieses Feature soll also dafür sorgen, dass die Ordner schneller zwischen Client und Server synchronisiert werden können. Dann gucken wir doch einfach mal, ob wir eine Option finden, das abzuschalten…

Et voilá: In den „Empfangsoptionen“ der IMAP-Konten-Einstellungen von Evolution findet sich eine Option:

„Schnelles Abgleichen“ verwenden, falls der Server es unterstüzt

Seitdem ich diese Option deaktiviert habe funktioniert wieder alles bestens.

Opensubtitles.org & Subdownloader

Wir alle gucken gerne Serien & Filme auf Englisch. Allerdings ist es manchmal ziemlich schwer, schnellen Redeflüssen mit furchtbaren Akzenten zu folgen, oder unbekannte Wörter nach Gehör nachzuschlagen. Deshalb wurden Untertitel erfunden.
Allerdings kommen viele Serien und Filme ohne Untertitel daher. Woher bekommt man also welche?

Die Lösung lautet: Opensubtitles.org
Auf der Webseite kann man Untertitel in verschiedenen Sprachen suchen & herunterladen, oder auch selbst erstellte Untertitel hochladen.

Jetzt ist es etwas mühselig, für jedes Video den passenden Untertitel zu finden. Schließlich muss nicht nur der richtige Film gefunden werden, sondern der Untertitel muss auch synchron zum Video sein.
Diese Arbeit nimmt einem eine ganze Liste von Programmen ab.

Ich persönlich benutze dafür Subdownloader. Für Windowsuser ist das Programm zwar eigentlich kostenpflichtig, allerdings ist der Quellcode frei verfügbar und ein paar freundliche Leute haben daraus eine freie Version für Windows gebastelt.

Also viel Spaß beim entspannten Gucken.

Handbrake

Ich hab endlich ein Tool für mich entdeckt, mit dem das Rippen von DVDs Spaß macht: Handbrake.

Es ermöglicht einem Dateien zu erstellen, die ordentliche Quallität bei akzeptabler Dateigröße (zwischen 600mb und 2gb pro DVD) haben.
Dabei kann man mehrere Ton- und Untertitelspuren in die Dateien einbinden.

Das Programm ist ziemlich einfach zu bedienen und macht eigentlich genau das was ich brauche. Es ist für OSX, Windows und Linux verfügbar. Und das Beste: Es ist Opensource!

Fotos bearbeiten mit Imagemagick

Wenn man Bilder mit Imagemagick bearbeiten will, wird einem meist das Programm convert empfohlen.
Allerdings hat dieses Programm den Nachteil, dass es den Bildern neue Namen gibt. Will man die Namen der Bilder behalten, so legt man eine Sicherungskopie der Bilder an und benutzt mogrify.

Um alle Bilder im aktuellen Ordner auf eine Bildgröße von 1024×768 zu resizen benutzt man dann beispielsweise folgenden Befehl (der das Bild auch gleich noch automatisch nach den EXIF-Daten dreht):

mogrify -auto-orient -resize 1024×768 *

Damit gab es allerdings noch ein kleines Problem für mich: Ich wollte gerne, dass die Änderungszeit im Dateisystem (atime aka „Letzte Änderung“) der Erstellungszeit der Bilder entspricht.
Für genau dieses Problem bietet das kleine Programm exiv2 die richtige Lösung:

exiv2 -T mv *

Dieser Befehl überschreibt die atime aller Dateien im aktuellen Ordner mit ihrem EXIF-Datum.

CDs rippen in Ubuntu

Ich habe neulich versucht, ein Programm zu finden, mit dem ich in Ubuntu* bequem CDs ins AAC/M4A Format rippen kann. Das hat sich als problematischer herausgestellt, als man zunächst vermuten könnte.

Während es relativ einfach ist, MP3s oder OGGs zu erstellen, bieten viele Programme erst gar keinen AAC Support.

Mit Grip hat das immer prima geklappt, aber das wird seit Jahren nicht mehr weiterentwickelt und ist auch nicht mehr in den offiziellen Paketquellen zu finden.

Hier mal ein kleiner Überblick über einige der Programme, die ich ausprobiert habe und was sie falsch machen:

  • abcde: Keine GUI.
  • asunder: Benötigt das propietäre neroAAC und schreibt keine Tags.
  • goobox: Kein AAC.
  • Sound Juicer: Wie alle Gstreamer-Ripper: kein Artist-Tag.
  • Rhythmbox: s. Sound Juicer.
  • xcfa: Leerzeichen werden in Dateinamen durch Unterstriche ersetzt. Kann man nicht abschalten.
  • ripperX: Kein AAC.
  • Audex: Versucht faac scheinbar mit falschem Parameter zu benutzen. Bricht mit nichtssagender Fehlermeldung ab.
  • K3b: Kein AAC.
  • Soundkonverter: Keine Tags.
  • audiocd:// in KDE: Kein AAC.

(Näheres zu den Programmen gibt es im Ubuntuusers Wiki.)

Ich habe mich schließlich für das in meinen Augen kleinste Übel entschieden und benutze jetzt abcde in der Kommandozeile. Und ich muss sagen, er ist wirklich was er verspricht: A Better CD Encoder. Wenn man die Config erstmal hat, klappt alles wie am Schnürchen. Eigentlich ist er sehr ähnlich zu Grip. Nur halt ohne GUI.

Meine ~/.abcde.conf ist:

OUTPUTTYPE="m4a"
OUTPUTDIR="$HOME/Musik/neu/"
OUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM} ${TRACKFILE}'
VAOUTPUTFORMAT='${ALBUMFILE}/${TRACKNUM} ${ARTISTFILE} ${TRACKFILE}'
ATOMICPARSLEY=AtomicParsley
# The default actions that abcde will take.
ACTIONS=cddb,read,encode,move,clean
# Track padding: force abcde to pad tracks using 0, so every song uses a two
# digit entry. If set to "y", even a single song encoding outputs a file like
# 01.my_song.ext
PADTRACKS=y
XPROCS=4 # Run a few encoders simultaneously
EXTRAVERBOSE=y   # Useful for debugging
# Custom filename munging:
# By default, abcde will do the following to CDDB data to get a useful
# filename:
# * Translate colons to a space and a dash for Windows compatibility
# * Eat control characters, single quotes, and question marks
# * Translate spaces and forward slashes to underscores
# To change that, redefine the mungefilename function.
# mungefilename recieves the CDDB data (artist, track, title, whatever)
# as $1 and outputs it on stdout.
mungefilename ()
{
echo "$@" | sed s,:,-,g | tr / _ | tr -d \'\"\?\[:cntrl:\]
}

Jetzt muss ich nur noch die CD ins Laufwerk legen und abcde eingeben und kurze Zeit später habe ich richtig benannte und getagte .m4a Dateien.

Ich hoffe, ich erspare mit diesem Artikel jemandem die selbe Suche.

*Wenn ich Ubuntu schreibe meine ich auch Kubuntu und Xubuntu… halt alle Distributionen, die die selben Paketquellen verwenden.