>

instant-thinking.de

just enough to get you started and leave you confused

Mailmans txt-gzip Archive in Mail.app importieren

| Kommentare

Ich bin seit eineinhalb Jahrzehnten online. Es kommt vor, dass ich gerne Informations-Kanäle nutze, die auf frische Facebook- und Twitter-Adepten ein wenig old fashioned wirken könnten, aber dennoch1 abonniert und da dort aktuell eher wenig Traffic aufläuft, wollte ich einen Blick in die Archive der Liste werfen.

Dort erhält man zwar einen netten Überblick über die verschiedenen Threads, aber ich dachte mir, dass es doch sicherlich auch ganz nett wäre, die alten Artikel in mein Mailprogramm2 zu bekommen. Da das hier das Internet ist, war ich nicht der erste mit dieser Idee. Die Software namens Mailman, die die vcs-home Liste und eine Vielzahl anderer Listen antreibt, stellt die Archive aber leider nur in gezipptem Text zur Verfügung und die meisten Mailprogramme erwarten eher mbox-Dateien oder die Export-Formate anderer Mailprogramme um mehrere Mails zu importieren. So auch Mail.app:

Eine sehr praktische Lösung fand ich bei Uwe Hermann, der den entscheidenden Perl-Schnipsel hier auflas und passenderweise mailman2mbox nannte:

1
2
3
4
5
6
\#!/usr/bin/perl
 while (<STDIN>) {
   s/^(From:? .*) (at|en) /\1\@/;
   s/^Date: ([A-Z][a-z][a-z]) +([A-Z][a-z][a-z]) +([0-9]+) +([0-9:]+) +([0-9]+)/Date: \1, \3 \2 \5 \4 +0000/;
   print;
 }

Mit der Befehlsfolge

1
2
3
wget http://lists.madduck.net/pipermail/vcs-home/2009-April.txt.gz
gunzip 2009-April.txt
./mailman2mbox < 2009-April.txt > 2009-April.mbox

wäre dann der April 2009 schon in das passende Format gewandelt. Während ich schon einen for-Loop zusammenschraubte, um diesen mit der stupiden Tätigkeit des Imports der gesammelten Archive zu betrauen, überkam mich die Idee, den Import einfach ohne die Umwandlung zu probieren. Und siehe da, lo and behold, Mail.app frisst auch die unbehandelte Version anstandslos und überführt sie in eine lokale Mailbox mit dem Namen der importierten Datei:

Von dort aus habe ich die importierten Mails dann per Drag and Drop in den bereits angelegten vcs-home Ordner verschoben.

Exportieren kann Mail.app übrigens auch ganz gut. Einzelne Mails werden per Drag and Drop auf den Schreibtisch als EML-Dateien gespeichert. Mehrere Mails können über Ablage -> Speichern unter… im oben bereits erwähnten Mbox-Format gesichert werden wenn das Format Reine Datei der E-Mail gewählt wird.

Ziemlich vielseitig für ein Programm das dem Betriebssystem beiliegt…

  1. oder vielleicht gerade deswegen… sehr effizient funktionieren. Dazu gehören beispielsweise Mailinglisten. Vor kurzem habe ich die vcs-home Liste worth a post on it’s own, check the vcs-home Wiki for a first impression…

  2. Apples Mail.app

iTunes over SSH

| Kommentare

Ich hatte 2007 schon einmal einen Artikel mit dem selben Titel geschrieben und es ist seitdem nicht weniger praktisch geworden, von unterwegs auf das heimische iTunes zugreifen zu können.

Die gute Nachricht: Nach einem Kommentar von Yann aus dem Januar 2010, der mich auf einen Blogpost bei iharder.net hinwies, konnte das ganze Vorgehen noch ein wenig verschlankt werden und beschränkt sich nun auf ein sehr kleines Shellscript:

