<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>danielbachhuber &#187; tutorials</title>
	<atom:link href="http://danielbachhuber.com/tag/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://danielbachhuber.com</link>
	<description>wrangling code for Automattic&#039;s WordPress.com VIP</description>
	<lastBuildDate>Mon, 28 May 2012 21:34:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='danielbachhuber.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/185f1e7963728f352b72281297848b7f?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>danielbachhuber &#187; tutorials</title>
		<link>http://danielbachhuber.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://danielbachhuber.com/osd.xml" title="danielbachhuber" />
	<atom:link rel='hub' href='http://danielbachhuber.com/?pushpress=hub'/>
		<item>
		<title>PHP 5.3 namespaces for the rest of us</title>
		<link>http://danielbachhuber.com/2011/12/21/php-5-3-namespaces-for-the-rest-of-us/</link>
		<comments>http://danielbachhuber.com/2011/12/21/php-5-3-namespaces-for-the-rest-of-us/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 18:10:44 +0000</pubDate>
		<dc:creator>Daniel Bachhuber</dc:creator>
				<category><![CDATA[asides]]></category>
		<category><![CDATA[Nikolay Bachiyski]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP namespaces]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://danielbachhuber.com/?p=129427</guid>
		<description><![CDATA[PHP 5.3 namespaces for the rest of us. Great introduction. (via Nikolay)<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=129427&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.phparch.com/2010/03/namespaces-in-php/">PHP 5.3 namespaces for the rest of us</a>. Great introduction. <em>(via Nikolay)</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbachhuber.wordpress.com/129427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbachhuber.wordpress.com/129427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbachhuber.wordpress.com/129427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbachhuber.wordpress.com/129427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/danielbachhuber.wordpress.com/129427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/danielbachhuber.wordpress.com/129427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/danielbachhuber.wordpress.com/129427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/danielbachhuber.wordpress.com/129427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbachhuber.wordpress.com/129427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbachhuber.wordpress.com/129427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbachhuber.wordpress.com/129427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbachhuber.wordpress.com/129427/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbachhuber.wordpress.com/129427/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbachhuber.wordpress.com/129427/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=129427&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://danielbachhuber.com/2011/12/21/php-5-3-namespaces-for-the-rest-of-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c778bed467546a08fd2f3618a9fc9d4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbachhuber</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting command line access to PHP and MySQL running MAMP on OSX &#124; Metal Toad Media</title>
		<link>http://danielbachhuber.com/2011/10/19/getting-command-line-access-to-php-and-mysql-running-mamp-on-osx-metal-toad-media/</link>
		<comments>http://danielbachhuber.com/2011/10/19/getting-command-line-access-to-php-and-mysql-running-mamp-on-osx-metal-toad-media/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 12:02:17 +0000</pubDate>
		<dc:creator>Daniel Bachhuber</dc:creator>
				<category><![CDATA[asides]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[MAMP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://danielbachhuber.com/?p=128827</guid>
		<description><![CDATA[Getting command line access to PHP and MySQL running MAMP on OSX. You&#8217;ll need to follow this short tutorial as it doesn&#8217;t work out of the box.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=128827&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.metaltoad.com/blog/getting-command-line-access-php-and-mysql-running-mamp-osx">Getting command line access to PHP and MySQL running MAMP on OSX</a>. You&#8217;ll need to follow this short tutorial as it doesn&#8217;t work out of the box.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbachhuber.wordpress.com/128827/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbachhuber.wordpress.com/128827/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbachhuber.wordpress.com/128827/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbachhuber.wordpress.com/128827/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/danielbachhuber.wordpress.com/128827/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/danielbachhuber.wordpress.com/128827/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/danielbachhuber.wordpress.com/128827/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/danielbachhuber.wordpress.com/128827/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbachhuber.wordpress.com/128827/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbachhuber.wordpress.com/128827/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbachhuber.wordpress.com/128827/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbachhuber.wordpress.com/128827/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbachhuber.wordpress.com/128827/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbachhuber.wordpress.com/128827/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=128827&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://danielbachhuber.com/2011/10/19/getting-command-line-access-to-php-and-mysql-running-mamp-on-osx-metal-toad-media/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c778bed467546a08fd2f3618a9fc9d4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbachhuber</media:title>
		</media:content>
	</item>
		<item>
		<title>How To Change Your WordPress Workflow For The Better</title>
		<link>http://danielbachhuber.com/2011/10/04/how-to-change-your-wordpress-workflow-for-the-better/</link>
		<comments>http://danielbachhuber.com/2011/10/04/how-to-change-your-wordpress-workflow-for-the-better/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 15:51:58 +0000</pubDate>
		<dc:creator>Daniel Bachhuber</dc:creator>
				<category><![CDATA[asides]]></category>
		<category><![CDATA[Edit Flow]]></category>
		<category><![CDATA[press]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://danielbachhuber.com/?p=128689</guid>
		<description><![CDATA[How To Change Your WordPress Workflow For The Better. Coverage of Edit Flow with good feedback.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=128689&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://wp.tutsplus.com/articles/how-to-change-your-wordpress-workflow-for-the-better/">How To Change Your WordPress Workflow For The Better</a>. Coverage of Edit Flow with good feedback.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbachhuber.wordpress.com/128689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbachhuber.wordpress.com/128689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbachhuber.wordpress.com/128689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbachhuber.wordpress.com/128689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/danielbachhuber.wordpress.com/128689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/danielbachhuber.wordpress.com/128689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/danielbachhuber.wordpress.com/128689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/danielbachhuber.wordpress.com/128689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbachhuber.wordpress.com/128689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbachhuber.wordpress.com/128689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbachhuber.wordpress.com/128689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbachhuber.wordpress.com/128689/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbachhuber.wordpress.com/128689/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbachhuber.wordpress.com/128689/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=128689&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://danielbachhuber.com/2011/10/04/how-to-change-your-wordpress-workflow-for-the-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c778bed467546a08fd2f3618a9fc9d4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbachhuber</media:title>
		</media:content>
	</item>
		<item>
		<title>A Practical Guide to Varnish</title>
		<link>http://danielbachhuber.com/2011/04/08/a-practical-guide-to-varnish/</link>
		<comments>http://danielbachhuber.com/2011/04/08/a-practical-guide-to-varnish/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 16:46:09 +0000</pubDate>
		<dc:creator>Daniel Bachhuber</dc:creator>
				<category><![CDATA[asides]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[server administration]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[Varnish]]></category>

		<guid isPermaLink="false">http://danielbachhuber.com/?p=127593</guid>
		<description><![CDATA[A Practical Guide to Varnish. File away for later.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=127593&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://devblog.factual.com/practical-guide-to-varnish">A Practical Guide to Varnish</a>. File away for later.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbachhuber.wordpress.com/127593/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbachhuber.wordpress.com/127593/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbachhuber.wordpress.com/127593/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbachhuber.wordpress.com/127593/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/danielbachhuber.wordpress.com/127593/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/danielbachhuber.wordpress.com/127593/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/danielbachhuber.wordpress.com/127593/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/danielbachhuber.wordpress.com/127593/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbachhuber.wordpress.com/127593/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbachhuber.wordpress.com/127593/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbachhuber.wordpress.com/127593/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbachhuber.wordpress.com/127593/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbachhuber.wordpress.com/127593/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbachhuber.wordpress.com/127593/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=127593&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://danielbachhuber.com/2011/04/08/a-practical-guide-to-varnish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c778bed467546a08fd2f3618a9fc9d4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbachhuber</media:title>
		</media:content>
	</item>
		<item>
		<title>Proxy caching WordPress with Nginx</title>
		<link>http://danielbachhuber.com/2010/11/29/proxy-caching-wordpress-with-nginx/</link>
		<comments>http://danielbachhuber.com/2010/11/29/proxy-caching-wordpress-with-nginx/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 21:37:30 +0000</pubDate>
		<dc:creator>Daniel Bachhuber</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[CUNY Graduate School of Journalism]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[server administration]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://danielbachhuber.com/?p=126763</guid>
		<description><![CDATA[Nginx is a lightweight web server/load balancer/reverse proxy designed to drive blazingly fast websites. It has low resource requirements compared to Apache, the defacto standard for PHP-based applications, and can handle an order of magnitude more requests per second. With &#8230; <a href="http://danielbachhuber.com/2010/11/29/proxy-caching-wordpress-with-nginx/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=126763&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://nginx.org/">Nginx</a> is a lightweight web server/load balancer/reverse proxy designed to drive blazingly fast websites. It has low resource requirements compared to Apache, the defacto standard for PHP-based applications, and can handle an order of magnitude more requests per second.</p>
<p>With WordPress, Nginx is often used in a few different ways: to serve static media assets, to <a href="http://elasticdog.com/2008/02/howto-install-wordpress-on-nginx/">execute PHP for WordPress</a>, or to <a href="http://blogs.law.harvard.edu/djcp/2010/01/nginx-as-a-front-end-proxy-cache-for-wordpress/">reverse cache Apache responses</a>. You&#8217;ll want to install Nginx, put it in front of Apache, and then choose one option or go for all three. Mike Green has <a href="http://www.myatus.co.uk/2010/06/28/a-simplified-nginx-apache-combo-with-wordpress-support/">comprehensive documentation</a> to cover the first and third scenarios. It&#8217;s more or less what I did at the J-School.</p>
<p>Epic foo is using Nginx as a reverse proxy cache. &#8220;Reverse proxy cache&#8221; means Nginx will generate a static cache of everything Apache responds with, and then serve this cache as long as you&#8217;d like. For us, this means homepage response time has dropped from an average of 1.5 seconds to around 25 milliseconds. On pages without a lot of secondary images and Javascript (e.g. not the homepage), load times are now wicked fast.</p>
<p>It&#8217;s worthwhile to note we&#8217;re only serving cache to non-authenticated users. Students and faculty expect our website to behave like an application, and to have changes they make appear immediately. This is less of an issue for other visitors. Caching also gives us protection against bursts of unexpected traffic.</p>
<p>Proxy caching was deceptively simple to implement. I spent around 15 work hours in September trying to get it to work, gave up until November, and then solved the problem in 15 minutes with a stroke of brilliance. Originally, I followed the <a href="http://wordpress.org/extend/plugins/nginx-proxy-cache-integrator/installation/">configuration settings specified in Dan Collis-Puro&#8217;s awesome WordPress plugin</a> and it took our setup to 80% completion. I then learned the most important thing is to tell Nginx to log cache hits; this makes it far easier to determine whether caching is working or not. The second most important thing is to turn <code>proxy_redirect off</code>. I still don&#8217;t fully understand what the declaration does, but it was the crucial missing piece. Seeing dozens of &#8220;HIT&#8221;s scroll by never felt so good.</p>
<p>Check out our commented <a href="http://danielbachhuber.files.wordpress.com/2010/11/nginx.txt">master Nginx configuration file</a> [txt] and the <a href="http://danielbachhuber.files.wordpress.com/2010/11/journalism.cuny_.edu_.txt">configuration file specific to journalism.cuny.edu</a> [txt].</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbachhuber.wordpress.com/126763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbachhuber.wordpress.com/126763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbachhuber.wordpress.com/126763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbachhuber.wordpress.com/126763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/danielbachhuber.wordpress.com/126763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/danielbachhuber.wordpress.com/126763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/danielbachhuber.wordpress.com/126763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/danielbachhuber.wordpress.com/126763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbachhuber.wordpress.com/126763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbachhuber.wordpress.com/126763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbachhuber.wordpress.com/126763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbachhuber.wordpress.com/126763/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbachhuber.wordpress.com/126763/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbachhuber.wordpress.com/126763/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=126763&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://danielbachhuber.com/2010/11/29/proxy-caching-wordpress-with-nginx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c778bed467546a08fd2f3618a9fc9d4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbachhuber</media:title>
		</media:content>
	</item>
		<item>
		<title>Easiest way to add Git to your WebFaction account</title>
		<link>http://danielbachhuber.com/2010/11/16/easiest-way-to-add-git-to-your-webfaction-account/</link>
		<comments>http://danielbachhuber.com/2010/11/16/easiest-way-to-add-git-to-your-webfaction-account/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 02:00:27 +0000</pubDate>
		<dc:creator>Daniel Bachhuber</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[code snippets]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[WebFaction]]></category>

		<guid isPermaLink="false">http://danielbachhuber.com/?p=126705</guid>
		<description><![CDATA[wget http://kernel.org/pub/software/scm/git/git-1.7.2.3.tar.gz tar -xvf git-1.7.2.3.tar.gz cd git-1.7.2.3 ./configure --prefix=$HOME make make install If you&#8217;re reading this in the future, you may want to use the most recent version of Git. Instructions via the always helpful WebFaction support team<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=126705&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><code>wget <a href="http://kernel.org/pub/software/scm/git/git-1.7.2.3.tar.gz">http://kernel.org/pub/software/scm/git/git-1.7.2.3.tar.gz</a><br />
tar -xvf git-1.7.2.3.tar.gz<br />
cd git-1.7.2.3<br />
./configure --prefix=$HOME<br />
make<br />
make install</code></p>
<p>If you&#8217;re reading this in the future, you may want to use the most recent version of Git. Instructions via the always helpful WebFaction support team</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbachhuber.wordpress.com/126705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbachhuber.wordpress.com/126705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbachhuber.wordpress.com/126705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbachhuber.wordpress.com/126705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/danielbachhuber.wordpress.com/126705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/danielbachhuber.wordpress.com/126705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/danielbachhuber.wordpress.com/126705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/danielbachhuber.wordpress.com/126705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbachhuber.wordpress.com/126705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbachhuber.wordpress.com/126705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbachhuber.wordpress.com/126705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbachhuber.wordpress.com/126705/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbachhuber.wordpress.com/126705/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbachhuber.wordpress.com/126705/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=126705&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://danielbachhuber.com/2010/11/16/easiest-way-to-add-git-to-your-webfaction-account/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c778bed467546a08fd2f3618a9fc9d4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbachhuber</media:title>
		</media:content>
	</item>
		<item>
		<title>How to properly use Git with WordPress.org Subversion</title>
		<link>http://danielbachhuber.com/2010/09/29/how-to-properly-use-git-with-wordpress-org-subversion/</link>
		<comments>http://danielbachhuber.com/2010/09/29/how-to-properly-use-git-with-wordpress-org-subversion/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 22:59:14 +0000</pubDate>
		<dc:creator>Daniel Bachhuber</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[Assignment Desk]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress.org Subversion]]></category>

		<guid isPermaLink="false">http://danielbachhuber.com/?p=126421</guid>
		<description><![CDATA[Having Git properly interface with Subversion is a mysterious black art. If you&#8217;re into the Harry Potter stuff, then this post is for you. First, I must give credit where credit is due. Boone Gorges has a nice writeup detailing &#8230; <a href="http://danielbachhuber.com/2010/09/29/how-to-properly-use-git-with-wordpress-org-subversion/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=126421&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Having Git properly interface with Subversion is a mysterious black art. If you&#8217;re into the Harry Potter stuff, then this post is for you.</p>
<p>First, I must give credit where credit is due. Boone Gorges has a nice writeup detailing <a href="http://teleogistic.net/2010/09/using-github-with-wordpress-org-plugin-svn/">how he uses GitHub with WordPress.org Subversion</a>. Unfortunately, it only tempted me. What really set me on the right track was a <a href="http://www.die-welt.net/2010/09/using-plugins-svn-wordpress-org-with-git/">short piece by Evgeni Golov</a>, which had everything but one crucial piece: <a href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">checkout</a> instead of merge.</p>
<p>Using checkout instead of merge is likely the most critical piece to this puzzle. <a href="http://openassignment.org/2010/09/14/assignment-desk-0-6-1-released/">What Erik and I found the first time when using merge</a> is that Git treats both versions of the code as equal and tries to find the middle ground between them. Instead, we want to update all of the files in the Subversion repository with their most recent counterparts from GitHub. Checkout gives us exactly this power.</p>
<p>Because I was working on this Monday night with the <a href="http://openassignment.org/">Assignment Desk</a>, I&#8217;ll go step by step with those links as an example. This tutorial assumes you&#8217;re doing all of your development with Git, and need to occasionally push to Subversion with releases.</p>
<p>First, clone your WordPress.org Subversion into your local Git repository:</p>
<p><code>git svn clone -s -r274218 https://svn.wp-plugins.org/assignment-desk</code></p>
<p>Notice two important flags: <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html#options"><code>-s</code> and <code>-r</code></a>. The &#8216;s&#8217; flag tells Git the code you&#8217;re importing follows the normal Subversion folder structure, or /trunk/, /tags/, and /branches/. The &#8216;r&#8217; flag tells Git to import <em>after</em> the specified revision number; when pulling from a large Subversion repository like WordPress.org, this can save you days of time. You can find the ID for your first commit in your revision log (<a href="http://plugins.trac.wordpress.org/log/assignment-desk">Assignment Desk example</a>).</p>
<p>Change into your newly-created directory and pull in your Subversion history (could take a bit of time):</p>
<p><code>git svn fetch</code></p>
<p>Once all commits have downloaded, add your working GitHub repository as a branch to your local Git repository:</p>
<p><code>git remote add -f github git@github.com:studio20nyu/Assignment-Desk.git</code></p>
<p>What&#8217;s next is the magic part. We&#8217;re going to checkout the code from the &#8216;github&#8217; branch to the &#8216;master&#8217; branch (our Subversion checkout), instead of merging the two:</p>
<p><code>git checkout github/master *</code></p>
<p>If you use &#8216;<code>git status</code>&#8216; at this stage, you&#8217;ll notice all of the files you&#8217;ve changed since your last release have nice little M&#8217;s next to them. If you had merged, there would be a nasty mess of conflicts you&#8217;d have to resolve.</p>
<p>Add all of the files you want to save in the next commit:</p>
<p><code>git add *</code></p>
<p>And make your commit:</p>
<p><code>git commit -m "Updated from GitHub"</code></p>
<p><em>Aside: at this point, I tried to push back to WordPress.org and received an error of &#8220;Merge conflict during commit: File or directory &#8216;assignment_desk.php&#8217; is out of date; try updating: resource out of date; try updating at /usr/local/git/libexec/git-core/git-svn line 572,&#8221; also known as nonsensical gibberish. Thankfully, the Google pointed me to <a href="http://stackoverflow.com/questions/629048/git-svn-dcommit-error-restart-the-commit">this Stack Overflow thread</a>.</em></p>
<p>Before you celebrate, you must practice one last piece of magical foo: <a href="http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html">rebasing</a>. For reasons we don&#8217;t fully understand, rebase holds the key to resyncing your Git commit history with Subversion. Make it happen:</p>
<p><code>git svn rebase</code></p>
<p>Push all of your changes back to the original WordPress.org repository:</p>
<p><code>git svn dcommit</code></p>
<p>Congratulations! You&#8217;ve tamed the beast and progress to the next level.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbachhuber.wordpress.com/126421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbachhuber.wordpress.com/126421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbachhuber.wordpress.com/126421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbachhuber.wordpress.com/126421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/danielbachhuber.wordpress.com/126421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/danielbachhuber.wordpress.com/126421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/danielbachhuber.wordpress.com/126421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/danielbachhuber.wordpress.com/126421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbachhuber.wordpress.com/126421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbachhuber.wordpress.com/126421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbachhuber.wordpress.com/126421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbachhuber.wordpress.com/126421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbachhuber.wordpress.com/126421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbachhuber.wordpress.com/126421/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=126421&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://danielbachhuber.com/2010/09/29/how-to-properly-use-git-with-wordpress-org-subversion/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c778bed467546a08fd2f3618a9fc9d4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbachhuber</media:title>
		</media:content>
	</item>
		<item>
		<title>Using Google Apps with StatusNet for email notifications</title>
		<link>http://danielbachhuber.com/2010/01/08/using-google-apps-with-statusnet-for-email-notifications/</link>
		<comments>http://danielbachhuber.com/2010/01/08/using-google-apps-with-statusnet-for-email-notifications/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 20:12:58 +0000</pubDate>
		<dc:creator>Daniel Bachhuber</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[Google Apps]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[StatusNet]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[WebFaction]]></category>

		<guid isPermaLink="false">http://www.danielbachhuber.com/?p=2965</guid>
		<description><![CDATA[For the sake of saving an hour of guessing, here are the proper settings for using Google Apps, or Gmail, with StatusNet, formally known as Laconica: $config['mail']['backend'] = 'smtp'; $config['mail']['params'] = array( 'host' =&#62; 'smtp.gmail.com', 'port' =&#62; 587, 'auth' =&#62; &#8230; <a href="http://danielbachhuber.com/2010/01/08/using-google-apps-with-statusnet-for-email-notifications/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=2965&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For the sake of saving an hour of guessing, here are the proper settings for using Google Apps, or Gmail, with <a href="http://status.net/">StatusNet</a>, formally known as Laconica:</p>
<p><code>$config['mail']['backend'] = 'smtp';<br />
$config['mail']['params'] = array(<br />
							'host' =&gt; 'smtp.gmail.com',<br />
							'port' =&gt; 587,<br />
							'auth' =&gt; true,<br />
							'username' =&gt; 'username@domain.com',<br />
							'password' =&gt; 'your_secret_password'<br />
							);</code></p>
<p>Adding these settings to your config.php file will allow your StatusNet instance to send email notifications over SMTP when your web host doesn&#8217;t support sending mail from the server (ahem, WebFaction). The trick is to use the proper port, 587 instead of 25, and to enable authentication.</p>
<p>I&#8217;m still <a href="http://twitter.com/danielbachhuber/status/7529771457">trying to configure Google Apps as the XMPP provider for StatusNet</a> too; I&#8217;ll put together another post if I can figure that out.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbachhuber.wordpress.com/2965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbachhuber.wordpress.com/2965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbachhuber.wordpress.com/2965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbachhuber.wordpress.com/2965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/danielbachhuber.wordpress.com/2965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/danielbachhuber.wordpress.com/2965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/danielbachhuber.wordpress.com/2965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/danielbachhuber.wordpress.com/2965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbachhuber.wordpress.com/2965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbachhuber.wordpress.com/2965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbachhuber.wordpress.com/2965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbachhuber.wordpress.com/2965/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbachhuber.wordpress.com/2965/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbachhuber.wordpress.com/2965/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=2965&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://danielbachhuber.com/2010/01/08/using-google-apps-with-statusnet-for-email-notifications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c778bed467546a08fd2f3618a9fc9d4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbachhuber</media:title>
		</media:content>
	</item>
		<item>
		<title>#wcpdx: Speed Up WordPress</title>
		<link>http://danielbachhuber.com/2009/09/19/wcpdx-speed-up-wordpress/</link>
		<comments>http://danielbachhuber.com/2009/09/19/wcpdx-speed-up-wordpress/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 18:29:38 +0000</pubDate>
		<dc:creator>Daniel Bachhuber</dc:creator>
				<category><![CDATA[posts]]></category>
		<category><![CDATA[#wcpdx]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[notes]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[website optimization]]></category>
		<category><![CDATA[WordCamp Portland]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.danielbachhuber.com/?p=1129</guid>
		<description><![CDATA[First session at WordCamp Portland this morning was &#8220;Speed Up WordPress&#8221; with Jason Grigs of Cloud Four. He jokingly argues that &#8220;we&#8217;ve remade the internet in our image and the image is obese.&#8221; Since 2003, web page size has tripled, &#8230; <a href="http://danielbachhuber.com/2009/09/19/wcpdx-speed-up-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=1129&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>First session at <a href="http://www.wordcampportland.org/">WordCamp Portland</a> this morning was &#8220;<a href="http://www.slideshare.net/grigs/speed-up-wordpress-wordcamp-pdx-2009">Speed Up WordPress</a>&#8221; with Jason Grigs of <a href="http://www.cloudfour.com/">Cloud Four</a>. He jokingly argues that &#8220;we&#8217;ve remade the internet in our image and the image is obese.&#8221; Since 2003, web page size has tripled, number of objects has doubled, and we can partially blame it on WordPress. On the developer&#8217;s side, the expectation is that everyone is going to be on a fast connection, with broadband at home or at work.</p>
<p>Page load time, however, determines whether people will stay on your site and do what you want them to do. Speed and performance affect can change perceived quality and credibility of the website. &#8220;You can have a great brand and your site is really slow and people will think you&#8217;re crap online.&#8221; It&#8217;s critically important that your application maintains the user&#8217;s flow and focus. Amazon says they lose $1 million for every extra second in their shopping cart experience. There&#8217;s also an environmental impact for slow site. The number of data centers in the last four years has doubled, and has an energy consumption equivalent to five 1,000 megawatt power plants or the entire state of Mississippi.</p>
<p>In short, build a site that is optimized and doesn&#8217;t use more resources than it needs to. Be proactive about it.</p>
<p><span id="more-1129"></span>There are a few steps you can take to get started in optimizing your site. <a href="http://getfirebug.com/">Firebug</a> for Firefox, <a href="http://developer.yahoo.com/yslow/">YSlow</a> (a Firebug plugin), and <a href="http://code.google.com/speed/page-speed/">Google Page Speed</a> are tools to help you in your efforts. First, ask the question: Are you site load issues related to server performance or client performance? You can use Firebug to test how long it takes to download the HTML from the server. If it takes several seconds, then it&#8217;s most likely a server issues. Otherwise, it&#8217;s a client-side performance issue.</p>
<p>If it&#8217;s a server issue, <a href="http://wordpress.org/extend/plugins/sqlmon/">SQL Monitor</a> is a WordPress plugin that will look at how many SQL queries your site is making on each page request. When turned on, it will print all of the queries at the bottom of the page. During the demo, <a href="http://www.cloudfour.com/">Cloud Four</a> had 49 where <a href="http://siliconflorist.com/">Silicon Florist</a> had over 1,000. This will cause a slow response time from the server.</p>
<p><a href="http://wordpress.org/extend/plugins/wp-super-cache/">WP Super Cache</a>, when installed and activated, will show you at the bottom of the page whether it&#8217;s working or not. Many people install WP Super Cache, activate it, and expect that it will automatically make their sites faster. Sometimes it&#8217;s not as simple and doesn&#8217;t get configured properly.</p>
<p>Most of the time with site performance, however, it&#8217;s not the server. Yahoo found that, across a number of sites, only 5% of the performance was related to downloading HTML. When you&#8217;re doing performance work, you should make sure to do a benchmark test at the very beginning. Use that as a foundation for the work that you&#8217;re going to be doing.</p>
<p><strong>First rule of improving WordPress performance:</strong> GZIP everything like your life depends on it. Case study showed 80% reduction in file size. Most servers will let you do this with an addition to your htaccess file:</p>
<p><code>&lt;IfModule mod_deflate.c&gt;<br />
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript application/x-httpd-php application/rss+xml application/atom_xml<br />
&lt;/IfModule&gt;</code></p>
<p><strong>Second rule:</strong> Tell browsers to cache everything possible. Even if the file has been stored locally, the browser will still make a request for a new file. Yahoo solves this problem by naming files with the date they were created, and then telling the browser to never expire that file. Something like &#8220;logo.png&#8221; becomes &#8220;logo-20090919.png&#8221;. If you need to update the image, then it&#8217;s just a matter of uploading a new image with an updated file name. Not doing this will lead to massive HTTP requests on every page the user loads (which is bad). This can also be done through an htaccess change:</p>
<p><code>&lt;IfModule mod_expires.c&gt;<br />
ExpiresActive on<br />
ExpiresByType image/gif "access plus 1 month"<br />
ExpiresByType image/jpeg "access plus 1 month"<br />
ExpiresByType image/png "access plus 1 month"<br />
ExpiresByType text/css "access plus 1 month"<br />
ExpiresByType application/javascript "access plus 1 month"<br />
ExpiresByType application/x-javascript "access plus 1 month"<br />
ExpiresByType application/x-icon "access plus 1 year"<br />
&lt;/IfModule&gt;</code></p>
<p><strong>Third rule:</strong> Reduce the number of files on each page load. Combine all of the CSS or Javascript into as few as files as possible. WordPress creates this problem because of the number of plugins you can install. Each one wants to add its own CSS and Javascript. There are ways that you can combine them into one request.</p>
<p><strong>Fourth rule:</strong> Make sure your images are of the correct size and format. For instance, with the WordCamp Portland logo, the PNG version was 4 kb and JPG version was 24 kb. The JPG image was uploaded to the site originally. Also, make sure images have been resized to what they will be displayed as. Don&#8217;t load a larger image than you need to.</p>
<p><strong>Bonus rule:</strong> Use CSS sprites for your images and graphics. There&#8217;s a website called <a href="http://spriteme.org/">SpriteMe</a> that will find all of the images on the site, suggest which can be made into a sprite, create the sprite for you, and even generate the new CSS for you to place in your stylesheet. Site optimization for the lazy folk.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbachhuber.wordpress.com/1129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbachhuber.wordpress.com/1129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbachhuber.wordpress.com/1129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbachhuber.wordpress.com/1129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/danielbachhuber.wordpress.com/1129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/danielbachhuber.wordpress.com/1129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/danielbachhuber.wordpress.com/1129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/danielbachhuber.wordpress.com/1129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbachhuber.wordpress.com/1129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbachhuber.wordpress.com/1129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbachhuber.wordpress.com/1129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbachhuber.wordpress.com/1129/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbachhuber.wordpress.com/1129/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbachhuber.wordpress.com/1129/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbachhuber.com&#038;blog=16096444&#038;post=1129&#038;subd=danielbachhuber&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://danielbachhuber.com/2009/09/19/wcpdx-speed-up-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c778bed467546a08fd2f3618a9fc9d4e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbachhuber</media:title>
		</media:content>
	</item>
	</channel>
</rss>
