<?xml version="1.0" encoding="UTF-8"?>
<posts>
  <post>
    <id type="integer">45</id>
    <title>Dear Netflix</title>
    <content>
<p>You have beaten me.  You have rendered me into a complete moron.  I offer proof:</p>

<p><img src="http://blogforsamurai.com/files/netflix.jpg" alt="My Netflix queue"/></p>

<p>I&#8217;ve held that second film <em>for a year</em>.  I&#8217;ve paid to own it six times over.  This is troubling behavior.  </p>

<p>In contrast, I&#8217;m damn near religious about my eMusic account, and only once did I ever neglect a large stack of downloads.  I was once told that music subscription sites bank on the fact that <em>half</em> of all tracks are never redeemed, pushing up revenue since they pay out for every download.  With regard to eMusic, I guess this puts me in the rabid, but expensive user category.  Quite the opposite for Netflix.</p>

<p>The important thing to remember (or the justification, now that I think of it) is that you&#8217;re ultimately paying a monthly fee for <em>convenience</em>, and not necessarily for some stock number of tracks or films.  With Netflix, there&#8217;s no worry over late fees, no driving and a pretty kick-ass recommendations system.  eMusic offers an unbelievably cheap way of sampling new music that you&#8217;d never find or pull down elsewhere.  If you forget this and become fixated on the numbers and your ratio of tracks to dollars, then you may end up working too hard on something that isn&#8217;t your job.  It&#8217;s entertainment, right?</p>

<p>This particular case may be stretching that point a bit far, but at least I&#8217;d like to report that the movie &#8211; <em>City of God</em> &#8211; was damn good.  Finally, major kudos to Netflix for making subscription changes simple and online.  Too many outfits throw up hoops of inconvenience if you want to cancel or downgrade.  Bravo.</p>    </content>
    <published-on type="datetime">2008-01-22T00:32:41Z</published-on>
    <created-on type="datetime">2008-01-22T00:32:41Z</created-on>
    <updated-on type="datetime">2008-01-22T00:32:41Z</updated-on>
  </post>
  <post>
    <id type="integer">44</id>
    <title>Wheelchair humor</title>
    <content>
<p><object width="464" height="388" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"><param name="movie" value="http://www2.funnyordie.com/public/flash/fodplayer.swf" /><param name="flashvars" value="key=3a0ac4b221" /><param name="allowfullscreen" value="true" /><embed width="464" height="388" flashvars="key=3a0ac4b221" allowfullscreen="true" quality="high" src="http://www2.funnyordie.com/public/flash/fodplayer.swf" type="application/x-shockwave-flash"></embed></object><noscript><a href="http://www.funnyordie.com/videos/3a0ac4b221">studio visit</a> on <a href="http://www.funnyordie.com">FunnyOrDie.com</a></noscript></p>    </content>
    <published-on type="datetime">2008-01-09T21:58:12Z</published-on>
    <created-on type="datetime">2008-01-09T21:58:12Z</created-on>
    <updated-on type="datetime">2008-01-09T21:58:12Z</updated-on>
  </post>
  <post>
    <id type="integer">43</id>
    <title>Speedy thing goes in, speedy thing comes out</title>
    <content>
<p>I recently finished <a href="http://www.whatistheorangebox.com/portal.html">Portal</a>, and it deserves every accolade it has received.  The story is compelling, the atmosphere meticulously crafted, and the puzzle-based gameplay is solid.  If you&#8217;ve ever had an interest in gaming, I heartily recommend it.</p>    </content>
    <published-on type="datetime">2008-01-07T21:35:15Z</published-on>
    <created-on type="datetime">2008-01-07T21:35:12Z</created-on>
    <updated-on type="datetime">2008-01-07T21:35:15Z</updated-on>
  </post>
  <post>
    <id type="integer">42</id>
    <title>Luggage</title>
    <content>