1
2
3
4
\#!/bin/sh
dns-sd -P "Home iTunes" _daap._tcp local 3689 localhost 127.0.0.1 "Arbitrary text record" & PID=$!
ssh -C -N -L 3689:127.0.0.1:3689 user@domain.de
kill $PID

Dank dem äusserst vielseitigen1 dns-sd Kommando, spart man sich den Betrieb des Network Beacons und erstellt die Bonjour-Annonce direkt im Script.

Im einzelnen:

Die erste Zeile weist den Interpreter /bin/sh als zuständig für das Script aus. No big deal.

Die zweite Zeile annonciert eine neue Proxy (-P) Bonjour-Ressource des Typs daap auf dem lokalen Port 3689 (Das ist quasi die Standard iTunes Netzwerk Konfiguration) auf dem lokalen Mac (localhost 127.0.0.1). Die entfernte Bibliothek kann genannt werden wie man mag, ich habe hier “Home iTunes” verwendet. Der “Arbitrary Text Record” wird nur aus syntaktischen Gründen benötigt. Dann wird noch die Prozessnummer des Kommandos in der Variable PID gespeichert.

In der nächsten Zeile wird dann der SSH-Tunnel gebaut. Die Option -C schaltet die Kompression ein, -N gibt keine interaktive Shell, sondern schickt den Tunnel in den Hintergrund. Nach -L wird der Tunnel definiert: Port 3689 lokal wird an Port 3689 auf der IP zwischen den Doppelpunkten weitergeleitet. Hier muss die IP des Computers eingesetzt werden, dessen iTunes aus der Ferne erreicht werden soll. Wenn iTunes- und SSH-Server auf der selben Maschine laufen, kann im Script auch die 127.0.0.1 für das Loopback-interface eintragen werden. Danach folgt nur noch der SSH-User und die dyndns oder sonstige Adresse.

Die letzte Zeile killt die Bonjour-Annonce wenn der Tunnel endet (z.B. wenn die IP wechselt während man verbunden ist).

In der Praxis und wenn alle Angaben stimmen, genügt dann die Ausführung des Scripts und die Eingabe des SSH-Passworts2 und man bekommt die heimische iTunes-Bibliothek angezeigt, als wäre man in seinem Heimnetz.

  1. und kaum dokumentierten

  2. Alternativ kann man natürlich auch SSH-Zertifikate für die passwortlose Anmeldung verwenden

QuickLinks vom 12. Mai bis zum 1. Juni

| Kommentare

Meine delicious.com-Links vom 12. Mai bis zum 1. Juni:

  • Localghost - makes it easy to switch development host names to resolve to localhost with a status item (i.e. system tray) that adds / removes entries from /etc/hosts.
  • FitNesse - The fully integrated standalone wiki, and acceptance testing framework.
  • cdf - colorized df with friendly capacity bars. Written in pure C without any external dependencies
  • Droopy - is a mini Web server whose sole purpose is to let others upload files to your computer.
  • Tagr - is an application for Mac OS X that helps you organize your MP3 / M4A (MP4) collection.
  • easymac.sh - is a shellscript which generates global, VMware or Xen MAC-addresses
  • MTR - combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool.
  • calibre - is a free and open source e-book library management application
  • How To Make German Pancakes, Dutch Baby Pancakes - Bring this spectacular breakfast or brunch dish to the table as soon as it comes out of the oven for a lot of oohs and aahs! <br /> A German Pancake is a cross between a soufflé and an omelet - it is a light, airy pancake with sides.
  • Immer im Dienst - Artikel über eine Nagios-Erweiterung zur Überwachung von SLA-Bedingungen. Recht alt und rudimentär…

Content is king

| Kommentare

So geht das hier ja nun nicht weiter. Die FOM ist abgeschlossen, die Hochzeit ist gelaufen. Eigentlich sollte ich doch nun deutlich mehr Zeit haben, hier den ein oder anderen Artikel fertig zu stellen.

