<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Developer Blog - Jens Gassmann</title>
	<atom:link href="http://blog.itnode.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.itnode.de</link>
	<description>Perl, Catalyst, DBIC, Mootools, APE und mehr</description>
	<lastBuildDate>Fri, 25 Feb 2011 12:50:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Abgleich Termine, Kontakte und Mails mit dem iPad, iPhone oder iPod touch</title>
		<link>http://blog.itnode.de/2010/08/10/abgleich-termine-kontakte-und-mails-mit-dem-ipad-iphone-oder-ipod-touch/</link>
		<comments>http://blog.itnode.de/2010/08/10/abgleich-termine-kontakte-und-mails-mit-dem-ipad-iphone-oder-ipod-touch/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 07:16:54 +0000</pubDate>
		<dc:creator>jegade</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[kontakte]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[sync]]></category>
		<category><![CDATA[termine]]></category>

		<guid isPermaLink="false">http://blog.itnode.de/?p=66</guid>
		<description><![CDATA[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. &#8230; Weiterlesen &#8594;]]></description>
			<content:encoded><![CDATA[<p>Wer Termine und Kontakte immer bequem dabei haben möchte und auch Outlook nutzt hat die folgenden Optionen:</p>
<h3><span style="color: #444444;">1. Mobile Me von Apple</span></h3>
<p>Kostenpflichtige Lösung (79€/Jahr), funktioniert über WLAN und auch auf mehreren Geräten. Ein kostenfreier 60 Tage Test wird angeboten. <a href="http://www.apple.com/de/mobileme/" class="aga aga_3">http://www.apple.com/de/mobileme/</a></p>
<h3>2. via iTunes synchronisieren</h3>
<p>kostenlos, aber du musst das Gerät zum synchronisieren immer an den Laptop anschliessen. Über eine &#8220;gejailbreaktes&#8221; Gerät kann man auch auf Wifi-Sync zurückgreifen: <a href="http://getwifisync.com/ " class="aga aga_4">http://getwifisync.com/</a></p>
<h3><span style="color: #444444;">3. via Exchange-Protokol/Outlook</span></h3>
<p>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:</p>
<ul>
<li><a href="﻿http://www.df.eu/de/produkte/managedexchange/managedexchange/" >﻿http://www.df.eu/de/produkte/managedexchange/managedexchange/</a></li>
<li><a href="http://www.qualityhosting.de/produkte/hosted-exchange-2007/produkdetails-preise/standardexchange-2007/ " class="aga aga_5">http://www.qualityhosting.de/produkte/hosted-exchange-2007/produkdetails-preise/standardexchange-2007/</a></li>
</ul>
<p>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnode.de/2010/08/10/abgleich-termine-kontakte-und-mails-mit-dem-ipad-iphone-oder-ipod-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APE &#8211; Authentifizierung gegen eine Web-Anwendung</title>
		<link>http://blog.itnode.de/2010/07/29/ape-authentifizierung-gegen-eine-web-anwendung/</link>
		<comments>http://blog.itnode.de/2010/07/29/ape-authentifizierung-gegen-eine-web-anwendung/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 21:31:07 +0000</pubDate>
		<dc:creator>jegade</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[ape]]></category>
		<category><![CDATA[ape-server]]></category>
		<category><![CDATA[cometd]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[websocket]]></category>

		<guid isPermaLink="false">http://blog.itnode.de/?p=20</guid>
		<description><![CDATA[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 &#8230; Weiterlesen &#8594;]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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.</p>
<h2>Konkreter Anwendungsfall</h2>
<p>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.</p>
<h2>Implementierung  Javascript-Client</h2>
<p><script src="http://gist.github.com/499254.js"> </script></p>
<h2>Implementierung Javascript- Servermodul</h2>
<p><script src="http://gist.github.com/499222.js"> </script></p>
<h2>Schnittstelle der Web-Anwendung</h2>
<p>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.</p>
<h3><span style="color: #444444;">Neue Session</span></h3>
<ol>
<li>Der Client sendet mit Hilfe des APE-Frameworks den &#8220;Connect&#8221;-Befehl an den APE-Server. Als Parameter enthält der Request das Authentifzierungstoken</li>
<li>Der APE-Server leitet via HTTP-Request an die Web-Anwendung die Authentifizierung ein.</li>
<li>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.</li>
<li>Nach erfolgreicher Authentifizierung setzt der APE-Server die nötigen User-Daten (öffentliche/private)</li>
<li>Die aktualisierten User-Daten werden zurück zum Client gepushed</li>
<li>Der Client aktualisiert den Status und verwendet die gesetzten Daten</li>
</ol>
<h3>Bestehende Session</h3>
<ol>
<li>Der Client hat eine aktive Session, die clientseitig in Cookies gespeichert wird.</li>
<li>Der Client sendet die Session-Daten und stellt so die aktive Sitzung wieder her</li>
<li>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</li>
</ol>
<h2>Zusammenfassung</h2>
<p>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnode.de/2010/07/29/ape-authentifizierung-gegen-eine-web-anwendung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updates/Wartung auf vielen Linux-Servern gleichzeitig &#8211; cssh</title>
		<link>http://blog.itnode.de/2010/07/23/cluster-ssh-updates-und-wartung-auf-vielen-servern-gleichzeitg/</link>
		<comments>http://blog.itnode.de/2010/07/23/cluster-ssh-updates-und-wartung-auf-vielen-servern-gleichzeitg/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 10:08:23 +0000</pubDate>
		<dc:creator>jegade</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[cssh]]></category>
		<category><![CDATA[emerge]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[openvz]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[updates]]></category>

		<guid isPermaLink="false">http://blog.itnode.de/?p=41</guid>
		<description><![CDATA[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 &#8230; Weiterlesen &#8594;]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>Zur Vereinfachung kann man <a href="http://search.cpan.org/dist/App-ClusterSSH" class="aga aga_8">cssh</a> einsetzten. Nach der Installation via <a href="http://search.cpan.org" class="aga aga_9">CPAN</a>, 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.</p>
<p>Über die Konfiguration-Datei kann man Server-Verbünde vor definieren und so für den täglichen Einsatz vorhalten.</p>
<h2>Ablauf des Server-Updates bei Gentoo</h2>
<p>Dazu werden die Pakete sys-process/lsof, app-portage/gentoolkit, app-misc/screen und die Installation von cssh vor ausgesetzt.</p>
<ol>
<li><span style="color: #000000;"><strong>cssh first.server.com second.server.com last.server.com </strong>Login auf allen Servern gleichzeitg</span></li>
<li><strong>screen -S emerge</strong> eigene Screen-Session starten, um Verbindungsabbrüchen vorzubeugen</li>
<li><strong>emerge &#8211;sync &#8211;quiet </strong>aktualisiert den lokalen Paketindex</li>
<li><span style="color: #000000;"><strong>emerge -uDa world </strong>zeigt an welche Pakete aktualisiert werden, nach Bestätigung werden, diese Pakete installiert</span></li>
<li><strong>CTRL &#8211; a + c </strong>startet ein weiteres Screenfenster für die Anzeige des emerge-Logs via<strong> tail -f /var/log/emerge.log</strong></li>
<li>CTRL &#8211; a + n wechselt nach Abschluss zum ersten Screenfenster zurück</li>
<li><strong>dispatch-conf </strong>aktualisiert die nötigen Konfigurationsdaten der aktualisierten Pakete und erlaubt einen manuellen Merge dieser</li>
<li><span style="color: #000000;"><strong>revdep-rebuild -i </strong>alle Abhängigkeiten prüfen und ggf. Pakete nochmals aktualisieren</span></li>
<li><span style="color: #000000;"><strong>lsof | grep tmp</strong> zeigt alle Prozesse, deren externe Bibliotheken aktualisiert und neugestartet werden müssen.</span></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnode.de/2010/07/23/cluster-ssh-updates-und-wartung-auf-vielen-servern-gleichzeitg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APE &#8211; AJAX Push Engine als Framework für ein Chatsystem an einer Catalyst-App</title>
		<link>http://blog.itnode.de/2010/07/20/ape-ajax-push-engine-fur-eine-chatsystem/</link>
		<comments>http://blog.itnode.de/2010/07/20/ape-ajax-push-engine-fur-eine-chatsystem/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 15:28:53 +0000</pubDate>
		<dc:creator>jegade</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[ape]]></category>
		<category><![CDATA[async]]></category>
		<category><![CDATA[comit]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://wp.itnode.de/?p=10</guid>
		<description><![CDATA[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 &#8230; Weiterlesen &#8594;]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>Vorteile von APE</p>
<ul>
<li>Vollständig Open-Source</li>
<li>Gute Dokumentation</li>
<li>Viele Beispiele</li>
<li>Serverseitige Module können in JS geschrieben werden</li>
<li>Mootools-Kompatibel</li>
<li>Perl-Module vorhanden (<a href="http://search.cpan.org/dist/Net-APE/" class="aga aga_11">http://search.cpan.org/dist/Net-APE/</a>)</li>
<li>Ständige und aktive Weiterentwicklung</li>
<li>Freundlicher IRC-Channel auf freenode #ape-project</li>
<li>JSON-basiertes Protokoll</li>
</ul>
<p>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.</p>
<p>Innerhalb von APE müssen grob die folgenden Funktionen umgesetzt werden:</p>
<ol>
<li>Authentifizierung gegen das Backend via HTTP und Zuordnung der Daten zur APE-Session des Benutzers</li>
<li>Setzten des persönlichen Online-Status mit Information an alle Buddies</li>
<li>Dialog mit einem zweiten Benutzer im System</li>
<li>Teilnahme an einen Gruppen-Chat -&gt; Chatraum</li>
<li>Moderierter Chat für VIP/Promies</li>
<li>Chat-Roulette &#8211; Zufällige Auswahl einen Dialogpartners</li>
<li>Auflistung aller aktiven und sichtbaren Benutzer im System</li>
<li>Anzeige der aktiven Mitglieder und deren Aktionen auf einer Weltkarte (Privatsphäre beachten)</li>
</ol>
<p>In den nächsten Tagen folgenden Details zur Umsetzung der einzelnen Funktionen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnode.de/2010/07/20/ape-ajax-push-engine-fur-eine-chatsystem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Start des Blogs</title>
		<link>http://blog.itnode.de/2010/07/20/hallo-welt/</link>
		<comments>http://blog.itnode.de/2010/07/20/hallo-welt/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 08:41:19 +0000</pubDate>
		<dc:creator>jegade</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[DBIC]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mootools]]></category>

		<guid isPermaLink="false">http://wp.itnode.de/?p=1</guid>
		<description><![CDATA[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), &#8230; Weiterlesen &#8594;]]></description>
			<content:encoded><![CDATA[<p>Wie bei jedem Blog, stehen am Anfang die Hoffnung und Motivation, regelmäßig neue Beiträge zu schreiben, die dem interessierten Leser helfen.</p>
<p>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnode.de/2010/07/20/hallo-welt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

