<?xml version="1.0" encoding="UTF-8"?>
<rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Webcoder</title>
	
	<link>http://www.webcoder.de</link>
	<description>Webprogrammierer Berlin</description>
	<lastBuildDate>Thu, 13 Jan 2011 16:43:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/webcoderde" /><feedburner:info uri="webcoderde" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>How to add language file for custom WordPress theme</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/sgke3U2xJJs/</link>
		<comments>http://www.webcoder.de/2011/01/13/how-to-add-language-file-for-custom-wordpress-theme/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 16:38:29 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[custom theme]]></category>
		<category><![CDATA[I18N]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[translations]]></category>
		<category><![CDATA[Twenty Ten]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=101</guid>
		<description><![CDATA[For a new hosting service I am using the new WordPress 3.x multi-site features extensively. For new customers I added a custom theme based on the default Twenty Ten theme. As the main audience aren't native speakers - English that is -  I also need translations for my custom theme. I followed the ...<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2011/01/13/how-to-add-language-file-for-custom-wordpress-theme/">How to add language file for custom WordPress theme</a></p>
]]></description>
			<content:encoded><![CDATA[<p>For a <a href="http://www.podcaster.de">new hosting service</a> I am using the new WordPress 3.x multi-site features extensively. For new customers I added a custom theme based on the default Twenty Ten theme. As the main audience aren&#8217;t native speakers &#8211; English that is &#8211;  I also need translations for my <strong>custom theme</strong>. I followed the path twentyten is showing my copying my <strong>.mo file</strong> into a subdirectory of the theme called <em>languages</em>. Unfortunately the file is not loaded automagically so you need some custom code which I added to my custom theme&#8217;s <em>functions.php</em> file.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">const</span> MY_THEME <span style="color: #339933;">=</span> <span style="color: #0000ff;">'name of your theme'</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> mytheme_setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// The first occurence of MY_THEME is the name of your textdomain as used in the templates</span>
	load_theme_textdomain<span style="color: #009900;">&#40;</span> MY_THEME<span style="color: #339933;">,</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twentyten'</span><span style="color: #339933;">,</span> MY_THEME<span style="color: #339933;">,</span> TEMPLATEPATH<span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/languages'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">// Tell WordPress to run mytheme_setup() when the 'after_setup_theme' hook is run.</span>
add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'after_setup_theme'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'mytheme_setup'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>If you are defining your own version of twentyten_setup() just add the line with load_theme_textdomain(&#8230;) in there. OOP in <a href="http://wordpress.org">WordPress</a> would be nice here and make things so much easier!</p>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2011/01/13/how-to-add-language-file-for-custom-wordpress-theme/">How to add language file for custom WordPress theme</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=sgke3U2xJJs:PJuYqS55rPo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=sgke3U2xJJs:PJuYqS55rPo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=sgke3U2xJJs:PJuYqS55rPo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=sgke3U2xJJs:PJuYqS55rPo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=sgke3U2xJJs:PJuYqS55rPo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=sgke3U2xJJs:PJuYqS55rPo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=sgke3U2xJJs:PJuYqS55rPo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=sgke3U2xJJs:PJuYqS55rPo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/sgke3U2xJJs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2011/01/13/how-to-add-language-file-for-custom-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2011/01/13/how-to-add-language-file-for-custom-wordpress-theme/</feedburner:origLink></item>
		<item>
		<title>Your own video portal with WordPress 3.0 in 30 minutes</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/nvOR5A7Np_k/</link>
		<comments>http://www.webcoder.de/2010/06/21/your-own-video-portal-with-wordpress-3-0-in-30-minutes/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 14:34:45 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Webseite]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=92</guid>
		<description><![CDATA[Setting up your own website to display a collection of videos hosted on YouTube is as easy as following the six simple steps below.


	Download and install Wordpress 3.0
	Download, install and activate the Videographer Wordpress Theme
	Download, install and activate the WP YouTube plugin by Jens T&#246;rnell
	Download, install and activate the WP-PostRatings plugin by Lester 'GaMerZ' ...<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2010/06/21/your-own-video-portal-with-wordpress-3-0-in-30-minutes/">Your own video portal with WordPress 3.0 in 30 minutes</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Setting up your own website to display a collection of videos hosted on YouTube is as easy as following the six simple steps below.</p>
<ol>
<li><a href="http://wordpress.org">Download</a> and install <strong>WordPress 3.0</strong></li>
<li><a href="http://www.zoomstart.com/videographer-wordpress-theme/" rel="nofollow">Download</a>, install and activate the <strong>Videographer WordPress Theme</strong></a></li>
<li><a href="http://wordpress.org/extend/plugins/wp-youtube/" rel="nofollow">Download</a>, install and activate the <strong>WP YouTube</strong> plugin by Jens T&#246;rnell</li>
<li><a href="http://wordpress.org/extend/plugins/wp-postratings/" rel="nofollow">Download</a>, install and activate the <strong>WP-PostRatings</strong> plugin by Lester &#8216;GaMerZ&#8217; Chan</li>
<li>Follow the rest of the instructions in paragraph <strong>Setting up Videographer</strong> on the <a href="http://www.zoomstart.com/videographer-wordpress-theme/">Videographer site</a>.</li>
<li>You are ready to go to publish your first video!</li>
</ol>
<p>Have a look what a <a href="http://www.radau-marketing.de">site for viral videos</a> will be like once filled with lots of content.</p>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2010/06/21/your-own-video-portal-with-wordpress-3-0-in-30-minutes/">Your own video portal with WordPress 3.0 in 30 minutes</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=nvOR5A7Np_k:6yBwMwkS78A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=nvOR5A7Np_k:6yBwMwkS78A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=nvOR5A7Np_k:6yBwMwkS78A:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=nvOR5A7Np_k:6yBwMwkS78A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=nvOR5A7Np_k:6yBwMwkS78A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=nvOR5A7Np_k:6yBwMwkS78A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=nvOR5A7Np_k:6yBwMwkS78A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=nvOR5A7Np_k:6yBwMwkS78A:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/nvOR5A7Np_k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2010/06/21/your-own-video-portal-with-wordpress-3-0-in-30-minutes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2010/06/21/your-own-video-portal-with-wordpress-3-0-in-30-minutes/</feedburner:origLink></item>
		<item>
		<title>How to configure your webserver for webM video and audio files</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/KhF8XdKt0Bw/</link>
		<comments>http://www.webcoder.de/2010/06/04/how-to-configure-your-webserver-for-webm-video-and-audio-files/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 09:52:07 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[.weba]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Apache HTTP server]]></category>
		<category><![CDATA[file extension]]></category>
		<category><![CDATA[headers]]></category>
		<category><![CDATA[http headers]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[lighty]]></category>
		<category><![CDATA[mime]]></category>
		<category><![CDATA[mime types]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[webM]]></category>
		<category><![CDATA[webserver]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=86</guid>
		<description><![CDATA[ With webM there is a new video standard out on the web and it is picking up pace fast. Chances are high you we'll see a video transcoded in webM pretty soon as Google will encode all new video content on YouTube in the new standard in the beginning.

Are you already having your ...<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2010/06/04/how-to-configure-your-webserver-for-webm-video-and-audio-files/">How to configure your webserver for webM video and audio files</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.webcoder.de/wp-content/uploads/2010/06/webm_open-media-project_logo.png"><img src="http://www.webcoder.de/wp-content/uploads/2010/06/webm_open-media-project_logo.png" alt="" title="webM Logo - open media project" width="180" height="60" class="alignleft size-full wp-image-88" /></a> With <strong>webM</strong> there is a new video standard out on the web and it is picking up pace fast. Chances are high you we&#8217;ll see a video transcoded in <a href="http://www.webmproject.org">webM</a> pretty soon as Google will encode all new video content on YouTube in the new standard in the beginning.</p>
<p>Are you already having your own video you want to play out with this codec? Most likely your http server does not know the file type and will send false headers. Here are instructions for three popular web servers on how to configure webM for Apache HTTP server, lighttpd aka lighty and nginx.</p>
<h3>Apache</h3>
<p>For the <a href="http://httpd.apache.org">Apache HTTP Server</a> you have two choices. Either you edit the global <em>mime.types</em> file or a <em>.htaccess</em> file. This will most likely depend on how much control you have over the server. If you are the admin go for the first solution.</p>
<p>Find the <strong>mime.types</strong> file for your apache installation. E.g in OpenSuSE and many other Linux distros look for </p>
<p><code>/etc/apache2/mime.types</code></p>
<p>Just add the following two lines to that file.</p>
<p><code><br />
audio/webm weba<br />
video/webm webm<br />
</code></p>
<p>Restart or reload your webserver.</p>
<p>If you are on a shared hosting environment you need to add the new mime types to a <strong>.htaccess</strong> file in the directory which serves your video files.</p>
<p>Add the following lines in the .htaccess file.</p>
<p><code><br />
AddType video/webm .webm<br />
AddType audio/webm .weba<br />
</code></p>
<h3>lighty</h3>
<p>For the lightweight http server <strong>lighttpd</strong> you need to find the configuration file named <em>lighttpd.conf</em>. Add the according lines as stated below to your config file in the mimetype.assign section of <a href="http://www.lighttpd.net">lighty</a>.</p>
<p><code><br />
mimetype.assign = (<br />
   ...,<br />
   ".webm" => "video/webm",<br />
   ".weba" => "audio/webm"<br />
)<br />
</code></p>
<p>Restart or reload lighty so the server takes effect of the changes.</p>
<h3>nginx</h3>
<p>In order to help <strong>nginx</strong> understand webM files correctly edit the <em>mime.types</em> file which belongs to the installation. In a typical Gnu/Linux installation you will find it in <em>/etc/nginx/mime.types</em>.</p>
<p>Add the following two lines in the <em>types</em> section in between the parenthesis as the example below shows.</p>
<p><code><br />
types {<br />
...<br />
audio/webm weba;<br />
video/webm webm;<br />
}<br />
</code></p>
<p>Restart your <a href="http://nginx.org">nginx</a> process to reload the configuration file.</p>
<p>Have fun with the new standard and its nice video quality! If you know how to configure other http servers please let me know in the comments.</p>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2010/06/04/how-to-configure-your-webserver-for-webm-video-and-audio-files/">How to configure your webserver for webM video and audio files</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=KhF8XdKt0Bw:XwM6omQoPtY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=KhF8XdKt0Bw:XwM6omQoPtY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=KhF8XdKt0Bw:XwM6omQoPtY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=KhF8XdKt0Bw:XwM6omQoPtY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=KhF8XdKt0Bw:XwM6omQoPtY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=KhF8XdKt0Bw:XwM6omQoPtY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=KhF8XdKt0Bw:XwM6omQoPtY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=KhF8XdKt0Bw:XwM6omQoPtY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/KhF8XdKt0Bw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2010/06/04/how-to-configure-your-webserver-for-webm-video-and-audio-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2010/06/04/how-to-configure-your-webserver-for-webm-video-and-audio-files/</feedburner:origLink></item>
		<item>
		<title>HTML5 – der Flash Herausforderer</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/OZOraYXp8Jg/</link>
		<comments>http://www.webcoder.de/2010/06/03/html5-der-flash-herausforderer/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 06:53:21 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Präsentation]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Markup]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=77</guid>
		<description><![CDATA[html5, 5 things that might challenge Flash <p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2010/06/03/html5-der-flash-herausforderer/">HTML5 &#8211; der Flash Herausforderer</a></p>
]]></description>
			<content:encoded><![CDATA[<div style="width:425px" id="__ss_4330405"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/studiomuscle/html5-5-things-that-might-challenge-flash" title="html5, 5 things that might challenge Flash ">html5, 5 things that might challenge Flash </a></strong><object id="__sse4330405" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=html5forapps-100527104251-phpapp02&#038;stripped_title=html5-5-things-that-might-challenge-flash" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4330405" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=html5forapps-100527104251-phpapp02&#038;stripped_title=html5-5-things-that-might-challenge-flash" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2010/06/03/html5-der-flash-herausforderer/">HTML5 &#8211; der Flash Herausforderer</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=OZOraYXp8Jg:LUeuet80hyA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=OZOraYXp8Jg:LUeuet80hyA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=OZOraYXp8Jg:LUeuet80hyA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=OZOraYXp8Jg:LUeuet80hyA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=OZOraYXp8Jg:LUeuet80hyA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=OZOraYXp8Jg:LUeuet80hyA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=OZOraYXp8Jg:LUeuet80hyA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=OZOraYXp8Jg:LUeuet80hyA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/OZOraYXp8Jg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2010/06/03/html5-der-flash-herausforderer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2010/06/03/html5-der-flash-herausforderer/</feedburner:origLink></item>
		<item>
		<title>Die Zukunft der Webstandards</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/p4o2eIDR3uc/</link>
		<comments>http://www.webcoder.de/2010/05/31/die-zukunft-der-webstandards/#comments</comments>
		<pubDate>Mon, 31 May 2010 16:28:50 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Präsentation]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Markup]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=72</guid>
		<description><![CDATA[Die Zukunft der Webstandards - Webinale 31.05.2010<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2010/05/31/die-zukunft-der-webstandards/">Die Zukunft der Webstandards</a></p>
]]></description>
			<content:encoded><![CDATA[<div style="width:425px" id="__ss_4364288"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/redux/die-zukunft-der-webstandards-webinale-31052010" title="Die Zukunft der Webstandards - Webinale 31.05.2010">Die Zukunft der Webstandards &#8211; Webinale 31.05.2010</a></strong><object id="__sse4364288" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=webinale31-05-2010-100531090724-phpapp01&#038;stripped_title=die-zukunft-der-webstandards-webinale-31052010" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4364288" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=webinale31-05-2010-100531090724-phpapp01&#038;stripped_title=die-zukunft-der-webstandards-webinale-31052010" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2010/05/31/die-zukunft-der-webstandards/">Die Zukunft der Webstandards</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=p4o2eIDR3uc:nvj5qdx6YiA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=p4o2eIDR3uc:nvj5qdx6YiA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=p4o2eIDR3uc:nvj5qdx6YiA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=p4o2eIDR3uc:nvj5qdx6YiA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=p4o2eIDR3uc:nvj5qdx6YiA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=p4o2eIDR3uc:nvj5qdx6YiA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=p4o2eIDR3uc:nvj5qdx6YiA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=p4o2eIDR3uc:nvj5qdx6YiA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/p4o2eIDR3uc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2010/05/31/die-zukunft-der-webstandards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2010/05/31/die-zukunft-der-webstandards/</feedburner:origLink></item>
		<item>
		<title>Google App Engine als CDN</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/eC2H9Izk-uc/</link>
		<comments>http://www.webcoder.de/2009/12/22/google-app-engine-als-cdn/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 20:09:54 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Webseite]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=65</guid>
		<description><![CDATA[Auf dem Playground der ebiene ist ein lesenswerter Artikel zum Thema Google App Engine als CDN einsetzen erschienen.

Nach einer kurzen theoretischen Einf&#252;hrung, geht der Autor sofort ins praktische &#252;ber und beschreibt den Einsatz der App Engine.<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/12/22/google-app-engine-als-cdn/">Google App Engine als CDN</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Auf dem Playground der ebiene ist ein <a href="http://playground.ebiene.de/2351/google-app-engine-als-cdn/">lesenswerter Artikel</a> zum Thema <strong>Google App Engine als CDN einsetzen</strong> erschienen.</p>
<p>Nach einer kurzen theoretischen Einf&#252;hrung, geht der Autor sofort ins praktische &#252;ber und beschreibt den Einsatz der App Engine.</p>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/12/22/google-app-engine-als-cdn/">Google App Engine als CDN</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=eC2H9Izk-uc:88DScuF08aI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=eC2H9Izk-uc:88DScuF08aI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=eC2H9Izk-uc:88DScuF08aI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=eC2H9Izk-uc:88DScuF08aI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=eC2H9Izk-uc:88DScuF08aI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=eC2H9Izk-uc:88DScuF08aI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=eC2H9Izk-uc:88DScuF08aI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=eC2H9Izk-uc:88DScuF08aI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/eC2H9Izk-uc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2009/12/22/google-app-engine-als-cdn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2009/12/22/google-app-engine-als-cdn/</feedburner:origLink></item>
		<item>
		<title>10 Dinge, die du über MySQL evtl. noch nicht wußtest</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/tre_dBlZSB0/</link>
		<comments>http://www.webcoder.de/2009/10/01/10-dinge-die-du-ueber-mysql-evtl-noch-nicht-wusstest/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 14:45:28 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tipps]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=79</guid>
		<description><![CDATA[10 things you might not know about MySQL<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/10/01/10-dinge-die-du-ueber-mysql-evtl-noch-nicht-wusstest/">10 Dinge, die du &#252;ber MySQL evtl. noch nicht wu&#223;test</a></p>
]]></description>
			<content:encoded><![CDATA[<div style="width:425px" id="__ss_952968"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/koke/10-things-presentation" title="10 things you might not know about MySQL">10 things you might not know about MySQL</a></strong><object id="__sse952968" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=10-things-1232961540880664-1&#038;stripped_title=10-things-presentation" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse952968" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=10-things-1232961540880664-1&#038;stripped_title=10-things-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/10/01/10-dinge-die-du-ueber-mysql-evtl-noch-nicht-wusstest/">10 Dinge, die du &#252;ber MySQL evtl. noch nicht wu&#223;test</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=tre_dBlZSB0:RzVWDD2b7Ig:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=tre_dBlZSB0:RzVWDD2b7Ig:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=tre_dBlZSB0:RzVWDD2b7Ig:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=tre_dBlZSB0:RzVWDD2b7Ig:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=tre_dBlZSB0:RzVWDD2b7Ig:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=tre_dBlZSB0:RzVWDD2b7Ig:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=tre_dBlZSB0:RzVWDD2b7Ig:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=tre_dBlZSB0:RzVWDD2b7Ig:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/tre_dBlZSB0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2009/10/01/10-dinge-die-du-ueber-mysql-evtl-noch-nicht-wusstest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2009/10/01/10-dinge-die-du-ueber-mysql-evtl-noch-nicht-wusstest/</feedburner:origLink></item>
		<item>
		<title>Seagull Framework with memcached sessions</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/2blLRUXCTb0/</link>
		<comments>http://www.webcoder.de/2009/09/13/seagull-framework-with-memcached-sessions/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 15:26:36 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Seagull]]></category>
		<category><![CDATA[Seagull Framework]]></category>
		<category><![CDATA[Sessions]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=59</guid>
		<description><![CDATA[The Seagull framework  which we love to use for our projects offers two built-in methods for session management: files and database.

In our podcast project we started out using the file based sessions years ago. A while back we switched to so-called extended sessions which are saved in the database. Not so long ago ...<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/09/13/seagull-framework-with-memcached-sessions/">Seagull Framework with memcached sessions</a></p>
]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://seagullproject.org">Seagull framework </a> which we love to use for our <a href="http://www.webcoder.de/referenzen/">projects</a> offers two built-in methods for <strong>session management</strong>: files and database.</p>
<p>In our podcast project we started out using the <strong>file based sessions</strong> years ago. A while back we switched to so-called <strong>extended sessions</strong> which are saved in the database. Not so long ago we switched back to files again as the requests just for the sessions to the database became a serious bottleneck in our installation.</p>
<p>We did a relaunch of our <a href="http://www.podcast.de">podcast service</a> beginning of September with sessions still stored to in files. This might have worked well if we had not switched to serving the website&#8217;s resources including the sessions through a <a href="http://www.linux-showroom.com/2009/08/08/high-available-nfs4-server-with-drbd-0-8-pacemaker-1-0-heartbeat-openais-on-opensuse-11-1.html">high available NFS4 server</a>. The server with the active <strong>NFS4 export</strong> hit its maximum capacity randomly making the service unusable.</p>
<p>I could have tried to switch back to the database handler as we have new, much more powerful machines. But I did not even bother as I assumed I&#8217;d eventually run into the same problems as before. Instead I researched <strong>sessions saved in memory</strong>. I knew that PHP offers shared-memory sessions. I tried that a while ago with no luck. During my research I came across <a href="http://pecl.php.net/package/memcached">memcached sessions</a>. As I am already using memcache to store objects in the application I thought this would be ideal. And as it turned out today when applying the following changes to our live system it is!</p>
<p>To make <strong>Seagull work with memcached sessions</strong> only two minor changes to the code base had to be made. In the SGL core library <a href="http://trac.seagullproject.org/browser/branches/0.6-bugfix/lib/SGL/Session.php">Session.php</a> change the constructor as follows:</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
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'handler'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'database'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
             <span style="color: #000088;">$ok</span> <span style="color: #339933;">=</span> <span style="color: #990000;">session_set_save_handler</span><span style="color: #009900;">&#40;</span>
                <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'dbOpen'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'dbClose'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'dbRead'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'dbWrite'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'dbDestroy'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'dbGc'</span><span style="color: #009900;">&#41;</span>
                <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'handler'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'memcache'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
           <span style="color: #990000;">session_save_path</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'save_path'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #990000;">session_save_path</span><span style="color: #009900;">&#40;</span>SGL_TMP_DIR<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>The second change is in the _init function:</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
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'handler'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'file'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">//  manually remove old session file, see http://ilia.ws/archives/47-session_regenerate_id-Improvement.html</span>
                <span style="color: #000088;">$ok</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">unlink</span><span style="color: #009900;">&#40;</span>SGL_TMP_DIR <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/sess_'</span><span style="color: #339933;">.</span><span style="color: #000088;">$oldSessionId</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'handler'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'database'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$value</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dbRead</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$oldSessionId</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dbDestroy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$oldSessionId</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dbRead</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">session_id</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>          <span style="color: #666666; font-style: italic;">// creates new session record</span>
                <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dbWrite</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">session_id</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// store old session value in new session record</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'handler'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'memcache'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">// do nothing - just do not complain or fail</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Internal Error: unknown session handler'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>So just add the lines with memcache and below. That&#8217;s it!</p>
<p>To make Seagull use the <strong>memcache session handler</strong> adjust your config accordingly, e.g. my local one looks like the following:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'handler'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'memcache'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'save_path'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'tcp://127.0.0.1:11211?persistent=1&amp;weight=1&amp;timeout=1&amp;retry_interval=15'</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Live we use <strong>several memcache servers</strong> which you can address with a comma separated list of servers, e.g.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'handler'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'memcache'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$conf</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'session'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'save_path'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'tcp://127.0.0.1:11211?persistent=1&amp;weight=1&amp;timeout=1&amp;retry_interval=15,tcp://127.0.0.1:11212?persistent=1&amp;weight=2&amp;timeout=1&amp;retry_interval=50'</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Make sure your memcache server(s) listen(s) on the correct IP address and port. Otherwise you will get a blank screen and/or a nasty error message.</p>
<p>Now you should be ready to go. Experience a never before known speed of your PHP applcation!</p>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/09/13/seagull-framework-with-memcached-sessions/">Seagull Framework with memcached sessions</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=2blLRUXCTb0:XdCQ4th3nfE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=2blLRUXCTb0:XdCQ4th3nfE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=2blLRUXCTb0:XdCQ4th3nfE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=2blLRUXCTb0:XdCQ4th3nfE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=2blLRUXCTb0:XdCQ4th3nfE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=2blLRUXCTb0:XdCQ4th3nfE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=2blLRUXCTb0:XdCQ4th3nfE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=2blLRUXCTb0:XdCQ4th3nfE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/2blLRUXCTb0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2009/09/13/seagull-framework-with-memcached-sessions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2009/09/13/seagull-framework-with-memcached-sessions/</feedburner:origLink></item>
		<item>
		<title>Einzeiler zum Auffinden von Leerzeilen am Dateianfang</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/fWZUjZHsPs0/</link>
		<comments>http://www.webcoder.de/2009/08/25/einzeiler-zum-auffinden-von-leerzeilen-am-dateianfang/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 13:00:11 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Tipps]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=55</guid>
		<description><![CDATA[Wie der Titel schon sagt, ist das folgende Shell-Konstrukt eine M&#246;glichkeit eine Leerzeile am Anfang einer PHP-Datei zu finden.

find . -name \*.php -exec  grep -x "^$" -m 1 -n -H {} \; &#124; grep ":1:"

Mit find suchen wir alle Dateien mit der Endung .php rekursiv ab dem aktuellen Verzeichnis. Die gefundenen Dateien durchsuchen ...<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/08/25/einzeiler-zum-auffinden-von-leerzeilen-am-dateianfang/">Einzeiler zum Auffinden von Leerzeilen am Dateianfang</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Wie der Titel schon sagt, ist das folgende Shell-Konstrukt eine M&#246;glichkeit eine Leerzeile am Anfang einer PHP-Datei zu finden.</p>
<p><code>find . -name \*.php -exec  grep -x "^$" -m 1 -n -H {} \; | grep ":1:"</code></p>
<p>Mit <em>find</em> suchen wir alle Dateien mit der Endung .php rekursiv ab dem aktuellen Verzeichnis. Die gefundenen Dateien durchsuchen wir mit dem ersten <em>grep</em> und einem regul&#228;ren Ausdruck (&#8220;<em>^$</em>&#8220;) nach einer leeren Zeile, wobei uns nur der erste Treffer interessiert. Der Switch <em>-H</em> gibt den Dateinamen der gefundenen Datei aus. Wir leiten die Ausgabe mit einer Pipe ( <em>|</em> ) weiter. Mit dem zweiten <em>grep</em> filtern wir nur die Ergebnisse, die die Leerzeile auf Zeile 1 haben.</p>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/08/25/einzeiler-zum-auffinden-von-leerzeilen-am-dateianfang/">Einzeiler zum Auffinden von Leerzeilen am Dateianfang</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=fWZUjZHsPs0:JXmkb2_LCWo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=fWZUjZHsPs0:JXmkb2_LCWo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=fWZUjZHsPs0:JXmkb2_LCWo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=fWZUjZHsPs0:JXmkb2_LCWo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=fWZUjZHsPs0:JXmkb2_LCWo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=fWZUjZHsPs0:JXmkb2_LCWo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=fWZUjZHsPs0:JXmkb2_LCWo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=fWZUjZHsPs0:JXmkb2_LCWo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/fWZUjZHsPs0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2009/08/25/einzeiler-zum-auffinden-von-leerzeilen-am-dateianfang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2009/08/25/einzeiler-zum-auffinden-von-leerzeilen-am-dateianfang/</feedburner:origLink></item>
		<item>
		<title>WordPress 2.8 erschienen</title>
		<link>http://feedproxy.google.com/~r/webcoderde/~3/NLwMJEfVrm8/</link>
		<comments>http://www.webcoder.de/2009/06/11/wordpress-28-erschienen/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 18:20:02 +0000</pubDate>
		<dc:creator>Fabio Bacigalupo</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Webseite]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Funktionsumfang]]></category>
		<category><![CDATA[Oberfläche]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Version]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.webcoder.de/?p=48</guid>
		<description><![CDATA[Heute ist Wordpress in der Version 2.8 erschienen. Da ich momentan an einem Wordpress-Plugin arbeite, interessant mich nicht nur, was sich an der Oberfl&#228;che oder am Funktionsumfang ge&#228;ndert hat, sondern auch was es f&#252;r Neuerungen im Inneren gibt.

Ein diff zwischen Wordpress 2.7.1 und Wordpress 2.8 gibt mir 1194 Zeilen zur&#252;ck. Ein Blick auf die ...<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/06/11/wordpress-28-erschienen/">WordPress 2.8 erschienen</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Heute ist <strong>WordPress in der Version 2.8</strong> erschienen. Da ich momentan an einem WordPress-Plugin arbeite, interessant mich nicht nur, was sich an der Oberfl&#228;che oder am Funktionsumfang ge&#228;ndert hat, sondern auch was es f&#252;r Neuerungen im Inneren gibt.</p>
<p>Ein diff zwischen WordPress 2.7.1 und WordPress 2.8 gibt mir 1194 Zeilen zur&#252;ck. Ein Blick auf die &#196;nderungen zeigt mir, dass der Code aufger&#228;umt. Es kommen jetzt z.B. die neuen Funktionen der esc_-Serie zum Einsatz.</p>
<p>Eine der spannendsten Neuerungen d&#252;rfte die neue <strong>Widgets API</strong> sein. Um ein mehrfach instanzierbares Widget zu erstellen, wird die Klasse WP_Widget erweitert. Die drei Methoden widget(), form() und update() m&#252;ssen in der eigenen Klasse &#252;berschrieben werden.</p>
<p>Die <strong>Men&#252;s</strong> lassen sich jetzt mittels Plugin aufbauen/umordnen. Einige Fantasie vorausgesetzt, &#246;ffnet das ungeahnte neue M&#246;glichkeiten. Das Men&#252; war bisher sehr starr und hat damit das Layout aller Themes stark bestimmt. Mit einem programmatisch &#228;nderbaren Men&#252; werden wir interessante, neue Layouts sehen.</p>
<p><br /><br />
Dieser Artikel stammt aus dem <a href="http://www.webcoder.de">Webcoder Feed</a>. Besuchen Sie <a href="http://www.webcoder.de">Webcoder</a> f&uuml;r weitere Artikel.
<br/><br/><a href="http://www.webcoder.de/2009/06/11/wordpress-28-erschienen/">WordPress 2.8 erschienen</a></p>
<p class="wp-flattr-button"></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/webcoderde?a=NLwMJEfVrm8:eTTEFuuDGY0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=NLwMJEfVrm8:eTTEFuuDGY0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=NLwMJEfVrm8:eTTEFuuDGY0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=NLwMJEfVrm8:eTTEFuuDGY0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=NLwMJEfVrm8:eTTEFuuDGY0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=NLwMJEfVrm8:eTTEFuuDGY0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/webcoderde?i=NLwMJEfVrm8:eTTEFuuDGY0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/webcoderde?a=NLwMJEfVrm8:eTTEFuuDGY0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/webcoderde?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/webcoderde/~4/NLwMJEfVrm8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.webcoder.de/2009/06/11/wordpress-28-erschienen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.webcoder.de/2009/06/11/wordpress-28-erschienen/</feedburner:origLink></item>
	</channel>
</rss>