In der Queue stehen Entwürfe, ich habe hier Tabs offen die zum Teil schon mehrere Jahre und ein OS-Update überlebt haben und ich erlebe ja tatsächlich auch hin und wieder bloggenswerte Sachen die eben nicht in 140 Zeichen passen. Hier wird mal besser bald ein ganz anderer Wind wehen. Zwei Posts pro Woche sollten doch machbar sein, oder?

I mean, if I don’t get up and start to blog anytime now, I could as well just give up, buy this friggin’ cool iPad thingie and consume the hell out of the web instead of contributing to it.

Oder?

Oder?

QuickLinks vom 26. April bis zum 12. Mai

| Kommentare

Meine delicious.com-Links vom 26. April bis zum 12. Mai:

  • latex-lab - is an open source implementation of a web based LaTeX editor for Google Docs.
  • adsf - A Dead Simple Fileserver is a tiny web server that you can launch instantly in any directory.
  • NConf - NConf is a PHP based web-tool for configuring the Nagios monitoring software. It differs from similar tools by offering enterprise-class features like templates, dependencies and the ability to configure a large-scale, distributed Nagios server topology.
  • 3-2-1 - is a countdown timer for Dashboard (OS X). It displays hours, minutes, and seconds, includes a lap function and is resizable
  • 60 Minimal Apple Desktop Wallpapers -
  • Driver Easy - Auto-Detect & Download your Hardware Drivers, Quickly & Easily.
  • Analyzing I/O performance in Linux -
  • ifconfig.me - Get your current external IP via curl ifconfig.me
  • The Ultimate Wordpress Security Guide -
  • Gas Mask - is simple hosts file manager for Mac OS X Leopard. It enables to edit hosts files and switch between them.

QuickLinks vom 7. April bis zum 21. April

| Kommentare

Meine delicious.com-Links vom 7. April bis zum 21. April:

  • tmux - is a terminal multiplexer: it enables a number of terminals (or windows), each running a separate program, to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.
  • Newsbeuter - is an open-source RSS/Atom feed reader for text terminals. It runs on Linux, FreeBSD, Mac OS X and other Unix-like operating systems. Newsbeuter's great configurability and vast number of features make it a perfect choice for people that need a slick and fast feed reader that can be completely controlled via keyboard.
  • Homebrew - is the easiest and most flexible way to install the UNIX tools Apple didn't include with OS X.
  • Fairmount - is a free tool which allows on-the-fly decryption of DVD content for convenient access. Fairmount does not perform the actual decryption, it simply forwards the data to VLC Media Player, which is used for the decryption.
  • skreenics - is a Mac OS X application that is designed to easily create thumbnails from your videos. You simply drag 'n drop files and folders onto the main screen, and Skreenics will generate the thumbnails the way you asked it!
  • libimobiledevice - is a software library that talks the protocols to support iPhone, iPod Touch and iPad devices on Linux. Unlike other projects, it does not depend on using any existing proprietary libraries and does not require jailbreaking.
  • Flying the SR-71 Blackbird -
  • Fake Name Generator - Generiert Namen und Adressen aus verschiedenen Teilen der Erde. Sehr praktisch, falls mal eine gültige Postleitzahl oder sonst etwas gebraucht wird…
  • pwnat - pronounced "poe-nat", is a tool that allows any number of clients behind NATs to communicate with a server behind a separate NAT with *no* port forwarding and *no* DMZ setup on any routers in order to directly communicate with each other.
  • Ebbinghaus - Digital index cards shareware with LaTeX support for $20. Seems to be quite nice to learn vocabulary, formulas and other things…

Freitags-Füller

| Kommentare