<p>These days, I work on various machines and keeping my environment synced between them is enough of a problem to merit some automation.  Essentially, I want my bash startup files, emacs config and custom scripts to follow me wherever I go, and be simple to setup.  To that end, I&#8217;ve stuffed everything into a publicly-accessible repository and wrote a quick script to unpack in a hurry:</p>

<pre>
#!/usr/bin/env ruby
# Get rid of existing files/symlinks and reset them.

require 'fileutils'

class Suitcase
  HOME_DIR     = File.expand_path '~'
  SUITCASE_DIR = File.dirname(File.expand_path(__FILE__))

  DIRS = [ { :src => "#{SUITCASE_DIR}/home", 
             :dest => "#{HOME_DIR}" },
           { :src => "#{SUITCASE_DIR}/bin",  
             :dest => "#{HOME_DIR}/bin" } ]

  def self.unpack
    DIRS.each do |dir|
      Dir.open(dir[:src]).each do |file|
        next if [ '.', '..', '.svn' ].include?(file)

        FileUtils.mkdir(dir[:dest]) unless File.directory?(dir[:dest])

        src  = "#{dir[:src]}/#{file}"
        dest = "#{dir[:dest]}/#{file}"

        if File.exist?(dest) and not File.symlink?(dest) then
          print "WARNING: #{dest} is a normal file or directory!\n"
          print "Are you sure you wish to overwrite it? (Y|n) : "
          case gets.strip
          when 'Y', 'y', '' then
            puts "Overwriting #{dest}"
            FileUtils.rm_rf dest
          else
            puts "Skipping #{dest}"
            next
          end
        end

        FileUtils.rm_rf(dest) if File.symlink?(dest)
        File.symlink src, dest
      end
    end
    puts "Done unpacking!"
  end
end

Suitcase.unpack
</pre>

<p>This file lives in a <code>suitcase</code> directory, which also contains two subdirectories &#8211; <code>bin</code> and <code>home</code>.  Essentially, everything in <code>suitcase/home</code> gets symlinked into <code>~</code>, and likewise, everything in <code>suitcase/bin</code> winds up in <code>~/bin</code> (the mapping is defined in the code above).  The result looks something like this:</p>

<pre>
~/suitcase
~/suitcase/unpack.rb
~/suitcase/home
~/suitcase/home/.bashrc
~/suitcase/home/.emacs
...
</pre>

<p>So whenever I hit a new machine, a quick <code>git pull</code> followed by <code>ruby suitcase/unpack.rb</code> is all I need to get started.  There&#8217;s nothing like the same old bash prompt to make you feel at home.  Of course, if I ever run into a Windows machine&#8230;</p>

<p>Ah, and that reminds me&#8230; I also move between Linux and Mac, and detecting the difference let&#8217;s me use the same files on both.  To check whether I&#8217;m running OS X in my bash startup files:</p>

<pre>
if [ "Darwin" = `uname` ] ; then
   ...
else
   ...
end
</pre>

<p>And to detect Carbon Emacs for OS X in <code>.emacs</code>:</p>

