<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Deadly Bloody Serious</title>
	
	<link>http://www.deadlybloodyserious.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 09 Jul 2009 01:56:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DeadlyBloodySerious" /><feedburner:info uri="deadlybloodyserious" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-nd/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>DeadlyBloodySerious</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><item>
		<title>Video: Uncle Bob at NDC2009</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/JJCs_w3Xl5g/</link>
		<comments>http://www.deadlybloodyserious.com/2009/07/video-uncle-bob-at-ndc2009/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 01:49:29 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/?p=2064</guid>
		<description>Uncle Bob Martin was at NDC2009. Rune posted the videos, but they're slow to fetch from Australia. As an experiment, I've posted the videos to S3. You can download them via BitTorrent.&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2009/07/video-uncle-bob-at-ndc2009/"&gt;Video: Uncle Bob at NDC2009&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/unclebobmartin">Uncle Bob Martin</a> was at <a href="http://www.ndc2009.no/agenda.aspx">NDC2009</a>, and Rune Grothaug just posted the <a href="http://blogs.msdn.com/grothaug/pages/downloadable-ndc2009-videos.aspx">videos</a>. You can also watch them as streams from the NDC2009 site.</p>
<p>Downloads from Rune&#8217;s server to Australia are pretty slow, so I&#8217;ve put Uncle Bob&#8217;s videos on S3 as an experiment. Please ONLY download them via BitTorrent:</p>
<ul>
<li><a href="http://s3.amazonaws.com/ndc2009/ndc_dag1_sal4_del3.wmv?torrent">Clean Code: Functions</a></li>
<li><a href="http://s3.amazonaws.com/ndc2009/NDC_Dag2_Sal5_Del6.wmv?torrent">Clean Code: Components Principles</a></li>
<li><a href="http://s3.amazonaws.com/ndc2009/NDC_Dag2_Sal5_Del5.wmv?torrent">Clean Design: SOLID Principles I and II</a></li>
<li><a href="http://s3.amazonaws.com/ndc2009/NDC_Dag2_Sal5_Del7.wmv?torrent">Clean Practice: Agility and Craftsmanship</a></li>
</ul>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2009/07/video-uncle-bob-at-ndc2009/">Video: Uncle Bob at NDC2009</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=JJCs_w3Xl5g:TvXvTCRpbPk:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=2mJPEYqXBVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=JJCs_w3Xl5g:TvXvTCRpbPk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=JJCs_w3Xl5g:TvXvTCRpbPk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=JJCs_w3Xl5g:TvXvTCRpbPk:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2009/07/video-uncle-bob-at-ndc2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2009/07/video-uncle-bob-at-ndc2009/</feedburner:origLink></item>
		<item>
		<title>Hello, Yiying! The creator of the “Fail Whale”</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/3rcLfpRzf-w/</link>
		<comments>http://www.deadlybloodyserious.com/2008/06/yiying-failwhale/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 01:18:12 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[failwhale]]></category>
		<category><![CDATA[socialobjects]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wikipedia]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/?p=2058</guid>
		<description>After hearing that the Fail Whale article on Wikipedia was scheduled for early deletion, I felt compelled to help edit it to meet the standards of the Wikipedians — at least, the inclusionists. It was — and still is — quite important to me to clarify the relationship between the picture of the whale, the [...]&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2008/06/yiying-failwhale/"&gt;Hello, Yiying! The creator of the “Fail Whale”&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p><a href='http://www.deadlybloodyserious.com/2008/06/yiying-failwhale/failwhale/' rel="attachment wp-att-2060"><img src="http://www.deadlybloodyserious.com/wp-content/uploads/2008/06/failwhale-300x225.png" alt="“Lifting a Dreamer”, by Yiying Lu" title="Fail Whale" width="300" height="225" class="alignnone size-medium wp-image-2060" /></a></p>
