Brain2Html: Gedankenlesen unter MacOSX

Damals, als ich noch Windows benutzte, sortierte ich viele meiner Gedanken, Bookmarks und zugehörige Notizen in ein Brain. Meine Hoffnung, es zur Zentralen Verknüpfungsstelle meiner persönlichen Infosphäre machen zu können, scheiterte u.a. daran, dass die diversen anderen Anwendungen nicht offen genug sind, bzw. das Brain nicht tief genug hineingreift – so kann man z.B. keinen link auf eine email oder einen email-Ordner setzen, ohne die mails ins Brain hineinzukopieren. Da das Brain die Struktur der hineinkopierten Dateien aber nicht versteht, kann das Brain sie natürlich nicht so gut bearbeiten und durchsuchen wie das native Email-/Kalender-/Kontakt-/Bookmark-/Bibliotheks-/Projektverwaltungs-Programm, ist also kein Ersatz.

Dass es das Brain nicht unter MacOSX gibt lässt sich daher verschmerzen. Für Brainstorming ist FreeMind eine gute Alternative, ansonsten kommt man mit Dateisystem und Spotlight auch schon sehr weit.

Wohin aber mit den diversen alten gut gefüllten Brains? Das Brain legt die “attachments” einfach als Dateien in einen internen Ordner, und die Notizen werden als rtf gespeichert. Da rtf eines der grundlegenden Dateiformate unter MacOSX ist, hatte ich zunächst gehofft, einfach mit Spotlight in den Notizen suchen zu können, aber leider sind die Namen der Notiz-Files nicht besonders sprechend: Zu welchem Thema 0000003f.rtf gehört erkennt man nur, wenn die Link-Struktur des Brains kennt, und weiss, welchen Namen der Gedanke mit der internen ID 0000003f trägt.

Freundlicherweise stellt TheBrain Technologies den PBExporter zur Verfügung, der die Struktur der Gedanken als XML exportiert. Mit einem von mir geschriebenen kleinen XSLT-Skript lässt sich das XML dann in HTML umwandeln: Im linken Frame erscheint der Gedanken-Baum inkl. Namen und download-link für das attachment, und im rechten Frame die rtf-Notizen zum aktuellen Gedanken. Bearbeiten lässt sich der Baum in meiner Lösung nicht, für mich war das nur eine Migrationshilfe, um die Gedanken auf FreeMind und Dateisystem zu verteilen.

Mit etwas Arbeit liesse sich vielleicht automatisch das FreeMind-XML-Format generieren… möge da der nächste übernehmen…

SSH Agent

Eigentlich Schade, dass die Schlüssel-Verwaltung von ssh und die KeyChain-Anwendung von MacOSX fast das gleiche wollen und doch getrennt sind: Schlüssel sollen zentral und sicher verwahrt werden, und der Benutzer soll selbst wählen können, wie oft er das Passwort eintippen muss (also Bequemlichkeit oder Sicherheit).


SSHPassKey geht das ganze direkt an, indem es bei Aufruf den gewünschten Schlüssel aus der KeyChain holt und ausgibt. Mittels SSH_ASKPASS wird ssh davon überzeugt, das Programm aufzurufen. Effekt: Bequemlichkeit. Allerdings kann sich nun auch jedes andere Programm das Klartextpasswort meines SSH-Schlüssels holen – das will man eigentlich nicht!


SSH Agent setzt daher auf einer anderen Schnittstelle auf. Die ssh-Architektur sieht den “agent” vor, um Unterschriften zu leisten, ohne dass das Passwort oder der Schlüssel unnötig im Klartext umherwandern müssten. Dadurch wird in einigen Szenarien nur eine Unterschrift ergaunert, statt gleich den ganzen Schlüssel zu kompromittieren. SSH Agent bietet ein nettes MacOSX-GUI, und dürfte etwas sicherer sein als SSHPassKey, ist aber leider (noch?) nicht so gut mit der KeyChain integriert.

Da geht noch was.

Intransparent HTTP Proxy

Das Unsichtbare sichtbar machen… Frank hat ein inspirierendes Projekt aufgesetzt, um den kleinen, obsoleten, unsichtbaren HTML-Layout-Helfern Ehre zu erweisen (empty.gif, spacer.gif, blank.gif,…). Da möchte ich auch etwas beitragen: Ein Plugin für den HTTP-Proxy Muffin, das transparenten GIFs eine wählbare deckende Farbe gibt (Binary, Quelle).

“Installation”: Runterladen, folgende zwei Zeilen in die Datei ~/Muffin/default.conf schreiben:

FilterManager.enabledFilters=net.wuenschenswert.intransparent.GifTransKiller
GifTransKiller.color=\#00ff00

Starten mit

java -jar muffinTrans.jar

Dann im Browser (bzw. Systemeinstellungen) den Port localhost:51966 als HTTP Proxy eintragen. Alle transparenten GIFs werden bunt. Die Farbe lässt sich im Betrieb ändern (Edit > Filters > net.wuenschenswert… > Preferences… > Apply).

Sog

Durch seinen Angriff schafft der Angreifer eine Verbindung, die ihn in eine Abhängigkeit bringt. Der Angriff führt mit verfestigtem Willen auf ein Ziel, das der Angegriffene vorgibt – nämlich den Angegriffenen selbst.
Im Aikido nutzen wir das ganz praktisch aus. Die Ausweichbewegung wird so gestaltet, dass der Angreifer sich immer tiefer verstrickt. Um in seinem Angriff erfolgreich zu sein, muss der Angreifer kleine Bewegungen des Verteidigers ausgleichen. Aber wie lange ist eine Bewegung noch klein? Die Ausweichbewegung beginnt ganz sanft und führt zu einer ebenso sanften (und unbewussten) Korrektur beim Angreifer, die ihn aber zunehmend von der ursprünglichen Bahn abbringt. Wenn der Angreifer dennoch am Ball bleibt, befindet er sich irgendwann komplett unter Kontrolle des ursprünglich Angegriffenen. Wenn er den Angriff abbricht, läuft er Gefahr, mit seinem Rückzug auch gleich einen Gegenangriff mitzuziehen, denn die Verbindung besteht ja noch.
Das ist so die Theorie, und das wird auch geübt.
Der Sog ist spürbar. Als Angreifer willst Du greifen, schlagen, halten, und findest nur ein Loch, wirst emporgezogen, gedreht, und alles ohne eine Kraft zu spüren, gegen die Du Dich wehren könntest.
Die Verbindung funktioniert manchmal. Aber wenn der Angreifer zu starr ist, ist es schwer, ihn mitzunehmen. “Du fällst wie eine Eiche”, sagt Ronald zu meinem Trainingpartner, nachdem der voll gegen meinen ausgestreckten Arm gelaufen und umgefallen ist. Entweder braucht man für solche Fälle harte Gegentechniken – wer starr ist, lässt sich ja gut als ganzes “Werkstück” bearbeiten – , oder man muss Wege finden, auch den verhärtetsten Gegner aufnehmen zu können.