<?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>Reiten, Schwimmen, Lesen &#187; Code</title>
	<atom:link href="http://www.reitenschwimmenlesen.de/blog/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.reitenschwimmenlesen.de/blog</link>
	<description>Ein Blog über Technik, Computer, Software, Entwicklung, Gadgets und weitere feine Dinge.</description>
	<lastBuildDate>Fri, 21 May 2010 09:39:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Facebook Fans mit Like Box Widget integrieren</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2010/04/29/facebook-fans-mit-like-box-widget-integrieren/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2010/04/29/facebook-fans-mit-like-box-widget-integrieren/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 10:43:16 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Medien]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Box]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Fan]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Like]]></category>
		<category><![CDATA[Social Plugins]]></category>
		<category><![CDATA[Webdev]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=991</guid>
		<description><![CDATA[Neben der Integration des Like Button (z.B. im Blog) gibt es auch im Rahmen der Facebook Social Plugins die Facebook Fan-Box (seit dem Umbenennen von &#8220;Fan werden&#8221; zu &#8220;mag ich&#8221; als Like Box) f&#252;r die eigene Webseite. Facebook stellt hierf&#252;r, wie f&#252;r die anderen Plugins auch, einen Like Widget Codegenerator zur Verf&#252;gung. Leider baut der [...]]]></description>
			<content:encoded><![CDATA[<p>
<div style="float:right;margin-left:10px;margin-bottom:10px;"><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2010/04/integration_like_box.png" rel="lightbox[991]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2010/04/integration_like_box-450x337.png" alt="" title="integration_like_box" width="200" style="border:1px solid #000;margin-right:0;" /></a></div>
<p> Neben der <a title="Facebook Like Button im WordPress Blog integrieren" href="http://www.reitenschwimmenlesen.de/blog/2010/04/22/facebook-like-button-im-wordpress-blog-einbauen/">Integration des Like Button (z.B. im Blog)</a> gibt es auch im Rahmen der <a href="http://developers.facebook.com/plugins">Facebook Social Plugins</a> die <strong>Facebook Fan-Box</strong> (seit dem Umbenennen von &#8220;Fan werden&#8221; zu &#8220;mag ich&#8221; als <strong>Like Box</strong>) f&#252;r die eigene Webseite. </p>
<p>Facebook stellt hierf&#252;r, wie f&#252;r die anderen Plugins auch, einen <strong>Like Widget Codegenerator</strong> zur Verf&#252;gung. Leider baut der <a title="Facebook Like Box Generator" href="http://developers.facebook.com/docs/reference/plugins/like-box">Facebook Generator f&#252;r die Fan-Box / Like-Box</a> den Code zur Integration falsch auf, das Ergebnis s&#228;he bei unserer Firmen-Fanbox so aus:<br />
<span id="more-991"></span></p>
<pre class="brush: xml;">
&lt;iframe src=&quot;http://www.facebook.com/plugins/likebox.php?profile_id=341249284440&amp;amp;width=292&amp;amp;height=350&amp;amp;connections=10&amp;amp;stream=true&amp;amp;header=true&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; allowTransparency=&quot;true&quot; style=&quot;border:none; overflow:hidden; width:292px; height:350px&quot;&gt;&lt;/iframe&gt;
</pre>
<p>Bei der &#220;bergabe der Parameter (http://www.facebook.com/plugins/likebox.php?<strong>profile=16id=341249284440</strong>) hat sich leider bei Facebook ein Fehler eingeschlichen, es m&#252;sste korrekt <strong>&#8220;likebox.php?profile=16id=341249284440&#8243;</strong> &#252;bergeben werden: </p>
<pre class="brush: xml;">
&lt;iframe src=&quot;http://www.facebook.com/plugins/likebox.php?profile=1&amp;id=341249284440&amp;amp;width=450&amp;amp;height=350&amp;amp;connections=10&amp;amp;stream=true&amp;amp;header=true&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; allowTransparency=&quot;true&quot; style=&quot;border:none; overflow:hidden; width:450px; height:350px&quot;&gt;&lt;/iframe&gt;
</pre>
<p><strong>Hier k&#246;nnt ihr direkt Fan werden: </strong></p>
<p><iframe src="http://www.facebook.com/plugins/likebox.php?profile=1&#038;id=341249284440&amp;width=470&amp;height=380&amp;connections=24&amp;stream=false&amp;header=true" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:470px; height:380px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2010/04/29/facebook-fans-mit-like-box-widget-integrieren/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Facebook &#8220;Like&#8221; Button im WordPress Blog einbauen</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2010/04/22/facebook-like-button-im-wordpress-blog-einbauen/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2010/04/22/facebook-like-button-im-wordpress-blog-einbauen/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 14:44:31 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Medien]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Like Button]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Social Plugins]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=981</guid>
		<description><![CDATA[Gestern, auf Facebooks F8 Konferenz, wurden von Mark Zuckerberg die neuen &#8220;social plugins&#8221; von Facebook vorgestellt. Hier&#252;ber k&#246;nnen Webseitenbetreiber mit geringem Aufwand auf Teile von Facebook zur&#252;ckgreifen, um somit die viralen Marketingkr&#228;fte von Facebook mit seinen &#252;ber 400 Millionen registrierten Usern nutzen. Ein Schelm, wer b&#246;ses dabei denkt&#8230; Im Gegenzug zu dem Zugang in einen [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern, auf Facebooks F8 Konferenz, wurden von Mark Zuckerberg die neuen<strong> <a rel="nofollow" href="http://developers.facebook.com/plugins">&#8220;social plugins&#8221; von Facebook</a> vorgestellt</strong>. Hier&#252;ber k&#246;nnen Webseitenbetreiber mit geringem Aufwand auf Teile von Facebook zur&#252;ckgreifen, um somit die <strong>viralen Marketingkr&#228;fte</strong> von Facebook mit seinen &#252;ber<strong> 400 Millionen</strong> registrierten Usern nutzen. Ein Schelm, wer b&#246;ses dabei denkt&#8230;<br />
<span id="more-981"></span><br />
<img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2010/04/ilike.png" alt="" title="ilike" width="299" height="44" class="aligncenter size-full wp-image-986" border="0" /></p>
<div style="clear:both"></div>
<p>
Im Gegenzug zu dem Zugang in einen &#8220;Stream&#8221; (den Wall von Usern bei Facebook), auf dem der User all seinen Freunden mitteilt, was gerade so passiert (und was er so alles mag), sieht Facebook meiner Vermutung nach nat&#252;rlich, wer sich von welchen auf welche Seiten im Netz bewegt, kann Statistiken hier&#252;ber f&#252;r Werbepartner auswerten, kann somit &#8220;re-marketing&#8221; M&#246;glichkeiten an Werbekunden verkaufen und sich generell fester in den Web-Sattel setzen. </p>
<p><strong>Meines Erachtens nach kommt in Zukunft niemand im Marketing von Unternehmen an Facebook vorbei</strong> (hierbei auch interessant: Mein <a href="http://blog.rcgmbh.com/social-media-marketing-agentur-report-2010/">Blogbeitrag &#252;ber den 2010 Social Media Marketing Industry Report in unserem Agentur Unternehmensblog</a>). </p>
<p>Wie dem auch sei mag ich die technischen und konzeptionellen M&#246;glichkeiten des Like Buttons, daher m&#246;chte ich hier schnell erkl&#228;ren, auf welche Art und Weise dieser in einem Blog oder auf einer Webseite integriert werden kann:</p>
<p>Facebook erm&#246;glicht dies auf zwei Weisen. Entweder nutzt man einen iFrame, der den ben&#246;tigten Inhalt direkt von Facebook einbettet. Der Code hierf&#252;r lautet so (den Parameter f&#252;r die URL muss an die entsprechende Seite angepasst werden):</p>
<pre class="brush: xml;">
&lt;iframe src=&quot;http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.reitenschwimmenlesen.de%2F&amp;amp;layout=standard&amp;amp;show-faces=true&amp;amp;width=450&amp;amp;action=like&amp;amp;colorscheme=light&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot; allowTransparency=&quot;true&quot; style=&quot;border:none; overflow:hidden; width:500px; height:60px&quot;&gt;&lt;/iframe&gt;</pre>
<p>In einem WordPress Template kann man den ben&#246;tigten href Parameter wie folgt auslesen lassen: </p>
<pre class="brush: php;">&lt;?php echo urlencode(get_permalink($post-&gt;ID)); ?&gt;</pre>
<p>Man kann aber auch auf die von Facebook zur Verf&#252;gung gestellte FBML (Facebook Markup Language) zur&#252;ckgreifen. Dies erfordert allerdings ein Einbetten von Facebook JavaScripts in die Seite. Wenn auf Facebook Connect zur&#252;ckgegriffen wird, sind die ben&#246;tigten JavaScripts aber h&#246;chstwahrscheinlich sowieso schon Teil des Quelltextes und m&#252;ssen daher ohnehin geladen werden. Hierbei sieht dann das Einbetten des Like Buttons so aus: </p>
<pre class="brush: php;">
&lt;fb:like href=&quot;http://www.reitenschwimmenlesen.de/&quot; layout=&quot;standard&quot; show_faces=&quot;true&quot; width=&quot;450&quot; action=&quot;like&quot; colorscheme=&quot;light&quot; /&gt;
</pre>
<p>Das ben&#246;tigte JavaScript von Facebook kann man wie <a href="http://developers.facebook.com/docs/reference/javascript/" rel="nofollow">hier</a> beschrieben irgendwo im Quelltext der Seite einbetten. </p>
<p>Einen <a href="http://developers.facebook.com/docs/reference/plugins/like">Generator</a> gibt es daf&#252;r auch bei Facebook selbst.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2010/04/22/facebook-like-button-im-wordpress-blog-einbauen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>43 iPhone Development Resources</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/06/18/43-iphone-development-resources/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/06/18/43-iphone-development-resources/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 07:45:15 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=939</guid>
		<description><![CDATA[Arne hat auf Twitter einen interessanten Link geposted, der (in manchen Teilen mit viel Gelaber und einigen &#8220;schwachen&#8221; Links) 43 iPhone Development Resources aufzeigt und kurz beschreibt. F&#252;r den ein oder anderen Einsteiger und Fortgeschrittenen iPhone Entwickler sind hier mit Sicherheit einige Perlen dabei. Programming for the iPhone is still pretty new. It might be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.arnalyse.de">Arne</a> hat auf <a href="http://twitter.com/arnalyse">Twitter</a> einen interessanten Link <a href="http://twitter.com/arnalyse/status/2205301041">geposted</a>, der (in manchen Teilen mit viel Gelaber und einigen &#8220;schwachen&#8221; Links) <a href="http://theappleblog.com/2009/06/01/43-iphone-development-resources/">43 iPhone Development Resources</a> aufzeigt und kurz beschreibt. </p>
<p>F&#252;r den ein oder anderen Einsteiger und Fortgeschrittenen iPhone Entwickler sind hier mit Sicherheit einige Perlen dabei.</p>
<blockquote><p>Programming for the iPhone is still pretty new. It might be a bit tougher to find iPhone developer resources, but we found a bunch that will get you through building any iPhone app you might be starting on. Check out our list of our favorite developer books, blogs, podcasts, screencasts, open-source libraries, communities, forums, conferences, training, and more!</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/06/18/43-iphone-development-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Milliarden von SQL Queries am Tag</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/06/16/milliarden-von-sql-queries-am-tag/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/06/16/milliarden-von-sql-queries-am-tag/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 07:50:22 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technik]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=934</guid>
		<description><![CDATA[F&#252;r alle Interessierten und Suchenden gibt es hier eine kleine Pr&#228;sentation, in dem Dathan Vance Pattishall, dem &#8220;database guy&#8221; von meinem Lieblingsfotodienst Flickr beschreibt, auf welche Art und Weise t&#228;glich &#8220;billions of queries&#8221; abgehandelt werden. DVPmysqlucFederation at Flickr: Doing Billions of Queries Per Day DVPmysqlucFederation at Flickr: Doing Billions of Queries Per Day dathan Federation [...]]]></description>
			<content:encoded><![CDATA[<p>F&#252;r alle Interessierten und Suchenden gibt es hier eine kleine Pr&#228;sentation, in dem <a href="http://mysqldba.blogspot.com/">Dathan Vance Pattishall</a>, dem &#8220;database guy&#8221; von meinem Lieblingsfotodienst <a href="http://www.flickr.com/photos/pixelkoenig" title="That's me!">Flickr</a> beschreibt, auf welche Art und Weise t&#228;glich &#8220;billions of queries&#8221; abgehandelt werden.  </p>
<p><a title="View DVPmysqlucFederation at Flickr: Doing Billions of Queries Per Day on Scribd" href="http://www.scribd.com/doc/2592098/DVPmysqlucFederation-at-Flickr-Doing-Billions-of-Queries-Per-Day" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;">DVPmysqlucFederation at Flickr: Doing Billions of Queries Per Day</a> <object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_468493660573582" name="doc_468493660573582" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" style="border:1px solid #000" height="500" width="100%" rel="media:document" resource="http://d.scribd.com/ScribdViewer.swf?document_id=2592098&#038;access_key=key-26uujjyeg1djsea1tgcs&#038;page=1&#038;version=1&#038;viewMode=" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:dc="http://purl.org/dc/terms/" ><param name="movie"	value="http://d.scribd.com/ScribdViewer.swf?document_id=2592098&#038;access_key=key-26uujjyeg1djsea1tgcs&#038;page=1&#038;version=1&#038;viewMode="></param><param name="quality" value="high"></param><param name="play" value="true"></param><param name="loop" value="true"></param><param name="scale" value="showall"></param><param name="wmode" value="opaque"></param><param name="devicefont" value="false"></param><param name="bgcolor" value="#ffffff"></param><param name="menu" value="true"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><param name="salign" value=""><embed src="http://d.scribd.com/ScribdViewer.swf?document_id=2592098&#038;access_key=key-26uujjyeg1djsea1tgcs&#038;page=1&#038;version=1&#038;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_468493660573582_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"></embed><span rel="media:thumbnail" href="http://i.scribd.com/profiles/images/jn9lllwmmc9nd-thumb.jpg"> 						<span property="media:title">DVPmysqlucFederation at Flickr: Doing Billions of Queries Per Day</span>			<span property="dc:creator">dathan</span> 							<span property="dc:description">Federation at Flickr: Doing Billions of Queries Per Day</span> 						<span property="dc:type" content="Text"> 			</span></span></param></object>	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/06/16/milliarden-von-sql-queries-am-tag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debug Informationen in CakePHP</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/06/10/debug-informationen-in-cakephp/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/06/10/debug-informationen-in-cakephp/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 12:27:24 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Cake]]></category>
		<category><![CDATA[CakepPHP]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Session]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=915</guid>
		<description><![CDATA[Debugging von Anwendungen, die auf PHP basieren, ist zwar mit Tools wie Zend / Eclipse leichter geworden als noch vor einigen Jahren, aber manchmal bedarf es auch nur einer einfachen Anzeige von Header-, Session- oder anderen Requestdaten w&#228;hrend der Laufzeit im Frontend. Bei der Entwicklung von CakePHP Anwendungen k&#246;nnen von Haus aus Informationen z.B. zur [...]]]></description>
			<content:encoded><![CDATA[<p>Debugging von Anwendungen, die auf PHP basieren, ist zwar mit Tools wie <a href="http://www.zend.com/en/community/pdt" title="PDT PHP Plugin f&#252;r Eclipse">Zend / Eclipse</a> leichter geworden als noch vor einigen Jahren, aber manchmal bedarf es auch nur einer einfachen Anzeige von Header-, Session- oder anderen Requestdaten w&#228;hrend der Laufzeit im Frontend. </p>
<p>Bei der Entwicklung von CakePHP Anwendungen k&#246;nnen von Haus aus Informationen z.B. zur Datenbankabfrage mithilfe der Konfigurationsvariable debug und des Befehls</p>
<pre class="brush: php;">
Configure::write(&quot;debug&quot;, 1);
</pre>
<p>ausgegeben werden. </p>
<p>Es gibt insgesamt 4 Debug Level, die <a href="http://news.softpedia.com/news/Configuration-of-core-php-for-CakePHP-65699.shtml" class="broken_link">hier</a> im Kontext einer &#228;lteren CakePHP Version (dort wird die Konstante DEBUG genutzt) folgenderma&#223;en bezeichnet werden: </p>
<blockquote><p>There are 4 levels of debug: 0-production, 1- development, 2- full debug with sql and 3- full debug with sql and dump of the current object. Specifying this setting to a non-zero value will force Cake to print out the results of pr( ) and debug( ) function calls, and stop flash messages from forwarding automatically. In production, the &#8220;flash messages&#8221; redirect after a time interval. With the other debug levels you get to click the &#8220;flash message&#8221; to continue. For example, if you want to set the debug level to &#8220;full debug with sql&#8221;, the line should look like this: define(&#8216;DEBUG&#8217;, 2);</p></blockquote>
<p>Da die Debug Informationen von Cake immer am unteren Seitenende gerendert  und &#8211; sobald man vom CakePHP Standardlayout abweicht &#8211; auch &#228;u&#223;erst h&#228;sslich werden, gibt es bei <a href="http://snook.ca/archives/cakephp/debug_styles/">Snook.ca</a> die folgenden CSS Klassendefinitionen, um diese Infos generell schicker zu gestalten:</p>
<pre class="brush: css;">
.cake-sql-log {
	position:fixed;
	top:99%;
	z-index:10;
	width:100%;
	background-color:#000;
	color:#FFF;
	border-collapse:collapse;
}

.cake-sql-log caption {
	background-color:#900;
	color:#FFF;
}

.cake-sql-log:hover {
	top:auto;
	bottom:0;
}

.cake-sql-log td {
	padding:3px;
	border:1px solid #999;
	background-color:#EEE;
	color:#000;
}
</pre>
<p>Wer jetzt noch weitere Informationen braucht (wie oben bereits erw&#228;hnt u.a. zu Sessiondaten, Log-Aktivit&#228;ten, Timings etc.) der ist mit der <a href="http://www.ohloh.net/p/cakephp-debugkit" title="CakePHP DebugKit Toolbar">CakePHP DebugKit Toolbar von Mark Story</a> gut bedient. </p>
<p>Die Toolbar &#8220;versteckt&#8221; sich geradezu absolut positioniert in der rechten oberen Ecke der Webseite und &#246;ffnet sich blei Klick auf ein kleines Icon. </p>
<p>Was sie alles bietet, zeigt sich in den folgenden Screenshots: </p>
<div style="float:left;"><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/debugkittoolbar1-800x527.jpg" rel="lightbox[915]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/debugkittoolbar1-150x150.jpg" alt="DebugKit Toolbar in CakePHP" title="DebugKit Toolbar in CakePHP - Hier: Anzeige der Request-Daten" width="150" height="150" class="alignleft size-thumbnail wp-image-918" style="margin-right:2px;" /></a></div>
<div style="float:left;"><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/debugkittoolbar2-800x527.jpg" rel="lightbox[915]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/debugkittoolbar2-150x150.jpg" alt="DebugKit Toolbar  in CakePHP - Timings der Prozesse" title="DebugKit Toolbar  in CakePHP - Timings" width="150" height="150" class="alignleft size-thumbnail wp-image-917" style="margin-right:2px;" /></a></div>
<div style="float:left;"><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/debugkittoolbar3-800x332.jpg" rel="lightbox[915]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/debugkittoolbar3-150x150.jpg" alt="DebugKit Toolbar - Sessioninhalte, sch&#246;n ausklappbar" title="DebugKit Toolbar - Sessioninhalte" width="150" height="150" class="alignleft size-thumbnail wp-image-916" style="margin-right:0px;" /></a></div>
<div style="clear:both"></div>
<p>Ich binde die Toolbar dynamisch je nach Umgebung auf folgende Art und Weise im app_controller ein: </p>
<pre class="brush: php;">
	public function __construct(){
		parent::__construct();
		if(DEVELOPMENT_ENVIRONMENT){
			$this-&gt;components[] = 'DebugKit.Toolbar';
			Configure::write('debug', 2);
		} else {
			Configure::write('debug', 0);
		}
	}
</pre>
<p>Hier pr&#252;fe ich auf die Konstante <em>DEVELOPMENT_ENVIRONMENT</em>, die ich, wie alle anderen Variablen, die global f&#252;r die App zur Verf&#252;gung stehen m&#252;ssen, in der <em>bootstrap.php</em> definiere. Solche Variablen k&#246;nnten eben serverseitig zur Auswahl der entsprechenden Pfade (z.B. f&#252;r Logs oder tempor&#228;re Uploads) oder auch f&#252;r die Auswahl der entsprechenden Datenbankverbindungen herangezogen werden. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/06/10/debug-informationen-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP: Auf Mac OS im Terminal bake ausf&#252;hren</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/06/09/cakephp-auf-mac-os-im-terminal-bake-ausfuehren/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/06/09/cakephp-auf-mac-os-im-terminal-bake-ausfuehren/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 07:36:36 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Bake]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Terminal]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=909</guid>
		<description><![CDATA[Wer auf Mac OS versucht, im Terminal das &#8220;Bake Script&#8221; von CakePHP auszuf&#252;hren, wird wahrscheinlich auf die Problematik sto&#223;en, dass die mitgelieferte PHP Version von Mac OS nicht korrekt das Script ausf&#252;hrt. Hier gibt es &#8211; wie ich gelesen habe &#8211; hundert Ans&#228;tze, das Problem zu umschiffen, der leichteste und praktikabelste ist in meinem Setting [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/cake-logo.png" alt="CakePHP" title="CakePHP" width="120" height="120" class="aligncenter size-full wp-image-912" /><br />
Wer auf Mac OS versucht, im Terminal das &#8220;<a href="http://cakebaker.42dh.com/2007/05/31/baking-a-bit-faster-with-the-bake-script/">Bake Script</a>&#8221; von <a href="http://www.cakephp.org">CakePHP</a> auszuf&#252;hren, wird wahrscheinlich auf die Problematik sto&#223;en, dass die mitgelieferte PHP Version von Mac OS nicht korrekt das Script ausf&#252;hrt. </p>
<p>Hier gibt es &#8211; wie ich gelesen habe &#8211; hundert Ans&#228;tze, das Problem zu umschiffen, der leichteste und praktikabelste ist in meinem Setting (mit MAMP auf Mac OS) folgender, direkter Aufruf einer anderen PHP Version zum Ausf&#252;hren des PHP Scripts. </p>
<p>Der Aufruf erfolgt in dem Projekt- Konsolenordner (z.B. in meinem Fall <em>/Users/lrheingans/Documents/Workspace/Project_X/cake/console/</em>) </p>
<pre class="brush: plain;">
/Applications/MAMP/bin/php5/bin/php cake.php bake
</pre>
<p>Von hier l&#228;uft dann alles wie gewohnt. </p>
<p>Um das Bake Script unter Eclipse ausf&#252;hren zu k&#246;nnen, gibt es auch in der <a href="http://bakery.cakephp.org/articles/view/setting-up-eclipse-to-work-with-cake" title="Set Up Eclipse for Cake">Bakery einige Tutorials</a> (mir war der mini Aufwand allerdings nicht wert, ich mag meine Konsole)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/06/09/cakephp-auf-mac-os-im-terminal-bake-ausfuehren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webentwicklung mit Java: Spring</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/06/05/webentwicklung-mit-java-spring/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/06/05/webentwicklung-mit-java-spring/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 09:20:56 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=885</guid>
		<description><![CDATA[Mein Freund und Kollege Wolfram bietet in seinem Weblog &#252;ber Spring, Java, Hibernate einiges an Expertenwissen auf dem Gebiet komplexer Webentwicklung an. Wer sich f&#252;r Softwareentwicklung im Webbereich mit Java und Spring interessiert, sollte sich auf jeden Fall seinen RSS Feed abonnieren.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/spring.png" alt="spring" title="spring" width="118" height="52" class="aligncenter size-full wp-image-886" />Mein Freund und <a href="http://www.rcgmbh.com" title="Softwareentwicklung, Digitale Kommunikationsl&#246;sungen">Kollege</a> Wolfram bietet in seinem <a href="http://www.springblog.de" title="Springblog von Wolfram Twelker">Weblog &#252;ber Spring, Java, Hibernate</a> einiges an Expertenwissen auf dem Gebiet komplexer Webentwicklung an. </p>
<p>Wer sich f&#252;r Softwareentwicklung im Webbereich mit Java und Spring interessiert, sollte sich auf jeden Fall seinen <a href="http://www.springblog.de/feed/">RSS Feed</a> abonnieren. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/06/05/webentwicklung-mit-java-spring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Page Speed Firefox Extension</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/06/05/page-speed-firefox-extension/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/06/05/page-speed-firefox-extension/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 07:08:57 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Extension]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Page Speed]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=877</guid>
		<description><![CDATA[Google hat gestern ein bisher bei Google intern genutztes Tool als Firefox Extension ver&#246;ffentlicht: Page Speed Page Speed integriert sich in Firebug und verh&#228;lt sich &#228;hnlich wie das von Yahoo! herausgebrachte YSLOW Plugin, mit einigen weiteren Extrafeatures die eine Seitenoptimierung erfolgreicher machen k&#246;nnen: So bietet Page Speed eine ausgefeilte CSS Analyse an, die Hinweise auf [...]]]></description>
			<content:encoded><![CDATA[<p>Google hat gestern ein bisher bei Google intern genutztes Tool als Firefox Extension ver&#246;ffentlicht: </p>
<p><a href="http://google-code-updates.blogspot.com/2009/06/introducing-page-speed.html">Page Speed</a></p>
<p>Page Speed integriert sich in Firebug und verh&#228;lt sich &#228;hnlich wie das von Yahoo! herausgebrachte <a href="https://addons.mozilla.org/de/firefox/addon/5369">YSLOW Plugin</a>, mit einigen weiteren Extrafeatures die eine Seitenoptimierung erfolgreicher machen k&#246;nnen: </p>
<p>So bietet Page Speed eine ausgefeilte CSS Analyse an, die Hinweise auf ungenutztes (und ineffizientes) CSS Styling ausgibt: </p>
<p><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/css_summary.jpg" rel="lightbox[877]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/css_summary.jpg" alt="css_summary" title="css_summary" width="450" class="aligncenter size-full wp-image-881" /></a></p>
<p>In der Performance Summary bietet sich ein von YSlow bekanntes Bild, wenn auch mit einigen weiteren Hinweisen: </p>
<div style="width:450px;text-align:center"><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/performance_summary.jpg" rel="lightbox[877]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/performance_summary.jpg" alt="performance_summary" title="performance_summary" width="450" class="alignnone size-medium wp-image-880" /></a></div>
<p>Eine besonders interessante Funktion ist der sogenannte Acticvity Recorder, bei dem s&#228;mtliche Aktivit&#228;t von der Page Speed Extension anhand einer mitlaufenden Zeitleiste dargestellt wird: </p>
<p><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/activity_recording.jpg" rel="lightbox[877]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/06/activity_recording.jpg" alt="activity_recording" title="activity_recording" width="450" class="aligncenter size-full wp-image-879" /></a></p>
<p>Ich werde mir unsere Webseiten in den n&#228;chsten Tagen einmal genauer mit Page Speed ansehen, und schauen, wie es sich gegen&#252;ber YSlow verh&#228;lt. </p>
<div style="clear:both"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/06/05/page-speed-firefox-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>{navtrail} im xtCommerce &#8211; Artikeltitel anstelle der Artikelnummer anzeigen</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/04/01/navtrail-im-xtcommerce-artikeltitel-anstelle-der-artikelnummer-anzeigen/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/04/01/navtrail-im-xtcommerce-artikeltitel-anstelle-der-artikelnummer-anzeigen/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 10:21:56 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[brotkrumen]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[navtrail]]></category>
		<category><![CDATA[xtc]]></category>
		<category><![CDATA[xtcommerce]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=820</guid>
		<description><![CDATA[Wie passe ich die Variable {navtrail} in einem Template einer xtCommerce Installation an? Hier steht's!]]></description>
			<content:encoded><![CDATA[<p>Um im xtCommerce (xtc) Template die in der Smarty Variable {navtrail} beinhaltete Brotkrumennavigation anzupassen, muss der folgende Schritt unternommen werden: </p>
<p>In der Datei <strong>includes/application_top.php</strong> befindet sich die folgende Zeile:</p>
<pre class="brush: php;">
$breadcrumb-&gt;add($product-&gt;getBreadcrumbModel(), xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($product-&gt;data['products_id'], $product-&gt;data['products_name'])));
</pre>
<p>die folgenderma&#223;en angepasst werden muss:</p>
<pre class="brush: php;">
$breadcrumb-&gt;add($product-&gt;data['products_name'], xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($product-&gt;data['products_id'], $product-&gt;data['products_name'])));
</pre>
<p>Um das ganze noch ein wenig suchmaschinenoptimierter zu gestalten empfiehlt es sich, in der Datei <strong>/lang/german/german.php</strong> (und, bei mehrsprachigen Shops, entsprechend in den anderen Sprachdateien und -ordnern) die folgende Anpassung vorzunehmen, um von den unsinnigen Standardwerten &#8220;Startseite&#8221; und &#8220;Katalog&#8221; von xtCommerce wegzukommen und die Premium Position doch lieber f&#252;r eigene, f&#252;r die Suchmaschinen relevantere Keywords zu nutzen (hier am Beispiel der Palmenoase, einem <a href="http://www.palmenoase.com" title="Onlineshop f&#252;r mediterrane Pflanzen und Palmen">Onlineshop f&#252;r mediterrane Pflanzen und Palmen</a>): </p>
<pre class="brush: php;">
define('HEADER_TITLE_TOP', 'Palmenoase');
define('HEADER_TITLE_CATALOG', 'Shop');
</pre>
<p>Kleiner Aufwand, gro&#223;e Wirkung, wie man in den folgenden Screenshots in der Brotkrumennavigation feststellen kann. </p>
<div style="text-align:left;">
<a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/04/alte_brotkrumen_navigation1.jpg" rel="lightbox[820]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/04/alte_brotkrumen_navigation1.jpg" alt="Standardwerte der Brotkrumennavigation in xtCommerce" title="Standardwerte der Brotkrumennavigation in xtCommerce" width="450" class="aligncenter size-full wp-image-824" /></a></p>
<p><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/04/neue_brotkrumen_navigation1.jpg" rel="lightbox[820]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/04/neue_brotkrumen_navigation1.jpg" alt="Verbesserte Brotkrumen Navigation im {navtrail}" title="Verbesserte Brotkrumen Navigation im {navtrail}" width="450" class="size-full wp-image-823" /></a></p>
<div style="clear:both"></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/04/01/navtrail-im-xtcommerce-artikeltitel-anstelle-der-artikelnummer-anzeigen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probleme mit Download von dynamisch generierten Dateien im Internet Explorer</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/03/17/probleme-beim-download-von-dynamisch-generierten-dateien-im-ie/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/03/17/probleme-beim-download-von-dynamisch-generierten-dateien-im-ie/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 11:23:52 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Buffer]]></category>
		<category><![CDATA[Content]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Header]]></category>
		<category><![CDATA[PDFLib]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=799</guid>
		<description><![CDATA[Es gibt Dinge, die sich einem einfach regelm&#228;&#223;ig wieder in den Weg stellen &#8211; so zum Beispiel Probleme mit Downloads von dynamisch generierten Dateien in PHP im Internet Explorer. Das folgende Fehler PopUp der Internet Explorer 6, 7 oder 8 sind ein immer wiederkehrendes &#196;rgernis, wenn man versucht, einen Dateidownload mittels PHP zu realisieren: Hierbei [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt Dinge, die sich einem einfach regelm&#228;&#223;ig wieder in den Weg stellen &#8211; so zum Beispiel <strong>Probleme mit Downloads von dynamisch generierten Dateien in PHP im Internet Explorer</strong>. </p>
<p>Das folgende Fehler PopUp der Internet Explorer 6, 7 oder 8 sind ein immer wiederkehrendes &#196;rgernis, wenn man versucht, einen Dateidownload mittels PHP zu realisieren: </p>
<div style="margin:0 auto; width:460px"><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/03/ms_error1.jpg" rel="lightbox[799]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/03/ms_error1-300x181.jpg" alt="Fehler beim Herunterladen eines dynamisch generierten Dokuments im IE" title="Fehler beim Herunterladen eines dynamisch generierten Dokuments im IE" width="400"  /></a></div>
<div style="clear:both"></div>
<p>Hierbei handelt es sich um ein dynamisch im Memory des Webservers generierten PDF Dokuments, das eigentlich als PDF_Preview.pdf betitelte Datei im Browser ankommen soll (und im Firefox, Safari, Opera und Chrome auch tut). </p>
<p>Zur Erzeugung wird der <a href="http://www.pdflib.com/de/produkte/pdflib-familie/pps/" title="PDFLib Personalization Server"><strong>PDFLib Personalization Server</strong></a> genutzt, und am Ende des ganzen Erzeugungsprozesses steht ein Buffer (hier beispielhaft <strong>$pdf_buffer</strong>) des kompletten Dokumentes als Variable zur Verf&#252;gung. </p>
<p>Was f&#252;r den Browser jetzt noch passieren muss: Per <a href="http://de2.php.net/header" title="PHP header() Funktion">PHP header() Funktion</a> wird dem Browser mitgeteilt, dass es sich um einen bestimmten Mimetype (<a title="Tool zum Anzeigen des MIME Types" href="http://www.reitenschwimmenlesen.de/tools/mime_type.php">ein Tool, um den MIME Type bei Dateiuploads herauszufinden gibt es hier</a>) bzw. Datenstrom  handelt (in diesem Fall handelt es sich um ein PDF, dass mit <em>Content-type: application/pdf</em> beschrieben wird). Weiterhin wird definiert, dass es als Dateidownload zur Verf&#252;gung gestellt werden soll, und der gew&#252;nschte Dateiname wird vom Script &#252;bergeben).</p>
<p>Um diesen Dateidownload (auch mit dem Internet Explorer) hinzubekommen, m&#252;ssen zus&#228;tzlich diese zwei weiteren Headerinformationen mit angegeben werden: </p>
<p>header(&#8216;Content-type: application/pdf&#8217;)<br />
header(&#8216;Content-Disposition: attachment; filename=&#8221;PDF_Preview.pdf&#8221;&#8216;);</p>
<p>// Folgende zwei Zeilen sind f&#252;r den IE wichtig,<br />
// alle anderen Browser brauchen sie nicht<br />
// (st&#246;ren sich daran aber auch nicht)<br />
header(&#8220;Pragma: public&#8221;);<br />
header(&#8220;Cache-Control: max-age=0&#8243;);</p>
<p>echo $pdf_buffer;</p>
<p>Im Vorfeld (auf jeden Fall bevor der Buffer mit echo ausgegeben wird) sollte allerdings in jedem Fall die zu erwartende Dateigr&#246;&#223;e mittels</p>
<p>$pdf_buffer = PDF_get_buffer($p);<br />
$len = strlen($buf);<br />
header(&#8220;Content-Length: $len&#8221;);</p>
<p>berechnet und ebenfalls per Header ausgegeben werden. </p>
<p>Vielleicht hilft dieser schnelle Artikel mir selbst auch beim n&#228;chsten Auftreten solcher Probleme als Ged&#228;chtnisst&#252;tze&#8230; <img src='http://www.reitenschwimmenlesen.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/03/17/probleme-beim-download-von-dynamisch-generierten-dateien-im-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Analytics auf Flashwebseiten nutzen</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/03/01/google-analytics-auf-flashwebseiten-nutzen/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/03/01/google-analytics-auf-flashwebseiten-nutzen/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 22:09:57 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Statistiken]]></category>
		<category><![CDATA[Tracking]]></category>
		<category><![CDATA[User]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=784</guid>
		<description><![CDATA[F&#252;r alle die Entwickler, die lieber f&#252;r bestimmte Eins&#228;tze auf Flash / Flex zur&#252;ckgreifen, habe ich eben im Google Blog (bzw. auf der Analytics Startseite) folgende Informationen &#252;ber &#8220;Google Analytics within Flex/Flash Applications&#8221; gefunden, die ich niemandem vorenthalten m&#246;chte: Mittels der Google Analytics AS3-API kann auf alle Features von Google Analytics jetzt direkt aus Flex [...]]]></description>
			<content:encoded><![CDATA[<p>F&#252;r alle die Entwickler, die lieber f&#252;r bestimmte Eins&#228;tze auf Flash / Flex zur&#252;ckgreifen, habe ich eben im Google Blog (bzw. auf der Analytics Startseite) folgende Informationen &#252;ber &#8220;Google Analytics within Flex/Flash Applications&#8221; gefunden, die ich niemandem vorenthalten m&#246;chte:</p>
<p>Mittels der Google Analytics AS3-API kann auf alle Features von Google Analytics jetzt direkt aus Flex heraus zugegriffen werden, das Ding nennt sich &#8220;gaforFlash&#8221;. Getestet hab ich da noch nix, aber nachzulesen ist die Geschichte hier: <a href='http://www.insideria.com/2009/02/using-google-analytics-within.html'>Google Analytics within Flex/Flash Applications</a>. Ich verabschiede mich kurz in einen spontanen, wohlverdienten Urlaub&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/03/01/google-analytics-auf-flashwebseiten-nutzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Development in verschiedenen Browsern testen</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/02/24/development-in-verschiedenen-browsern-testen/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/02/24/development-in-verschiedenen-browsern-testen/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 21:08:15 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Debug]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Virtuelle Maschine]]></category>
		<category><![CDATA[VM]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=777</guid>
		<description><![CDATA[Jeder Webentwickler kennt das Problem: Webseiten sehen in unterschiedlichen Browsern immer etwas anders aus. Hier k&#246;nnte der Service der Firma xenocode, einem Anbieter f&#252;r Virtualisierungsl&#246;sungen, schon zumindest etwas mehr Komfort mitbringen, denn &#252;ber Ihre Webseite &#8220;Run IE8/7/6, Firefox, Safari, Chrome, and Opera from the web&#8221; k&#246;nnen die verschiedenen Browser als &#8220;Mini System&#8221; heruntergeladen und dann [...]]]></description>
			<content:encoded><![CDATA[<p>Jeder Webentwickler kennt das Problem:</p>
<p>Webseiten sehen in unterschiedlichen Browsern immer etwas anders aus. </p>
<p>Hier k&#246;nnte der Service der Firma xenocode, einem Anbieter f&#252;r Virtualisierungsl&#246;sungen, schon zumindest etwas mehr Komfort mitbringen, denn &#252;ber Ihre Webseite &#8220;<a href='http://www.xenocode.com/browsers/' title="Firefox, IE, Safari, ...">Run IE8/7/6, Firefox, Safari, Chrome, and Opera from the web</a>&#8221; k&#246;nnen die verschiedenen Browser als &#8220;Mini System&#8221; heruntergeladen und dann auf einer Windows-Maschine getestet werden.</p>
<p>So bekommt jeder Browser (z.B. der als IE8.exe verpackte Internet Explorer <img src='http://www.reitenschwimmenlesen.de/blog/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> seine eigene .exe &#8211; Sandbox und kann somit parallel zu anderen Browsern laufen.</p>
<p>Ich als Mac J&#252;nger habs noch nicht getestet (beim Mac zeigt auch der Link schon an, dass es auf &#8220;meinem device&#8221; nicht funktioniert), aber runterladen (f&#252;r Parallels und die anderen Rechner im Office) werde ich s&#228;mtliche Sandboxen auf jeden Fall <img src='http://www.reitenschwimmenlesen.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/02/24/development-in-verschiedenen-browsern-testen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online-Tool f&#252;r Int/Hex/Char-Konvertierung</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/02/19/online-tool-fuer-inthexchar-konvertierung/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/02/19/online-tool-fuer-inthexchar-konvertierung/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 18:44:17 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Converter]]></category>
		<category><![CDATA[Hex]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Konvertierung]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=775</guid>
		<description><![CDATA[Manchmal ein &#228;u&#223;erst n&#252;tzliches Tool: Der Zeichen &#8594; Hex Converter. F&#252;r mich kam es gerade beim Einpflegen franz&#246;sicher Messagebundles gerade recht, dort m&#252;ssen franz&#246;sische Sonderzeichen in die korrespondierenden HEX Werte umgewandelt werden. Zu finden ist das kleine Tool, das zwar leider nur einzelne Buchstaben konvertiert, unter diesem Link: Online-Tools: Int/Hex/Char-Converter und Entity-Generator gegen EMail-Spam.]]></description>
			<content:encoded><![CDATA[<p>Manchmal ein &#228;u&#223;erst n&#252;tzliches Tool: <strong>Der Zeichen &rarr; Hex Converter.</strong></p>
<p>F&#252;r mich kam es gerade beim Einpflegen franz&#246;sicher Messagebundles gerade recht, dort m&#252;ssen franz&#246;sische Sonderzeichen in die korrespondierenden HEX Werte umgewandelt werden.</p>
<p>Zu finden ist das kleine Tool, das zwar leider nur einzelne Buchstaben konvertiert, unter diesem Link: <a href='http://www.sql-und-xml.de/unicode-database/online-tools/index.html'>Online-Tools: Int/Hex/Char-Converter und Entity-Generator gegen EMail-Spam</a>.				</p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/02/19/online-tool-fuer-inthexchar-konvertierung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internationalisierung mit CakePHP&#8217;s i18n Features</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/02/12/internationalisierung-mit-cakephp-und-i18n/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/02/12/internationalisierung-mit-cakephp-und-i18n/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 09:16:39 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Bake]]></category>
		<category><![CDATA[Internationalisierung]]></category>
		<category><![CDATA[Screencasts]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=763</guid>
		<description><![CDATA[Zu meiner Ank&#252;ndigung, wie die i18n Features von CakePHP richtig eingebunden werden k&#246;nnen, gibt es bei gouranga &#124; CakePHP I18n &#038; l10n ein gut geschriebenes und relativ umfassendes Tutorial. Dort werden die von Cake bereitgestellten Funktionen (den Artikel Localizing your Application gibt es &#252;brigens hier) beschrieben, wie die verschiedenen Strings der .po Dateien aus Cake [...]]]></description>
			<content:encoded><![CDATA[<p>Zu <a href="http://www.reitenschwimmenlesen.de/blog/2009/02/10/syntax-highlighting-in-wordpress-blogs-fuer-cakephp-beitraege/">meiner Ank&#252;ndigung</a>, wie die i18n Features von <a href="http://cakephp.org">CakePHP</a> richtig eingebunden werden k&#246;nnen, gibt es bei <a href="http://www.steffen-goertz.de/2008/05/09/cakephp-i18n-l10n/" class="broken_link">gouranga | CakePHP I18n &#038; l10n</a> ein gut geschriebenes und relativ umfassendes Tutorial. </p>
<p>Dort werden die von Cake bereitgestellten Funktionen (den Artikel <a href="http://book.cakephp.org/view/162/Localizing-Your-Application">Localizing your Application gibt es &#252;brigens hier</a>) beschrieben, wie die verschiedenen Strings der .po Dateien aus Cake heraus aufgerufen werden k&#246;nnen.  </p>
<p>Was in manchen unserer Projekte auch oftmals wichtig war, ist und sein wird:<br />
<strong>Wie k&#246;nnen dynamische Inhalte, also solche aus der Datenbank, internationalisiert werden</strong>? Statische Strings sind mit der .po-File Variante kein Problem &#8211; aber wie sieht es mit dynamischem Content aus?</p>
<p>Ein n&#252;tzliches Tutorial f&#252;r diesen Ansatz findet sich z.b. <a href="http://www.palivoda.eu/2008/04/i18n-in-cakephp-12-database-content-translation/">hier</a> und der dazugeh&#246;rige <a href="http://www.palivoda.eu/2008/04/i18n-in-cakephp-12-database-content-translation-part-2/">Teil 2 hier</a>. Wie die Stolpersteine hier aussehen und wie CakePHP ein Speichern / Updaten von i18n Eintr&#228;gen behandelt kann ich sp&#228;ter erl&#228;utern, grunds&#228;tzlich gibt es bei dieser Herangehensweise eine weitere Tabelle im Datenbankmodell, die folgenderma&#223;en aussieht: </p>
<p><a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/02/i18n-tabelle1.jpg" rel="lightbox[763]"><img src="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/02/i18n-tabelle1.jpg" alt="CakePHP i18n Tabelle" title="CakePHP i18n Tabelle" width="450" /></a></p>
<p>In dieser Datenbanktabelle werden s&#228;mtliche &#220;bersetzungen der verschiedenen Models gespeichert (die Tabelle kann also ziemlich fix ziemlich &#8220;umfangreich&#8221; werden).</p>
<p>F&#252;r alle, die auf dem Mac den hervorragenden und g&#252;nstigen <a href="http://www.malcolmhardie.com/sqleditor/">SQLEditor</a> nutzen, <a href="http://www.reitenschwimmenlesen.de/blog/wp-content/uploads/2009/02/i18n.sqs">gibt es hier die oben gezeigte SQS Datei</a>, ansonsten kann die Tabelle auch im Terminal angelegt werden, indem man im Verzeichnis /console von Cake folgenden Befehl eingibt:</p>
<p>./cake i18n</p>
<p>[ einige weitere andere Infos dazu auch unter dem <a href="http://bakery.cakephp.org/articles/view/p28n-the-top-to-bottom-persistent-internationalization-tutorial">top-to-bottom-persistent-internationalization-Tutorial auf CakePHP.org zu finden</a> ]</p>
<p>Leider k&#246;nnen <strong><abbr title="HasAndBelongsToMany - eine n:n Beziehung in relationalen Datenbanken">HABTM</abbr> Relationships erst ab Version 1.3</strong> mit dem Translation Behavior von Cake bedient werden, heisst also: Hier muss manuell Hand angelegt werden, sobald HABTM Relationships ins Spiel kommen. </p>
<p><strong>Kleiner Seitenhinweis</strong>:<br />
&#220;ber die Konsole kann bei Cake auch ein komplettes, sog. &#8220;<strong>Baking</strong>&#8221; stattfinden, das anhand der Datenbankkonfiguration das komplette Projekt einmal initial erstellt, mit s&#228;mtlichen Models, Controllern und Views und s&#228;mtlichen <abbr title="Create, Retrieve, Update, Delete"><strong>CRUD</strong></abbr> Funktionen.</p>
<p>Sehr gute, <strong>verschiedene Screencasts zu CakePHP</strong> (Installation, Baking, <br />Scaffolding, &#8230;) finden sich im &#220;brigen sich auf der Webseite von <a href="http://www.davidgolding.net/screencasts">David Golding</a>, seines Zeichens Verfasser des Buches &#8220;Beginning CakePHP&#8221; (das, in meinen Augen, bei weiterm nicht <a href="http://www.amazon.de/gp/product/3897218631?ie=UTF8&#038;tag=kleieinundgro-21&#038;linkCode=as2&#038;camp=1638&#038;creative=19454&#038;creativeASIN=3897218631">mit dem CakePHP Buch von O&#8217;Reilly</a> mithalten kann).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/02/12/internationalisierung-mit-cakephp-und-i18n/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syntax Highlighting in WordPress Blogs f&#252;r CakePHP Beitr&#228;ge</title>
		<link>http://www.reitenschwimmenlesen.de/blog/2009/02/10/syntax-highlighting-in-wordpress-blogs-fuer-cakephp-beitraege/</link>
		<comments>http://www.reitenschwimmenlesen.de/blog/2009/02/10/syntax-highlighting-in-wordpress-blogs-fuer-cakephp-beitraege/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 21:09:02 +0000</pubDate>
		<dc:creator>Lasse</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Medien]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Entwicklungsumgebung]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[Pagination]]></category>
		<category><![CDATA[SyntaxHighlighter]]></category>

		<guid isPermaLink="false">http://www.reitenschwimmenlesen.de/blog/?p=725</guid>
		<description><![CDATA[Nach anf&#228;nglich gro&#223;en T&#246;nen ist zwar weiterhin nicht viel passiert, aber wo ich jetzt ein WordPress Plugin um in einem Beitrag Syntax Highlighting mitzuliefern gefunden habe kann jetzt die Artikelflut losgehen. Durch umfangreiche Arbeiten mit CakePHP in den letzten Wochen k&#246;nnten verschiedene Themen aus unterschiedlichsten Bereichen interessant sein, die ich ggfls. in den n&#228;chsten Tagen [...]]]></description>
			<content:encoded><![CDATA[<p>Nach <a href="http://www.reitenschwimmenlesen.de/blog/2008/12/09/das-blog-ist-lahm-was-ist-das-los/">anf&#228;nglich gro&#223;en T&#246;nen</a> ist zwar weiterhin nicht viel passiert, aber wo ich jetzt ein WordPress Plugin um in einem <a href="http://erik.range-it.de/wordpress/plugins/syntaxhighlighter/">Beitrag Syntax Highlighting mitzuliefern</a> gefunden habe kann jetzt die Artikelflut losgehen.  </p>
<p>Durch <a href="http://www.mercedes-benzfashionweeks.com" title="sei es mit der Newsroom Seite f&#252;r die Mercedes Benz Fashionweek Berlin">umfangreiche Arbeiten</a> <a href="http://beta.docpool.org" title="...oder mit Docpool" class="broken_link">mit CakePHP</a> in den letzten Wochen k&#246;nnten verschiedene Themen aus unterschiedlichsten Bereichen interessant sein, die ich ggfls. in den n&#228;chsten <del datetime="2009-02-10T20:53:01+00:00">Tagen</del> Wochen mal vorstellen k&#246;nnte:</p>
<ul>
<li>Wie sieht eine sinnvolle Entwicklungsumgebung in Teams von Entwicklern aus? Wie kann man also mit Eclipse und SVN und anderen Techniken besser und schneller gemeinsam mit weniger Fehlern entwickeln.</li>
<li>Wie kann ich die CakePHP config so anpassen, dass ein Deployment auf unterschiedlichen Servern sinnvoll funktioniert (z.B. f&#252;r verschiedene Server f&#252;r Development, Testing und Live)</li>
<li>Wie nutzt man die <a href="http://book.cakephp.org/view/172/Authentication">CakePHP Auth Component</a> richtig (immer wieder ein heisses Thema)?</li>
<li>Wie binde ich die <a href="http://book.cakephp.org/view/163/Internationalization-in-CakePHP">i18n Features von CakePHP</a> richtig ein?</li>
<li>Wie kann man die <a href="http://book.cakephp.org/view/164/Pagination">Pagination von CakePHP</a> mit weiteren, eigenen Parametern oder Filtern versorgen?</li>
<li>Wie kann ich die Performance von CakePHP Projekten weiter verbessern?</li>
</ul>
<p>Falls bei dem ein oder anderen Thema besonderes Interesse bestehen sollte &#8211; immer her mit Kommentaren.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.reitenschwimmenlesen.de/blog/2009/02/10/syntax-highlighting-in-wordpress-blogs-fuer-cakephp-beitraege/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