<p>After hearing that the <a href="http://en.wikipedia.org/wiki/Fail_Whale">Fail Whale article on Wikipedia</a> was scheduled for early deletion, I felt compelled to help edit it to meet the standards of the Wikipedians — at least, the <a href="http://meta.wikimedia.org/wiki/Inclusionism">inclusionists</a>.</p>
<p>It was — and still is — quite important to me to clarify the relationship between the picture of the whale, the name the community gave it, the personality projected by the community on it, and the <a href="http://twitter.com/failwhale">@failwhale</a> account created by <a href="http://twitter.com/seanosteen" title="Sean O'Steen">@seanosteen</a>.</p>
<p>Luckily, James Governor had written an article “<a href="http://redmonk.com/jgovernor/2008/06/26/the-designer-who-gave-us-fail-whale-and-showing-the-whale/">The Designer Who Gave Us Fail Whale and Showing The Whale</a>”:</p>
<blockquote><p>I had assumed Twitter was using designs it had paid for for its Fail page, but apparently not. Courtesy of <a href="http://www.redmonk.com/jgovernor/2008/06/26/in-praise-of-downtime-twitter-as-phenomenon/#comment-410473">John Wilson’s comment</a> on my last blog about Twitter, a couple of hours ago, came news the famous whale is a stock shot from <a href="http://www.istockphoto.com/file_closeup/animals/animal-backgrounds/4611821-lift-a-dreamer.php?id=4611821">here</a>.</p>
<p><a href="http://www.yiyinglu.com/sc/illustration">Yiying Lu</a> is the fantastic designer behind the image we all see, and love, so much. Frankly I think Twitter should use more of their work to give us some variety, and also give Yiying a lot more credit. How about a service sleeping owl?</p>
</blockquote>
<p>Thanks to James’ detective work and <a href="http://en.wikipedia.org/w/index.php?title=Fail_Whale&#038;direction=next&#038;oldid=222162170">Kapanka&#8217;s edit</a>, the Wikipedia article already linked to Yiying, but it lacked a lot of detail.</p>
<p>So, I sent Yiying a tweet and an SMS, and we ended up talking on Skype. I wish I&#8217;d recorded it, as she&#8217;s great interview talent. All I can do here is report the story:</p>
<p>Yiying was studying at <a href="http://www.uts.edu.au/">UTS</a> when she drew “<a href="http://www.yiyinglu.com/sc/illustration">Lifting a Dreamer</a>”. To help support her studies, Yiying put it up on <a href="http://www.istockphoto.com/file_closeup/animals/animal-backgrounds/4611821-lift-a-dreamer.php?id=4611821">iStockPhoto</a> not realising that the site was more for generic images — say, a mobile phone on a white background — than for personal works of art.</p>
<p>Yiying isn&#8217;t sure exactly when Twitter downloaded the picture, and so can&#8217;t nail down exactly what they paid for the license to use it, but estimates it was around USD$5-10.</p>
<p>Eventually, someone let Yiying know: “your whale is getting bigger! people see it every hour…”, she saw it on Twitter, and <a href="http://twitter.com/tlimongello" title="Tom Limongello">@tlimongello</a> contacted Yiying from the USA to get her permission to put the Fail Whale on some T-shirts. <a href="http://twitter.com/seanosteen" title="Sean O'Steen">@seanosteen</a> had already registered <a href="http://failwhale.com/" title="The Fail Whale Fan Club">failwhale.com</a> for  fan blog. After some discussion, Yiying set up the <a href="http://zazzle.com/failwhale" title="Fail Whale Online Store">online store</a> to meet community demand for Fail Whale memorabilia. She also deactivated the image on iStockPhoto to prevent further commercial use of the image.</p>
<p>To this date, nobody at Twitter has yet contacted Yiying. As of the last sightings of the Fail Whale — soon to be rare, about which I&#8217;ve got mixed feelings — the image remains unattributed. So, I&#8217;m delighted to spread the word about the true origins of the Fail Whale.</p>
<p>Back to that delightful mix of image, name, personality, and tribute persona, though: I think Yiying nailed it during our call when she said:</p>
<blockquote><p>“This is a social object — it&#8217;s not only my thing. It&#8217;s my graphic, but how this graphic got famous… it&#8217;s the social power, the Twitter power.”</p>
</blockquote>
<p>That Twitter power is now engaging with the artist, not just her image.</p>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2008/06/yiying-failwhale/">Hello, Yiying! The creator of the “Fail Whale”</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=3rcLfpRzf-w:KDGv8cEHQrQ:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=2mJPEYqXBVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=3rcLfpRzf-w:KDGv8cEHQrQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=3rcLfpRzf-w:KDGv8cEHQrQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=3rcLfpRzf-w:KDGv8cEHQrQ:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2008/06/yiying-failwhale/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2008/06/yiying-failwhale/</feedburner:origLink></item>
		<item>
		<title>Nudi of the Day</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/HWnzWOyTAFk/</link>
		<comments>http://www.deadlybloodyserious.com/2008/05/nudi-of-the-day/#comments</comments>
		<pubDate>Thu, 15 May 2008 01:31:57 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[nudibranch]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/?p=2057</guid>
		<description>Thanks to @codinghorror: David Doubilet&amp;#8217;s amazing nudibranch pictures in National Geographic magazine. (The title is homage to a web site that used to exist. I can&amp;#8217;t find it, now.) This is a post from Deadly Bloody Serious. Nudi of the Day&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2008/05/nudi-of-the-day/"&gt;Nudi of the Day&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://twitter.com/codinghorror/statuses/811523571">@codinghorror</a>: <a href="http://ngm.nationalgeographic.com/2008/06/nudibranchs/doubilet-photography">David Doubilet&#8217;s amazing nudibranch pictures</a> in National Geographic magazine.</p>
