<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>kringkaste</title><generator>Tumblr (3.0; @kringkaste)</generator><link>http://kringkaste.de/</link><item><title>Point - Bezahlbarer, einfacher und hochverfügbarer DNS-Service</title><description>&lt;p&gt;Ich persönlich habe aktuell rund 50 Domains registriert (Tendenz weiter steigend), die ich bei einem zentralen Domain-Service selbst verwalte. Dieser bietet mir zwar eine einfache und schnelle Registrierung, aber leider keine wirklich handhabbare Weboberfläche, mit der ich die dazugehörigen DNS-Einträge verwalten kann. Dies ärgert mich schon seit langer Zeit. Leider blieben Hinweise an den Domain-Service bislang ungehört.&lt;/p&gt;
&lt;p&gt;Da ich mich nicht weiter durch diese Weboberfläche gängeln lassen wollte und ich auch keine Lust hatte alle meine Domains wieder umzuziehen, bin ich schon vor längerer Zeit auf die Suche nach einem bezahlbaren, einfach zu bedienenden und hochverfügbaren DNS-Service gegangen. Dabei hat mich erstaunt, wie viele Anbieter es auf diesem Markt gibt. Alle glänzen mit zahlreichen Funktionen, die ich alle nicht benötige, aber teuer mitbezahlen müsste. Beispiel hierfür ist GEO-Relocation, also die Rückgabe unterschiedlicher IP-Adressen je nach Standort.&lt;/p&gt;
&lt;p&gt;Für mich waren die folgenden Kriterien wichtig:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;einfache, klar strukturierte Weboberfläche mit SSL-Verschlüsselung&lt;/li&gt;
&lt;li&gt;Eintragung aller gängigen Record-Typen mit eigener TTL je Eintrag und Zone&lt;/li&gt;
&lt;li&gt;Abrechnung nur nach Domains, nicht nach DNS-Abfragen&lt;/li&gt;
&lt;li&gt;Hochverfügbar durch mindestens drei DNS-Server in unterschiedlichen Autonomen Systemen (nach RFC2182)&lt;/li&gt;
&lt;li&gt;mindestens zwei unterschiedliche TLDs bei den DNS-Servern&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Schlussendlich habe ich mich dann für &lt;a href="http://pointhq.com/"&gt;Point&lt;/a&gt; entschieden. Ein Service der &lt;a href="http://atechmedia.com/"&gt;atechmedia&lt;/a&gt;, die auch andere, sehr interessante Services für Entwickler bereitstellen. Der Service erfüllt alle meine Anforderungen mit Ausnahme der unterschiedlichen TLDs bei den DNS-Servern, aber vielleicht wird diese Funktion ja noch hinzugefügt (kann ich aktuell mit leben). So trage ich bei meinem Domain-Service nur noch die DNS-Server von Point ein und mache den Rest dann dort.&lt;/p&gt;
&lt;p&gt;Was mir bei atechmedia auch gefällt ist, dass ich das Gefühl habe, dass sich die Services stets weiterentwickeln. Es wird daran gearbeitet und man wird darüber auch informiert. Wartungen werden angekündigt und zeigen mir, dass das System nicht einfach so dahin läuft.&lt;/p&gt;
&lt;p&gt;Neben den für mich wichtigen Funktionen gibt es auch noch eine API (leider noch nicht wirklich Dokumentiert - RTSL!) und die Möglichkeit Untermieter hinzuzufügen, so dass man sich die Kosten teilen kann, ohne dass der eine dem anderen in die DNS-Suppe spucken kann.&lt;/p&gt;
&lt;p&gt;Der Service ist bis zu 10 Domains kostenlos, dann werden normaler Weise 48£ pro Jahr für bis zu 75 Domains fällig. Ein wirklich überschaubarer Preis für die Leistung.&lt;/p&gt;
&lt;p&gt;Wer übrigens mal seine eigene Domain und deren Namensauflösung unter die Lupe nehmen möchte, der kann dies ganz einfach unter &lt;a href="http://dr.xoozoo.com"&gt;&lt;a href="http://dr.xoozoo.com"&gt;http://dr.xoozoo.com&lt;/a&gt;&lt;/a&gt; tun.&lt;/p&gt;</description><link>http://kringkaste.de/post/3637935794</link><guid>http://kringkaste.de/post/3637935794</guid><pubDate>Fri, 04 Mar 2011 11:51:59 +0100</pubDate></item><item><title>Tschüs Bazaar - Willkommen Mercurial!</title><description>&lt;p&gt;Vor etwa zwei Jahren bin ich von Subversion zu &lt;a href="http://bazaar.canonical.com/en/"&gt;Bazaar&lt;/a&gt; gewechselt. Der Schritt vom zentralen zum verteilten Repositorium war kein großer Schritt für mich und ich hatte mich schnell an das “neue” Arbeiten gewöhnt.&lt;/p&gt;
&lt;p&gt;Meine Wahl fiel damals auf Bazaar weil ich die Hoffnung hatte, dass sich dieses mit der Unterstützung durch &lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt; am weitesten verbreiten würde und damit viele neue Lösungen entstehen würden. Immerhin war damals bereits MySQL auf Bazaar gewechselt.&lt;/p&gt;
&lt;p&gt;Da bin ich nach zwei Jahren nun aber eines Besseren belehrt worden. Meine aktuelle IDE NetBeans kennt immer noch keine Unterstützung von Bazaar und es ist auch nicht abzusehen, ob und wann dies stabil der Fall sein könnte. Von einer brauchbaren GUI für Mac brauchen wir gar nicht erst zu reden. Ja, auch ich nutze in 99% der Fälle die Kommandozeile, aber manchmal ist eine grafische Darstellung von Changesets, wie es manche GUI anderer Versionskontrollsysteme bieten, sehr hilfreich.&lt;/p&gt;
&lt;p&gt;Auch mein Wunsch nach einem Projekthosting, welches ich als Service nutzen kann, konnte ich mit Bazaar nicht realisieren. Launchpad hat für mich immer noch den Charme eines zusammengewürfelten Molochs. Ich wäre auch bereit dafür einen kleinen monatlichen Betrag zu zahlen. Da schaut man dann schon sehr neidisch auf &lt;a href="http://github.com/"&gt;github&lt;/a&gt; und Co.&lt;/p&gt;
&lt;p&gt;Nun vor ein paar Wochen habe ich mich dann dazu entschlossen meine Bedürfnisse mit dem aktuellen Markt abzugleichen. Meine Anforderungen waren:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Open Source Software&lt;/li&gt;
&lt;li&gt;Kommandozeilentool für alle gängigen Betriebssysteme&lt;/li&gt;
&lt;li&gt;GUIs von Drittanbietern für Macs, gerne auch kostenpflichtig&lt;/li&gt;
&lt;li&gt;Unterstützung durch NetBeans&lt;/li&gt;
&lt;li&gt;Seriöse Anbieter für Projekthosting im Internet&lt;/li&gt;
&lt;li&gt;Möglichkeit der Übernahme der Changesets&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Viele der Versionskontrollsysteme (und es gibt wirklich eine Menge, war mir gar nicht so bewusst) konnten nur ein paar meiner Anforderungen abdecken. Am Ende standen zwei Systeme in der engeren Wahl: Git und Mercurial.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt; ist der aktuelle Hype in der Szene. Es gibt mittlerweile eine ganze Reihe von Angeboten für Projekthosting (ja, es gibt mehr als nur github) und auch das Angebot an Software ist relativ groß. Git wird nicht direkt von NetBeans unterstützt, aber es gibt ein funktionierendes &lt;a href="http://nbgit.org/"&gt;Plugin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Von &lt;a href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt; hatte ich schon vorher mal gehört, aber nie weiter verfolgt. Es gibt ebenfalls mehrere Angebote für Projekthosting und auch das Angebot an Software ist gut. Ein Pluspunkt ist, dass Mercurial direkt von NetBeans unterstützt wird. Also kein zusätzliches Plugin nötig.&lt;/p&gt;
&lt;p&gt;Beide Systeme erfüllen alle meine Anforderungen. Am Ende hat mir Mercurial am besten gefallen. Man muss ja auch nicht immer jeden Hype mitmachen.&lt;/p&gt;
&lt;p&gt;Als Projekthosting hatte ich mich für &lt;a href="http://bitbucket.org/"&gt;BitBucket&lt;/a&gt; entschieden. Da war in der kostenlosen Variante zwar die Anzahl der privaten Repositorien begrenzt, aber es musste ja nicht kostenlos sein, bin ja bereit für Leistung auch etwas zu bezahlen. Doch die Jungs hatten schwer mit ihrer Verfügbarkeit zu kämpfen. Der Service war oft nicht erreichbar oder quälend langsam. In ihrem Blog haben sie dann vor kurzem mitgeteilt, dass sie von Amazon EC2 auf Dedicated Server umgestiegen sind, und siehe da, schon war es deutlich besser. Grund für die schlechte Performance bei EC2 war laut &lt;a href="http://blog.bitbucket.org/2010/08/25/bitbucket-downtime-for-a-hardware-upgrade/"&gt;ihrer Aussage&lt;/a&gt; der Hauptspeicher und das EBS. Interessant.&lt;/p&gt;
&lt;p&gt;Heute nun hat BitBucket mitgeteilt, dass sie von &lt;a href="http://www.atlassian.com/"&gt;Atlassian&lt;/a&gt; übernommen wurden. Die Firma ist insbesondere für &lt;a href="http://www.atlassian.com/software/jira/"&gt;Jira&lt;/a&gt; bekannt, für mich keine Unbekannte. Mal sehen, was aus dieser Verbindung erwächst. Die erste, mit der Übernahme verkündete Änderung finde ich zumindest sehr positiv: Alle Paket, also auch das kostenfreie, beinhalten nun eine nicht limitierte Anzahl an privaten Repositorien. Die Pakete unterscheiden sich nur noch durch die Anzahl der beteiligten Personen. Und das freie Paket beinhaltet gleich fünf solcher. Das reicht auch für kleine Firmen völlig aus. Ein echter Pluspunkt gegenüber github.&lt;/p&gt;</description><link>http://kringkaste.de/post/3277425631</link><guid>http://kringkaste.de/post/3277425631</guid><pubDate>Wed, 29 Sep 2010 12:01:00 +0200</pubDate></item><item><title>Brauchbarer Ersatz für Zend_View_Helper_Navigation_Menu</title><description>&lt;p&gt;Nicht nur am Klassennamen bricht man sich einen ab, auch bei der Verwendung von Zend_View_Helper_Navigation_Menu stellt man relativ schnell fest, dass der View-Helper zum erzeugen von Menüs aus Zend_Navigation nur eingeschränkt brauchbar ist.&lt;/p&gt;
&lt;p&gt;Ein Beispiel aus der Praxis. Nehmen wir folgende Menüstruktur an:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Home&lt;/li&gt;
&lt;li&gt;Inhalt       
&lt;ul&gt;&lt;li&gt;Seite 1&lt;/li&gt;
&lt;li&gt;Seite 2 (isActive)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;anderer Inhalt       
&lt;ul&gt;&lt;li&gt;Seite 3     
&lt;ul&gt;&lt;li&gt;Seite 4&lt;/li&gt;
&lt;li&gt;Seite 5&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Seite 6&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Login&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Nehmen wir an, die aktuelle Seite die angezeigt wird ist “Seite 2” und diese ist in Zend_Navigation auch als solche markiert. Mit dem vorhandenen View-Helper kann man das Menü jetzt nur wie folgt rendern lassen:&lt;/p&gt;
&lt;p&gt;Vollständig mit allen Untermenüs:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Home&lt;/li&gt;
&lt;li&gt;Inhalt       
&lt;ul&gt;&lt;li&gt;Seite 1&lt;/li&gt;
&lt;li&gt;Seite 2 (isActive)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;anderer Inhalt       
&lt;ul&gt;&lt;li&gt;Seite 3     
&lt;ul&gt;&lt;li&gt;Seite 4&lt;/li&gt;
&lt;li&gt;Seite 5&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Seite 6&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Login&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Auf eine der Ebenen beschränken (Depth):&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Home&lt;/li&gt;
&lt;li&gt;Inhalt&lt;/li&gt;
&lt;li&gt;anderer Inhalt&lt;/li&gt;
&lt;li&gt;Login&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Oder nur den aktiven Branch:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Inhalt      
&lt;ul&gt;&lt;li&gt;Seite 1&lt;/li&gt;
&lt;li&gt;Seite 2 (isActive)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Was nicht geht, aber sicherlich der gängigste Ansatz eines Menüs ist, nämlich nur den aktiven Branch ausgeklappt anzeigen zu lassen, geht nicht. Also zum Beispiel folgendes:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Home&lt;/li&gt;
&lt;li&gt;Inhalt      
&lt;ul&gt;&lt;li&gt;Seite 1&lt;/li&gt;
&lt;li&gt;Seite 2 (isActive)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;anderer Inhalt&lt;/li&gt;
&lt;li&gt;Login&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Was auch üblich ist, dass wenn ein Menüpunkt, der Untermenüs besitzt, aktiv ist, dieses Untermenü nur in der nächsten Ebene anzuzeigen. Beispiel:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Home&lt;/li&gt;
&lt;li&gt;Inhalt&lt;/li&gt;
&lt;li&gt;anderer Inhalt (isActive)      
&lt;ul&gt;&lt;li&gt;Seite 3&lt;/li&gt;
&lt;li&gt;Seite 6&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Login&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Wer einen brauchbaren View-Helper für die letzten beiden Fälle benötigt, ist aktuell bei Zend aufgeschmissen. Was für mich nicht verständlich ist, ist die Tatsache, dass bereits seit Juni 2009 ein &lt;a href="http://framework.zend.com/issues/browse/ZF-6941"&gt;passender Patch&lt;/a&gt; von Patrice De Saint Steban zur Verfügung steht und bis dato nicht den Weg in das offizielle Release gefunden hat. Dabei ist seine Lösung so smart und einfach, dass es keine Hürde geben sollte.&lt;/p&gt;
&lt;p&gt;Ich habe den Patch in mein persönliches Framework übernommen. Nicht als Patch der eigentlichen Klasse im Zend Framework, sondern als eigene Klasse, die ich dann als View-Helper in der Bootstrap.php registriere:&lt;/p&gt;
&lt;pre class="brush: php"&gt;	protected function _initNavigation()
	{
		$this-&gt;bootstrap('view');
		$this-&gt;bootstrap('acl');
		$acl = $this-&gt;getResource('acl');
		$view = $this-&gt;getResource('view');
		$config = new Zend_Config_Ini(APPLICATION_PATH.DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'navigation.ini');
		$navigation = new Zend_Navigation($config);
		$helper = new Paaliaq_View_Helper_Navigation_Menu();
		$view-&gt;registerHelper($helper, 'menu');
		$view-&gt;menu($navigation);
		$view-&gt;menu()-&gt;setAcl($acl);
		return $navigation;
	}
