Sonntag, 21. Februar 2010

Projekt Mac Mini: Fotosammlung

Meine Fotos verwalte ich mit iPhoto. Es ist bereits eine stattliche Sammlung von Bildern zusammengekommen. Da die Fotos aus verschiedenen Quellen zusammenfliessen, müssen sie sortiert, gesichtet und nachbearbeitet werden. Da der Mac mini nur an den Fernseher angeschlossen ist, eignet er sich nicht für die Verarbeitung der Bilder. Daher soll dieser Schritt weiterhin über das Macbook laufen. Die Bibliothek nun vom Macbook auf den Mac mini zu bringen, ohne dies manuell machen zu müssen oder die Bilder dort erneut importieren zu müssen, ist die Herausforderung. Ein simples kopieren der iPhoto Library hat nicht funktioniert. Aber wenn man die Library zunächst komprimiert und dann das Archiv verschiebt, lässt es sich erfolgreich auspacken und dann so starten, als ob es immer schon auf dem mini gelegen hätte. Die Pfade sollten natürlich identisch sein, wenn die Bilder auf einer Netzwerkplatte liegen. Soweit also der manuelle Vorgang.

Der einfachste Weg das zu bewerkstelligen ist (mal wieder) rsync. Mit rsync über ssh auf den Mac mini geht das ohnehin wesentlich schneller, da nur die Differenzen übertragen werden. Während das Komprimieren bei mir allein schon 20 Minuten dauerte, ist der gesamte Transfer mit rsync je nach Umfang der Änderungen in wenigen Minuten durch. Damit der Transfer automatisiert ablaufen kann, habe ich einen Schlüssel ohne Passwort angelegt, mit dem die Verbindung zum Mac mini aufgebaut werden kann. Der rsync-Aufruf sieht dann wie folgt aus:

rsync -e "ssh -i /Users/LOGINNAME/.ssh/id_rsa"
--progress -aEh --delete --delete-excluded
--log-file=rsync_iPhotoLib.log
/Users/LOGINNAME/iPhoto Library"
LOGINNAME@Mac-mini.local:/Users/LOGINNAME/Pictures/

Damit dieses Skript regelmäßig läuft habe ich einen stündlichen Eintrag in der Crontab vorgenommen und noch eine Prüfung ergänzt, damit die Übertragung nur angestossen wird, wenn sich auch Änderungen ergeben haben. Dazu wird einfach eine Datei mit "touch" erstellt, wenn ein Update gemacht wird, so dass das Änderungsdatum der iPhoto Library und der Timestamp-Datei einfach verglichen werden können.

Als Kontrolle meldet sich der eingerichtete Cronjob noch mit einem growlnotify-Aufruf, wenn wirklich ein Update durchgeführt wird.

Jetzt könnte man noch prüfen, ob iPhoto gerade läuft, so dass immer nur saubere Stände übertragen werden, aber darum kümmere ich mich vielleicht später. Aktuell läuft das so auch schon sehr gut.

Donnerstag, 18. Februar 2010

Projekt Mac Mini als Media Server

Seit 6 Tagen ziert nun ein Mac mini meinen Fernsehschrank und soll diverse andere Geräte ablösen: Den Gen2vdr (Linux Video Disk Recorder), DVD- und CD-Player sowie den Kabelsalat zum Anschluss von iPod und Notebook an Hifi-Anlage und TV. Meine Erfahrungen und Fortschritte werde ich hier auf meinem Blog zusammenfassen.

Für den TV-Empfang habe ich mich für Elgatos eyeTV-Sat entschieden. Dazu soll das obligatorische FrontRow und nach einem Bericht in 3Sat-Neues auch Boxee die Grundfunktionalität des Mediaservers bereitstellen. Momentan funktioniert das alles noch unzuverlässig und nur mit Hilfe von Steuerung via VNC. Zweimal ist die Elgato Box schon abgestürzt, was mir garnicht gefällt. Nur ein trennen der Stromversorgung half weiter. Gerade die Aufnahme des TV-Programms muss zuverlässig sein.

Um Frontrow zu befüllen sollen die iTunes und iPhoto Library synchronisiert oder zumindest repliziert werden, ohne dass ich das manuell steuern oder gar manuell pflegen muss.

Im Laufe der Zeit kommen bestimmt noch ein paar Features hinzu. Aktuell werden z.B. via Growl mit dem Theme "Musik Video" neue Twitternachrichten eingeblendet.

Donnerstag, 10. September 2009

iPhone OS 3.1 Änderungen

Wie erwartet ist mit dem gestrigen Apple-Event auch die neue iPhone Firmware in Version 3.1 erschienen. Das Update enthält die üblichen von Apple nicht näher beschriebenen Fehlermeldungen und Verbesserungen. Immerhin wird eine Reihe von Änderungen explizit während des Updates angegeben. Ich zitiere mal aus der Update-Info:

