How to export (or rather extract) e-mail addresses from Apple Mail

Problem:

You have plenty of e-mails stored in Apple Mail but you have not yet created an address book which contains all e-mail addresses that have been used once ore more. Additionally, you need a CSV file with all these e-mail addresses to be able to edit or just use them in Excel or any other software.

 

Solution:

This tutorial has been tested on Mac OS X 10.8 (Mountain Lion). To proceed with the first steps you can choose between two methods. Method 1 should work for most cases. Method 2 is for those users who imported old e-mails into Apple at some point in the past, e.g. in cases where you resetted your system, bought a new machine or installed a new OS. If you are not sure which method applies for you just use both one after the other. This may lead to duplicate entries in the address book but you can simply remove them by using a built-in command from the „Card“ menu.

Method 1:

  • Start Apple Mail
  • „Window“ menu, Last recipients
  • Select all addresses (CMD+A)
  • Button: Add to contacts

Method 2:

  • Start Apple Mail
  • „Plus“ button (bottom left): Create smart mailbox
  • Rule: Receive all e-mails before [Date in the future]
  • Tick checkbox at „Include sent e-mails“
  • After a short while (if Spotlight is up-to-date) you will see all your e-mails in the smart mailbox
  • Select all e-mails (CMD+A)
  • „E-mail“ menu, Add senders to contacts

Now you have stored all e-mail addresses from which you ever received1 an e-mail in Apple’s address book. Unfortunately, Apple does not provide any export function in its address book application. So the first part of this tutorial describes a workaround how to convert all address book entries into CSV by using the e-mail program Mozilla Thunderbird.

  • Start Apple Contacts (= address book)
  • Select all entries (CMD+A)
  • „File“ menu, Export, Export vCard
  • Start Mozilla Thunderbird
  • Open address book in Thunderbird
  • „Extra“ menu, Import
  • Choose the vCard file you created before
  • Entries are being imported
  • „Extra“ menu, Export, Choose format tabulator-separated

Now you have all e-mail addresses as CSV and you can edit or just use them in Excel or any other software.

______________
1) This method does not handle e-mail addresses from which you have never received an e-mail but only sent one or more e-mails to. Only method 1 takes care of this circumstance. Another solution is to use an Apple Script that we wrote. If you are interested in this script just send us an e-mail.

Podcast Folge 4: Comeback 2014

Podcast jetzt anhören:

kaffeetalk-Folge04-2014-06-05.mp3

In der 4. Folge unseres kaffeetalk-Podcasts feiern wir unser Podcast-Comeback nach vier Jahren Funkstille – und vor allem uns selbst. Neben interessanten Gesprächen rund um Kaffeegenuss, Sittenverfall in der Gastronomie und der neuen Kofferkollektion von Roberto Geissini besprechen wir natürlich auch wieder einige ernsthaftere Themen aus der IT-Welt, u.a. den Einsatz von WYSIWYG-Editoren in WordPress, welche Kriterien beim MacBook-Kauf für uns eine Rolle spielen und schließlich einige Worte zu Apples neuem Betriebssystem Mac OS X Yosemite.

Lieblingscafé Osnabrück

Lieblingscafé Osnabrück

 

Shownotes zur 4. Folge unseres kaffeetalk-Podcasts:

lieblingscafe-osnabrueck3

lieblingscafe-osnabrueck2

Welcher Bäcker hat feiertags geöffnet in Osnabrück?

WP Google Maps Error

In order for your map to display, please make sure you insert your Google Maps JavaScript API key in the Maps->Settings->Advanced tab.

Diese Bäckereien haben an Feiertagen in Osnabrück geöffnet:

  • Backwerk, Johannisstraße 76, 49074 Osnabrück
  • Niemeyer, Hannoversche Straße 99, 49084 Osnabrück
  • Coors (im Hauptbahnhof), Theodor-Heuss-Platz 2, 49074 Osnabrück

Alle Angaben sind Erfahrungswerte und ohne Gewähr – daran sieht man schon, die Situation ist kritisch.

Die Ausgangssituation

