Tinnef a la Microsoft: winmail.dat

Friday, December 2. 2011

 Man bekommt diese Attachments von Leuten, die ihre Mail mit outlook versenden, oben zwei Zeilen Text, dass alles wichtige in dem attachten 'Word.doc steht und dann kein lesbares attachment sondern eine Datei winmail.dat, mit der ausser dem Sender selbst niemand etwas anfangen kann.

Das Format ist ein Microsoft-Standard (Oxymoron?)  mit dem treffend gewaehlten Namen tnef. So, zu meiner Freude kam ich jetzt mal darauf, dass debian eine Antwort darauf in den repositories hat:

apt-get install tnef
tnef -f winmail.dat -C Zielverzeichnis --unix-paths --verbose

klärt das Problem erstmal... 
Alternativ kann man auch einen Webdienst dazu bemuehen, etwa bei tud.at, und sich die Dateien da auspacken lassen.
Dann gibt es für Thunderbird/Icedove das Addon LookOut, welches die Inhalte der winmail.dat wie zusätzliche attachments auflistet.

Den lieben Absender, der Outlook benutzt, sollte man bitten, seine Emails künftig nur noch im reinen Text Format zu versenden. Wie das geht, kann man bei Microsoft nachlesen.

Strukturierten Text -> Freemind

Friday, December 2. 2011

 Ein voriger Beitrag behandelte Wege, eine Mindmap aus Xmind ins Freemind-Format zu bekommen, diesmal wollte ich einen strukturierten Text einlesen. Im Grunde eine Gliederung, bis auf die oberste Überschrift - den root node der Mindmap - beginnt jede Zeile mit (mindestens) einem Tab. Zeilen mit einem Tab sind Unterpunkte der obersten Überschrift, haben sie selbst auch Unterpunkte, stehen diese unter ihnen und die Unterpunkte haben alle einen Tab mehr als ihr Oberpunkt. Entsprechend weiter... 

Das .mm - Format ist an sich sehr aehnlich, es ist ein XML, das binnen <map> </map> die Struktur als inneinander eingenistete <node /> abbildet. Ein node hat die Properties CREATED, MODIFIED, ID, TEXT und optional POSITION. Eigentlich wundert es mich, dass Freemind und seine Derivate (Freeplane zB.) keinen Import von Text direkt anbieten. Aber ich fand ein kleines Python-Tool, dass mir die Umwandlung erledigte: download

KeepassX Konverter

Monday, November 21. 2011

download: convert2keepass.03a.tar.gz

Die Ausgangslage: auf einer kleinen verschlüsselten Partition halte ich eine seit vielen Jahren gehegte Sammlung von mehr oder weniger geheimen Infos, in vorwiegend kleinen Textdateien. Und diese wollte ich in eine Keepass - Datenbank überführen. Bei zusammen doch mehreren hundert Schnipseln war Handarbeit keine Option.

Die Zielanwendung ist KeepassX (v.0.43), das ich mit sudo apt-get install keepassx aus den Debian repositories installiert habe. Bis auf das Schnuller-Logo, das leider auch als Icon verwandt wird, habe ich an der Anwendung wenig auszusetzen: klein, flottt, unaufdringliche Oberfläche und es gibt sie in Versionen für alle Betriebssysteme und Architekturen, die ich habe. Ich kann die unter Linux erstellte Datenbank auf Windows, auf dem Mac, ja auch auf meinem Androiden öffnen, ergänzen, die veränderte .kdb vom Handy wieder auf Linux zurückspielen, die Sicherheitsfeatures machen auch einen guten Eindruck.

KeepassX kann Daten exportieren - als gegliederte Textdatei oder als keepassx.xml - und importieren - keepassx.xml, kwallet.xml und PwManager-Datei. Da nur ein Format sowohl für Export als auch Import zur Verfügung steht, war nicht lange zu überlegen, welches Format ich für einen Konverter wählen würde.

Es ist ein kleines Bash-Script geworden, das mit den Parametern QuellVerzeichnis zielVerzeichnis ZieldateiName aufgerufen wird und dann vom 'Quellverzeichnis abwärts durch alle Unterverzeichnisse alle Dateien sucht und einträgt. Dabei wird der Titel des Eintrags aus dem Namen der Textdatei (ohne Extension) gebildet und der Inhalt der Datei wird in das Feld Comment geschrieben.

Das Ergebnis ist dann eine lange xml-Datei, die mit der Import-Funktion als eine Keepassx-db geladen werden kann. Die Sache ist frisch und Alpha, derzeit kann es

  • prüft auf taugliche Parameter, Schreibrechte im ZielVerzeichnis
  • rekursive Bearbeitung, die Struktur in der Keepass-DB entspricht der Verzeichnisstruktur
  • prüft mimeType der Dateien und bearbeitet nur text* und message*
    • ruft dazu file
    • Texte, die von MacOS <10 stammen, machen uU Probleme
  • ersetzt die für XML unverträglichen Zeichen &<>"' und Zeilenenden durch html entities
  • gibt Statistik über bearbeitete Dateien und Verzeichnisse aus
  • schreibt für keepassX importierbares .xml und nennt dessen Dateipfad.

 

