Rorschachs Tagebuch

Scannen und OCR unter Linux März 4, 2011

Filed under: Uncategorized — Rorschach @ 10:20

Als ich dies das letzte mal vor ein paar Jahren ausprobiert hatte bin ich kläglich gescheitert. gorc war einfach mies und Abby musste her.

Nun die Tage musste ich mal wieder einen etwas längeren Text (ca. 50 Seiten) einscannen und in ein LaTeX-Dokument hieven und habe es mal wieder mit Linux probiert und siehe da, es gibt neue Tools und mit denen funktioniert es wunderbar!

Scannen
Zuerst musste das ganze mal eingescanned werden, was ich mit scanimage gemacht habe. Auflösung von 300dpi sollte ausreichen und Graustufen-Modus:

$ scanimage -d epson2:libusb:001:004 --mode Gray --resolution 300dpi -x 186 -y 250 > 33.pnm

OCR Vorbereitung
Zur Vorbereitung der OCR habe ich Tools von ImageMagick und Scan Tailor benutzt.

Zuerst einmal waren die Seiten verdreht was mit dem Befehl:

$ mogrify -rotate 90 *.pnm

schnell behoben war (Scan Tailor kann das auch aber das hab ich erst danach gemerkt..). Damit ich die Seiten mit Scan Tailor bearbeiten konnte mussten sie ins tif-Format, was dieser Oneliner erledigt (ZSH!!):

$ for i in *.pnm; do convert $i ${i:r}.tif;done

Nun kam Scan Tailor dran. Damit konnte ich problemlos die Seiten richtig ausrichten, unnötiges an den Rändern wegschneiden, Kontrast verbessern, usw.. Wirklich ein Hammertool um Bilder auf OCR vorzubereiten!

OCR
So und hier kam das Tool tesseract zum Einsatz, welches mich gnadenlos überzeugt hat! Die Texterkennung war fantastisch, bei über 99%. Probleme gab es nur an Stellen wo der Text Unterstreichungen hatte, was zum Glück nur sehr selten war ansonsten wäre das Ergebnis sicher schlechter gewesen, denn an diesen Stellen hat sich tesseract die Zähne ausgebissen.

Das Konvertieren hat auch hier wieder ein ZSH-Oneliner erledigt:

$ for i in *.tif;do tesseract $i ${i:r} -l deu;done

Hier sollte man aufpassen, dass man als Input die von Scan Tailor verbesserten *.tif Dateien nimmt und nicht die anfänglich erzeugten 😉

So der Durchlauf von tesseract dauert ein bischen und wenn er fertig ist, dann kann man das alles in ein Dokument zusammenbasteln:

$ cat *.txt > dokument.txt

und ist fast fertig!

LaTeX

Man hat jetzt nämlich immernoch das Seitenlayout des gescannten Dokumentes, also die Zeilen sind so lange wie in dem ursprünglichen Dokument und natürlich sind die Wörter auch so getrennt.. Das ist natürlich uncool wenn man das ganze in ein LaTeX-Dokument verwandeln will. Um das zu beheben habe ich ein kleines Skript geschrieben. Das setzt Absätze im LaTeX-Dokument, wo im Originaldokument welche sind und löst das Problem mit den Zeilenenden.

Danach einbischen Nachbearbeitung mit TeXMaker und das wars.

 

myspace Lieder mit Bash-Skript herunterladen

Filed under: Linux,OpenSource,Softwarevorstellung — Rorschach @ 09:17

Hey,
ich wollte euch auf dieses coole Skipt vom 360 percents Blog aufmerksam machen mit dem man myspace Lieder runterladen und nach mp3 konvertieren kann.

Als Abhängigkeiten benötigt es rtmpdump zum Herunterladen und ffmpeg zum Konvertieren.

 

Von Bazaar zu Git migrieren März 31, 2010

Filed under: Linux,OpenSource — Rorschach @ 17:48
Tags: , , ,

Ich habe gerade ein Projekt von mir von Bazaar zu Git konvertiert. Das funktioniert super einfach und schnell, wenn man das BzrFastImport-Plugin installiert, denn dies besitzt auch eine fastexport Option.

Um das Plugin zu installieren geht man so vor:



$ mkdir -p $HOME/.bazaar/plugins
$ cd $HOME/.bazaar/plugins
$ bzr branch lp:bzr-fastimport fastimport



und das war es auch schon. Jetzt erstellt man irgendwo einen neuen Ordner für Git und erstellt dort ein neues Git-Repository:



$ mkdir $HOME/meinprojekt_git
$ cd $HOME/meinprojekt_git
$ git init



Jetzt kann man mit folgendem Befehl sein Bazaar-Repository nach Git migrieren:



$ bzr fast-export –plain ~/Pfad/zum/Bazaar/Branch | git fast-import



Zu guter letzt checked man das Git-Projekt noch einmal aus:



$ git checkout



und ist fertig.

Und eines muss ich gleich sagen, ich bin froh wieder mit Git zu arbeiten. Die Geschwindigkeit von Git (1.7.0.3) im Vergleich zu Bazaar (2.1.0) ist einfach ein Traum. Es macht einfach mehr Spass mit Git als mit dem trägen Bazaar.

 

Multiboot-CDs mit multicd.sh erstellen März 12, 2010

Filed under: Linux,OpenSource,Softwarevorstellung — Rorschach @ 15:57
Tags: , , ,

Ich will euch hier mal kurz multicd.sh vorstellen. Dies ist ein Bash-Skript, welches unterschiedliche Live-CDs mit Hilfe von Plugins und isolinux zu einer CD zusammen baut. Es erstellt also eine Multiboot-CD .

Rescue-CD Screenshot
Welche Distributionen im Moment von multicd.sh unterstützt werden kann man auf der Webseite nachlesen.

Installation

Die Installation ist ziemlich einfach. Man lädt sich einfach das Skript herunter und legt es an einen Ort seiner Wahl, zum Beispiel /opt/multicd, wo man es dann entpackt:

$ tar zxvf multicd-5.2-nosyslinuxincluded.tar.gz

Zusätzlich muss man entweder genisoimage oder mkisofs installiert haben. isolinux (und Memtest86+) lädt das Skript automatisch aus dem Internet herunter bzw. kann man auf der Webseite auch direkt eine Version mit isolinux zusammen herunterladen.

Archlinux Nutzer können alternativ auch das Paket aus dem AUR installieren: klick .

Benutzung

Man lädt sich jetzt einfach die Isos der Distributionen, die man zusammenbacken möchte, in den Ordner in dem auch das Skript liegt herunter und benennt die Isos so um, wie auf der Webseite genannt. Hat man dies getan muss man einfach nur das Skript mit Root-Rechten ausführen:

$ sudo ./multicd.sh

und der Rest funktioniert von alleine.

Kommandozeilen-Optionen

Auch wenn nicht dokumentiert, besitzt multicd.sh ein paar Kommandozeilen-Optionen die man anhängen kann:

--m Memtest86+ wird nicht automatisch hinzugefügt.
--v Aktiviert den Verbose-Modus.
--modules Startet einen Dialog in der Konsole mit einer Auswahl für einzelne Slax-Module (Macht natürlich nur Sinn, wenn man Slax mit einbindet). Die Anwendung dialog muss dazu installiert sein.
--md5 multicd erstellt eine Liste mit Checksummen der einzelnen Dateien, der Iso die es erstellt.


Reihenfolge der Einträge im Bootmenü ändern

Um die Reihenfolge der Einträge der einzelnen Distributionen im Boot-Menü zu ändern muss man die Plugins im plugins Ordner nennen. In der Reihenfolge, in welcher die Skripte gefunden werden, werden auch die Einträge gemacht. Will man also eine CD mit DSL und Archlinux erstellen und haben, dass die DSL Einträge vor den Archlinux einträgen erscheinen, nennt man die Plugins zum Beispiel so um:

$ cd /opt/multicd/plugins
$ mv dsl.sh 01-dsl.sh
$ mv arch.sh 02-arch.sh


Bootmenü Überschrift ändern

Das Bootmenü der erstellten CD hat automatisch die Überschrift „Welcome to GNU/Linux!„. Will man dies ändern, muss man einfach nur das Skript mit einem Texteditor seiner Wahl öffnen und die Zeile:

menu title Welcome to GNU/Linux!

nach seinem gefallen ändern, zum Beispiel:

menu title Rescue-CD


eigene Plugins entwickeln

Ein eigenes Plugin zu entwickeln ist ziemlich einfach, da sie ebenfalls nur Shell-Skripte sind. Ich hab mir auch direkt eines für Finnix gemacht gehabt, welches wunderbar funktioniert (Download: finnix.sh). Am besten schaut man sich dazu einfach die vorhandenen Plugins an und liest sich den How it works Artikel auf der Webseite von multicd.sh durch.

Achja auf meiner Rescue-CD die ich mit multicd.sh erstellt habe und die man auf dem Screenshot oben sieht befinden sich übrigens: Finnix, Damn Small Linux, Ultimate Boot CD, GParted Live, Parted Magic, Balder(FreeDos) und Memtest86+.

 

Syntax-Highlighting für less… März 10, 2010

Filed under: Linux,OpenSource — Rorschach @ 13:57
Tags: , ,

…wäre ein sehr nützliches Feature doch leider kann less dies nicht, genausowenig wir irgendein anderer mir bekannter Pager (more, most,…).

Aber es gibt ein cooles Makro für vim welches less mit Syntax-Highlighting nachbaut. Mit diesem Makro verhält sich vim zu 99% genauso wie less, nur dass man noch Syntax-Highlighting dazu hat. Bei mir liegt das Makro-Skript in /usr/share/vim/vim72/macros/less.sh, ansonsten könnt ihr es mit:

$ locate "macros/less.sh"

bei euch sicherlich finden, wenn ihr vim installiert habt.

Das Skript ruft ihr genauso auf wie less, also

/usr/share/vim/vim72/macros/less.sh DATEINAME

Durch drücken von h, könnt ihr euch dann wie in less gewohnt eine kleine Hilfe anzeigen lassen, doch die Tastenbelegung ist eigentlich genau die gleiche wie in less. Zu dem Makro an sich gibt es in vim mit

:help less

eine Erklärung. Wenn ihr dieses Makro dann anstelle von less nutzen wollt solltet ihr euch einfach ein alias in eurer .bashrc (oder .zshrc oder …) anlegen:

alias less ="/usr/share/vim/vim72/macros/less.sh"

Und schon habt ihr Syntax-Highlighting für less 🙂

 

Die besten Gnome-Themes März 7, 2010

Filed under: Archlinux,Gnome,Linux,OpenSource,Ubuntu — Rorschach @ 14:31
Tags: , , , , ,

In den letzten Tagen gab es, für mich unverständlicher Weise, einiges an Aufregung um die neuen Ubuntu-Themes. Ich werde das ganze hier garnicht erst kommentieren sondern möchte die ganzen Kritiker (aber natürlich auch die, die die neuen Themes gut finden) dazu anregen, dass wir mal eine Liste der besten Gnome-Themes erstellen.

Natürlich ist das Aussehen und dessen Gefallen rein subjektives Empfinden und doch finde ich, kann man ein gutes Gnome-Theme an zwei Punkten erkennen:

    1. Es ist in sich stimmig
    2. Es ist einfach für den User zu installieren, also ein all-in-one-Paket und nicht: „nimm dieses Icon-Theme da und jene Fensterdeko, und dieses GTK-Theme…“

Wer sich beteiligen will kann dies entweder in seinem eigenen Blog tun (bitte einen Trackback an mich schicken) oder über die Kommentarfunktion in diesem Artikel.

Ich mache mal den Anfang und will euch hier auf das Bisigi Project hinweisen. Das Projekt gibt es schon etwas länger und hat sich auf die Fahnen geschrieben attraktive Gnome-Themes herzustellen. Dabei bietet das Projekt eine Fremdquelle an, aus welcher die Themes einzeln bequem installiert werden können. Ausserdem stehen die Themes auch für Archlinux (im AUR) und für Frugalware bereit. Aber natürlich können sie auch als normale Gnome-Theme-Dateien im tar.gz Format heruntergeladen werden und mit anderen Distributionen genutzt werden.

So und jetzt kommen die momentan 13 Themes die das Projekt bisher erstellt hat:

Ich verwende seit einiger Zeit drei dieser Themes: an meinem Laptop zuhause Exotic, an meinem eeepc Bamboo Zen und auf der Arbeit aquadreams und bin mehr als zufrieden mit dem Aussehen.

 

Linux ist Punk! März 5, 2010

Filed under: Linux,OpenSource — Rorschach @ 21:42
Tags: ,

Naja zumindest sehr nahe an DIY 😉

Ich war letzte Woche auf einem Oi Polloi Konzert gewesen und nach einer halben Stunde kam vom Sänger plötzlich: „Wer nutzt hier freie Software?“ Und zag gingen die Fäuste von 99% des Publikums in die Luft. Dann: „Wer nutzt hier Linux?“ und immernoch sind zahlreiche Fäuste oben.

Und dann kam es: Oi Polloi haben einen Song mit dem Namen L I N U X gespielt (natürlich nicht ohne vorher noch über M$ her zu ziehen). Wer Oi Polloi nicht kennt, es handelt sich dabei um DIE Anarcho-Punkband schlechthin! Das Lied war der Hammer und das Publikum ging ab.

Leider ist das Lied nicht auf ihrer neuen Platte SS Politician und auch sonst konnte ich es nirgendwo finden, sonst hätte ich euch ne Hörprobe gegeben.

Aber auf jeden Fall, ein Grund mehr Oi Polloi cool zu finden!

 

Postfix nur lokal konfigurieren Oktober 5, 2009

Filed under: Linux,OpenSource — Rorschach @ 10:49
Tags: , , ,

Wenn man unter Ubuntu oder Debian Postfix installiert bekommt man von dem Debian-Paket fragen gestellt, welche einem Postfix schonmal einrichten. Da gibt es auch ein local only Profil welches Postfix nur für den lokalen Mailversand einrichtet.
Das ist nützlich um zum Beispiel Meldungen von Cron oder anderen lokalen Daemonen zu erhalten. Bei anderen Distributionen gibt es so eine nützliche Einrichtungshilfe nicht und man muss sich seine Konfiguration selbst zusammenbauen.

So sieht meine Konfiguration (/etc/postfix/main.cf) für Postfix 2.6.5 aus, welche ausschliesslich lokale Mails zustellt und nur vom localhost aus erreichbar ist:

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = localhost
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debugger_command =
	 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
	 ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /etc/postfix/sample
readme_directory = no

Ich hab von der Standardeinstellung eigentlich nur inet_interfaces auf localhost geändert. Ausserdem habe ich in der /etc/aliases einen Eintrag angelegt, damit alle E-Mails von root zu meinem Benutzer weitergeleitet werden:

$ cat /etc/aliases                         
root: rorschach

Jetzt kann ich mit den allermeisten E-Mail Clienten wie Claws-Mail die E-Mails lokal abrufen.

 

Seit Jahren mal wieder Gnome… August 25, 2009

Filed under: Linux,Ubuntu — Rorschach @ 19:09
Tags: , ,

Ich habe heute seit Jahren mal Gnome installiert und mich eingeloggt auf einer Jaunty-Installation.

Was soll ich sagen, es ist ein bischen träger geworden und es wird nochmehr Unsinn automatisch gestartet (bitte wieviel Prozent der Gnome-Nutzer haben einen Bluetoothanschluss am Rechner? 0-1%?).

Anstelle von diesem Unsinn hätte man mal lieber was sinnvolles integriert. Kann mir bitteschön jemand sagen warum ich den gconf-editor öffnen muss um einen selbst definierten Hotkey anzulegen? Ist das so aussergewöhnlich, poweruserhaft, dass die Gui diese Funktionalität nicht bereitstellen sollte? Versteht mich nicht falsch, ich will kein Plädoyer für Guis halten, hier spricht schliesslich ein überzeugter Fluxbox-Nutzer, aber wenn Ubuntu die Einsteigerdistribution schlecht hin sein soll und Gnome dessen Standard-Desktopumgebung ist, dann kann man doch einen gewissen Basiskomfort verlangen. In Fluxbox weiss ich, ich öffne einfach die keys-File, trag meinen Hotkey ein und lade die Box neu. Das ganze dauert max. 5sec. Aber in Gnome muss ich erstmal den gconf-editor öffnen, mich durch diese komischen Menüs wurschteln und an zwei Stellen Einträge für meinen Hotkey machen. Das ist einfach nur dämlich…

Doch dann hab ich das aller nervigste festgestellt: Ich kann ein Fenster nicht über die Panels maximieren. Erst hab ich gedacht, okay das wird eine Einstellung sein also die Panel-Settings angeschaut doch da gibt es nichts entsprechendes, im Wiki nachgeschaut und nichts gefunden. Danach natürlich gegoogelt. Und da finde ich zwei Sachen: einmal einen Brainstormeintrag wo ein User das gleiche wünscht. Gleichzeitig finde ich hier aber im Gnome 1.4 manual genau die besagte Einstellung. Liegt es jetzt am „neuen“ Gnome oder an Ubuntu, dass dies nicht geht?

