<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>David Cramer&#039;s Blog &#187; PHP</title>
	<atom:link href="http://www.davidcramer.net/category/code/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.davidcramer.net</link>
	<description>A blog about Django, JavaScript, CSS, and general web development.</description>
	<lastBuildDate>Fri, 09 Jul 2010 17:39:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Pagination in Django</title>
		<link>http://www.davidcramer.net/code/466/pagination-in-django.html</link>
		<comments>http://www.davidcramer.net/code/466/pagination-in-django.html#comments</comments>
		<pubDate>Thu, 02 Jul 2009 19:56:35 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curse]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Lifestream]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[iBegin]]></category>
		<category><![CDATA[paging]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=466</guid>
		<description><![CDATA[One of the common things we do across projects is paginate querysets and lists. Django happens to provide a base Paginator for us, but it&#8217;s usefulness is limited. It requires you to do the same repetitive tasks over and over. We&#8217;re one of those groups of people who believe that not every URL need&#8217;s to [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/466/pagination-in-django.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Refactoring Lifestream</title>
		<link>http://www.davidcramer.net/code/446/refactoring-lifestream.html</link>
		<comments>http://www.davidcramer.net/code/446/refactoring-lifestream.html#comments</comments>
		<pubDate>Sun, 05 Apr 2009 04:00:41 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Lifestream]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=446</guid>
		<description><![CDATA[For a while now I&#8217;ve been wanting to rewrite Lifestream into a contained OO pattern. It seems to be the &#8220;best practice&#8221; when it comes to WordPress, but tutorials and what are not spread out so it took a bit of time. During the process, I also took the opportunity to speed up certain areas, [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/446/refactoring-lifestream.html/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Sidebar Widgets Come to LifeStream</title>
		<link>http://www.davidcramer.net/code/355/sidebar-widgets-come-to-lifestream.html</link>
		<comments>http://www.davidcramer.net/code/355/sidebar-widgets-come-to-lifestream.html#comments</comments>
		<pubDate>Wed, 12 Nov 2008 02:37:31 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[lifestream]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=355</guid>
		<description><![CDATA[Tonight I finally took the chance to finish up the sidebar widgets in LifeStream, and I think everyone who&#8217;s been waiting for them will be satisfied. The widget allows you to place one or more, using the dynamic widgets feature which is in WordPress, for any supporting themes. Each widget let&#8217;s you customize the title, [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/355/sidebar-widgets-come-to-lifestream.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Blogrolls and Friendships</title>
		<link>http://www.davidcramer.net/other/339/blogrolls-and-friendships.html</link>
		<comments>http://www.davidcramer.net/other/339/blogrolls-and-friendships.html#comments</comments>
		<pubDate>Fri, 17 Oct 2008 16:40:30 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[lifestream]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=339</guid>
		<description><![CDATA[I&#8217;ve been thinking about an interesting concept, and potential project lately. Most blogs have a &#8220;Blogroll&#8221;, or a list of other blogs that are typically friends or colleagues. A lot of these bloggers also subscribe to those blogs with RSS readers, or whatever tool suits them. My concept was to socialize this aspect of the [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/other/339/blogrolls-and-friendships.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Dealing with Automated Form Submission (Spam)</title>
		<link>http://www.davidcramer.net/code/293/dealing-with-automated-form-submission-spam.html</link>
		<comments>http://www.davidcramer.net/code/293/dealing-with-automated-form-submission-spam.html#comments</comments>
		<pubDate>Fri, 12 Sep 2008 01:56:31 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[antispam]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=293</guid>
		<description><![CDATA[Recently I&#8217;ve been incorporating alternative techniques to Captcha to prevent automated form submission on websites, which is typically spam, or something else you don&#8217;t want happening. I added our routines to the new iBegin&#8217;s submission system today, and thought that I&#8217;d share with the world what we&#8217;re doing. I&#8217;m also curious as to what everyone [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/293/dealing-with-automated-form-submission-spam.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>DjangoCon 2008 is Over</title>
		<link>http://www.davidcramer.net/code/php/288/djangocon-2008-is-over.html</link>
		<comments>http://www.davidcramer.net/code/php/288/djangocon-2008-is-over.html#comments</comments>
		<pubDate>Tue, 09 Sep 2008 09:19:31 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[DjangoCon]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=288</guid>
		<description><![CDATA[Just got back home this evening from DjangoCon. It was really a lot of fun. It&#8217;s always great to be able to put a face to a name, or a 100 faces to names, in this case. I met a lot of really cool people, and some of the presentations were fantastic (especially Cal Henderson&#8217;s). [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/php/288/djangocon-2008-is-over.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress LifeStream Plugin Updates</title>
		<link>http://www.davidcramer.net/code/248/wordpress-lifestream-updates.html</link>
		<comments>http://www.davidcramer.net/code/248/wordpress-lifestream-updates.html#comments</comments>
		<pubDate>Mon, 25 Aug 2008 23:44:38 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[lifestream]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=248</guid>
		<description><![CDATA[This weekend I took the opportunity to implement a bunch of changes, and fixes, into the wp-lifestream plugin which I created. It got a quick overhaul on the extensibility end, allowing you to do much more with complex feeds. To demonstrate the power, I went ahead and built the much-requested Pandora feed plugin. The plugin [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/248/wordpress-lifestream-updates.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WordPress LifeStream Plugin: wp-lifestream</title>
		<link>http://www.davidcramer.net/code/164/wordpress-lifestream-plugin-wp-lifestream.html</link>
		<comments>http://www.davidcramer.net/code/164/wordpress-lifestream-plugin-wp-lifestream.html#comments</comments>
		<pubDate>Thu, 31 Jul 2008 07:09:25 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[lifestream]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=164</guid>
		<description><![CDATA[I had recently installed a plugin on my blogged called &#8220;RSS Stream&#8221;. The idea of the plugin is that it can use RSS feeds (and only RSS feeds) from sites to display a mini-feed, or mini-blog, of what you&#8217;re doing. Not being quite content with the plugin, I decided to write my own. A few [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/164/wordpress-lifestream-plugin-wp-lifestream.html/feed</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>PHP vs Python &#8212; Where Opinions Aren&#8217;t Wanted</title>
		<link>http://www.davidcramer.net/code/121/php-vs-python.html</link>
		<comments>http://www.davidcramer.net/code/121/php-vs-python.html#comments</comments>
		<pubDate>Mon, 14 Apr 2008 23:20:29 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[opinions]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=121</guid>
		<description><![CDATA[Constantly, and only in Python channels, I hear the argument brought up that &#8220;PHP is &#60;insert random insult&#62;&#8221; or &#8220;&#60;N&#62; is a PHP developer so he must suck&#8221;. One of the things I hate most, is stereotypes, based on false information. Stereotypes about people from Texas being rednecks are ok, because it&#8217;s true. Now, let&#8217;s [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/121/php-vs-python.html/feed</wfw:commentRss>
		<slash:comments>69</slash:comments>
		</item>
		<item>
		<title>php-database</title>
		<link>http://www.davidcramer.net/code/120/php-database.html</link>
		<comments>http://www.davidcramer.net/code/120/php-database.html#comments</comments>
		<pubDate>Sun, 13 Apr 2008 22:39:44 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/?p=120</guid>
		<description><![CDATA[This afternoon I posted my PHP database library on Google code. It&#8217;s designed to be very lightweight, and uses the PHP4 MySQL functions as well as the PostgreSQL functions, but is built for PHP5. It uses sprintf formatting, and works must like the Python database cursor&#8217;s, to help alleviate injection concerns while you are writing [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/120/php-database.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
