Abgleich Termine, Kontakte und Mails mit dem iPad, iPhone oder iPod touch

Wer Termine und Kontakte immer bequem dabei haben möchte und auch Outlook nutzt hat die folgenden Optionen:

1. Mobile Me von Apple

Kostenpflichtige Lösung (79€/Jahr), funktioniert über WLAN und auch auf mehreren Geräten. Ein kostenfreier 60 Tage Test wird angeboten. http://www.apple.com/de/mobileme/

2. via iTunes synchronisieren

kostenlos, aber du musst das Gerät zum synchronisieren immer an den Laptop anschliessen. Über eine “gejailbreaktes” Gerät kann man auch auf Wifi-Sync zurückgreifen: http://getwifisync.com/

3. via Exchange-Protokol/Outlook

Exchange ist das Abgleichprotokol von Outlook, hier gibt es Anbieter die dir ein Konto wie dein E-Mailpostfach einrichten und für den Abgleich bereit stellen. Kostenfrei z.b. Google Mail, kostenflichtig zum Beispiel:

Ich nutze selbst Google Mail mit dessen Exchange-Features, kostenlos für den Abgleich. Am einfachsten ist Apple Mobile Me. Kostenfrei, aber etwas unbequem ist der Abgleich via iTunes. Wenn man einen Jailbreak einsetzt ist Wifi-Sync auch eine Option.

Veröffentlicht unter Allgemein | Verschlagwortet mit , , , , , , , , | Kommentare deaktiviert

APE – Authentifizierung gegen eine Web-Anwendung

APE bietet auch ein Session-Handling. Über das Modul Core/Session.js wird der Verbindungsstatus im Cookie auch über den Reload hinweg gesichert und wiederhergestellt.

Zur Authentifizierung wird eine Token an den APE-Server gesandt, der diese dann via Post-Request an die Web-Anwendung verifiziert und die entsprechenden Benutzerdaten zurück gibt und als private/öffentliche Daten zum Benutzer-Objekt speichert.

Konkreter Anwendungsfall

Die Benutzeranmeldung erfolgt über die Web-Anwendung. In einem Bereich der Webseite, der nur nach Anmeldung zu erreichen ist, soll die Identität des Benutzers in die die Session der APE-Verbindung übernommen werden. Dazu erfolgt am Anfang der APE-Sitzung eine einmalige Authentifizierung gegenüber der Web-Anwendung.

Implementierung  Javascript-Client

Implementierung Javascript- Servermodul

Schnittstelle der Web-Anwendung

Die Web-Anwendung hat einen Login-Adresse, an die das Token gepostet wird. Als Rückgabe sendet die Web-Anwendung JSON-Daten, die als User-Attribute für die weitere Sitzung genutzt werden.

Neue Session

  1. Der Client sendet mit Hilfe des APE-Frameworks den “Connect”-Befehl an den APE-Server. Als Parameter enthält der Request das Authentifzierungstoken
  2. Der APE-Server leitet via HTTP-Request an die Web-Anwendung die Authentifizierung ein.
  3. Die Web-Anwendung antwortet mit einem JSON-Objekt, das die benötigten User-Daten enthält. Fehler werden über die bekannten HTTP-Status-Codes gesandt.
  4. Nach erfolgreicher Authentifizierung setzt der APE-Server die nötigen User-Daten (öffentliche/private)
  5. Die aktualisierten User-Daten werden zurück zum Client gepushed
  6. Der Client aktualisiert den Status und verwendet die gesetzten Daten

Bestehende Session

  1. Der Client hat eine aktive Session, die clientseitig in Cookies gespeichert wird.
  2. Der Client sendet die Session-Daten und stellt so die aktive Sitzung wieder her
  3. Innerhalb der bestehenden Session sind alle Daten ohne weiteren Backend-Request verfügbar und so kann der Client seine Status-Anzeige, weitere Auflistungen wie aktive Benutzer/Buddies, Gruppen- und Einzel-Dialoge setzen

Zusammenfassung

Mit wenigen Zeilen Programmcode kann man eine Session für die Verbindungen etablieren und die Benutzerdaten aus dem Backend verwenden. Im nächsten Teil wird die Verwendung der Channels zur Statusanzeige vorgestellt.

Veröffentlicht unter Allgemein | Verschlagwortet mit , , , , , , , , | Hinterlasse einen Kommentar

Updates/Wartung auf vielen Linux-Servern gleichzeitig – cssh

Neben eigenen Servern mit einigen virtuellen Maschinen, betreue ich auch einige weitere Server. In der Realität ist der Ablauf des Updaten und Warten auf vielen Systemen identisch. Vor allem wenn man viele virtuelle Maschinen einsetzt.