<pre>
(if (featurep 'carbon-emacs-package)
  (progn
    ...
  )
)
</pre>

<p>That will be all.</p>    </content>
    <published-on type="datetime">2008-01-07T00:59:31Z</published-on>
    <created-on type="datetime">2008-01-07T00:59:27Z</created-on>
    <updated-on type="datetime">2008-01-07T00:59:31Z</updated-on>
  </post>
  <post>
    <id type="integer">41</id>
    <title>Two tracks</title>
    <content>
<p>My sister-in-law&#8217;s husband, Mr. Brendan Burke, sent me two musical sketches today:</p>

<ul>
<li><a href="http://blogforsamurai.com/files/01%20access%20denied.mp3">access denied</a></li>
<li><a href="http://blogforsamurai.com/files/01%20downtime.mp3">downtime</a></li>
</ul>

<p>Here&#8217;s hoping he doesn&#8217;t mind me throwing them up here.  Check out more at: <a href="http://burkenyc.com">burkenyc.com</a>.</p>

<p>Brendan and I talk often about music, and we both agree that the days of the blow-out studio are numbered given the ease with which great, listenable tracks can be made at home.  A thought pops, and within minutes that melody can be preserved, all while kicking slippers and pajama bottoms.  I love it.</p>    </content>
    <published-on type="datetime">2008-01-05T23:22:00Z</published-on>
    <created-on type="datetime">2008-01-05T23:22:00Z</created-on>
    <updated-on type="datetime">2008-01-05T23:22:00Z</updated-on>
  </post>
  <post>
    <id type="integer">40</id>
    <title>Robots wave, we cringe</title>
    <content>
<p>I <em>finally</em> got around to playing with Google Android today, taking in <a href="http://code.google.com/android/intro/hello-android.html">Hello Android</a>.  First, I must mention that the linked article is incredibly well-written &#8211; presenting a friendly tone, explaining to great depths and hitting upon tasty morsels of advanced topics.</p>

<p>I have an app in mind for the great challenge, and it strikes the fun chord more than any other.  With two months to go and rusty to near-absent Java skills, it will certainly be a stretch, but one I&#8217;m looking forward to.</p>

<p>If I make any progress at all, I&#8217;ll splash it up here.</p>

<p>Android tickles a great nerve, rousing the hacker-slash-freedom-fighter in me.  I do, however, have reservations concerning its ultimate success.  It is pitted against, of course, not only the iPhone but also the vast hordes of Blackberries (proper plural?) and Windows Mobile devices.  Scratch the latters, actually, I&#8217;m not too concerned with them.  But the iPhone reminds me of another fight, already waged and long since decided.</p>

<p>Where I currently employ, two men once battled the relative merits of iPod versus Plays for Sure.  The Plays for Sure champion trumpeted its <em>open</em> nature, wherein a single product could take on many guises and the market would surely find a winner in the ranks.  Competition among hardware makers would only ensure that a better product would emerge, finely tailored to the discerning consumer.  Apple, he said, would have no such pressure, and would fail to catch up with the rapid innovation surrounding the Plays for Sure market.</p>

<p>Mr. Apple had a very simple response, &#8220;The iPod is cool&#8221;.  Even in its early days, the marketing of the iPod was brilliant, and its reputation as a hip, sleek, cool device would only continue to grow.  It didn&#8217;t matter that it was a singleton &#8211; whatever Apple came up with, whenever it chose to update, it would continue to be <em>regarded</em> more highly.</p>

<p>Fade to the present.  Now I&#8217;m not saying that I completely agree with either of the arguments above.  History&#8217;s panned out, the iPod won, and a good case can be made for any number of a dozen or so reasons.  But the striking similarity pains me.  Plays for Sure versus iPod.  Android versus iPhone.  Dozens of design firms versus Jonathan Ive.  It&#8217;s going to be interesting to watch, at the very least.</p>    </content>
    <published-on type="datetime">2008-01-05T23:05:28Z</published-on>
    <created-on type="datetime">2008-01-05T23:05:28Z</created-on>
    <updated-on type="datetime">2008-01-05T23:05:28Z</updated-on>
  </post>
  <post>
    <id type="integer">39</id>
    <title>New year</title>
    <content>
<p>The holidays were well spent for me, gathering with family and friends &#8211; I had a new daughter to show off, played Wii with my exuberant parents, and kissed my beautiful wife when the ball dropped.  It doesn&#8217;t get better.</p>

<p>Resolutions?  Surely not.  I could wake up tomorrow and run breathless through the cold.  I could put down the video game controller and write code.  I could put my idle easel and guitar to work.  I could read more, watch less.  I could stifle my desire to show off what I know and humbly listen instead.  But the slow purge of childish activity continues instead, and I rather enjoy the pace.  Productivity&#8230; I&#8217;ll save for my thirties.</p>

<p>Peace.</p>    </content>
    <published-on type="datetime">2008-01-02T00:37:55Z</published-on>
    <created-on type="datetime">2008-01-02T00:37:55Z</created-on>
    <updated-on type="datetime">2008-01-02T00:37:55Z</updated-on>
  </post>
</posts>