Um die damit erzeugten Datenbankeinträge nicht als eigene .kdb zu importieren, sondern mit einer bereits bestehenden zu vereinen, muss man dann doch Hand anlegen: die bestehende kdb als .xml exportieren, die beiden xml in einem Editor zusammensetzen und neu importieren. Grade gemacht, funzt.

MindMaps: Xmind -> FreeMind

Thursday, April 21. 2011

Ich setze zur Strukturierung meiner Gedanken gerne MindMaps ein und, was die Software angeht, schon seit längerem XMind. Das ist in Java und so für Win*, MacOsX und Linux (für versch. Architekturen und Distros) verfügbar, sieht ansprechend aus, läuft stabil, ist in einer kostenlosen Variante verfügbar (dazu gleich mehr) und hat nur einen Haken: es versucht den alten Dateiformat-Marketingtrick, nämlich einerseits viele Importformate zu unterstützen, andererseits aber den Export geizig zu handhaben. Erst die kostenpflichtige Pro-Version unterstützt den Export nach .mmap oder .mm, die kostenlose Version bietet in der Zusammenarbeit mit anderen MindMap-Softwares nur Einbahnstrassen. 

Was den Nutzen der Software für die Zusammenarbeit mit anderen doch sehr reduziert, und auch schmerzt, wenn eine Plattform dazukommt, die XMind nicht bedient: in meinem Fall Android 2.3. Da gibt es im Market eine recht überschaubare Anzahl von Mindmap appls, ThinkingSpace und sonst nicht viel.

ThinkingSpace liest und schreibt .mm, und wenn ich also meine am Desktop begonnenen Überlegungen zu einem Thema während der Bahnfahrt auf dem SmartPhone weiterführen will, muss ich die Frage der Dateikonvertierung lösen. (oops, siehe Update unten!) Leider ist MindMapping eher ein Nischenthema und eine Suche nach Konvertern für die drei Dateiformate .xmind, .mmap und .mm geht leer aus. 

Noch einmal zu der kostenlosen Version von XMind: sie ist Crippleware. Ich hatte, noch unter win*, eine aktuelle Version installiert, die etliche MenueEinträge enthielt, die immer nur auf die Pro-Version verwiesen. Die letzte Version, die all' diese - eh nicht verfügbaren - Features auch gar nicht erst anpries, war Version: 3.0.1. das ist auch die Version, die ich unter allen drei OSen einsetze.

Meine Suche nach Datei-Konvertern führte mich nun dazu, dass es die Sourcen für XMind in einem bestimmten Featureset auch als Opensource gibt.  Will heissen: die Opensource-Version 3.2.1 sieht für mich bis auf ein entscheidendes Detail (Exportformate!) einfach gleich aus. Kein Feature-Spam in den Menüs und FreeMind als ExportOption: was wollte ich mehr?

Nun, nach dem Download der Sourcen in einem .zip stellte sich zunächst erst mal die Frage, wie ich das zum Laufen bekomme. Java ist ja doch eher unbekanntes Terrain für mich. Es fand sich aber ein sehr hilfreiches Kochrezept auf code.google.com/p/xmind3/wiki/How_to_build_XMind_from_source  dem ich gefolgt bin und letztlich auch mit Erfolg. Ich hatte aber schon einige Hürden zu überwinden.

Step 1.3:  Copy to {ECLIPSE}/plugins/
ich habe die drei letztlich sowohl zu /home/username/.eclipse/org.eclipse.platform_3.5.0_155965261/plugins als auch nach /usr/lib/eclipse/plugins/ kopiert, habe auch alle in den Comments erwähnten restart/refresh/reloads angewandt, aber aber...

Step 1.5:  Available Software Sites braucht Add: http://download.eclipse.org/tools/gef/updates/releases/

Step 3.2: stehe aber dennoch mit 62 Error da, die sich offenbar alle auf bouncycastle zurückführten. Was es letztlich brachte war, diesem Comment zu folgen:
"Here is what I did to fix it easily.
Right clicked org.bouncycastle jar, choose import
Chose Plugin Development > Plugins and Fragments
Took defaults - hit Next
Choose the org.bouncycastle jar, then "Add"
Finish.
Project is now in workspace and everything compiles."

Fein, nun läuft es als eclipse-> run, wie ich es zu einem standalone compiliere bzw packe, habe ich noch nicht erforscht. Aber mit ps faux|less konnte ich mir die command line mit allen Optionen heraussuchen und habe sie in eine ~/bin/xmind.sh gesteckt, die sich, mit dem KDE - Menu Editor ohne weiteres in das Menu einbinden liess und funzt.

Alles geht wie zuvor, nur zusätzlich endlich eine Export-Option nach FreeMind.  

Update:
Hatte ich nur nicht richtig hingesehen oder hat ThinkingSpace seither dazugelernt? Jedenfalls kann die App jetzt Freemind, Mindjet und XMind - Format lesen und Schreiben, verbindet sich optional auch mit MindMeister.

Und so kann man es zum Konvertieren benutzen:
- die.xmind auf die SD-Karte schieben
- ThinkingSpace->Menu->Einstellungen->Default file format->Freemind auswählen
- Rücktaste, in der Liste der vorhandenen mindmaps lange auf die.xmind druecken
- öffnet sich Kontext-Menü, da Kopieren wählen.
- OK, jetzt gibt es auf der SD-Karte neben die.xmind auch die.mm 

(Page 1 of 1, totaling 4 entries)