Archiv August 2011

Mittwoch, 31. August 2011

Word HTML-Säuberer wordoff.py lokal ausführbar machen

Kürzlich stand ich auf der Arbeit vor der schmerzlichen Vorgabe, ein dutzendes Seiten umfassendes Word-Dokumenten nach Excel zu kopieren (das Dokument enthielt unzählige Tabellen im immer gleichen Aufbau). Anstelle jede Zelle mühsam einzeln nach Excel zu kopieren – was meine gesamte bisherige Ausbildung in Frage gestellt hätte – entschied ich mich dafür, das Word-Dokument als HTML abzuspeichern, den HTML-Code anzupassen und danach in Word zu importieren.

Bekanntermassen ist der von Word produzierte HTML-Code ungefähr so das schrecklichste, was ein Web-Entwickler jemals zu Gesicht bekommen wird. Zum Glück gibt es Web-Dienste wie WordOff, welche über ein Web-Form Word-HTML entgegennehmen, säubern und zum Download anbieten.

Da das Word-Dokument in meinem Falle aber die Bemerkung „Strictly Confidential“ enthielt, empfand ich dies dann doch eher als gewagter Stunt, der mir im schlimmsten Falle den Job hätte kosten können.

Ich entschied mich deshalb, den Python-Code für das Projekt von git herunterzuladen, anzupassen und danach lokal über das HTML-File laufen zu lassen.

Folgende Anpassung war in wordoff.py nötig:

...
def superClean(str):
    clean = stripAttributes(str)
    cleaner = stripSpans(clean)
    cleaner = stripDivs(cleaner)
    #cleaner = xenophobia(cleaner)
    cleaner = stripEmptyElements(cleaner)
    cleaner = stripEmptyElements(cleaner)
    cleaner = stripEmptyElements(cleaner)
    cleaner = reduceLineBreaks(cleaner)
    return cleaner

# Changes added by Mario Aeby, eMeidi.com
# Allows to execute the script locally on a command line
def main():
	file = open("word-to-excel.htm");
	str = file.read()
	
	print superClean(str)
	
if __name__ == "__main__":
    main()

Dies erlaubt, das Script folgendermassen auf der Kommandozeile aufzurufen (die Quelldatei muss derzeit leider in den Sourceode hardkodiert werden):

$ ./wordoff.py > word-to-excel-clean.html

Nicht schlecht. Wer weiss, vielleicht lässt der Entwickler diese Anpassung ja auch ins Projekt einfliessen, damit man es künftig sowohl unter dem Django-Framework als auch lokal in einer Shell ausführen kann.

Tags: , , , ,
Labels: IT, Web

1 Kommentar | neuen Kommentar verfassen

Samstag, 27. August 2011

Mehrere private SSH-Schlüssel auf einem Rechner?

Kein Problem! Man benutze hierzu einfach Einträge in der Datei ~/.ssh/config à la:

Host github github.com
Hostname github.com
IdentityFile ~/.ssh/id_rsa_git

Quelle: Best way to use multiple ssh private keys on one client

Tags: , , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Samstag, 27. August 2011

Kurzanleitung git

Vor einigen Wochen habe ich einen Account auf Github eröffnet und teile dort nützliche und weniger nützliche Programmierwürfe aus meiner Hand.

Da ich meine PHP-Entwicklungen mit Subversion verwalte und Git deshalb äusserst selten verwende, habe ich mir folgende Kurzanleitung von der Web-Site kopiert, damit ich ein Projekt im Nu eingecheckt habe.

Zuerst erstellt man sich unter Create a New Repository ein neues Repository. Anschliessend führt man lokal folgende Befehle aus:

mkdir arbeitsjournal
cd arbeitsjournal
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@github.com:emeidi/arbeitsjournal.git
git push -u origin master

Für alles weiterführende sei beispielsweise auf eines der vielen Git-Cheatsheets verwiesen.

Tags: ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Samstag, 27. August 2011

Debian unter VMware meldet „Waiting for root file system“

Gestern wurde der VMware-Server aktualisiert, unter welchem eine von mir betreute Debian GNU/Linux-Installation läuft. Wie ich erst jetzt realisiert habe, funktioniert der Server seit dem Update nicht mehr.

Nachdem ich mich per VPN über den Terminalserver und den VMware vSphere Client auf die Konsole der Kiste eingewählt und die Kiste neu gestartet hatte, lächelte mich folgende Fehlermeldung an:

Waiting for root file system

Nach einer Google-Suche und einiger Lektüre stiess ich auf einen erhellenden Artikel “Waiting for root file system” caused by out dated VMware Server, dessen Lösung für mich zwar nicht anwendbar war, mich aber immerhin darauf brachte, die in GRUB hinterlegten Referenzierungen auf die Partitionen zu überdenken.

Und siehe da: Zuerst betätigte ich beim GRUB-Screen zuerst einmal den Cursor, um den automatischen Start des Betriebssystems zu verhindern. Anschliessend bearbeitete ich den standardmässig aktivierten Eintrag mit Druck auf die Taste e. Hier wechselte ich folgende Angaben:

kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/sdb2 ro

auf

kernen          /boot/vmlinuz-2.6.26-2-686 root=/dev/sda2 ro

und einem anschliessenden Enter gefolgt von b liess die Kiste wieder booten.

Als nächstes musste ich die soeben gemachte Anpassung noch fix in /boot/grub/menu.lst vornehmen. Beim nächsten Neustart lief alles wieder wie gewohnt.

Tags:
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 11. August 2011

Vier Stunden für einen Schweizer Big Mac arbeiten

Der Finanzblog «Zero Hedge» hat das vorgestern mit einem eingängigen Vergleich auf den Punkt gebracht: Ein Big-Mac in Zürich kostete in Dollar an diesem Tag 17,19 Dollar, wofür ein Beschäftigter im US-Bundesstaat Minnesota zum Mindestlohn vier Stunden lang arbeiten müsste. In der Schweiz arbeitet man dafür laut einer Berechnung der UBS nur eine Viertelstunde – wenn man den Durchschnittslohn aus 14 Berufen zur Berechnung heranzieht.

Quelle: «Weisheit und Kraft» für den «Falschmünzer»

Tags: , , , , , ,
Labels: Schweiz, Wirtschaft

Keine Kommentare | neuen Kommentar verfassen