An Feiertagen, zum Beispiel Christi Himmelfahrt, aber auch an Pfingsten (Pfingstsonntag und Pfingstmontag), am 1. Mai oder am Tag der deutschen Einheit (vermutlich auch an Ostern und Weihnachten), ist man in Osnabrück immer wieder auf der Suche nach einer Bäckerei. Unter Bäckerei verstehen wir ein Ladengeschäft mit Verkauf von Backwaren, im Speziellen dem Verkauf von belegten Brötchen und Kaffeespezialitäten wie Kaffee oder Cappuccino. Heute, an einem Feiertag, irrten wir wieder stundenlang durch die Osnabrücker Innenstadt in der Illusion, einen Bäcker zu finden, der es mit den Öffnungszeiten gut meint. Mit Erschrecken stellten wir fest, dass das Internet hier keine korrekten Informationen liefert. Damit nun Osnabrücker an Feiertagen einen Bäcker finden, der geöffnet hat, schreiben wir diesen Beitrag. Denn oft stellt man sich schließlich die Frage: „Welcher Bäcker hat heute offen?“ oder, wie man umgangssprachlich sagt, „Welcher Bäcker hat heute auf?“

 

Welche Bäcker haben sonntags in Osnabrück geöffnet?

An Sonntagen verhält es sich ähnlich wie an Feiertagen: Es ist sehr schwierig, vor allem in der Osnabrücker Innenstadt, einen Bäcker zu finden, der geöffnet hat. Unsere Erfahrung hat gezeigt, dass an Sonntagen viele Bäckereien tendenziell regelmäßiger ihre Türen öffnen als an Feiertagen. Recht sicher geöffnet haben sonntags folgende Bäckereien in Osnabrück:

  • Backwerk, Johannisstraße 76, 49074 Osnabrück
  • Niemeyer, Hannoversche Straße 99, 49084 Osnabrück
  • Coors (im Hauptbahnhof), Theodor-Heuss-Platz 2, 49074 Osnabrück
  • Wellmann, Weidenstraße 20 (Weidencarree), 49080 Osnabrück
  • Wellmann, Herrmann-Ehlers-Straße 3, 49082 Osnabrück (Sutthausen)
  • Wellmann, Lotter Straße 58-61, 49078 Osnabrück
  • Brinkhege, Arndtstraße 12, 49078 Osnabrück
  • Brinkhege, Roonstraße 1, 49076 Osnabrück

Nachtrag

Vermutlich verhält es sich in anderen Städten, in die wir hin und wieder reisen und in denen wir uns auch fragen, welche Öffnungszeiten für Bäckereien dort an Sonntagen oder an Feiertagen gelten, ähnlich – zum Beispiel in Hannover, Bremen und Hamburg (um einige norddeutsche Beispiele zu nennen) oder auch in Köln, Frankfurt, Wiesbaden, Freiburg, München und Berlin.

MySQL mit unixODBC unter Ubuntu 14.04 einrichten

Es existieren jede Menge Tutorials, in denen beschrieben wird, wie man ODBC mit MySQL unter Linux zum Laufen bekommt. Leider sind die meisten davon nicht als Tutorial konzipiert und die darin beschriebenen Lösungen arbeiten oft weder zuverlässig noch stabil.

