<?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>all-IT &#187; Web</title>
	<atom:link href="http://www.k-oo.de/blog/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.k-oo.de/blog</link>
	<description>all-IT ist ein Blog aus dem IT Alltag</description>
	<lastBuildDate>Fri, 03 Feb 2012 09:42:21 +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>Liste frei verfügbarer Programmierbücher</title>
		<link>http://www.k-oo.de/blog/2011/12/10/liste-frei-verfuegbarer-programmierbucher/</link>
		<comments>http://www.k-oo.de/blog/2011/12/10/liste-frei-verfuegbarer-programmierbucher/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 13:17:15 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Dokumentation]]></category>
		<category><![CDATA[open books]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2519</guid>
		<description><![CDATA[Ich behaupte mal jeder Programmierer war im Laufe seiner Tätigkeit schon mal auf den Seiten von stackoverflow.com um Hilfe zu bekommen oder selbige zu leisten. Worauf ich erst kürzlich gestoßen bin, ist die auf dieser Seite geführte Liste von frei verfügbaren Programmierbüchern. Die Bücher sind nach Programmiersprachen von A (wie ASP.NET MVC) bis W (wie [...]]]></description>
			<content:encoded><![CDATA[<p>Ich behaupte mal jeder Programmierer war im Laufe seiner Tätigkeit schon mal  auf den Seiten von <a href="http://stackoverflow.com" title="stackoverflow.com - FAQ für Programmierer">stackoverflow.com</a> um Hilfe zu bekommen oder selbige zu leisten.</p>
<p>Worauf ich erst kürzlich gestoßen bin, ist die auf dieser Seite geführte <a href="http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books/392926#392926" title="Liste von frei verfügbaren Programmierbüchern"><strong>Liste von frei verfügbaren Programmierbüchern</strong></a>. Die Bücher sind nach Programmiersprachen von <strong>A</strong> (wie ASP.NET MVC) bis <strong>W</strong> (wie Websphere &#8211; dieser Application Server ist wahrscheinlich komplexer als so manche Programmiersprache) geordnet.</p>
<p>Soweit ich es überblicken konnte sind alle Bücher auf Englisch und so möchte ich an dieser Stelle noch 2 deutsche &#8220;OpenBooks&#8221; erwähnen, die mir bei meiner Arbeit geholfen haben:</p>
<dl>
<dt><a href="http://openbook.galileocomputing.de/javainsel/" title="OpenBook - Java ist auch eine Insel">Java ist auch eine Insel</a></dt>
<dd>Das wohl bekannteste deutsche OpenBook für die Programmiersprache Java</dd>
<dt><a href="http://professionelle-softwareentwicklung-mit-php5.de/" title="Einführung in objektorientiertes Programmieren mit PHP5">Professionelle Softwareentwicklung mit PHP 5</a></dt>
<dd>Auch in PHP kommt man nicht mehr an der Objektorientierung vorbei. Dieses Buch ist ein guter Einstieg.</dd>
</dl>
<p>Welche deutschsprachigen und frei verfügbaren Programmierbücher haben Euch weitergeholfen?</p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2519&amp;md5=b4c972b9eb06ba843f4777b70b8a6b2d" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/12/10/liste-frei-verfuegbarer-programmierbucher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2519&amp;md5=b4c972b9eb06ba843f4777b70b8a6b2d" type="text/html" />
	</item>
		<item>
		<title>Eclipse PDT, MAMP und die PHP Scripts</title>
		<link>http://www.k-oo.de/blog/2011/10/20/eclipse-pdt-mamp-und-die-php-scripts/</link>
		<comments>http://www.k-oo.de/blog/2011/10/20/eclipse-pdt-mamp-und-die-php-scripts/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 04:53:05 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2466</guid>
		<description><![CDATA[Als Entwicklungs-Hardware sind Macs momentan ziemlich beliebt, läuft doch auf diesen Alu Beauties ein Betriebssystem, das auf Unix basiert. Ein weiterer Grund dafür dürfte auch sein, dass die Entwicklungsumgebung Eclipse auf MacOs gut unterstützt wird. Dies gilt vor allem für Java (mit dem Java Development Tool &#8211; JDT). Aber auch PHP Webanwendungen lassen sich gut [...]]]></description>
			<content:encoded><![CDATA[<p>Als Entwicklungs-Hardware sind Macs momentan ziemlich beliebt, läuft doch auf diesen Alu Beauties ein Betriebssystem, das auf Unix basiert.</p>
<p>Ein weiterer Grund dafür dürfte auch sein, dass die Entwicklungsumgebung Eclipse auf MacOs gut unterstützt wird. Dies gilt vor allem für Java (mit dem Java Development Tool &#8211; JDT). Aber auch PHP Webanwendungen lassen sich gut mit Eclipse und dem PHP Development Tool &#8211; PDT programmieren.</p>
<p>Das PDT bringt keinen eigenen PHP Interpreter mit. D.h., man muss selbst für einen Webserver mit PHP Modul sorgen. Auf dem Mac bekommt man das Rundum Sorglos Paket mit <a href="http://www.mamp.info" title="MAMP">MAMP</a>.</p>
<p>Möchte man auch PHP Scripts unter Eclipse ausführen, muss man die beiden miteinander bekannt machen. Doch zuvor verlangt <strong>Eclipse PDT</strong> nach einem <strong>Debugger</strong>. Zur Auswahl stehen der <strong>Zend Debugger</strong>, der leider nicht mit MAMP mitgeliefert wird und <strong>XDebug</strong>, dessen Modul zwar in MAMP integriert ist, bei mir aber nicht funktionierte.</p>
<p>Eine aktuelle Version von XDebug kann man sich über <strong>brew</strong> installieren.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">brew <span style="color: #c20cb9; font-weight: bold;">install</span> xdebug</pre></div></div>

<p>Brew setzt zwar Xcode voraus, sollte aber auf keinem Entwickler-Mac fehlen. Eine Installationsanleitung gibt es auf <a href="https://github.com/mxcl/homebrew/wiki/installation" title="brew Installationsanleitung">github</a>.</p>
<p>Doch zurück zu XDebug. Während der Installation wird man auf die nächsten Schritte hingewiesen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">To use this software:
  <span style="color: #000000; font-weight: bold;">*</span> Add the following line to php.ini:
    <span style="color: #007800;">zend_extension</span>=<span style="color: #ff0000;">&quot;/usr/local/Cellar/xdebug/2.1.1/xdebug.so&quot;</span>
  <span style="color: #000000; font-weight: bold;">*</span> Restart your webserver.
  <span style="color: #000000; font-weight: bold;">*</span> Write a PHP page that calls <span style="color: #ff0000;">&quot;phpinfo();&quot;</span>
  <span style="color: #000000; font-weight: bold;">*</span> Load it <span style="color: #000000; font-weight: bold;">in</span> a browser and look <span style="color: #000000; font-weight: bold;">for</span> the info on the xdebug module.
  <span style="color: #000000; font-weight: bold;">*</span> If you see it, you have been successful<span style="color: #000000; font-weight: bold;">!</span></pre></div></div>

<p>Die php.ini, die MAMP mitbringt, lässt sich nicht mit normalen User Rechten editieren. Mit sudo geht es aber schon.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>Applications<span style="color: #000000; font-weight: bold;">/</span>MAMP<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php<span style="color: #000000; font-weight: bold;">/</span>php5.3.6<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>php.ini</pre></div></div>

<p>Im Bereich <strong>[xdebug]</strong> dann die Direkive für das xdebug Modul hinzufügen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>xdebug<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #007800;">zend_extension</span>=<span style="color: #ff0000;">&quot;/usr/local/Cellar/xdebug/2.1.1/xdebug.so&quot;</span></pre></div></div>

<p>den Webserver durchstarten und den Erfolg wie oben beschrieben kontrollieren.</p>
<p>Funktioniert alles, muss man in Eclipse nur noch in den Einstellungen ein <strong>PHP Executeable</strong> konfigurieren um von dort aus PHP Scripts starten zu können.</p>
<p><a href="http://www.k-oo.de/blog/wp-content/uploads/2011/10/eclipse-php-executeable.png" rel="lightbox"><img src="http://www.k-oo.de/blog/wp-content/uploads/2011/10/eclipse-php-executeable-500x406.png" alt="eclipse php-executeable" title="eclipse php-executeable" width="500" height="406" class="alignnone size-medium wp-image-2482" /></a></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2466&amp;md5=bc613d80623e0851c6696b1c51b1bce4" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/10/20/eclipse-pdt-mamp-und-die-php-scripts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2466&amp;md5=bc613d80623e0851c6696b1c51b1bce4" type="text/html" />
	</item>
		<item>
		<title>Regulärer Ausdruck für eine gültige Email Adresse</title>
		<link>http://www.k-oo.de/blog/2011/06/01/regularer-ausdruck-fur-eine-gultige-email-adresse/</link>
		<comments>http://www.k-oo.de/blog/2011/06/01/regularer-ausdruck-fur-eine-gultige-email-adresse/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 15:36:38 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2323</guid>
		<description><![CDATA[die wenigsten unter uns Webentwicklern werden es wissen. Aber dies: (?:(?:\r\n)?[ \t])*(?:(?:(?:[^()&#60;&#62;@,;:\\&#34;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] )+&#124;\Z&#124;(?=[\[&#34;()&#60;&#62;@,;:\\&#34;.\[\]]))&#124;&#34;(?:[^\&#34;\r\\]&#124;\\.&#124;(?:(?:\r\n)?[ \t]))*&#34;(?:(?: \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&#60;&#62;@,;:\\&#34;.\[\] \000-\031]+(?:(?:( ?:\r\n)?[ \t])+&#124;\Z&#124;(?=[\[&#34;()&#60;&#62;@,;:\\&#34;.\[\]]))&#124;&#34;(?:[^\&#34;\r\\]&#124;\\.&#124;(?:(?:\r\n)?[ \t]))*&#34;(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()&#60;&#62;@,;:\\&#34;.\[\] \000-\0 31]+(?:(?:(?:\r\n)?[ \t])+&#124;\Z&#124;(?=[\[&#34;()&#60;&#62;@,;:\\&#34;.\[\]]))&#124;\[([^\[\]\r\\]&#124;\\.)*\ ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&#60;&#62;@,;:\\&#34;.\[\] \000-\031]+ (?:(?:(?:\r\n)?[ \t])+&#124;\Z&#124;(?=[\[&#34;()&#60;&#62;@,;:\\&#34;.\[\]]))&#124;\[([^\[\]\r\\]&#124;\\.)*\](?: (?:\r\n)?[ \t])*))*&#124;(?:[^()&#60;&#62;@,;:\\&#34;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+&#124;\Z &#124;(?=[\[&#34;()&#60;&#62;@,;:\\&#34;.\[\]]))&#124;&#34;(?:[^\&#34;\r\\]&#124;\\.&#124;(?:(?:\r\n)?[ \t]))*&#34;(?:(?:\r\n) ?[ \t])*)*\&#60;(?:(?:\r\n)?[ \t])*(?:@(?:[^()&#60;&#62;@,;:\\&#34;.\[\] \000-\031]+(?:(?:(?:\ r\n)?[ \t])+&#124;\Z&#124;(?=[\[&#34;()&#60;&#62;@,;:\\&#34;.\[\]]))&#124;\[([^\[\]\r\\]&#124;\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&#60;&#62;@,;:\\&#34;.\[\] \000-\031]+(?:(?:(?:\r\n) ?[ \t])+&#124;\Z&#124;(?=[\[&#34;()&#60;&#62;@,;:\\&#34;.\[\]]))&#124;\[([^\[\]\r\\]&#124;\\.)*\](?:(?:\r\n)?[ \t] )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()&#60;&#62;@,;:\\&#34;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ [...]]]></description>
			<content:encoded><![CDATA[<p>die wenigsten unter uns Webentwicklern werden es wissen. Aber dies:</p>

<div class="wp_syntax"><div class="code"><pre class="regexp" style="font-family:monospace;">(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ 
\t]))*&quot;(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)
?[ \t])*)*\&lt;(?:(?:\r\n)?[ \t])*(?:@(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
 \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[
 \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*&quot;(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\&gt;(?:(?:\r\n)?[ \t])*)|(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*&quot;(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()&lt;&gt;@,;:\\&quot;.\[\] 
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;
@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;
(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\
&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t])*)*\&lt;(?:(?:\r\n)?[ \t])*(?:@(?:[^()&lt;&gt;@,;
:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;
.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\
]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\
[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\
r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] 
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]
|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \0
00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\
.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,
;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?
:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]
]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\&gt;(?:(?:\r\n)?[ \t])*)(?:,\s*(
?:(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\
&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t])*)(?:\.(?:(
?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t
])*))*@(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
:\.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\
]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t])*)*\&lt;(?:(?:\r\n)
?[ \t])*(?:@(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;
()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;
@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
 \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,
;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\
&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.
\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|&quot;(?:[^\&quot;\r\\]|\\.|(?:(?:\r\n)?[ \t]))*&quot;(?:(?:\r\n)?[ \t])
*))*@(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
.(?:(?:\r\n)?[ \t])*(?:[^()&lt;&gt;@,;:\\&quot;.\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\[&quot;()&lt;&gt;@,;:\\&quot;.\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\&gt;(?:(
?:\r\n)?[ \t])*))*)?;\s*)</pre></div></div>

<p>ist der reguläre Ausdruck für eine gültige Mail Adresse nach <a href="http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html">RFC822</a>.</p>
<blockquote><p>
&#8230; und wer das nicht nutzt, ist kein Mann.</p>
<p>Christian Heilmann<br />
JAX 2011 &#8211; Keynote<br />
HTML5 &#8211; das Web und der Browser als Platform
</p></blockquote>
<p><strong>Links:</strong><br />
<a href="http://www.slideshare.net/cheilmann/christian-heilmann-html-5-das-web-und-der-browser-als-platform">Präsentation</a> zur Keynote von Christian Heilmann</p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2323&amp;md5=84c4f35a61bb0ae7487e0841ee5640a9" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/06/01/regularer-ausdruck-fur-eine-gultige-email-adresse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2323&amp;md5=84c4f35a61bb0ae7487e0841ee5640a9" type="text/html" />
	</item>
		<item>
		<title>Snippets für WordPress</title>
		<link>http://www.k-oo.de/blog/2011/03/16/snippets-fur-wordpress/</link>
		<comments>http://www.k-oo.de/blog/2011/03/16/snippets-fur-wordpress/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 11:14:29 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2188</guid>
		<description><![CDATA[Da ich zu den Leuten gehöre, die zum Schreiben ihrer Blog Posts nicht den WYSIWYG Editor benutzen, sondern sich noch immer selbst um das HTML kümmern wollen, habe ich mir immer etwas gewünscht um vordefinierte Textteile (englisch snippets) schnell und einfach in meinen Eintrag einfügen zu können. Die von WordPress vordefinierten Shortcodes sind zwar eine [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich zu den Leuten gehöre, die zum Schreiben ihrer Blog Posts nicht den WYSIWYG Editor benutzen, sondern sich noch immer selbst um das HTML kümmern wollen, habe ich mir immer etwas gewünscht um vordefinierte Textteile (englisch snippets) schnell und einfach in meinen Eintrag einfügen zu können. Die von WordPress vordefinierten <a href="http://en.support.wordpress.com/shortcodes/">Shortcodes</a> sind zwar eine tolle Sache, aber zu unflexibel.</p>
<p>Wo es bei Smartphones für alles eine App gibt, sind es bei WordPress  die Plugins, die diese Aufgabe erfüllen.<br />
Das Plugin meiner Wahl ist <a href="http://wpstorm.net/wordpress-plugins/post-snippets/"><strong>Post Snippets</strong></a>.</p>
<p><img src="http://www.k-oo.de/blog/wp-content/uploads/2011/03/post_snippets.png" alt="" title="post snippets" width="495" height="160" class="alignnone size-full wp-image-2244" /></p>
<p>Es erfüllt meine Anforderungen hinsichtlich der Snippets und man kann zusätzlich auch noch eigene Shortcodes erstellen.<br />
Die Erstellung, Änderung und Löschung von Snippets erfolgt (WordPress üblich) in den Settings. Für ein Snippet können zusätzlich Variablen angegeben werden, die erst beim Einfügen in den Post mit Werten versorgt werden.</p>
<p><strong>Fazit:</strong><br />
Wer vordefinierte Textbausteine in seinem Wortpress Blog benötigt, die dynamisch über Variablen angepasst werden können, sollte sich unbedingt <strong>Post Settings</strong> anschauen. Die Erstellung eigener Shortcodes bekommt man dann als Bonus dazu.</p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2188&amp;md5=9d87a3df5e1d176293879c30ec571ecd" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/03/16/snippets-fur-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2188&amp;md5=9d87a3df5e1d176293879c30ec571ecd" type="text/html" />
	</item>
		<item>
		<title>WordPress 3.1 aka Django Reinhardt</title>
		<link>http://www.k-oo.de/blog/2011/02/26/wordpress-3-1-aka-django-reinhardt/</link>
		<comments>http://www.k-oo.de/blog/2011/02/26/wordpress-3-1-aka-django-reinhardt/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 21:00:19 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2146</guid>
		<description><![CDATA[Es ist schon wieder 4 Tage her, dass die neue WordPress Version 3.1 das Licht der Welt erblickte. Wie schnell die Zeit doch vergeht. Äußerlich ändert sich erst einmal nicht so viel, mal von den ausgeblendeten Boxen abgesehen, die man aber über die Optionen wieder hinzuschalten kann. Wirklich nützlich ist die einfachere Verlinkung älterer Artikel. [...]]]></description>
			<content:encoded><![CDATA[<div style="float:left;margin-right:10px">
<img src="http://www.k-oo.de/blog/wp-content/uploads/2011/02/wordpress-logo.png" alt="" title="wordpress-logo" width="235" height="58" class="alignnone size-full wp-image-2159" />
</div>
<p>Es ist schon wieder 4 Tage her, dass die neue WordPress Version 3.1 das Licht der Welt erblickte. Wie schnell die Zeit doch vergeht.</p>
<p style="clear:both" />
Äußerlich ändert sich erst einmal nicht so viel, mal von den ausgeblendeten Boxen abgesehen, die man aber über die Optionen wieder hinzuschalten kann. Wirklich nützlich ist die einfachere Verlinkung älterer Artikel.</p>
<p>Weitere Änderungen sind z.B.:</p>
<ul>
<li>eine bessere Multiside Unterstützung</li>
<li>der überarbeitete Dialog für den Import und Export von Artikeln</li>
<li>und eine Schnellzugriffsleiste für z.B. Kommentare</li>
</ul>
<p>Alle Veränderungen sind im <a href="https://codex.wordpress.org/Version_3.1">ChangeLog</a> vermerkt.</p>
<p>Das Upgrade verlief problemlos. Die automatische upgrade Funktion ist ein Segen.</p>
<p><strong>via:</strong><br />
golem.de &#8211; <a href="http://www.golem.de/1102/81678.html">WordPress 3.1 veröffentlicht</a></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2146&amp;md5=4b3b08cf3dbb7c5447bcd858312921d1" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/02/26/wordpress-3-1-aka-django-reinhardt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2146&amp;md5=4b3b08cf3dbb7c5447bcd858312921d1" type="text/html" />
	</item>
		<item>
		<title>Zootool &#8211; Lasso für das iphone</title>
		<link>http://www.k-oo.de/blog/2011/02/26/zootool-lasso-fur-das-iphone/</link>
		<comments>http://www.k-oo.de/blog/2011/02/26/zootool-lasso-fur-das-iphone/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 20:09:25 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2144</guid>
		<description><![CDATA[Ich bin vor nicht gar zu langer Zeit von Delicious auf Zootool umgestiegen. Den Umstieg habe ich bis heute nicht bereut. Einziges Manko war ein fehlendes Bookmarklet für mein iphone. Denn nur mein RSS Reader (Reeder) auf dem iphone hat eine sehr komfortable Schnittstelle zu zootool. Dem Mobile Safari fehlt diese. Kein Problem dachte ich [...]]]></description>
			<content:encoded><![CDATA[<div style="float:left; margin-right: 10px">
<img src="http://www.k-oo.de/blog/wp-content/uploads/2010/12/zootool.jpg" alt="" title="zootool logo" width="67" height="28" class="alignnone size-full wp-image-2059" />
</div>
<p>Ich bin vor nicht gar zu langer Zeit <a href="http://www.k-oo.de/blog/2010/12/23/good-bye-del-icio-us-hallo-zootool/">von Delicious auf Zootool umgestiegen</a>. Den Umstieg habe ich bis heute nicht bereut. Einziges Manko war ein <strong>fehlendes Bookmarklet</strong> für mein iphone. Denn nur mein RSS Reader (Reeder) auf dem iphone hat eine sehr komfortable Schnittstelle zu <a href="http://zootool.com">zootool</a>. Dem Mobile Safari fehlt diese.</p>
<p style="clear:both" />
Kein Problem dachte ich mir. Dieses Problem werden vor dir schon andere gehabt haben. Aber es hat ein bisschen gedauert, bis ich eine Lösung gefunden hatte. Meine <strong>Lösung</strong> war folgende:</p>
<ol>
<li>kopieren des Javascripts aus dem Link meines Desktop Browsers (wer mich kennt wird ahnen, dass es der Opera war)</li>
<li>erstellen einer Notiz in Evernote mit dem Javascript als Inhalt</li>
<li>Sync durch Aufruf der Evernote App auf dem iphone</li>
<li>kopieren des Javascripts</li>
<li>einfügen des Javascripts in ein neu erstelltes Lesezeichen im Safari</li>
</ol>
<p>Ja, ich weiß &#8211; komfortabel ist anders. Einen Vorwurf kann man den zootool Jungs aber nicht machen, denn kurz darauf habe ich im <strong>Support</strong> Bereich von Zootool diese Antwort auf das Problem gefunden:</p>
<blockquote><p>
unfortunately the iphone does not provide a simple solution to install bookmarklets. You have to drag the iphone lasso to your bookmarks on your computer at home and then you have to sync your bookmarks with your iphone through iTunes. We know that this is pretty complicated and as soon as Apple provides an easier solution we will support it!
</p></blockquote>
<p>Oder kurz gesagt &#8211; <strong>Steve mach was</strong>.</p>
<p><strong>Links:</strong><br />
<a href="http://www.k-oo.de/blog/2011/01/01/groovy-zootool-lesezeichen-automatisieren/">groovy zootool – Lesezeichen automatisieren</a></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2144&amp;md5=3ce556110af029a8d262be04e90542af" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/02/26/zootool-lasso-fur-das-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2144&amp;md5=3ce556110af029a8d262be04e90542af" type="text/html" />
	</item>
		<item>
		<title>k-oo.de auf dem Smartphone</title>
		<link>http://www.k-oo.de/blog/2011/01/17/k-oo-de-auf-dem-smartphone/</link>
		<comments>http://www.k-oo.de/blog/2011/01/17/k-oo-de-auf-dem-smartphone/#comments</comments>
		<pubDate>Mon, 17 Jan 2011 03:28:54 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2106</guid>
		<description><![CDATA[Mobiles Surfen ist mit den heutigen Smartphones vollkommen normal, doch gibt es Unterschiede &#8211; vor allem in der Bildschirmauflösung und in der Übertragungsgeschwindigkeit. Als Besitzer eines solchen Zeitvernichters bin ich immer erfreut, wenn ich auf eine Seite treffe, die auf diese Unterschiede Rücksicht nimmt. Und was man von anderen erwartet, sollte man auch selbst beherzigen. [...]]]></description>
			<content:encoded><![CDATA[<div style="float:left;margin-right:10px">
<img src="http://www.k-oo.de/blog/wp-content/uploads/2011/01/koo_iphone_k.png" alt="" title="k-oo.de auf dem iphone" width="250" height="375" class="alignnone size-full wp-image-2114" />
</div>
<p>Mobiles Surfen ist mit den heutigen Smartphones vollkommen normal, doch gibt es Unterschiede &#8211; vor allem in der Bildschirmauflösung und in der Übertragungsgeschwindigkeit.</p>
<p>Als Besitzer eines solchen Zeitvernichters bin ich immer erfreut, wenn ich auf eine Seite treffe, die auf diese Unterschiede Rücksicht nimmt.<br />
Und was man von anderen erwartet, sollte man auch selbst beherzigen. Zumal, wenn es so einfach umzusetzen geht, wie bei WordPress.</p>
<p>Das Plugin <a href="http://www.bravenewcode.com/products/wptouch"><strong>WPtouch</strong></a> ist das Mittel meiner Wahl und dürfte auch in vielen anderen WordPress Installationen verwendet werden. Eine einfachere Installation, als über den Plugin Bereich von WordPress dürfte es wohl kaum geben. Vorsichtige Naturen sollten vorher ein Backup der Datenbank machen. Dies ist aber bei jeder Installation eines Plugins zu empfehlen.</p>
<p>Das Ergebnis nach der Installation ist bereits recht ansehnlich. Über die umfangreichen Konfigurationsmöglichkeiten kann das Plugin den eigenen Vorstellungen angepasst werden.</p>
<p>Neben WPtouch ist auch noch eine kostenpflichtige Pro Version erhältlich, die dann auch das iPad unterstützt.</p>
<p style="clear:both" />
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2106&amp;md5=432c6047eb23b1b352b8f97bfe0618fe" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/01/17/k-oo-de-auf-dem-smartphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2106&amp;md5=432c6047eb23b1b352b8f97bfe0618fe" type="text/html" />
	</item>
		<item>
		<title>weekly links [2011-01]</title>
		<link>http://www.k-oo.de/blog/2011/01/02/weekly-links-2011-01/</link>
		<comments>http://www.k-oo.de/blog/2011/01/02/weekly-links-2011-01/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 04:50:45 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[weekly links]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2019</guid>
		<description><![CDATA[Dies sind die ersten wöchentlichen Links in diesem Jahr. Bilder horizontal und vertikal in einer Box zentrieren Eine kleine CSS Anleitung zur Zentrierung von Bildern in einem div. Basics: Musik vom iPod auf den Computer kopieren Die Basics Reihe von ifun.de, erläutert Grundsätzliches rund um Apples Produkte. Basics: iTunes Store-Account ohne Kreditkarte Die Basics Reihe [...]]]></description>
			<content:encoded><![CDATA[<p>Dies sind die ersten wöchentlichen Links in diesem Jahr.</p>
<dl>
<dt><a href="http://www.brunildo.org/test/img_center.html">Bilder horizontal und vertikal in einer Box zentrieren</a></dt>
<dd>Eine kleine CSS Anleitung zur Zentrierung von Bildern in einem div.</dd>
<dt><a href="http://www.ifun.de/2008/10/19/basics-musik-vom-ipod-auf-den-computer-kopieren/">Basics: Musik vom iPod auf den Computer kopieren</a></dt>
<dd>Die Basics Reihe von ifun.de, erläutert Grundsätzliches rund um Apples Produkte.</dd>
<dt><a href="http://www.ifun.de/2009/05/01/basics-itunes-store-account-ohne-kreditkarte/">Basics: iTunes Store-Account ohne Kreditkarte</a></dt>
<dd>Die Basics Reihe von ifun.de, erläutert Grundsätzliches rund um Apples Produkte.</dd>
<dt><a href="http://www.ifun.de/2008/10/29/basics-itunes-account-alte-computer-abmelden/">Basics: iTunes Account – alte Computer abmelden</a></dt>
<dd>Die Basics Reihe von ifun.de, erläutert Grundsätzliches rund um Apples Produkte.</dd>
<dt><a href="http://kodapp.com/">Kod &#8211; Mac Editor</a></dt>
<dd>Ein Editor für den Mac, der sich noch im Alpha Stadium befindet aber Potenzial hat.</dd>
<dt><a href="http://sql-plsql-de.blogspot.com/2010/12/sql-queries-magisch-umschreiben.html">SQL Queries &#8220;magisch&#8221; umschreiben: DBMS_ADVANCED_REWRITE</a></dt>
<dd>Ein Tipp für Nutzer von Oracle Datenbanken.</dd>
<dt><a href="http://code.google.com/p/spiderdb/">spiderdb</a></dt>
<dd>Spiderdb ist ein Datenbank Crawler für Apache Derby, H2 Database, HSQLDB, IBM DB2, MySQL, Oracle und PostgreSQL.</dd>
</dl>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2019&amp;md5=853b59d283ebf9b439a2cd6ab77605c8" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/01/02/weekly-links-2011-01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2019&amp;md5=853b59d283ebf9b439a2cd6ab77605c8" type="text/html" />
	</item>
		<item>
		<title>groovy zootool &#8211; Lesezeichen automatisieren</title>
		<link>http://www.k-oo.de/blog/2011/01/01/groovy-zootool-lesezeichen-automatisieren/</link>
		<comments>http://www.k-oo.de/blog/2011/01/01/groovy-zootool-lesezeichen-automatisieren/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 05:25:55 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[groovy]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2079</guid>
		<description><![CDATA[Einen ähnlichen Artikel habe ich vor einiger Zeit auch für meinen Ex &#8211; Lesezeichenverwalter del.icio.us geschrieben. Mein neuer Dienstleister ist zootool. Über die Gründe des Wechsels habe ich ja erst vor kurzem geschrieben. Wenn man sich in eine neue Abhängigkeit begiebt, sollte alles Gute erhalten bleiben. So bietet auch zootool über eine API den Zugriff [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
.wraptocenter {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    width: ...;
    height: ...;
}
.wraptocenter * {
    vertical-align: middle;
}
/*\*//*/
.wraptocenter {
    display: block;
}
.wraptocenter span {
    display: inline-block;
    height: 100%;
    width: 1px;
}
/**/
</style>
<p><!--[if lt IE 8]><br />
<style>
.wraptocenter span {
    display: inline-block;
    height: 100%;
}
</style>
<p><![endif]--></p>
<div class="wraptocenter"><span></span><br />
   <img src="http://www.k-oo.de/blog/wp-content/uploads/2007/01/groovy.png" alt="" title="Groovy Logo" width="203" height="100" class="alignnone size-full wp-image-28" /></p>
<p>   <img src="http://www.k-oo.de/blog/wp-content/uploads/2010/12/zootool.jpg" alt="" title="zootool logo" width="67" height="28" class="alignnone size-full wp-image-2059" />
</div>
<p>Einen <a href="http://www.k-oo.de/blog/2010/03/09/delicious-groovy-lesezeichen-automatisieren/">ähnlichen Artikel</a> habe ich vor einiger Zeit auch für meinen Ex &#8211; Lesezeichenverwalter del.icio.us geschrieben.</p>
<p>Mein neuer Dienstleister ist <a href="http://zootool.com">zootool</a>. Über die Gründe des Wechsels habe ich ja erst vor kurzem <a href="http://www.k-oo.de/blog/2010/12/23/good-bye-del-icio-us-hallo-zootool/">geschrieben</a>.<br />
Wenn man sich in eine neue Abhängigkeit begiebt, sollte alles Gute erhalten bleiben. So bietet auch zootool über eine <strong>API</strong> den Zugriff auf die Lesezeichen.</p>
<p>Anders als bei del.icio.us werden die Ergebnisse einer Anfrage aber im <strong>JSON</strong> Format geliefert, womit das <a href="http://groovy.codehaus.org/modules/http-builder/home.html">HTTPBuilder</a> Modul von Groovy aber auch keine Probleme hat, wie das Beispiel gleich zeigen wird. Ein <strong>verschlüsseltes Passwort</strong> und ein <strong>API-Key</strong> sorgen zusätzlich für mehr Sicherheit.</p>
<p>So, lange genug geredet. Hier ist der <strong>Code</strong> für einen einfachen zootool Lesezeichen Client:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
</pre></td><td class="code"><pre class="groovy" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #a1a100;">de.koo.groovy.rest</span>
&nbsp;
@Grab<span style="color: #66cc66;">&#40;</span>group<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'org.codehaus.groovy.modules.http-builder'</span>, module<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'http-builder'</span>, version<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'0.5.1'</span> <span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #a1a100;">groovyx.net.http.*</span> 
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #a1a100;">groovy.util.slurpersupport.GPathResult</span> 
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #a1a100;">java.security.MessageDigest</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #a1a100;">sun.misc.*</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ZootoolBookmarkClient<span style="color: #66cc66;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">def</span> username
  <span style="color: #000000; font-weight: bold;">def</span> password
  <span style="color: #000000; font-weight: bold;">def</span> apikey
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> ZootoolBookmarkClient<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    username<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;username&gt;&quot;</span>
    password<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;password&gt;&quot;</span>
    apikey<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;apikey&gt;&quot;</span>
  <span style="color: #66cc66;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #993333;">void</span> main<span style="color: #66cc66;">&#40;</span>args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">def</span> dc<span style="color: #66cc66;">=</span><span style="color: #000000; font-weight: bold;">new</span> ZootoolBookmarkClient<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    dc.<span style="color: #006600;">request</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#125;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;">/**
   * Lesezeichen abfragen und Aufbereitung der Ergebnisse 
   * im HTML Format als definition list
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> request <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">def</span> resp
&nbsp;
    <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #66cc66;">&#123;</span>
      <span style="color: #808080; font-style: italic;">// Authentifizierung</span>
      <span style="color: #000000; font-weight: bold;">def</span> url<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://zootool.com/api/users/items/?username=$username&amp;apikey=$apikey&quot;</span>
&nbsp;
      RESTClient rc <span style="color: #66cc66;">=</span> <span style="color: #000000; font-weight: bold;">new</span> RESTClient<span style="color: #66cc66;">&#40;</span> url <span style="color: #66cc66;">&#41;</span>
      rc.<span style="color: #006600;">auth</span>.<span style="color: #006600;">basic</span> <span style="color: #66cc66;">&#40;</span>username.<span style="color: #006600;">toLowerCase</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, getEncodedPassword<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
      <span style="color: #808080; font-style: italic;">// anfragen und überprüfen der Antwort</span>
      <span style="color: #000000; font-weight: bold;">def</span> params<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#91;</span>:<span style="color: #66cc66;">&#93;</span>   
      resp<span style="color: #66cc66;">=</span>rc.<span style="color: #663399;">get</span><span style="color: #66cc66;">&#40;</span>params<span style="color: #66cc66;">&#41;</span>
&nbsp;
      <span style="color: #000000; font-weight: bold;">assert</span> resp.<span style="color: #006600;">status</span> <span style="color: #66cc66;">==</span> <span style="color: #cc66cc;">200</span>
&nbsp;
      <span style="color: #993399;">println</span> <span style="color: #ff0000;">&quot;&lt;dl&gt;&quot;</span>
      resp.<span style="color: #006600;">data</span>.<span style="color: #663399;">each</span> <span style="color: #66cc66;">&#123;</span>item <span style="color: #66cc66;">-&gt;</span>
        <span style="color: #993399;">println</span> <span style="color: #ff0000;">&quot;   &lt;dt&gt;&lt;a href=<span style="color: #000099; font-weight: bold;">\&quot;</span>${item?.url}<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;${item?.title}&lt;/a&gt;&lt;/dt&gt;&quot;</span>
        <span style="color: #993399;">println</span> <span style="color: #ff0000;">&quot;      &lt;dd&gt;${item?.title}&lt;/dd&gt;&quot;</span>
      <span style="color: #66cc66;">&#125;</span>
      <span style="color: #993399;">println</span> <span style="color: #ff0000;">&quot;&lt;/dl&gt;&quot;</span>
    <span style="color: #66cc66;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
      e.<span style="color: #006600;">printStackTrace</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#125;</span>
  <span style="color: #66cc66;">&#125;</span>
&nbsp;
  <span style="color: #808080; font-style: italic;">/**
   * Passwort Verschlüsselung mit SHA-1 Algorithmus
   */</span>
  <span style="color: #000000; font-weight: bold;">public</span> getEncodedPassword <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #aaaadd; font-weight: bold;">MessageDigest</span> md <span style="color: #66cc66;">=</span> <span style="color: #aaaadd; font-weight: bold;">MessageDigest</span>.<span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SHA-1'</span><span style="color: #66cc66;">&#41;</span>
    md.<span style="color: #006600;">update</span><span style="color: #66cc66;">&#40;</span>password.<span style="color: #006600;">getBytes</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'UTF-8'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> BASE64Encoder<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">encode</span><span style="color: #66cc66;">&#40;</span>md.<span style="color: #006600;">digest</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Ich wünsche Euch allen (mit und ohne gepflegten Kater) ein frohes und gesundes Jahr 2011.</p>
<p>Zum Schluss noch ein paar hilfreiche <strong>Links</strong>:</p>
<p><a href="http://zootool.com/api/keys">zootool API-Key Generierung</a><br />
<a href="http://zootool.com/api/docs/general">zootool API Doku</a><br />
<a href="http://zootool.com/api/docs/code">Beispiel Code für PHP, Python und Objective-C</a></p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2079&amp;md5=565b6bb8c47721eae6985a9111161a3e" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2011/01/01/groovy-zootool-lesezeichen-automatisieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2079&amp;md5=565b6bb8c47721eae6985a9111161a3e" type="text/html" />
	</item>
		<item>
		<title>guten Rutsch</title>
		<link>http://www.k-oo.de/blog/2010/12/31/guten-rutsch/</link>
		<comments>http://www.k-oo.de/blog/2010/12/31/guten-rutsch/#comments</comments>
		<pubDate>Fri, 31 Dec 2010 10:55:39 +0000</pubDate>
		<dc:creator>gklinkmann</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://www.k-oo.de/blog/?p=2057</guid>
		<description><![CDATA[Bei diesem Wetter einen guten Rutsch zu wünschen hat schon etwas zweideutiges. Trotzdem wünsche ich Euch allen, die Ihr diesen Blog verfolgt, einen guten Rutsch ins neue Jahr, Gesundheit und die Kraft die guten Vorsätze für das neue Jahr auch im selbigen umzusetzen. Gero]]></description>
			<content:encoded><![CDATA[<p>Bei diesem Wetter einen guten Rutsch zu wünschen hat schon etwas zweideutiges. </p>
<p>Trotzdem wünsche ich Euch allen, die Ihr diesen Blog verfolgt, einen guten Rutsch ins neue Jahr, Gesundheit und die Kraft die guten Vorsätze für das neue Jahr auch im selbigen umzusetzen.</p>
<p>Gero</p>
 <p><a href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2057&amp;md5=9d1bd94ccf51d7d70c31d89cfe0ad315" title="Flattr" target="_blank"><img src="http://www.k-oo.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.k-oo.de/blog/2010/12/31/guten-rutsch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.k-oo.de/blog/?flattrss_redirect&amp;id=2057&amp;md5=9d1bd94ccf51d7d70c31d89cfe0ad315" type="text/html" />
	</item>
	</channel>
</rss>

