<?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; Curse</title>
	<atom:link href="http://www.davidcramer.net/category/work/curse/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>PHP httplib</title>
		<link>http://www.davidcramer.net/code/75/php-httplib.html</link>
		<comments>http://www.davidcramer.net/code/75/php-httplib.html#comments</comments>
		<pubDate>Fri, 01 Feb 2008 00:20:38 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curse]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[httplib]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/code/75/php-httplib.html</guid>
		<description><![CDATA[We&#8217;ve been working on our central authentication service at Curse lately, so we just began porting it&#8217;s libraries to PHP. We plan to deploy it across all sites (specifically the vBulletin forum sites) very soon. In order to achieve a working library in PHP, we needed some HTTP utilities. We didn&#8217;t want to create dependencies [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/75/php-httplib.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>File Widgets on Curse</title>
		<link>http://www.davidcramer.net/work/curse/74/file-widgets-on-curse.html</link>
		<comments>http://www.davidcramer.net/work/curse/74/file-widgets-on-curse.html#comments</comments>
		<pubDate>Thu, 31 Jan 2008 02:44:47 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Curse]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/curse/74/file-widgets-on-curse.html</guid>
		<description><![CDATA[We&#8217;ll be releasing a bunch of widgets for Curse/WoWDB, and here&#8217;s a sample of one of them. Throw any feedback you have over here, because we&#8217;re glad to hear it]]></description>
		<wfw:commentRss>http://www.davidcramer.net/work/curse/74/file-widgets-on-curse.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using LOCKs in MySQL</title>
		<link>http://www.davidcramer.net/code/67/using-locks-in-mysql.html</link>
		<comments>http://www.davidcramer.net/code/67/using-locks-in-mysql.html#comments</comments>
		<pubDate>Thu, 17 Jan 2008 22:07:06 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curse]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/code/67/using-locks-in-mysql.html</guid>
		<description><![CDATA[We ran across a fun gotcha today while performance testing some code. The issue was originally discovered when we noticed a 300ms query taking 20 seconds. After about an hour of debugging we found the issue to be with aliases in table locks. Here&#8217;s what our original SQL looked like: LOCK TABLES files_versiondownloadcount WRITE; &#160; [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/67/using-locks-in-mysql.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Set cookies without a response in Django</title>
		<link>http://www.davidcramer.net/code/62/set-cookies-without-a-response-in-django.html</link>
		<comments>http://www.davidcramer.net/code/62/set-cookies-without-a-response-in-django.html#comments</comments>
		<pubDate>Thu, 20 Dec 2007 19:19:06 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curse]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/code/62/set-cookies-without-a-response-in-django.html</guid>
		<description><![CDATA[One issue I&#8217;ve personally had to overcome with Django, and languages which aren&#8217;t specifically designed for the web, is that you don&#8217;t have access to the environment everywhere. The environment I&#8217;m referring to, is the current request, and response objects. In PHP there is no response object, at least not one as you would see [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/62/set-cookies-without-a-response-in-django.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Handling Cache Invalidation</title>
		<link>http://www.davidcramer.net/code/61/handling-cache-invalidation.html</link>
		<comments>http://www.davidcramer.net/code/61/handling-cache-invalidation.html#comments</comments>
		<pubDate>Thu, 06 Dec 2007 22:32:47 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curse]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[caching]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/code/61/python-and-php-memcached-client-comparisons.html</guid>
		<description><![CDATA[In preparation for a possible change in Curse&#8217;s caching strategy, I took the time today to do some benchmarks of memcached. The benchmarks were taken using the standard python-memcached library as well as 3rd party library for PHP (I couldn&#8217;t get Leopard working with the PECL package). It turns out, Python is actually fairly fast [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/61/handling-cache-invalidation.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Curse &#8212; Version 5</title>
		<link>http://www.davidcramer.net/work/curse/59/curse-version-5.html</link>
		<comments>http://www.davidcramer.net/work/curse/59/curse-version-5.html#comments</comments>
		<pubDate>Thu, 29 Nov 2007 00:05:39 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Curse]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/curse/59/curse-version-5.html</guid>
		<description><![CDATA[It&#8217;s been a hectic month getting everything done, but we&#8217;ve finally managed to push live the new site.  You&#8217;ll find a whole slew of changes to the design as well as some minor tweaks to some of the features. Most noticably: The header now makes sense. No more double takes and confusion in finding what [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/work/curse/59/curse-version-5.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curse Seeking Python Developer</title>
		<link>http://www.davidcramer.net/code/55/curse-seeking-python-developer.html</link>
		<comments>http://www.davidcramer.net/code/55/curse-seeking-python-developer.html#comments</comments>
		<pubDate>Mon, 29 Oct 2007 16:05:34 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curse]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/code/55/curse-seeking-python-developer.html</guid>
		<description><![CDATA[Curse is seeking a Python engineer to join a small development team tasked with ongoing feature development and maintenance of a django based MMO gaming portal website. Candidate should have experience w/ scaling webapps for highly concurrent access, and the issues involved: Understanding of sharding Issues caused by replication Understanding of web caching methods (cache [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/55/curse-seeking-python-developer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blizzcon Updates &#8212; Find them first</title>
		<link>http://www.davidcramer.net/code/53/blizzcon-updates-find-them-first.html</link>
		<comments>http://www.davidcramer.net/code/53/blizzcon-updates-find-them-first.html#comments</comments>
		<pubDate>Thu, 02 Aug 2007 23:15:22 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curse]]></category>
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/code/53/blizzcon-updates-find-them-first.html</guid>
		<description><![CDATA[We&#8217;ve put live a new &#8220;events&#8221; section on Curse.com today. Once again, proving how quick Django is, we whipped this up in 2 days. Currently it&#8217;s prepped for the Blizzcon event this weekend, which we&#8217;ll be covering. It aggregates data from the rest of the site based on several data keys. So if you&#8217;ll be [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/53/blizzcon-updates-find-them-first.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Curse.com Launches!</title>
		<link>http://www.davidcramer.net/code/52/cursecom-launches.html</link>
		<comments>http://www.davidcramer.net/code/52/cursecom-launches.html#comments</comments>
		<pubDate>Tue, 31 Jul 2007 00:03:20 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Curse]]></category>
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.davidcramer.net/code/52/cursecom-launches.html</guid>
		<description><![CDATA[We finally managed to get the new site pushed out the door last week, and it&#8217;s been one hell of a ride. It&#8217;s a complete overhaul of the old codebase, including a completely new template engine (Jinja), a new internatlization handler (in-house), and quite a few tweaks on the backend. For the past week we&#8217;ve [...]]]></description>
		<wfw:commentRss>http://www.davidcramer.net/code/52/cursecom-launches.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