Die folgende Variante wurde auf einem Ubuntu-14.04-Server (MySQL 5.5.37, Apache 2.4.7, PHP 5.5.9, unixODBC 2.2.14) getestet und läuft bisher stabil.

  • Stellen Sie sicher, dass Sie Root-Rechte auf Ihrem System besitzen, entweder indem Sie sich als Root-User anmelden:
    su root

    oder indem Sie das „sudo“-Präfix vor jedem Befehl auf der Konsole notieren:

    sudo ls
    sudo vi
    ...
  • Installieren und konfigurieren Sie MySQL:
    apt-get install mysql-server mysql-client
  • Installieren Sie die ODBC-Treiber:
    apt-get install libmyodbc unixodbc-bin
  • Ermitteln Sie das Verzeichnis, in dem die ODBC-Treiber abgelegt sind:
    find / -name 'lib*odbc*.so'
    
    OUTPUT (BEISPIEL):
    /usr/lib/i386-linux-gnu/odbc/libodbcnnS.so
    /usr/lib/i386-linux-gnu/odbc/libodbctxtS.so
    /usr/lib/i386-linux-gnu/odbc/libodbcdrvcfg1S.so
    /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so
    /usr/lib/i386-linux-gnu/odbc/liboraodbcS.so
    /usr/lib/i386-linux-gnu/odbc/libodbcpsqlS.so
    /usr/lib/i386-linux-gnu/odbc/liboplodbcS.so
    /usr/lib/i386-linux-gnu/odbc/libodbcminiS.so
    /usr/lib/i386-linux-gnu/odbc/libmyodbc.so
    /usr/lib/i386-linux-gnu/odbc/libodbcdrvcfg2S.so
  • Erstellen Sie Ihre eigene ODBC-Installationsdatei:
    vi /etc/odbcinst.ini
  • Fügen Sie dies in Ihre odbcinst.ini ein:
    [myodbc_mysql]
    Description     = ODBC for MySQL
    Driver          = /usr/lib/i386-linux-gnu/odbc/libmyodbc.so
    Setup           = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so
    UsageCount      = 1
  • Ermitteln Sie das MySQL-Socket-Verzeichnis:
    mysqladmin -u root -p version
    
    AUSGABE (BEISPIEL):
    Server version 5.5.37-0ubuntu0.14.04.1
    Protocol version 10
    Connection Localhost via UNIX socket
    UNIX socket /var/run/mysqld/mysqld.sock
    Uptime: 7 hours 14 min 15 sec
  • Erstellen Sie Ihre ODBC-Konfigurationsdatei:
    vi /etc/odbc.ini
  • Fügen Sie dies in Ihre odbc.ini ein:
    [myodbc_mysql_dsn]                         # Ihr System-DSN
    Description = description of your DSN
    Driver      = myodbc_mysql                 # benutzerdef. Treibername
    Server      = localhost                    # oder ggf. externe IP
    Port        = 3306                         # oder ggf. benutzeref. Port
    Socket      = /var/run/mysqld/mysqld.sock  # Socket, siehe oben
    Database    = mysqldb1                     # MySQL DB-Name oder leer
    Option      = 3
    ReadOnly    = No
  • Installieren Sie den ODBC-Treiber:
    odbcinst -i -d -f /etc/odbcinst.ini
  • Installieren Sie Ihren System-DSN:
    odbcinst -i -s -l -f /etc/odbc.ini
  • Testen Sie, ob Ihr System-DSN erfolgreich installiert wurde:
    odbcinst -s -q
    
    AUSGABE (BEISPIEL):
    [myodbc_mysql_dsn]
  • Testen Sie, ob Sie per ODBC eine Verbindung mit Ihrer MySQL-Datenbank herstellen können:
    isql -v myodbc_mysql_dsn MYSQLUSER MYSQLUSERPASSWORD
    
    AUSGABE (BEISPIEL):
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+

How to setup and configure MySQL with unixODBC under Ubuntu 14.04

There are a lot of tutorials out there describing how to get ODBC work with MySQL under Linux. Unfortunately, most of them were not mentioned to be tutorials and their solutions often do not work reliably and stable.

The following has been tested on a Ubuntu 14.04 machine (MySQL 5.5.37, Apache 2.4.7, PHP 5.5.9, unixODBC 2.2.14) and works stable until now.

  • Make sure you have root access to your system, either by switching to root user:
    su root

    or by adding the „sudo“ prefix to each command:

    sudo ls
    sudo vi
    ...
  • Install and configure MySQL:
    apt-get install mysql-server mysql-client
  • Install ODBC drivers:
    apt-get install libmyodbc unixodbc-bin
  • Lookup the ODBC driver’s location:
    find / -name 'lib*odbc*.so'
    
    OUTPUT (EXAMPLE):
    /usr/lib/i386-linux-gnu/odbc/libodbcnnS.so
    /usr/lib/i386-linux-gnu/odbc/libodbctxtS.so
    /usr/lib/i386-linux-gnu/odbc/libodbcdrvcfg1S.so
    /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so
    /usr/lib/i386-linux-gnu/odbc/liboraodbcS.so
    /usr/lib/i386-linux-gnu/odbc/libodbcpsqlS.so
    /usr/lib/i386-linux-gnu/odbc/liboplodbcS.so
    /usr/lib/i386-linux-gnu/odbc/libodbcminiS.so
    /usr/lib/i386-linux-gnu/odbc/libmyodbc.so
    /usr/lib/i386-linux-gnu/odbc/libodbcdrvcfg2S.so
  • Create your custom ODBC installation file:
    vi /etc/odbcinst.ini
  • Put this in your odbcinst.ini:
    [myodbc_mysql]
    Description     = ODBC for MySQL
    Driver          = /usr/lib/i386-linux-gnu/odbc/libmyodbc.so
    Setup           = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so
    UsageCount      = 1
  • Lookup the MySQL socket path:
    mysqladmin -u root -p version
    
    OUTPUT (EXAMPLE):
    Server version 5.5.37-0ubuntu0.14.04.1
    Protocol version 10
    Connection Localhost via UNIX socket
    UNIX socket /var/run/mysqld/mysqld.sock
    Uptime: 7 hours 14 min 15 sec
  • Create your ODBC configuration file:
    vi /etc/odbc.ini
  • Put this in your odbc.ini:
    [myodbc_mysql_dsn]                         # this is your system DSN
    Description = description of your DSN
    Driver      = myodbc_mysql                 # custom driver name
    Server      = localhost                    # or external IP if needed
    Port        = 3306                         # or custom port if needed
    Socket      = /var/run/mysqld/mysqld.sock  # socket, see above
    Database    = mysqldb1                     # MySQL DB name or empty
    Option      = 3
    ReadOnly    = No
  • Install the ODBC driver:
    odbcinst -i -d -f /etc/odbcinst.ini
  • Install your system DSN:
    odbcinst -i -s -l -f /etc/odbc.ini
  • Test if your system DSN was installed successfully:
    odbcinst -s -q
    
    OUTPUT (EXAMPLE):
    [myodbc_mysql_dsn]
  • Test if you can connect to your MySQL database via ODBC:
    isql -v myodbc_mysql_dsn MYSQLUSER MYSQLUSERPASSWORD
    
    OUTPUT (EXAMPLE):
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+

