Das Problem mit der digitalen Ausleihe – E-Books in wenigen Arbeitsschritten herunterladen

Um digitale Bücher schnell auszuleihen benötigt man Hilfsmittel, die automatisch die einzelnen Kapitel herunterladen um dann die einzelnen Dokumente zu einem einzigen PDF zusammenzufügen.

E-Books sind der Traum eines Bibliotheksnutzers. Einmal heruntergeladen kann das Buch sofort, überall und so lange man will gelesen werden. Weil das Ausleihen damit viel zu einfach wird, hat man dem willigen Benutzer jedoch noch ein paar Steine in den Weg gelegt.

Viele PDF-Dateien müssen einzeln heruntergeladen werden
Viele PDF-Dateien müssen einzeln heruntergeladen werden

Wer schon einmal ein digitales Buch ausgeliehen hat kennt das Problem wahrscheinlich. Man landet beispielsweise auf der Seite des Anbieters www.springerlink.com bei dem der Download lizenziert ist und hat dann lediglich die Möglichkeit alle Kapitel des Buches einzeln als PDF herunter zu laden. Noch dazu heißt dann jede Datei „fulltext.pdf“ und muss nach dem herunterladen umbenannt werden, damit man die Kapitel noch auseinanderhalten kann. Bei Büchern mit mehr als 20 Kapiteln hört die Freude am digitalen Download aber auf.

Wenn man sich die vielen Arbeitsschritte ersparen will muss man automatisieren. Eine Möglichkeit dazu ist die Nutzung des Firefox Add-ons „DownThemAll!“ und des PDF-Konverters „FreePDF“.

Mit DownThemAll! kann man alle Kapitel auf einmal herunterladen. Dazu muss das Add-on zuerst im Firefox installiert werden. Neustart des Browsers nicht vergessen! Anschließend bekommt man auf der Seite mit den PDF-Dokumenten nach einem Rechtsklick und Klick auf „DownThemAll!“ alle Links auf dieser Seite angezeigt. Nun müssen wir zuerst die Einstellungen bearbeiten (ganz unten rechts). Den Schieberegler „Max. Anzahl gleichzeitiger Downloads“ ganz nach links schieben, damit nur noch eine Datei  gleichzeitig heruntergeladen wird. Dadurch erreichen wir, dass die PDFs in der richtigen Reihenfolge auf unserem Rechner landen. Nun noch „Falls ein Dateiname…“ auf „Umbenennen“ stellen, damit nicht bei jedem PDF erneut  nachgefragt wird. Nach Klick auf „OK“ müssen wir nun auf das Pluszeichen vor „Schnelles Filtern“ klicken und dort folgenden Eintrag einfügen:“*.pdf“. Noch die Checkbox „Andere Filter deaktivieren“ auswählen und gegebenenfalls den Pfad ändern, an dem die Dateien gespeichert werden sollen. Es empfiehlt sich einen eigenen Ordner anzulegen indem man einfach an die bestehende Adresse einen Zusatz wie „buchxy“ hinzufügt. Alle Dateien landen dann nach Klick auf „Starten!“ in dem Ordner buchxy unter den Eigenen Dateien.

Nun wäre es ja praktisch, wenn wir anstatt der vielen einzelnen Dateien ein einziges Dokument hätten. Das Zusammenfügen erledigt FreePDF für uns. Damit FreePDF funktioniert muss erst Ghostscript installiert werden. Danach kann FreePDF durch Klick auf die aktuellste Versionsnummer heruntergeladen und installiert werden. Jetzt befindet sich im Startmenü unter FreePDF das Programm FreePDF Join. Oben Rechts wählt man durch Klick auf das Ordnersymbol den Ordner mit den heruntergeladenen Dateien aus, markiert alle Dateien und klickt auf „Öffnen“. Jetzt sollte man darauf achten, dass die Dokumente auch ja in der richtigen Reihenfolge sind und anschließend auf das Disketten Symbol klicken. Nun muss man nur noch einen Namen für die zusammengefügt Datei eingeben, am besten den Titel des Buches und fertig ist man.

Nun hat man das  Buch in einem Dokument und kann es komplett nach Stichwörtern durchsuchen.

DNS-Abfragen mit JNDI

Für unser Java-Projekt benötigen wir genau eine DNS-Abfrage. In der Vergangenheit haben wir dazu dnsjava verwendet, aber eigentlich ist es natürlich Overkill, für eine einzige Abfrage eine komplette zusätzliche Library mitzuschleppen. Deshalb war ich froh zu entdecken, dass DNS mittlerweile mit Java-Bordmitteln funktioniert. Es ist ein bisschen versteckt, weil es Teil der JNDI-Extension ist, die für Verzeichnisdienste aller Art benutzt werden kann.

Wenn man aber erstmal weiß, dass damit auch DNS gemeint ist, geht der Rest ziemlich einfach, wenn man davon absieht, dass man sich das eigentliche Ergebnis mit einer Regular Expression extrahieren muss:

DirContext ictx = new InitialDirContext();
Attribute myAttr = ictx.getAttributes("dns:/_kerberos._udp.ad.uni-koeln.de",
        new String[] {"SRV"}).get("SRV");