Interessante Sache. Das Textgerüst ist von hier, meine Füller sind kursiv gesetzt.

  1. Ich liebe den Frühling in meiner Nase. Diese Jahreszeit duftet einfach toll.
  2. Corn Flakes mit richtig kalter Milch esse ich gerne zum Frühstück.
  3. Es scheint als würde ich immer einen Grund mir ein iPad zu kaufen suchen.
  4. Eine Tasse Tee ist eine schöne Art den Tag zu beenden.
  5. Ich denke ich habe noch erstaunlich viel für die Hochzeit zu erledigen.
  6. Weiße Schokolade, danach gelüstet es mich in letzter Zeit besonders.
  7. Was das Wochenende angeht, heute Abend freue ich mich auf meiner Couch anzukommen , morgen habe ich Lampen aufhängen bei meiner Schwester geplant und Sonntag möchte ich den verdammten Keller aufräumen!

(via: Blümchen-Guerilla)

Advanced Bash History

| Kommentare

Unix-Shells verfügen, ganz ähnlich wie Browser, über eine History genannte Aufzeichnung der zuletzt eingegebenen Befehle. Mit der Pfeiltaste nach oben können die letzten Befehle durchgescrollt werden. Die komplette Aufzeichnung lässt sich über die Eingabe von history anzeigen und listet die neuesten Befehle am Schluss der Liste auf.

History Basics

Jedem Befehl ist eine Nummer vorangestellt über die sich der jeweilige Befehl durch ein vorangestelltes ! erneut ausführen lässt. So führt etwa die Eingabe von !22 den Befehl mit der Nummer 22 erneut aus. Mit !! wird stets der letzte Befehl noch einmal ausgeführt. Diese Eingaben können auch ergänzt werden. Wurde etwa ein sudo vergessen, lässt sich das schnell mit sudo !! für den letzten Befehl ergänzen. Die history man-page listet eine Unzahl an weiteren Optionen auf, die für den effizienten Einsatz der Shell verwendet werden können. In meiner täglichen Arbeit nutze ich beispielsweise häufig den !$ Operator.

Dieser bezieht sich stets auf das letzte “Wort” eines Befehls. Hatte man etwa eine Datei per cat /etc/somefile.conf angezeigt, ist sie direkt danach per vim !$ editierbar. In der man-page finden sich, wie gesagt, noch viele weitere Möglichkeiten mit der History umzugehen. Es ist aber vor allem wichtig, dass die Shortcuts auch ihren Weg ins Muskel-Gedächtnis finden. Denn nur wenn die verschiedenen Operatoren benutzt werden können ohne groß nachzudenken machen sie auch Sinn.

Mehr History durch .bashrc

Durch Einträge in die ~/.bashrc1 kann man die Fähigkeiten der History erweitern und verbessern.

So ist es normalerweise üblich, dass die History nur nach einem sauberen exit der aktuellen Shell geschrieben wird. Stürzt die Shell ab oder hat man mehrere gleichzeitig geöffnete Fenster mit Shells2 ist die History verloren, oder kommt durcheinander oder steht nicht in allen Fenstern zur Verfügung. Diesem unhaltbaren Zustand ist glücklicherweise sehr einfach abzuhelfen. Durch das Hinzufügen von einer Zeile in der .bashrc wird die History direkt nach jedem Kommando geschrieben und steht in anderen Fenstern zur Verfügung:

1
PROMPT_COMMAND="history -a"

Mein absoluter Lieblingsschnipsel für die History-Erweiterung per .bashrc ist dieser:

1
h() { if [ -z "$1" ]; then history; else history | grep "$@"; fi; }

Hier wird eine Funktion namens h definiert. Diese führt den oben erwähnten Befehl history aus, wenn kein weiterer Parameter angegeben wird. Folgt nach dem h ein beliebiger String wird nach diesem in der Histroy gegrept. So wird etwa ein h cd alle verwendeten cd-Kommandos anzeigen.

Eine sehr praktische Sache.

Soll die Ausgabe der History ausserdem erweitert werden, so ist dieser Schnipsel zu verwenden:

1
export HISTTIMEFORMAT='%Y.%m.%d-%T :: ' HISTFILESIZE=50000 HISTSIZE=50000