register_globals in PHP 5.5 nutzen

Unter reinen Sicherheitsaspekten lohnt es sich wohl kaum, über die Vor- und Nachteile von register_globals in PHP zu diskutieren. Es war eigentlich nur eine Frage der Zeit, bis das PHP-Team dieses umstrittene Feature komplett entfernen würde – und das tat es schließlich auch, register_globals ist seit PHP 5.3 „deprecated“ und wurde mit Version 5.4 ganz entfernt.

Dennoch gibt es einige wenige Situationen, in denen man gerne auf die aktuellste PHP-Version (> 5.4) updaten möchte, ohne aber die register_globals-Funktionalität zu verlieren – zum Beispiel dann, wenn man den Quellcode nicht verändern darf und das Script register_globals = on voraussetzt. Oder aber für den Fall, dass es schlichtweg einen zu hohen (unbezahlten) Aufwand bedeuten würde, alle Stellen im Code zu finden und entsprechend zu überarbeiten.

Unter der Annahme, dass man einschlägige Sicherheitsgrundsätze beachtet, bringt dieser Workaround die register_globals-Funktionalität für Versionen >= PHP 5.4 zurück:

  • Leben Sie die leere Datei register_globals.php in Ihrem PHP-Includeverzeichnis an (z.B. /usr/share/php).
  • Fügen Sie diesen Quellcode in die Datei register_globals.php ein:
    <?php extract($_REQUEST); ?>
  • Wenn Sie weitere Variablen global verfügbar machen wollen, fügen Sie einfach weitere globale Arrays hinzu, deren Elemente per extract() in globalisierte Variablen umgewandelt werden, z.B.:
    <?php
    extract($_REQUEST);
    extract($_SERVER);
    extract($_SESSION);
    ?>
  • Fügen Sie diese Anweisung am Ende Ihrer php.ini ein:
    auto_prepend_file = 'register_globals.php'
  • Starten Sie Apache neu:
    sudo /etc/init.d/apache2 restart

    oder

    sudo apachectl restart

Using register_globals in PHP 5.5

From a security point of view, it’s not worth discussing the benefits and risks of using register_globals in PHP. It was just a matter of time the PHP team would completely remove this controversial feature. And so they did, register_globals had been deprecated as of PHP 5.3 and removed as of PHP 5.4.

Anyway, there are a few situations in which you would like to update to the latest PHP version (> 5.4) but not get lost of the register_globals feature – e.g. when you are not allowed to change the code of a script that requires register_globals = on or if it’s just too much (unpaid) work to find and edit all related code parts.

Assuming that you follow common security principles, this workaround will bring back register_globals functionality to PHP 5.4+:

  • Create an empty file register_globals.php in your PHP include directory (e.g. /usr/share/php).
  • Put this code into register_globals.php:
    <?php extract($_REQUEST); ?>
  • If you want to make more variables become global then simply add other global arrays, e.g.:
    <?php
    extract($_REQUEST);
    extract($_SERVER);
    extract($_SESSION);
    ?>
  • Add this directive to the end of your php.ini:
    auto_prepend_file = 'register_globals.php'
  • Restart Apache:
    sudo /etc/init.d/apache2 restart

    or

    sudo apachectl restart

Philips Senseo Milchaufschäumer CA6500

Nach unserem letzten leider wenig erfolgreichen Milchaufschäumer-Experiment mit dem Akkubohrschrauber haben wir nun einen zweiten Versuch mit einem professionellen Milchaufschäumer von Philips (Philips Senseo Milchaufschäumer CA6500/600) gewagt.

