Sonntag, 6. November 2011

How to install doctorjs/jsctags on Windows (for Vim)

This is a short guide that explains how I  installed doctorjs aka jsctags on my Windows 7 machine.

node.js Installation
First we have to get a working node.js binary. You can find a precompiled node.exe file in the apropriate  folder under http://nodejs.org/dist/ . At the time of this writing the newest version is 0.5.10, so I used the following address: http://nodejs.org/dist/v0.5.10/node.exe

Clone doctorjs repository
Now get the newest version of doctorjs by cloning the repository with git. I used Git for Windows (portable version) for this. To clone it use the following command:
F:\> git clone --recursive https://github.com/mozilla/doctorjs.git
Alternatively, github provides a packed zip file of the repo.

Test run
Open up the command line and navigate to the folder where you saved node.exe (F:\nodejs in my case).
Use the following command to set the environment variable NODE_PATH in this test session:
F:\nodejs> set NODE_PATH=F:\doctorjs\lib\jsctags  
This is necessary because otherwise it's not possible for node.js to locate the required libraries to run doctorjs:
Finally we can test our setup:
F:\nodejs> node.exe F:\doctorjs\bin\jsctags.js -h
Vim and tagbar plugin
I created an batch file jsctags.bat that basically executes these steps above.


With this script it is possible to use the tagbar plugin for Vim (or any other plugin generating tag files via jsctags).  As a last step we add the path of the directory containing jsctags.bat to the environment variable PATH. To do so, add something like the next line to your _vimrc configuration file:
let $PATH = 'F:\jsctags;' . $PATH
Done!

Montag, 16. Mai 2011

DRM von Mobipocket eBooks entfernen

Gestern stand ich vor der Frage, wie ich mein erworbenes PONS Großwörterbuch Englisch-Deutsch (http://www.mobipocket.com/en/eBooks/eBookDetails.asp?BookID=86466) auf meinem Amazon Kindle nutzen kann. Nach längere Recherche bin ich dann über die Lösung gestolpert, den DRM Schutz komplett zu entfernen. Das Angenehme daran ist, dass man das so befreite eBook letztlich auf jedem beliebigen Gerät/Reader lesen kann.
Nachfolgend also eine kurze Anleitung zum Entfernen des DRM Schutzes, die bei mir erfolgreich war.
Eingesetztes Betriebssystem war übrigens Windows 7, aber im Prinzip sollte das Vorgehen auch auf anderen Plattformen funktionieren.

1. Python installieren
Da später ein Python Script das Knacken des DRM Schutzes übernimmt, muss auf dem Computer Python installiert sein. Unter http://python.org/download/ kann man sich die neueste Version herunterladen und bequem installieren.




2. eBook herunterladen
Das gewünschte eBook von mobipocket.com (Mein Konto -> Meine eBooks) herunterladen und speichern. In meinem Fall habe ich den PONS unter D:\eBooks\pons_gross_ed2.prc abgelegt.



3. PID herausfinden
Die heruntergeladene Datei wurde mit einer sog. Personal ID (PID) verschlüsselt, die ein bestimmtes Gerät identifiziert und dafür sorgen soll, dass es nur auf diesem genutzt werden kann.
Um diesen Schutz zu entfernen müssen wir zunächst die PID in Erfahrung bringen. Unter Mein Konto -> Meine PIDs ändern kann man das aktuell ausgewählte Gerät samt PID finden, für das die Datei verschlüsselt wurde.


4. DRM Schutz knacken
Wie bereits erwähnt brauchen wir dazu ein Python Script namens MobiDeDRM. Die neuste Version (zurzeit 0.16) kann direkt unter http://www.mediafire.com/?ot2tyglfdzo heruntergeladen werden. Es sollte dann zusammen mit dem eBook in einem Verzeichnis liegen, bei mir in D:\eBooks\mobidedrm.py .

So, jetzt müssen wir die Windows Kommandozeile (cmd.exe) öffnen und zu unserem Verzeichnis navigieren, indem das eBook und das Python Script liegt. Dort angekommen kann man nun mir folgendem Befehl die Entschlüsselung starten:
python mobidedrm.py EINGABE-DATEI AUSGABE-DATEI PID
Dabei muss EINGABE-DATEI durch den Dateinamen des geschützten eBooks ersetzt werden. In AUSGABE-DATEI trägt man den Namen der Datei, in der die neue, DRM freie Version gespeichert werden soll. Zuletzt muss bei PID noch die unter Punkt 3 erwähnte Geräteidentifikationsnummer eingetragen werden. Das Ganze sieht dann etwa so aus:


Wenn alles geklappt hat, sollte nach wenigen Minuten das Ergebnis vorliegen, wobei sich die Berechnungszeit wohl nach der Größe der Datei richtet. Viel Spaß!