Zur Vereinfachung kann man cssh einsetzten. Nach der Installation via CPAN, kann man die Verbindung zu beliebig vielen Servern herstellen und dann für alle das gleiche Kommando absetzen.  Auch kann man manuell in eines der Sitzungsfenster eingreifen und Korrekturen oder nötige Zwischenschritte bequem einschieben. Auch CTRL-Befehle für z.b. Screen werden korrekt übertragen.

Über die Konfiguration-Datei kann man Server-Verbünde vor definieren und so für den täglichen Einsatz vorhalten.

Ablauf des Server-Updates bei Gentoo

Dazu werden die Pakete sys-process/lsof, app-portage/gentoolkit, app-misc/screen und die Installation von cssh vor ausgesetzt.

  1. cssh first.server.com second.server.com last.server.com Login auf allen Servern gleichzeitg
  2. screen -S emerge eigene Screen-Session starten, um Verbindungsabbrüchen vorzubeugen
  3. emerge –sync –quiet aktualisiert den lokalen Paketindex
  4. emerge -uDa world zeigt an welche Pakete aktualisiert werden, nach Bestätigung werden, diese Pakete installiert
  5. CTRL – a + c startet ein weiteres Screenfenster für die Anzeige des emerge-Logs via tail -f /var/log/emerge.log
  6. CTRL – a + n wechselt nach Abschluss zum ersten Screenfenster zurück
  7. dispatch-conf aktualisiert die nötigen Konfigurationsdaten der aktualisierten Pakete und erlaubt einen manuellen Merge dieser
  8. revdep-rebuild -i alle Abhängigkeiten prüfen und ggf. Pakete nochmals aktualisieren
  9. lsof | grep tmp zeigt alle Prozesse, deren externe Bibliotheken aktualisiert und neugestartet werden müssen.
Veröffentlicht unter Allgemein | Verschlagwortet mit , , , , , , | Kommentare deaktiviert

APE – AJAX Push Engine als Framework für ein Chatsystem an einer Catalyst-App

Für ein Projekt steht die Entwicklung eines Chat-Systems an. Bei der Evaluierung der möglichen Systeme, habe ich mich für APE entschieden. Andere Optionen wäre ein XMPP-basiertes System (Openfire,ejabberd) oder IRC/XMPP (Psyc) mit entsprechender Weboberfläche.

Vorteile von APE

  • Vollständig Open-Source
  • Gute Dokumentation
  • Viele Beispiele
  • Serverseitige Module können in JS geschrieben werden
  • Mootools-Kompatibel
  • Perl-Module vorhanden (http://search.cpan.org/dist/Net-APE/)
  • Ständige und aktive Weiterentwicklung
  • Freundlicher IRC-Channel auf freenode #ape-project
  • JSON-basiertes Protokoll

Für die Umsetzung wurde die klare Trennung der einzelnen Komponenten empfohlen. Man sollte den Chat problemlos an eigene Webanwendungen ankoppeln können. Nur die Authentifizierung erfolgt über das Servermodul von APE zur Webanwendung. Nach erfolgreicher Authentifizierung erhält der User der APE alle nötigen Daten für den weiteren vollständig getrennt ablaufenden Chat/Onlinestatus.

Innerhalb von APE müssen grob die folgenden Funktionen umgesetzt werden:

  1. Authentifizierung gegen das Backend via HTTP und Zuordnung der Daten zur APE-Session des Benutzers
  2. Setzten des persönlichen Online-Status mit Information an alle Buddies
  3. Dialog mit einem zweiten Benutzer im System
  4. Teilnahme an einen Gruppen-Chat -> Chatraum
  5. Moderierter Chat für VIP/Promies
  6. Chat-Roulette – Zufällige Auswahl einen Dialogpartners
  7. Auflistung aller aktiven und sichtbaren Benutzer im System
  8. Anzeige der aktiven Mitglieder und deren Aktionen auf einer Weltkarte (Privatsphäre beachten)

In den nächsten Tagen folgenden Details zur Umsetzung der einzelnen Funktionen.

Veröffentlicht unter Allgemein | Verschlagwortet mit , , , , | Kommentare deaktiviert

Start des Blogs

Wie bei jedem Blog, stehen am Anfang die Hoffnung und Motivation, regelmäßig neue Beiträge zu schreiben, die dem interessierten Leser helfen.

Die Themen werden vor allen technischer Natur sein. Ausschnitte aus den Projekten die meine Selbstständigkeit ausmachen. Vor allen geht es um die Web-Entwicklung (Perl/Catalyst/DBIC/Mootools,JS), aber auch um die Systemadministration (Linux,openvz,Gentoo) und auch mal iOS.

Veröffentlicht unter Allgemein | Verschlagwortet mit , , , , | Kommentare deaktiviert