<p><a href='http://www.deadlybloodyserious.com/wp-content/uploads/2008/05/nudibranchse28094photo-gallerye28094national-geographic-magazine.png'><img border="0" src="http://www.deadlybloodyserious.com/wp-content/uploads/2008/05/nudibranchse28094photo-gallerye28094national-geographic-magazine-300x210.png" alt="David Doubilet\&#039;s amazing nudibranch pictures in the National Geographic" title="Nudi of the Day" width="300" height="210" class="alignnone size-medium wp-image-2056" /></a></p>
<p>(The title is homage to a web site that used to exist. I can&#8217;t find it, now.)</p>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2008/05/nudi-of-the-day/">Nudi of the Day</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=HWnzWOyTAFk:AnPuK_OsLIU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=HWnzWOyTAFk:AnPuK_OsLIU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=HWnzWOyTAFk:AnPuK_OsLIU:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2008/05/nudi-of-the-day/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2008/05/nudi-of-the-day/</feedburner:origLink></item>
		<item>
		<title>Default arguments in Python: two easy blunders</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/1rupEgRzHQU/</link>
		<comments>http://www.deadlybloodyserious.com/2008/05/default-argument-blunders/#comments</comments>
		<pubDate>Fri, 09 May 2008 01:05:12 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[arguments]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/?p=2055</guid>
		<description>I&amp;#8217;m glad I stumbled across Patrick Altman&amp;#8217;s tweet about a &amp;#8220;default bug in Django&amp;#8220;. I&amp;#8217;d never have guessed you can pass a callable to a field&amp;#8217;s default= argument, otherwise. That&amp;#8217;s quite a powerful idiom, and I think I&amp;#8217;ll use it a lot. To balance the karma, I&amp;#8217;d like to post a quick reminder to everyone [...]&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2008/05/default-argument-blunders/"&gt;Default arguments in Python: two easy blunders&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p>I&#8217;m glad I stumbled across Patrick Altman&#8217;s tweet about a &#8220;<a href="http://twitter.com/paltman/statuses/805904948">default bug in Django</a>&#8220;. I&#8217;d never have guessed you can <b>pass a callable to a field&#8217;s default= argument</b>, otherwise. That&#8217;s quite a powerful idiom, and I think I&#8217;ll use it a lot.
</p>
<p>To balance the karma, I&#8217;d like to post a quick reminder to everyone else that <b>expressions in default arguments are calculated when the function is defined</b>, <i>not</i> when it&#8217;s called. In Patrick&#8217;s code, for example, all objects created in the same running session got the same timestamp. Try this in the Python interactive prompt:
</p>
<p>
<pre>&gt;&gt;&gt;import time
&gt;&gt;&gt; def report(<strong>when=time.time()</strong>): 
...     print when
... 
&gt;&gt;&gt; report()
1210294387.19
&gt;&gt;&gt; time.sleep(5)
&gt;&gt;&gt; report()
<strong>1210294387.19</strong></pre>
</p>
<p>Until the interpreter quits, you&#8217;ll always get the same timestamp. The correct way to go about this is to default to None or some other sentinel, then replace it inside the function:</p>
<p>
<pre>&gt;&gt;&gt; def report(<strong>when=None</strong>): 
...     <strong>if when is None:</strong>
...         <strong>when = time.time()</strong>
...     print when
... 
&gt;&gt;&gt; report()
1210294762.29
&gt;&gt;&gt; time.sleep(5)
&gt;&gt;&gt; report()
<strong>1210294772.23</strong></pre>
</p>
<p>Now that you know about that blunder, you should be able to figure out what&#8217;s going on with this second classic blunder when using default arguments in Python:</p>
<p>
<pre>&gt;&gt;&gt; def spam(eggs=[]): 
...     eggs.append("spam")
...     return eggs
... 
&gt;&gt;&gt; spam()
['spam']
&gt;&gt;&gt; spam()
['spam', 'spam']
&gt;&gt;&gt; spam()
['spam', 'spam', 'spam']
&gt;&gt;&gt; spam()
['spam', 'spam', 'spam', 'spam']</pre></p>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2008/05/default-argument-blunders/">Default arguments in Python: two easy blunders</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=1rupEgRzHQU:LXPlLvYq7zA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=1rupEgRzHQU:LXPlLvYq7zA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=1rupEgRzHQU:LXPlLvYq7zA:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2008/05/default-argument-blunders/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2008/05/default-argument-blunders/</feedburner:origLink></item>
		<item>
		<title>Twitter Emergency Backup</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/L_5JZBHvXj0/</link>
		<comments>http://www.deadlybloodyserious.com/2008/05/twitter-emergency-backup/#comments</comments>
		<pubDate>Mon, 05 May 2008 00:32:56 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[davewiner]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[xmlrpc]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/?p=2054</guid>
		<description>&lt;p&gt;&lt;a href="http://twitter.com/davewiner"&gt;Dave Winer&lt;/a&gt; has been thinking about ways to preserve the Twitter community even when Twitter is down. His latest effort is &lt;a href="http://www.scripting.com/stories/2008/05/04/aNewWebServiceForTwitterCl.html"&gt;a web service to save Twitter feeds&lt;/a&gt;...&lt;/p&gt;&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2008/05/twitter-emergency-backup/"&gt;Twitter Emergency Backup&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/davewiner">Dave Winer</a> has been thinking about ways to preserve the Twitter community even when Twitter is down. His latest effort is <a href="http://www.scripting.com/stories/2008/05/04/aNewWebServiceForTwitterCl.html">a web service to save Twitter feeds</a> and expose their content via another feed.</p>
<p>I tried it out, but couldn&#8217;t parse the response: </p>
<p>
<pre>
Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import xmlrpclib, urllib2
>>> twittergram = xmlrpclib.Server("http://rpc.twittergram.com/RPC2/")
>>> content = urllib2.urlopen("http://twitter.com/statuses/user_timeline/704593.rss").read()
>>> twittergram.saveFeed('garthk', '*****', content)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/xmlrpclib.py", line 1147, in __call__
    return self.__send(self.__name, args)
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/xmlrpclib.py", line 1437, in __request
    verbose=self.__verbose
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/xmlrpclib.py", line 1201, in request
    return self._parse_response(h.getfile(), sock)
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/xmlrpclib.py", line 1335, in _parse_response
    p.feed(response)
  File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/xmlrpclib.py", line 547, in feed
    self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: mismatched tag: line 10, column 7</module></stdin></pre>
</p>
<p>I&#8217;ll investigate later.</p>
<p>I&#8217;d love to wade into this kind of problem domain, perhaps using <a href="http://code.google.com/appengine/">Google App Engine</a> for hosting so I didn&#8217;t have to worry about usage spikes. Feed backup is a brilliant start. We also need to helping our followers find the feeds, and I&#8217;m sure more thought will yield more areas for <strike>fun</strike>improvement.</p>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2008/05/twitter-emergency-backup/">Twitter Emergency Backup</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=L_5JZBHvXj0:8v0iwa6QCxU:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=2mJPEYqXBVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=L_5JZBHvXj0:8v0iwa6QCxU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=L_5JZBHvXj0:8v0iwa6QCxU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=L_5JZBHvXj0:8v0iwa6QCxU:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2008/05/twitter-emergency-backup/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2008/05/twitter-emergency-backup/</feedburner:origLink></item>
		<item>
		<title>Twitter’s Famous Last Words?</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/8O8FGhjdToY/</link>
		<comments>http://www.deadlybloodyserious.com/2008/05/twitter-famous-last-words/#comments</comments>
		<pubDate>Fri, 02 May 2008 07:33:39 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/?p=2053</guid>
		<description>Just before Twitter went completely dark, I saw this: I&amp;#8217;m sure it&amp;#8217;ll be back up soon, but &amp;#8217;twas nice to have a laugh before hitting the sack. (Speaking of irony: I have 666 unread items in my feed reader&amp;#8217;s Productivity folder…) This is a post from Deadly Bloody Serious. Twitter&amp;#8217;s Famous Last Words?&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2008/05/twitter-famous-last-words/"&gt;Twitter&amp;#8217;s Famous Last Words?&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p>Just before Twitter went completely dark, I saw this:</p>
<p><img src="http://img.skitch.com/20080502-85a37yp5kjxmn9r4p9iegdi6x3.png" alt="last words"/></p>
<p>I&#8217;m sure it&#8217;ll be back up soon, but &#8217;twas nice to have a laugh before hitting the sack. </p>
<p>(Speaking of irony: I have <a href="http://serious.tumblr.com/post/33500923">666 unread items</a> in my feed reader&#8217;s Productivity folder…) </p>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2008/05/twitter-famous-last-words/">Twitter&#8217;s Famous Last Words?</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=8O8FGhjdToY:RffIU3HQLqo:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=2mJPEYqXBVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=8O8FGhjdToY:RffIU3HQLqo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=8O8FGhjdToY:RffIU3HQLqo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=8O8FGhjdToY:RffIU3HQLqo:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2008/05/twitter-famous-last-words/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2008/05/twitter-famous-last-words/</feedburner:origLink></item>
		<item>
		<title>Wireless network “appears compromised”</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/xGDe-xR-s_s/</link>
		<comments>http://www.deadlybloodyserious.com/2008/01/wireless-network-appears-compromised/#comments</comments>
		<pubDate>Sat, 19 Jan 2008 12:02:52 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/2008/01/wireless-network-appears-compromised/</guid>
		<description>I&amp;#8217;m seeing a lot of this disturbing little error message: &amp;#8220;The wireless network appears to have been compromised and will be disabled for about a minute.&amp;#8221; A poke around the Internet doesn&amp;#8217;t show much other than other people complaining about the same problem. Some find the only way to solve the problem is to disable [...]&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2008/01/wireless-network-appears-compromised/"&gt;Wireless network &amp;#8220;appears compromised&amp;#8221;&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p>I&#8217;m seeing a lot of this disturbing little error message: &#8220;The wireless network appears to have been compromised and will be disabled for about a minute.&#8221;</p>
<p><img src="http://www.deadlybloodyserious.com/wp-content/uploads/2008/01/wirelessnetworkappearscompromised.png" width="480" height="213" alt="The wireless network appears to have been compromised..." /></p>
<p>A poke around the Internet doesn&#8217;t show much other than other people complaining about the same problem. Some find the only way to solve the problem is to disable WPA. I&#8217;m not so sure that&#8217;s a smart idea. I hope there&#8217;s a fix for this in 10.5.2.</p>
<p>[If you're getting this on what you think is a Django-only feed, it's because the community feed administrators haven't yet updated their subscription to point to my Django posts only. Sorry about that.]</p>
<div class="posttagsblock"><a href="http://technorati.com/tag/macosx" rel="tag">macosx</a>, <a href="http://technorati.com/tag/security" rel="tag">security</a>, <a href="http://technorati.com/tag/wireless" rel="tag">wireless</a></div>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2008/01/wireless-network-appears-compromised/">Wireless network &#8220;appears compromised&#8221;</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=xGDe-xR-s_s:QBrUyTkIdDQ:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=2mJPEYqXBVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=xGDe-xR-s_s:QBrUyTkIdDQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=xGDe-xR-s_s:QBrUyTkIdDQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=xGDe-xR-s_s:QBrUyTkIdDQ:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2008/01/wireless-network-appears-compromised/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2008/01/wireless-network-appears-compromised/</feedburner:origLink></item>
		<item>
		<title>Zephyr’s sense of humour, age 2.5</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/eKodDoG0fAE/</link>
		<comments>http://www.deadlybloodyserious.com/2007/10/zephyr-humour/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 21:34:41 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[kids]]></category>
		<category><![CDATA[quote]]></category>
		<category><![CDATA[zephyr]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/2007/10/zephyr-humour/</guid>
		<description>Zephyr, this morning: Zephyr big boy. Daddy big boy. Mummy big girl. Willow big chicken pox. This is a post from Deadly Bloody Serious. Zephyr&amp;#8217;s sense of humour, age 2.5&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2007/10/zephyr-humour/"&gt;Zephyr&amp;#8217;s sense of humour, age 2.5&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p>Zephyr, this morning: </p>
<blockquote><p>Zephyr big boy. Daddy big boy. Mummy big girl. Willow big chicken pox.</p>
</blockquote>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2007/10/zephyr-humour/">Zephyr&#8217;s sense of humour, age 2.5</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=eKodDoG0fAE:q1AHpQoOBHY:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=2mJPEYqXBVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=eKodDoG0fAE:q1AHpQoOBHY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=eKodDoG0fAE:q1AHpQoOBHY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=eKodDoG0fAE:q1AHpQoOBHY:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2007/10/zephyr-humour/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2007/10/zephyr-humour/</feedburner:origLink></item>
		<item>
		<title>QuickPost WordPress Plugin – Version .4 is now available</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/Ggs5-RDfN8I/</link>
		<comments>http://www.deadlybloodyserious.com/2007/10/quickpost-wordpress-plugin-version-4-is-now-available/#comments</comments>
		<pubDate>Wed, 03 Oct 2007 12:03:00 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[quickpost]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/2007/10/quickpost-wordpress-plugin-version-4-is-now-available/</guid>
		<description>QuickPost WordPress Plugin &amp;#8211; Version .4 is now available So far, so good, except for the database error (wp_categories doesn&amp;#39;t exist) under WordPress 2.3&amp;#8230; This is a post from Deadly Bloody Serious. QuickPost WordPress Plugin &amp;#8211; Version .4 is now available&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2007/10/quickpost-wordpress-plugin-version-4-is-now-available/"&gt;QuickPost WordPress Plugin &amp;#8211; Version .4 is now available&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://blog.twelvehorses.com/blog/quickpost-wordpress-plugin-version-4-is-now-available/#comments">QuickPost WordPress Plugin &#8211; Version .4 is now available </a></p>
<p>So far, so good, except for the database error (wp_categories doesn&#39;t exist) under WordPress 2.3&#8230; </p>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2007/10/quickpost-wordpress-plugin-version-4-is-now-available/">QuickPost WordPress Plugin &#8211; Version .4 is now available</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=Ggs5-RDfN8I:0f2PAM7Euxk:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=2mJPEYqXBVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=Ggs5-RDfN8I:0f2PAM7Euxk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=Ggs5-RDfN8I:0f2PAM7Euxk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=Ggs5-RDfN8I:0f2PAM7Euxk:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2007/10/quickpost-wordpress-plugin-version-4-is-now-available/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2007/10/quickpost-wordpress-plugin-version-4-is-now-available/</feedburner:origLink></item>
		<item>
		<title>Admiral Sir Reginald Aylmer Ranfurly Plunkett-Ernle-Erle-Drax</title>
		<link>http://feedproxy.google.com/~r/DeadlyBloodySerious/~3/qrxx2xwOL2E/</link>
		<comments>http://www.deadlybloodyserious.com/2007/09/admiral-sir-reginald-aylmer-ranfurly-plunkett-ernle-erle-drax/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 21:31:52 +0000</pubDate>
		<dc:creator>garth</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://www.deadlybloodyserious.com/2007/09/admiral-sir-reginald-aylmer-ranfurly-plunkett-ernle-erle-drax/</guid>
		<description>Yep. Quadruple-barrelled. I always wondered what&amp;#39;d happen if one double-barrelled person married another double-barrelled person. Reg Drax here seems to be Exhibit A.&amp;#160; Our kids are double-barrelled. To save them from Reg&amp;#39; fate, we carefuly chose their middle names so they could ditch the two surnames entirely if necessary.&amp;#160; Thanks, Merlin!&amp;#160; This is a post [...]&lt;p&gt;This is a post from &lt;a href="http://www.deadlybloodyserious.com"&gt;Deadly Bloody Serious&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;&lt;a href="http://www.deadlybloodyserious.com/2007/09/admiral-sir-reginald-aylmer-ranfurly-plunkett-ernle-erle-drax/"&gt;Admiral Sir Reginald Aylmer Ranfurly Plunkett-Ernle-Erle-Drax&lt;/a&gt;&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://www.kungfugrippe.com/post/10554533">Yep. Quadruple-barrelled.</a></p>
<p>I always wondered what&#39;d happen if one double-barrelled person married another double-barrelled person. Reg Drax here seems to be Exhibit A.&nbsp; </p>
<p>Our kids are double-barrelled. To save them from Reg&#39; fate, we carefuly chose their middle names so they could ditch the two surnames entirely if necessary.&nbsp; </p>
<p>Thanks, Merlin!&nbsp;</p>
<p>This is a post from <a href="http://www.deadlybloodyserious.com">Deadly Bloody Serious</a>. <br/><br/><a href="http://www.deadlybloodyserious.com/2007/09/admiral-sir-reginald-aylmer-ranfurly-plunkett-ernle-erle-drax/">Admiral Sir Reginald Aylmer Ranfurly Plunkett-Ernle-Erle-Drax</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=qrxx2xwOL2E:r5QYjq8QyKg:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=2mJPEYqXBVI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=qrxx2xwOL2E:r5QYjq8QyKg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?a=qrxx2xwOL2E:r5QYjq8QyKg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/DeadlyBloodySerious?i=qrxx2xwOL2E:r5QYjq8QyKg:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.deadlybloodyserious.com/2007/09/admiral-sir-reginald-aylmer-ranfurly-plunkett-ernle-erle-drax/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.deadlybloodyserious.com/2007/09/admiral-sir-reginald-aylmer-ranfurly-plunkett-ernle-erle-drax/</feedburner:origLink></item>
	</channel>
</rss>