&lt;/pre&gt;
&lt;p&gt;Zu beachten ist, dass der neue View-Helper nicht auf navigation() sondern auf menu() hört. Und schon kann man mit Zend_Navigation und dem eigenen View-Helper auch brauchbare Menüs zaubern.&lt;/p&gt;</description><link>http://kringkaste.de/post/3277401556</link><guid>http://kringkaste.de/post/3277401556</guid><pubDate>Tue, 14 Sep 2010 12:06:00 +0200</pubDate></item><item><title>Zend Framework mit Smarty verbinden</title><description>&lt;p&gt;Der Entwickler Moo hat in seinem Blog einen &lt;a href="http://www.mooduino.co.uk/2010/07/using-php-smarty-template-engine-with.html"&gt;interessanten Artikel&lt;/a&gt; über den Einsatz der weit verbreiteten und sehr beliebten Template-Engine &lt;a href="http://www.smarty.net/"&gt;Smarty&lt;/a&gt; in Projekten mit dem &lt;a href="http://framework.zend.com/"&gt;Zend Framework&lt;/a&gt; verfasst.&lt;/p&gt;
&lt;p&gt;Im Unterschied zu vielen anderen Artikeln die es dazu schon gibt, ist dieser brandaktuell und berücksichtigt insbesondere die Neuerungen rund um das Zend_Layouts ab der Version 1.10 des PHP Frameworks. Der Artikel ist ein sehr guter Einstiegspunkt wenn man plant beide Welten in eigenen Projekten miteinander zu vereinen.&lt;/p&gt;
&lt;p&gt;Aus meiner Sicht gibt es leider noch zwei Punkte die nicht so schön sind und einer 100% Verschmelzung noch im Wege stehen. Dazu gehört, dass die Templates weiterhin *.phtml als Suffix haben, statt den von Smarty üblichen *.tpl. Das ließe sich zwar einfach mit der Zeile&lt;/p&gt;
&lt;pre class="brush: php"&gt;$viewRender-&gt;setViewSuffix('tpl');&lt;/pre&gt;
&lt;p&gt;in der Init-Funktion des Views in der Bootstrap-Klasse ändern, aber wenn man das Zend_Tool “zf” verwendet um Controller und Actions automatisch anzulegen, werden die dazugehörigen View-Skripte automatisch als *.phtml erzeugt. Die könnte man zwar danach umbenennen oder auch den Provider der Funktion von Zend_Tool anpassen, aber das ist viel Aufwand für so einen “Schönheitsfehler”. Ich bevorzuge daher meiner IDE mitzuteilen, dass *.phtml Smarty-Templates sind, damit das Syntax-Highlighting funktioniert. Mehr brauche ich nicht.&lt;/p&gt;
&lt;p&gt;Der andere Schönheitsfehler ist der von Moo vorgeschlagene Workaround für die gleichen Scopes von Smarty und Zend_View bzw. Zend_Layout:&lt;/p&gt;
&lt;pre class="brush: php"&gt;$this-&gt;assign('_view', $this);
$this-&gt;assign('_layout', $this-&gt;layout());
&lt;/pre&gt;
&lt;p&gt;Dieser Workaround ist leider unumgänglich, denn sowohl Smarty als auch Zend_View beanspruchen das $this in den Templates für sich. Das ist echt gewöhnungsbedürftig.&lt;/p&gt;
&lt;p&gt;Wenn man statt der noch aktuellen Version 2.6.x die neue Version 3.0 (immer noch RC) von Smarty einsetzen möchte, dann sollte man den Hinweis in den Kommentaren berücksichtigen, dass die Funktion get_template_vars($key) deprecated ist und durch die Funktion getTemplateVars($key) in der View-Klasse für Smarty ersetzt werden muss.&lt;/p&gt;</description><link>http://kringkaste.de/post/3277380713</link><guid>http://kringkaste.de/post/3277380713</guid><pubDate>Tue, 31 Aug 2010 22:19:00 +0200</pubDate></item><item><title>Mitt oppsett</title><description>&lt;p&gt;Ich werde immer wieder mal danach gefragt, was ich für ein Programm für diesen oder jenen Zweck verwende. Dazu habe ich hier auf der Webseite mal mein &lt;a href="http://kringkaste.de/mittoppsett"&gt;Setup&lt;/a&gt; hinterlegt. Vielleicht interessiert es ja den ein oder anderen, ansonsten ist es sicherlich auch eine Art Backup für mich, falls ich mal in die angenehme Gelegenheit komme, einen neu erstandenen Mac einzurichten :-)&lt;/p&gt;
&lt;p&gt;Viel Spaß beim stöbern. Für Empfehlungen bin ich übrigens immer offen und ich werde die Liste regelmäßig aktualisieren.&lt;/p&gt;</description><link>http://kringkaste.de/post/3277354524</link><guid>http://kringkaste.de/post/3277354524</guid><pubDate>Sun, 29 Aug 2010 16:02:00 +0200</pubDate></item><item><title>Arbeitsspeicher und Anzahl von Prozessen einfach visualisieren</title><description>&lt;p&gt;Um schnell in der Bash einen Überblick über die Verwendung von Arbeitsspeicher eines Prozesses bzw. einer Gruppe von Prozessen und deren Anzahl zu bekommen, bediene ich mich gerne eines Einzeilers der mir durch Farben dieses darstellt. Der Vorteil dabei ist, dass man diesen Prozess auch im Hintergrund laufen lassen kann und man mit einem kurzen flüchtigen Blick sieht, ob es sich zum negativen oder positiven verändert.&lt;/p&gt;
&lt;p&gt;Die zu untersuchenden Prozesse werden dabei in der Umgebungsvariablen TESTCASE definiert, wobei hier einfach die Parameter des “ps” Befehls Verwendung finden. Im Grund brauche ich nur zwei Varianten:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;-u &lt;em&gt;USERNAME&lt;/em&gt; &lt;/li&gt;
&lt;li&gt;-C &lt;em&gt;PROZESSNAME&lt;/em&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Man kann die Parameter natürlich auch kombinieren. Als Ausgabe bekommt man dann eine einfache Liste, die je nach Änderung des Wertes (grün = Verbesserung, rot = Verschlechterung, weiß = keine Änderung) sich einfärbt.&lt;/p&gt;
&lt;p&gt;Die Spalten haben folgende Bedeutung:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Timestamp&lt;/li&gt;
&lt;li&gt;Freier Arbeitsspeicher des Systems&lt;/li&gt;
&lt;li&gt;Verwendeter Swapspeicher&lt;/li&gt;
&lt;li&gt;Speicherverbrauch der Prozesse (RSS)&lt;/li&gt;
&lt;li&gt;Anzahl der Prozesse&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Das folgende Beispiel zeigt die Beobachtung eines Apache httpd auf einem Ubuntu Server:&lt;/p&gt;
&lt;pre class="brush: bash"&gt;export TESTCASE="-u www-data";while true; do datum=`date +%T`; export memfree=`cat /proc/meminfo | grep "MemFree" | awk '{print $2;}'`; export swapfree=`cat /proc/swaps | grep -v "Used" | awk '{SUM += $4;} END {print SUM}'`; echo -n "$datum "; awk 'BEGIN{if (ENVIRON["memfree"]&lt;ENVIRON["memfree_old"]) {printf "\033[31;40m" ENVIRON["memfree"] "\033[37;40m "} else if (ENVIRON["memfree"]&gt;ENVIRON["memfree_old"]) {printf "\033[32;40m" ENVIRON["memfree"] "\033[37;40m "} else {printf ENVIRON["memfree"] " "}}'; export memfree_old=$memfree; awk 'BEGIN{if (ENVIRON["swapfree"]&lt;ENVIRON["swapfree_old"]) {printf "\033[;31;40m" ENVIRON["swapfree"] "\033[37;40m "} else if (ENVIRON["swapfree"]&gt;ENVIRON["swapfree_old"]) {printf "\033[32;40m" ENVIRON["swapfree"] "\033[37;40m "} else {printf ENVIRON["swapfree"] " "}}'; export swapfree_old=$swapfree; export usage=`ps $TESTCASE -o size | grep -v SZ | awk '{ SUM += $1;} END { print SUM }'`; awk 'BEGIN{if (ENVIRON["usage"]&gt;ENVIRON["usage_old"]) {printf "\033[31;40m" ENVIRON["usage"] "\033[37;40m "} else if (ENVIRON["usage"]&lt;ENVIRON["usage_old"]) {printf "\033[32;40m" ENVIRON["usage"] "\033[37;40m "} else {printf ENVIRON["usage"] " "}}'; export usage_old=$usage; export processes=`ps $TESTCASE -o size | grep -v SZ | awk '{ SUM += 1;} END { print SUM }'`; awk 'BEGIN{if (ENVIRON["processes"]&gt;ENVIRON["processes_old"]) {printf "\033[31;40m" ENVIRON["processes"] "\033[37;40m "} else if (ENVIRON["processes"]&lt;ENVIRON["processes_old"]) {printf "\033[32;40m" ENVIRON["processes"] "\033[37;40m "} else {printf ENVIRON["processes"] " "}}'; export processes_old=$processes; echo ""; sleep 5; done&lt;br/&gt;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Je nach Bedarf kann man den Befehl natürlich beliebig verändern und erweitern. So verwende ich zum Beispiel bei Servern, die Apache, Tomcat und MySQL auf einem Server laufen lassen, eine erweiterte Version, in der ich auch noch den Speicherverbrauch jedes einzelnen Programms gleichzeitig ausgebe. Warum ich den Einzeiler nicht in ein übersichtliches Skript packe hat einen ganz einfachen Grund: So kann ich durch Copy&amp;Paste das ganze sehr schnell auf einem anderen System ausführen.&lt;/p&gt;
&lt;p&gt;Noch eine Anmerkung zum hier ausgegebenen Wert RSS der Prozesse: Ja, dieser Wert zeigt nicht genau den Speicherverbrauch an. Aber in den meisten Fällen reicht dieser Wert vollkommen aus.&lt;/p&gt;</description><link>http://kringkaste.de/post/3275551575</link><guid>http://kringkaste.de/post/3275551575</guid><pubDate>Thu, 26 Aug 2010 10:00:00 +0200</pubDate></item><item><title>GPGMail in neuer Version</title><description>&lt;p&gt;Ich nutze schon sehr lange &lt;a href="http://www.gpgmail.org/"&gt;GPGMail&lt;/a&gt; für die Signierung und Verschlüsselung von Emails, die ich via Mail.app versende. GPGMail ist ein Plugin für Mail.app unter OSX um aus Mail.app heraus Emails zu Ver- und Entschlüsseln sowie Emails zu signieren oder Signaturen zu überprüfen.&lt;/p&gt;
&lt;p&gt;Da ich immer noch mit Leopard arbeite, ist die neue Version von GPGmail, die seit kurzem erhältlich ist, zwar (noch) nichts für mich, aber vielleicht ist die Information ja für andere von Interesse, die entweder noch keine gescheite Möglichkeit der Verknüpfung von GPG und Mail.app kennen oder bereits auf Snow Leopard aktualisiert haben und dann feststellen mussten, dass GPGmail nicht mehr funktioniert. Abhilfe ist also geschaffen, die neue Version 1.3 ist für Snow Leopard und die alte 1.2.0 für Leopard ist ebenfalls noch erhältlich.&lt;/p&gt;
&lt;p&gt;Ich empfehle jedem die Nutzung von GPG. Nicht jede Email muss man signieren oder verschlüsseln, aber manchmal verschickt man auch vertrauliche Informationen die nicht jeder mitlesen können soll. Wenn man dann ein einfaches Verfahren an der Hand hat, nutzt man es eher, als wenn man sich durch viele Befehle hangeln muss. Jedenfalls ist das meine Erfahrung. Meinen Public GPG-Key gibt es übrigens &lt;a href="http://kringkaste.de/gpg"&gt;hier&lt;/a&gt;. Übrigens ein netter Nebeneffekt von signierten Emails ist, dass sie mit sehr hoher Wahrscheinlichkeit nicht als Spam markiert werden und somit immer im Posteingang des Empfängers landen.&lt;/p&gt;</description><link>http://kringkaste.de/post/3275534487</link><guid>http://kringkaste.de/post/3275534487</guid><pubDate>Wed, 25 Aug 2010 10:00:00 +0200</pubDate></item><item><title>Visualisierung und Vertonung von Sortieralgorithmen</title><description>&lt;p&gt;Welcher Informatikstudent ist nicht mit &lt;a href="http://de.wikipedia.org/wiki/Sortierverfahren"&gt;Sortieralgorithmen&lt;/a&gt; gequält worden? Da ich ja auf jede Form der Visualisierung stehe, ist das was Andrzej Rutkowski erzeugt hat simpel aber schön: die Visualisierung und Vertonung von verschiedenene Sortieralgorithmen.&lt;/p&gt;
&lt;p&gt;Schön ist dabei zu sehen, dass der gute alte &lt;a href="http://de.wikipedia.org/wiki/Bubblesort"&gt;Bubblesort&lt;/a&gt; sich zwar so anhört wie er heißt, jetzt aber wirklich jedem deutlich wird, warum er der ineffektivste seiner Art ist. Ich kann mich nur nicht entscheiden, welcher der “schönere” ist…&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Insert-, Gnome-, Bubble-, Selection- und Mergesort&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
&lt;object height="385" width="640"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/t8g-iYGHpEA&amp;color1=0x5d1719&amp;color2=0xcd311b&amp;hl=de_DE&amp;feature=player_embedded&amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed height="385" width="640" src="http://www.youtube.com/v/t8g-iYGHpEA&amp;color1=0x5d1719&amp;color2=0xcd311b&amp;hl=de_DE&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;(&lt;a href="http://www.youtube.com/watch?v=t8g-iYGHpEA&amp;feature=player_embedded"&gt;Direktlink&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Heapsort&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
&lt;object height="385" width="640"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/iXAjiDQbPSw&amp;color1=0x5d1719&amp;color2=0xcd311b&amp;hl=de_DE&amp;feature=player_embedded&amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed height="385" width="640" src="http://www.youtube.com/v/iXAjiDQbPSw&amp;color1=0x5d1719&amp;color2=0xcd311b&amp;hl=de_DE&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;(&lt;a href="http://www.youtube.com/watch?v=iXAjiDQbPSw&amp;feature=player_embedded"&gt;Direktlink&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;(via &lt;a href="http://www.nerdcore.de/wp/2010/08/19/the-sound-of-sorting/"&gt;Nerdcore&lt;/a&gt;)&lt;/p&gt;</description><link>http://kringkaste.de/post/3275520456</link><guid>http://kringkaste.de/post/3275520456</guid><pubDate>Mon, 23 Aug 2010 21:01:00 +0200</pubDate></item><item><title>cloudControl - erste Eindrücke</title><description>&lt;p&gt;Drüben bei &lt;a href="http://serverwolken.de/"&gt;Server in den Wolken&lt;/a&gt; berichtete Philipp Strube vor kurzem, dass sein Unternehmen &lt;a href="http://cloudcontrol.de/"&gt;cloudControl&lt;/a&gt; mit Sitz in Potsdam endlich in die Beta-Phase eingestiegen ist und Benutzer den Service nach einer Registrierung nutzen können. Das habe ich mir nicht zweimal sagen lassen, denn die Idee die hinter cloudControl steckt, ist wahrlich sehr interessant.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Platform as a Service für PHP&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;cloudControl bietet das gute, alte Shared Hosting mit neuen, frischen Ideen, kombiniert mit einem stundenweisen Abrechnungsmodell. Platform as a Service (PaaS) heißt das ja neuerdings. Ziel ist es, so die Betreiber, die Entwickler von Webapplikationen gänzlich von dem Betrieb eines Servers bzw. eines Shared Hostings zu befreien (PaaS-Gedanke) und sie dabei aber &lt;strong&gt;nicht&lt;/strong&gt; auf spezielle Frameworks einzuschränken. Letzteres ist tatsächlich ein wichtiger Punkt, denn beim wohl bekanntesten PaaS-Anbieter Google Apps ist das zum Beispiel der Fall. Denn wirklich Portieren lassen sich die Anwendungen dort nicht auf andere Systeme, die Frameworks können zwar genutzt aber in den seltensten Fällen eingesehen, geschweige denn auf einer eigenen Infrastruktur betrieben werden. Wann man das braucht? Spätestens dann, wenn der PaaS-Anbieter die Anforderungen der Anwendung nicht mehr erfüllen kann. Das ist in den meisten Fällen dann gegeben, wenn man spezielle Soft- und/oder Hardware benötigt oder sonst irgendwie den Betrieb selbst übernehmen muss weil es Prozesse oder Vorgaben so erfordern.&lt;/p&gt;
&lt;p&gt;Die Plattform von cloudControl besteht, darauf legen sie wert, aus Standard-Komponenten, wie sie viele Systemadministratoren am Ende eines Tages für eine Webinfrastruktur einsetzen und betreiben würden: Ubuntu als Serverbetriebssystem, Varnish als Proxy und Loadbalancer, PHP als FastCGI unter Apache und MySQL. Das ganze in den aktuellsten Versionen, also PHP 5.3.2 (inkl. Suhosin-Patch) und MySQL 5.1. Damit ist es der erste mir bekannte PaaS-Anbieter für PHP. Für Ruby, Python und Java gibt es bereits Anbieter. cloudControl bietet ebenfalls Ruby, Python und Java an. Alles nicht mein Ding. Ich würde mir höchstens noch eine Spielwiese für Scala wünschen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vorbereitungen&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nach dem ich einfach Philipp Strube per Email um einen Registrierungscode gebeten hatte, ohne den man sich nämlich nicht registrieren kann, bekam ich ein paar Tage später einen entsprechenden zugesandt. Damit konnte ich mir dann einen Account anlegen und war überrascht, dass es kein Portal oder keinen “internen” Bereich gab. Die Idee hinter cloudControl ist nämlich, dass man mit einer lokal zu installierenden Anwendung alle Funktionen zum Deployment einer Webanwendung in der Hand hat. Man legt eine Anwendung an, kann dieser dann unterschiedlichen Entwicklern Zugriffsrechte gewähren und deployed sie aus einem zentralen Repository heraus, in das man sie zuvor via Bazaar aus einem lokalen Repository gepushed hat. Ein wirklich sehr interessanter Ansatz: ein integriertes Versionskontrollsystem um das man nicht drumrum kommt. Das wird eine neue, aber sicherlich gute Erfahrung für viele Entwickler werden. Man kann das Repository für alle Entwickler als das zentrales Repository eines Projekts nutzen, muss es aber nicht. In größeren Projekten entsteht sicherlich der Wunsch nach einem Bugtracking und Dokumentationssystem wie Trac oder Redmine, das davon lebt, dass es direkt mit dem Repository verbunden ist.&lt;/p&gt;
&lt;p&gt;Um zu starten muss man also als erstes die cloudControl-Anwendung auf seinem Entwicklungsrechner installieren. Dies ist bei Systemen mit Python 2.6 kein Problem, einfach &lt;/p&gt;
&lt;pre class="brush: bash"&gt;sudo easy_install cctrl&lt;/pre&gt;
&lt;p&gt;ausführen (ja, für Windows-Benutzer gibt es ein Installationsprogramm) und schon hat man alles im Griff.&lt;/p&gt;
&lt;p&gt;Auf meinem alten PowerMac, der noch mit Leopard und Python 2.5 läuft, ist das aber ein Problem. Die aktuelle Version mag nämlich nicht, da sie ein json-Modul nicht findet. Aber ein Feedback von mir zu dem Problem wurde von einem der Entwickler sogar am gestrigen Samstag noch aufgegriffen. Bin gespannt ob wir es auch auf Leopard noch zum fliegen bringen, denn die Alternative Python 2.6 parallel zu installieren birgt ein paar Untiefen, die ich nicht eingehen möchte.&lt;/p&gt;
&lt;p&gt;Aber wozu hat man eine eigene EC2-Instanz? Dort ließ es sich ohne Probleme installieren.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Abbrechnungsmodell&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ein paar Worte noch zum Abrechnungsmodell. Jede eingerichtete Anwendung verbraucht eine so genannte “Box”. Jede Box kann zwei parallele Anfragen abarbeiten, wobei diese auf zwei unterschiedlichen Backendservern ausgeführt werden. Der Varnish als Cache sorgt dafür, dass zumindest statische Dateien bei richtigem Expire-Header in den meisten Fällen von dort ausgeliefert werden und keine “Box” benötigen. Berechnet werden die maximal verwendeten Boxen pro Stunde, wobei die erste kostenfrei ist und jede weitere mit 0,05 € zu Buche schlägt.&lt;/p&gt;
&lt;p&gt;Ein Beispiel: Meine Anwendung hat zu einem bestimmten Zeitpunkt innerhalb einer Stunde 10 Anfragen gleichzeitig verarbeitet. Dann muss ich 10 / 2 = 5 Boxen - 1 freie Box = 4 Boxen * 0,05 € = 0,20 € bezahlen. Das geht noch, aber wie sieht es aus, wenn mein Server aus welchem Grund auch immer tausende Anfragen gleichzeitig bekommt? Hier soll ein Limit schützen. Leider konnte ich bis dato noch keine Möglichkeit finden dieses einzurichten, aber während der Beta-Phase scheint jede Box kostenfrei zu sein, das Problem stellt sich dann wohl erst später.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Erste Schritte&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Was macht ein typischer PHP-Entwickler auf einem neuen System als erstes? Richtig, phpinfo-Ausgabe. Also spielen wir als erstes unseren SSH-key ein, legen eine neue Anwendung an und schauen uns die Ausgabe an:&lt;/p&gt;
&lt;pre class="brush: bash"&gt;$ mkdir testapp
$ cd testapp
$ echo "&lt;?php phpinfo();" &gt; index.php
$ bzr init
$ bzr add
$ bzr commit -m "initial commit"
$ cctrluser key.add id_dsa.pub
$ cctrlapp kringkaste create php
$ cctrlapp kringkaste push
$ cctrlapp kringkaste deploy
&lt;/pre&gt;
&lt;p&gt;Wow, das waren keine 2 Minuten und schon können wir unter &lt;a href="http://kringkaste.cloudcontrolled.com/"&gt;&lt;a href="http://kringkaste.cloudcontrolled.com/"&gt;http://kringkaste.cloudcontrolled.com/&lt;/a&gt;&lt;/a&gt; das Ergebnis sehen.&lt;/p&gt;
&lt;p&gt;Und was zeigt uns das phpinfo()? Eine typische Installation eines Shared Hostings. Systemnahe Befehle sind gesperrt, open_basedir ist aktiv und der Speicher auf 128 MB limitiert. Interessant ist, dass die max_execution_time auf 120 Sekunden gestellt ist. Das sollte zwar nie jemand brauchen, aber den Standardwert zu erhöhen ist wirklich sinnvoll. Findet man selten. Ansonsten lässt die Installation keine Wünsche offen. Neben den mittlerweile bei allen Distributionen standardmäßigen Extensions gibt es auch einige zusätzliche, die man sonst nicht findet. Zum Beispiel memcached, apc, xsl, xdebug, phar und sogar imagick. Damit lassen sich sicherlich 99% aller Anforderungen diverser Anwendungen abdecken.&lt;/p&gt;
&lt;p&gt;Was phpinfo() noch zu Tage gebracht hat, was aber nicht wirklich eine Überraschung ist: das ganze System läuft auf EC2. Wahrscheinlich auf Grund der API und der damit verbundenen Möglichkeit der schnellen und variablen horizontalen Skalierung.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Erstes Fazit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Durchdacht. So stelle ich mir PaaS vor. Das fehlende Portal kann ich aber nicht ganz verschmerzen. Später möchte ich Statistiken haben um meine Abrechnung kontrollieren zu können. Aber wenn ich das richtig gelesen habe, dann kommt das noch.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nächste Schritte&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Als nächstes werde ich testen, wie es sich mit einer realen Anwendung verhält. Welche Möglichkeiten eine .htaccess bietet, wie das ganze skaliert und ob ich auch auf xDebug zugreifen kann. Alles im nächsten Teil.&lt;/p&gt;</description><link>http://kringkaste.de/post/3275496784</link><guid>http://kringkaste.de/post/3275496784</guid><pubDate>Sun, 22 Aug 2010 17:26:00 +0200</pubDate></item><item><title>Kommentarfunktion</title><description>&lt;p&gt;Eigentlich bin ich ja mit tumblr als Blog-Provider sehr zufrieden. Auch wenn es ab und an mal nicht erreichbar ist, aber damit muss man leben, immerhin ist es kostenlos und Menschenleben hängen auch nicht dran.&lt;/p&gt;
&lt;p&gt;Das einzige was mich bis dato gestört hat ist, dass es keine vernünftige Kommentarfunktion out of the box gibt. Nach dem ich festgestellt hatte, dass mittlerweile auch viele namhafte Firmen tumblr als Blog-Provider verwenden, habe ich mir angesehen, wie diese die Kommentarfunktion implementiert haben. Zusammenfassend kann man sagen, dass die meisten &lt;a href="http://disqus.com/"&gt;DISQUS&lt;/a&gt; als Webservice in ihr tumblr Blog integriert haben. Also habe ich mich dieser Bewegung angeschlossen und ab sofort gibt es eine Kommentarfunktion auch in diesem, meinem kleinen Blog.&lt;/p&gt;
&lt;p&gt;Die Integration war sehr einfach. Bei DISQUS registriert, einer kurzen und einfachen Anleitung für die Integration in tumblr gefolgt und ganze zehn Minuten später ist die Funktion im gewünschten Umfang integriert. Wow! Das ging einfach und erfordert keinerlei großartige Kenntnisse.&lt;/p&gt;
&lt;p&gt;Die Möglichkeiten die DISQUS bietet sind vielfältig. Neben der Anpassung des Aussehens und des Verhaltens, lassen sich Authentisierungen über Facebook, Twitter und OpenID aktivieren, so dass im Grunde fast jeder Besucher auch einen registrierten Kommentar abgeben kann, ohne eine aufwendige Authentisierung durchführen zu müssen. Ein weiteres, mir wichtiges Feature ist die Möglichkeit von Trackbacks aus anderen Blogs. Da nehme ich auch hin, dass dort nicht primär meine Domain hinterlegt ist, sondern die von DISQUS.&lt;/p&gt;
&lt;p&gt;Nun bin ich gespannt, ob es den ein oder anderen gibt, der die Funktion nutzen wird. Ich freue mich jedenfalls über Kommentare und Diskussionen.&lt;/p&gt;</description><link>http://kringkaste.de/post/3275471010</link><guid>http://kringkaste.de/post/3275471010</guid><pubDate>Sat, 21 Aug 2010 10:11:00 +0200</pubDate></item><item><title>Emailversand aus der EC2-Wolke</title><description>&lt;p&gt;Als alter Nerd betreibe ich natürlich meinen eigenen Mailserver. Dieser läuft auf meiner EC2-Instanz bei Amazon. Bei EC2 bekommt man aus deren IP-Adressbereich eine öffentliche IP-Adresse statisch zugewiesen, die dann auf die private IP-Adresse des Servers umgesetzt (NAT) wird. Eingehende Emails werden bei mir über &lt;a href="http://www.google.com/postini/"&gt;Postini&lt;/a&gt; geleitet, so dass ich von Viren und vor allem Spam geschützt bleibe. Ich hatte mal eine Zeitlang &lt;a href="http://spamassassin.apache.org/"&gt;Spamassassin&lt;/a&gt; im Einsaz. Das ist zwar ein sehr schönes System, aber es ist meiner Meinung nach viel zu zeitintensiv bis es so läuft, wie man es sich vorstellt. Und nach dem Prinzip “auf die Kernkompetenz konzentrieren” habe ich mich dann für den Google-Service entschieden.&lt;/p&gt;
&lt;p&gt;Geht es um den Empfang der Emails ist alles klar. Die MX-Einträge im DNS verweisen auf den Postini-Server (ja, es scheint sich bei jedem Kunden um einen einzelnen Server zu handeln) und dieser reicht die Emails während des Scans an meinen Mailserver durch. Kein &lt;a href="http://de.wikipedia.org/wiki/Store_and_forward"&gt;Store-and-Forward&lt;/a&gt;, nur wenn mein eigener Mailserver mal nicht erreichbar ist werden die Emails zwischengespeichert und später ausgeliefert. Das war mir wichtig, denn ich schraube ja gerne an meinem Server herum.&lt;/p&gt;
&lt;p&gt;Beim Versand habe ich bis jetzt immer selbst meine Emails ausgeliefert. Alle meine Clients haben meinen Server als Relay verwendet und dieser hat die Emails einfach direkt an den für die Empfänger-Domain zuständigen Mailserver ausgeliefert. Diese Praxis hat jetzt sehr lange wunderbar funktioniert, in den Anfangszeiten von Amazon waren die IP-Adressen gerne mal auf diversen Blacklisten zu finden, aber da hat man sie einfach wieder herunterbekommen. Die Zeit der Blacklisten sind eigentlich vorbei - dachte ich, doch ich wurde jetzt eines besseren belehrt.&lt;/p&gt;
&lt;p&gt;Seit ein paar Wochen werden immer mehr Emails beim Versand durch meinen Server auf der anderen Seite abgelehnt. Grund dafür ist wieder eine Blacklist auf der die IP-Adresse meines Server gelandet ist. Diesmal auf der von den Jungs von Trendmicro (&lt;a href="http://www.mail-abuse.com/"&gt;&lt;a href="http://www.mail-abuse.com/"&gt;http://www.mail-abuse.com/&lt;/a&gt;&lt;/a&gt;). Leider sehen diese den kompletten IP-Adressbereich von Amazon als dynamischen IP-Adressbereich an (wie bei DSL) und da lassen die auch nicht mit sich reden. Antwort des Supports ist: “Bitte fragen Sie ihren ISP nach einem Relayserver”. Naja, dass Amazon keinen Relayserver betreibt ist wohl klar. Also musste ich nun in den sauren Apfel beißen und den Outbound-Service von Postini konfigurieren. &lt;a href="http://www.google.com/support/appsecurity/bin/answer.py?hl=en&amp;answer=138232"&gt;Das geht bei Postfix super schnell&lt;/a&gt;, aber irgendwie hat man jetzt keine Infos mehr über die Mailserver der Gegenseite. Das war immer mal wieder interessant in die entsprechenden Logs zu sehen.&lt;/p&gt;
&lt;p&gt;Überrascht bin ich, wo überall die Trendmicro Blackliste und somit auch ein Trendmicro Viren- und Spamschutz werkelt. Eine ganze Reihe großer und kleiner deutscher Firmen ist da in meinen Logfiles aufgetaucht. Scheinbar machen wirklich noch sehr viele Firmen diesen Schutz selbst und nutzen nicht einen entsprechenden Service wie Postini. Für mich ist das mittlerweile unverständlich, denn das bindet Kapazitäten, die man an anderer Stelle besser nutzen könnte. Außerdem kann ein entsprechender Dienstleister viel genauer die Bewertung vornehmen, da er ja nicht nur Tausende, sondern Millionen von Emails täglich verarbeitet und mit Sicherheit sein Klassifizierungssystem besser und schneller abstimmt, als dies eine dezentrale Lösung jemals leisten kann.&lt;/p&gt;
&lt;p&gt;Also wer seinen Mailserver unbedingt bei EC2 betreiben möchte, der kommt um einen solchen Dienstleister nicht mehr herum. Leider.&lt;/p&gt;</description><link>http://kringkaste.de/post/3275447735</link><guid>http://kringkaste.de/post/3275447735</guid><pubDate>Sat, 24 Jul 2010 23:05:00 +0200</pubDate></item><item><title>Zahlemann und Söhne?</title><description>&lt;p&gt;Dienstag habe ich einen interessanten Denkanstoß von Johnny Haeusler drüben bei Spreeblick bekommen. Er fragte in seinem Artikel “&lt;a href="http://www.spreeblick.com/2010/04/27/wieviel/"&gt;Wieviel?&lt;/a&gt;” was jeder von uns bereit wäre, jeden Monat für einen Beitrag zu bezahlen, damit Facebook seine Kosten decken kann und dies nicht durch die Vermarktung der privaten Daten der Mitglieder eingespielt werden muss. Denn klar ist: Ein Businessmodell von Facebook ist genau diese Vergoldung unserer persönlichen Daten, die wir Tag für Tag dort hinterlassen.&lt;/p&gt;
&lt;p&gt;Ich gehöre nicht zu denjenigen, die grundsätzlich der Meinung sind, dass alles im Internet umsonst sein muss. Durch meine Arbeit weiß ich, wie viel Arbeit und auch finanzieller Aufwand betrieben werden muss, damit man einen sehr guten Service im Internet anbieten kann. Neben einer technischen Infrastruktur sind das vor allem die Menschen hinter einem Service. Am Ende eines Monats muss jeder seine Miete bezahlen und etwas zu essen auf dem Tisch haben. Ein Service, der erfolgreich sein will, braucht die volle Konzentration seiner Macher. Nebenbei geht so etwas nicht auf Dauer, außer der Arbeitgeber des eigenen Fulltimejobs duldet oder im besten Fall fördert dieses sogar.&lt;/p&gt;
&lt;p&gt;Wenn ein Service im Internet es mir Wert ist, ich durch ihn mir einen Vorteil erhoffe und er mir diesen auch erfüllt, dann bezahle ich gerne. Das ist wie im realen Leben: Wenn die Flecken in der Reinigung besser raus gehen oder ich keine Zeit habe, dann gebe ich meine Wäsche eben dort ab. Reine Dienstleistung, wie im Internet auch. Damit gehöre ich zu den etwa 11% der Deutschen, die überhaupt bereit sind für Services im Internet Geld auszugeben, wie eine &lt;a href="http://faz-community.faz.net/blogs/netzkonom/archive/2009/12/14/zahlungsbereitschaft-der-deutschen-fuer-internet-inhalte-ist-sehr-gering.aspx"&gt;Studie&lt;/a&gt; der GfK zum Ende des vergangenen Jahres ergeben hat.&lt;/p&gt;
&lt;p&gt;Also mache ich doch mal einen Kassensturz. Aktuell nutze ich die folgenden Dienste, für die ich auch bezahle:&lt;/p&gt;
&lt;p&gt;Dropbox Pro 50: $9,99 (€7,60) / Monat&lt;br/&gt;Evernote: $5 (€3,80) / Monat&lt;br/&gt;MobileMe: €79 / Jahr&lt;br/&gt;Xing: €5,95 / Monat&lt;br/&gt;flickr: $24,95 (€19) / Jahr&lt;/p&gt;
&lt;p&gt;In der Summe also 26 Euro im Monat. Ich dachte ehrlich gesagt es wäre mehr. Dazu kommt dann noch meine EC2-Instanz zum spielen. Eigentlich auch ein Service, der mit auf die Liste gehört. Früher war sogar eine Community auf der Liste, aber von der habe ich mich getrennt.&lt;/p&gt;
&lt;p&gt;Meine Schmerzgrenze für einen Service liegt bei etwa 7 Euro im Monat. Wenn ich die 100 Euro Barriere im Jahr durchbreche, dann überlege ich mir zweimal ob ich einen Abschluss tätige. Reine Psychologie, ich weiß. Damit liege ich aber sicherlich noch weit über dem, was andere bereit sind im Internet für Services auszugeben.&lt;/p&gt;
&lt;p&gt;Wenn ich also so darüber nachdenke, dann wäre mir die Wahrung der Privatsphäre tatsächlich etwas Wert. Ich wäre bereit für Facebook 1 oder 2 Euro pro Monat zu bezahlen. Mehr dürfte es aber nicht sein. Bei mehr als 400 Millionen Mitgliedern sollte das bei egal welcher Konversion reichen. Den Rest der nötigen Finanzierung kann die Plattform ja gerne durch die in meinen Augen nicht aufdringliche Werbung oder durch andere Einnahmequellen erzielen.&lt;/p&gt;
&lt;p&gt;Die allwissende Müllhalde weiß über die Redewendung “&lt;a href="http://de.wikipedia.org/wiki/Zahlemann_und_S%C3%B6hne"&gt;Zahlemann und Söhne&lt;/a&gt;” übrigens zu berichten, dass diese umgangssprachlich und scherzhaft ausdrückt, dass eine Person viel Geld zahlen muss, ohne es zu wollen. Zwar nicht viel, aber ich will.&lt;/p&gt;</description><link>http://kringkaste.de/post/3275427185</link><guid>http://kringkaste.de/post/3275427185</guid><pubDate>Thu, 29 Apr 2010 18:00:00 +0200</pubDate></item><item><title>Neues Gadget: Sony Bloggie</title><description>&lt;p&gt;Für ein kommendes Projekt bedarf es einer kleinen, handlichen Videokamera, die einfach zu bedienen ist und es auch erlaubt Selbstportraits (wie im Spiegel) zu erzeugen. Nach langem studieren der einschlägigen Webseiten und Fachpresse (nein, nicht die FKT-Zeitung), habe ich mich für die &lt;a href="http://www.sony.de/product/blo-p-series/mhs-pm5k"&gt;Sony Bloggie MHS-PM5K/LC&lt;/a&gt; entschieden - in blau. Bestellt habe ich sie bei &lt;a href="http://www.amazon.de/gp/product/B0031U1ALY?ie=UTF8&amp;tag=franquishome-21&amp;linkCode=as2&amp;camp=1638&amp;creative=19454&amp;creativeASIN=B0031U1ALY"&gt;Amazon&lt;/a&gt;, denn da gab es neben der üblichen, hervorragenden Leistungen von Amazon auch ein Angebot mit einer 16 GB Speicherkarte, die umsonst dazugelegt wurde.&lt;/p&gt;
&lt;p&gt;Gekauft habe ich sie ja des Filmens wegen. Deshalb werde ich mich auch bei meinen Ausführungen darauf beschränken. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unpacking&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Die Verpackung war erstaunlich leicht. Ich hatte schon Angst, der wesentliche Inhalt würde fehlen. In der Verpackung befindet sich die Kamera selbst, ein Akku, ein kurzes USB-Verlängerungskabel, eine Tragschlaufe, ein Ausspielkabel mit Cinch-Steckern, ein Berg Anleitungen, ein MemoryStick PRO Duo mit 4 GB, ein 360° Objektiv und eine dazugehörige Tasche.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lgkiixRCmt1qg7koq.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Erster Eindruck&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Der Akku ist aufgeladen und somit kann die Bloggie sofort verwendet werden. Die Klappe für den Akku und die Speicherkarte machen einen soliden Eindruck. Das kann man leider nicht von der Klappe für den USB- und AV-Anschluss sagen. Hier wird durch ein Kunststoffband der Deckel gehalten und nur ganz kleine Nippel halten den Deckel auf dem Gerät. Es ist eine Fummelei den Deckel wieder festzumachen. Dem Kunststoffband traue ich auch keine lange Lebenszeit zu. Hier hätte Sony nicht sparen sollen. Das Konstrukt ist wohl aber dem USB-Stecker geschuldet: Dieser lässt sich nämlich mit einem Schiebe Mechanismus auf der Unterseite herausdrücken. Dabei geht dann der genannte Deckel automatisch auf. Das haben andere Hersteller aber besser gelöst.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lgkigx8WQo1qg7koq.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Beim ersten Einschalten wird man kurz durch das Menü geführt. Viele Einstellungen gibt es nicht und das Preset ist brauchbar und muss nicht verändert werden.&lt;/p&gt;
&lt;p&gt;Das Objektiv sitzt bei der Bloggie auf einem drehbaren Oberteil. Man dreht es sozusagen heraus. Dabei schaltet sich die Bloggie automatisch ein. Es gibt zwar einen extra Ein-/Ausschalter auf der Oberseite, aber so geht es einfach und schneller. Die Kamera ist nach drei Sekunden verfügbar und man kann nun mit zwei unterschiedlichen Knöpfen auf der rechten Seite entweder ein Foto machen oder die Videoaufnahme starten. Der Knopf für die Videoaufnahme ist größer als der für Fotos. Mit einem erneuten Knopfdruck endet die Aufnahme. Jede Aufnahme erzeugt eine neue Videodatei, ein pausieren der Aufnahme ist nicht möglich.&lt;/p&gt;
&lt;p&gt;Im Display kann man während der Aufnahme neben dem eigentlichen Videobild auch die Aufnahmedauer sehen. Zwischen den Aufnahmen wird der freie Speicherplatz auf der Karte in Minuten und Stunden angezeigt, bzw. die Anzahl noch möglicher Fotos.&lt;/p&gt;
&lt;p&gt;Dreht man das Objektiv um 270°, also so, dass beim halten in der Hand das Objektiv zu einem selbst zeigt, schaltet die Kamera automatisch um, so dass man sich selbst aufnehmen kann. Anderenfalls würde man sich ja auf dem Kopf sehen. Der Weitwinkel ist so eingestellt, dass man mit ausgestrecktem Arm sein volles Profil aufnehmen kann. Die Kamera besitzt nur einen digitalen Zoom, was bedeutet, dass man diesen nicht in der höchsten Auflösung verwenden kann. Ergo nimmt die Kamera immer in 1080p auf und wandelt das Bild entsprechend auf die Zielformate. Diese sind bei Video: 1080p mit 30 fps, 720p mit 60/30 fps und VGA mit 30 fps. Bei den Selbstportraits ist die Anordnung der Knöpfe auf der rechten Seite praktisch, denn sie lassen sich mit dem Daumen bedienen. Zumindest wenn man Rechtshänder ist und eine so große Hand wie ich habe.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lgkihhjVdG1qg7koq.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Auf der Unterseite der Kamera befindet sich ein Stativgewinde, womit der Benutzung eines Gorillapods nichts im Wege steht. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Video&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Wirklich positiv ist, dass die Kamera sehr schnell einsatzbereit ist. Das ermöglicht auch mal Schnappschüsse. Dass man auf dem Monitor während der Aufnahme nicht jedes Detail erkennen kann, sollte bei der Wahl auf eine solche Bauform einer Videokamera klar sein. Er dient nur der Ausschnittskontrolle. Mehr nicht. Das Rauschen bei schlechten Lichtverhältnissen hält sich im Rahmen und ist ok. Ansonsten liefert sie für ihre Bauform ein wirklich brauchbares Ergebnis. Ich war positiv überrascht und hatte schlechteres erwartet. Der Wechsel zwischen unterschiedlichem Umgebungslicht geht schnell von statten: Keine drei Sekunden, und die Kamera zeigt wieder ein richtiges Bild.&lt;/p&gt;
&lt;p&gt;Das 360° Objektiv ist eine schöne Spielerei. Wirklich brauchbar ist es wohl nicht. Sony hat dafür aber richtig Aufwand betrieben: Es gibt eine Staubschutzabdichtung und ein kleines Transportsäckchen. Diese besteht aus Mikrofaser und dient zur Reinigung beider Objektive. Das find ich innovativ. Angebracht ist das 360° Objektiv auch schnell: Es wird einfach aufgesteckt. Motive fallen mir zwar gerade keine ein, aber das kann sich ja ändern.&lt;/p&gt;
&lt;p&gt;Wirklich ärgerlich ist aber die Tatsache, dass Aufnahmen nach knapp 30 Minuten automatisch enden. Jemand eine Idee woran das liegen könnte? Richtig: Bei 1080p ist nach dieser Zeit die Dateigröße von 2 GB erreicht. Ich schätze mal, das “Problem” liegt also an einem uralten Dateisystem, das immer noch bei Speicherkarten verwendet wird. Unglaublich.&lt;/p&gt;
&lt;p&gt;Hier ein Test, den ich bei schlechten Lichtverhältnissen gedreht habe:&lt;/p&gt;
&lt;p&gt;
&lt;object width="400" height="300"&gt;
&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11018631&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=11018631&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Audio&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Das Mikrofon für die Aufnahmen ist auf der Display abgewandten Seite untergebracht. Es liefert zufrieden stellende Ergebnisse. Nachteil der Positionierung ist, dass man sich bei Selbstportraits im Aussenbereich nicht wirklich gut hören kann. Also entweder lauter sprechen, oder nur bei geschlossenen Räumen machen. Leider gibt es keine Möglichkeit des Anschlusses eines externen Mikros. Das wäre wirklich noch hilfreich. Die Aufnahme erfolgt in zwei Kanälen, wahrscheinlich Doppel-Mono.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Überspielen der Videos&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;USB-Stecker ausfahren, an den Mac anschließen, einschalten und schon hat man einen USB-Stick auf dem Desktop. Zu meiner Überraschung kann man hier aber nur auf den eingebauten, 28 MB großen Speicher zugreifen. Die Speicherkarte ist nicht erreichbar. Wenn man aber iMovie öffnet und “Aus Kamera importieren” auswählt, wird die Kamera mit allen Videos erkannt. Der Import dauert aber: für ein 27 Minuten langes Video brauchte mein Mac knapp 1,5 Stunden. Dies liegt aber mehr an der (leider) nötigen Konvertierung als an der Kamera oder ihrem Anschluss.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fazit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich bin zufrieden. Für knapp 180 Euro bekommt man gute bis sehr gute Ergebnisse. Sie ist leicht und trägt beim Transport in der Jackentasche nicht auf. Sie ist schnell zur Hand und einsatzbereit. Der einzige Wermutstropfen: Das Laden eines leeren Akkus dauert über USB knapp fünf Stunden. Hier sollte man sich überlegen, ob man nicht noch 40 Euro für einen Zweitakku und ein Ladegerät investiert. Ich jedenfalls werde dies noch nachlegen.&lt;/p&gt;</description><link>http://kringkaste.de/post/3275400516</link><guid>http://kringkaste.de/post/3275400516</guid><pubDate>Sat, 24 Apr 2010 12:04:00 +0200</pubDate></item><item><title>Selbstversuch mit Chatroulette</title><description>&lt;p&gt;In jüngster Vergangenheit ist ja viel über Chatroulette in den Blogs und Zeitungen dieser Welt berichtet worden. Angesteckt durch die gut gelungene &lt;a href="http://vimeo.com/9669721"&gt;Video-Kurzanleitung&lt;/a&gt; von Casey Neistat wollte ich mich nun mal eines Selbstversuches hingeben. Gesagt getan. Eigentlich nur für einen kurzen Moment geplant, wurden daraus satte 4,5 Stunden - puh. Casey Neistat hat in seinem Video seine Chatpartner in Kategorien eingeteilt. So I did. Mein Ergebnis:&lt;/p&gt;
&lt;p&gt;Gesamtzahl Verbindungen mit Bild: 383&lt;br/&gt;Junge Männer (&gt;50): 230&lt;br/&gt;Pornographie: 59&lt;br/&gt;Ältere Männer (&gt;=50): 36&lt;br/&gt;Junge Frauen (&lt;50): 31&lt;br/&gt;Nachrichten: 13&lt;br/&gt;Leere Räume: 12&lt;br/&gt;Ältere Frauen (&gt;=50): 2&lt;/p&gt;
&lt;p&gt;Mein Verhältnis sieht nicht ganz anders aus: Casey hatte 71% Männer und ich 69%. Bei den pornographischen Inhalten liegen wir mit 14% bzw. 15% ebenfalls nahe beieinander. Nur die Frauen haben bei mir ganz schlecht abgeschnitten. Knapp 1% gegenüber den 15% bei Casey. Sind die Frauen alle vertrieben worden? Ich habe noch nach Nachrichten und leeren Räumen unterteilt. Bei Nachrichten ging es ausnahmslos um die mehr oder minder kreative Aufforderung irgendwelche primären Geschlechtsorgane zu zeigen. Bei den leeren Räumen handelte es sich um eine Hotellobby, ein paar Büros (mit Betrieb im Hintergrund), ein Friseursalons mit Kunden und weitere Orte ohne Chatpartner.&lt;/p&gt;
&lt;p&gt;Wenn man dem Internet glauben schenken mag, dann ist das Kreieren von lustigen Situationen bei Chatroulette zum richtigen Volkssport geworden. Zum Beispiel mit Masken und Kostümen, mit Handpuppen oder mit Spielzeug. Keine Frage, um diesen wichtigen Inhalt der Nachwelt zu erhalten, gibt es bereits entsprechende Webseiten. Beliebt ist da zum Beispiel &lt;a href="http://bestofchatroulette.com/"&gt;“Best of Chatroulette”&lt;/a&gt;. Auch ich hatte so ein paar Situationen: Ein alter Mann mit einer roten Nase, ein Batman der seine Katze in die Kamera hielt, jemand der Schattenspiele machte, zwei lustige Musiker, die für mich aufspielten und ein Darth Vader mit Pudelmütze auf dem Kopf und einer Katze im Arm.&lt;/p&gt;
&lt;p&gt;Ach, ob auch gechattet wurde? Hmm, nur ganze drei mal wurde ich nicht sofort “genext” (ob das Wort mal im Duden auftauchen wird?). Einmal mit einem netten jungen Kanadier mit dem ich mich ganze 2 Minuten über Wetter, Uhrzeit und Chatroulette unterhielt, den beiden bereits genannten Musikern und einem französischen Geschichtsprofessor in Paris, der wissen wollte ob ich Websites gestalten kann. Keine schlechte Ausbeute, oder?&lt;/p&gt;
&lt;p&gt;Technologisch basiert der Chat auf dem seit bereits mehr als eineinhalb Jahren im Flashplayer 10 eingebauten &lt;a href="http://en.wikipedia.org/wiki/Real_Time_Media_Flow_Protocol"&gt;Real Time Media Flow Protocol&lt;/a&gt; (RTMFP). Chatroulette ist die erste mir bekannte Anwendung, die dieses so intensiv nutzt. So richtig in Fahrt kam das Protokoll nie. Erst als Adobe mit &lt;a href="http://labs.adobe.com/technologies/stratus/"&gt;Stratus&lt;/a&gt; im vergangenen Jahr einen entsprechenden Service in seine Beta-Labs gebracht hat, kamen die ersten Beispielanwendungen zum Vorschein. Allesamt waren es Chat-Tools. Dass es aber noch mal ein ganzes Jahr und einen &lt;a href="http://bits.blogs.nytimes.com/2010/02/13/chatroulettes-founder-17-introduces-himself/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Tputh+%28TPUTH+-+Breaking+News+With+The+Social+Hammer%29"&gt;17 jährigen Schüler aus Russland&lt;/a&gt; brauchte, um daraus einen Erfolg zu machen, ist überraschend.&lt;/p&gt;
&lt;p&gt;Was bleibt? Es ist ein netter Zeitvertreib, nichts anspruchsvolles. Aber es hält einen fest, da besteht definitiv Suchtpotential. Klar liegt das an der Neugier die in jedem von uns steckt. Jedes mal, wenn man auf den Next-Button klickt, ist man gespannt wo in der Welt man herauskommt und was man dort hinter eigentlich verschlossenen Türen zu sehen bekommt. Dem Protokoll und seinen vielfältigen Möglichkeiten hat es einen kräftigen Aufwind verschafft und wir werden in naher Zukunft noch eine Reihe ähnlicher Anwendungen zu Gesicht bekommen. Ich selbst werde es mir auch mal anschauen, für mich stellt sich nämlich die Frage aller Fragen: “Wozu noch der Next-Button?”&lt;/p&gt;</description><link>http://kringkaste.de/post/3275283854</link><guid>http://kringkaste.de/post/3275283854</guid><pubDate>Tue, 09 Mar 2010 23:19:00 +0100</pubDate></item></channel></rss>

