<?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>uwMike &#187; Programming</title>
	<atom:link href="http://uwmike.com/categories/geekery/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://uwmike.com</link>
	<description>Hacker, Engineer, Dancer, Gentleman</description>
	<lastBuildDate>Wed, 24 Feb 2010 14:54:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>T9 Words</title>
		<link>http://uwmike.com/articles/2009/06/06/t9-words/</link>
		<comments>http://uwmike.com/articles/2009/06/06/t9-words/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 16:54:36 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://uwmike.com/?p=568</guid>
		<description><![CDATA[Somewhere, a Telus rep is congratulating himself.
Four months ago, I was completely ready to ditch Telus and switch my phone service to an [MVNO](http://en.wikipedia.org/wiki/Mobile_virtual_network_operator). Indeed, if Zehrs hadn&#8217;t been repeatedly sold out of the handset I wanted, I&#8217;d probably be on the President&#8217;s Choice pay-as-you-go service. For light usage such as mine, it really is—by [...]]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2009/06/06/t9-words/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pushing Data to the Browser With Open-Get</title>
		<link>http://uwmike.com/articles/2008/01/22/browser-data-push/</link>
		<comments>http://uwmike.com/articles/2008/01/22/browser-data-push/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 04:38:39 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Tech]]></category>

		<guid isPermaLink="false">http://uwmike.com/articles/2008/01/22/browser-data-push/</guid>
		<description><![CDATA[For anyone who&#8217;s curious how Gmail&#8217;s chat widget notifies your browser that a new message has arrived, be curious no longer: here&#8217;s a simplified page that [demonstrates the method used](http://sandbox.mikepurvis.com/js/openget/).
Note: Before we go on, I should just clarify that nothing here is based on insider knowledge of Google (I was never anywhere near the Gmail [...]]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2008/01/22/browser-data-push/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Anatomy of an Open Social Network</title>
		<link>http://uwmike.com/articles/2007/07/08/open-social-network/</link>
		<comments>http://uwmike.com/articles/2007/07/08/open-social-network/#comments</comments>
		<pubDate>Sun, 08 Jul 2007 20:15:34 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Social]]></category>

		<guid isPermaLink="false">http://uwmike.com/articles/2007/07/08/open-social-network/</guid>
		<description><![CDATA[My Dad has Facebook. All my friends have Facebook. I have Facebook. I can count on one hand the people my age I know, that do not have Facebook. The people I met last term in New York and San Francisco all had Facebook.

Anyone who talks about "social networks" today as if they mean anything other than Facebook is being coy, or is deluded.

Classmates and Friendster haven't been important in years; in the wake of its buyout, MySpace is rapidly losing relevance outside of musical artists using it for promotion.

Facebook is the model of a modern, successful, social website. It hits a very pleasant sweet spot between elegance, user-friendliness, and attention to [issues of privacy](http://uwaterloo.facebook.com/sitetour/privacy.php). But there is one major problem: If Facebook Inc screws up, the elegance and user-friendliness can all go away (some of the new Apps are definitely pushing it), and your privacy might go away, too. Facebook is a *closed system*; it's a single point of failure on all three counts...]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2007/07/08/open-social-network/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A Conch Shell Clock</title>
		<link>http://uwmike.com/articles/2007/06/10/conch-shell-clock/</link>
		<comments>http://uwmike.com/articles/2007/06/10/conch-shell-clock/#comments</comments>
		<pubDate>Sun, 10 Jun 2007 08:39:03 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Tech]]></category>

		<guid isPermaLink="false">http://uwmike.com/articles/2007/06/10/conch-shell-clock/</guid>
		<description><![CDATA[I've written before about the [power of JavaScript as a visualization tool](http://uwmike.com/articles/2007/01/08/javascript-visualization/). Then, I'd been talking about it in conjunction with straight-up HTML and SVG. Now I've got a neat new demo to share that takes advantage of Canvas.

You're going to need Firefox or Safari to view this, but [check it out](http://sandbox.mikepurvis.com/js/clock/)...]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2007/06/10/conch-shell-clock/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Prettify Bookmarklet</title>
		<link>http://uwmike.com/articles/2007/03/22/prettify-bookmarklet/</link>
		<comments>http://uwmike.com/articles/2007/03/22/prettify-bookmarklet/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 19:45:29 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Tech]]></category>

		<guid isPermaLink="false">http://uwmike.com/articles/2007/03/22/prettify-bookmarklet/</guid>
		<description><![CDATA[Google recently released [google-code-prettify](http://code.google.com/p/google-code-prettify/), a nifty little JavaScript for colouring up source code embedded in HTML pages. Anyway, here&#8217;s a version that you can [install as a bookmarklet](http://sandbox.mikepurvis.com/js/prettify/).]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2007/03/22/prettify-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parallelism</title>
		<link>http://uwmike.com/articles/2007/02/14/parallelism/</link>
		<comments>http://uwmike.com/articles/2007/02/14/parallelism/#comments</comments>
		<pubDate>Wed, 14 Feb 2007 23:18:58 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://uwmike.com/articles/2007/02/14/parallelism/</guid>
		<description><![CDATA[Bjarne Stroustrup, the inventor of the C++ programming language:

<blockquote>All that said, I don't know what the next major conceptual shift will be, but I bet that it will somehow be related to the management of concurrency. As programmers, we have been notoriously bad at thinking about lots of things happening simultaneously, and soon our everyday computers will have 32 cores.</blockquote>

From a recent interview in Technology Review, [part 1](http://www.technologyreview.com/printer_friendly_article.aspx?id=17831) and [part 2](http://www.technologyreview.com/printer_friendly_article.aspx?id=17868).

In contrast ...]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2007/02/14/parallelism/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Engines and Fireflies</title>
		<link>http://uwmike.com/articles/2007/01/08/javascript-visualization/</link>
		<comments>http://uwmike.com/articles/2007/01/08/javascript-visualization/#comments</comments>
		<pubDate>Tue, 09 Jan 2007 03:40:51 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://uwmike.com/articles/2007/01/08/javascript-visualization/</guid>
		<description><![CDATA[I had another opportunity recently to make a visualization out of JavaScript; I thought I'd share two examples of using the language for this purpose...]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2007/01/08/javascript-visualization/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Elevator Question</title>
		<link>http://uwmike.com/articles/2006/10/25/elevators/</link>
		<comments>http://uwmike.com/articles/2006/10/25/elevators/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 17:26:30 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://uwmike.com/articles/2006/10/25/elevators/</guid>
		<description><![CDATA[In an [article about telephone interviews](http://www.joelonsoftware.com/articles/ThePhoneScreen.html), one of the design questions Joel says he asks is, *"How would you implement code to operate the elevators in a high rise?"*

Presumably, he's looking for [something like this](http://everything2.com/index.pl?node_id=815179); a system that avoids "starving" the top and bottom floors.

<img id="image275" src="http://uwmike.com/wp-content/uploads/2006/10/trl-elevator.jpg" alt="Toronto Reference Library Elevator" href="http://en.wikipedia.org/wiki/Image:Toronto_reference_library_2nd_floor_view.jpg" method="float-left" />It's a really interesting question, though. Legend has it that [SimTower](http://en.wikipedia.org/wiki/SimTower) had its origins as an elevator simulation, but then the SimTower elevator cars have that bizarre property that they can pass each other in a single shaft. I've heard explanations that each "shaft" represents a 15-deep bank of elevators, but that would require each condo and office to also be a group of 15, which in turn messes with all the other money- and people-scales in the game; ultimately, I think it's easier to treat the elevators as fantastic and the game rules as highly abstract.]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2006/10/25/elevators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Co-dependent Parts</title>
		<link>http://uwmike.com/articles/2006/10/17/co-dependent-parts/</link>
		<comments>http://uwmike.com/articles/2006/10/17/co-dependent-parts/#comments</comments>
		<pubDate>Tue, 17 Oct 2006 06:46:47 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://uwmike.com/articles/2006/10/17/co-dependent-parts/</guid>
		<description><![CDATA[In an [article about mistakes a startup can make](http://paulgraham.com/startupmistakes.html), Paul Graham writes:

> Think about the overall goal, then **start by writing the smallest subset of it that does anything useful**. If it's a subset, you'll have to write it anyway, so in the worst case you won't be wasting your time. But more likely you'll find that implementing a working subset is both good for morale and helps you see more clearly what the rest should do.

I found this interesting simply because it has been my strategy for tackling our Realtime Operating Systems project this term. No individual piece of the project is particularly difficult, but it *is* a little tricky to map out a plan for incrementally developing it.

It's obvious that certain auxiliary things can be bolted on later, but the majority of the assignment has to be in place before it does much of anything at all.

My approach? Get the major bits running in entirely separate, proof-of-concept programs. One group member is implementing a simple text parser, another the IRQ system, and I'm working with the final person on the switching stuff. There will still be an awkward moment when these parts have to be glued together, but at least each component will be known to function correctly on its own.]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2006/10/17/co-dependent-parts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Blast from the Past</title>
		<link>http://uwmike.com/articles/2006/10/04/empyrean/</link>
		<comments>http://uwmike.com/articles/2006/10/04/empyrean/#comments</comments>
		<pubDate>Wed, 04 Oct 2006 19:23:37 +0000</pubDate>
		<dc:creator>Mike Purvis</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://uwmike.com/articles/2006/10/04/empyrean/</guid>
		<description><![CDATA[Some weeks ago, I randomly ran into an old acquaintance with whom I had a brief but extraordinarily profitable working relationship with during my last year of high school. As partners in *Drunken Ogre Entertainment*, we produced this little gem, over the course of a few shorts months of work:





Unfortunately, it won&#8217;t run playably under [...]]]></description>
		<wfw:commentRss>http://uwmike.com/articles/2006/10/04/empyrean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- uwMike.com will return...-->
