8. Juni 2010 | Tags: code, mac, mail, mail.app, mailingliste, mailman, mbox, osx, perl
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 dennoch sehr effizient funktionieren. Dazu gehören beispielsweise Mailinglisten. Vor kurzem habe ich die vcs-home Liste 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 Mailprogramm 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:
#!/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
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…
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 dennoch ((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...)) 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 Mailprogramm ((Apples Mail.app)) 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 Ma
2. Juni 2010 | Tags: bash, book, code, cover, development, ebook, epub, filesharing, filesystem, framework, hdd, id3, internet, ipad, iphone, itunes, linux, mac, monitoring, mp3, mp4, music, nagios, network, opensource, osx, pancake, pdf, perl, pfannkuchen, ping, python, recipe, rezept, shell, sla, software, softwareengineering, statistic, sysadmin, tag, testing, traceroute, unix, video, virtualization, vmware, web, webserver, wiki, windows, xen
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…
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 ou
27. Januar 2010 | Tags: beer, butter, code, deployment, development, git, gmail, harrypotter, imap, mail, perl, recipe, ruby, sync, versioncontrol
Meine delicious.com-Links vom 19. Januar bis zum 27. Januar:
- A successful Git branching model – Not too different from some SVN-structures I know, but enhanced with all the distributed version control stuff and painless branching and merging of git…
- larch – is a tool to copy messages from one IMAP server to another quickly and safely. It’s smart enough not to copy messages that already exist on the destination and robust enough to deal with interruptions caused by flaky connections or misbehaving servers.
Larch is particularly well-suited for copying email to, from, or between Gmail accounts.
- imapsync – is a tool for facilitating incremental recursive IMAP transfers from one mailbox to another. It is useful for mailbox migration, and reduces the amount of data transferred by only copying messages that are not present on both servers. Read, unread, and deleted flags are preserved, and the process can be stopped and resumed. The original messages can optionally be deleted after a successful transfer.
- Harry Potter: Top 10 Butterbeer Recipes – Butterbeer. It warms you up, tastes great, and gives you a frothy moustache!
Meine delicious.com-Links vom 19. Januar bis zum 27. Januar:
A successful Git branching model - Not too different from some SVN-structures I know, but enhanced with all the distributed version control stuff and painless branching and merging of git...
larch - is a tool to copy messages from one IMAP server to another quickly and safely. It’s smart enough not to copy messages that already exist on the destination and robust enough to deal with interruptions caused by flaky connections or misbehaving servers.
Larch is particularly well-suited for copying email to, from, or between Gmail accounts.
imapsync - is a tool for facilitating incremental recursive IMAP transfers from one mailbox to another. It is useful for mailbox migration, and reduces the amount of data transferred by only copying messages that are not present on both servers. Read, unread, and deleted flags are preserved, and the process can be stopped and resumed. The original messages can optionally be deleted after a successful tran
15. Januar 2010 | Tags: 7, apache, apple, bbc, clone, code, dhcp, download, fedora, filesharing, frontrow, ftp, growl, gtd, http, hulu, image, imap, internet, iphone, iplayer, linux, mac, mail, microsoft, netflix, nfs, notification, ntfs, osx, perl, php, prowl, push, pxe, software, softwareengineering, stream, sysadmin, tftp, tv, ubuntu, upload, video, vista, web, webserver, windows, xp, youtube
Meine delicious.com-Links vom 4. Januar bis zum 15. Januar:
- MAP, ACT, WAIK, MDT: Windows 7 im Netz verteilen mit Microsoft-Tools – Schöner Überblick über die von Microsoft bereitgestellten Werkzeuge für die Verteilung von und Migration auf Windows 7.
- FOG – is a Linux-based, free and open source computer imaging solution for Windows XP and Vista that ties together a few open-source tools with a php-based web interface. Fog doesn't use any boot disks, or CDs; everything is done via TFTP and PXE.
- understudy – allows access to streaming video through the Front Row interface of Mac OS X. The user can subscribe to multiple feeds, and select a video to watch from them. Understudy currently supports Hulu, Netflix, YouTube, and to some degree the BBC iPlayer.
- Software Is Hard –
- GhettoPush – A Perl implementation of IMAP push for the iPhone with generic IMAP servers.
- HFS – Nice looking HTTP-Fileserver for Windows.
Meine delicious.com-Links vom 4. Januar bis zum 15. Januar:
MAP, ACT, WAIK, MDT: Windows 7 im Netz verteilen mit Microsoft-Tools - Schöner Überblick über die von Microsoft bereitgestellten Werkzeuge für die Verteilung von und Migration auf Windows 7.
FOG - is a Linux-based, free and open source computer imaging solution for Windows XP and Vista that ties together a few open-source tools with a php-based web interface. Fog doesn't use any boot disks, or CDs; everything is done via TFTP and PXE.
understudy - allows access to streaming video through the Front Row interface of Mac OS X. The user can subscribe to multiple feeds, and select a video to watch from them. Understudy currently supports Hulu, Netflix, YouTube, and to some degree the BBC iPlayer.
Software Is Hard -
GhettoPush - A Perl implementation of IMAP push for the iPhone with generic IMAP servers.
HFS - Nice looking HTTP-Fileserver for Windows.
7. April 2009 | Tags: cloud, code, comic, debian, deutschland, economy, gartner, geek, greenit, grid, heise, insourcing, linux, perl, privacy, regexp, research, security, survey, unix, virtualization, web
3. Februar 2009 | Tags: backup, blog, design, encryption, exif, geotag, gps, https, iphoto, latex, lineal, linux, mac, online, osx, perl, photo, photography, podcast, ruler, security, ssl, web2.0, webdesign, windows, wordpress
12. Dezember 2008 | Tags: ack, apple, bittorrent, children, code, elvish, fonts, geek, git, grep, hardware, internet, keyboard, kinder, light, linux, lotr, mac, osx, p2p, perl, python, regexp, search, unix, versioncontrol, windows
5. November 2008 | Tags: .net, 3d, backup, bash, basic, cad, cake, cam, cli, code, corporate, database, diff, driver, esa, firewall, fonts, geek, google, googleearth, gtd, helvetica, howto, http, iphone, iPod, isight, iss, itunes, kuchen, latex, linux, mac, microsoft, nasa, objective-c, organisation, osx, perl, photo, photography, photoshop, plugin, presentation, proxy, quicklook, quote, recipe, rezept, rss, ruby, science, seam-carving, shell, space, sql, sqlite, ssh, syntax, theme, twitter, typography, unix, usb, video, web, webcam, wikipedia, windows, wissenschaft, wordpress, xcode, zitate
Meine delicious.com-Links vom 27. Oktober bis zum 4. November:
- qlcolorcode – A Quick Look plugin for source code with syntax highlighting
- Checkfilenames – a little perl script to find file names that are longer than a certain number of characters. Very handy…
- Wissenswerkstatt | Ist die Wikipedia zitierfähig? » Der Umgang mit wissenschaftlichen Quellen –
- corkscrew – Corkscrew is a tool for tunneling SSH through HTTP proxies.
- WinMerge – is an Open Source (GPL) visual text file differencing and merging tool for Windows. It is highly useful for determining what has changed between project versions, and then merging changes between versions.
- Small Basic – is a project that's aimed at bringing "fun" back to programming. By providing a small and easy to learn programming language in a friendly and inviting development environment, Small Basic makes programming a breeze. Ideal for kids and adults alike, Small Basic helps beginners take the first step into the wonderful world of programming.
- Helvetica and Alternatives to Helvetica –
- SQLite Tutorial – This article explores the power and simplicity of sqlite3, starting with common commands and triggers.
- JuicePhone – is a Mac application that extracts your iTunes iPhone/iPod touch backups and puts the extracted backup into a chosen folder, which represents the device’s home folder.
- Google SketchUp – Mit Google SketchUp können Sie 3D-Modelle erstellen, ändern und mit anderen gemeinsam verwenden. Und das Programm ist einfacher zu erlernen, als andere 3D Modellierprogramme
- Communote – Hosted Twitter-Clone, targeted at professional users… Maybe worth a look…
- Introducing Prologue – Turning WordPress into some kind of internal Twitter with comments. Interesting…
- MacRuby – is a version of Ruby 1.9, ported to run directly on top of Mac OS X core technologies such as the Objective-C common runtime and garbage collector, and the CoreFoundation framework.
- macam – is a driver for USB webcams on Mac OS X. It allows hundreds of USB webcams to be used by many Mac OS X video-aware applications.
- How to make a presentation with Latex – Using the Beamer package for presentations
- seam-carving-gui – A GUI for Content Aware Image Resizing (Retargeting, Seam Carving). Binaries available for OS X and Windows.
- Kuchen 2.0 oder "5 Minuten Schoko-Kuchen" –
- ISS Now – Utterly amazing live tracking of the ISS in orbit…
Meine delicious.com-Links vom 27. Oktober bis zum 4. November:
qlcolorcode - A Quick Look plugin for source code with syntax highlighting
Checkfilenames - a little perl script to find file names that are longer than a certain number of characters. Very handy...
Wissenswerkstatt | Ist die Wikipedia zitierfähig? » Der Umgang mit wissenschaftlichen Quellen -
corkscrew - Corkscrew is a tool for tunneling SSH through HTTP proxies.
WinMerge - is an Open Source (GPL) visual text file differencing and merging tool for Windows. It is highly useful for determining what has changed between project versions, and then merging changes between versions.
Small Basic - is a project that's aimed at bringing "fun" back to programming. By providing a small and easy to learn programming language in a friendly and inviting development environment, Small Basic makes programming a breeze. Ideal for kids and adults alike, Small Basic helps beginners take the first step into the wonderful world of pro
18. September 2008 | Tags: ajax, apocalypse, apple, armageddon, bash, bluetooth, browser, cern, cli, code, cron, death, earth, endofworld, firefox, fun, geek, git, growl, gtd, handy, howto, ie, internet, isync, javascript, latex, lhc, life, linux, mac, mail, mobile, mozilla, notification, opera, osx, pdf, perl, revisioncontrol, science, sync, txt, unix, visualization, web, web2.0, windows, word
Meine delicious.com-Links vom 12. September bis zum 17. September:
- Dead Man's Switch – Shit happens. Sometimes, it happens to you. If it does happen, you might wish there was something you had told the people around you. How you feel, what you regret, where the money is stashed.
For this, you need a dead man's switch.
- Textverarbeitungen: Dumm und Ineffizient. – Ein Textverarbeitungsprogramm ist ein dummes und äußerst ine?ektives Werkzeug, um Texte für die Kommunikation mit anderen aufzubereiten. Das ist die Behauptung, die ich im Folgenden darlegen werde.
- iSyncIt – is a small menu bar application that allows you to sync your devices more easily and quickly than just using iSync alone. iSyncIt has the ability to automatically turn your bluetooth on and off, saving you power if you are using a laptop. It also has a built in scheduler to allow you to set up automatic syncing of your devices.
- History of the browser user-agent string – Essential reading…
- A re-introduction to JavaScript –
- Snarl – is a notification system for Windows. It displays notifications on-screen for applications which support it. Heavily inspired by growl.
- SendEmail – is a lightweight, command line SMTP email client. If you have the need to send email from a command line, this free program is perfect: simple to use and feature rich. It was designed to be used in bash scripts, batch files, Perl programs and web sites, but is quite adaptable and will likely meet your requirements.
- Has the Large Hadron Collider destroyed the earth yet? – NO
- Git Guide – This page will document git usage making use of newer concepts introduced in git 1.5
- EXIT MUNDI – , a collection of end of world scenarios
Meine delicious.com-Links vom 12. September bis zum 17. September:
Dead Man's Switch - Shit happens. Sometimes, it happens to you. If it does happen, you might wish there was something you had told the people around you. How you feel, what you regret, where the money is stashed.
For this, you need a dead man's switch.
Textverarbeitungen: Dumm und Ineffizient. - Ein Textverarbeitungsprogramm ist ein dummes und äußerst ine?ektives Werkzeug, um Texte für die Kommunikation mit anderen aufzubereiten. Das ist die Behauptung, die ich im Folgenden darlegen werde.
iSyncIt - is a small menu bar application that allows you to sync your devices more easily and quickly than just using iSync alone. iSyncIt has the ability to automatically turn your bluetooth on and off, saving you power if you are using a laptop. It also has a built in scheduler to allow you to set up automatic syncing of your devices.
History of the browser user-agent string - Essential reading...
A re-introduction to JavaS
17. September 2008 | Tags: bash, code, cron, fom, geek, linux, mac, mail, osx, perl, unix, windows
Manchmal hat man ja so etwas: Man muss eine Mail zu einem bestimmtem Zeitpunkt abschicken, hat zu diesem Zeitpunkt aber besseres vor.
Bei mir war dieses Bedürfnis das Ergebnis der Vergabemodalitäten für die Fallstudien an der FOM:
- Man kann sich ein Thema von einer Liste aussuchen
- Um das Thema zugeteilt zu bekommen, muss man sich darum per Mail bewerben
- Start der Vergabe war der 15. September 2008, 00:00:00 Uhr
- Wer zuerst kommt, mahlt zuerst
- Bewerbungen die einen Zeitstempel vom 14. Septemer 2008, 23:59:59 Uhr oder früher tragen werden gelöscht
Jetzt zeigt es sich: Ist man entweder Informatiker und schreibt nen Script, oder BWLer und bleibt eben wach…
Was ich bin dürfte den meisten hier ja klar sein, ausserdem schlafe ich gerne. Also habe ich folgendes getan:
Zuerst mal habe ich eine einfache Textdatei mit dem Bewerbungstext geschrieben und als emailmessage.txt gespeichert.
Zum versenden der Mail benutze ich nicht mein normales Mail-Programm, sondern das PerlScript sendEmail. Das ist sehr einfach in eigene Scripte einzubauen. Einfach runterladen, entpacken und in den $PATH kopieren. Ich habe das Script unter /usr/local/bin/ abgelegt.
SendEmail wird nun aus folgendem Shell-Script heraus aufgerufen:
#!/bin/bash
FROM="me@here.de"
TO="steve@apple.com"
CC="foo.bar@noplace.com, bill.gates@microsoft.com"
SUBJECT="Betreffzeile"
MESSAGE="/path/to/emailmessage.txt"
SMTP="smtpserver.domain.de"
U="username"
PW="passwort"
/usr/local/bin/sendEmail -f "$FROM" -t "$TO" -cc "$CC" -u "$SUBJECT" -o message-file="$MESSAGE" -s "$SMTP" -xu "$U" -xp "$PW"
Am Anfang des Scripts trägt man einfach seine eigenen Daten ein, das sollte selbsterklärend sein. Die CC-Adressen kann man auch weg lassen wenn man nur einen Empfänger hat.
Als SMTP-Server, User und Passwort nimmt man am besten die gleichen Daten, die man auch in seinem Mail-Programm eigetragen hat.
Wenn man das Script dann soweit fertig hat wird es irgendwo gespeichert und per chmod +x ausführbar gemacht, bei mir kam es auf dem Desktop als mymail.sh unter.
Damit man nun nicht doch so lange wach bleiben muss um das Script auszuführen (und hinterher noch total übermüdet zwei Sekunden zu früh Enter drückt), richtet man einen cronjob ein.
Unter einem beliebigen Unix kommt man mit crontab -e zu seiner persönlichen cron-Tabelle, Mac-User können auch das hervorragende Cronnix benutzen. Dort trägt man für den Zeitpunkt 15. September, 00:00 Uhr folgendes ein:
00 00 15 9 * /Users/dennis/Desktop/mymail.sh
Für den 12. Oktober, 14:46 Uhr sähe das ganze so aus:
46 14 12 10 * /Users/dennis/Desktop/mymail.sh
Das Sternchen steht bei beiden jeweils dafür, dass es egal ist welcher Wochentag gerade ist und den Pfad zu dem Script muss man natürlich anpassen.
Und das wars auch schon, wenn der Zeitpunkt dann gekommen ist ruft cron das eingetragene Script auf, dieses wiederum verschickt die Mail mit der Hilfe von sendEmail und alle sind glücklich.
Am nächsten Tag findet man dann ausgeschlafenerweise so eine Mail in seinem Systempostfach, die den erfolgreichen Versand noch einmal bestätigt:
From dennis@macbook.home.xx Mon Sep 15 00:00:03 2008
X-Original-To: dennis
Delivered-To: dennis@macbook.home.xx
From: dennis@macbook.home.xx (Cron Daemon)
To: dennis@macbook.home.xx
Subject: Cron <dennis@macbook> /Users/dennis/Desktop/mymail.sh
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=dennis>
X-Cron-Env: <USER=dennis>
X-Cron-Env: <HOME=/Users/dennis>
Date: Mon, 15 Sep 2008 00:00:03 +0200 (CEST)
Sep 15 00:00:03 macbook sendEmail[4997]: Email was sent successfully!
Damit die Mail nicht in einem Jahr noch mal abgeschickt wird (sofern Maildatei und Script dann noch an Ort und Stelle liegen) sollte man am Schluss nicht vergessen den cronjob auch wieder auszutragen.
Die Scripte sollten auf jedem Unix funktionieren und mit einigen Anpassungen (und installiertem Perl) kriegt man das vielleicht sogar unter Windows hin. Den Versuch überlasse ich aber wirklich gerne jemand anderem…
Manchmal hat man ja so etwas: Man muss eine Mail zu einem bestimmtem Zeitpunkt abschicken, hat zu diesem Zeitpunkt aber besseres vor.
Bei mir war dieses Bedürfnis das Ergebnis der Vergabemodalitäten für die Fallstudien an der FOM:
- Man kann sich ein Thema von einer Liste aussuchen
- Um das Thema zugeteilt zu bekommen, muss man sich darum per Mail bewerben
- Start der Vergabe war der 15. September 2008, 00:00:00 Uhr
- Wer zuerst kommt, mahlt zuerst
- Bewerbungen die einen Zeitstempel vom 14. Septemer 2008, 23:59:59 Uhr oder früher tragen werden gelöscht
Jetzt zeigt es sich: Ist man entweder Informatiker und schreibt nen Script, oder BWLer und bleibt eben wach...
Was ich bin dürfte den meisten hier ja klar sein, ausserdem schlafe ich gerne. Also habe ich folgendes getan:
Zuerst mal habe ich eine einfache Textdatei mit dem Bewerbungstext geschrieben und als emailmessage.txt gespeichert.
Zum versenden der Mail benutze ich nicht mein normales Mail-Programm, sondern das PerlScript se