<?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>Jason Priem</title>
	<atom:link href="http://jasonpriem.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jasonpriem.com</link>
	<description></description>
	<lastBuildDate>Fri, 22 Jan 2010 21:38:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Portrait of the artist as a phrenology illustration</title>
		<link>http://jasonpriem.com/2010/01/portrait-of-the-artist-as-a-phrenology-illustration/</link>
		<comments>http://jasonpriem.com/2010/01/portrait-of-the-artist-as-a-phrenology-illustration/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 21:25:31 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[infovis]]></category>
		<category><![CDATA[me]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=299</guid>
		<description><![CDATA[The first assignment in my infoVis class was to make a visual introduction to ourselves.  I drew a self-portrait in profile, then added my categorized interests in the style of a 19th-century phrenology illustration (compare with actual period illustrations here and here).
Phrenology is interesting stuff.  Though phrenologists had nearly everything wrong, modern neuroimaging has demonstrated [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jasonpriem.com/wp-content/uploads/2009/04/phrenology-interests.jpg"><img class="alignleft size-medium wp-image-297" title="An assignment in my infoVis class: self-portrait as a phrenology illustration" src="http://jasonpriem.com/wp-content/uploads/2009/04/phrenology-interests-256x300.jpg" alt="An assignment in my infoVis class: self-portrait as a phrenology illustration" width="256" height="300" /></a>The first assignment in my infoVis class was to make a visual introduction to ourselves.  I drew a self-portrait in profile, then added my categorized interests in the style of a 19th-century <a href="http://en.wikipedia.org/wiki/Phrenology">phrenology</a> illustration (compare with actual period illustrations <a href="http://www.as.ua.edu/history/new/html/faculty/rothman.html">here</a> and <a href="http://mysite.verizon.net/res0im1v/donettesteelepsychology/">here</a>).</p>
<p>Phrenology is interesting stuff.  Though phrenologists had nearly everything wrong, modern neuroimaging has demonstrated that one  important part of their core idea was right: many psychological functions really are highly localized in the brain.  And they made a lot of really cool infographics.  Actually, maybe this is pseudoscience in general; palmistry and astrology also make silly data into some neat-looking infovis.  This same exercise would be fun with made-up star charts and palm diagrams.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2010/01/portrait-of-the-artist-as-a-phrenology-illustration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>$35 homemade whiteboard coffee table</title>
		<link>http://jasonpriem.com/2009/12/35-homemade-whiteboard-coffee-table/</link>
		<comments>http://jasonpriem.com/2009/12/35-homemade-whiteboard-coffee-table/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 00:10:14 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[infovis]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=270</guid>
		<description><![CDATA[Whiteboards are great infovis tools, but expensive and need space.  Solution: the whiteboard coffee table.  It&#8217;s the very poor man&#8217;s Microsoft Surface (with no BSOD!).  Also, if your taste in home decor tends toward the spartan (as does mine), this makes a great dinner table; it&#8217;s durable and really easy to clean.  Most importantly, it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jasonpriem.com/wp-content/uploads/2009/12/DSC02327.JPG"><img class="alignleft size-full wp-image-274" src="http://jasonpriem.com/wp-content/uploads/2009/12/DSC02327.JPG" alt="DSC02327" width="183" height="233" /></a>Whiteboards are great infovis tools, but expensive and need space.  Solution: the whiteboard coffee table.  It&#8217;s the very poor man&#8217;s <a href="http://www.microsoft.com/surface/">Microsoft Surface </a>(with no <a href="http://en.wikipedia.org/wiki/Blue_Screen_of_Death">BSOD</a>!).  Also, if your taste in home decor tends toward the spartan (as does mine), this makes a great dinner table; it&#8217;s durable and really easy to clean.  Most importantly, it&#8217;s cheap and you only need a drill and few hours to make it.  Here&#8217;s how:</p>
<p><span style="color: #ffffff;">.</span></p>
<p><span style="color: #ffffff;">.</span></p>
<p><span style="color: #ffffff;">.</span></p>
<p><span style="color: #ffffff;">.</span></p>
<h3>Materials:</h3>
<ul>
<li>Some 1&#215;2 boards (you can pre-sanded ones for about $2 a piece)</li>
<li>A panel of &#8220;tile board,&#8221; which you can get from Home Depot or whatever for about 10 bucks.</li>
<li>some 3&#8243; drywall screws</li>
<li>some 1 1/2&#8243; drywall screws</li>
<li>wood glue</li>
</ul>
<h3>Tools:</h3>
<ul>
<li>Drill with a screwdriver bit</li>
<li>handsaw (may need it, may not; see below)</li>
<li>tablesaw or circular saw to cut the tileboard (may need it, may not; see below)</li>
</ul>
<p><a href="http://jasonpriem.com/wp-content/uploads/2009/12/coffee-table-copy.PNG"><img class="size-full wp-image-275 alignnone" title="coffee table copy" src="http://jasonpriem.com/wp-content/uploads/2009/12/coffee-table-copy.PNG" alt="coffee table copy" width="500" height="479" /></a></p>
<h3>Construction:</h3>
<ol>
<li>Decide on the dimensions you want, and figure how many 1&#215;2&#8217;s you need (see the diagram above for the general plan).  You may need to be flexible here, depending on the sized of tile board panel you&#8217;re able to procure.</li>
<li>Get the materials.  If you ask nice, a lot of times the store will cut the tile board for you, or they may have a 2&#8242; x 4&#8242;  piece available.  You can probably get them to cut the 1 x 2&#8217;s for you, as well.</li>
<li>Once you get the materials home, cut anything that still needs cuttin&#8217;.</li>
<li>Fasten everything together with the appropriate-sized drywall screws (The diagram shows where they go).  I added glue, but you don&#8217;t really need it.  Once the frame is done, glue the top on. Done!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2009/12/35-homemade-whiteboard-coffee-table/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Zotero in a separate window</title>
		<link>http://jasonpriem.com/2009/09/use-zotero-in-a-separate-window/</link>
		<comments>http://jasonpriem.com/2009/09/use-zotero-in-a-separate-window/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 21:05:40 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[academia]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=260</guid>
		<description><![CDATA[
As I&#8217;ve written before, I love the free citation manager Zotero.   And  the group and sharing features that just dropped as part of v2.0b7, while still a little buggy, are taking the awesomeness up another level.
But one thing about Zotero has always really annoyed me: the horizantally-split screen.  I never feel like I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jasonpriem.com/wp-content/uploads/2009/09/zotero-two-screens1.jpg"><img class="size-full wp-image-263" title="zotero-two-screens1" src="http://jasonpriem.com/wp-content/uploads/2009/09/zotero-two-screens1.jpg" alt="zotero-two-screens1" width="600" height="240" /></a></p>
<p>As I&#8217;ve <a href="http://jasonpriem.com/2008/05/zotero-the-least-known-triumph-of-open-source/">written before</a>, I love the free citation manager <a href="http://www.zotero.org">Zotero</a>.   And  the group and sharing features that just dropped as part of <a href="http://www.zotero.org/support/changelog#changes_in_2.0b7_september_15_2009">v2.0b7</a>, while still a little buggy, are taking the awesomeness up another level.</p>
<p>But one thing about Zotero has always really annoyed me: the horizantally-split screen.  I never feel like I have enough vertical context for either my Zotero library or the web page I&#8217;m viewing.   Meanwhile, I&#8217;ve got a whole &#8216;nother monitor just sitting there empty. Some other folks <a href="http://forums.zotero.org/discussion/222/sidebar/">have complained</a> about this too, suggesting a sidebar view for Zotero.</p>
<p>Today, though, I realized that there&#8217;s a really obvious solution: just open up a new Firefox window (ctrl+n), put it on my other monitor, and display Zotero full-screen there.  Dual-monitor workflow bliss.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2009/09/use-zotero-in-a-separate-window/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Obfuscate no more: why your email address should go au naturale</title>
		<link>http://jasonpriem.com/2009/05/stop-obfuscating-email/</link>
		<comments>http://jasonpriem.com/2009/05/stop-obfuscating-email/#comments</comments>
		<pubDate>Tue, 12 May 2009 21:11:12 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[semantic web]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=228</guid>
		<description><![CDATA[I was recently redesigning my homepage, and I wanted to include my email address.  I knew that only n00b looz3rz display their addy in plain site for spambots to harvest, so I applied a little light obfuscation,  like they do on php.net and million other sites: &#8220;myname at jasonpriem dot com.&#8221;
&#8220;Take that, spammer scum!&#8221; I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jasonpriem.com/wp-content/uploads/2009/05/obfuscation-decoder.png"><img class="alignleft size-full wp-image-245" title="screenshot of the obfuscation decoder demo" src="http://jasonpriem.com/wp-content/uploads/2009/05/obfuscation-decoder.png" alt="screenshot of the obfuscation decoder demo" width="300" height="275" /></a>I was recently redesigning my <a href="http://jasonpriem.com">homepage</a>, and I wanted to include my email address.  I knew that only n00b looz3rz display their addy in plain site for spambots to harvest, so I applied a little light obfuscation,  like they do on <a href="http://www.php.net">php.net</a> and million other sites: &#8220;myname at jasonpriem dot com.&#8221;</p>
<p>&#8220;Take that, spammer scum!&#8221; I thought as I finished, basking in my newfound invulnerability to the v1@gr@-hawking vermin.  After all, if lots of people use <a href="http://en.wikipedia.org/wiki/Address_munging">address munging</a>, it must work, right?</p>
<p>Right?</p>
<p>Darn it, now I&#8217;ve got to start reading about it.  So I did.  And after a few hours of reading blogs and writing code, I am now an Expert With Advice (hey, this is the internet).  And the advice is this:</p>
<p><strong>Stop trying to obfuscate your email address.  Stop now.</strong></p>
<p>I&#8217;ve got two reasons (and for a few more, <a href="http://floatingsun.net/articles/on-email-obfuscation/">some</a> <a href="http://www.divineaphasia.com/words/email-obfuscation-is-silly.html">other</a> <a href="http://typewriting.org/2006/06/19/Email_Obfuscation_Helps_Spammers/#comment-4549">folks</a> have blogged about this, too).  First, the more theoretical one:</p>
<h3>Spam is a problem for you&#8211;obfuscation makes it a problem for your users.</h3>
<p>After all, they&#8217;re the ones who are going to have to do all the de-munging.  Are they always going to notice that they have to remove &#8220;.invalid&#8221; from the end?  Do they all know that the English &#8220;at&#8221; means &#8220;@&#8221;?   Do they have time to edit text in their address lines?   Address munging is fundamentally inelegant, because it intentionally works against clarity.</p>
<p>People have been making this argument for a very <a href="http://www.interhack.net/pubs/munging-harmful/">long</a> <a href="http://www.faqs.org/faqs/net-abuse-faq/munging-address/">time</a>. It&#8217;s particularly relevant nowadays, though, because of the growing promise of the <a href="http://semanticweb.org/wiki/Main_Page">semantic web</a>.  We <em>want</em> data to be machine readable, because then we can do cool stuff with it.  <a href="http://en.wikipedia.org/wiki/FOAF_(software)">FOAF </a>and the <a href="http://microformats.org/wiki/hcard">hCard</a> microformat are pretty pointless if they don&#8217;t have real email addresses to work with.  &#8220;Hide the data from the machines&#8221; is a good strategy for fighting <a href="http://en.wikipedia.org/wiki/Skynet_(fictional)">Skynet</a>, but not for the future of the web.  Ok, reason two:</p>
<h3>Address munging just doesn&#8217;t work.</h3>
<p>It can&#8217;t.  It&#8217;s <a href="http://en.wikipedia.org/wiki/Mystery_Men#Cultural_references">putting glasses on Superman</a>.  Although <a href="http://tools.ietf.org/html/rfc2822">in theory</a> a valid email can be pretty hard to identify, <a href="http://www.regular-expressions.info/email.html">in practice</a>, emails addresses use a very limited vocabulary&#8211;and computers are good at identifying limited vocabularies.  Don&#8217;t forget, everyone has been using the same old [at] and &#8220;dot&#8221; tricks for <em>decades</em>&#8211;this is <a href="http://en.wikipedia.org/wiki/Security_through_obscurity">security through obscurity</a> at its very worst.</p>
<p>But <a href="http://en.wikipedia.org/wiki/Reading_Rainbow#Show_details">don&#8217;t take my word for it</a>.  I took a couple hours and worked up a demo <a href="http://jasonpriem.com/obfuscation-decoder/">email obfuscation decoder</a> that breaks the vast majority of text-based obfuscations; it&#8217;s also got an input field for you to test out your own munges (some other people have built <a href="http://dave78.com/misc/harv_test.html">similar</a> <a href="http://www.openjs.com/scripts/regexp/email_decrypter.php">demos</a>, too).  It&#8217;s not perfect, but it correctly decodes most obfuscations&#8211;and remember that this is a novice programmer, working for an afternoon.  It&#8217;s that easy. Supporters of obfuscation argue that spammers will go after the low-hanging fruit; folks, text-based obfuscation <em>is</em> the low-hanging fruit.</p>
<p>Now, the Alert Reader has by this time noticed that I&#8217;ve limited my critique to text-based munging.  &#8220;What about more sophisticated methods,&#8221; the Alert Reader now asks?  &#8220;What about using an image, or CSS, or Javascript to hide addresses?&#8221;  Good questions, Alert Reader; you are very alert.  Alright, let&#8217;s take a quick look at these, too:</p>
<h3>Images</h3>
<p>There&#8217;s not really much I can say about this one, save this: making content completely opaque to visually-impaired users simply shouldn&#8217;t be an option. And of course, spammers still can OCR your images.</p>
<h3>CSS</h3>
<p>Obviously, something like  <code>foo@bar&lt;span style=”display:none”&gt;NULL&lt;/span&gt;.com</code> is silly; the spambot can filter out &#8220;display:none&#8221; spans pretty easily, or even just discard everything in a span.  <code>&lt;span class=’a’&gt;foo&lt;/span&gt;&lt;span class=’b’&gt;bar&lt;/span&gt;@“&lt;span class=’c’&gt;foo&lt;/span&gt;&lt;span class=’d’&gt;bar&lt;/span&gt;.com</code><span> </span> at least requires the bot to open your stylesheet to see which spans are hidden.  But remember, your server will happily dish out your easily-parsed css to anyone who asks for it; this is not a good place to hide secrets.</p>
<h3>Javascript</h3>
<p>There are <a href="http://www.google.com/search?q=javascript+obfuscate+%22email%20address%22">too many</a> js methods to cover in any detail here.  Some are better than <a href="http://blog.macromates.com/2007/obfuscating-emails-revisited/">others</a>; a few try to <a href="http://pipwerks.com/journal/2009/02/01/obfuscating-email-addresses-revisited/">degrade gracefully</a> for users without Javascript support.  All of them, though, share the same weakness as CSS: everyone can read your Javascript.  And you certainly don&#8217;t need a browser to run it; there are<a href="http://hublog.hubmed.org/archives/001847.html"> lots of JS interpreters</a> that are more than happy to run on a spammer&#8217;s server.</p>
<p>Sure, you can get pretty clever with this technique (I particularly like the idea of decoding not on the onload event, but on a click event), but you can&#8217;t change the fact that ultimately  the bad guys can do everything with your code that a browser does&#8211;and eventually, they will.</p>
<p>Now, I&#8217;ll admit that images, CSS, and Javascript approaches are more effective than text-based ones.  All of them (when done properly) require the spammer to pay for more bandwidth and/or processor cycles.  But they all also inconvenience some or all of your users, and none of them are compatible with the sementic web.  They all give you false sense of security, and they&#8217;re ugly, hackish solutions. True, some obfuscations have <a href="http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/">performed well</a> <a href="http://www.cdt.org/speech/spam/030319spamreport.shtml">empirically</a>&#8211;but keep in mind that these (pretty informal) experiments are years old.  As more people have adopted these measures, be sure that more spammers are spending the time to counter them, as well.</p>
<p>Now, I can&#8217;t go so far as to condemn anyone who obfuscates an address; I get that spam is a pain, and filters aren&#8217;t perfect.  Sometimes an ugly, hackish solution is the only way.  But I&#8217;m suggesting that you think twice before you give in to the spammers and obfuscate, especially given the relative ineffectiveness of many commonly-used methods.  The Web reaches its full promise when information is made easier to find, not harder.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2009/05/stop-obfuscating-email/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Prezi: presentation junk 2.0</title>
		<link>http://jasonpriem.com/2009/04/prezi-presentation-junk-20/</link>
		<comments>http://jasonpriem.com/2009/04/prezi-presentation-junk-20/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 18:50:44 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[infovis]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=214</guid>
		<description><![CDATA[It&#8217;s 2009.  I think everyone out there knows that Powerpoint is, at best, overused (at worst:Stalin).  Particularly gruesome is the animated slide-transition &#8220;feature,&#8221; which I think most agree has the same communication effectiveness and subtle charm as &#8220;&#60;blink&#62;&#8221; tags, mouse-cursor trails, and hilarious animated gifs of cats.
So how is it that presentation tool Prezi is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jasonpriem.com/wp-content/uploads/2009/04/prezi.png"><img class="size-full wp-image-218 alignleft" title="prezi logo" src="http://jasonpriem.com/wp-content/uploads/2009/04/prezi.png" alt="prezi logo" width="279" height="101" /></a>It&#8217;s 2009.  I think everyone out there knows that Powerpoint is, at best, overused (at worst:<a href="http://www.edwardtufte.com/tufte/graphics/book_pp_cover.gif">Stalin</a>).  Particularly gruesome is the animated slide-transition &#8220;feature,&#8221; which I think most agree has the same communication effectiveness and subtle charm as <a href="http://en.wikipedia.org/wiki/Blink_element">&#8220;&lt;blink&gt;&#8221; tags</a>, <a href="http://www.dynamicdrive.com/dynamicindex13/trailer.htm">mouse-cursor trails</a>, and hilarious <a href="http://www.geocities.com/Heartland/Bluffs/3583/catgifs.html">animated gifs of cats</a>.</p>
<p>So how is it that presentation tool <a href="http://prezi.com">Prezi </a>is suddenly the <a href="http://www.techcrunch.com/2009/04/20/prezi-is-the-coolest-online-presentation-tool-ive-ever-seen/">toast</a> <a href="http://janeknight.typepad.com/pick/2009/01/prezi.html">of the</a> <a href="http://clifmims.com/blog/archives/1558">town</a>?  The quick sell looks like this:</p>
<blockquote><p>&#8220;Prezi allows anyone who can sketch an idea on a napkin to create and perform stunning non-linear presentations with relations, zooming into details, and adjusting to the time left without the need to skip slides.&#8221;</p></blockquote>
<p>I love how the first phrase suggests that there&#8217;s this great mass of napkin-sketching geniuses out there who can&#8217;t get their ideas out (until now!).  I mean, I like <a href="http://en.wikipedia.org/wiki/Mind_map">mind maps,</a> but turning one into an outline is pretty easy.   So the presentations are &#8220;non-linear.&#8221;  Does that mean the audience can interact with them, zooming in on sub-points of interest?  If it does, let me show you this thing called &#8220;<a href="http://en.wikipedia.org/wiki/Hyperlink">hyperlinks</a>.&#8221;   And is skipping slides really this tremendous problem?</p>
<p>When it comes down to it, the real selling point of Prezi is just the &#8220;stunning&#8221; presentation.  Now, perhaps I&#8217;m jaded, but &#8220;zoom-in/zoom-out&#8221; leaves me unstunned.  More importantly, though, this seems a textbook example of <a href="http://en.wikipedia.org/wiki/Chartjunk">chartjunk</a>: a &#8220;really great&#8221; visual effect that serves only to obscure or distract from real information.  I think (hope) it&#8217;ll have the lasting appeal of Powerpoint&#8217;s racecar-noise-with-flying-in-bullet-point.</p>
<p>Perhaps I&#8217;m missing something (feel free to correct me in the comments) or just being curmudgeonly, but I think Prezi is vastly overhyped.  Powerpoint is bad enough.  Also: I like how the Prezi logo, by mixing case, suggests that the product may in fact be called &#8220;Pretzl.&#8221;  Ok, now that&#8217;s definitely being curmudgeonly.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2009/04/prezi-presentation-junk-20/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Quick book review: Dreaming in Code</title>
		<link>http://jasonpriem.com/2009/04/quick-book-review-dreaming-in-code/</link>
		<comments>http://jasonpriem.com/2009/04/quick-book-review-dreaming-in-code/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 22:32:29 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=135</guid>
		<description><![CDATA[I imagine Scott Rosenberg reckoned he&#8217;d picked a winner when he started Dreaming in Code, his 2007 book chronicling the development of the Chandler personal information manager. The project seemed to have everything going for it.  It had all the fashionable features:  GTD! Open Source!  Peer-to-peer!  Level the silos!  It was [...]]]></description>
			<content:encoded><![CDATA[<p>I imagine Scott Rosenberg reckoned he&#8217;d picked a winner when he started <em><a href="http://www.amazon.com/Dreaming-Code-Programmers-Transcendent-Software/dp/1400082463"><em>Dreaming in Code</em></a>,</em> his 2007 book chronicling the development of the <a href="http://chandlerproject.org/">Chandler personal information manager</a>. The project seemed to have everything going for it.  It had all the fashionable features:  GTD! Open Source!  Peer-to-peer!  Level the silos!  It was headed by software legend <a href="http://en.wikipedia.org/wiki/Mitch_Kapor">Mitch Kapor</a>.  It had infinite funding.  It had talented programmers with impeccable resumes—decades upon decades of successful experience creating good software.</p>
<p>Over the course of <em>Dreaming,</em> though,  we see this elite team gradually self-destruct.  We see vague spec.  We see unrealistic deadlines.  We see huge mid-stream course changes.   As Rosenberg writes, &#8220;By now, I know, any software developer reading this volume has likely thrown it across the room in despair, thinking, &#8216;Stop the madness! They&#8217;re making every mistake in the book!&#8217;&#8221;  <em>Dreaming </em>finally ends four years into Chandler&#8217;s development—with version 1.0 still a distant vision (it was finally released, mostly to <a href="http://lwn.net/Articles/293743/">yawns</a>, last August ).</p>
<p>Rosenberg, though, is savvy enough to turn the Chandler team&#8217;s failure into his own success.  Not only does he use the story to anchor an excellent (if basic) introduction into the practices and quirks of the industry as a whole, he weaves an engrossing and deeply human narrative.</p>
<p>Aristotle said tragedy should evoke fear and pity in the viewer, and Rosenberg deftly supplies us with both.  On the one hand, <em>Dreaming</em> reads like watching a horror movie: “No!  Why are you splitting up to explore the house!?  Why do you keep changing the UI every 6 months!? Noooo!!!!”  At the same, Rosenberg does a pretty good job of making us really like many of the characters.  Kapor, in particular, comes off as both an intelligent visionary and genuinely good guy. Watching Chandler implode, I feel bad for him.</p>
<p>In interviews, Rosenberg shows again and again how the characters, all experienced programmers, understand the Classic Mistakes.  Then he describes with agonizing clarity how they turn right around and proceed to make just those mistakes.  I think it’s this quality that put me so in mind of classical tragedy, where the noble hero is undone by just these sorts of <a href="http://en.wikipedia.org/wiki/Hamartia">tragic flaws</a> or mistakes.</p>
<p>Rosenberg resist the temptation to write another Lessons From Software Failure manual.   Instead he shows how smart, capable programmers working in an ideal environment can reenact the same fatal mistakes programmers were cataloging decades ago.  Like Greek drama, <em>Dreaming </em>confronts the ineluctability of failure head-on.  Rosenberg’s ultimate thesis is nothing more or less than the classic words of  <a href="http://en.wikipedia.org/wiki/Donald_knuth">Donald Knuth</a>, with which he opens the book: Software is hard.  Sophocles would be proud.</p>
<p>Other reviews I liked:</p>
<ul>
<li><a href="http://www.amazon.com/Dreaming-Code-Programmers-Transcendent-Software/dp/1400082463">Amazon</a></li>
<li><a href="http://www.joelonsoftware.com/items/2007/01/21.html">Joel Spolsky:</a> discusses the technical aspects more; doesn&#8217;t think Chandler was a very good idea to begin with.  Has some good points, here.<a href="http://www.joelonsoftware.com/items/2007/01/21.html"><br />
</a></li>
<li><a href="http://www.proudlyserving.com/archives/2007/02/review_of_dream.html">Adam Barr:</a> discusses the individual parts of the book more.<a href="http://www.proudlyserving.com/archives/2007/02/review_of_dream.html"><br />
</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2009/04/quick-book-review-dreaming-in-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FeedVis 2.0: custom visualization for your feeds</title>
		<link>http://jasonpriem.com/2008/12/feedvis-20-custom-visualization-for-your-feeds/</link>
		<comments>http://jasonpriem.com/2008/12/feedvis-20-custom-visualization-for-your-feeds/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 20:27:27 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[fun with data]]></category>
		<category><![CDATA[infovis]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=72</guid>
		<description><![CDATA[My FeedVis project&#8211;the interactive tagcloud for a group of feeds&#8211;has been out for a week now, I&#8217;ve been thrilled at the positive response I&#8217;ve gotten so far.  One rather glaring problem with the program, though, was that you could only look at the top 50 edublogs.
Not anymore.  After a few late nights, I&#8217;ve got a [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_68" class="wp-caption alignleft" style="width: 310px"><a href="http://jasonpriem.com/feedvis"><img class="size-medium wp-image-68" title="feedvis2" src="http://jasonpriem.com/wp-content/uploads/2008/12/feedvis2.jpg" alt="this is what feedvis looks like" width="300" height="256" /></a><p class="wp-caption-text"> </p></div>
<p><a href="http://jasonpriem.com/feedvis">My FeedVis project</a>&#8211;the interactive tagcloud for a group of feeds&#8211;has been out for a week now, I&#8217;ve been thrilled at <a href="http://cogdogblog.com/2008/11/25/feedvis/">the</a> <a href="http://blogoehlert.typepad.com/eclippings/2008/11/a-truckload-of-twitter-tools-and-some-peachy-keen-visualizations.html">positive</a> <a href="http://doug-johnson.squarespace.com/blue-skunk-blog/2008/12/1/on-ranking-awards-and-other-nonsense.html">response</a> I&#8217;ve gotten so far.  One rather glaring problem with the program, though, was that you could only look at the <a href="http://www.dangerouslyirrelevant.org/2008/06/top-50-p-12-edu.html">top 50 edublogs</a>.</p>
<p>Not anymore.  After a few late nights, I&#8217;ve got a beta system for uploading and analyzing your own sets of feeds.  You just upload your opml, wait a few minutes, and you&#8217;re set: FeedVis gives you a custom page that you can bookmark and return to anytime you like; it&#8217;ll continue to update every time you visit.  You can also browse visualizations of other people&#8217;s feeds.</p>
<p>It&#8217;s pretty untested, and I&#8217;m sure use will uncover some bugs.  But it&#8217;s got potential; I&#8217;m excited to see what people think.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2008/12/feedvis-20-custom-visualization-for-your-feeds/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FeedVis: a deeper tagcloud for edublogs</title>
		<link>http://jasonpriem.com/2008/11/feedvis-a-deeper-tagcloud-for-edublogs/</link>
		<comments>http://jasonpriem.com/2008/11/feedvis-a-deeper-tagcloud-for-edublogs/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 07:53:05 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[fun with data]]></category>
		<category><![CDATA[infovis]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=51</guid>
		<description><![CDATA[
Tagclouds have value, but, as I&#8217;ve written before, they&#8217;ve a number of shortfalls as well.  I&#8217;ve just finished my attempt to remedy some of these problems: FeedVis.  It&#8217;s an animated tagcloud that lets you compare word frequencies accross different time periods and authors, then check out the posts that used the words.  The demo is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jasonpriem.com/feedvis"><img class="size-full wp-image-54 alignleft" title="feedvis" src="http://jasonpriem.com/wp-content/uploads/2008/11/feedvis.jpg" alt="a screenshoto of feedvis" width="318" height="266" /></a></p>
<p>Tagclouds have value, but, <a href="http://jasonpriem.com/2008/09/the-trouble-with-tagclouds/">as I&#8217;ve written before</a>, they&#8217;ve a number of shortfalls as well.  I&#8217;ve just finished my attempt to remedy some of these problems: <a href="http://jasonpriem.com/feedvis/">FeedVis</a>.  It&#8217;s an animated tagcloud that lets you compare word frequencies accross different time periods and authors, then check out the posts that used the words.  The demo is using the feeds for Scott McLeod&#8217;s Technorati-compiled list of <a href="http://www.dangerouslyirrelevant.org/2008/06/top-50-p-12-edu.html">top 50 edublogs</a>, since that&#8217;s what got me started about feeds and tagclouds in the first place (although the program will work with any set of feeds).  More details about how it works are on the <a href="http://jasonpriem.com/feedvis/">demo page</a>.</p>
<p>I think what I&#8217;m really most excited about is the way this uses animation to let you actually see the words changing from one sample to the next.    Motion is such an important part of the way we see the world, and it&#8217;s been underemployed in information visualization, I think (although this changing; <a href="http://www.ted.com/index.php/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html">Hans Rosling&#8217;s TED talks</a> have gotten a lot of buzz, for instance).</p>
<p>The project has been really fun, and a great learning experience; it&#8217;s gotten me really pumped about <a href="http://en.wikipedia.org/wiki/Infovis">inofVis</a> for learning about online interaction.  I think there is a lot of potential there for ed tech research.  I&#8217;m also pretty excited about programming; I started learning in February (with php), and then started javascript a couple months ago.  It&#8217;s been a really mind-expanding experience, and I&#8217;m looking foward to my next project, probably once I get done with grad school apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2008/11/feedvis-a-deeper-tagcloud-for-edublogs/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>PrezDebatr 2.0!  Beta!</title>
		<link>http://jasonpriem.com/2008/10/prezdebatr-20-beta/</link>
		<comments>http://jasonpriem.com/2008/10/prezdebatr-20-beta/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 17:11:05 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[fun with data]]></category>
		<category><![CDATA[infovis]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=44</guid>
		<description><![CDATA[Google is transforming the way we watch a political debate.  This Google Blog post demonstrates how viewers of the VP debate earlier this month made Google searches like &#8220;clean coal&#8221; and &#8220;define:maverick&#8221; spike as candidates spoke.  Without question, these viewers are experiencing something much richer than what would have been possible fifteen years ago.
But why [...]]]></description>
			<content:encoded><![CDATA[<p>Google is transforming the way we watch a political debate.  <a href="http://googleblog.blogspot.com/2008/10/vp-debate-candidates-questions-and.html">This Google Blog post</a> demonstrates how viewers of the <a href="http://en.wikipedia.org/wiki/United_States_vice-presidential_debate,_2008">VP debate</a> earlier this month made Google searches like &#8220;<a href="http://www.google.com/search?hl=en&amp;q=clean+coal&amp;btnG=Search">clean coal</a>&#8221; and &#8220;<a href="http://www.google.com/search?hl=en&amp;q=define%3Amaverick&amp;btnG=Search">define:maverick</a>&#8221; spike as candidates spoke.  Without question, these viewers are experiencing something much richer than what would have been possible fifteen years ago.</p>
<p>But why stop there?  Why not a service that analyzes this kind of real-time, viewer-supplied data, selects the most interesting bits, and then displays it?  It would function both as a real-time fact-checker and a window into audience&#8217;s reactions.</p>
<p>Lots of people already live-blog these things; it would be easy to get several thousand people to submit their questions and search results to a server, using a standardized interface.  The software then just aggregates, organizes, and presents the results.  Volunteers who try to game the system would be shut out with Digg-style, community-driven user ratings.  If Google would make its real-time query data available, that&#8217;d be added, too, significantly broadening the sample&#8217;s relevance.</p>
<p><span id="more-44"></span></p>
<p>The exciting part comes when this user-created input&#8212;both information about facts and people&#8217;s more general reaction to what they&#8217;re hearing&#8212;is presented to the the debate audience and the debaters themselves in real time (via a big display in the venue, for instance.)  For one thing,  the audience and debaters would immediately know of factual errors or half-truths, and have easy access to cited sources.  This would work for relatively picky things, like the pronunciation of someone&#8217;s name, but also for more substantive problems in responses; imagine how much answers would improve if the debaters knew they might have to stand next to an 8-foot-high rendering of, &#8220;40 million Americans think you just dodged the question.&#8221;</p>
<p>But also, the tool could act in more positive ways.  The candidates would immediately know the reactions of a national audience had about what they say&#8211;what the audience was interested in, confused about, or skeptical about.  If 80% of people want to hear more about the differences in candidates&#8217; economic plan, they probably will.  You would have a truly participatory, interactive town-hall meeting of sixty million people.   Techniques like this are already beginning to surface in education, with tools like classroom <a href="http://en.wikipedia.org/wiki/Audience_response">clickers </a>and &#8220;<a href="http://connect.educause.edu/Library/ELI/7ThingsYouShouldKnowAbout/39391?time=1223916435">google jockying</a>.&#8221;  Could they raise the level and relevancy of national politics?</p>
<p>Note: oops, accidentally published this sans links.  fixed now.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2008/10/prezdebatr-20-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grad school: because your uncle at Lehman Bros. is not such a great connection now.</title>
		<link>http://jasonpriem.com/2008/10/grad-school-because-your-uncle-at-lehman-bros-is-not-such-a-great-connection-now/</link>
		<comments>http://jasonpriem.com/2008/10/grad-school-because-your-uncle-at-lehman-bros-is-not-such-a-great-connection-now/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 16:50:24 +0000</pubDate>
		<dc:creator>jason</dc:creator>
				<category><![CDATA[academia]]></category>
		<category><![CDATA[fun with data]]></category>
		<category><![CDATA[infovis]]></category>

		<guid isPermaLink="false">http://jasonpriem.com/?p=38</guid>
		<description><![CDATA[A nice bit of infoVis from the web comic Piled Higher and Deeper.  Kind of not the best news for someone who&#8217;s applying to doctoral programs this fall&#8230;um, can my app go in a special pile for people who&#8217;ve been planning this for years, regardless of what the economy would&#8217;ve done?


]]></description>
			<content:encoded><![CDATA[<p>A nice bit of <a href="http://en.wikipedia.org/wiki/Infovis">infoVis</a> from the web comic <a href="http://www.phdcomics.com/comics.php?f=1078">Piled Higher and Deeper</a>.  Kind of not the best news for someone who&#8217;s applying to doctoral programs this fall&#8230;um, can my app go in a special pile for people who&#8217;ve been planning this for years, regardless of what the economy would&#8217;ve done?</p>
<p><a href="http://www.phdcomics.com/comics/archive/phd100108s.gif"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpriem.com/2008/10/grad-school-because-your-uncle-at-lehman-bros-is-not-such-a-great-connection-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
