<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2titles.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemtitles.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:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>canspice.org</title>
	
	<link>http://www.canspice.org</link>
	<description>all about a canadian guy living in canada</description>
	<lastBuildDate>Mon, 22 Feb 2010 10:00:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CanSpice" /><feedburner:info uri="canspice" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>19.713562</geo:lat><geo:long>-155.098428</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><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>Weekly Tweet Digest for 2010-02-22</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/Pu_UgmrrOgQ/</link>
		<comments>http://www.canspice.org/2010/02/22/weekly-tweet-digest-for-2010-02-22/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 10:00:00 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Tweets]]></category>

		<guid isPermaLink="false">http://www.canspice.org/2010/02/22/weekly-tweet-digest-for-2010-02-22/</guid>
		<description>This morning is one of those mornings that&amp;#39;s easily fixed with an XL coffee from Tim&amp;#39;s. #
Sure, this Perl code only implements 2/3rds of the FORTRAN, but it shouldn&amp;#39;t be six times faster. I think I&amp;#39;ve missed something. #
It&amp;#39;s like Russia has a perpetual power play. #
Go NYTProf go! #
Oh man I&amp;#39;m totally hitting Viti [...]</description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>This morning is one of those mornings that&#39;s easily fixed with an XL coffee from Tim&#39;s. <a href="http://twitter.com/CanSpice/statuses/9149293506" class="aktt_tweet_time">#</a></li>
<li>Sure, this Perl code only implements 2/3rds of the FORTRAN, but it shouldn&#39;t be six times faster. I think I&#39;ve missed something. <a href="http://twitter.com/CanSpice/statuses/9154543383" class="aktt_tweet_time">#</a></li>
<li>It&#39;s like Russia has a perpetual power play. <a href="http://twitter.com/CanSpice/statuses/9223590399" class="aktt_tweet_time">#</a></li>
<li>Go NYTProf go! <a href="http://twitter.com/CanSpice/statuses/9252919980" class="aktt_tweet_time">#</a></li>
<li>Oh man I&#39;m totally hitting Viti Wine and Lagers after work. Gotta get some good local beer! 350+ handcrafted locals &amp; imports! <a href="http://twitter.com/CanSpice/statuses/9259398106" class="aktt_tweet_time">#</a></li>
<li>Big flag: <a href="http://twitpic.com/13useo" rel="nofollow">http://twitpic.com/13useo</a> <a href="http://twitter.com/CanSpice/statuses/9260708259" class="aktt_tweet_time">#</a></li>
<li>Slowest. SkyTrain. Ever. <a href="http://twitter.com/CanSpice/statuses/9261977641" class="aktt_tweet_time">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/-WETb0oFUebeBLS9ARmkBk6yNR4/0/da"><img src="http://feedads.g.doubleclick.net/~a/-WETb0oFUebeBLS9ARmkBk6yNR4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-WETb0oFUebeBLS9ARmkBk6yNR4/1/da"><img src="http://feedads.g.doubleclick.net/~a/-WETb0oFUebeBLS9ARmkBk6yNR4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=Pu_UgmrrOgQ:36cnB-ygOpQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=Pu_UgmrrOgQ:36cnB-ygOpQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=Pu_UgmrrOgQ:36cnB-ygOpQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=Pu_UgmrrOgQ:36cnB-ygOpQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/02/22/weekly-tweet-digest-for-2010-02-22/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/02/22/weekly-tweet-digest-for-2010-02-22/</feedburner:origLink></item>
		<item>
		<title>Weekly Tweet Digest for 2010-02-15</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/ws68nh3wcS0/</link>
		<comments>http://www.canspice.org/2010/02/15/weekly-tweet-digest-for-2010-02-15/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 10:00:00 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Tweets]]></category>

		<guid isPermaLink="false">http://www.canspice.org/2010/02/15/weekly-tweet-digest-for-2010-02-15/</guid>
		<description>This should make Ken jealous: http://yfrog.com/3ni0nkj #