Das Ergebnis ist hervorragend und der damit zubereitete Milchschaum besteht den Zuckertest mit Bravour. Die Kaffeelandschaft in der Agentur ist mit diesem tollen Gerät zur Freude aller wieder einmal vielfältiger geworden.

Aber seht selbst:

Notizen aus Apple Notizen-App (Notes) aus lokalem Time-Machine-Backup wiederherstellen

Wer viel mit der Notizen-App unter Mac OS arbeitet, kennt auch die Nachteile dieser an sich nützlichen Anwendung. Dennoch gibt es zwei Nachteile, die uns persönlich bei der Verwendung dieser Anwendung immer wieder negativ auffallen. Insbesondere steigt der Stresslevel, wenn man auf einmal keine Inhalte beim Öffnen der Notizen-App mehr vorfindet.

Notizen unter Mac OS X

Erstens kann man mit der integrierten Suche nur in ganzen Notizen-Blättern nach Begriffen suchen. Man findet also heraus, dass in der 200-zeiligen Gesprächsnotiz irgendwo das gesuchte Wort vorkommt. Zweitens ist das Thema Datensicherung wohl eher vernachlässigt worden. Bei Kalender- und Erinnerungen-App gibt es schließlich auch eine Möglichkeit, manuell Sicherungen anzulegen. Bei der Notizen-Anwendung gibt es diese nicht, was man inzwischen darauf zurückführen kann, dass diese Anwendung nicht mehr als lokale Anwendung gedacht ist, sondern als gerätespezifischer Client für die Darstellung in der iCloud synchronisierter Notizen-Daten. Allerdings reicht ein falscher Klick oder Tastendruck und ein Notizen-Blatt ist weg. Im schlimmsten Fall ist auch mal alles weg, wenn man vorher alles markiert hatte, weil man sich den Inhalt eines Notizen-Blattes in einen Texteditor verschoben hatte, um dort nach Begriffen zu suchen und dann die um diese Notizen bereinigte Notizen-Blattinhalte wieder zurückzubewegen in die Notizen-App.

Update 18.05.2013:

Innerhalb von Notizen-Blättern in der Notizen-Anwendung unter Mavericks (10.9.3) lässt sich mit CMD + F nun auch anschaulich suchen (Hervorhebung von Suchwort-Vorkommen) und sogar ersetzen.

Notizen wiederherstellen aus Time-Machine-Backup

So, nun zum eigentlichen Thema: Wenn man versehentlich die Inhalte der Notizen-Blätter gelöscht hat und die Anwendung geschlossen hat, kann man die Notizen aus dem lokalen Time-Machine-Backup wiederherstellen? Ja, das man kann. Wie man unter http://www.macuser.de/forum/thema/655856-HELP!-Wie-Notiz-wiederherstellen-aus-Notizen-app sehr schön nachlesen kann, finden sich unter Library/Containers/com.apple.Notes/Data/Library/Notes die folgenden Dateien:

  • NotesV1.storedata
  • NotesV1.storedata-shm
  • NotesV1.storedata-wal

Diese kann man einfach zurücksichern. Dabei sind die Hinweise im genannten Forenbeitrag zu Seiteneffekten bei der Nutzung der iCloud bitte zu beachten!

Sonderfall Mavericks

Wenn man nach der Installation von Mavericks keine Notizen mehr in seiner Notizen-Anwendung vorfindet, kann man die Inhalte auf ähnliche Weise wiederherstellen. Der Unterschied dabei zum Wiederherstellen ist, dass die Inhalte nicht weg sind. Sie sind immer noch auf der Festplatte unter Library/Containers/com.apple.Notes/Data/Library/Notes. Nur finden sich dort nun folgende Dateien:

  • NotesV1.storedata
  • NotesV1.storedata-shm
  • NotesV1.storedata-wal
  • NotesV2.storedata
  • NotesV2.storedata-shm
  • NotesV2.storedata-wal

Die Vorgehensweise jetzt ist super einfach. Dateien in einem anderen Ordner wegsichern, die NotesV2…-Dateien löschen und die NotesV1…-Dateien in die entsprechenden NotesV2…-Dateien umbenennen. Danach ist alles wieder da und weiter geht’s mit der Notizenverwaltung in der neuen Optik der Anwendung unter Mavericks.

Milch aufschäumen mit dem Akkuschrauber in der Agentur

In Ermangelung eines professionellen Milchaufschäumers improvisierten wir bei der Herstellung eines Cappuccinos mit dem agentureigenen Akkuschrauber.

Das Ergebnis war leider ziemlich ernüchternd: