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

<channel>
	<title>timburrell.net</title>
	<atom:link href="http://timburrell.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://timburrell.net</link>
	<description>All that is Tim Burrell</description>
	<lastBuildDate>Tue, 28 Sep 2010 01:05:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Going Dark&#8230;</title>
		<link>http://timburrell.net/projects/2010-09-27/going-dark/</link>
		<comments>http://timburrell.net/projects/2010-09-27/going-dark/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 00:55:30 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Advected River Textures]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Gizmod]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=714</guid>
		<description><![CDATA[<p>I&#8217;ve been blogging since before the term weblog had been coined.  I&#8217;ve seen the birth, and the demise, of social networking.<br />
Oh wait, the demise part hasn&#8217;t happened yet&#8230; right?<br />
For those of you who don&#8217;t know me (why the @(*$*@ are you reading my blog?), you might not know that I&#8217;ve grown a strong distaste [...]</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=Going%20Dark...&amp;body=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F&amp;title=Going%20Dark..." title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F&amp;title=Going%20Dark..." title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F&amp;title=Going%20Dark..." title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Going%20Dark...&amp;url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F&amp;title=Going%20Dark..." title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F&amp;t=Going%20Dark..." title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F&amp;title=Going%20Dark...&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=I%27ve%20been%20blogging%20since%20before%20the%20term%20weblog%20had%20been%20coined.%20%20I%27ve%20seen%20the%20birth%2C%20and%20the%20demise%2C%20of%20social%20networking.%0D%0A%0D%0AOh%20wait%2C%20the%20demise%20part%20hasn%27t%20happened%20yet...%20right%3F%0D%0A%0D%0AFor%20those%20of%20you%20who%20don%27t%20know%20me%20%28why%20the%20%40%28%2A%24%2A%40%20are%20you%20readi" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2010-09-27%2Fgoing-dark%2F&amp;title=Going%20Dark..." title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/projects/advected-river-textures/">Advected&nbsp;River&nbsp;Textures</a> by Tim. <a href="http://timburrell.net/projects/2010-09-27/going-dark/#comments">Leave a Comment</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been blogging since before the term weblog had been coined.  I&#8217;ve seen the birth, and the demise, of social networking.</p>
<p>Oh wait, the demise part hasn&#8217;t happened yet&#8230; right?</p>
<p>For those of you who don&#8217;t know me (why the @(*$*@ are you reading my blog?), you might not know that I&#8217;ve grown a strong distaste for social networking as of late.  I deleted my Facebook page a long time ago.  I absolutely refused to ever get a MySpace page.  I don&#8217;t follow anyone on twitter, nor do I tweet.</p>
<p>I judge a person&#8217;s worth on a scale that&#8217;s a direct inverse of the number of Facebook friends they have.  Seriously, the only people I&#8217;ve ever met that have ridiculous amounts of social networking &#8220;friends&#8221; are always the ones that are completely clueless as to how much people hate them.</p>
<p>I don&#8217;t want to learn something about you through a Facebook update.  Nor do I want people learning stuff about me through someone else&#8217;s &#8220;at a glance&#8221; updates page.  No I didn&#8217;t read your blog, and no I&#8217;m not going to.  If you&#8217;d like to talk to me, go old school: write me an email, or a letter, or pick up the telegraph machine and dial my number.  Or, go new school and VOIP / webcam me.  I&#8217;ll be doing the same.</p>
<p>Of course, the hypocrisy of writing this in blog form is not lost on me.  I guess I just felt like I owed it to myself and the rest of the internet to make this post.</p>
<p>Communication technology is supposed to bring us closer together.  Despite what certain controlling bodies may want, it&#8217;s meant to enable us, the commoners, to have a voice.  It&#8217;s meant to redistribute the true power that comes along with knowledge to the people.</p>
<p>Social networking doesn&#8217;t bring us closer together, it keeps us from really communicating.  It&#8217;s the new opiate for the masses.  Because mind-numbing passive entertainment is no longer enough.  We need to be watching television and checking status updates on our smart phones simultaneously.</p>
<p>Does anyone out there really feel more connected or enabled now?</p>
<p>Yeah?  Let me guess, you have 600 Facebook friends don&#8217;t you?</p>
<p>I&#8217;m not saying that I think these new communication technologies we&#8217;ve built are worthless.  I think using twitter to help fight fires is both innovative, and completely stupid &#8212; but hey, if it works, why not?  Looking to make new business or research connections?  Yeah that makes sense.  Obsessively pouring the details of your mundane bullshit life into a server on the internet so your equally as boring and mundane friends, and their friends, can know about the minutia of your life?  Lame.</p>
<p>It&#8217;s truly odd to me.  I spent my youth practically growing up inside a computer.  I had a computer life, and a real life&#8230; not because I didn&#8217;t want the worlds to collide, but because they couldn&#8217;t.  No one else I knew was jacked in.  And I loved it&#8230; I loved spending hours hanging out with &#8220;friends&#8221; on IRC, and causing mischief.  It was an exciting time of discovery&#8230; I remember the first MP3 player (the 16-bit reference player from the Fraunhofer Society), the first JPEGs, dear god the first animated GIFs.  It was a playground filled with cool people, doing interesting things.</p>
<p>Now it&#8217;s a bunch of douchey idiots using the technology that we once used to exchange information and &#8220;subvert the global suppression!&#8221; (AKA HACK THE PLANET!) (we were young okay), to talk about what they did last night, and what cute things their cats do.  Let&#8217;s not forget the old jaded people who do nothing but rant (ahem).</p>
<p>Don&#8217;t get me wrong, I still love the internet.  It&#8217;s grown into something I never would have imagined.  It really is what I had hoped it would become, more so.  It really can connect us all &#8212; hell I frequently use it to talk to a close friend who lives in Ireland.  Pen and paper has nothing on Skype!  It really does keep power in the hands of the people.  Sort of.  If you want to know the truth you can actually find it.  Of course, the surface is still nothing but brainwashing and media hype.  We can&#8217;t win them all I guess.</p>
<p>Anyway, as I was saying&#8230; it&#8217;s truly a weird thing for me.  To think about turning off my internet presence.  It&#8217;s something I&#8217;ve been doing for over half my life.  I&#8217;m not a researcher, but I still consider myself a computer scientist at heart.  Part of me just feels weird about what seems like going backward.  I feel a bit like a religious zealot or some other crazy person&#8230; like I should be shunned or locked up or something.</p>
<p>But, nevertheless, here I am.  Going Dark.</p>
<p>I encourage everyone to do the same: disconnect from social media, and connect to people&#8230; real people.</p>
<p>Do something real&#8230; go outside.  Talk to someone.  Pick up the phone.  Hug someone.  Make love to your spouse.  Go to a bar.  Walk the dog.  Pet your cat.  Do anything&#8230; anything but waste your time on Facebook.  Hell, even watch TV&#8230; at least with TV there&#8217;s no pretending that you&#8217;re not alone.</p>
<p>Good-bye no one.  Hello life.</p>
<p>p.s. Look for my new project: goingdark.org, coming soon!  A site where people who don&#8217;t like social networking can go to meet other people who don&#8217;t like social networking.  <img src='http://timburrell.net/smilies/yahoo_tongue.gif' alt='&#58;&#80;' class='wp-smiley' width='18' height='18' title='&#58;&#80;' />.</p>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/projects/2010-09-27/going-dark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sweet, sweet, creamy, goodness&#8230;</title>
		<link>http://timburrell.net/blog/2010-07-03/sweet-sweet-creamy-goodness/</link>
		<comments>http://timburrell.net/blog/2010-07-03/sweet-sweet-creamy-goodness/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 01:44:20 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Ice Cream]]></category>
		<category><![CDATA[Peanut Butter ice Cream]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[Seal Clubbing]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=709</guid>
		<description><![CDATA[<p>A couple weeks ago I departed on a journey&#8230; an entirely new phase of life one might say.  It started with a growing distaste for modern food manufacturing techniques and an expensive premium ice cream habit, and culminated in the arrival of a Cuisinart ICE-50BCC Ice Cream Maker.  I did a lot of [...]</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=Sweet%2C%20sweet%2C%20creamy%2C%20goodness...&amp;body=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F&amp;title=Sweet%2C%20sweet%2C%20creamy%2C%20goodness..." title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F&amp;title=Sweet%2C%20sweet%2C%20creamy%2C%20goodness..." title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F&amp;title=Sweet%2C%20sweet%2C%20creamy%2C%20goodness..." title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Sweet%2C%20sweet%2C%20creamy%2C%20goodness...&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F&amp;title=Sweet%2C%20sweet%2C%20creamy%2C%20goodness..." title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F&amp;t=Sweet%2C%20sweet%2C%20creamy%2C%20goodness..." title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F&amp;title=Sweet%2C%20sweet%2C%20creamy%2C%20goodness...&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=A%20couple%20weeks%20ago%20I%20departed%20on%20a%20journey...%20an%20entirely%20new%20phase%20of%20life%20one%20might%20say.%20%20It%20started%20with%20a%20growing%20distaste%20for%20modern%20food%20manufacturing%20techniques%20and%20an%20expensive%20premium%20ice%20cream%20habit%2C%20and%20culminated%20in%20the%20arrival%20of%20a%20Cuisi" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-07-03%2Fsweet-sweet-creamy-goodness%2F&amp;title=Sweet%2C%20sweet%2C%20creamy%2C%20goodness..." title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/blog/">Blog</a> by Tim. <a href="http://timburrell.net/blog/2010-07-03/sweet-sweet-creamy-goodness/#comments">Leave a Comment</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>A couple weeks ago I departed on a journey&#8230; an entirely new phase of life one might say.  It started with a growing distaste for modern food manufacturing techniques and an expensive premium ice cream habit, and culminated in the arrival of a <a href="http://www.cuisinart.ca/cuisinart_product.php?item_id=144&#038;product_id=128&#038;cat_id=27">Cuisinart ICE-50BCC Ice Cream Maker</a>.  I did a lot of research before purchasing it, and despite being considered a &#8220;budget&#8221; ice cream maker, it gets great ratings from ice cream people (a group which is, perhaps, even more zealous than coffee people, or Apple people).</p>
<p>So here&#8217;s my quick review: it&#8217;s about as quiet as a baby seal being clubbed to death.  No joke, it makes a loud screaming noise when the churning gets tough.  Eerie.  It takes up a lot of counter space, and it&#8217;s not the most aesthetically pleasing device, nor is it the most well made.  The freezing unit looks pretty solid, but the motor arm, and mixing paddle are made from plastic.  That said the only other device I&#8217;d consider purchasing, the Lello Musso Lussino Ice Cream Maker 4080, costs significantly more than the Cuisinart.  When this one burns out I&#8217;ll probably replace it with the Lello though.</p>
<p>Having said all that, I would, without hesitation, recommend the 50BCC to anyone.  There&#8217;s a markedly clear division in my life: there&#8217;s my life as it was prior to owning an ice cream maker, and there&#8217;s my life as it is now.  It&#8217;s hard to describe what it&#8217;s like, but the best I can come up with is this: it&#8217;s like having a garden, only instead of the garden being made of dirt it&#8217;s a metal cube, and instead of growing plants, the end result is a sweet, creamy, cold, nectar of the gods, set to the tune of whatever your brain and tastebuds can come up with.  Honestly now I look at every ingredient and wonder about its suitability for inclusion into an ice cream.  Pickles: considered it, rejected it.  Cayenne pepper: considered it, have a plan for it.  Peas: considered it, unsure about it.</p>
<p>And similar to having a garden, with each mouthful of god nectar you can smile in the smug satisfaction of being able to stick some xantham gum up the ass of some douchebag corporate foodie in one of the many tiny pointless towns called Exploitedville, USA.  Go ahead, club a baby seal.  Not only will you not hear it because your 50BCC will be screaming like a banshee, but you&#8217;ll have plenty of good food karma to spare.  I wonder: baby seal ice cream?  Wrong, just wrong.</p>
<p>Have you ever taken a close look at what happens when grocery store ice cream melts?  Have you ever wondered why ice cream from the store is kind of &#8220;fluffy?&#8221;  Let me assure you that the weird liquid separation you see when it melts, and the fluffy texture are in no way natural.  Modern ice cream barely qualifies as ice cream at all.  In fact, most commercial ice creams are solidified through the use of various viscous compounds.  The most common is Xantham gum, which if produced in North America, is almost certainly derived from corn.  Even &#8220;all natural&#8221; ice creams will often include guar gum, or &#8220;natural tara gum&#8221;.  Yes tara gum is made from a plant, but no it&#8217;s not natural.  It&#8217;s also used for killing insects and in creating leather for furniture.  So when buying ice cream it&#8217;s your choice: corn or insect free leather.  Mmmm&#8230; tasty couch!  </p>
<p>The only exception I&#8217;ve been able to find is good &#8216;ol Häagen-Dazs.  The downfall to the Dazs, as I can attest to, is it comes in small packages and is quite expensive.  Not only that but the flavor selection is a bit limited.</p>
<p>And, now that I have an ice cream maker, I can say that Dazs isn&#8217;t even that good.  Even some of my &#8220;failed&#8221; creations are leaps and bounds ahead of Dasz in terms of both texture, and flavor.  Did you know that real French Vanilla ice cream is made with custard?  I do now, because I&#8217;ve made it, and although it&#8217;s quite a bit different than the so called &#8220;French Vanilla&#8221; you can buy in the store, it&#8217;s also much, much, better.  Seriously they put some egg ingredients in there, along with some yellow colouring, and call it French Vanilla.</p>
<p>I should also give a warning: I used to pretend this blog was mostly devoted to technology and computer science related topics, but likely for the next while it will be devoted mostly to ice cream recipes <img src='http://timburrell.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' />.</p>
<p>On that note I&#8217;ll end with a killer recipe I came up with today.  I previously made a Peanut Butter and Banana ice cream, but today I made two batches, one of peanut butter, and another of banana.  They both turned out awesome, but the PB was the star for me.  Of course they compliment each other well.  But anyway, here&#8217;s the Peanut Butter:</p>
<p>Ingredients:</p>
<p>1/4 to 1/2 cup Peanut Butter to taste (choose your favorite kind, I used a creamy variety because I like creamy ice cream)<br />
1 cup heavy cream<br />
1 cup table cream<br />
1 cup whole milk<br />
1/2 cup organic granulated sugar</p>
<p>Directions:</p>
<p>Put the sugar, peanut butter, and milk in a sauce pan and slowly heat the mixture until the peanut butter is dissolved.  Transfer it to a mixing bowl and whisk it until the sugar is dissolved (if it isn&#8217;t already), put it in the freezer and wait for it to be cold again.  Mix in the creams, and you&#8217;re good to go!</p>
<p>The hardest part is getting the PB ratio correct.  The taste changes a bit during the freezing process, it gets a little less potent, so keep that in mind.  I started with ~1/4 cup but when I added in the creams I realized it wasn&#8217;t going to have the punch I wanted, so I added in another few spoon fulls.  I was too lazy to reheat the mixture, so the newly added PB gave the ice cream some interesting flaky bits which I actually kind of like.  I might make it like that on purpose again next time.</p>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/blog/2010-07-03/sweet-sweet-creamy-goodness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lost Fallout</title>
		<link>http://timburrell.net/blog/2010-05-29/lost-fallout/</link>
		<comments>http://timburrell.net/blog/2010-05-29/lost-fallout/#comments</comments>
		<pubDate>Sat, 29 May 2010 20:00:05 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=707</guid>
		<description><![CDATA[<p>I wasn&#8217;t the biggest Lost fan around, nor did I really believe that Abrams had a detailed plan figured out for the storyline, but I was hopeful that the entire plot at least wasn&#8217;t going to be some sick, twisted, joke on the unsuspecting masses.  Of course, this post is a little bit late [...]</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=Lost%20Fallout&amp;body=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F&amp;title=Lost%20Fallout" title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F&amp;title=Lost%20Fallout" title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F&amp;title=Lost%20Fallout" title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Lost%20Fallout&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F&amp;title=Lost%20Fallout" title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F&amp;t=Lost%20Fallout" title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F&amp;title=Lost%20Fallout&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=I%20wasn%27t%20the%20biggest%20Lost%20fan%20around%2C%20nor%20did%20I%20really%20believe%20that%20Abrams%20had%20a%20detailed%20plan%20figured%20out%20for%20the%20storyline%2C%20but%20I%20was%20hopeful%20that%20the%20entire%20plot%20at%20least%20wasn%27t%20going%20to%20be%20some%20sick%2C%20twisted%2C%20joke%20on%20the%20unsuspecting%20masses.%20%20Of%20" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-29%2Flost-fallout%2F&amp;title=Lost%20Fallout" title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/blog/">Blog</a> by Tim. <a href="http://timburrell.net/blog/2010-05-29/lost-fallout/#comments">Leave a Comment</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>I wasn&#8217;t the biggest Lost fan around, nor did I really believe that Abrams had a detailed plan figured out for the storyline, but I was hopeful that the entire plot at least wasn&#8217;t going to be some sick, twisted, joke on the unsuspecting masses.  Of course, this post is a little bit late to be merely another complaint thread about how much the finale sucked as there are plenty of those floating around.  Nevertheless, I can&#8217;t help but stating, for the record, that there&#8217;s really only two explanations for Lost that I can conceive of: 1) Abrams really thought they could tie all the pieces and plot arcs together in the end (?!), or 2) his goal was merely to make money over the short term by creating a plot so interesting that he knew it wouldn&#8217;t be possible to be explained in the end.</p>
<p>Since I know for a fact that Abrams is not stupid that rules out #1 which, sadly, leaves us to contemplate the notion that the entire six seasons of Lost really was nothing more than a joke on millions of people.  It makes a great deal of sense, and it was an interesting ride, but it was clearly falling apart at the seams by the end: the numbers that dominated the first two seasons were explained by the single sentence &#8220;Jacob liked numbers?&#8221;  Really?  The whole time travel and moving island plot arcs were completely inconsequential and meaningless.  Again&#8230; really?  The statues?  Dharma Initiative experiments&#8230; all pointless.  </p>
<p>And, the best, the whole point and cause of everything: the light inside the island.  It&#8217;s a transparent plot device that was whipped up and inserted in the final portion of the final season which was meant to explain the unexplainable.  But, it&#8217;s a complete fallacy, you can&#8217;t explain unexplained phenomena with something else that never gets explained.</p>
<p>It would be easy to continue ad nauseam, but since I promised this wouldn&#8217;t be just another complaint thread, I&#8217;ll stop there.  My point is, Lost was a joke.  A cruel, but very profitable joke, on those of us who thought perhaps there really was a plan, and kept watching in anticipation of learning how all the puzzle pieces fit together.</p>
<p>It&#8217;s been about a week now since I watched the final episode, and it&#8217;s had some time to sink in.  At first I was just like &#8220;well&#8230; that sucked.&#8221;  But, the more I thought about it the more I realized that I actually consider Lost a fairly big injustice.  Most will shrug it off, but it&#8217;s becoming a trend.  I never thought the Battlestar ending could be usurped as far as disappointing show enders go, but sure enough, Lost did it.</p>
<p>So here&#8217;s my question to J.J. Abrams: why should I invest hours watching any more of your shows?  Sometimes I&#8217;m able to avoid certain products simply out of some moral or ethical principle, but in this case it&#8217;s much easier.  I&#8217;ve actually been soured against network television.  I used to enjoy watching Fringe (another Abrams show), and now there&#8217;s no way I can stomache it.  It&#8217;s as if Lost was the entertainment equivalent of food poisoning for me.</p>
<p>Fortunately not all television shows have gone the way of Lost.  Legend of the Seeker is probably my favorite currently airing TV show right now.  Yeah it seems a bit lame on the surface&#8230; it&#8217;s kind of cheezy, but the storyline is excellent.  It&#8217;s based on a series of novels by Terry Goodkind, so unless they are completely inept, I can&#8217;t see how they could screw it up.</p>
<p>That said, I&#8217;m definitely going to be a much more cautious about investing that much time in a TV show again.  Even without commercials, all six seasons of lost amounts to 84 hours of time.  When these types of shows pop up again I think I&#8217;m going to wait on the sidelines until the show is done and then watch it via whatever media delivery / storage mechanism is popular at the time.  </p>
<p>Perhaps I&#8217;ll go back to reading books for a while.  They&#8217;re not guaranteed to be any better, but at least they don&#8217;t cram ads down my throat, nor do they typically make me want to burn them after I&#8217;ve finished reading them.</p>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/blog/2010-05-29/lost-fallout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Beginnings and Dungeon Crawling</title>
		<link>http://timburrell.net/blog/2010-05-22/new-beginnings-and-dungeon-crawling/</link>
		<comments>http://timburrell.net/blog/2010-05-22/new-beginnings-and-dungeon-crawling/#comments</comments>
		<pubDate>Sat, 22 May 2010 13:43:48 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=698</guid>
		<description><![CDATA[<p>I recently resigned my position at the company I have been working at for the past two years.  Compiler development, and the team I was on were great.  And, it was definitely interesting work &#8212; if you ever get the chance to work on a piece of software as big and complicated as [...]</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=New%20Beginnings%20and%20Dungeon%20Crawling&amp;body=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F&amp;title=New%20Beginnings%20and%20Dungeon%20Crawling" title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F&amp;title=New%20Beginnings%20and%20Dungeon%20Crawling" title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F&amp;title=New%20Beginnings%20and%20Dungeon%20Crawling" title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=New%20Beginnings%20and%20Dungeon%20Crawling&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F&amp;title=New%20Beginnings%20and%20Dungeon%20Crawling" title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F&amp;t=New%20Beginnings%20and%20Dungeon%20Crawling" title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F&amp;title=New%20Beginnings%20and%20Dungeon%20Crawling&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=I%20recently%20resigned%20my%20position%20at%20the%20company%20I%20have%20been%20working%20at%20for%20the%20past%20two%20years.%20%20Compiler%20development%2C%20and%20the%20team%20I%20was%20on%20were%20great.%20%20And%2C%20it%20was%20definitely%20interesting%20work%20--%20if%20you%20ever%20get%20the%20chance%20to%20work%20on%20a%20piece%20of%20softwa" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fblog%2F2010-05-22%2Fnew-beginnings-and-dungeon-crawling%2F&amp;title=New%20Beginnings%20and%20Dungeon%20Crawling" title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/blog/">Blog</a> by Tim. <a href="http://timburrell.net/blog/2010-05-22/new-beginnings-and-dungeon-crawling/#comments">Leave a Comment</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>I recently resigned my position at the company I have been working at for the past two years.  Compiler development, and the team I was on were great.  And, it was definitely interesting work &#8212; if you ever get the chance to work on a piece of software as big and complicated as a multi-platform compiler I highly recommend it.  That said, an opportunity came up with a new company, one that was too hard to pass up.  So, instead of compilers, I&#8217;m off to work for a company that helps bring gaming from PCs to Macs and Linux; something that I&#8217;m proud to be a part of, as a gamer and a full-time Linux user.</p>
<p>Although that&#8217;s big news for me, it&#8217;s not actually the point of this post.  As it happened, I ended up having a bit of time off between when I left my old job and when I start the new job.  It wasn&#8217;t enough time to go anywhere, so I thought I&#8217;d park myself on the couch (or in my chair) and play through a game from start to finish in a few epic marathon sessions.  It&#8217;s not something I&#8217;ve been able to do in&#8230; a decade or two?</p>
<p>So, my first task was to find a game I actually wanted to play.  This was no small feat in and of itself.  Honestly, most games these days are regurgitated garbage, and amount to little more than Doom clones, or a clone of some other high popular game from a time when people were actually creative.</p>
<p>As an aside, I should say, this is partly why I like the casual game scene so much these days, especially on the iPhone.  People are doing a lot of inventive things in that space, but the problem is very few of the casual titles have the gameplay depth (or length) that you find from a AAA release.  I wanted something much heftier&#8230; plus staring at an iPhone screen for more than a few hours bugs my eyes out.</p>
<p>So, I tried everything I could think of.  I looked at all the current new releases, I resubscribed to <a href="http://eveonline.com">Eve Online</a>, I picked up the <a href="http://www.wolfire.com/humble">Humble Indie Bundle</a>, I looked through countless old game lists.  I kind of wanted to pick up a new MMO, but honestly, as much as I love the idea of an MMO, I simply have yet to find one with the depth of gameplay of any of its non-MMO counterparts.  Yes Eve Online is ridiculously deep and complex, but when it comes down to it, it&#8217;s still largely a grindfest, where you&#8217;re repeating the same tasks over and over again to accomplish some menial feat.  Regardless of how complex the game rules are, the act of playing the game is really no different than any other MMO: go kill X of Y, travel from A to B to A, rinse, repeat.</p>
<p>Oddly enough, I&#8217;m actually a fan of loot whoring games, and grindfests that are the Diablo and rogue-like type games, so I often wonder what makes me enjoy those games but not MMOs.  There&#8217;s a subtle distinction but in rogue-likes, the grind is not the purpose, nor a requirement.  You&#8217;re simply exploring and the beasties you encounter are obstacles, the loot is a secondary (but important) reward.  The push to keep going, for me, comes from discovering new and unique environments, and from some overarching goal such as killing a massively evil monster and saving the world.</p>
<p>After contemplating this stuff for a while, I decided it was time to go back to some old-school dungeon crawling, and ended up picking up a copy of <a href="http://www.torchlightgame.com/">Torchlight</a>.  It&#8217;s a shameless Diablo clone, but it is a fresh take on the genre.  I won&#8217;t go into a review of it, since plenty of others have done that already, but I will say that it&#8217;s a great game.  It&#8217;s got a unique graphical style, great level design, well thought out skill progression, is extremely mod-friendly, and addresses all of my complaints that I had with the Diablo series (mainly convenience issues).</p>
<p>Again though, this isn&#8217;t exactly the point of my post.  After finding a game I wanted to play, I decided to see if I could get it work under Linux using Wine.  The game has been given a &#8220;platinum&#8221; rating on Wine&#8217;s app database, which means it supposedly runs nearly perfectly.  However, this simply isn&#8217;t the case.  The game crashes on startup, and only works if it&#8217;s run in safe mode with a lot of the graphical niceties (like fragment shaders) turned off.  Ultimate I ended up having to reboot into Windows to play it &#8212; a huge inconvenience <img src='http://timburrell.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' />.</p>
<p>So, to come full circle: I suppose the point of my post was related to my new job after all.  The state of gaming on alternate platforms like Linux and Macintosh is definitely improving, but it&#8217;s simply not where it could and should be.  I am really excited to be working for a company that&#8217;s working toward being a part of the solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/blog/2010-05-22/new-beginnings-and-dungeon-crawling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back from Amsterdam!</title>
		<link>http://timburrell.net/blog/2009-06-21/back-from-amsterdam/</link>
		<comments>http://timburrell.net/blog/2009-06-21/back-from-amsterdam/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 16:32:58 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Fluid simulation]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=681</guid>
		<description><![CDATA[<p>I&#8217;m still exhausted from the flight, but the trip was excellent, and I think the presentation went really well!<br />
Amsterdam is definitely a very cool and unique city!  I&#8217;m extremely glad we were able to find Jess a last minute flight, and that the hotel didn&#8217;t mind her staying in my room (which was booked [...]</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=Back%20from%20Amsterdam%21&amp;body=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F&amp;title=Back%20from%20Amsterdam%21" title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F&amp;title=Back%20from%20Amsterdam%21" title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F&amp;title=Back%20from%20Amsterdam%21" title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Back%20from%20Amsterdam%21&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F&amp;title=Back%20from%20Amsterdam%21" title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F&amp;t=Back%20from%20Amsterdam%21" title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F&amp;title=Back%20from%20Amsterdam%21&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=I%27m%20still%20exhausted%20from%20the%20flight%2C%20but%20the%20trip%20was%20excellent%2C%20and%20I%20think%20the%20presentation%20went%20really%20well%21%0D%0A%0D%0AAmsterdam%20is%20definitely%20a%20very%20cool%20and%20unique%20city%21%20%20I%27m%20extremely%20glad%20we%20were%20able%20to%20find%20Jess%20a%20last%20minute%20flight%2C%20and%20that%20the%20h" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-21%2Fback-from-amsterdam%2F&amp;title=Back%20from%20Amsterdam%21" title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/blog/">Blog</a> by Tim. <a href="http://timburrell.net/blog/2009-06-21/back-from-amsterdam/#comments">Leave a Comment</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m still exhausted from the flight, but the trip was excellent, and I think the presentation went really well!</p>
<p>Amsterdam is definitely a very cool and unique city!  I&#8217;m extremely glad we were able to find Jess a last minute flight, and that the hotel didn&#8217;t mind her staying in my room (which was booked as a single).  We had lots of fun exploring Amsterdam, taking in as much of its culture as we could (and were willing to).  Amsterdam is definitely a place where whatever you want, is pretty much what you get, and we quickly learned that there&#8217;s lots of things Amsterdam has to offer that we weren&#8217;t that interested in <img src='http://timburrell.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' />.  </p>
<p>That being said, those elements are part of what makes Amsterdam such a cool place, and I for one applaud them for their forward thinking on many subjects.  I&#8217;ve personally never felt so safe amongst so many people,  at all times of the day / night.</p>
<p>We checked out nearly every major area of the city, and although the hotel was right next to the insane touristy areas we quickly gravitated toward the quieter more local areas of Amsterdam.  We tried to find as many local places to eat as we could, and mostly just soak in the atmosphere.  It was neat to see some of the [in]famous parts of the city like all the coffee shops, and the red-light district, but I found once we left those areas I got a much greater sense for the city, and I began to understand why people would live there.</p>
<p>I didn&#8217;t take many photos, since Jess was along, and hopefully she&#8217;ll post some of hers soon, but for now you can check out some of the photos I snapped with my phone if you&#8217;d like:</p>

<div class="ngg-galleryoverview" id="ngg-gallery-1-681">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-22" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0244.JPG" title="If the Switzerland airport is any indication the Swiss seem to have a propensity toward large escalators." class="thickbox" rel="amsterdam-2009" >
				<img title="Switzerland Airport Escalators" alt="Switzerland Airport Escalators" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0244.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-23" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0245.JPG" title="Everything about Switzerland oozed style.  Instead the of obnoxious loud speaker announcements every 30 seconds we get in North America, the Switzerland airport had a live jazz pianist and comfortable leather seats to relax in." class="thickbox" rel="amsterdam-2009" >
				<img title="Switzerland Airport Lounge" alt="Switzerland Airport Lounge" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0245.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-24" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0246.JPG" title="Glass walls everywhere made for a nice view, but after an all night red-eye flight I was wishing for a dark corner." class="thickbox" rel="amsterdam-2009" >
				<img title="Switzerland Airport" alt="Switzerland Airport" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0246.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-25" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0247.JPG" title="A marvel of convenience." class="thickbox" rel="amsterdam-2009" >
				<img title="Swiss Vending Machine" alt="Swiss Vending Machine" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0247.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-26" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0252.JPG" title="I couldn't see the Alps but the countryside still looked really nice from the air." class="thickbox" rel="amsterdam-2009" >
				<img title="Zurich from the Air" alt="Zurich from the Air" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0252.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-28" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0260.JPG" title="A short lunch break at a local cafe for some tosti's and a sourcy.  Mmm... tosti." class="thickbox" rel="amsterdam-2009" >
				<img title="Amsterdam Cafe" alt="Amsterdam Cafe" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0260.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-29" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0261.JPG" title="I still can't figure out exactly what purpose they serve or how they keep all the canals properly maintained, but they sure are cool.  And who doesn't want to live in a house boat?" class="thickbox" rel="amsterdam-2009" >
				<img title="Amsterdam Canal I" alt="Amsterdam Canal I" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0261.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-30" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0262.JPG" title=" " class="thickbox" rel="amsterdam-2009" >
				<img title="Amsterdam Canal II" alt="Amsterdam Canal II" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0262.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-31" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0264.JPG" title=" " class="thickbox" rel="amsterdam-2009" >
				<img title="Jess" alt="Jess" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0264.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-32" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0268.JPG" title=" " class="thickbox" rel="amsterdam-2009" >
				<img title="Amsterdam Canal III" alt="Amsterdam Canal III" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0268.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-33" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0269.JPG" title="A typical street in Amsterdam." class="thickbox" rel="amsterdam-2009" >
				<img title="Amsterdam Street" alt="Amsterdam Street" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0269.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-34" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0271.JPG" title="These bikes are everywhere." class="thickbox" rel="amsterdam-2009" >
				<img title="Amsterdam Bikes" alt="Amsterdam Bikes" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0271.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-35" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0273.JPG" title=" " class="thickbox" rel="amsterdam-2009" >
				<img title="Amsterdam Canal IV" alt="Amsterdam Canal IV" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0273.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-36" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0274.JPG" title="There's lots of small vehicles in Amsterdam... this one made me laugh." class="thickbox" rel="amsterdam-2009" >
				<img title="General Lee" alt="General Lee" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0274.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-37" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0283.JPG" title="The swimming pool was really nice -- even included a super strong jet you could do stationary swimming against." class="thickbox" rel="amsterdam-2009" >
				<img title="Hotel Swimming Pool" alt="Hotel Swimming Pool" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0283.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-38" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0284.JPG" title=" " class="thickbox" rel="amsterdam-2009" >
				<img title="Statue" alt="Statue" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0284.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-39" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0302.JPG" title="Some dumbass feeding the rats." class="thickbox" rel="amsterdam-2009" >
				<img title="Winged Rats" alt="Winged Rats" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0302.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-40" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0312.JPG" title=" " class="thickbox" rel="amsterdam-2009" >
				<img title="Hotel Hot Tub" alt="Hotel Hot Tub" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0312.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 		
	<div id="ngg-image-41" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://timburrell.net/wp-content/gallery/amsterdam-2009/IMG_0319.JPG" title=" " class="thickbox" rel="amsterdam-2009" >
				<img title="Hotel Sauna" alt="Hotel Sauna" src="http://timburrell.net/wp-content/gallery/amsterdam-2009/thumbs/thumbs_IMG_0319.JPG" width="150" height="125" />
			</a>
		</div>
	</div>
	 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p>As for the conference &#8212; I really enjoyed presenting, and got some good questions from people afterward which was great.  My paper is now published in <a href="http://www3.interscience.wiley.com/journal/117946199/grouphome/home.html">Computer Animation and Virtual Worlds Volume 20 Issue 2-3 (June 2009)</a> by Wiley InterScience.  </p>
<p>I enjoyed the research, and the whole process of grad school, but I&#8217;m also glad it&#8217;s all finally over and done with!  The trip and conference was a perfect way to say good-bye to that part of life.</p>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/blog/2009-06-21/back-from-amsterdam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heading to Amsterdam soon!</title>
		<link>http://timburrell.net/blog/2009-06-15/heading-to-amsterdam-soon/</link>
		<comments>http://timburrell.net/blog/2009-06-15/heading-to-amsterdam-soon/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 17:03:35 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Fluid simulation]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=673</guid>
		<description><![CDATA[<p>In less than an hour I&#8217;ll be leaving for the airport and will eventually be making my way to Amsterdam, after a half day in Switzerland.  I&#8217;m hugely excited about the trip &#8212; it&#8217;s my first time presenting a paper at a conference, and I think it&#8217;s really cool that my Master&#8217;s research is [...]</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=Heading%20to%20Amsterdam%20soon%21&amp;body=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F&amp;title=Heading%20to%20Amsterdam%20soon%21" title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F&amp;title=Heading%20to%20Amsterdam%20soon%21" title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F&amp;title=Heading%20to%20Amsterdam%20soon%21" title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Heading%20to%20Amsterdam%20soon%21&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F&amp;title=Heading%20to%20Amsterdam%20soon%21" title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F&amp;t=Heading%20to%20Amsterdam%20soon%21" title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F&amp;title=Heading%20to%20Amsterdam%20soon%21&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=In%20less%20than%20an%20hour%20I%27ll%20be%20leaving%20for%20the%20airport%20and%20will%20eventually%20be%20making%20my%20way%20to%20Amsterdam%2C%20after%20a%20half%20day%20in%20Switzerland.%20%20I%27m%20hugely%20excited%20about%20the%20trip%20--%20it%27s%20my%20first%20time%20presenting%20a%20paper%20at%20a%20conference%2C%20and%20I%20think%20it%27s%20rea" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-06-15%2Fheading-to-amsterdam-soon%2F&amp;title=Heading%20to%20Amsterdam%20soon%21" title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/blog/">Blog</a> by Tim. <a href="http://timburrell.net/blog/2009-06-15/heading-to-amsterdam-soon/#comments">Leave a Comment</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>In less than an hour I&#8217;ll be leaving for the airport and will eventually be making my way to Amsterdam, after a half day in Switzerland.  I&#8217;m hugely excited about the trip &#8212; it&#8217;s my first time presenting a paper at a conference, and I think it&#8217;s really cool that my Master&#8217;s research is culminating into a trip to the Netherlands and a conference publication.  Not that I ever feared, or even worried too much about whether or not my research was making a contribution, but it&#8217;s great to know that other people got something out of it as well.</p>
<p>It&#8217;s also a nice bit of closure on the years spent head deep in fluid simulation stuff.  I really enjoyed doing it, and I&#8217;m glad I decided to do a Master&#8217;s at Dalhousie, but I&#8217;m also happy that soon it&#8217;ll be done and over with.  It&#8217;s an awesome way to end that period of research, and although I don&#8217;t know exactly how yet, I&#8217;m sure it&#8217;ll spark the beginning of something new too.</p>
<p>As excited as I am to present my research to others I must admit that I&#8217;m also looking forward to checking out Amsterdam and the Netherlands (and maybe even a surrounding country or two if there&#8217;s time).  I&#8217;ve never been to anywhere in Europe before, so I&#8217;m planning to make the most out of my free time while I&#8217;m there!  I don&#8217;t know how well connected Amsterdam is yet, but hopefully if there&#8217;s WiFi abound I should be able to update on the go!</p>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/blog/2009-06-15/heading-to-amsterdam-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Master&#8217;s Thesis</title>
		<link>http://timburrell.net/projects/2009-03-15/masters-thesis/</link>
		<comments>http://timburrell.net/projects/2009-03-15/masters-thesis/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 13:22:31 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Advected River Textures]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Fluid simulation]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=664</guid>
		<description><![CDATA[<p>It&#8217;s been a long wait, but I&#8217;m finally able to discuss my Master&#8217;s thesis: a real-time fluid simulation aimed at rendering large scale rivers for interactive applications like games.  My supervisors and I put together a paper based on the thesis, which has been accepted to CASA 2009, and will be published in the [...]</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=Master%27s%20Thesis&amp;body=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F&amp;title=Master%27s%20Thesis" title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F&amp;title=Master%27s%20Thesis" title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F&amp;title=Master%27s%20Thesis" title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Master%27s%20Thesis&amp;url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F&amp;title=Master%27s%20Thesis" title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F&amp;t=Master%27s%20Thesis" title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F&amp;title=Master%27s%20Thesis&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=It%27s%20been%20a%20long%20wait%2C%20but%20I%27m%20finally%20able%20to%20discuss%20my%20Master%27s%20thesis%3A%20a%20real-time%20fluid%20simulation%20aimed%20at%20rendering%20large%20scale%20rivers%20for%20interactive%20applications%20like%20games.%20%20My%20supervisors%20and%20I%20put%20together%20a%20paper%20based%20on%20the%20thesis%2C%20whi" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fprojects%2F2009-03-15%2Fmasters-thesis%2F&amp;title=Master%27s%20Thesis" title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/projects/advected-river-textures/">Advected&nbsp;River&nbsp;Textures</a> by Tim. <a href="http://timburrell.net/projects/2009-03-15/masters-thesis/#comments">Leave a Comment</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long wait, but I&#8217;m finally able to discuss my <a href="/content/Advected River Textures - Thesis.pdf">Master&#8217;s thesis</a>: a real-time fluid simulation aimed at rendering large scale rivers for interactive applications like games.  My supervisors and I put together a <a href="/content/Advected River Textures - Draft.pdf">paper based on the thesis</a>, which has been accepted to <a href="http://hmi.ewi.utwente.nl/CASA09">CASA 2009</a>, and will be published in the proceedings of the 22nd Annual Conference on Computer Animation and Social Agents.</p>
<p>For more information on my thesis, and a video of the application in action, check out the <a href="/projects/advected-river-textures">project page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/projects/2009-03-15/masters-thesis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with Variadic Templates: Part II</title>
		<link>http://timburrell.net/blog/2009-02-22/fun-with-variadic-templates-part-ii/</link>
		<comments>http://timburrell.net/blog/2009-02-22/fun-with-variadic-templates-part-ii/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 13:33:57 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[C++0x]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Effective C++]]></category>
		<category><![CDATA[Metaprogramming]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=479</guid>
		<description><![CDATA[<p>As promised in Part I, I think it&#8217;s about time we start to actually have some fun with C++0x&#8217;s variadiac templates.  There&#8217;s lots of basic tutorials out there and people talking about variadics here and there, but I haven&#8217;t seen anyone really delve into yet, so here we go.  First up, the most [...]</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=Fun%20with%20Variadic%20Templates%3A%20Part%20II&amp;body=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20II" title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20II" title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20II" title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Fun%20with%20Variadic%20Templates%3A%20Part%20II&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20II" title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F&amp;t=Fun%20with%20Variadic%20Templates%3A%20Part%20II" title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20II&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=As%20promised%20in%20Part%20I%2C%20I%20think%20it%27s%20about%20time%20we%20start%20to%20actually%20have%20some%20fun%20with%20C%2B%2B0x%27s%20variadiac%20templates.%20%20There%27s%20lots%20of%20basic%20tutorials%20out%20there%20and%20people%20talking%20about%20variadics%20here%20and%20there%2C%20but%20I%20haven%27t%20seen%20anyone%20really%20delve%20i" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-22%2Ffun-with-variadic-templates-part-ii%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20II" title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/blog/">Blog</a> by Tim. <a href="http://timburrell.net/blog/2009-02-22/fun-with-variadic-templates-part-ii/#comments">Comments (1)</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>As promised in <a href="/blog/2009-02-18/fun-with-variadic-templates-part-i/">Part I</a>, I think it&#8217;s about time we start to actually have some fun with C++0x&#8217;s variadiac templates.  There&#8217;s lots of basic tutorials out there and people talking about variadics here and there, but I haven&#8217;t seen anyone really delve into yet, so here we go.  First up, the most trivial but of metaprogramming we can do &#8212; emulating the C++0x <code>sizeof...</code> operator (which yields the number of parameters in a parameter pack):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code" width="100%"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span> <span style="color: #0000ff;">struct</span> count<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> T, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span> <span style="color: #0000ff;">struct</span> count<span style="color: #000080;">&lt;</span>T, Args...<span style="color: #000080;">&gt;</span> <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> num <span style="color: #000080;">=</span> count<span style="color: #000080;">&lt;</span>Args...<span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #007788;">num</span> <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;&gt;</span> <span style="color: #0000ff;">struct</span> count<span style="color: #000080;">&lt;&gt;</span> <span style="color: #008000;">&#123;</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> num <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">// let's use the struct</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> numArgs <span style="color: #000080;">=</span> count<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">2</span>, <span style="color: #0000dd;">3</span>, <span style="color: #0000dd;">4</span>, <span style="color: #0000dd;">5</span>, <span style="color: #0000dd;">6</span>, <span style="color: #0000dd;">7</span>, <span style="color: #0000dd;">8</span>, <span style="color: #0000dd;">9</span>, <span style="color: #0000dd;">10</span><span style="color: #000080;">&gt;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// numArgs will be equal to 10 because there are 10 parameters given to the count struct</span></pre></td></tr></table></div>

<p>Line 1, is pretty much the root of all template metaprogramming trickery.  The fundamentals of it all relies on recursive partial specialization, and line 1 just sets up a forward declaration to the <code>count struct</code>, which never actually gets used.  There&#8217;s some complicated rules to how partial specializations are chosen by a C++ compiler, but the basic rule of thumb is that the most specialized version of the template that applies is what&#8217;s chosen.  So although our instantiation at line 10 could match our blank forward declaration, it doesn&#8217;t.  The meat of our tiny template metaprogram gets called instead: the recursive partial specialization at line 3.</p>
<p>And this partial specialization brings us to the key behind using variadic templates in the real-world.  Since it&#8217;s not possible to do random access on the pack elements, the only choice is to &#8220;unroll&#8221; the packs recursively.  The trick is to define the partial specialization such that the first argument is just a single parameter, and the next is a parameter pack:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> FirstArg, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">RemainingArgs</span><span style="color: #000080;">&gt;</span> <span style="color: #0000ff;">struct</span> count<span style="color: #000080;">&lt;</span>T, Args...<span style="color: #000080;">&gt;</span><span style="color: #008080;">;</span></pre></div></div>

<p>When the above struct is instantiated with a parameter pack, the first element gets pulled out of the pack into <code>FirstArg</code>, and the remaining parameters are placed in <code>RemainingArgs</code>.  So, if the <code>count struct</code> makes an instantiation of itself with <code>RemainingArgs...</code> as the only instantiation parameter, again the first parameter will get pulled out and become <code>FirstArg</code>, and the rest will get placed in <code>RemainingArgs</code>.  Thus, we can now easily unroll any parameter pack!  </p>
<p>Let&#8217;s go back to the first code listing at line 4.  This is where the recursion happens, and we can see exactly what we were talking about above happening.  The <code>count struct</code> calls itself with the remaining arguments, and simply keeps track of the number of times the recursion happens by incrementing a counter along the way.  When the instantiation finishes <code>count::num</code> will be set to the number of parameters in the parameter pack as of the initial instantiation plus 1.  We add one because technically the recursion only counts the number of items in the parameter pack which, due to our partial specialization, is going to be one less than the number of parameters we pass to <code>count</code> (remember the first element gets picked out of the parameter pack).</p>
<p>The next thing we need to do, like in all forms of recursion, is to define the termination condition of the recursion.  There are a number of ways to do this, but in this first example, we employ the &#8220;empty partial specialization&#8221; trick:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;&gt;</span> <span style="color: #0000ff;">struct</span> count<span style="color: #000080;">&lt;&gt;</span> <span style="color: #008000;">&#123;</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> num <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></div></div>

<p>This terminates the recursion not because num is implicitly set to zero, but because this specialization does not call itself.  Therefore when the recursion has completely unrolled the parameter pack we hit this empty specialization and since there is no recursive call, nothing else happens.  We only bother to define num here so that if someone explicitly instantiates a <code>count struct</code> with no arguments, they can still call <code>count::num</code> and get a value of zero rather than a compilation error.</p>
<p>Alright, so that was fun, now let&#8217;s look at something a little more complex, and a lot more useful:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code" width="100%"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span> N, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span> <span style="color: #0000ff;">struct</span> elementType<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span> N, <span style="color: #0000ff;">typename</span> T, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span>
<span style="color: #0000ff;">struct</span> elementType<span style="color: #000080;">&lt;</span>N, T, Args...<span style="color: #000080;">&gt;</span> <span style="color: #008000;">&#123;</span>
        static_assert<span style="color: #008000;">&#40;</span>N <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">sizeof</span>...<span style="color: #008000;">&#40;</span>Args<span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> <span style="color: #0000dd;">1</span>, <span style="color: #FF0000;">&quot;overflow!&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">typedef</span> <span style="color: #0000ff;">typename</span> elementType<span style="color: #000080;">&lt;</span>N <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span>, Args...<span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #007788;">type</span> type<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> T, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span>
<span style="color: #0000ff;">struct</span> elementType<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">0</span>, T, Args...<span style="color: #000080;">&gt;</span> <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">typedef</span> T type<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">// now let's use our elementType struct</span>
elementType<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">0</span>, <span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">char</span>, std<span style="color: #008080;">::</span><span style="color: #007788;">string</span>, <span style="color: #0000ff;">double</span><span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #007788;">type</span> var0 <span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> <span style="color: #666666;">// var0 is an int</span>
elementType<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">1</span>, <span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">char</span>, std<span style="color: #008080;">::</span><span style="color: #007788;">string</span>, <span style="color: #0000ff;">double</span><span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #007788;">type</span> var1 <span style="color: #000080;">=</span> <span style="color: #FF0000;">'2'</span><span style="color: #008080;">;</span> <span style="color: #666666;">// var1 is a char</span>
elementType<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">2</span>, <span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">char</span>, std<span style="color: #008080;">::</span><span style="color: #007788;">string</span>, <span style="color: #0000ff;">double</span><span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #007788;">type</span> var2 <span style="color: #000080;">=</span> <span style="color: #FF0000;">&quot;;P&quot;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// var2 is a string</span>
elementType<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">3</span>, <span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">char</span>, std<span style="color: #008080;">::</span><span style="color: #007788;">string</span>, <span style="color: #0000ff;">double</span><span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #007788;">type</span> var3 <span style="color: #000080;">=</span> <span style="color:#800080;">3.14159</span><span style="color: #008080;">;</span> <span style="color: #666666;">// var3 is a double</span></pre></td></tr></table></div>

<p>The basic idea behind the <code>elementType struct</code> is that we give the struct an index and a variable number of types, and we can then use the struct&#8217;s <code>type</code> definition as a custom data type that maps back to whatever parameter the index value is associated with.  The above listing at lines 15 through 18 do exactly that.</p>
<p>What&#8217;s so great about that, and why would such a thing be useful?  While it may not seem like such an awesome thing to do at first, what we&#8217;ve done is found a way to pick elements out of a parameter pack by an index.  Essentially we&#8217;ve given ourselves a way to allow random access to packs.  The technique used is similar to the <code>count struct</code>, but not quite the same.  We&#8217;re still using recursion, but this time we need to stop the recursion at the right element.</p>
<p>Take a look at line 6 in the above listing.  This is where all the magic happens.  The <code>elementType struct</code> calls itself using the same variadic unrolling trick that <code>count</code> used, except we decrement N at each step of the way, until N reaches zero, and we hit the termination condition (the partial specialization for when N is zero at lines 9 through 12).  This means if we give an index of 5, we&#8217;ll get 5 recursions and the typedef that ends up getting defined is the one for the 6th parameter in the pack.</p>
<p>No problem right!  So let&#8217;s put all this together for something actually useful &#8212; a variadic tuple class:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" width="100%"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span> 
<span style="color: #0000ff;">struct</span> tuple <span style="color: #008000;">&#123;</span>
        tuple<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> Args<span style="color: #000040;">&amp;</span>... <span style="color: #007788;">args</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
tuple<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">char</span><span style="color: #000080;">&gt;</span> t1<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>, <span style="color: #FF0000;">'2'</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>The idea is we want to be able to use our tuple class like line 6 shows.  This is the example from <a href="/blog/2009-02-18/fun-with-variadic-templates-part-i">Part I</a>, and as I previously mentioned, this isn&#8217;t so useful.  Sure it lets us declare a tuple like we want, but it doesn&#8217;t actually store the tuple&#8217;s constructor arguments, nor does it give us any way to retrieve them.  So how are we going to store the elements?</p>
<p>Like all things variadic, we&#8217;re going to use a recursive template definition!  The tuple class will instantiate itself recursively, storing the arguments as it goes.  Basically the tuple class will become a compile-time linked list of sorts.  This means we&#8217;ll also have to use more metaprogramming to get access to the elements, but for now let&#8217;s take a look at the tuple class definition itself:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code" width="100%"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span> <span style="color: #0000ff;">struct</span> tuple<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">// recursion termination condition</span>
<span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;&gt;</span> <span style="color: #0000ff;">struct</span> tuple<span style="color: #000080;">&lt;&gt;</span> <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">// recursive tuple template</span>
<span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> Head, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">TailArgs</span><span style="color: #000080;">&gt;</span>
<span style="color: #0000ff;">struct</span> tuple<span style="color: #000080;">&lt;</span>Head, TailArgs...<span style="color: #000080;">&gt;</span> <span style="color: #008080;">:</span> <span style="color: #0000ff;">private</span> tuple<span style="color: #000080;">&lt;</span>TailArgs...<span style="color: #000080;">&gt;</span> <span style="color: #008000;">&#123;</span>
        <span style="color: #ff0000; font-style: italic;">/**
         * \brief  Recursive constructor
        **/</span>
        tuple<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> Head<span style="color: #000040;">&amp;</span> head, <span style="color: #0000ff;">const</span> TailArgs<span style="color: #000040;">&amp;</span>... <span style="color: #007788;">tailArgs</span><span style="color: #008000;">&#41;</span> <span style="color: #008080;">:</span>
                tuple<span style="color: #000080;">&lt;</span>TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span>tailArgs...<span style="color: #008000;">&#41;</span>,
                mHead<span style="color: #008000;">&#40;</span>head<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">private</span><span style="color: #008080;">:</span>
        Head mHead<span style="color: #008080;">;</span> <span style="color: #666666;">///&lt; Tuple head</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>Although this might look a bit weird at first, there&#8217;s not actually that much that&#8217;s new here.  We&#8217;re still just recursively defining a template class, and unrolling a parameter pack as we do it, but we&#8217;re doing it via inheritance this time.  The tuple class&#8217; base class is actually itself.  We use the same trick we&#8217;ve used before to extract the first parameter from the parameter pack, but now we pass the template&#8217;s <code>TailArgs</code> to the base class so that the base class&#8217; <code>Head</code> becomes the first element in its super class&#8217; <code>TailArgs</code>.</p>
<p>When the instantiation of this class finishes it will be a tuple class that has an <code>mHead</code> member variable set to the value of the first argument in the parameter pack given to the tuple&#8217;s constructor as the <code>head</code> variable (which you can see being set at line 14).  That tuple class will have a base class that itself has an <code>mHead</code> member variable which is set to be the second parameter in the initial instantiation&#8217;s parameter pack (or the first parameter given to the base class instantiation).  This process repeats until all the parameters in the initial pack are exhausted and the termination condition is hit.</p>
<p>Okay, so that&#8217;s pretty cool, but now what?  Basically we&#8217;ve got this weirdly constructed tuple class with a strange inheritance hierarchy that stores all the elements given to the constructor &#8212; we still need some method for extracting them!  This is where all our previous metaprogramming fun comes into play.  We&#8217;ve already built much of the framework we need to make this happen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
</pre></td><td class="code" width="100%"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> Head, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">TailArgs</span><span style="color: #000080;">&gt;</span>
<span style="color: #0000ff;">struct</span> tuple<span style="color: #000080;">&lt;</span>Head, TailArgs...<span style="color: #000080;">&gt;</span> <span style="color: #008080;">:</span> <span style="color: #0000ff;">private</span> tuple<span style="color: #000080;">&lt;</span>TailArgs...<span style="color: #000080;">&gt;</span> <span style="color: #008000;">&#123;</span>
        <span style="color: #ff0000; font-style: italic;">/**
         * \brief  Recursive constructor
        **/</span>
        tuple<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> Head<span style="color: #000040;">&amp;</span> head, <span style="color: #0000ff;">const</span> TailArgs<span style="color: #000040;">&amp;</span>... <span style="color: #007788;">tailArgs</span><span style="color: #008000;">&#41;</span> <span style="color: #008080;">:</span>
                tuple<span style="color: #000080;">&lt;</span>TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span>tailArgs...<span style="color: #008000;">&#41;</span>,
                mHead<span style="color: #008000;">&#40;</span>head<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
        <span style="color: #ff0000; font-style: italic;">/**
         * \brief  Get a tuple argument
        **/</span>
        <span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span> N<span style="color: #000080;">&gt;</span>
        <span style="color: #0000ff;">typename</span> elementType<span style="color: #000080;">&lt;</span>N, Head, TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #007788;">type</span>
        get<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">const</span> <span style="color: #008000;">&#123;</span>
                <span style="color: #0000ff;">return</span> getValueFromTuple<span style="color: #000080;">&lt;</span>N<span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #0000ff;">template</span> getValue<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> elementType<span style="color: #000080;">&lt;</span>N, Head, TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #007788;">type</span>, Head, TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">*</span><span style="color: #0000dd;">this</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
&nbsp;
        <span style="color: #ff0000; font-style: italic;">/**
         * \brief  Get the head value
        **/</span>
        Head                            head<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">const</span> <span style="color: #008000;">&#123;</span> <span style="color: #0000ff;">return</span> mHead<span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
        <span style="color: #ff0000; font-style: italic;">/**
         * \brief  Get the next argument in the chain
        **/</span>
        <span style="color: #0000ff;">const</span> tuple<span style="color: #000080;">&lt;</span>TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #000040;">&amp;</span>       next<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">const</span> <span style="color: #008000;">&#123;</span> <span style="color: #0000ff;">return</span> <span style="color: #000040;">*</span><span style="color: #0000dd;">this</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">private</span><span style="color: #008080;">:</span>
        Head                            mHead<span style="color: #008080;">;</span>                                  <span style="color: #666666;">///&lt; Tuple head</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">// let's use our new get function!</span>
tuple<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">char</span>, <span style="color: #0000ff;">bool</span>, <span style="color: #0000ff;">double</span><span style="color: #000080;">&gt;</span> t1<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>, <span style="color: #FF0000;">'2'</span>, <span style="color: #0000ff;">true</span>, <span style="color:#800080;">3.14159</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">char</span> c <span style="color: #000080;">=</span> t1.<span style="color: #007788;">get</span><span style="color: #000080;">&lt;</span><span style="color: #0000dd;">1</span><span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// template get function where the index specified returns that parameter of the tuple class</span></pre></td></tr></table></div>

<p>The first function we&#8217;ve added is the tuple&#8217;s <code>get function</code>, which can be seen being used at line 37.  So how the %@*! does that work anyway?  </p>
<p>Our new class member template function works pretty much the same as <a href="http://www.boost.org/doc/libs/1_38_0/libs/tuple/doc/tuple_users_guide.html">Boost&#8217;s tuple library</a> (although much simpler).  All we&#8217;ve done is defined a template function that takes an integer as a template parameter, and we&#8217;ve used our <code>elementType struct</code>, which we&#8217;ve already seen from earlier in the article, to set the return type of the function to whatever type is at that index in the tuple&#8217;s parameter pack!</p>
<p>We are missing some pretty important code though.  The <code>get function</code> then calls the <code>getValue function</code>, which we&#8217;ve yet to define:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
</pre></td><td class="code" width="100%"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span> N<span style="color: #000080;">&gt;</span>
<span style="color: #0000ff;">struct</span> getValueFromTuple <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> ReturnType, <span style="color: #0000ff;">typename</span> Head, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">TailArgs</span><span style="color: #000080;">&gt;</span>
        <span style="color: #0000ff;">static</span> ReturnType getValue<span style="color: #008000;">&#40;</span>tuple<span style="color: #000080;">&lt;</span>Head, TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #000040;">&amp;</span> t<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>                                                                          
                <span style="color: #0000ff;">return</span> getValueFromTuple<span style="color: #000080;">&lt;</span>N <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #0000ff;">template</span> getValue<span style="color: #000080;">&lt;</span>ReturnType, TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span>t.<span style="color: #007788;">next</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>                                                                          
&nbsp;
        <span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> ReturnType, <span style="color: #0000ff;">typename</span> Head, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">TailArgs</span><span style="color: #000080;">&gt;</span>
        <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> ReturnType getValue<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> tuple<span style="color: #000080;">&lt;</span>Head, TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #000040;">&amp;</span> t<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>                                                                          
                <span style="color: #0000ff;">return</span> getValueFromTuple<span style="color: #000080;">&lt;</span>N <span style="color: #000040;">-</span> <span style="color: #0000dd;">1</span><span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #0000ff;">template</span> getValue<span style="color: #000080;">&lt;</span>ReturnType, TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span>t.<span style="color: #007788;">next</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>                                                                          
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>                                                                           
&nbsp;
<span style="color: #666666;">// termination condition for when getValueFromTuple is instantiated with zero</span>
<span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;&gt;</span>
<span style="color: #0000ff;">struct</span> getValueFromTuple<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">0</span><span style="color: #000080;">&gt;</span> <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> ReturnType, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span>
        <span style="color: #0000ff;">static</span> ReturnType getValue<span style="color: #008000;">&#40;</span>tuple<span style="color: #000080;">&lt;</span>Args...<span style="color: #000080;">&gt;</span><span style="color: #000040;">&amp;</span> t<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>                                                                         
                <span style="color: #0000ff;">return</span> t.<span style="color: #007788;">head</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>                                                                         
&nbsp;
        <span style="color: #0000ff;">template</span> <span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> ReturnType, <span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span>
        <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> ReturnType getValue<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> tuple<span style="color: #000080;">&lt;</span>Args...<span style="color: #000080;">&gt;</span><span style="color: #000040;">&amp;</span> t<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>                                                                         
                <span style="color: #0000ff;">return</span> t.<span style="color: #007788;">head</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>                                                                         
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>This might look a bit complicated, but there&#8217;s absolutely nothing here we haven&#8217;t seen before.  We define a template struct called getValueFromTuple that takes an integer as a template parameter.  This is done so that we can partially specialize the struct so we have a termination condition for the function we actually need (<code>getValue</code>).  C++ function templates are a bit more limited than class templates in how we can partially specialize them &#8212; specific specializations by constants are not allowed, so we use this struct wrapping trick to give us what we need.</p>
<p>The <code>getValue function</code> is also nothing new.  It does the exact same recursive unrolling that the <code>elementType struct</code> uses to extract a specific parameter by index.  The function recursively instantiates itself until N reaches zero and the termination condition is called.  The trick here is that <code>getValue</code> calls the tuple class&#8217; <code>next() function</code> during each instantiation, which passes the tuple&#8217;s base class to the next instantiation of the function.  All we&#8217;re doing here is walking the &#8220;list&#8221; of parameters passed to the tuple&#8217;s constructor, we just happen to be doing it by walking the class hierarchy.</p>
<p>Let&#8217;s take a quick look at the tuple&#8217;s <code>next() function</code> to see how this works:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">const</span> tuple<span style="color: #000080;">&lt;</span>TailArgs...<span style="color: #000080;">&gt;</span><span style="color: #000040;">&amp;</span>       next<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">const</span> <span style="color: #008000;">&#123;</span> <span style="color: #0000ff;">return</span> <span style="color: #000040;">*</span><span style="color: #0000dd;">this</span><span style="color: #008080;">;</span> <span style="color: #008000;">&#125;</span></pre></div></div>

<p>This is how we trick the compiler into returning its base class &#8212; which has an <code>mHead</code> that contains the next parameter in the pack.  The return type is the same type that the base class has, so when we return ourselves through the <code>this pointer</code> the compiler does the right thing and casts down to the base class.</p>
<p>So there we go: a fully functioning variadic tuple class that stores its constructor parameters and gives us a way to get at them by their index!  We can now do this:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">tuple<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">char</span>, string, <span style="color: #0000ff;">double</span><span style="color: #000080;">&gt;</span> t1<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>, <span style="color: #FF0000;">'2'</span>, <span style="color: #FF0000;">&quot;variadics rule&quot;</span>, <span style="color:#800080;">3.14159</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">int</span>    var0 <span style="color: #000080;">=</span> t1.<span style="color: #007788;">get</span><span style="color: #000080;">&lt;</span><span style="color: #0000dd;">0</span><span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// var0 is now 1</span>
<span style="color: #0000ff;">char</span>   var1 <span style="color: #000080;">=</span> t1.<span style="color: #007788;">get</span><span style="color: #000080;">&lt;</span><span style="color: #0000dd;">1</span><span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// var1 is '2'</span>
string var2 <span style="color: #000080;">=</span> t1.<span style="color: #007788;">get</span><span style="color: #000080;">&lt;</span><span style="color: #0000dd;">2</span><span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// var2 is now &quot;variadics rule&quot;</span>
<span style="color: #0000ff;">double</span> var3 <span style="color: #000080;">=</span> t1.<span style="color: #007788;">get</span><span style="color: #000080;">&lt;</span><span style="color: #0000dd;">3</span><span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #666666;">// var3 is now 3.14159</span></pre></div></div>

<p>Sweet!  Of course there are many improvements that could be made such as allowing access to elements by reference (for efficiently storing and retrieving large structures), adding iterators, copy constructors, operator overrides, etc, but I&#8217;ll leave that stuff as reader exercises <img src='http://timburrell.net/smilies/yahoo_smiley.gif' alt='&#58;&#41;' class='wp-smiley' width='18' height='18' title='&#58;&#41;' />.</p>
<p>For the next installment the plan is to go even deeper down the the metaprogramming hole, and see what kind of compile-time fun we can have.  Template metaprogramming is a really useful skill to have; the more you can do at compile time, the fewer instructions need to get executed at runtime, plus, as we&#8217;ve just seen in this article, metaprogramming trickery can make other code more readable and, in turn, easier to maintain.  Not only that but playing around with template metaprogramming is a great way to get to know your compiler, and the C++ language!</p>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/blog/2009-02-22/fun-with-variadic-templates-part-ii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fun with Variadic Templates: Part I</title>
		<link>http://timburrell.net/blog/2009-02-18/fun-with-variadic-templates-part-i/</link>
		<comments>http://timburrell.net/blog/2009-02-18/fun-with-variadic-templates-part-i/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 23:15:35 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++0x]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Effective C++]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=371</guid>
		<description><![CDATA[<p>If you&#8217;re a C++ user, you&#8217;ve probably heard that the up and coming language revision, C++0x, is adding support for variadic templates.  And if you&#8217;re anything like me, perhaps your first question was &#8220;Cool, so what good are they?&#8221;  And I would say &#8220;Excellent question!&#8221; to such an inquiry, because C++ has been [...]</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=Fun%20with%20Variadic%20Templates%3A%20Part%20I&amp;body=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20I" title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20I" title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20I" title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Fun%20with%20Variadic%20Templates%3A%20Part%20I&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20I" title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F&amp;t=Fun%20with%20Variadic%20Templates%3A%20Part%20I" title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20I&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=If%20you%27re%20a%20C%2B%2B%20user%2C%20you%27ve%20probably%20heard%20that%20the%20up%20and%20coming%20language%20revision%2C%20C%2B%2B0x%2C%20is%20adding%20support%20for%20variadic%20templates.%20%20And%20if%20you%27re%20anything%20like%20me%2C%20perhaps%20your%20first%20question%20was%20%22Cool%2C%20so%20what%20good%20are%20they%3F%22%20%20And%20I%20would%20say%20%22E" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-18%2Ffun-with-variadic-templates-part-i%2F&amp;title=Fun%20with%20Variadic%20Templates%3A%20Part%20I" title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/blog/">Blog</a> by Tim. <a href="http://timburrell.net/blog/2009-02-18/fun-with-variadic-templates-part-i/#comments">Leave a Comment</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a C++ user, you&#8217;ve probably heard that the up and coming language revision, C++0x, is adding support for variadic templates.  And if you&#8217;re anything like me, perhaps your first question was &#8220;Cool, so what good are they?&#8221;  And I would say &#8220;Excellent question!&#8221; to such an inquiry, because C++ has been doing variadic style templates and functions for a while now.  Even C could do variadic functions with its ellipsis operator and vararg API.  Combine that with function overloading and default function arguments and you&#8217;ve got yourself a pretty powerful variadic function system.</p>
<p>The same goes for C++&#8217;s templates.  Have you ever wondered how <a href="http://www.boost.org/doc/libs/1_37_0/libs/tuple/doc/tuple_users_guide.html">Boost&#8217;s Tuple library</a> works?  Well, Boost does a lot of cool complex things, like defining variadic templates using preprocessor and template metaprogramming, but in the end it&#8217;s actually pretty simple:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">struct</span> NullArg <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">template</span><span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span> Type1 <span style="color: #000080;">=</span> NullArg, <span style="color: #0000ff;">typename</span> Type2 <span style="color: #000080;">=</span> NullArg, <span style="color: #0000ff;">typename</span> Type3 <span style="color: #000080;">=</span> NullArg<span style="color: #000080;">&gt;</span> 
<span style="color: #0000ff;">class</span> tuple <span style="color: #008000;">&#123;</span>
        tuple<span style="color: #008000;">&#40;</span>T0 t0<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span>
        tuple<span style="color: #008000;">&#40;</span>T0 t0, T1 t1<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span>
        tuple<span style="color: #008000;">&#40;</span>T0 t0, T1 t1, T2 t2<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
tuple<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">char</span><span style="color: #000080;">&gt;</span> t<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>, <span style="color: #FF0000;">'2'</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>Of course this tuple class doesn&#8217;t store or let you retrieve arguments, only allows for up to three parameters (adding more arguments, while monotonous without some preprocessor fun, is easy), and there&#8217;s some definite metaprogramming magics that go into tuple&#8217;s get&lt;X&gt;() template function, but it&#8217;s all still possible.</p>
<p>Getting back to the point: alright so we can, in effect, do variadic templates already, even without fancy C++0x.  So why are they good?  Well, all we&#8217;re really able to do is emulate variadic templates.  The compiler always sees those &#8220;variadic&#8221; structs as having the maximum number of parameters, which means extremely long mangled names (increased binary size), slower compilation time, stupidly complex compiler diagnostic output, and did I mention slower compilation time?  Not to mention that it&#8217;s an ugly and hacky way to achieve something that could be much more elegant.  It&#8217;s fine for libraries to define handy structs with variadic emulation, but do you really want your production code nastied up like that?  Likely not. </p>
<p>So, in come&#8217;s C++0x&#8217;s variadic templates.  They&#8217;re easy, fun, and the whole family can use them!  The syntax looks like this:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span><span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span> 
<span style="color: #0000ff;">class</span> tuple <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
tuple<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">char</span>, <span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">bool</span><span style="color: #000080;">&gt;</span> t<span style="color: #008080;">;</span></pre></div></div>

<p>Not so useful yet, but as you can see the ellipsis operator is given new purpose, and in this case it&#8217;s meant to denote a template parameter pack.  It can also be used to denote a parameter pack expansion, like this:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span><span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span> 
<span style="color: #0000ff;">class</span> tuple <span style="color: #008000;">&#123;</span>
        tuple<span style="color: #008000;">&#40;</span>Args...<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
tuple<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">char</span>, <span style="color: #0000ff;">int</span>, <span style="color: #0000ff;">bool</span><span style="color: #000080;">&gt;</span> t<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">'1'</span>, <span style="color: #0000dd;">2</span>, <span style="color: #0000ff;">false</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></div></div>

<p>Here we&#8217;ve created a variadic tuple template and expanded the Args parameter pack in the constructor, thus letting us pass a variable number of arguments to the tuple&#8217;s constructor.</p>
<p>You can use the pack expansion pretty much anywhere it makes sense: base classes, constructor initializers, you name it, but in my opinion the real power of variadics comes once you start using them in conjunction with template functions and we begin to utilize C++&#8217;s powers of argument deduction.  Take a look at this:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">template</span><span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span>
<span style="color: #0000ff;">struct</span> tuple <span style="color: #008000;">&#123;</span>
        tuple<span style="color: #008000;">&#40;</span>Args...<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">template</span><span style="color: #000080;">&lt;</span><span style="color: #0000ff;">typename</span>... <span style="color: #007788;">Args</span><span style="color: #000080;">&gt;</span>
tuple<span style="color: #000080;">&lt;</span>Args...<span style="color: #000080;">&gt;</span> make_tuple<span style="color: #008000;">&#40;</span>Args... <span style="color: #007788;">args</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">return</span> tuple<span style="color: #000080;">&lt;</span>Args...<span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span>args...<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">auto</span> t1 <span style="color: #000080;">=</span> make_tuple<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">2</span>, <span style="color: #0000dd;">3</span>, <span style="color: #0000dd;">4</span>, <span style="color: #0000dd;">5</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

<p>Nice and clean!  There&#8217;s no need to specify all the template arguments to make_tuple because the compiler deduces them from the function arguments!  Also note the use of the C++0x auto keyword there.  Auto variables are still statically typed, they just get their type set to whatever initializes them.</p>
<p>So there&#8217;s the ultra-basics.  Up next I&#8217;m going to start exploring what you can really do with variadic templates &#8212; like how you can extract an arbitrary element from a pack, pack searching, and other fun compile time trickery.  You&#8217;d think Bjarne might have wanted to allow random access to variadic parameter lists, but that just wouldn&#8217;t be any fun.  Why do things with random access when you can do it all with recursion!</p>
<p>Ready for more?  Head to <a href="/blog/2009-02-18/fun-with-variadic-templates-part-i/">Part II</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/blog/2009-02-18/fun-with-variadic-templates-part-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Links from the Tubes</title>
		<link>http://timburrell.net/blog/2009-02-10/links-from-the-tubes/</link>
		<comments>http://timburrell.net/blog/2009-02-10/links-from-the-tubes/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 12:11:32 +0000</pubDate>
		<dc:creator>Tim.</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://timburrell.net/?p=395</guid>
		<description><![CDATA[<p>Random tube weirdness:</p>
<p>Mike the Headless Chicken<br />
Mayonnaise<br />
Cop&#8217;s Eye<br />
Space stations kick ass</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share this article:</strong>
</div>

	<a rel="nofollow" target="_blank" href="mailto:?subject=Links%20from%20the%20Tubes&amp;body=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F" title="E-mail this story to a friend!"><img src="http://timburrell.net/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F&amp;title=Links%20from%20the%20Tubes" title="Reddit"><img src="http://timburrell.net/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F&amp;title=Links%20from%20the%20Tubes" title="StumbleUpon"><img src="http://timburrell.net/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F&amp;title=Links%20from%20the%20Tubes" title="Digg"><img src="http://timburrell.net/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F" title="Technorati"><img src="http://timburrell.net/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://slashdot.org/bookmark.pl?title=Links%20from%20the%20Tubes&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F" title="Slashdot"><img src="http://timburrell.net/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F&amp;title=Links%20from%20the%20Tubes" title="del.icio.us"><img src="http://timburrell.net/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F&amp;t=Links%20from%20the%20Tubes" title="Facebook"><img src="http://timburrell.net/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F&amp;title=Links%20from%20the%20Tubes&amp;source=timburrell.net+All+that+is+Tim+Burrell&amp;summary=Random%20tube%20weirdness%3A%0D%0A%0D%0AMike%20the%20Headless%20Chicken%0D%0AMayonnaise%0D%0ACop%27s%20Eye%0D%0ASpace%20stations%20kick%20ass%0D%0A" title="LinkedIn"><img src="http://timburrell.net/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://twitthis.com/twit?url=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F" title="TwitThis"><img src="http://timburrell.net/wp-content/plugins/sociable/images/twitter.png" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Ftimburrell.net%2Fblog%2F2009-02-10%2Flinks-from-the-tubes%2F&amp;title=Links%20from%20the%20Tubes" title="Google"><img src="http://timburrell.net/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a>

</div>
<small><em>posted in <a href="http://timburrell.net/topics/blog/">Blog</a> by Tim. <a href="http://timburrell.net/blog/2009-02-10/links-from-the-tubes/#comments">Leave a Comment</a><br />&copy;2012 <a href="http://timburrell.net">timburrell.net</a>. All Rights Reserved.</em></small>]]></description>
			<content:encoded><![CDATA[<p>Random tube weirdness:</p>
<ul>
<li /><a href="miketheheadlesschicken.org">Mike the Headless Chicken</a>
<li /><a href="http://www.ifoce.com/eaters.php?action=detail&#038;sn=18">Mayonnaise</a>
<li /><a href="http://news.bbc.co.uk/1/hi/england/manchester/7842282.stm">Cop&#8217;s Eye</a>
<li /><a href="http://www.youtube.com/watch?v=JgBgmw-2U8c">Space</a> <a href="http://www.youtube.com/watch?v=F-yIqxoMBVU">stations</a> <a href="http://www.youtube.com/watch?v=srQdr6kGii4">kick</a> <a href="http://www.youtube.com/watch?v=lswCuvcA7YQ">ass</a>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://timburrell.net/blog/2009-02-10/links-from-the-tubes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