The commute home (1): http://yfrog.com/1dh5ymj #
The commute home (2): http://yfrog.com/1do4ylj #
The commute home (3): http://yfrog.com/1ee1mhj #
The commute home (4): http://yfrog.com/3586989144j #
The commute home (5): http://yfrog.com/3gl0aij #
Sure hope I won&amp;#39;t need my hospital ID this morning. #
Awesome that the host city of the 2010 Winter Olympics has sun and warm [...]</description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>This should make Ken jealous: <a href="http://yfrog.com/3ni0nkj" rel="nofollow">http://yfrog.com/3ni0nkj</a> <a href="http://twitter.com/CanSpice/statuses/8798051230" class="aktt_tweet_time">#</a></li>
<li>The commute home (1): <a href="http://yfrog.com/1dh5ymj" rel="nofollow">http://yfrog.com/1dh5ymj</a> <a href="http://twitter.com/CanSpice/statuses/8833357072" class="aktt_tweet_time">#</a></li>
<li>The commute home (2): <a href="http://yfrog.com/1do4ylj" rel="nofollow">http://yfrog.com/1do4ylj</a> <a href="http://twitter.com/CanSpice/statuses/8833429010" class="aktt_tweet_time">#</a></li>
<li>The commute home (3): <a href="http://yfrog.com/1ee1mhj" rel="nofollow">http://yfrog.com/1ee1mhj</a> <a href="http://twitter.com/CanSpice/statuses/8833658305" class="aktt_tweet_time">#</a></li>
<li>The commute home (4): <a href="http://yfrog.com/3586989144j" rel="nofollow">http://yfrog.com/3586989144j</a> <a href="http://twitter.com/CanSpice/statuses/8834033031" class="aktt_tweet_time">#</a></li>
<li>The commute home (5): <a href="http://yfrog.com/3gl0aij" rel="nofollow">http://yfrog.com/3gl0aij</a> <a href="http://twitter.com/CanSpice/statuses/8835154984" class="aktt_tweet_time">#</a></li>
<li>Sure hope I won&#39;t need my hospital ID this morning. <a href="http://twitter.com/CanSpice/statuses/8861798543" class="aktt_tweet_time">#</a></li>
<li>Awesome that the host city of the 2010 Winter Olympics has sun and warm temps while the rest of the continent is covered with snow. <a href="http://twitter.com/CanSpice/statuses/8867959130" class="aktt_tweet_time">#</a></li>
<li>Where can I get a cheap HDMI cable in Vancouver? <a href="http://twitter.com/CanSpice/statuses/8874465950" class="aktt_tweet_time">#</a></li>
<li>To all those offering HDMI cable suggestions: thanks! Luckily I don&#39;t need to buy one as there&#39;ll be one in the PVR/DVR box. <a href="http://twitter.com/CanSpice/statuses/8877980081" class="aktt_tweet_time">#</a></li>
<li>Blast from the past: Just found a floppy disk with v1.6 ISCA client on it. <a href="http://twitter.com/CanSpice/statuses/8889379548" class="aktt_tweet_time">#</a></li>
<li>Shocking, a ticket check on the SkyTrain. <a href="http://twitter.com/CanSpice/statuses/8907275119" class="aktt_tweet_time">#</a></li>
<li>git installed, now it&#39;s time to figure out this FORTRAN code. <a href="http://twitter.com/CanSpice/statuses/8911692788" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/domesticat" class="aktt_username">domesticat</a> Temperature-sensitive glass tiles. Ooo shiny. <a href="http://ping.fm/2GZck" rel="nofollow">http://ping.fm/2GZck</a> <a href="http://twitter.com/CanSpice/statuses/8915415533" class="aktt_tweet_time">#</a></li>
<li>Yummy stir-fry! <a href="http://twitpic.com/12ipib" rel="nofollow">http://twitpic.com/12ipib</a> <a href="http://twitter.com/CanSpice/statuses/8945305659" class="aktt_tweet_time">#</a></li>
<li>I&#39;ve got my fingers crossed! <a href="http://twitter.com/CanSpice/statuses/8969165217" class="aktt_tweet_time">#</a></li>
<li>Fuck you Google Maps for not understanding that 14th Street isn&#39;t the same as Fourteenth Street. <a href="http://twitter.com/CanSpice/statuses/8971359209" class="aktt_tweet_time">#</a></li>
<li>Fuck you Google Maps for thinking that 14th Street isn&#39;t the same as Fourteenth Street. <a href="http://twitter.com/CanSpice/statuses/8971568133" class="aktt_tweet_time">#</a></li>
<li>Yay! <a href="http://twitter.com/CanSpice/statuses/8989434012" class="aktt_tweet_time">#</a></li>
<li>Delivery Indian. I love living in a proper city. <a href="http://twitter.com/CanSpice/statuses/8991559870" class="aktt_tweet_time">#</a></li>
<li>The morning commute (1): <a href="http://twitpic.com/12s96w" rel="nofollow">http://twitpic.com/12s96w</a> <a href="http://twitter.com/CanSpice/statuses/9013301260" class="aktt_tweet_time">#</a></li>
<li>I wonder how long I&#39;m going to get stuck in Olympic torch relay shenanigans for. <a href="http://twitter.com/CanSpice/statuses/9014420006" class="aktt_tweet_time">#</a></li>
<li>I saw the Olympic torch! <a href="http://twitter.com/CanSpice/statuses/9015699552" class="aktt_tweet_time">#</a></li>
<li>Olympic torch crowd pics fron Robson &amp; Burrard: <a href="http://twitpic.com/12sn05" rel="nofollow">http://twitpic.com/12sn05</a> <a href="http://twitpic.com/12sn2w" rel="nofollow">http://twitpic.com/12sn2w</a> <a href="http://twitter.com/CanSpice/statuses/9016107986" class="aktt_tweet_time">#</a></li>
<li>Sorry, no torch pics. I took some with my proper camera and not my iPhone and don&#39;t yet have a computer to dump them on. <a href="http://twitter.com/CanSpice/statuses/9018240462" class="aktt_tweet_time">#</a></li>
<li>Time to brave the Olympic crowds! <a href="http://twitter.com/CanSpice/statuses/9033209406" class="aktt_tweet_time">#</a></li>
<li>Hooray for lipsyncing! #<a href="http://search.twitter.com/search?q=%23olympics" class="aktt_hashtag">olympics</a> <a href="http://twitter.com/CanSpice/statuses/9039566114" class="aktt_tweet_time">#</a></li>
<li>I didn&#39;t know Canada was known for its punk Scottish tapdancing. #<a href="http://search.twitter.com/search?q=%23olympics" class="aktt_hashtag">olympics</a> <a href="http://twitter.com/CanSpice/statuses/9040682066" class="aktt_tweet_time">#</a></li>
<li>This has Official 2010 Winter Olympics CD written all over it. <a href="http://twitter.com/CanSpice/statuses/9042382496" class="aktt_tweet_time">#</a></li>
<li>FUCK YES JACQUES 1997 WORLD CHAMPION VILLENEUVE! <a href="http://twitter.com/CanSpice/statuses/9042519604" class="aktt_tweet_time">#</a></li>
<li>Why is there so much singing at the Olympic Opening Ceremonies? Ugh. <a href="http://twitter.com/CanSpice/statuses/9042901672" class="aktt_tweet_time">#</a></li>
<li>When does Rick Hansen get to sing? <a href="http://twitter.com/CanSpice/statuses/9043038674" class="aktt_tweet_time">#</a></li>
<li>Is this supposed to be a commercial break? <a href="http://twitter.com/CanSpice/statuses/9043185266" class="aktt_tweet_time">#</a></li>
<li>Olympic Opening Ceremonies were underwhelming. Best part was when the fourth phallus couldn&#39;t get it up. <a href="http://twitter.com/CanSpice/statuses/9044012813" class="aktt_tweet_time">#</a></li>
<li>Hooray for getting stuck on Highway 99. <a href="http://twitter.com/CanSpice/statuses/9088057931" class="aktt_tweet_time">#</a></li>
<li>One hell of an accident on Highway 99. Both north and south blocked. They&#39;re turning everybody around. Super. <a href="http://twitter.com/CanSpice/statuses/9088565928" class="aktt_tweet_time">#</a></li>
<li>Shopping au FCUK. @<a href="http://twitter.com/alphex" class="aktt_username">alphex</a> would be so proud. <a href="http://twitter.com/CanSpice/statuses/9108674993" class="aktt_tweet_time">#</a></li>
<li>SkyTrain! <a href="http://twitpic.com/139k09" rel="nofollow">http://twitpic.com/139k09</a> <a href="http://twitter.com/CanSpice/statuses/9110674448" class="aktt_tweet_time">#</a></li>
<li>Pairs short tonight! <a href="http://twitter.com/CanSpice/statuses/9112370448" class="aktt_tweet_time">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/7y0tt5KC2yESxLPN4xQizZHTPKE/0/da"><img src="http://feedads.g.doubleclick.net/~a/7y0tt5KC2yESxLPN4xQizZHTPKE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7y0tt5KC2yESxLPN4xQizZHTPKE/1/da"><img src="http://feedads.g.doubleclick.net/~a/7y0tt5KC2yESxLPN4xQizZHTPKE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=ws68nh3wcS0:7qXdNmkgEDk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=ws68nh3wcS0:7qXdNmkgEDk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=ws68nh3wcS0:7qXdNmkgEDk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=ws68nh3wcS0:7qXdNmkgEDk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/02/15/weekly-tweet-digest-for-2010-02-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/02/15/weekly-tweet-digest-for-2010-02-15/</feedburner:origLink></item>
		<item>
		<title>A drastic lack of updates</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/15VJoFa6Y20/</link>
		<comments>http://www.canspice.org/2010/02/10/a-drastic-lack-of-updates/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 18:18:22 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Personal Updates]]></category>

		<guid isPermaLink="false">http://www.canspice.org/2010/02/10/a-drastic-lack-of-updates/</guid>
		<description>Our computer is currently somewhere between Hilo and Vancouver, and I&amp;#8217;ll be damned if I&amp;#8217;m going to type out long posts using my iPhone, so if you&amp;#8217;ve got a real hankering for updates on what I&amp;#8217;m up to, I suggest you follow me on Twitter.</description>
			<content:encoded><![CDATA[<p>Our computer is currently somewhere between Hilo and Vancouver, and I&#8217;ll be damned if I&#8217;m going to type out long posts using my iPhone, so if you&#8217;ve got a real hankering for updates on what I&#8217;m up to, I suggest you <a HREF="http://twitter.com/canspice">follow me on Twitter</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/zaAjcIDuW2_5xw93gqhw9EECB9Q/0/da"><img src="http://feedads.g.doubleclick.net/~a/zaAjcIDuW2_5xw93gqhw9EECB9Q/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zaAjcIDuW2_5xw93gqhw9EECB9Q/1/da"><img src="http://feedads.g.doubleclick.net/~a/zaAjcIDuW2_5xw93gqhw9EECB9Q/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=15VJoFa6Y20:9fhuWtaOt0g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=15VJoFa6Y20:9fhuWtaOt0g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=15VJoFa6Y20:9fhuWtaOt0g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=15VJoFa6Y20:9fhuWtaOt0g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/02/10/a-drastic-lack-of-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/02/10/a-drastic-lack-of-updates/</feedburner:origLink></item>
		<item>
		<title>Weekly Tweet Digest for 2010-02-08</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/7sS7kuGersQ/</link>
		<comments>http://www.canspice.org/2010/02/08/weekly-tweet-digest-for-2010-02-08/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 10:00:00 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Tweets]]></category>

		<guid isPermaLink="false">http://www.canspice.org/2010/02/08/weekly-tweet-digest-for-2010-02-08/</guid>
		<description>HELLO TWITTER STOP HOW ARE YOU TONIGHT OVER #
Glad I won&amp;#39;t have to deal with U-Haul again for a very long time. #
Holy shit Google Maps on the iPhone is awesome. I know, I know,welcome to 2008, Brad. #
Elizabeth all decked out for Ikea shopping. http://yfrog.com/4fxdjsj #
And another two boxes of crap bite the dust. [...]</description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>HELLO TWITTER STOP HOW ARE YOU TONIGHT OVER <a href="http://twitter.com/CanSpice/statuses/8706181428" class="aktt_tweet_time">#</a></li>
<li>Glad I won&#39;t have to deal with U-Haul again for a very long time. <a href="http://twitter.com/CanSpice/statuses/8745184042" class="aktt_tweet_time">#</a></li>
<li>Holy shit Google Maps on the iPhone is awesome. I know, I know,welcome to 2008, Brad. <a href="http://twitter.com/CanSpice/statuses/8745635500" class="aktt_tweet_time">#</a></li>
<li>Elizabeth all decked out for Ikea shopping. <a href="http://yfrog.com/4fxdjsj" rel="nofollow">http://yfrog.com/4fxdjsj</a> <a href="http://twitter.com/CanSpice/statuses/8773079795" class="aktt_tweet_time">#</a></li>
<li>And another two boxes of crap bite the dust. Someone remind me why I kept all this? <a href="http://twitter.com/CanSpice/statuses/8782318183" class="aktt_tweet_time">#</a></li>
<li>The remainder of the aforementioned boxes of crap. <a href="http://yfrog.com/33z7mcj" rel="nofollow">http://yfrog.com/33z7mcj</a> <a href="http://twitter.com/CanSpice/statuses/8783833454" class="aktt_tweet_time">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/xun0USdDGJanITaxi_KoQWLA2e0/0/da"><img src="http://feedads.g.doubleclick.net/~a/xun0USdDGJanITaxi_KoQWLA2e0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/xun0USdDGJanITaxi_KoQWLA2e0/1/da"><img src="http://feedads.g.doubleclick.net/~a/xun0USdDGJanITaxi_KoQWLA2e0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=7sS7kuGersQ:NH2BRVP_EvY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=7sS7kuGersQ:NH2BRVP_EvY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=7sS7kuGersQ:NH2BRVP_EvY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=7sS7kuGersQ:NH2BRVP_EvY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/02/08/weekly-tweet-digest-for-2010-02-08/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/02/08/weekly-tweet-digest-for-2010-02-08/</feedburner:origLink></item>
		<item>
		<title>Weekly Tweet Digest for 2010-01-25</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/G6_bMt8qTXA/</link>
		<comments>http://www.canspice.org/2010/01/25/weekly-tweet-digest-for-2010-01-25/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 10:00:00 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Tweets]]></category>

		<guid isPermaLink="false">http://www.canspice.org/2010/01/25/weekly-tweet-digest-for-2010-01-25/</guid>
		<description>It feels so much later than 4:30. #
I wonder what the percentage is of emails containing the text &amp;#34;the document is attached&amp;#34; with no document attached. #
Have you seen Bat Boy? #
Why is it I can think up all kinds of things I need to get done at 4am but not at 4pm? #
Guess who [...]</description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>It feels so much later than 4:30. <a href="http://twitter.com/CanSpice/statuses/7970508269" class="aktt_tweet_time">#</a></li>
<li>I wonder what the percentage is of emails containing the text &quot;the document is attached&quot; with no document attached. <a href="http://twitter.com/CanSpice/statuses/8010875999" class="aktt_tweet_time">#</a></li>
<li>Have you seen Bat Boy? <a href="http://twitter.com/CanSpice/statuses/8019082066" class="aktt_tweet_time">#</a></li>
<li>Why is it I can think up all kinds of things I need to get done at 4am but not at 4pm? <a href="http://twitter.com/CanSpice/statuses/8050689993" class="aktt_tweet_time">#</a></li>
<li>Guess who just pulled the trigger on two (count &#39;em two!) iPhone 3GSs?
<p>This guy! <a href="http://twitter.com/CanSpice/statuses/8060546138" class="aktt_tweet_time">#</a></li>
<li>Today is my last day of work at the Joint Astronomy Centre. :-( <a href="http://twitter.com/CanSpice/statuses/8090629628" class="aktt_tweet_time">#</a></li>
<li>Goodbye JAC! <a href="http://twitter.com/CanSpice/statuses/8095889825" class="aktt_tweet_time">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/SMhcDMgUzS_0wPK8L3NrddBTEnA/0/da"><img src="http://feedads.g.doubleclick.net/~a/SMhcDMgUzS_0wPK8L3NrddBTEnA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/SMhcDMgUzS_0wPK8L3NrddBTEnA/1/da"><img src="http://feedads.g.doubleclick.net/~a/SMhcDMgUzS_0wPK8L3NrddBTEnA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=G6_bMt8qTXA:PCN2hyrWDaM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=G6_bMt8qTXA:PCN2hyrWDaM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=G6_bMt8qTXA:PCN2hyrWDaM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=G6_bMt8qTXA:PCN2hyrWDaM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/01/25/weekly-tweet-digest-for-2010-01-25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/01/25/weekly-tweet-digest-for-2010-01-25/</feedburner:origLink></item>
		<item>
		<title>YAPC 10 Notes</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/M6nLFUDJ8Ro/</link>
		<comments>http://www.canspice.org/2010/01/22/yapc-10-notes/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 00:01:40 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[YAPC 10]]></category>

		<guid isPermaLink="false">http://www.canspice.org/?p=1357</guid>
		<description>Back in June I went to Yet Another Perl Conference 10 in Pittsburgh. I took notes at the time but never put them up here. Well, it turns out that I have to give back my work laptop and since I don&amp;#8217;t want to lose the notes, here they are in one giant lump.
*** YAPC [...]</description>
			<content:encoded><![CDATA[<p>Back in June I went to <a href="http://yapc10.org/yn2009/">Yet Another Perl Conference 10</a> in Pittsburgh. I took notes at the time but never put them up here. Well, it turns out that I have to give back my work laptop and since I don&#8217;t want to lose the notes, here they are in one giant lump.</p>
<pre>*** YAPC 10: Opening Address

protip: when going to a different country, take your passport

some story about flying for the first time (turboprop)

*** YAPC 10: Richard Dice, president of the perl foundation

A Year In Perl: Update since last YAPC::Chicago

tpf's mission is to support the perl technology and community
tricky to know how to do that sometimes, lots of different voices in the community (and in tpf)
tpf does events (yapc::na, hackathons, workshops)
tpf does grants, community legal work (managing IP, handling lawsuits)

finances and donations:
 - hague donation: $200k (100k for perl6, 100k for tpf internals)
 - general donations: $70k (ad optimers llc 25k, anonymous 25k, all others 20k)
 - booking.com: $50k

 grants:
  - 5.10.1 release grant $5k to david mitchell
  - 5.8.9 grant help to Nick Clark
  - hague grants for perl 6 implementation efforts
   - increase # of p6 implementation devs
   - increase productivity of devs
   - increase amount of time that devs can dedicate to p6 imp. efforts
  - daniel ruoso, SMOP, hague grant
  - patrick michaud, rakudo perl development, hague grant
  - jerry gay, s19 command line syntax, hague grant
  - jonathan worthington, traits (s12 &#038; s14)

 parrot was spun off from tpf in march 2009

 vienna.pm hosted yapc::eu::2007, surplus frm that (about 25k euro) goes to jonathan and patrick

 tpf is all-volunteer, time-constrained
 hague grant goes towards tpf work (possibly full-time work for richard) details in next few days

 grants committee reviews and ranks grant proposals on a quarterly cycle
 5 grants in 2008q2 q3, 2 in q4 2009q1, 1 in 2009q2

 google summer of code
  - annual grants to university students
  - nine projects this year (five last year)

 perl at large
  - perl5 uses git for version control
  - strawberry perl for windows
  - "perl iron man"
  - japan perl associatin
  - enlightened perl organisation
  - modern perl books, a modern perl blog
  - moose
  - padre ide
  - november wiki

 perl events
  - oscon july 2008
  - pittsburgh perl workshop oct 2008
  - perl oasis orlando january 2009
  - frozen perl workshop minneapolis feb 2009
  - yapc:na june 2009
  - six in CIS, 3 in asia, one in australia, one in brazil
  - 11 workshops &#038; hackathons in europe

*** YAPC 10: Larry Wall

Larry liked old error messages, like UNIBUS TIMEOUT FATAL TRAP

would you get on an airplane if you knew the avionics were written in perl?

paranoia is necessary for modern life.

perl5 is very powerful and very extensible. perl6 is very very powerful and very very extensible. do not trust perl6.
perl6 is very chatty for syntax errors

Larry just went through error messages in perl6

*** YAPC 10: Jerry Gay, The Parrot Foundation

Why should I care about Parrot? many languages can be run on the parrot vm

*** YAPC 10: Yaakov

What is YAPC? Go meet people

** YAPC 10: Michael Schwern - Trapped In A Room With Schwern

schwern isn't a linear thinker, so this talk might meander

what do we want schwern to talk about? two-part question: what are you working on next year? what do you not want to work on next year?

second answer first: PHP first answer second: he wants to be the redhat of cpan

wants to take the 5000 modules and 2000 programmers and have one front-end. you want things to just work, you don't know what you're going to get tomorrow. love to do this as a commercial package

he's very tempted to declare make::maker done, go use module::build

good things about php: the thing php does right is you can take it out of the box and it works. don't need to install modules, compile things in, etc., it's all there. it has an OO system, not perfect, but it works. 

bad things about php: 75 built-in functions to deal with arrays. 13 different sort functions. 

perl 5+i. your perl ends up with a whole bunch of 'use module' lines at the top of your program. this is "tribal knowledge", where you have to go and hunt to find it. you'd rather do "use perl5i". this exists on CPAN now, but you can do things like:

  use perl5i;

  say "Hello";
  say gmtime->year;
  say $hash->perl;
  open my $fh, "<", "asdfadsf"; # autodie
  $hash->keys->sort->join("\n")->say; # autoboxing

These become methods on a scalar object, array object, etc. thus they don't pollute the global namespace. http://github.com/schwern/perl5i

agile dating: schwern is polyamorous. like poly, nobody's doing agile programming right. agile == polyamorous. when you say you're poly or agile, it doesn't really mean anything. 

you don't know what you don't know, so it's important to go out and discover new things.

*** YAPC 10: David Fetter - You can do THAT without Perl?!?

looks like this talk is SQL-oriented.

lists: windowing functions. let you access the set of rows from the current row. new windowing functions. 

I thought this was a Perl conference.

Oh man I completely messed up, I thought he title was "you can do that with perl" and not "without". Whoops.

there is some interesting stuff here (recursion in SQL)

jesus christ he just made SQL create a mandelbrot set fractal graphic

fetter.org will have the talk (so will pgexperts.com)

*** YAPC 10: second half-ish of "Git Is Easy" by Ricardo Signes

how much to commit at once? git is really really fast, so you feel free to commit a lot more. this helps make each commit "one thing". you can squash commits together, if you want to. You can rebase interactively which can split or combine commits (oh wow)

bisect to find bugs. someone reports a regression (something worked before and it doesn't now). you don't really know when it started happening, but you have a failing test. git can find the bad commit for you by using bisect.

 git bisect start
 git bisect bad
 git bisect good 1.234

*** YAPC 10: Mike Schilli - Moving CPAN module projects to github.com

github is not a cpan replacement, it's more like sourceforge. there's a low barrier to contribute.

create a new repository. give them your public key. boom, a new project.

how do you name your project? libwww-perl, log4perl, p5-Net-Amazon, perl-ldap are all examples of names of projects on github. no naming convention, so go with whatever you want.

every time someone wants to contribute to your project, they click the 'fork' button. kind of like branching. the other person then gets write access to his forked version. he can then send you a pull request to get his patch into your master repository.

when you tag on github it creates a tarball, which you can tell PAUSE about and upload to make a new release

*** YAPC 10: Barbie - Stats of CPAN

7477 CPAN authors registered with PAUSE
4460 who've uploaded distributions to CPAN
~450 authors uploaded to cpan last month, up from ~125 in jan 2000
~40 authors uploaded their first distribution last month (stayed steady from ~jan 2001)
18085 distributions on cpan
55409 distro versions
20304 distros on cpan and backpan
112037 distro version on cpan and backpan
4054659 testers reports
16 perl versions and 57 platforms tested during may 2009

further reading: CPAN testers statistics and CPAN leaderboard websites

*** YAPC 10: Hans Dieter Pearcey - Dist::Zilla - Automating Quality Since 2008

everything you use has the installer and distribution packager being the same thing (make install and make dist). what happens if we untangle them? use Dist::Zilla, you don't need to put all the boilerplate POD in, just create a dist.ini that has the relevant information in it and it'll add all that when you make your distribution

*** YAPC 10: CLI apps don't have to suck, by Christopher Nehren

lots of wheel reinvention in CLI apps (tons of modules related to parsing command-line options, for example)

getopt modules are (for the most part) fairly simple, but like any system, software tends towards compleity. this means that simple tools don't do the job anymore, and things don't scale well sometimes. (woah, he used git as an example of something that has a good command-line interface)

cli apps are critical, so make them testable. functionality can get reused, so make them modular. 

App::Cmd

demo of code which I'm not going to write down

there's also App::Cmd::Simple

*** YAPC 10: Take Advantage of Modern Perl, by chromatic

if you're happy with perl as it was in 1999, this tlak is not for you. ditto if you want to see code.

modern perl is a name chromatic has put on a concept for perl circa 2009. perl is a good language, has a great community, cpan is a shining gem. 

drawbacks of perl:
 - perl5 is seen as an upgrade path for perl6
 - we have a huge legacy code problem, not just legacy code, but truly awful legacy code
 - external support is pretty awful
 - there's a lot of uncertainty in the perl development process

the modern perl plan: want to ameliorate the problem of legacy code. want to replace bad examples and tutorials with good ones. promote sustainable development practices. advocate an improved language and ecosystem. want us to make many different mistakes with perl6 (understand and do not duplicate the mistakes in perl5)

there are a lot of other people thinking the same thing: perl initiative, tpf, strawberry &#038; chocolate perl

governing principle of modernity: identify what's painful in a language and ecosystem. ask ourselves how to make the pain go away. the best way to provide modern perl is to provide saner, less prickly defaults

how to advocate modern perl: experiment with new techniques and ideas, help the community to converge on good defaults that make sense, "I don't know how to misuse this, I only know how to use it right". regularly refactor the code you maintain

how to develop modern perl: document your experiments and experiences, reuse and extract foundational techniques, identify common ground that we can take and reuse. 

how to experiment with modern perl: just go use it, you have chromatic's permission

new features you need: modern perl is 5.10 and 5.10.1: given/when are his favourite features. use the switch statement, not the Switch module. say is the most useful addition. defined-or is nice too. named captures are "very very nice" -- you avoid the gropuing parentheses problem and they make things more readable.

some extrenal modules you should consider using: SUPER, UNIVERSAL::ref (ref() is broken), perl5 is not y2038 compliant so use Time::y2038, CLASS, autobox (not everything is an object, but autobox can make things objects automatically: 'hello world'->ucfirst->say), Moose, Method::Signatures, Exception::Class, Modern::Perl (chromatic believes it's provocative), use roles with Mmoose (google the-whi-of-perl-roles on modernperlbooks.com), Module::Build (ExtUtils::MakeMaker is a horrifying mess its maintainer put on life support /years/ ago, but it will not die), autodie (will be in core in 5.10.1), Devel::Declare, MooseX::Declare (if you use Moose), Devel::NYTProf, Perl::Critic, 

what's missing in modern perl? no good way to say "I want to install Catalyst". no good way to do GUI programming. a non-lovecraftian xs replacement (no-one in this world should write XS). make taint less all-or-nothing.

towards a modern future: perl5i, modern perl: the book

*** YAPC 10: To Moose or Not To Moose, by Stevan Little

reasons why and why not to use moose,where to use it and where not to use it

moose has been around for about 3 1/3 years, about 80 releases, about 2-3 patches per month (fast moving, they want you to keep up-to-date as much as possible, fast bug fixes), 60+ contributors

moose depends (directly) on 8 modules (devel::global::destruction(?) amongst them) which depend on about 21 modules. 488 CPAN modules depend on Moose, 157 different module authors use Moose on CPAN, ~180 users on #moose, over 6000 unit tests (which means you don't have to do things like test your accessor methods because Moose already does these tests itself)

the bad stuff: 0.24 seconds and ~3mb of ram do do 'perl -Moose' (that's the overheaad), basic moose use creates lots of objects (at least seven), don't use it if you have hard time requirements, don't use Mouse.

*** YAPC 10: perl5i: Perl 5 Improved, my Michael Schwern

perl5i comes out of what chromatic talked about in modern perl. whenenver you look at someone's code (someone new, not part of the community) "you should be using this feature, that feature, etc etc" and the etc etc gets really long. it's tribal knowledge -- the community knows it, but the new person doesn't, even if they read tutorials and books.

the first goal of perl5i is to take that tribal knowledge and slap it into one line: use perl5i;

"if you have to keep looking it up, it's a bad interface" -- see localtime() and struct()

turns on strict and warnings along with 5.10 features

turns time things (gmtime, localtime) so they return DateTime problems

fixes the y2038 problem

brings in Alias

turns on autodie

brings in Data::Dumper

turns on autobox

*** YAPC 10: Driving a USB Rocket Launcher from Perl in User Space‎, by Michael Schilli

USB is a pretty versatile technology (panic button, memory sticks, rocket launcher)

drivers usually only come with a windows driver, which doesn't get you very far in Linux

the kernel has a 'usb core' thing that simplifies the hardware interface. there's a thread in the kernel that does nothing but pay attention to devices being plugged and unplugged, which can notify aplications in user space

device drivers are tough to write and are highly dependent on kernel version. vendors don't want to bother with niche markets, which is why they're usually only available for windows (and sometimes macs). usbfs puts a bunch of things into the filesystem.

libusb talks to usbfs, which indirectly through the usb core talks to the usb hub

Device::USB can be used to talk to your USB device from perl.

you probably need to reverse engineer the windows driver (protocol sniffed with usbsniff, dll investigated with ida pro disassembler). control transfers for movement and firing, bulk transfers for reading status

device::usb::missilelauncher::rocketbaby

*** YAPC 10: What Haskell did to my brain, by  Yuval Kogman

*** YAPC 10: Catching a ::Std - Standardisation and best practices in the perl community‎, by Matt Trout

what is a standard? it's a word that gets used for so many things but loses its meaning (like modern or enlightened).

there's a sort of standard for pronunciation (bbc english) OED standard reference for the english language, but there's also Webster supplying another standard. dialects are interesting because you use different grammars but the same semantics. 

standards in perl? "whatever the interpreter does" is the standard. how do we check that? "whatever the tests say"

standards for writing perl? TMTOWTDI. problem

there are a number of different approaches you can take: inferred standards, invented, enforced, evolved.

inferred: UUCP is inferred. perl is effectively an inferred standard. we know basically how it's going to behave, but that's be observing what's happened in the past.

invented: TCP/IP (intelligent) IMAP (possibly one of the ugliest to implement)

enforced: some specific body has control. java JCP, SMB (whatever the most recent of windows does)

evolved: POSIX, Scheme

standards and perl6: he's a skeptic of the perl6 production implementation but is a fan of the perl6 language design process. it's enforced by the standard grammar, and it has evolved based on implmentation and use attempts. 

"best practices" means even less than "standard". "bunch of things some java guys used on some projects and didn't get fired" damian tried to invent a standard, and a lot of it was good, but Class::Std isn't apparently.

why did class::std fail? it had a bunch of good ideas, but damian ran out of tuits. but... it tried to be a revolution, but it was incompatible with the stuff that was already out there. needed everybody to move and reimplement their existing stuff to make it happen. it's also kind of unperlish.

cgi::application could have been a standard but didn't quite make it. it's kind of too little of a standard. plugins are a free-for-all and ends up being a mess. not cohesive, two different cgi apps feel completely different

maypole had a sane api but overly tight coupling with other things it thought should be standards, but class::dbi imploded and took maypole down with it (mostly)

dbix::class is kind of the common ORM now, wasn't meant to be but then people deployed from trunk, so he had to make stable releases. 

the best way to get a standard is to only call it the standard when enough people have spread it via word of mouth

enlightened perl extended core is an interesting example of people trying to do that. it's evolved from "what do the experts consider their standard toolkit?" is it the One True Way? not so much, but it's One Good Way.

*** YAPC 10: Oops! I i18n'ed Your App, by Jeffrey Goff

*** YAPC 10: Perl in the Time of Social Networks, by David Moreno

"I used to be a debian fanboy" some guy in crowd goes "yay" "...but now I use a mac because it lets me get things done quicker" haha

social networks are complex websites and online communities that bring people with common interests together to bond and connect. people love connecting. they enjoy spending time playing (mafia wars  "addictive piece of crap" ) why are they importnat to people? they are the websites that bring the human side to the internet. 

three major social networks websites: facebook, twitter, and myspace (at least in the US)

facebook: it has generated $300m in revenue, started with $500k funding. 307m users worldwide

myspace: horrible website. was worth $580m when news corporation bought it. got overtaken by facebook in april 2008. 128m users worlwide in june 2009. is myspace dying? it's lost users, but there's still a huge userbase. there's also myspace music which allows indie bands to promote themselves easily. google paid $900m to provide search.

twitter: biggest assets is the media awareness. because of that and because of celebrities (obama, ashton kutcher, oprah, shaq). nielsen ranked it as fastest-growing social network: 1382% monthly growth (that doesn't sound right). it has persistent outages, but that hasn't hurt them that much. us airways flight 1549. #iranelection.

why should you care? lots of business opportunities. easy to reach a lot of people. 

the three big ones have APIs, so use them. they're all RESTful resources. facebook has FBML and FQL. myspace has implemented most of the opensocial stuff. two different myspace dev sites: myspace apps and myspaceid (for external apps). twitter has implemented oauth.

there are a bunch of frameworks in perl, like http::engine and catalyst (or modperl if you have the patience)

there's www::myspace, but it lacks a lot because it's mostly webscraping. has nothing to do with the opensocial specification, but there's net::opensocial::client::container::myspace, but there will soon be net::myspace. 

*** YAPC 10: Perl in Vegas, by Scott Walters

all the security was put into place to crack down on organized crime that came to power during prohibition. 

** YAPC 10: Meet Melody, by Timothy Appnel

melody is a fork of movable type open source. it's available on github.org/openmelody.

there are other blogging software packages and tool that get more press, but the number of large and influential blogs running MT is quite high (the overwhelming majority) tpm, boing boing, huffington post, scienceblogs... a number of corps use it as well: intel, boeing, amex, gm. mt's dominated that realm. perl pride.

it's been around for 8 years and there's lots of good stuff in it. uses a static publishing model. very low overhead. six apart released core of mt under gpl. with melody they're taking that a step further.

what is that step further? what's going to be different? right now, not much. what they're trying to do comes down to one word: community. a community didn't rally around mt as an open source application, but now htey're trying to change that. 

501c3 being formed to protect the IP via gpl, hold contributions in a trust, support the greaty melody and mt communities.

*** YAPC 10: Perl5 Memory Manglement, by Steven Lembark

why you care: long lived, high-volume, or high-speed apps need to avoid swapping, etc

standard intro to perl's guts is perlguts, also includes perldebuguts to use debugger

perl is simple: always favours speed. as the programmer, you have to manage the space

perl's memory model is similar to C: subs have a scratchpad which is like C's stack, and a heap for permanent allocations. lexicals live in the pad but are allocated on the heap. perl's heap is expanded to meet new allocation requests, and it does not shrink

most people think of "size" as data:
 length $string;
 scalar @array;

this leaves out the structure of the variable itself, all of the wrapper stuff around the variable. devel::size uses size for the structure, total_size for everything

strings are allocated as c-style strings. they grow by being extended or re-allocated. removing characters from a string either moves the 'start of string' pointer or reduces the length counter (or both). structure doesn't shrink.

the way to get your memory back is to assign it to a new SV. mangle strings and then assign them to a new variable. there's no other way to do it other than to use lexical variables to return memory.

takeaway: strings don't shrink

arrays are similar to text. they're reduced by adding a skip count to the array and reducing the length. leads to confusino if you try to 'freee up space' by shifting data off an array

shift and pop don't do anything to the amount of memory allocated. in fact, if you 'shift' then 'pop', the resulting array is larger than the original

perl actually reallocates memory to an array in leaps -- it'll give more than necessary to avoid having to allocate each tiime you might need it, because of speed considerations

hashes are bigger than arrays. deleting keys does not reduce the structure, neither does %a=(). collision chains are arrays, so they don't shrink.

*** YAPC 10: Getting Started with Multithreaded Perl, by Walt Mankowski

why should we be interested in threads? because of moore's law. can't really buy a cpu faster than about 3ghz now, so they put more and more cpus on one chip instead. but to run faster you need to be able to use more than one cpu at a time.

the way we do this is with parallel processing: pthreads, MPI, OpenMP, Linda, Java threads, shell pipeline, fork, semaphors, shared memory, pipes, sockets, etc...

threads vs processes: in general (but not necessarily in perl) threads are lighter-weight than processes. faster to create, faster to switch. easier to share data between threads, shared data is in same memory locatin (C model). harder to debug threads: race conditions, locks, randomness

history: Threads.pm (5.005) they really sucked. perl itself wasn't designed to be re-entrant, had to make everything internally thread-safe. removed in 5.10. threads.pm (5.8) introduced in 5.8, improved in 5.10, "interpreter threads" (ithreads) one Perl interpreter for each thread.

creating threads: 

 use threads;
 my $t1 = threads->new(\&#038;tsub);
 my $t2 = threads->new(\&#038;tsub);

 $t1->join;
 $t2->join;

 sub tsub { print "I like pie\n"; }

you can have different return contexts from threads

how to tell if threads are enabled: they're not compiled into perl be default, but many distros build Perl with threads. to check: 'perl -V' and look for 'useithreads=define'. programatically you can do 'use Config; if( $Config{useithreads} ) {...}'

sharing data between threads: all variables are private by default. variables must be explicitly shared, which makes thread creation relatively expensive.

 use threads;
 use threads::shared;

 my $foo :shared; # compile time
 my $bar;
 share($bar);     # run time

scalars arrays and hashes can be shared. a shared variable can't store a reference to an unshared variable:

 my ( $foo, $bar, $baz );
 share( $foo );
 share( $bar );
 $foo = 42;     # ok
 $foo = "pony"; # ok
 $bar = $foo;   # ok
 $foo = $baz;   # ok
 $foo = \$bar;  # ok
 $foo = \$baz;  # not ok

locking: lock as minimally as possible. lock() releases the lock when the current block ends. locks are limited to scalars though...

semaphores: Thread::Semaphor. you can use these for dealing with more complex data structures.

perl threads suck: memory usage is sucky, many xs modules aren't thread-safe, core isn't designed to be thread-safe. could look into forks.pm: same syntax but uses fork() instead.

more info: perlthrtut, threads, threads::shared, Thread::Queue, Thread::Semaphor. o'reilly has Pthreads Programming. computing .llnl.gov/tutorials/pthreads openmp mpi. iTunes U, Stanford Computer Systems Colloquiums, David Patterson, "Computer Hardware Is Back"

*** YAPC 10: perl, cloud glue? by Robin Darby

(started six minutes late)

he's with amazon web services

CloudWatch: monitoring services for ec2 AMIs, loadbalancer, and autoscalinggroups. demo with really small text

Elastic LoadBalancing: oh man another demo with small text. 

sounds lke these examples are going to be on the web

http://developer.amazonwebservices.com/

http://aws.amazon.com/documentation/

AMI-27e2004e

*** YAPC 10: ‎Object oriented perl -- everything you were too embarrassed to ask, by Leonard Miller

really objects for people who haven't used objects in perl before. if you don't know what $self means. data::dumper is your friend when trying to figure out what objects are doing.

$x is the same as ${x}. @a is the same as @{a}, so you can do @{[ fn(1), fn(2), fn(3)]} and:

  print "the function returns @{[ fn(1) ]}\n";

*** YAPC 10: Data Visualization with Chart::Clicker, by Cory Watson

slides on twitter.com/gphat

make simple things simple, make hard things possible, make it all pretty, and make it possible to follow Tufte's thoughts.

*** YAPC 10: Enlightened Perl

Why is it called Enlightened Perl? enlightenment is a period of rapid change on thinking. perl has evolved and developed more as a language over time. mature CPAN, mature programmers (reusable, stable, tried to support communities) mature communities

there's nothing wrong with timtowtdi, but consistency is nice sometimes

what makes an EPO project? it's an extension of perl itself, extension of perl OO. stable, production ready. lots of testing. documentation. keeping in touch (mailing lists, irc, forums, etc). use version control.

what EPO projects are not: a toy or hobby</pre>

<p><a href="http://feedads.g.doubleclick.net/~a/hmixfgbLgKLLdSw36rpBPLKES9E/0/da"><img src="http://feedads.g.doubleclick.net/~a/hmixfgbLgKLLdSw36rpBPLKES9E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hmixfgbLgKLLdSw36rpBPLKES9E/1/da"><img src="http://feedads.g.doubleclick.net/~a/hmixfgbLgKLLdSw36rpBPLKES9E/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=M6nLFUDJ8Ro:F0Bjd0WICBs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=M6nLFUDJ8Ro:F0Bjd0WICBs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=M6nLFUDJ8Ro:F0Bjd0WICBs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=M6nLFUDJ8Ro:F0Bjd0WICBs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/01/22/yapc-10-notes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/01/22/yapc-10-notes/</feedburner:origLink></item>
		<item>
		<title>Bad Baby Names: Out With A Bang!</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/bPtVxYH-Jyk/</link>
		<comments>http://www.canspice.org/2010/01/18/bad-baby-names-out-with-a-bang/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 16:59:45 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Bad Baby Names]]></category>

		<guid isPermaLink="false">http://www.canspice.org/?p=1355</guid>
		<description>This is, sadly, my last Bad Baby Names post. I&amp;#8217;ve been doing this for nearly five years now, starting with Dicetin and Alextacy. The second week brought one of the more controversial Bad Baby Names of all time: Abcde! Five years later and Abcde&amp;#8217;s post is the second-highest viewed page on this website. It&amp;#8217;s amazing [...]</description>
			<content:encoded><![CDATA[<p>This is, sadly, my last Bad Baby Names post. I&#8217;ve been doing this for nearly five years now, starting with <a href="http://www.canspice.org/2005/03/15/bad-baby-names-of-the-week-dicetin-and-alextacy/">Dicetin and Alextacy</a>. The second week brought one of the more controversial Bad Baby Names of all time: <a href="http://www.canspice.org/2005/03/22/bad-baby-name-of-the-week/">Abcde</a>! Five years later and Abcde&#8217;s post is the second-highest viewed page on this website. It&#8217;s amazing how popular it is!</p>
<p>But let&#8217;s get to this week&#8217;s Bad Baby Names. There&#8217;s the usual assortment of Cayden, Harlee, Kayden, and Khloe. One set of parents decided to one-up all of those parents who smoosh together two names to form one, as they smooshed together three names: Victoriaannalee!</p>
<p>But the real winner this week is Dazzah-Romance Tru-Luxurie. Thank you, great parents, for letting me go out with such an awful name!</p>
<p>And thanks to all the parents of the County of Hawaii for the past five years of Bad Baby Names. You&#8217;ve brought us countless laughs and endless entertainment. You wanted your kids to be unique and memorable. Well, they are!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/zlljvZKEd73aYob1NQym_Rj5uaY/0/da"><img src="http://feedads.g.doubleclick.net/~a/zlljvZKEd73aYob1NQym_Rj5uaY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zlljvZKEd73aYob1NQym_Rj5uaY/1/da"><img src="http://feedads.g.doubleclick.net/~a/zlljvZKEd73aYob1NQym_Rj5uaY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=bPtVxYH-Jyk:i93E7GYvOcM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=bPtVxYH-Jyk:i93E7GYvOcM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=bPtVxYH-Jyk:i93E7GYvOcM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=bPtVxYH-Jyk:i93E7GYvOcM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/01/18/bad-baby-names-out-with-a-bang/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/01/18/bad-baby-names-out-with-a-bang/</feedburner:origLink></item>
		<item>
		<title>Weekly Tweet Digest for 2010-01-18</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/feh3ked-xA0/</link>
		<comments>http://www.canspice.org/2010/01/18/weekly-tweet-digest-for-2010-01-18/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 10:00:00 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Tweets]]></category>

		<guid isPermaLink="false">http://www.canspice.org/2010/01/18/weekly-tweet-digest-for-2010-01-18/</guid>
		<description>Cheesecake from Safeway is neither cheese nor cake. Discuss. #
Bah, ING dropped their interest rate again. #
Fuck Pat Robertson. #
Single quotes, double quotes, escaped quotes, they can all go to hell. #
Why am I not surprised that the province in the headline is Alberta? http://bit.ly/6EeOCR #
&amp;#34;From: Registrar of Canadian Citizenship. You will find enclosed your [...]</description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>Cheesecake from Safeway is neither cheese nor cake. Discuss. <a href="http://twitter.com/CanSpice/statuses/7661330519" class="aktt_tweet_time">#</a></li>
<li>Bah, ING dropped their interest rate again. <a href="http://twitter.com/CanSpice/statuses/7693499410" class="aktt_tweet_time">#</a></li>
<li>Fuck Pat Robertson. <a href="http://twitter.com/CanSpice/statuses/7719166989" class="aktt_tweet_time">#</a></li>
<li>Single quotes, double quotes, escaped quotes, they can all go to hell. <a href="http://twitter.com/CanSpice/statuses/7721831247" class="aktt_tweet_time">#</a></li>
<li>Why am I not surprised that the province in the headline is Alberta? <a href="http://bit.ly/6EeOCR" rel="nofollow">http://bit.ly/6EeOCR</a> <a href="http://twitter.com/CanSpice/statuses/7799771483" class="aktt_tweet_time">#</a></li>
<li>&quot;From: Registrar of Canadian Citizenship. You will find enclosed your Canadian citizenship certificate.&quot; Woohoo! <a href="http://twitter.com/CanSpice/statuses/7801303366" class="aktt_tweet_time">#</a></li>
<li>&quot;We&#39;ll call back within a minute.&quot; Ten minutes later&#8230; *crickets* <a href="http://twitter.com/CanSpice/statuses/7808138871" class="aktt_tweet_time">#</a></li>
<li>HDTV + 7mbit internet for $37.90 for the first six months? Yes please! <a href="http://twitter.com/CanSpice/statuses/7809898089" class="aktt_tweet_time">#</a></li>
</ul>
<p class="aktt_credit">Powered by <a href="http://alexking.org/projects/wordpress">Twitter Tools</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/oD_cmVdYFC5WDde7gl51K4btrKk/0/da"><img src="http://feedads.g.doubleclick.net/~a/oD_cmVdYFC5WDde7gl51K4btrKk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/oD_cmVdYFC5WDde7gl51K4btrKk/1/da"><img src="http://feedads.g.doubleclick.net/~a/oD_cmVdYFC5WDde7gl51K4btrKk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=feh3ked-xA0:lODK8GXHswE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=feh3ked-xA0:lODK8GXHswE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=feh3ked-xA0:lODK8GXHswE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=feh3ked-xA0:lODK8GXHswE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/01/18/weekly-tweet-digest-for-2010-01-18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/01/18/weekly-tweet-digest-for-2010-01-18/</feedburner:origLink></item>
		<item>
		<title>Dear Pat Robertson…</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/cKd2sPGTsto/</link>
		<comments>http://www.canspice.org/2010/01/14/dear-pat-robertson/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 19:44:24 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Religion]]></category>
		<category><![CDATA[haiti]]></category>
		<category><![CDATA[pat robertson]]></category>
		<category><![CDATA[penn Jillette]]></category>

		<guid isPermaLink="false">http://www.canspice.org/?p=1352</guid>
		<description></description>
			<content:encoded><![CDATA[<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/5x_-IoeSB-A&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/5x_-IoeSB-A&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>

<p><a href="http://feedads.g.doubleclick.net/~a/FHajj1ZgGauvk-eq6LdP_lZox0w/0/da"><img src="http://feedads.g.doubleclick.net/~a/FHajj1ZgGauvk-eq6LdP_lZox0w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FHajj1ZgGauvk-eq6LdP_lZox0w/1/da"><img src="http://feedads.g.doubleclick.net/~a/FHajj1ZgGauvk-eq6LdP_lZox0w/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=cKd2sPGTsto:2PRVC8E1P4E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=cKd2sPGTsto:2PRVC8E1P4E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=cKd2sPGTsto:2PRVC8E1P4E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=cKd2sPGTsto:2PRVC8E1P4E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/01/14/dear-pat-robertson/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/01/14/dear-pat-robertson/</feedburner:origLink></item>
		<item>
		<title>Bad Baby Names: Babies Be Praised</title>
		<link>http://feedproxy.google.com/~r/CanSpice/~3/BglL2FuTpNQ/</link>
		<comments>http://www.canspice.org/2010/01/12/bad-baby-names-babies-be-praised/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 06:05:41 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Bad Baby Names]]></category>

		<guid isPermaLink="false">http://www.canspice.org/?p=1347</guid>
		<description>This week&amp;#8217;s Bad Baby Names is sadly, the penultimate. I will only get one more chance to do this, as I am moving back to Canada shortly and, alas, I have never seen a listing of babies born in Vancouver in any of the newspapers. The wonderful people of Hilo must know I&amp;#8217;m leaving, as [...]</description>
			<content:encoded><![CDATA[<p>This week&#8217;s Bad Baby Names is sadly, the penultimate. I will only get one more chance to do this, as I am moving back to Canada shortly and, alas, I have never seen a listing of babies born in Vancouver in any of the newspapers. The wonderful people of Hilo must know I&#8217;m leaving, as they gave me a gift of some really Bad Baby Names!</p>
<p>Trezden was the first. Okay, not entirely bad. Better than Haleyrose. Which is worse than Kyla-Nova, whose parents could at least figure out how to use a hyphen.</p>
<p>I think Matline is how illiterate people spell Madeline. If I ran into this unfortunate girl I&#8217;d call her Mat Line.</p>
<p>Zoee&#8217;s parents couldn&#8217;t keep their hands off the e. I thought Zoe was pronounced &#8220;Zo-ee&#8221; already. Maybe you&#8217;re supposed to stretch out Zoee&#8217;s name: Zo-ee-ee-ee-ee-ee-ee!</p>
<p>Kaysian is unfortunate.</p>
<p>Mandymarie&#8217;s parents need to take a lesson from Kyla-Nova&#8217;s parents.</p>
<p>Of course, this week&#8217;s big loser is Prayze, which really makes me do this:</p>
<p><img src="http://www.canspice.org/wp-content/uploads/2010/01/emot-ughh.gif" alt="" title="ughh" width="70" height="47" class="alignnone size-full wp-image-1349" /></p>

<p><a href="http://feedads.g.doubleclick.net/~a/aqEj_mKM_kRdGG6pyDz978MoTxM/0/da"><img src="http://feedads.g.doubleclick.net/~a/aqEj_mKM_kRdGG6pyDz978MoTxM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/aqEj_mKM_kRdGG6pyDz978MoTxM/1/da"><img src="http://feedads.g.doubleclick.net/~a/aqEj_mKM_kRdGG6pyDz978MoTxM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CanSpice?a=BglL2FuTpNQ:VkhbbGkCxAw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/CanSpice?i=BglL2FuTpNQ:VkhbbGkCxAw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=BglL2FuTpNQ:VkhbbGkCxAw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CanSpice?a=BglL2FuTpNQ:VkhbbGkCxAw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CanSpice?d=yIl2AUoC8zA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.canspice.org/2010/01/12/bad-baby-names-babies-be-praised/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.canspice.org/2010/01/12/bad-baby-names-babies-be-praised/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.360 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-17 12:23:46 -->
