<?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>Tobis Blog &#187; Programme</title>
	<atom:link href="http://blog.aditu.de/category/programme/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.aditu.de</link>
	<description>Alles rund um Webentwicklung, Fotografie, PHP und weitere interessante Themen</description>
	<lastBuildDate>Wed, 25 Jan 2012 17:30:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>jQuery simple carousel 0.3</title>
		<link>http://blog.aditu.de/2010/12/13/jquery-simple-carousel-0-3/</link>
		<comments>http://blog.aditu.de/2010/12/13/jquery-simple-carousel-0-3/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 21:09:07 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programme]]></category>
		<category><![CDATA[carousel]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Slider]]></category>
		<category><![CDATA[Verschiedene Skripte]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=602</guid>
		<description><![CDATA[Nachdem mein jQuery simple carousel doch von einigen verwendet wird, habe ich mich entschlossen das ganze auf google code zu packen und dem ganzen eine eigene Projektseite zu spendieren. Also, ab sofort kann simple carousel unter google code gefunden werden: http://code.google.com/p/simple-carousel/ Gerne könnt ihr dort neue issues aufmachen, falls etwas mit dem Skript nicht passt [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem mein <a title="jQuery simple carousel" href="blog.aditu.de/2010/02/10/jquery-simple-carousel/">jQuery simple carousel</a> doch von einigen verwendet wird, habe ich mich entschlossen das ganze auf google code zu packen und dem ganzen eine eigene Projektseite zu spendieren. Also, ab sofort kann simple carousel unter google code gefunden werden:</p>
<p><a href="http://code.google.com/p/simple-carousel/">http://code.google.com/p/simple-carousel/</a></p>
<p>Gerne könnt ihr dort neue issues aufmachen, falls etwas mit dem Skript nicht passt oder etwas nicht funktioniert. Ihr könnt mir auch jederzeit Änderungen und Anmerkungen zusenden. Wer gerne aktiv das Skript verbessern will, bekommt auch gerne Schreibrechte für das SVN Repository. Einfach bei mir melden, ich freue mich über jede Unterstützung.</p>
<p>Sonst habe ich in der neuesten Version noch eine Pagination hinzugefügt, das Beispiel etwas ausgebaut und alles nochmal auf der neuesten jQuery Version getestet.</p>
<p>Links:</p>
<ul>
<li><a title="jQuery simple carousel Projektseite" href="http://code.google.com/p/simple-carousel/">jQuery simple carousel Projektseite</a></li>
<li><a title="simple carousel download" href="http://code.google.com/p/simple-carousel/downloads/list">simple carousel 0.3 download</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2010/12/13/jquery-simple-carousel-0-3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>10 webbasierte Email Clients</title>
		<link>http://blog.aditu.de/2010/09/06/10-webbasierte-email-clients/</link>
		<comments>http://blog.aditu.de/2010/09/06/10-webbasierte-email-clients/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 19:03:15 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programme]]></category>
		<category><![CDATA[afterlogic]]></category>
		<category><![CDATA[atmail]]></category>
		<category><![CDATA[conjoon]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[funambol]]></category>
		<category><![CDATA[hastymail]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[roundcube]]></category>
		<category><![CDATA[webmail]]></category>
		<category><![CDATA[xuheki]]></category>
		<category><![CDATA[zimbra]]></category>

		<guid isPermaLink="false">http://blog.aditu.de/?p=545</guid>
		<description><![CDATA[Software as a Service (SaaS) ist ja mittlerweile nichts mehr neues und so sind viele Applikationen ins Web abgewandert, die es noch vor wenigen Jahren ausschließlich als Desktopanwendung gab. Ein Beispiel sind Office Anwendungen, was Dienste wie Google Docs oder Zoho eindrucksvoll beweisen. Für mich interessanter sind Email Clients, denn ich möchte auch von unterwegs [...]]]></description>
			<content:encoded><![CDATA[<p>Software as a Service (SaaS) ist ja mittlerweile nichts mehr neues und so sind viele Applikationen ins Web abgewandert, die es noch vor wenigen Jahren ausschließlich als Desktopanwendung gab. Ein Beispiel sind Office Anwendungen, was Dienste wie <a title="Google Docs" href="http://docs.google.com">Google Docs</a> oder <a title="Zoho Office" href="http://www.zoho.com/">Zoho</a> eindrucksvoll beweisen. Für mich interessanter sind Email Clients, denn ich möchte auch von unterwegs aus bequem auf meine Emails zugreifen können, ohne an einen Provider gebunden zu sein. Dank IMAP kann ich dann von Zuhause aus mit meinem gewöhnlichen Email Programm meine Mails lesen und verwalten und unterwegs mit Hilfe eines webbasierten Email Clients auf neue Post zugreifen. Hierfür habe ich mir schon vor einiger Zeit verschiedene Lösungen angesehen und verglichen, wobei ich von vornherein folgende Anforderungen an die Applikationen gestellt habe:</p>
<ul>
<li>ich muss sie lokal auf einem eigenen Server installieren können (Online-Dienste sind aus Datenschutzgründen uninteressant)</li>
<li>die Oberfläche soll bequem zu bedienen sein und sich &#8220;gut anfühlen&#8221;</li>
<li>als Backend sollte möglichst eine Umgebung von der Stange dienen (also beispielsweise ein 0815 LAMPP Stack, oder ein kleiner Java Server)</li>
<li>das Programm sollte kostenlos sein bzw. nicht zu viel kosten</li>
</ul>
<p>Folgend eine Übersicht über die webbasierten Email Clients und PIM Systeme, die ich mir hierzu genauer angesehen habe. Am Ende habe ich mich für Afterlogic WebMail Light entschieden, da es in der Installation sehr einfach war, eine einfache Oberfläche besitzt und sich sehr leicht in mein bestehendes System zur Authentifikation einbinden lässt.</p>
<p>Wenn ein guter webbasierter Email Client in dieser Liste fehlt, dann gebt mir bitte Feedback. Ich bin immer auf der Suche nach guten Programmen.</p>
<h3><a title="Afterlogic WebMail Light" href="http://www.afterlogic.com/community-editions/webmail-lite">Afterlogic WebMail Light</a></h3>
<p><a title="Afterlogic WebMail Client" href="http://www.afterlogic.com/community-editions/webmail-lite"><img class="alignnone size-full wp-image-554" title="afterlogic" src="http://blog.aditu.de/wp-content/uploads/2010/09/afterlogic.jpg" alt="" width="500" height="283" /></a></p>
<p>Der WebMail Light Client von Afterlogic steht für die Programmiersprachen PHP und ASP.NET unter der GPL Lizenz zur Verfügung, unterstützt POP3/IMAP/SMTP und präsentiert sich in einem simplen und übersichtlichen Interface. Dabei ist er komfortabel zu bedienen und lässt sich auch gut in andere Umgebungen (cPanel) integrieren. Ich benutze das Programm nun etwa ein Jahr und bin sehr zufrieden. Eine <a title="Demo Afterlogic" href="http://afterlogic.com/webmail-lite/default.aspx">Live-Demo</a> gibt es auf der Seite des Herstellers.</p>
<p>Neben dem Client bietet die Firma Afterlogic auch einen Email Server und eine Pro Version, welche einen Kalender und weitere Features bietet. Für den Hausgebrauch reicht die Lite Version aber vollkommen aus und ist absolut empfehlenswert.</p>
<h3><a title="Funambol" href="http://www.zapatec.com/">Funambol</a></h3>
<p><a title="Funambol" href="http://www.zapatec.com/"><img class="alignnone size-full wp-image-555" title="funambol" src="http://blog.aditu.de/wp-content/uploads/2010/09/funambol.jpg" alt="" width="500" height="354" /></a></p>
<p>Funambol habe ich zur Vollständigkeit hier aufgenommen. Leider bietet die kostenlose OpenSource Version kein Benutzerinterface, so dass diese Lösung für mich nicht in Frage kam. Eine AJAX Oberfläche erhält man in der kommerziellen Variante. Bemerkenswert an Funambol sind die zahlreichen Synchronisationsmöglichkeiten, die besonders mit mobilen Endgeräten bestehen und auch mit der freien Version möglich sind. So werden iPhones, Android, Windows Mobile und Java ME Email Clients unterstützt und können untereinander synchronisiert werden.</p>
<h3><a title="AtMail" href="http://de.atmail.com/webmail-client/index.html">AtMail</a></h3>
<p><a title="AtMail" href="http://de.atmail.com/webmail-client/index.html"><img class="alignnone size-full wp-image-556" title="atmail" src="http://blog.aditu.de/wp-content/uploads/2010/09/atmail.jpg" alt="" width="500" height="284" /></a></p>
<p>Einen optisch sehr ansprechenden Email Client bietet AtMail. Eine unbeschränkte Testversion, mit einer Lizenz für fünf Benutzer ist kostenlos erhältlich. Der Webmail Client basiert auf dem <a title="Zend Framework" href="http://framework.zend.com">Zend Framework</a> (PHP) und bringt einen komfortablen Installer mit. Leider habe ich keine Möglichkeit gefunden mich mit einem IMAP Server zu verbinden, bei dem der Benutzername von der Email Adresse abweicht. Dennoch ist der sehr stylische und benutzerfreundliche Client definitiv eine Empfehlung wert. Ein Live-Demo gibt es <a title="Live Demo atmail" href="http://a6demo.atmail.com/">hier</a>.</p>
<h3><a title="AtMail.org" href="http://atmail.org/">AtMail.org</a></h3>
<p><a title="AtMail.org" href="http://atmail.org/"><img class="alignnone size-full wp-image-557" title="atmailorg" src="http://blog.aditu.de/wp-content/uploads/2010/09/atmailorg.jpg" alt="" width="500" height="280" /></a></p>
<p>Auch AtMail bietet ein OpenSource WebMail Client (PHP). Dieser ist allerdings nicht vergleichbar mit dem kommerziellen Produkt und optisch nicht annähernd so ansprechend. Sonst scheint der Client alles zu bieten, ist aufgrund des Look&amp;Feels bei mir aber nicht in die nähere Auswahl gekommen.</p>
<h3><a title="Conjoon" href="http://www.conjoon.org/">Conjoon</a></h3>
<p><a title="Conjoon" href="http://www.conjoon.org/"><img class="alignnone size-full wp-image-558" title="conjoon" src="http://blog.aditu.de/wp-content/uploads/2010/09/conjoon.jpg" alt="" width="500" height="329" /></a></p>
<p>Der OpenSource Client Conjoon basiert wie AtMail auf dem <a title="Zend Framework" href="http://framework.zend.com">Zend Framework</a> (PHP) und nutzt als JavaScript Oberfläche <a title="Sencha" href="http://www.sencha.com/">Sencha</a> (früher: ExtJS). Die Oberfläche macht einen sehr schicken Eindruck, allerdings wird kein IMAP, sondern nur POP3 unterstützt. Neben der WebMail Funktionalität werden auch RSS Feeds und Twitter unterstützt. Als ich Conjoon zuletzt getestet habe, war es noch im Beta Stadium, wie ausgereift die aktuelle Version ist, bleibt an der Stelle offen.</p>
<h3><a title="FengOffice" href="http://www.fengoffice.com/web/community/community_index.php">FengOffice (ehemals OpenGoo)</a></h3>
<p><a title="FengOffice" href="http://www.fengoffice.com/web/community/community_index.php"><img class="alignnone size-full wp-image-565" title="fengoffice" src="http://blog.aditu.de/wp-content/uploads/2010/09/fengoffice.jpg" alt="" width="500" height="269" /></a></p>
<p>FengOffice ist aus dem früheren Projekt OpenGoo hervor gegangen. Dabei tritt FengOffice als umfassendere Collaboration Lösung an und bietet weitaus mehr als einen Email Client. So bringt es eine Dokumentenverwaltung, Aufgabenverwaltung, Kalender und ein Adressbuch mit, wobei Benutzer ihre Inhalte auch untereinander teilen können. Neben der OpenSource Variante, bietet FengOffice auch einen gehosteten Service an, bei dem man sich nicht selbst um den Server kümmern muss.</p>
<h3><a title="Hastymail" href="http://www.hastymail.org/">Hastymail</a></h3>
<p><a title="Hastymail" href="http://www.hastymail.org/"><img class="alignnone size-full wp-image-559" title="hastymail" src="http://blog.aditu.de/wp-content/uploads/2010/09/hastymail.jpg" alt="" width="500" height="344" /></a></p>
<p>Der Email Client Hastymail (PHP) besticht nicht mit einem besonders ansprechenden Interface. Die Oberfläche vermittelt eher einen Web 1.0 Eindruck, trotzdem erscheint mir die Software ganz solide und umfangreich in der Ausstattung. So ist ein Kalender mit an Bord und es stehen verschiedene Plugins zur Verfügung.</p>
<h3><a title="Xuheki" href="http://www.xuheki.com/">Xuheki</a></h3>
<p><a title="Xuheki" href="http://www.xuheki.com/"><img class="alignnone size-full wp-image-560" title="xuheki" src="http://blog.aditu.de/wp-content/uploads/2010/09/xuheki.jpg" alt="" width="500" height="294" /></a></p>
<p>Xuheki ist ein auf Perl basierender IMAP Email Client, der eine ähnliche Optik wie FengOffice besitzt. Das Perl Backend hat mich allerdings davon abgehalten die Software zu testen und genauer zu prüfen.</p>
<h3><a title="Roundcube" href="http://roundcube.net/">Roundcube</a></h3>
<p><a title="Roundcube" href="http://roundcube.net/"><img class="alignnone size-full wp-image-561" title="roundcube" src="http://blog.aditu.de/wp-content/uploads/2010/09/roundcube.jpg" alt="" width="500" height="339" /></a></p>
<p>Roundcube (PHP) ist mittlerweile kein Geheimtipp mehr, aber dennoch empfehlenswert. Der IMAP Client bringt alles mit, was ein vernünftiger WebMail Client benötigt: eine saubere AJAX basierte Oberfläche, ein Adressbuch, eine Suche und sogar eine Rechtschreibkorrektur. Besonders die schlichte Optik besticht und auch hinsichtlich der Usability kann ich Roundcube nur empfehlen.</p>
<h3><a title="Zimbra" href="http://www.zimbra.com/products/collaboration.html">Zimbra</a></h3>
<p><a title="Zimbra" href="http://www.zimbra.com/products/collaboration.html"><img class="alignnone size-full wp-image-562" title="zimbra" src="http://blog.aditu.de/wp-content/uploads/2010/09/zimbra.jpg" alt="" width="500" height="323" /></a></p>
<p>Zimbra ist eine sehr umfangreiche und mächtige Collaborationslösung. Die Software kommt als eigenes Installationspaket, bringt einen eigenen Email Server mit und bietet neben einem AJAX basierten WebMail Client auch einen Kalender, eine Dokumentenablage und zahlreiche weitere Plugins. Die OpenSource Variante ist schon sehr umfangreich, die kommerzielle Version bietet weiterführend Synchronisationsmöglichkeiten mit Outlook, verschiedenen mobilen Plattformen (iPhone, Blackberry usw.) und kann als Pendant zu Funambol gesehen werden. Da Zimbra sehr umfangreich und komplex ist, habe ich mich nach einer kurzen Testinstallation dagegen entschieden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2010/09/06/10-webbasierte-email-clients/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Einmalpasswörter mit PHP und OpenKubus</title>
		<link>http://blog.aditu.de/2009/12/24/einmalpasswoerter-mit-php-und-openkubus/</link>
		<comments>http://blog.aditu.de/2009/12/24/einmalpasswoerter-mit-php-und-openkubus/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 14:10:05 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programme]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[AES]]></category>
		<category><![CDATA[mcrypt]]></category>
		<category><![CDATA[OpenKubus]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Verschlüsselung]]></category>

		<guid isPermaLink="false">http://localhost/aditu.de/blog2/?p=266</guid>
		<description><![CDATA[Schon vor einiger Zeit bin ich auf eine sehr schöne Lösung gestoßen, mit der sich ein sicherer Login mit Einmalpassworte realisieren lässt. Dabei wird ein Hardware USB Dongle verwendet, welcher nach einem Druck auf einen Taster ein Einmalpasswort generiert. Die serverseitige Prüfung kann aus einer beliebigen Sprache heraus passieren. Für mich bietet sich hier natürlich [...]]]></description>
			<content:encoded><![CDATA[<p>Schon vor einiger Zeit bin ich auf eine sehr schöne Lösung gestoßen, mit der sich ein sicherer Login mit Einmalpassworte realisieren lässt. Dabei wird ein Hardware USB Dongle verwendet, welcher nach einem Druck auf einen Taster ein Einmalpasswort generiert. Die serverseitige Prüfung kann aus einer beliebigen Sprache heraus passieren. Für mich bietet sich hier natürlich PHP an. In meinem Fall verwende ich für die Applikation das Zend Framework, aber die hier vorgestellte Lösung ist allgemein verwendbar und unabhängig vom restlichen Backend.</p>
<h2>Was ist ein Einmalpasswort?</h2>
<p>Wie der Name bereits sagt, kann ein Einmalpasswort nur für einen Login verwendet werden. Dann erlischt die Gültigkeit und ein neues Einmalpasswort wird benötigt. Ein solches Passwort wird durch eine spezielle Hardware (hier OpenKubus Stick) erzeugt. Eine genaue Definition findet ihr auch in <a title="Einmalpasswörter auf Wikipedia" href="http://de.wikipedia.org/wiki/Einmalpasswort">Wikipedia</a>, wo auch verschiedene Algorithmen vorgestellt werden. Der englischsprachige Begriff ist One Time Passwort und hierzu findet man auch auf dem <a title="One Time Password auf Wikipedia" href="http://en.wikipedia.org/wiki/One_Time_Password">internationalen Wikipedia</a> eine interessante Beschreibung.</p>
<h2>Vorteile Einmalpasswörter</h2>
<p>Zu Beginn stellt sich die Frage, welche Vorteile ein Login mit Einmalpasswörter mit sich bringt. Hier macht es Sinn, sich der Problemstellung von Seite der Bedrohungen aus zu nähern und zu analysieren, ob ein solches System für den eigenen Anwendungsfall eine sinnvolle Maßnahme ist oder nicht. Mögliche Bedrohungen, gegen die ein Einmalpasswort eine risikominimierende Wirkung hat sind:</p>
<ul>
<li>an erster Stelle natürlich eine sichere Authentifikation: nur wer den Stick besitzt kann sich auch in das System einloggen</li>
<li>ungeeigneter Umgang mit Passwörter: es kann nicht sichergestellt werden, dass Benutzer unsichere Passwörter verwenden</li>
<li>Abhören von Leitungen/Ausspähen des Passwortes: es kann passieren, dass in einer unsicheren Umgebung die eigenen Zugangsdaten abgehört werden. Hier wäre auch eine verschlüsselte Verbindung eine empfehlenswerte Gegenmaßnahme, aber auch ein Einmalpasswort bietet hier einen geeigneten Schutz, da dieses nur für einen Login gültig ist.</li>
<li> systematisches Ausprobieren von Passwörter: es kann passieren, dass ein Brute Force Angriff auf das System durchgeführt wird. Ein Einmalpasswort ist in der Regel sehr lange und somit schwerer zu knacken</li>
<li>Trojanische Pferde: am Clientrechner könnte ein Schadprogramm installiert sein, welches die Zugangsdaten ausspäht</li>
</ul>
<p>Natürlich ist ein Einmalpasswort kein Allheilmittel. So schützt es nicht vor Pishing Angriffen, oder Man in the Middle Attacken, wo die Logindaten abgefangen und erst garnicht an den Server gesendet werden.</p>
<h2>Komponenten</h2>
<p>An dieser Stelle will ich zuerst die verschiedenen Komponenten vorstellen, die für die Lösung verwendet wurden. Natürlich ist alles OpenSource und frei verfügbar. Auch der Hardwaredongle ist frei und recht günstig zu erstehen.</p>
<p><strong>OpenKubus</strong></p>
<p><a title="Openkubus auf Google Code" href="http://code.google.com/p/openkubus/"><img src="wp-content/uploads/2009/12/24/openkubus.jpg" alt="OpenKubus" width="200" height="73" /></a></p>
<p>Der OpenKubus ist ein kleiner, handlicher USB Stick (der Problemlos an den Schlüsselbund passt), dessen Hardwarelayout frei verfügbar ist und der frei programmiert werden kann. Wird der Stick an einem Rechner angesteckt, so wird er als Tastatur erkannt. Ein Druck auf einen Taster führt dazu, dass der Stick ein neues Einmalpasswort generiert und als Tastatureingabe an den Rechner sendet. Es reicht also, den Cursor auf das Eingabefeld im Login Formular zu setzen und der Stick schießt sein Passwort hinein. Dabei ist der Stick kompatibel zu nahezu allen Systemen, weil er als einfache Tastatur arbeitet.</p>
<p>Der Stick kostet 24,95 Euro und kann im <a title="Embedded projects shop" href="http://shop.embedded-projects.net/product_info.php/info/p176_Open-Kubus-USB-Stick.html">embedded projects Shop</a> bestellt werden. Beispielprogramme und die nötige Software um den Stick zu programmieren (was unter Linux recht leicht möglich ist), sind auf der <a title="Google Code OpenKubus" href="http://code.google.com/p/openkubus/">google code Projektseite</a> zu finden. Dort gibt es auch Anleitungen und ein Beispielserver in Perl. Der OpenKubus kann auch für einen sicheren Linux Login (PAM) verwendet werden.</p>
<p><strong>phpseclib</strong></p>
<p><a title="phpseclib" href="http://phpseclib.sourceforge.net/"><img src="wp-content/uploads/2009/12/24/phpseclib.jpg" alt="phpseclib" width="275" height="67" /></a></p>
<p>Um das Passwort zu entschlüsseln (AES), benötigt man eine passende Bibliothek. <a title="phpseclib" href="http://phpseclib.sourceforge.net/">phpseclib</a> bietet eine komfortable und objektorientierte Lösung, die auf keine PHP Extensions oder ähnliches angewiesen ist. Diese Bibliothek ist in PHP geschrieben, entwickelt man in einer anderen Sprache, so benötigt man irgendwie eine Möglichkeit mit AES Verschlüsselung zu arbeiten.</p>
<p>phpseclib ist aus meiner Sicht für Verschlüsselung allgemein ein Tipp. Es stehen Klassen für die verschiedensten Algorithmen zur Verfügung (z.B. RSA, SSH, DES, 3DES, AES uvm.). Die Bibliothek ist OpenSource und steht unter der LGPL Lizenz.</p>
<h2>Ablauf</h2>
<p>Um die unten stehende Implementierung zu verstehen, muss man zuerst den gesamten Ablauf kennen. Dieser ist recht simpel. Zuerst muss der Stick einmalig vorbereitet werden. Der Authentifizierungsprozess kann dann beliebig oft durchgeführt werden.</p>
<p><strong>Initialisierung</strong></p>
<p>Der Stick muss mit dem AES Schlüssel und einem zufälligen Datenblock beschrieben werden. Dies funktioniert recht einfach unter Linux:</p>
<pre class="brush: bash; title: ; notranslate">
sudo ./stick-write -p AESKeyundDatenblock
</pre>
<p>Wobei <em>AESKeyundDatenblock</em> ein 46 Byte langer String ist, der zuerst aus dem AES Key (32 Bytes lang) und dann dem Datenblock (14 Bytes lang) besteht. Der AES Schlüssel und der Datenblock müssen auch dem Server bekannt sein. Zudem muss auf dem Server der Zähler auf 0 gesetzt werden (=das nächste Einmalpasswort ist das erste).</p>
<p><strong>Authentifizierung</strong></p>
<p>Client:</p>
<ol>
<li>Der Stick wird am Client eingesteckt und das Loginformular wird aufgerufen. Nun gibt der Benutzer seinen Benutzernamen ein, setzt den Cursor auf das Einmalpasswort-Feld und drückt auf den Taster am Stick.</li>
<li>Der Stick erzeugt nun das Einmalpasswort: Ein interner Zählwert wird mit dem Datenblock verknüpft und mit dem angegebenen Schlüssel (key) AES verschlüsselt. Anschließend erhöht der Stick seinen internen Zähler um eins.</li>
<li>Das so generierte Einmalpasswort wird base64 kodiert, so dass es durch gewöhnliche (ASCII) Zeichen darstellbar ist.</li>
<li>Der Stick sendet das so generierte, base64 kodierte Einmalpasswort als Tasteneingabe und befüllt so das selektierte Feld. Ein Klick auf &#8220;Login&#8221; sendet das HTML Formular wie bei einem gewöhnlichen Login an den Server.</li>
</ol>
<p>Server:</p>
<ol>
<li>Der Server nimmt die Anfrage entgegen und lädt seinen eigenen, zum Stick passenden AES Schlüssel und Datenblock.</li>
<li>Dann wird der durch den Client übermittelte base64 String erst einmal korrigiert: ein z am Anfang kennzeichnet ob ein amerikanisches Tastaturlayout vorliegt (entsprechend müssen alle z durch y und alle y durch z ersetzt werden). Zudem werden einige Sonderzeichen ersetzt.</li>
<li>Anschließend wird das noch verschlüsselte Einmalpasswort von base64 wieder in einen Bytevektor dekodiert.</li>
<li>Nun wird das Einmalpasswort mit AES entschlüsselt.</li>
<li>der Zählstand wird ausgelesen und der Datenblock entnommen.</li>
<li>Der Login ist erfolgreich wenn der gegebene Zählstand größer dem Zählstand am Server ist <span style="text-decoration: underline;">und</span> der gegebene Datenblock mit dem intern gespeicherten übereinstimmt.</li>
<li>War der Login erfolgreich, so wird am Server der Zählstand des Sticks übernommen: es werden nur Einmalpasswörter akzeptiert, die einen höheren Zählstand haben (alte funktionieren also nicht mehr).</li>
</ol>
<p>Auch wenn sich alles nun nach einer Menge Arbeit anhört, ist die Implementierung übersichtlich. Ich habe dazu in meiner Applikation einen Action Helper verwendet (in Zend Framework Applikationen eine Hilfsklasse, die in allen Controller zur Verfügung steht). An dieser Stelle eine PHP Funktion, welche nur von phpseclib abhängt und alle Schritte durchführt, die oben unter Server gelistet sind. Jeder Schritt wird nochmal als Kommentar erklärt.</p>
<pre class="brush: php; title: ; notranslate">

/**
 * @param string $givenOtp Einmalpasswort, dass geprueft werden soll
 * @param string $aesKey der AES Schluessel und Datenteil
 * @param int $number aktueller Zaehlstand des Servers
 */
function otp($givenOtp, $aesKey, $number) {
	// AES Schluessel besteht aus
	// erste 32 Byte: AES Key
	// restliche 14 Byte: Datenblock
	$key  = substr($aesKey, 0, 32);
	$data = substr($aesKey, 32, 14);

	// base64 Kodierung des Sticks korrigieren
	$givenOtp = rtrim($givenOtp);

	// Sonderzeichen in korrekte Sonderzeichen umwandeln
	// (diese werden vom Stick anders vorgegeben, um von
	// unterschiedl. Tastaturlayouts unabhängig zu werden)
	for($i = 0; $i &lt; strlen($givenOtp); $i++) {
		if($givenOtp[$i] == &quot; &quot;) { $givenOtp[$i] = &quot;/&quot;; }
		elseif($givenOtp[$i] == &quot;.&quot;) { $givenOtp[$i] = &quot;=&quot;; }
		elseif($givenOtp[$i] == &quot;-&quot;) { $givenOtp[$i] = &quot;+&quot;; }
	}

	// erstes Zeichen pruefen ob z oder y
	// abhaengig davon alle y durch z ersetzen und umgekehrt
	$z = $givenOtp[0];
	$crypted = substr($givenOtp, 1);

	if($z == &quot;y&quot; or $z == &quot;Y&quot;) {
		for($i = 0; $i &lt; strlen($crypted); $i++) {
		  if	($crypted[$i] == 'y') { $crypted[$i] = &quot;z&quot;; }
		  elseif($crypted[$i] == 'Y') { $crypted[$i] = &quot;Z&quot;; }
		  elseif($crypted[$i] == 'z') { $crypted[$i] = &quot;y&quot;; }
		  elseif($crypted[$i] == 'Z') { $crypted[$i] = &quot;Y&quot;; }
		}
	}

	if($z == &quot;Y&quot; or $z == &quot;Z&quot;) {
		for($i = 0; $i &lt; strlen($crypted); $i++) {
			if(ctype_upper($crypted[$i])) {
				$crypted[$i] = strtolower($crypted[$i]);
			} else {
				$crypted[$i] = strtoupper($crypted[$i]);
			}
		}
	}

	// base64 String nun in binary dekodieren
	$crypted = base64_decode($crypted);

	// gegebenes One Time Passwort mit AES entschluesseln
	$aes = new Crypt_AES();
	$aes-&gt;disablePadding();
	$aes-&gt;setKey($key);
	$plain = $aes-&gt;decrypt($crypted);

	// entschluesseltes Passwort aufteilen in

	// aktueller Zaehlstand
	$i	 = substr($plain, 0,1);
	$j	 = substr($plain, 1,1);
	$n	 = ord($i) + (ord($j) &lt;&lt; 8);

	// und Datenblock
	$plain = substr($plain, 2, strlen($plain)-2);

	// wenn Datenblock korrekt und Laufnummer nach aktueller Nummer:
	// aktuelle Nummer zurueckgeben (Login korrekt)
	if(($plain == $data) and ($n &gt; $number)) {
		return $n;
	} else {
		return false;
	}
}
</pre>
<p>Natürlich kann das Entschlüsseln auch mit der <a title="mcrypt manual" href="http://de.php.net/manual/en/book.mcrypt.php">mcrypt Erweiterung</a> von PHP durchgeführt werden. So benötigt man keine zusätzliche Bibliothek wie phpseclib. Um das Passwort mit mcrypt zu entschlüsseln, muss der Codeteil</p>
<pre class="brush: php; title: ; notranslate">

$aes = new Crypt_AES();
$aes-&gt;disablePadding();
$aes-&gt;setKey($key);
$plain = $aes-&gt;decrypt($crypted);
</pre>
<p>durch die entsprechenden mcrypt Aufrufe ersetzt werden:</p>
<pre class="brush: php; title: ; notranslate">

$td = mcrypt_module_open(&quot;rijndael-128&quot;, &quot;&quot;, &quot;ecb&quot;, &quot;&quot;);
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
mcrypt_generic_init($td, $key, $iv);
$plain = mdecrypt_generic($td, $crypted);
</pre>
<h2>Fazit</h2>
<p>Ich bin mit der Lösung sehr zufrieden. Die AES Schlüssel/Datenblöcke lassen sich komfortabel in der Datenbank ablegen und auch leicht ändern, falls der Stick verloren geht. Besonders wenn man oft in unsicheren Netzen unterwegs ist (z.B. in der Firma oder an der Uni, in Internet Cafes usw.) ist die Lösung praktisch. Es müssen keine langen Einmalpasswörter von einem Display abgeschrieben werden und der Stick läuft gleichermaßen unter Linux und Windows. Die Integration in die eigene Applikation ist denkbar einfach.</p>
<p>Einziger Nachteil: der Stick hat keine Zeitkomponente, d.h. jemand könnte das Passwort abgreifen und dann die Netzverbindung kappen. Erst wenn sich der Besitzer einloggt, wird das zuvor abgepishte Passwort ungültig. Ebenso lassen sich mehrere Passwörter auslesen: so lange der Besitzer sich nicht einloggt, bleiben sie alle gültig.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2009/12/24/einmalpasswoerter-mit-php-und-openkubus/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Neues Bildverwaltungstool ACDSee Pro 3</title>
		<link>http://blog.aditu.de/2009/10/30/neues-bildverwaltungstool-acdsee-pro-3/</link>
		<comments>http://blog.aditu.de/2009/10/30/neues-bildverwaltungstool-acdsee-pro-3/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 20:12:18 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programme]]></category>
		<category><![CDATA[ACDSee]]></category>
		<category><![CDATA[Bildbetrachter]]></category>
		<category><![CDATA[XnView]]></category>

		<guid isPermaLink="false">http://localhost/aditu.de/blog2/?p=259</guid>
		<description><![CDATA[Bisher bin ich &#252;berzeugter Benutzer von XnView, einem freien und kostenlosen Bildbetrachter. Nachdem mir nun aber eine Lizenz f&#252;r das neue ACDSee Pro 3 zugeflogen ist, habe ich mich entschlossen das Bildverwaltungstool eingehender zu testen. Das Programm ist seit Anfang Oktober zu haben und wirbt mir einer Menge neuer Features, hier mal kurz gelistet: Intuitive [...]]]></description>
			<content:encoded><![CDATA[<p>Bisher bin ich &uuml;berzeugter Benutzer von XnView, einem freien und kostenlosen Bildbetrachter. Nachdem mir nun aber eine Lizenz f&uuml;r das neue ACDSee Pro 3 zugeflogen ist, habe ich mich entschlossen das Bildverwaltungstool eingehender zu testen.</p>
<p>Das Programm ist seit Anfang Oktober zu haben und wirbt mir einer Menge neuer Features, hier mal kurz gelistet:</p>
<ul>
<li>Intuitive Nutzeroberfl&auml;che</li>
<li>Bahnbrechender Bildverarbeitungs-Modus</li>
<li>Verbesserte flexible, zerst&ouml;rungsfreie Verarbeitungseinstellungen</li>
<li>Regler zum Bearbeiten der Lebendigkeit im Bild</li>
<li>Erweiterte Farbe Bild-Verarbeitungs-Werkzeug</li>
<li>Bequemer FTP-Uploader</li>
<li>Kostenloses Ver&ouml;ffentlichen und Speichern von Fotos online</li>
<li>SMTP-Email Unterst&uuml;tzung</li>
</ul>
<p>Um den Workflow eines Fotografen best m&ouml;glichst zu unterst&uuml;tzen, gliedert sich die Anwendung in vier Bereiche: Verwalten, Ansicht, Verarbeiten und Online.</p>
<p><a href="wp-content/uploads/2009/10/30/screenshot-acdsee-pro-3.jpg" title="ACDSee Pro 3"><img src="wp-content/uploads/2009/10/30/thumb-screenshot-acdsee-pro-3.jpg" alt="Screenshot ACDSee Pro 3" width="450" height="275" /></a></p>
<p>Die Featureliste liest sich ganz gut, aber ich bin immer skeptisch bis zu letzten Sekunde. Ein erster Test zeigt aber, dass die Software einiges unter der Haube hat. Sie l&auml;uft schnell und stabil. Der Aufbau ist eben genau so, wie man es sich von einem Bildbetrachter erwartet (sowohl von der Struktur als auch von der Bedienung). An der Stelle ist, mit Ausnahme der stimmigeren Oberfl&auml;che und dem sch&ouml;n aufbereiteten Histogramm der Unterschied zu XnView nicht gro&szlig;. Sehr sch&ouml;n sind allerdings einfach zu erreichende Buttons um Bilder z.B. zu versenden oder eine Diashow zu erstellen. Zudem kann die aktuelle Ansicht als Arbeitsbereich gesichert werden (um so die Men&uuml;struktur zu speichern und ggf. sp&auml;ter wieder herstellen zu k&ouml;nnen).</p>
<p>Wo ACDSee eindeutig die Nase vorne hat, ist im Modus &#8220;Verarbeiten&#8221;. Hier kann das jeweilig gew&auml;hlte Bild bequem bearbeitet werden, wobei neben der herk&ouml;mmlichen Aktionen (Gr&ouml;&szlig;e &auml;ndern, Kontrast, etc.) es komfortable Regler f&uuml;r Einstellungen wie &#8220;Temperatur&#8221;, &#8220;Beleuchtung&#8221; oder &#8220;Lebendigkeit&#8221; hat. Es lassen sich so sehr schnell die wesentlichen Optionen eines Bildes manipulieren und verbessern. Wobei mein Favorit die Option &#8220;Temperatur&#8221; ist, womit die w&auml;rmere oder k&uuml;hlere Farbt&ouml;ne verst&auml;rkt werden k&ouml;nnen. Es lassen sich mittels &#8220;Beleuchtung&#8221; und &#8220;Belichtung&#8221; auch sehr gut Fehler in der Belichtung des Bildes korrigieren.</p>
<p><a href="wp-content/uploads/2009/10/30/screenshot-acdsee-pro-3-2.jpg" title="ACDSee Pro 3"><img src="wp-content/uploads/2009/10/30/thumb-screenshot-acdsee-pro-3-2.jpg" alt="Screenshot ACDSee Pro 3" width="450" height="275" /></a></p>
<p>Ein Reiter Geometrie erlaubt es auch, mit Hilfe von Gitternetzlinien Verzerrungen zu korrigieren. Hier habe ich noch keine so gute Implementierung gesehen. Bisher hat hier bei mir die &#8220;perspektivisch Verzerren&#8221; Funktion von GIMP herhalten m&uuml;ssen.</p>
<p>Zudem k&ouml;nnen Bilder auch direkt &uuml;ber ACDSee online gespeichert und mit anderen geteilt werden. 2GB stellt ACDSee daf&uuml;r zur Verf&uuml;gung. Sicher ein Argument f&uuml;r das Programm, aber eine Funktion die f&uuml;r mich nicht so wichtig ist.</p>
<p><strong>Fazit:</strong> Insgesamt ist ACDSee Pro 3 eine echt super Software. Was XnView kann, steckt auch alles in ACDSee (z.B. Stapelverarbeitung, Diashows erstellen, HTML Galerie erstellen usw.). Der Bearbeitenmodus ist aber eindeutig besser und erlaubt f&uuml;r einen Fotografen intuitivere Einstellungsm&ouml;glichkeiten und ein viel schnelleres und bequemeres Aufbereiten der Fotos. Auch der Online Modus und die M&ouml;glichkeiten Arbeitsbereiche zu speichern sind tolle Erweiterungen. Ob das den Preis rechtfertigt, muss jeder selbst entscheiden. Mit ACDSee Pro 3 liegt man auf jeden Fall nicht falsch.</p>
<p>Weitere Infos: <a href="http://de.acdsee.com/" title="ACDSee Foto-Software">http://de.acdsee.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2009/10/30/neues-bildverwaltungstool-acdsee-pro-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miniskript: Online-Notizzettel 2.0</title>
		<link>http://blog.aditu.de/2009/08/31/miniskript-online-notizzettel-2-0/</link>
		<comments>http://blog.aditu.de/2009/08/31/miniskript-online-notizzettel-2-0/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 17:35:10 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programme]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Verschiedene Skripte]]></category>
		<category><![CDATA[CKEditor]]></category>
		<category><![CDATA[Notizzettel]]></category>

		<guid isPermaLink="false">http://localhost/aditu.de/blog2/?p=243</guid>
		<description><![CDATA[Vor einigen Monaten habe ich hier ein kleines Skript zur Verf&#252;gung gestellt, das als kleiner Online-Notizzettel verwendet werden kann. Mittlerweile nutze ich das Skript t&#228;glich und trotz seiner Einfachheit ist es ein unheimlich n&#252;tzlicher Helfer geworden. F&#252;r alle die das Skript nicht kennen: es ist nichts anderes als ein in Web abgelegter Richt-Text-Editor, in dem [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einigen Monaten habe ich <a href="2009/04/05/Miniskript:-OnlineNotizzettel" title="Miniskript Online Notizzettel">hier ein kleines Skript zur Verf&uuml;gung gestellt</a>, das als kleiner Online-Notizzettel verwendet werden kann. Mittlerweile nutze ich das Skript t&auml;glich und trotz seiner Einfachheit ist es ein unheimlich n&uuml;tzlicher Helfer geworden. F&uuml;r alle die das Skript nicht kennen: es ist nichts anderes als ein in Web abgelegter Richt-Text-Editor, in dem beliebiger Text geschrieben und gespeichert werden kann.</p>
<p><a href="wp-content/uploads/2009/08/31/notes_screenshot.png" title="Online Notizzettel"><img src="wp-content/uploads/2009/08/31/notes_screenshot_thumb.png" alt="Online-Notizzettel" width="419" height="245" /></a></p>
<p>Egal wo man ist, Zuhause, in der Arbeit, in der Uni: von &uuml;berall hat man Zugriff auf dieses eine Dokument und kann dort kurze Notizen und ToDo Listen speichern.</p>
<p>Dieses Skript habe ich nun aktualisiert. Es basiert nun nicht mehr auf <a href="http://tinymce.moxiecode.com/" title="tinyMCE">tinyMCE</a>, sondern auf der neuesten Version vom <a href="http://ckeditor.com/" title="CKEditor">CKEditor</a>. Insgesamt finde ich den Editor ansprechender, schicker und auch praktischer. CKEditor war fr&uuml;her einmal der FCKEditor und ist in der neuesten Version wirklich rundum gelungen. Nur die Dokumentation l&auml;sst etwas zu w&uuml;nschen &uuml;brig.</p>
<p>Das Skript ist nat&uuml;rlich frei verf&uuml;gbar (nur die Lizenz vom CKEditor muss beachtet werden) und darf sonst frei ver&auml;ndert und weiterverwertet werden.</p>
<p>Die Installation ist simpel: einfach die Dateien der ZIP Datei hochladen und f&uuml;r die Datei &#8220;data&#8221; Schreibrechte setzen. Bei Bedarf mittels .htaccess einen Passwortschutz setzen, sonst kann jeder, der die Url kennt eure Notizen lesen. Mit der Tastenkombination &#8220;Alt + S&#8221;, oder dem Speichern Icon, kann das Dokument gespeichert werden.</p>
<p><a href="wp-content/uploads/2009/08/31/notes.zip" title="Miniskript Online Notizzettel">Download: Online-Notizzettel 2.0 (692 kB)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2009/08/31/miniskript-online-notizzettel-2-0/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Guybrush Threepwood ist zurück&#8230;</title>
		<link>http://blog.aditu.de/2009/06/03/guybrush-threepwood-ist-zuruck/</link>
		<comments>http://blog.aditu.de/2009/06/03/guybrush-threepwood-ist-zuruck/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 22:08:27 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programme]]></category>
		<category><![CDATA[Guybrush Threepwood]]></category>
		<category><![CDATA[Monkey Island]]></category>
		<category><![CDATA[Spiele]]></category>

		<guid isPermaLink="false">http://localhost/aditu.de/blog2/?p=223</guid>
		<description><![CDATA[Kaum zu glauben, aber es ist wahr: Monkey Island wird neu aufgelegt. Ich freu mich wahnsinnig auf die technisch verbesserte Version des Klassikers &#8220;The Secret of Monkey Island&#8221;. Diese soll im Sommer erscheinen und auf der LucasArts Seite gibt es schon einen ersten Trailer. Ron Gilbert, einer der f&#252;hrenden Entwickler der ersten Monkey Island Spiele, [...]]]></description>
			<content:encoded><![CDATA[<p>Kaum zu glauben, aber es ist wahr: <a href="http://de.wikipedia.org/wiki/Monkey_island" title="Monkey Island Wikipedia">Monkey Island</a> wird neu aufgelegt. Ich freu mich wahnsinnig auf die technisch verbesserte Version des Klassikers &#8220;The Secret of Monkey Island&#8221;. Diese soll im Sommer erscheinen und auf der LucasArts Seite gibt es schon einen <a href="http://www.lucasarts.com/games/monkeyisland/" title="offizielle Seite LucasArts">ersten Trailer</a>. Ron Gilbert, einer der f&uuml;hrenden Entwickler der ersten Monkey Island Spiele, schreibt in <a href="http://grumpygamer.com/8280380" title="Ron Gilbert Blog">seinem Blog</a> auch &uuml;ber ein komplett neues Spiel mit dem Titel &#8220;<a href="http://www.telltalegames.com/monkeyisland" title="Tales of Monkey Island">Tales of Monkey Island</a>&#8220;. Monatlich sollen ab dem 7. Juli die einzelnen Teile erscheinen.</p>
<p>Wer es kaum noch abwarten kann, der sollte sich vielleicht den Soundtrack saugen oder den ersten Teil nochmal im Schnelldurchlauf als Flashmovie ansehen:</p>
<ul>
<li><a href="http://www.majusarts.de/film/monkey/GER/monkey_ger.html" title="Monkey Island Flash Film">The Secret of Monkey Island Teil 1 als Flash Movie</a></li>
<li><a href="http://soundtracks.mixnmojo.com/" title="Monkey Island Soundtrack">Monkey Island Soundtrack</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2009/06/03/guybrush-threepwood-ist-zuruck/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Gregarius Web RSS Reader</title>
		<link>http://blog.aditu.de/2008/12/13/gregarius-web-rss-reader/</link>
		<comments>http://blog.aditu.de/2008/12/13/gregarius-web-rss-reader/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 14:20:41 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programme]]></category>
		<category><![CDATA[Gregarius]]></category>
		<category><![CDATA[RSS Reader]]></category>

		<guid isPermaLink="false">http://localhost/aditu.de/blog2/?p=162</guid>
		<description><![CDATA[Hinweis: mittlerweile habe ich einen eigenen webbasierten Feedreader programmiert, da Gregarius leider nicht mehr weiterentwickelt wird. Diesen k&#246;nnt ihr hier testen und frei herunterladen: rsslounge. Vor einiger Zeit hab ich bereits nach einem Webreader, den ich auf einem eigenen Server betreiben kann gesucht. Onlinedienste wie der Google Reader sind zwar sehr komfortabel, allerdings habe ich [...]]]></description>
			<content:encoded><![CDATA[<p style="color:#ff0000">Hinweis: mittlerweile habe ich einen eigenen webbasierten Feedreader programmiert, da Gregarius leider nicht mehr weiterentwickelt wird. Diesen k&ouml;nnt ihr hier testen und frei herunterladen: <a href="http://rsslounge.aditu.de" title="rsslounge">rsslounge</a>.</p>
<p>Vor einiger Zeit hab ich bereits nach einem Webreader, den ich auf einem eigenen Server betreiben kann gesucht. Onlinedienste wie der <a href="http://www.google.de/reader/" title="Google Reader">Google Reader</a> sind zwar sehr komfortabel, allerdings habe ich hier Bedenken hinsichtlich des Datenschutzes.</p>
<p>Neben <a href="http://tt-rss.org/trac/" title="tiny tiny RSS">tiny tiny RSS</a> bin ich bei meiner Suche nach guten Reader auf <a href="http://gregarius.net/" title="Gregarius">gregarius</a> gesto&szlig;en.</p>
<p><a href="http://gregarius.net/" title="Gregarius"><img src="wp-content/uploads/2008/12/13/gregarius.png" alt="Gregarius" width="400" height="271" /></a></p>
<p>Gregarius bietet eine umfangreiche Featureliste und ist trotzdem sehr schlicht und einfach. Die Auswahl an Plugins und Themes ist zwar noch recht &uuml;berschaubar, aber ich bin dort trotzdem f&uuml;ndig geworden und die Standardinstallation um sinnvolle Funktionen erg&auml;nzt. Prim&auml;r zu nennen sind:</p>
<ul>
<li>Komplett webbasiert</li>
<li>Eine komfortable Ajax Oberfl&auml;che</li>
<li>OPML Unterst&uuml;tzung</li>
<li>Ordner und Kategorien</li>
<li>Markierungen (aus dennen man wieder RSS Feeds generieren kann)</li>
<li>Manuelles Update der abonnierten RSS Feeds (Update via CronJob optional m&ouml;glich)</li>
</ul>
<p>Da ich den Zugriff auf meine Gregariusinstallation bereits &uuml;ber eine simple htaccess basierte Authentifizierung absichere, habe ich auch ein ganz kleines Plugin erstellt, welches eine autologin Funktion erf&uuml;llt. Mein Eindruck war hier sehr positiv und vielleicht bau ich auch ein paar neue Funktionen dazu (ein paar Details fehlen mir noch).</p>
<p>Ein Online Demo ist <a href="http://rss.gregarius.net/" title="Gregarius Online Demo">hier</a> zu finden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2008/12/13/gregarius-web-rss-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento OpenSource eCommerce</title>
		<link>http://blog.aditu.de/2008/11/08/magento-opensource-ecommerce/</link>
		<comments>http://blog.aditu.de/2008/11/08/magento-opensource-ecommerce/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 21:55:38 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programme]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://localhost/aditu.de/blog2/?p=146</guid>
		<description><![CDATA[Die letzten Tage habe ich mich mit der eCommerce L&#246;sung Magento besch&#228;ftigt. Dabei handelt es sich um den neuen Stern am OpenSource Himmel und bietet eine einheitliche L&#246;sung f&#252;r kommerzielle Online Shops. Die Featureliste ist lange und ein erster Test offenbart eine grundsolide Struktur. Magento bietet folgende wichtige Features: Verwaltung mehrerer Webseiten und Webshops mehrsprachig [...]]]></description>
			<content:encoded><![CDATA[<p>Die letzten Tage habe ich mich mit der eCommerce L&ouml;sung <a href="http://www.magentocommerce.com/" title="Magento eCommerce">Magento</a> besch&auml;ftigt. Dabei handelt es sich um den neuen Stern am OpenSource Himmel und bietet eine einheitliche L&ouml;sung f&uuml;r kommerzielle Online Shops. Die Featureliste ist lange und ein erster Test offenbart eine grundsolide Struktur. Magento bietet folgende wichtige Features:</p>
<ul>
<li>Verwaltung mehrerer Webseiten und Webshops</li>
<li>mehrsprachig</li>
<li>Unterst&uuml;tzt verschiedene Lokalisierungen und W&auml;hrungen</li>
<li>Vielf&auml;ltige Administrationsm&ouml;glichkeiten (Benutzer, Rollen etc.)</li>
<li>100% anpassungsf&auml;higes Design</li>
<li>uvm.</li>
</ul>
<p>Das Erstellen von individuellen Templates ist aufgrund der durchdachten Struktur sehr einfach. Das Layout basiert auf XML Dateien, die beschreiben wie eine einzelne Seite aussieht und welche Template Dateien daf&uuml;r ben&ouml;tigt und welche Module geladen werden m&uuml;ssen.</p>
<p>Magento basiert auf dem Zend Framework, was es zwar hinsichtlich der Hardwareausstattung des Servers anspruchsvoller macht, aber f&uuml;r ein extrem aufger&auml;umtes und sauberes Backend sorgt. Mittels dem Magento Downloader k&ouml;nnen auch Extensions nachgeladen werden. Hier ist die Auswahl allerdings noch begrenzt, was aber nur eine Frage der Zeit sein d&uuml;rfte bis hier die Auswahl umfangreicher wird.</p>
<p>Ein <a href="http://demo.magentocommerce.com/" title="Magento eCommerce Beispielshop">Beispielshop</a> ist auf der Webseite von Magento zu finden:</p>
<p><a href="http://demo.magentocommerce.com/" title="Magento eCommerce Beispielshop"><img src="wp-content/uploads/2008/11/08/magento_example_store.jpg" alt="Magento Beispielshop" width="400" height="239" /></a></p>
<p>&Uuml;ber die Magento Administrationsoberfl&auml;chen k&ouml;nnen verschiedene Webseiten eingerichtet werden. Diese k&ouml;nnen wiederum verschiedene Stores enthalten. Ebenso werden CMS Seiten angeboten. Weitere Features sind eine Webservice API Schnittstelle, verschiedenste Berichte und eine breite Palette an Funktionen wie man sie von professionellen Webshops her bereits kennt. Dabei ist auch die Administrationsoberfl&auml;che sehr schlicht, &uuml;bersichtlich und aufger&auml;umt.</p>
<p><a href="http://demo-admin.magentocommerce.com/" title="Magento eCommerce Beispielshop Administration"><img src="wp-content/uploads/2008/11/08/magento_example_store_admin.jpg" alt="Magento Administrationsoberfl&auml;che" width="400" height="238" /></a></p>
<p>Ich kann nur empfehlen einen Blick auf dieses Projekt zu werfen, denn es hat das Potential etablierten Plattformen wie xt:Commerce den Rang abzulaufen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2008/11/08/magento-opensource-ecommerce/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SQL Buddy</title>
		<link>http://blog.aditu.de/2008/10/03/sql-buddy/</link>
		<comments>http://blog.aditu.de/2008/10/03/sql-buddy/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 19:20:33 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programme]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL Buddy]]></category>

		<guid isPermaLink="false">http://localhost/aditu.de/blog2/?p=132</guid>
		<description><![CDATA[Als webbasierte Administrationsoberfl&#228;che f&#252;r MySQL Datenbanken hat sich phpMyAdmin mittlerweilen sehr stark etabliert und ist praktisch &#252;berall anzutreffen. Eine sehr schlanke und vom Bedienkonzept angenehmere Variante ist SQL Buddy. Das PHP OpenSource Programm verf&#252;gt &#252;ber eine ajaxbasierte Oberfl&#228;che, die sehr &#252;bersichtlich und schlicht gehalten ist. Dabei sind verschiedenste Sprachen verf&#252;gbar und man kommt ohne Setup [...]]]></description>
			<content:encoded><![CDATA[<p>Als webbasierte Administrationsoberfl&auml;che f&uuml;r MySQL Datenbanken hat sich <a href="http://www.phpmyadmin.net/" title="phpmyadmin">phpMyAdmin</a> mittlerweilen sehr stark etabliert und ist praktisch &uuml;berall anzutreffen. Eine sehr schlanke und vom Bedienkonzept angenehmere Variante ist <a href="http://www.sqlbuddy.com/" title="SQL Buddy">SQL Buddy</a>.</p>
<p><a href="http://www.sqlbuddy.com/" title="SQL Buddy"><img src="wp-content/uploads/2008/10/03/sqlbuddy.jpg" alt="SQL Buddy" width="400" height="251" /></a></p>
<p>Das PHP OpenSource Programm verf&uuml;gt &uuml;ber eine ajaxbasierte Oberfl&auml;che, die sehr &uuml;bersichtlich und schlicht gehalten ist. Dabei sind verschiedenste Sprachen verf&uuml;gbar und man kommt ohne Setup aus (hochladen, Logindaten eingeben und los gehts).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2008/10/03/sql-buddy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synchronisation Notebook und PC</title>
		<link>http://blog.aditu.de/2008/05/23/synchronisation-notebook-und-pc/</link>
		<comments>http://blog.aditu.de/2008/05/23/synchronisation-notebook-und-pc/#comments</comments>
		<pubDate>Fri, 23 May 2008 22:54:10 +0000</pubDate>
		<dc:creator>Tobi</dc:creator>
				<category><![CDATA[Programme]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[SyncBack]]></category>
		<category><![CDATA[Synchronisation]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://localhost/aditu.de/blog2/?p=95</guid>
		<description><![CDATA[Jeder der mit mehren Rechnern arbeitet kennt das Problem, seine Daten, Profile und Informationen auf jedem System konsistent zu halten. Für mich bietet sich hier ein recht einfaches Szenario: zwischen Notebook und stationären PC, am heimatlichen Schreibtisch, müssen wechselseitig die aktuellen Daten (Firefox, Thunderbird, Pidgin Profil, Datenverzeichnisse etc.) übertragen werden. Dabei arbeite ich immer nur [...]]]></description>
			<content:encoded><![CDATA[<p>Jeder der mit mehren Rechnern arbeitet kennt das Problem, seine Daten, Profile und Informationen auf jedem System konsistent zu halten. Für mich bietet sich hier ein recht einfaches Szenario: zwischen Notebook und stationären PC, am heimatlichen Schreibtisch, müssen wechselseitig die aktuellen Daten (Firefox, Thunderbird, Pidgin Profil, Datenverzeichnisse etc.) übertragen werden. Dabei arbeite ich immer nur an einem Rechner. Bei einem Wechsel des Systems werden dann die veränderten Daten kopiert.</p>
<p>Für <strong>Windows</strong> gibt es hier eine sehr komfortable Lösung: die Freeware <a href="http://www.2brightsparks.com/downloads.html#freeware">SyncBack</a> aus dem Hause <a href="http://www.2brightsparks.com">2BrightSparks</a>. Die Software erlaubt es verschiedene Tasks mit jeweiliger Quelle und Ziel, Filter und verschiedenste Optionen anzugeben. Dabei kommt SyncBack auch mit Windows Freigaben, ZIP Dateien und FTP Transfers zurecht. Diese einzelnen Tasks können dann parallel gestartet werden. Das Verhalten von SyncBack kann dabei sehr genau festgelegt werden. Meine Tasks vergleichen das Quellverzeichnis mit dem Zielverzeichnis, kopieren fehlende und veränderte Dateien/Verzeichnisse in das Ziel und löschen Dateien/Verzeichnisse im Ziel wenn diese nicht im Quellverzeichnis sind.</p>
<p><img src="wp-content/uploads/2008/05/23/syncback.jpg" alt="SyncBack" width="400" height="240" /></p>
<p>SyncBack gibt es auch als kostenpflichtige Version, allerdings ist die Freeware-Version sehr mächtig und ich habe nie ein Feature vermisst. Die Unterschiede gibt es hier als Übersicht: <a href="http://www.2brightsparks.com/syncback/compare.html">Compare SyncBack Freeware and SyncBackSE</a>. Ich nutze diese Software schon seit knapp zwei Jahren und sie läuft sehr zuverlässig und stabil. Sonderbar das nur wenige Softwareverzeichnisse das Programm listen.</p>
<p>Für mein <strong>Linux (Ubuntu)</strong> benutze ich das mit Ubuntu mitgelieferte <a href="http://samba.anu.edu.au/rsync/">rsync</a>. Eine hervorragende Software, die zahlreiche Funktionen bietet. Für die Kommunikation greife ich (wie auch bei SyncBack) auf Samba Freigaben zurück. Zuerst wird das entfernte Verzeichnis des Notebooks gemounted (mit cifs) und anschließend werden die Verzeichnisse mit rsync abgeglichen:</p>
<pre class="brush: bash; title: ; notranslate">
sudo mount -t cifs &quot;//192.88.81.123/freigabe&quot; &quot;/mnt/notebook/&quot; -o umask=000,iocharset=utf8,codepage=850,sec=none
[ $? == &quot;0&quot; ] &amp;&amp; rsync --ignore-times -t -r --progress --delete &quot;/mnt/notebook/&quot; &quot;/home/test/xyz/&quot;
sudo umount &quot;/mnt/notebook/&quot;
</pre>
<p>Der Parameter &#8211;ignore-times kommt nur dann zum Einsatz, wenn ein Vergleich über den Modification Zeitstempel der Datei nicht möglich ist (z.B. wenn die Verzeichnisse TrueCrypt Container enthalten, bei denen auch bei einer Änderung des Inhalts der Zeitstempel nicht aktualisiert wird). Für diesen Parameter gibt es in SynBack ein Pendant der im Task Profil aktiviert werden kann.Der Parameter -t sorgt dafür das die modification time nicht aktualisiert wird, -r sorgt dafür das Unterverzeichnisse einbezogen werden, &#8211;progress führt dazu das die Übertragung der Dateien ausgegeben wird, &#8211;delete löscht nicht in der Quelle vorhandene Dateien im Ziel (weitere Parameter siehe <a href="http://samba.anu.edu.au/ftp/rsync/rsync.html">man page</a>).<br />
Für jeden Task wird dies, entsprechend mit den jeweilig angepassten Quell- und Zielverzeichnissen durchgeführt. Für die Wahl des jeweiligen Verzeichnisses nutze ich die Dialogsteuerung Zenity (die ebenfalls im Ubuntu mitgeliefert wird). Insgesamt ergibt sich so ein Skript das sich ganz gut bewährt hat und schon einige Monate zuverlässig seine Aufgabe erfüllt.</p>
<p>Wenn jemand ähnliches nutzt, oder Ideen/Gedanken für eine Verbesserung des Skriptes hat, kann sie mir gerne zusenden oder auf diesen Beitrag kommentieren. Das gesamte Skript gibt es hier: <a href="wp-content/uploads/2008/05/23/sync.sh">sync</a> (Hinweis: bevor ihr das Skript ausprobiert und eure Daten synchronisiert immer erst ein Backup machen, Nutzung also auf eigene Gefahr). Über Feedback oder Ideen freue ich mich, sicherlich kann man an dem Ganzen einiges verbessern. Ebenso interessiert mich, wie ihr euer Notebook/PC abgleicht.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.aditu.de/2008/05/23/synchronisation-notebook-und-pc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

