<?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>codenode</title>
	<atom:link href="http://codenode.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codenode.com</link>
	<description>DB&#60;3&#62; x $code</description>
	<lastBuildDate>Tue, 10 Aug 2010 15:55:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The truth about QuiBids</title>
		<link>http://codenode.com/2010/07/29/the-truth-about-quibids/</link>
		<comments>http://codenode.com/2010/07/29/the-truth-about-quibids/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 01:27:11 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[lesson]]></category>
		<category><![CDATA[auction]]></category>
		<category><![CDATA[bid]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[penny]]></category>
		<category><![CDATA[Pyrex]]></category>
		<category><![CDATA[QuiBids]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=162</guid>
		<description><![CDATA[QuiBids is a penny auction website with an irresistible hook: win awesome stuff at bind-blowing prices, like a brand-new Apple iPad 16 GB Wi-Fi for $4!  It seems unbelievable but it&#8217;s true.  It&#8217;s also very deceptive.
I spent a little over $300 today and won only some Pyrex contains (I did need them, at [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/07/29/the-truth-about-quibids/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Parsing SQL WHERE clause</title>
		<link>http://codenode.com/2010/07/26/parsing-sql-where-clause/</link>
		<comments>http://codenode.com/2010/07/26/parsing-sql-where-clause/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 16:58:43 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Maatkit]]></category>
		<category><![CDATA[parsing]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=158</guid>
		<description><![CDATA[Parsing a SQL WHERE clause is really difficult. A number of people have told me, &#8220;looks like grammar&#8221;, implying that I should use some traditional grammar/rule-based solution like yacc or bison, but I can&#8217;t because Maatkit tools (of which this is a part) must have minimal external dependencies.  Plus, I don&#8217;t want or need [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/07/26/parsing-sql-where-clause/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real world vs. cyber world</title>
		<link>http://codenode.com/2010/07/23/real-world-vs-cyber-world/</link>
		<comments>http://codenode.com/2010/07/23/real-world-vs-cyber-world/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 16:57:36 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[reflection]]></category>
		<category><![CDATA[BBS]]></category>
		<category><![CDATA[Borg]]></category>
		<category><![CDATA[brewery]]></category>
		<category><![CDATA[cyber world]]></category>
		<category><![CDATA[cyberscape]]></category>
		<category><![CDATA[real world]]></category>
		<category><![CDATA[Salvador Dali]]></category>
		<category><![CDATA[social network]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=145</guid>
		<description><![CDATA[&#8220;Cyberscape&#8221; is not a term generally used any longer.  In fact, it seems to me that no one really speaks of a division between the real world and the cyberworld any longer.  Rather, people speak of how close and integrated they are and of technologies and ways to bring them even closer.  [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/07/23/real-world-vs-cyber-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Single pass replace with Perl regex \G anchor</title>
		<link>http://codenode.com/2010/06/24/single-pass-replace-with-perl-regex-g-anchor/</link>
		<comments>http://codenode.com/2010/06/24/single-pass-replace-with-perl-regex-g-anchor/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 23:46:02 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[/g modifier]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[\G anchor]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=130</guid>
		<description><![CDATA[Let&#8217;s say we have the query SELECT a, b, c FROM tbl WHERE id=1 ORDER BY a ASC, b ASC, c ASC and we want to remove the redundant ASC keywords, i.e. replace them with a blank string.  This has to be fast and efficient which means a single, non-backtracking pass.
The first temptation might [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/06/24/single-pass-replace-with-perl-regex-g-anchor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Are you a hacker?</title>
		<link>http://codenode.com/2010/06/02/are-you-a-hacker/</link>
		<comments>http://codenode.com/2010/06/02/are-you-a-hacker/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 14:32:35 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[lesson]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[OSBridge]]></category>
		<category><![CDATA[owlish]]></category>
		<category><![CDATA[teenagers]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=123</guid>
		<description><![CDATA[A stranger once asked me, &#8220;Are you a hacker?&#8221;, when he saw me coding on my Linux-running laptop.  I didn&#8217;t know how to answer him, but after seeing only one guy in the OSBridge Hacker Lounge last night at 21:30 hours when I was finally going home I realized that, no, I&#8217;m not a [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/06/02/are-you-a-hacker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Try again</title>
		<link>http://codenode.com/2010/05/25/try-agai/</link>
		<comments>http://codenode.com/2010/05/25/try-agai/#comments</comments>
		<pubDate>Tue, 25 May 2010 17:29:29 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[style]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[Google Code]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=119</guid>
		<description><![CDATA[svn and Google Code sometimes bork on my commits, saying:

Transmitting file data &#8230;..svn: Commit failed (details follow):
svn: Commit failed unexpectedly &#8212; please try again later

The first line tells me that the transmission failed and that details follow.  The second line tells me that the commit failed unexpectedly, which is essentially what the first line [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/05/25/try-agai/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code documentation</title>
		<link>http://codenode.com/2010/05/19/code-documentation/</link>
		<comments>http://codenode.com/2010/05/19/code-documentation/#comments</comments>
		<pubDate>Wed, 19 May 2010 17:09:33 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[lesson]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[irony]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=117</guid>
		<description><![CDATA[I&#8217;m guilty of not always documenting my code.  Last week I finished up a big project, lots of new code, and by the end I wasn&#8217;t documenting the code because I thought, &#8220;the code is obvious, just read it.&#8221;  And while the code may be obvious if one reads it, I realized yesterday [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/05/19/code-documentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Devel::Size::total_size() fix/patch coderef segfault</title>
		<link>http://codenode.com/2010/04/21/devel-size-coderef-segfault-fix/</link>
		<comments>http://codenode.com/2010/04/21/devel-size-coderef-segfault-fix/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 02:13:15 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[Devel::Size]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[segfault]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=104</guid>
		<description><![CDATA[Devel::Size v0.71 and older causes Perl to segfault if you total_size() any non-trivial coderef.  This was known as bug 29238 and bug 26781.  I fixed/patched this.  The patch (for 0.71; probably works on other version, if not, just make the two simple changes manually) is simply:

48c48
<     if ((o->op_type [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/04/21/devel-size-coderef-segfault-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Program in the morning</title>
		<link>http://codenode.com/2010/04/09/program-in-the-morning/</link>
		<comments>http://codenode.com/2010/04/09/program-in-the-morning/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 17:32:46 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[lesson]]></category>
		<category><![CDATA[fatigue]]></category>
		<category><![CDATA[wasted effort]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=50</guid>
		<description><![CDATA[I&#8217;m a morning person.  8am is late to me.  I&#8217;m also a late-evening person.  I sometimes work from 8am to 10pm (with breaks for eating).  I&#8217;ve learned time and time again that programming late-day, or whenever you&#8217;re tired, is truly a waste.  I spent 7 hours late yesterday trying to [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/04/09/program-in-the-morning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>First date with Python</title>
		<link>http://codenode.com/2010/03/26/first-date-with-python/</link>
		<comments>http://codenode.com/2010/03/26/first-date-with-python/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 15:03:25 +0000</pubDate>
		<dc:creator>Daniel Nichter</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Andé Gide]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[lazy]]></category>
		<category><![CDATA[pydoc]]></category>

		<guid isPermaLink="false">http://codenode.com/?p=46</guid>
		<description><![CDATA[I began learning Python a few months back by reading Programming in Python 3.  I didn&#8217;t know at the time that Python 3 was devel and that Python 2 was production.  Regardless, I got the chance yesternight to sit down and use Python in the real world.  My first languages where BASIC [...]]]></description>
		<wfw:commentRss>http://codenode.com/2010/03/26/first-date-with-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