Damit wird die Ausgabe der History um Datum und Uhrzeit der Befehle erweitert und ausserdem auf 50.000 Einträge erweitert.

Die vorgestellten Schnipsel können natürlich angepasst oder erweitert werden. Die Größe der History lässt sich auch ohne die Datumsangabe verwenden und es ist natürlich auch möglich nur das Datum oder nur die Uhrzeit zu verwenden…

Update, 09.04.2010

Ein weiterer Schnipsel aus einem Kommentar von Asmus:

1
2
bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward

Hierdurch ist es möglich einen Befehl, etwa cd, zu tippen und dann mit den Pfeiltasten nur durch solche Befehle zu navigieren, die mit cd beginnen. Total super!

Ich habe hier nur die Anführungszeichen korrigiert, diese wurden in Asmus Kommentar typografisch korrekt, aber .bashrc untauglich angezeigt.

  1. Eine versteckte Datei im Homeverzeichnis, Grundlegendes zu dieser Datei hier

  2. Das ist hier quasi ständig der Fall…

Hands on the iPad

| Kommentare

Ich hatte gerade die Gelegenheit, meine Finger zwei Stunden lang über die Oberfläche eines iPads gleiten zu lassen. Viel früher als ich erwartet hatte, aber ein guter Freund hat sich eines aus New York mitbringen lassen und ist dann irgendwie auf die verrückte Idee gekommen, dass mich das ja auch ein bisschen interessieren könnte…

Um es abzukürzen: Ja es ist wirklich, wirklich, wirklich toll. Ich will eins.

Der Bildschirm und der Touchscreen sind großartig. Ich hatte mir ein wenig Sorgen wegen der geringen Auflösung gemacht, aber es schaut wirklich toll aus. Trailer von Filmen aus dem iTunes-Store und HD-Youtube Videos waren ein Traum.

Die iPod-App wirkt eher wie ein iTunes, lässt bisher aber die Möglichkeit des Streamens vermissen. Der Sound ist für ein derart dünnes Gerät überraschend satt, aber nicht überragend.

Spezielle iPad-Apps aus dem Store ließen sich leider noch nicht ausprobieren, der Store ist derzeit aus *.de vom iPad aus schlicht nicht zu erreichen, um einen Proxy einzurichten fehlte leider die Zeit… Aber die nativen Apps von Apple sind super. Kalender, Notizen, Maps. Alles profitiert von der Größe und der fantastischen Bedienung per Fingerstreich.

Das surfen per Mobile Safari gelang großartig. Die vom iPhone bekannte Zoomerei ist auf dem iPad schlicht nicht nötig. Es macht richtig großen Spaß!

instant-thinking.de on iPad

An der Tastatur scheinen sich die Geister allerdings zu scheiden. Ich konnte im Querformat richtig super tippen, Kathi ist damit gar nicht so toll klar gekommen. YMMV.

Jetzt bin ich ja mal auf den Veröffentlichungszeitpunkt und die Preise für den Rest der Welt gespannt. Und dann muss ich mal sehen, ob ich die erste Generation auslassen werde. Leicht wird das vermutlich nicht…

QuickLinks vom 23. März bis zum 6. April

| Kommentare

Meine delicious.com-Links vom 23. März bis zum 6. April:

  • bup - Highly efficient file backup system based on the git packfile format. Capable of doing incremental backups of virtual machine images.
  • diskring - is a Mac OS X utility that displays the disk usage through a handy ring chart effect
  • Hg Init - a Mercurial tutorial by Joel Spolsky including Subversion Re-education
  • PeaZip - Open source file and archive manager for Windows and Linux. Flexibe, portable, secure, and free as in freedom
  • Getting started with retirement on a sailboat - Maybe some day…
  • Snippets - Code Snippet Manager for Mac OS X, $39,95
  • Common MySQL Queries - *Lots* of useful MySQL Queries…
  • reMail - downloads all your email to your iPhone and searches it instantly.