- Genius-Empfehlungen für Programme
- Unterstützung für iTunes 9
+ Genius-Mixe
+ Organisieren Sie Ihre Apps direkt in iTunes
+ Optimierte Synchronisierungsoptionen für Musik, Filme, Fernsehsendungen, Podcasts und Fotos
- Einlösen von iTunes Geschenkgutscheinen, Codes und Gutscheinen im App Store
- Anzeigen der verfügbaren Kontoguthaben im App Store und im iTunes Store
- Drahtlos im iTunes Store nach Klingeltönen suchen und sie laden
- Per Mail und MMS erhaltene Videos in "Aufnahmen" sichern
- Beim Trimmen eines Videos auf dem iPhone 3GS gibt es die Option "Als neuen Clip sichern"
- Bessere iPhone 3G Wi-Fi Leistung, wenn Bluetooth aktiviert ist
- Fernsperren des iPhone mit einem Code über MobileMe
- Verwenden der Sprachsteuerung auf dem iPhone 3GS mit Bluetooth-Headsets
- Einfügen von Telefonnummern in den Ziffernblock
- Die Funktionen der Bedienungshilfe sind auf dem iPhone 3GS wahlweise über die Home-Taste verfügbar
- Warnung beim Besuch von betrügerischen Websites mit Safari (Anti-Phishing)
- Verbesserte Synchronisierung mit dem Exchange-Kalender und optimierte Handhabung von Einladungen
- Behebung eines Problems, bei dem einige App-Symbole nicht richtig dargestellt wurden

Das Update ist für alle iPhone-Versionen geeignet.

Dienstag, 25. August 2009

Verteiltes Server-Monitoring: neighborhoodwat.ch

Erst vor wenigen Stunden im Netz aufgetaucht ist neighborhoodwat.ch (NHW). Einige Düsseldorfer haben die Idee eines verteilten Monitoring-Netzwerkes umgesetzt und bieten diesen interessanten Service an. Jeder, der einen Server überwachen lassen möchte, installiert auf einem seiner Server einen Agenten, der vom zentralen Server eine Liste mit URLs bekommt, die er fortan prüft. Aktuell bietet das System noch nicht viele Features. Es gibt z.B keine Historie. Aber mit einem derart verteilten Netz könnte man natürlich künftig interessante Aussagen über Performance und Verfügbarkeit aller Netze ermitteln, über die die Agenten verstreut sind.

Zur Prüfung meines Blogs, wollte ich den Service direkt mal ausprobieren. Zur Anmeldung kann man eine OpenID verwenden, die über viele Anbieter zur Verfügung steht. Da mein Blog über Google und Blogger läuft, lagen diese als IDs am nächsten. Aber leider bekam ich immer nur eine Fehlermeldung: Not found. Über den Twitter-Account der Betreiber (@thehoodwatch, @mutle) erfuhr ich dann, dass es noch Probleme gäbe und nur myOpenID aktuell sicher funktionieren würde.

Mit der OpenID von myOpenID funktionierte die Anmeldung dann ohne Probleme. Nach der Anmeldung landet man auf einer Übersichtsseite, die die überwachte Site und deren Staus anzeigt. Ohne Agenten tut sich hier aber noch nicht viel.

Für die Installation sind laut "Installationsbeschreibung" nur Ruby, Ruby Gems, Cron und natürlich ein NEIGHBORHOODWAT.CH-Account erforderlich. Darüberhinaus müssen noch gcc und g++ installiert sein, wenn Ihr wie ich Ruby selbst bauen wollt. Da auf dem Server noch kein Ruby installiert war, habe ich die Installation von Ruby (basierend auf Kates Gasis Anleitung) aber auf OpenSuSE 11 folgendermaßen durchgeführt:

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p368.tar.gz
tar -xzf ruby-1.8.6-p368.tar.gz
cd ruby-1.8.6-p368/
./configure --prefix=/usr/local --enable-pthread \
--with-zlib-dir=/usr/local \
--with-readline-dir=/usr/local
make
sudo make install


Anschliessend musste noch Rubygems installiert werden. Es wird keine Version vorgegeben, also die aktuelle Version 1.3.5 verwenden:

wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
tar -xzf rubygems-1.3.5.tgz
cd rubygems-1.3.5/
sudo ruby setup.rb


Jetzt sollte die Installation des Agenten folgen. Der liess sich leider auf der referenzierten Github-Seite (Liste der Gems) nicht direkt finden. Wie ich aus den Tweets von @mutle erfuhr, fehlte noch die Freigabe bei Github. Einige Stunden später lag der Agent in Version 0.0.7 via GitHub vor. Die Installation war noch ein wenig zickig, da die eventmachine in einer falschen Version gezogen wird, wenn man direkt den Agenten holen will. Deshalb zunächst die Gems eventmachine und json installieren:


sudo gem install eventmachine
sudo gem install json
sudo gem install mutle-neighborhoodwatch-agent \
--source=http://gems.github.com/


Über die WebSite von NHW musste nun noch der neuen Agent angelegt und über "Instructions" die ID des Agenten abgeholt werden. Nachdem die Gems installiert waren, konnte nun der Agent aufgerufen und die ID übergeben werden. Das funktionierte auf Anhieb. VORSICHT: Nach dem ersten erfolgreichen Aufruf kann man die ID nicht mehr über die WebSite von Neighborhoodwat.ch abrufen.

neighborhoodwatch-agent <agent id>

Nun noch der Eintrag in die crontab:

*/5 * * * * neighborhoodwatch-agent <agent id>

Der Prozess muss nicht mit Root-Rechten gestartet werden, so dass die ganze Installation mit einem unpreviligierten User möglich ist.

Bislang funktioniert die Benachrichtigung über Störungen nur per eMail. Ich hoffe, das die Ergänzung um Twitter als Meldekanal in Kürze nachgereicht wird.