NamingEnumeration<?> myEnum = myAttr.getAll();
Pattern p = Pattern.compile(".*\s(\p{Alpha}.*$)");
Matcher m;
while (myEnum.hasMoreElements()) {
      m = p.matcher(myEnum.next().toString());
      if (m.find()) {
   	  myKRB_Servers.append(m.group(1)+":");
      }
}
System.setProperty("java.security.krb5.kdc", myKRB_Servers.toString());

Wir setzen auf diese Weise die Adressen der jeweils aktuellen Kerberos5-Server im Active Directory der Uni. Möglicherweise geht das noch eleganter, aber schon so ist es eine deutliche Verbesserung gegenüber dem vorigen Konstrukt.

Probleme mit Unicode bei OTRS-Update beseitigen

Nach einem Update auf die OTRS-Version 2.3.4 war die Administrationsseite unseres OTRS (a.k.a. SysConfig) nicht mehr erreichbar. Es stellte sich heraus, dass diese wohl gegen den Einsatz von Unicode, also UTF-8 rebellierte, eine temporäre Umstellung auf Latin-1 förderte die Adminseite wieder ans Tageslicht. Weitere Nachforschungen ergaben, dass ein Auskommentieren des ConfigCaches in der Datei /opt/otrs/Kernel/System/Config.pm auch wieder UTF-8 ermöglichte. Das System wurde hierdurch jedoch verlangsamt. Die optimale Lösung liegt wohl darin, alle Dateien, die mit „SysConfig“ beginnen, unterhalb von /opt/otrs/var/tmp zu löschen und OTRS sowie den dazugehörigen Apache neuzustarten. Dabei wird der Cache dann mit der korrekten Codierung reinitialisiert.

C95K iscsi mode parameter und VMware iscsi software initiator

Wir hatten wiederholbar Probleme mit dem iSCSI-Verkehr zwischen einem ESX-Host vmnode8 und einer LUN, die vom Cisco 9509 SAN-director per iSCSI durch das IPS-8 board bereitgestellt wurde. Zwischen vmnode8 und c95k-rzkj-1 war wenigstens 1 router, wenn die Probleme auftraten. In einer Konfiguration ohne router, d.h. mit VMware host und c95k an einem switch waren die Probleme nicht zu beobachten.

Das Problem äusserte sich dadurch, dass bei dem Versuch der Installation eines Windows-Servers oder der Einrichtung einer disk unter knoppix mit fdisk I/O-Fehler auftraten.

Debugging mit tcpdump auf einem entsprechend auf den vSwitch (der auf promiscuous mode accept einzustellen war) des iSCSI-kernel-interfaces eingerichteten Gast zeigte, daß für eine Serie von mit TCP-Push gesendeten Paketen weniger Ack-Pakete zurückkamen, allerdings die sequencenumber korrekt inkremementiert war auf die Zahl des letzten gesendeten Bytes.

Cisco bietet zur Konfiguration eines iSCSI-(target) interfaces u.a. den mode parameter an:

interface iscsi
To configure an iSCSI interface, use the interface iscsi command. To revert to default values, use the no form of the command.
interface iscsi slot/port
mode {pass-thru | store-and-forward}
tcp qos value
interface iscsi slot/port
no mode {pass-thru | store-and-forward | cut-thru}
no tcp qos value
no interface iscsi slot/port
Syntax Description
Defaults
Disabled.
The TCP QoS default is 0.
The forwarding mode default is store-and-forward.

Bei uns standen aber alle Interfaces auf „mode pass-thru“. Umsetzen auf den „neuen“ Standardwert „mode store-and-forward“ ergab das offenbar vom VMware software iSCSI-initiator gewünschte Verhalten: nun wird offenbar für jedes TCP-Push ein ACK gesendet. Damit geht der fdisk-Vorgang dann rasch erfolgreich zuende.

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

Informationsaggregation durch Webseiten

Wie viel Zeit verliert man täglich mit dem Besuchen verschiedener Webseiten, nur um zu überprüfen, ob es neue Informationen gibt. Oder sei es, dass man immer auf dem neuesten Stand sein möchte, was aktuell in der Welt los ist.

Anstatt jede Seite immer einzeln anzusteuern gibt es Dienste, die Informationen von verschiedenen Webseiten in einer Übersicht sammeln. Möglich machen dies RSS-Feeds, Widgets und die Funktionen des Web 2.0. Auf Webseiten wie netvibes.com, igoogle.com oder live.com können Sie die Informationen von Spiegel Online, Kölner Stadtanzeiger, heise und welche Seite Sie auch immer interessiert in einer Übersicht bündeln. Dabei sind die Themen nicht nur auf das aktuelle Weltgeschehen begrenzt, sondern selbst Webseiten der Unterhaltungskultur liefern Ihre neuesten Beiträge per RSS, z.B. failblog.org. Zusatzfunktionen ermöglichen Ihnen das Einbinden weiterer Übersichten, sei es das E-Mail-Postfach oder das aktuelle Wetter.

Um diese Dienste nutzen zu können müssen Sie sich bei einem der Anbieter kostenlos registrieren und einfach die gewünschten Inhalte hinzufügen. Sie werden überrascht sein auf wie vielen Webseiten Sie das orangefarbene RSS-Symbol entdecken werden, wenn Sie erst einmal danach suchen.

Wie eine solche Seite aussehen kann sehen Sie unter www.netvibes.com/galileo5

netvibes1

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!