Naja ich werde mich mit Gnome schon arrangieren…Da ich arbeitsbedingt dafür etwas User-Support leisten muss, muss ich’s mir einfach antun auch wenn mich diese beiden Dinge echt tierisch nerven.

 

Ubuntu Jaunty Preseeding: Probleme und Lösungen August 20, 2009

Filed under: Linux,OpenSource,Ubuntu — Rorschach @ 13:33
Tags: , , ,

Vor kurzem habe ich überlegt wie ich eine automatische Installations-CD für Ubuntu Jaunty basteln kann. Da FAI einfach zuviel ist für das was ich brauche habe ich mich für Preseeding entschieden.

Zu Preseeding gibt es im Ubuntu Installationsguide ein eigenes Kapitel welches sich damit beschäftigt. Doch genau damit fangen die Probleme an. Ich habe den Guide befolgt doch es wollte einfach nicht funktionieren. Der Ubuntu-Installer hat einfach weiterhin die Fragen gestellt obwohl die Antworten in der Preseed-File standen. Es hat mich einiges an Zeit gekostet bis ich den Fehler im Guide fand. Dieser Guide ist eigentlich nicht von Ubuntu sondern eine 1 zu 1 Kopie des Debian-Guides. Ubuntu benutzt aber schon lange Ubiquity als Frontend für den Debianinstaller und mit Ubiquity funktioniert es einfach so nicht. Ubiquity soll zwar auch primitive Preseeding-Fähigkeiten besitzen doch sie sind nicht so ausgereift wie die des Debianinstallers und vor allem sind sie nirgends dokumentiert. Die Lösung des Problems ist jedoch recht einfach: anstelle der Desktop-CD habe ich einfach die Alternate-CD genommen. Diese setzt nicht auf Ubiquity sondern auf den reinen Debianinstaller und damit funktioniert Preseeding. Die Anleitung im Ubuntu Guide funktioniert also nur mit der Alternate-CD was allerdings an keiner Stelle des Guides irgendwo erwähnt wird.

Beim Remastern der Alternate-CD muss man noch beachten, dass diese im Gegensatz zur Desktop-CD irgendwelche Signierungen besitzt. Man kann sie also nicht einfach mounten, den Inhalt wohin kopieren, seine Veränderungen vornehmen und dann mit mkisofs eine neue Iso erstellen, denn dann bricht der Installer mit der Meldung ab, dass man keine valide Installations-CD benutzt. Deswegen muss man das ganze mit den Commandline-Tools des Ubuntu Customisation Kits machen. Hier ist ein nettes Howto wie man die Tools dazu benutzt.

Nachdem ich dies herausgefunden hatte liessen sich die meisten Fragen beantworten aber leider nicht die Keyboard und Localisation-Settings, denn diese werden vor dem Laden der Preseeding-Datei abgefragt. Um das zu umgehen muss man in der kernel Zeile in der Isolinux-Konfig der Alternate-CD diese beiden Dinge einfügen:
auto=yes priority=critical
Damit werden diese Fragen nach hinten verschoben und können somit mit der Preseeding-Datei beantwortet werden.

Dann ging es weiter. Die Fragen wurden beantwortet und die Installation lief bis zu dem Punkt an dem der Kernel und die Ramdisk installiert werden sollten. Diesmal brach der Installer mit der Meldung ab, dass kein zulässiger Ramdisk-Generator verwendet wird. Schuld ist schon wieder ein Fehler im Installations-Guide. Dort steht geschrieben, dass man als initramfs-generator das Paket yaird auswählen soll. yaird ist (oder war früher mal) der Ramdisk-Generator von Debian. In Ubuntu ist er im universe-Repository und steht bei der Installation garnicht zur Verfügung, selbst wenn es mit ihm klappen würde. Deswegen müssen für Ubuntu entgegen der Installations-Anleitung die initramfs-tools verwendet werden:
d-i base-installer/kernel/linux/initramfs-generators string initramfs-tools

Mit diesen Veränderungen hat der Guide endlich funktioniert und ich konnte eine automatische Ubuntu-InstallationsCD erstellen. Ich hoffe mal meine Bugreports bezüglich der fehlerhaften Anleitung werden spätestens mit der Anleitung für Karmic behoben werden.