<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>warmbrain</title>
        <link>http://warmbrain.com/</link>
        <description>braindrops keep falling on my head</description>
        <language>en</language>
        <copyright>Copyright 2008</copyright>
        <lastBuildDate>Mon, 31 Mar 2008 17:47:48 -0800</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Cheap Bastard #1</title>
            <description><![CDATA[<p>And so begins the first in a series of postings where I detail how I can sometimes be a cheap bastard. To start things off I bring your three recent examples:</p>

<ol>
	<li><strong>.Mac Trial account surfing</strong><br />
The GTD software I was using only did sync'ing through .mac and rather than fork over the $100 per year I instead just created a new trial account every three months and copied the single backup file across. I just couldn't stomach giving Apple more of my money to store less than 25KB of my data on their servers. The iPod belt clip I bought when I thought I'd lost mine (but now just sits gathering dust) should more than cover the bandwidth and harddrive storage costs. I no longer trial-surf as my current software doesn't support sync'ing yet. <br /><br /></li>
	<li><strong>MAKE Magazine subscription</strong><br />
When MAKE Magazine was just starting out they used to offer a T-shirt with their yearly magazine subscriptions. My mother-in-law got me a subscription for Christmas but neglected to ask for the T-shirt. When I called to renew the subscription a year later and also order a boxed set of MAKE's first year I asked if they could throw in a T-shirt since I didn't get one the first time. The guy on the phone was so dismissive of the idea that I reacted by cancelling my whole order and hanging up. I haven't read MAKE magazine since last November. I miss it. Stupid T-shirt.<br /><br />
</li>
 	<li><strong>Haggle with a poor student</strong><br />I saw a 20mm Nikon lens being advertised on Craigslist recently and contacted the seller to show my interest. I talked him down from his $410 asking price to $250 even after finding out he was a student selling his camera gear so he could buy textbooks. I still cringe a little thinking about this.<br /></li>
</ol>

<p>Well, those are mine. Anyone else have examples of their recent cheap-bastardisms?</p>]]></description>
            <link>http://warmbrain.com/archives/2008/03/cheap-bastard-1.html</link>
            <guid>http://warmbrain.com/archives/2008/03/cheap-bastard-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Cheap Bastard</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Life</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Money</category>
            
            
            <pubDate>Mon, 31 Mar 2008 17:47:48 -0800</pubDate>
        </item>
        
        <item>
            <title>Photographic Utopia</title>
            <description><![CDATA[<p>It seems to me the ideal camera is one which doesn't involve a series of tradeoffs but instead allows one to dictate the photograph they intend to take. </p>

<p><a href="http://flickr.com/photos/antidigerati/92976762/"><img src="http://farm1.static.flickr.com/18/92976762_93fc7bb65a_m.jpg" border="0" align="right" width="240" height="180" hspace="10" vspace="10" style="border:1px solid #666" /></a>With current cameras, if you want a shallow depth-of-field (DOF), you need to have your aperture wide open. To have your aperture wide open means more light so you need to adjust your shutter speed to compensate. If you shutter speed is already at its maximum (or faster than you would prefer) then you need to adjust your ISO speed to make your film/sensor less sensitive.</p>

<p>If you are less concerned about DOF but would rather freeze those sprinters in their place, then you need to make sure you shutter speed is set fast enough to avoid any motion blur. Once shutter speed is determined, then comes aperture to compensate, <a href="http://flickr.com/photos/antidigerati/1795682317/"><img src="http://farm3.static.flickr.com/2211/1795682317_c3186a8f7f_m.jpg" width="173" height="240" border="0" align="left" hspace="10" vspace="10" style="border:1px solid #666" /></a>then possibly ISO to compensate even further to make sure you have enough light for your shot. It is all about juggling light.</p>

<p>This whole tradeoff process becomes even more pertinent in low-light situations where there is even less light to be juggled. Regardless of what kind of DOF or shutter speed you desire, you will inevitably need to increase your ISO to get the shot your desire (or  use a tripod to keep your camera still for that 0.5s exposure -- or, god forbid, use your flash!). One of the serious downsides of an elevated ISO is a graininess in the resultant photo that, for reasons beyond me, has been mirrored in the migration from film to digital sensors. Is there some scientific reason why both both an ultra-sensitive sheet of chemicals and an ultra-sensitive array of electronic light-sensors need display graininess in roughly the same respect? The most recent digital cameras are finally exhibiting less <a href="http://flickr.com/photos/antidigerati/92825306/"><img src="http://farm1.static.flickr.com/37/92825306_785d8d071e_m.jpg" width="240" height="160" border="0" align="right" hspace="10" vspace="10" style="border:1px solid #666" /></a>graininess at higher ISOs, but this is a fairly new development and they are crazy expensive.</p>

<p>Rather than dealing with Aperture, Shutter Speed and ISO I would prefer to have just two big dials on my camera simply labeled depth-of-field and motion-blur. Two dials. That's all I need. Graininess can be added as needed in Photoshop later. Don't make me worry about all the dang tradeoffs, instead just let me craft the photo I want and not worry about having to tweak, test and compensate for the light levels and the sensitivity of the sensor I happen to be holding.</p>

<p>If I want a nice highway-overpass shot of long lines of blurred brake-lights and head-lights all in focus, then crank up the motion-blur and crank-open the DOF. If I instead want a super-crisp capture of that water droplet falling against a soft blurred background, then drop the motion-blur right down to nothing and lower that DOF nice and narrow.</p>

<p>I definitely think we're moving toward this type of camera interaction, but we're still a number of years out. Cameras sensitive enough to even allow this ignorance of trade-offs are out of reach to anyone except high-end digital photographers. Ironic, no?<br />
</p>]]></description>
            <link>http://warmbrain.com/archives/2008/03/photographic-utopia.html</link>
            <guid>http://warmbrain.com/archives/2008/03/photographic-utopia.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Bizarre</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Gadgets</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Life</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Photos</category>
            
            
            <pubDate>Fri, 28 Mar 2008 23:48:33 -0800</pubDate>
        </item>
        
        <item>
            <title>Flickr Google Gadget</title>
            <description><![CDATA[<p>If you are a fan of Flickr and happen to use iGoogle you may want to check out a Flickr Gadget I recently wrote. It looks like this:</p>

<div style="text-align:center;margin:20px">
<a href="http://www.google.com/ig/adde?moduleurl=warmbrain.com/gadgets/flickr.xml"><img src="http://warmbrain.com/media/flickr_gadget.jpg" width="328" height="341" border="0" /></a>
</div>

<p>The gadget currently offers three tabs/views. You can see either the latest photos from your Flickr contacts (requires specifying your flickr userid in the settings), a sampling from recent 'interesting' photos, or specify keywords to search across all Flickr photos. You can view larger versions of the thumbnails overlaid in the gadget or jump right into Flickr proper.</p>

<p>I enjoyed creating the gadget and would love to hear any feedback or ideas for improvements.</p>

<p>To add the gadget to your iGoogle page just click the screenshot above or install with this button: <a href="http://www.google.com/ig/adde?moduleurl=warmbrain.com/gadgets/flickr.xml"><img src="http://gmodules.com/ig/images/plus_google.gif" width="62" height="17" border="0" /></a></p>

<p>Disclaimer: I work on the iGoogle team at Google.</p>]]></description>
            <link>http://warmbrain.com/archives/2008/03/flickr-google-gadget.html</link>
            <guid>http://warmbrain.com/archives/2008/03/flickr-google-gadget.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Gadgets</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Google</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Hacking</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Photos</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">webdev</category>
            
            
            <pubDate>Thu, 27 Mar 2008 16:58:46 -0800</pubDate>
        </item>
        
        <item>
            <title>Email DOT com</title>
            <description><![CDATA[<p><img src="http://warmbrain.com/media/gmail_spam.gif" width="135" height="259"  style="float:right;margin:10px;" />Having one's email address appear plaintext on a website is something most people try and avoid. Spammer's actively harvest email addresses from the public web and very few want their address on yet another spam list. In situations where it is unavoidable, people often use techniques like spelling out their address (Eg. user AT example DOT com) or adding in extra text (Eg. user_NOSPAM@example.com) or a <a href="http://nadeausoftware.com/articles/2007/05/stop_spammer_email_harvesters_obfuscating_email_addresses">variety of other approaches</a>. Unfortunately these are easily detectable and extractable with some simple regular expressions and don't do much more than maybe prevent copy-and-paste of your address for legitimate users and maybe force spammers to add another regular expression to their script.</p>

<p>Some quick searches with Google shows how common these approaches are and also how easy it is to detect <a href="http://www.google.com/search?q=%22*+at+*+dot+com%22&hl=en&start=10&sa=N">such</a> <a href="http://www.google.com/search?hl=en&q=NOSPAM%40*.com">patterns</a>.</p>

<p>A slightly better approach, although not always feasible depending on the input restrictions, is to use JavaScript to write out the address. Something simple like:<br />
<code><br />
&lt;script&gt;<br />
document.write("us");<br />
document.write("er@ex");<br />
document.write("ample");<br />
document.write(".com");<br />
&lt;/script&gt;<br />
</code></p>

<p>If a spammer were to process each scanned webpage with a JavaScript engine before extracting the addresses then the above wouldn't work, but the overhead (technically and CPU) is such that I don't see this happening anytime soon.</p>]]></description>
            <link>http://warmbrain.com/archives/2008/03/email-dot-com.html</link>
            <guid>http://warmbrain.com/archives/2008/03/email-dot-com.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Google</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Hacking</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">internet</category>
            
            
            <pubDate>Tue, 25 Mar 2008 13:25:23 -0800</pubDate>
        </item>
        
        <item>
            <title>Google Translation API</title>
            <description><![CDATA[A quick post to try out the new Google Translation API. This API allows web developers to do dynamic text translation from within a webpage. Specify some text, set the language to translate from/to and then display the text that Google returns. Let's see if it works on this very appropriate <a href="http://www.brainyquote.com/quotes/quotes/r/richardpf151725.html">Richard Feynman quote</a>. You can also check out the Official Google blog post <a href="http://googleajaxsearchapi.blogspot.com/2008/03/introducing-ajax-language-api-tools-for.html">announcing the API</a>. Note this won't likely work if you are reading this within a feed reader.
<br /><br />
<blockquote>
<strong>English</strong>
<div id="apitest-en">There is a computer disease that anybody who works with computers knows about. It's a very serious disease and it interferes completely with the work. The trouble with computers is that you 'play' with them!</div>
<br />
<strong>French</strong>
<div id="apitest-fr"><img src="http://warmbrain.com/gadgets/loading.gif" width="16" height="16" /></div>
<br />
<strong>Spanish</strong>
<div id="apitest-es"><img src="http://warmbrain.com/gadgets/loading.gif" width="16" height="16" /></div>
<br />
<strong>Japanese</strong>
<div id="apitest-ja"><img src="http://warmbrain.com/gadgets/loading.gif" width="16" height="16" /></div>
</blockquote>

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script>
google.load("language", "1");
google.setOnLoadCallback(function() {
  var english = document.getElementById("apitest-en").innerHTML;
  google.language.translate(english, 'en', 'fr', function(result) {
    document.getElementById("apitest-fr").innerHTML = result.translation; 
  });
  google.language.translate(english, 'en', 'es', function(result) {
    document.getElementById("apitest-es").innerHTML = result.translation; 
  });
  google.language.translate(english, 'en', 'ja', function(result) {
    document.getElementById("apitest-ja").innerHTML = result.translation; 
  });
});
</script>]]></description>
            <link>http://warmbrain.com/archives/2008/03/google-translation-api.html</link>
            <guid>http://warmbrain.com/archives/2008/03/google-translation-api.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Google</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Hacking</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Software</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">internet</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">webdev</category>
            
            
            <pubDate>Fri, 21 Mar 2008 12:52:06 -0800</pubDate>
        </item>
        
        <item>
            <title>Homeless Blogger</title>
            <description><![CDATA[<p><a href="http://thehomelessguy.blogspot.com"><img src="/media/homeless_blogger.jpg" border="0" width="100" style="float:right;margin:10px;border:1px solid black" /></a>While digging through my blog archives to see how bad the linkrot has gotten I came across a link that is worth revisiting. I first blogged about <a href="http://thehomelessguy.blogspot.com">The Homeless Guy</a> back in <a href="http://warmbrain.com/archives/2003/01/25/the_homeless_guy">2003</a> and I'm happy to see that he is apparently still posting almost daily. He is an engaging writer and offers a perspective that I personally don't have much experience with. His recent post about getting to <a href="http://thehomelessguy.blogspot.com/2008/03/cheap-motel.html">stay a night in a cheap hotel</a> points out to me just how much I take for granted each and every day. From warmth, to sleep, to privacy. Eye opening. Adding his blog to my reader list.</p>]]></description>
            <link>http://warmbrain.com/archives/2008/03/homeless-blogger.html</link>
            <guid>http://warmbrain.com/archives/2008/03/homeless-blogger.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Blogging</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Culture</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Life</category>
            
            
            <pubDate>Tue, 18 Mar 2008 13:16:35 -0800</pubDate>
        </item>
        
        <item>
            <title>Efficient Feed Reading</title>
            <description><![CDATA[<p>I subscribe to over 150 blogs and until a few months ago I had them categorized by subject and context. I had a 'work' set, a 'play' set, a 'tech' set etc. With so many feeds and such a crude organization it often meant I would get overwhelmed with input and eventually click 'Mark All As Read' every few days. Although this removes the glut, it also removes items I would have liked to have read if I could have found them.</p>

<p>Back in 2007 <a href="http://www.kottke.org/07/12/feed-reading">Jason Kottke</a> and <a href="http://www.43folders.com/2007/11/27/sink-or-swim-managing-rss-feeds-better-groups">Matt Wood</a> had posts describing their own feed reading organization and I've since adopted something similar and it has made all the difference. The idea is to organize feeds by <em>how</em> you read them instead of the subject of the blog. Here is my current set of folders:</p>

<ul>
	<li><strong>MustRead</strong> - Friends, family and blogs where I never want to miss a post. Around 5 - 30 posts a day. I check for unread items multiple times a day.</li>
	<li><strong>DangGood</strong> - Blogs I love to read but if I fall behind a few days it is no big deal. Around 20 - 100 posts a day. I check for unread items around once a day.</li>
	<li><strong>RiffRaff</strong> - Blogs I like but if I never read them that is ok. This set includes high-volume blogs and there are currently thousands of unread items in this folder. I typically end up reading this group in desperate moments of boredom or long plane trips (yay for Google Reader <a href="http://www.google.com/help/reader/offline.html">offline mode</a>).</li>
	<li><strong>Perhaps</strong> - Only a handful of blogs in this folder. A staging area where the blog is new and I'm not sure where it should be categorized yet. I could likely merge OnTheFence and Perhaps, but the separation is somewhat useful.</li>
	<li><strong>OnTheFence</strong> - Only a handful of blogs in this folder. Blogs that I'm considering removing get moved here. If my interest doesn't increase, they get removed.</li>
</ul>

<p><img style="float:right;padding:8px" src="http://warmbrain.com/media/reader_tags.gif" width="142" height="131" alt="Tags in Google Reader" /> Since adopting this posting structure my feed reading efficiency has increased drastically. No more is the feeling that I am missing posts that are hidden in the pile. It allows me to keep on top of the people I really like to read, and it means I always have ample reading material for down-time and plane trips.</p>]]></description>
            <link>http://warmbrain.com/archives/2008/03/efficient-feed-reading.html</link>
            <guid>http://warmbrain.com/archives/2008/03/efficient-feed-reading.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Blogging</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">internet</category>
            
            
            <pubDate>Sun, 16 Mar 2008 11:57:07 -0800</pubDate>
        </item>
        
        <item>
            <title>SONOS Improvements</title>
            <description><![CDATA[<p>I've had the <a href="http://www.sonos.com/">SONOS</a> music system (3 zoneplayers, 1 controller) for almost 2 years and am still extremely happy with it. It has replaced our radio and stereo and has resulted in us listening to way more music that we had previously. From CBC during the week to Car Talk and This American Life on the weekends to lullabies piped to the bedroom when Orion is going to sleep, it totally meets our audio needs. </p>

<p>That being said, there is definitely still room for improvement. Here is a short list off the top of my head of what I'd like to see in future revisions:</p>

<ul>
	<li><b>Locate Lost Controller</b><br />
 The controller is wireless and, like my cordless phone, I move it around the house and often lose track of it. I would love to see an option (perhaps just in the downloaded software) that triggered the controller to beep so I could find it. I know it can beep since it does so when I first wake it up.
        </li>
	<li><b>Podcasts</b><br />
Let me easily listen to podcast feeds via my SONOS. SONOS can already stream internet radio and remote MP3s as well as perform tasks on a schedule... it seems an easy addition to throw in some feed parsing to the mix. As a bonus I'd like to auto-download the podcast audio files, but I'd settle for simple streaming right now.
       </li>
	<li><b>Controller Audio Input Jack</b><br />
 The most common external source of audio I use is an iPod/iPhone. Either my own or when someone visits. I currently have an extended RCA-to-headphone cord snaked across the top of my cupboards and then hanging down in the corner. When I want to send audio to the SONOS I am bound to this one spot. Although the controller isn't likely powerful enough to handle the audio processing, I'd love to be able to connect my iPod to the controller and have the data available to any ZonePlayer.
        </li>
	<li><b>Stream to ZonePlayer</b><br />
        I've often been watching a movie on my laptop and thought it would be great to hear the audio through the SONOS. It seems my computer should be capable of packaging the audio and sending it directly to a ZonePlayer on the same network but unfortunately this isn't allowed. Instead I need to manually connect a cord from the laptop audio-out to the SONOS audio-in. Bleh.
       </li>
	<li><b>Computer as ZonePlayer</b><br />
        Each time I run the software-based controller software, I find it strange that this software that works just like an audio-player never sends any audio to the computer I am running it on. I would love if there was some way of making my desktop computer a software-based ZonePlayer and then I could do away with iTunes altogether. SONOS would be my only interface to my music regardless of where I am.
        </li>
	<li><b>Better Error Reporting</b><br />
       The SONOS does its best to hide all implementation details from you. Like a Mac, this is great until something goes wrong. I've had intermittent problems with one of my ZonePlayers freezing and disappearing from the network and so far I have found no way of querying the ZonePlayer to see what is wrong. Is it an IP conflict? Bad RAM? Corrupt MP3 or data stream? Some sort of a syslog dump would be so useful.
        </li>

</ul>

<p>The developers at SONOS made some great improvements between v1.0 and v2.0 of their core software. Hopefully I'll see some of the above in v3.0.</p>]]></description>
            <link>http://warmbrain.com/archives/2008/03/sonos-improvements.html</link>
            <guid>http://warmbrain.com/archives/2008/03/sonos-improvements.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Gadgets</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Reviews</category>
            
            
            <pubDate>Sat, 15 Mar 2008 22:14:31 -0800</pubDate>
        </item>
        
        <item>
            <title>Missing Media</title>
            <description><![CDATA[<p>Hello loyal readers. Are you still there? I like to tell people I've <a href="/archives/2001/11/13/i_quit_my_job">had a blog since 2001</a>, but with my lack of posts my old-skool-blogger smirk is starting to fade.</p>

<p>There was a recent hard drive crash (or something) at the hosting company I use (Tektonic) and unfortunately a whole bunch of VPS nodes <a href="http://www.tektonic.net/forum/showthread.php?t=2055">lost all data</a>. I was one of those users :( Luckily I do a daily SQL dump of all blog-related material and email it into the ever-expanding maw of gmail storage so I could recover it easily to the state pre-crash. I don't do a backup of the media though and so all warmbrain hosted images and videos were lost. There is a possibility that the 2-week-long <font face="fixed">fsck</font> that Tektonic is running will recover something but I'm not holding my breath.</p>

<p>What have I been doing? Mostly focusing on the regular feeding and watering of my new kid. He is almost a year old though and so I guess not so new. He is an absolute joy. Here is a recent photo:<br />
<p><center><br />
<img src="http://farm3.static.flickr.com/2338/2139887552_21d77a9057.jpg"><br />
</center><p></p>

<p>I'd like to start posting here again. Watch this space.</p>]]></description>
            <link>http://warmbrain.com/archives/2008/01/missing-media.html</link>
            <guid>http://warmbrain.com/archives/2008/01/missing-media.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Blogging</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Family</category>
            
            
            <pubDate>Mon, 21 Jan 2008 22:05:47 -0800</pubDate>
        </item>
        
        <item>
            <title>FSJ RIP</title>
            <description><![CDATA[<p>I was saddened to discover that the real identity of <a href="http://fakesteve.blogspot.com/">Fake Steve Jobs</a> was discovered and also <a href="http://www.nytimes.com/2007/08/06/technology/06steve.html?_r=1&oref=login">revealed</a>. I thoroughly enjoyed reading the blog -- especially through the iPhone launch -- and now it is too bad it is over. <img src="http://warmbrain.com/media/fsj.png" style="float:right;border:1px solid #999;" hspace="5" vspace="5"></p>

<p><a href="http://daringfireball.net/2007/08/fake_steve_unmasked">John Gruber</a> argues that the unmasking doesn't need to mean the end of the FSJ blog but I think for me it does. Yes the writing is great and the word "<a href="http://fakesteve.blogspot.com/2007/06/call-this-frigtard-and-tell-him-bad.html">frigtard</a>" is an excellent addition to my vocabulary, but for me the real appeal came from the mystery around the author. For the same reason I enjoy reading the anonymous postings of <a href="http://minimsft.blogspot.com/">MiniMicrosoft</a>, there is this sense that the cape of anonymity allows for some insightful observations without worry of repercussions. Now when I read the blog I find it hard not to be aware of Forbes as the sponsor or the fact that the blog is now advertising Daniel Lyons' upcoming book along the same theme.<br />
</p>]]></description>
            <link>http://warmbrain.com/archives/2007/08/fsj-rip-1.html</link>
            <guid>http://warmbrain.com/archives/2007/08/fsj-rip-1.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Blogging</category>
            
            
            <pubDate>Tue, 07 Aug 2007 15:34:53 -0800</pubDate>
        </item>
        
        <item>
            <title>Born: Orion Eric Lloyd Parker</title>
            <description><![CDATA[<p>My wife and I had a kid a few months back. His name is Orion. After the constellation from Greek mythology. We've been busy obviously and that's why it has taken me almost 3 months to announce this. Time seems to both stretch and compress. It seems days last much longer now, but it amazes me that three months have gone by so quickly. How about a picture?</p>

<p><img src="http://lh6.google.com/image/dylan.parker/RduNINeGB_I/AAAAAAAAASE/Lq5PDswcLRk/s400/DSC_1169.JPG" border="1"></p>

<p>Each day seems to bring something new. More eye-contact. Better control over arms and hands. Mimicking laughter. Big kicks in the bath. Both Tracey and I feel so lucky that we get to be his parents. We keep expecting some time limit to be reached where we have to give him back.</p>

<p><img src="http://lh4.google.com/image/dylan.parker/RduL-teGB4I/AAAAAAAAARM/iGM8I_SUm4Y/s400/DSC_1262.JPG" border="1"></p>

<p>Orion was born at home with two <a href="http://www.bcmidwives.com/cookstreet.htm">excellent midwives</a> (and a kick-ass husband) for support. The labour was very sensible, starting in the early morning, progressing steadily with the finale taking place a little after 5PM in the evening. No complications. I even got to hold my son's head and 'help' the midwives with the delivery. Definitely one of the most surreal experiences I've had.</p>

<p><img src="http://lh5.google.com/image/dylan.parker/ReZcTrYYa5I/AAAAAAAAAVs/hxD-ezpy1QY/s400/DSC_1375.JPG" border="1"></p>

<p>Life definitely changes. Mostly a priority shift. He is now a part of this family and has some kind of impact on everything we decide or do. As much as it is a cliche to say how much a baby will change your life, its true... and it is one of those things that I couldn't fully grasp until it happened.</p>

<p><img src="http://lh3.google.com/image/dylan.parker/RggTVgO0t_I/AAAAAAAAAWs/M_XLnbFnPhU/s400/DSC_1413.JPG" border="1"></p>

<p>We could sit and stare at this kid for hours. And we do!</p>]]></description>
            <link>http://warmbrain.com/archives/2007/05/born-orion-eric-lloyd-parker.html</link>
            <guid>http://warmbrain.com/archives/2007/05/born-orion-eric-lloyd-parker.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Family</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Life</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Photos</category>
            
            
            <pubDate>Wed, 09 May 2007 22:43:52 -0800</pubDate>
        </item>
        
        <item>
            <title>SONOS and mime-types</title>
            <description><![CDATA[<img src="/media/sonos_controller.jpg" width="200" height="200" alt="Sonos Controller" title="Sonos Controller" class="inset" />
I ran across a fairly obscure problem with the <a href="http://www.sonos.com/">Sonos music system</a> related to mime-types, file extensions and dynamically generated playlists. This is fair warning that this post will get a tad technical.
<br /><br />
The Sonos music system supports Internet radio stations and is capable of parsing remote M3U playlists. My plan was to write a simple script that retrieves the latest <a href="http://www.thislife.org/pages/archives/archivemain.html">This American Life archives page</a>, parses the HTML to extract the set of show URLs and returns a dynamically generated playlist with the desired show URL.
<br /><br />
Sonos didn't like my dynamically generated playlist and it took me a while to figure out exactly why. In the end it seems the Sonos ignores <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">Content-Type HTTP header</a> and instead relies solely on the file extension in the URL it is accessing. In this case the file extension was .cgi and since Sonos doesn't know what .cgi means it ignored the contents of the response.
<br /><br />
The workaround I found was to enable the execution of CGI scripts with a .m3u file extension but only in a single directory. This is the contents of the Apache-style .htaccess file I used:

<blockquote><code>
Options +ExecCGI<br />
AddHandler cgi-script m3u<br />
AddType audio/x-mpegurl .m3u
</code></blockquote>

Then I renamed my script.cgi to script.m3u and Sonos no longer complained about corrupt contents and treated it like a regular playlist. Dynamically generated This American Life playlists streaming through my Sonos. Wonderful.
<br /><br />
I've contacted Sonos and explained the issue so hopefully they'll fix it in a future firmware update and others can avoid the headaches. ]]></description>
            <link>http://warmbrain.com/archives/2006/08/sonos-and-mimetypes.html</link>
            <guid>http://warmbrain.com/archives/2006/08/sonos-and-mimetypes.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Gadgets</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">HOWTO</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Hacking</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Software</category>
            
            
            <pubDate>Sun, 27 Aug 2006 22:11:31 -0800</pubDate>
        </item>
        
        <item>
            <title>JustBlogIt 0.3.1</title>
            <description><![CDATA[A minor update of the <a href="/justblogit/">JustBlogIt firefox extension</a> has been released. This update fixes a problem with blogging from within Bloglines and includes updates to work in Firefox 2.0b1.
]]></description>
            <link>http://warmbrain.com/archives/2006/08/justblogit-031.html</link>
            <guid>http://warmbrain.com/archives/2006/08/justblogit-031.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Blogging</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Software</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">webdev</category>
            
            
            <pubDate>Sun, 27 Aug 2006 20:19:38 -0800</pubDate>
        </item>
        
        <item>
            <title>Losing Weight</title>
            <description><![CDATA[<img src="/media/bathroom_scale.gif" width="150" height="150" alt="Bathroom Scale" title="Bathroom Scale" class="inset" />
Between Jeremy Zawodny <a href="http://jeremy.zawodny.com/blog/archives/006836.html">losing 50 pounds</a> over the past year and Aaron Swartz having success with the <a href="http://www.aaronsw.com/weblog/miraclediet">Shangri-La Diet</a> I decided a month ago to (again) make a serious concerted effort to lose some weight. The discovery of <a href="http://www.thedailyplate.com/">The Daily Plate</a> website has been extremely helpful with this effort. It combines a calorie search engine with easy meal recording and daily weight monitoring all in a simple interface. Do a search for what you ate, click 'I Ate This' and it gets added to your daily record. Specify some information about yourself along with your weight goals and the site will provide guidelines on how many calories you should eat each day to achieve those goals. Record your weight each day and a nice graph is generated to give you visual feedback of your progress.
<br /><br />
Losing weight is really quite simple in principle -- eat less than your body needs and your body will burn fat reserves to make up the difference -- but it was a surprise just how little I need on a daily basis and how easy it is to go over that limit. I'm trying to lose 2 pounds a week and at my age, height and current weight this means I should be eating around 1400 calories a day. Did you know that 1 tbsp of mayonnaise has 100 calories in it? It suddenly makes you think twice about how much you smear on that sandwich when it is going to consume so much of your quota for such little payoff. I'm hardly aware of the flavour anyway. Take a look at a tablespoon. It really isn't that much.
<br /><br />
After a few days of keen awareness of each item I put into my mouth I seemed to naturally migrate towards items that satisfy my hunger with minimal calories. To eat something greasy or sugary seems like just such a waste of my daily caloric budget. Something like a donut will taste great in the short term but ultimately will make it difficult to not over-eat by the end of the day. When you have all the information the choice is actually quite simple.
<br /><br />
During previous weight loss attempts I would down-play the need and effectiveness of exercise. I would compare the amount of exercise needed to work off, say, a piece of cake and would argue that not eating the piece of cake is much easier. That may be true, but tasty cake eating aside, doing some exercise and being able to increase your caloric intake by even a hundred calories is a very nice incentive. Once I fully grasped how quickly 1400 calories can be reached I was suddenly very interested in exercising as it gave me the ability to replenish my daily budget. A good brisk walk means a guilt-free beer with dinner. An hour of Squash or Badminton and, depending on your exertion level, you are looking at an additional meal.
<br /><br />
I started at 188 lbs four weeks ago and am now down to 180 lbs. I love how the process is deterministic and predictable. Follow A and get B as a result. It isn't easy but it also isn't mysterious. Whether you are trying to lose weight, gain weight or just stay the same I would definitely suggest checking out The Daily Plate to get some perspective on what you consume everyday.]]></description>
            <link>http://warmbrain.com/archives/2006/08/losing-weight.html</link>
            <guid>http://warmbrain.com/archives/2006/08/losing-weight.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">HOWTO</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Life</category>
            
            
            <pubDate>Sun, 27 Aug 2006 14:23:15 -0800</pubDate>
        </item>
        
        <item>
            <title>Fluffy Soapy Mouse</title>
            <description><![CDATA[<p><a href="http://www.patrickbaudisch.com/projects/soap/"><img src="/media/soap_mouse.jpg" width="300" height="264" class="inset" /></a><a href="http://research.microsoft.com/~awilson/">Andrew Wilson</a> and <a href="http://www.patrickbaudisch.com/">Patrick Baudisch</a> of Microsoft Research have produced an excellent tutorial on creating a <a href="http://www.patrickbaudisch.com/projects/soap/">mouse-like pointing device that works in mid-air</a>. I saw the <a href="http://www.youtube.com/watch?v=hohu8SSpduM">video on YouTube</a> and was seriously impressed.</p>

<p>Essentially the electronics of a wireless, optical mouse are re-housed in a smooth soap-like plastic container and then placed into a fluffy fabric tube. Similar to a tactile stress-reducing ball you can manipulate the fabric in various ways over the soap-like container and the optical sensor tracks the movement of the fabric and converts the actions into movement on the screen.</p>

<p>For fine cursor movement you slide the fabric around with your thumb. For faster movements you rotate the fabric around the container while the container stays still. And for still faster movements you can hold the fabric stationary while rotating the container just like you would a bar of soap. Check out the video for some visuals.</p>

<p>I was so intrigued by the video that I went out and bought a new mouse to convert and have a partially functional model to play with. The interface is very comfortable and the ability to move the cursor quickly and then do fine pixel-level adjustments requires almost no learning curve. It just comes naturally. I foresee this style of interaction becoming quite popular in the next few years.</p>

<p>My digital camera is inaccessible at the moment otherwise I'd post some photos of my hacky prototype. Because the mouse interaction is inverted (dragging something over the optical sensor vs vice versa) then either the up-down or left-right is reversed. I've yet been unable to find a simple mouse utility that lets me reverse one axis so for now this is an interesting prototype rather than something I can use on a daily basis.</p>]]></description>
            <link>http://warmbrain.com/archives/2006/08/fluffy-soapy-mouse.html</link>
            <guid>http://warmbrain.com/archives/2006/08/fluffy-soapy-mouse.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Gadgets</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">HOWTO</category>
            
            
            <pubDate>Sat, 26 Aug 2006 11:31:28 -0800</pubDate>
        </item>
        
    </channel>
</rss>
