<?xml version='1.0' encoding='utf-8' ?>
<rss version='0.92'>
  <channel>
    <title>
      alexvollmer.com
    </title>
    <link>
      http://alexvollmer.com
    </link>
    <description>
      Latest posts from Alex Vollmer
    </description>
    <lastbuilddate>
      2010-06-13T15:10:14PDT
    </lastbuilddate>
    <docs>
      http://backend.userland.com/rss092
    </docs>
    <language>
      en
    </language>
    <item>
      <title>
        <![CDATA[
            A Tale of Two Cultures
        ]]>
      </title>
      <description>
        <![CDATA[
            I just returned from the 2010 edition of Apple's WWDC. The week before I took
            a week off from my iPhone and lived with an Android Nexus One. Both my personal
            experience with Android and the following week's announcements left a
            strong impression that, in the so-called "smartphone" space, we are really
            seeing the success of two very different mind-sets, cultures and philosophies.
            I'm not interested in a winner-takes-all kind of war. Instead I wanted to look
            at the differences between these two companies in the context of them
            co-existing and each having a happy, satisfied base of customers.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/06/13/a-tale-of-two-cultures/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Cocoa's Broken Tests
        ]]>
      </title>
      <description>
        <![CDATA[
            I'm a long-time TDD kinda guy. I've had the great fortune of learning TDD
            first-hand from <a href="http://en.wikipedia.org/wiki/Kent_Beck" title="Kent Beck - Wikipedia,the free encyclopedia">one of its greatest practitioners</a>
            and consider it one of the core disciplines of the way I go about my
            profession. So when I first started doing Cocoa programming in earnest I was
            shocked at the state of automated testing. Compared to my experiences on other
            platforms, the tools are archaic and backwards. Moreover, the philosophy of
            testing just doesn't seem to be baked into the DNA of the Cocoa community.
            Nobody seems to be talking about it much. So I've just suffered with
            old-fashioned head-against-wall development without the comforting support of
            TDD. But I don't know how much longer I can take it. Am I crazy for wanting
            TDD in Cocoa, or are the two simply incompatible?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/06/01/cocoas-broken-tests/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The International Colors of iPhoneOS
        ]]>
      </title>
      <description>
        <![CDATA[
            Like flossing or saving for retirement, localizing
            and internationalizing your applications is one of those things "you should
            do". Cocoa, and by extension Cocoa Touch, has pretty decent localization
            (l10n) and internationalization (i18n) support. If you use the
            <code>NSLocalizedString</code> macro along with locale-specific strings files, you will
            handle 99.9% of your localization needs.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/05/21/the-international-colors-of-iphoneos/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Visual Affordance in a Touch-Enabled World
        ]]>
      </title>
      <description>
        <![CDATA[
            <em>Ooooh</em>, you must be thinking, <em>what a posh title this is!</em> Okay, I'll admit
            to copping a bit of a grandiose attitude when I came up with this, but hear
            me out on this one.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/05/07/visual-affordance-in-a-touch-enabled-world/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            On Technical Presentations
        ]]>
      </title>
      <description>
        <![CDATA[
            I spent last weekend at the Seattle version of the <a href="http://www.voicesthatmatter.com/iphone2010/" title="iPhone
            Developers Conference - Using the iPhone OS to build apps for the iPad and
            iPhone">Voices That Matter iPhone
            Developer's conference</a>. The content was great, but aside from John "Wolf" Rentzch's Core
            Data talk, the quality of the slides and presentation was pretty lacking. I'm
            not here to dogpile on those speakers. I still got a lot out of their talks,
            but the experience crystallized some important rules for me about technical
            presentations.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/04/30/on-technical-presentations/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Menu Bar Ghetto
        ]]>
      </title>
      <description>
        <![CDATA[
            The menu bar has become a dumping ground. With each new application I install
            another grubby child is dropped off at the doorstep of the orphanage known
            as the OS X menu bar. This has simply got to stop.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/04/23/menubar-ghetto/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Thanks, mom
        ]]>
      </title>
      <description>
        <![CDATA[
            It's been a while since I last posted. Normally I wouldn't preface a post with
            that (it drives me crazy when I read it elsewhere), but my world changed
            completely last month when, on March 5th, my mom unexpectedly passed
            away. I found out the following morning, and things haven't been the same
            ever since.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/04/17/thanks-mom/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Scripting Build Selection in Xcode
        ]]>
      </title>
      <description>
        <![CDATA[
            When I'm doing iPhone development, I constantly
            switch between running on the device and the simulator. As far
            as I can tell, Xcode doesn't provide an easily-accessible keyboard
            shortcuts for switching between SDKs. Since I <em>hate</em> breaking up my flow by
            having to reach for the mouse, I put together a couple of
            AppleScripts that bind hot-keys to switching between SDKs. Download
            these two scripts to wherever you like to store your AppleScripts.
            I like to put mine in <code>~/Library/Scripts</code>.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/03/06/scripting-build-selection-in-xcode/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            RVM meets zsh
        ]]>
      </title>
      <description>
        <![CDATA[
            <a href="http://rvm.beginrescueend.com/">RVM</a> is a nifty tool for managing
            multiple ruby installations. Not only does it make it easy to install
            and switch between multiple rubies, but you can also install
            gems without <code>sudo</code> access. But, as great as RVM is, I still have to
            remember to switch between rubies and often I don't remember to do it
            until I see some weird behavior or a test breaks. I'm very lazy and
            I want even <em>more</em>.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/02/27/rvm-meets-zsh/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Static Cling
        ]]>
      </title>
      <description>
        <![CDATA[
            Lord knows why, but in the last couple of months I felt compelled to
            move off of Wordpress and onto one of those new static content
            generators for this site. Part of it was motivated by getting fed up
            with constantly upgrading Wordpress. I suppose another part of it was
            because all the <a href="http://userprimary.net">cool</a>
            <a href="http://davepeck.org/">kids</a> were doing it. But, most importantly,
            I wanted to give the site design a reboot&mdash;something I did <em>not</em>
            want to do in PHP in the form of Wordpress themes. So with a little
            help from <a href="http://whole-studios.com/">a friend</a>, this site got a
            facelift and a new platform to boot.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/02/22/static-cling/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The iPad
        ]]>
      </title>
      <description>
        <![CDATA[
            <img src="http://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/IPad-01.jpg/250px-IPad-01.jpg" alt="iPad" class="left">
            After letting the dust settle around Apple's announcement of the iPad,
            I wanted to take a more measured, less reactionary look at the new
            device. The coverage that immediately followed the announcement was
            even more biased to both extremes than coverage of the President's
            State of the Union address which occurred the same day. I know that
            there's a growing body of folks who just don't like Apple, but I was
            surprised at the level of antipathy.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/01/31/the-ipad/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Prototyping with Briefs
        ]]>
      </title>
      <description>
        <![CDATA[
            One of the best sessions I saw at the 2009 WWDC was titled "Prototyping iPhone User Interfaces". In this session, Bret Victor laid out a strategy and some techniques for building cheap prototypes on the the device in lieu of "static" mockups.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/01/10/prototyping-with-briefs/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Tools of 2009
        ]]>
      </title>
      <description>
        <![CDATA[
            I suppose if I were really on the ball I would have posted this right after New Year's Day, but I needed to ruminate a bit on what was worth summarizing for 2009. In the end I decided to talk about the tools I found in 2009 that really made a difference in my life.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2010/01/07/tools-of-2009/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            All-Time Lineup
        ]]>
      </title>
      <description>
        <![CDATA[
            A little while ago, I was encouraged to put together my "All-Time" baseball lineup. Now, personally I think the game is more difficult to compete in now than ever before. While the old-timers love to gripe about players in the Steroid Era, I don't think those guys had to play with such a uniformly strong level of competition under such high pressure. But that's just my gut feeling. I don't really have the evidence to back that up. I also think that baseball fans have a tendency to romanticize the players of baseball's so-called "Golden Era", making any rational debate even tougher.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/12/15/all-time-lineup/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Building a Knowledge Base
        ]]>
      </title>
      <description>
        <![CDATA[
            Many years ago, I had the fortune of working for a family friend who was a financial planner. Not only did I get to learn a lot about personal finances at an early age, but I also picked up some great professional habits too. One of the things she did was maintain a gigantic set of folders of things she found interesting or useful. She had a four-drawer filing cabinet filled with various tidbits of information she had collected. She had a pretty good index in her head of where these things were and was amazingly proficient in recalling where she had filed things.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/12/11/building-a-knowledge-base/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Cleaning out the Closet
        ]]>
      </title>
      <description>
        <![CDATA[
            I've had a couple of nascent Ruby gems lurking in my Github account for what seems like ages. So, on a rainy Saturday afternoon, I did a little cleanup and pushed a couple of new gems out to <a href="http://gemcutter.org">Gemcutter</a>.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/11/07/cleaning-out-the-closet/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The Cleverest Git Maneuver I Ever Pulled Off
        ]]>
      </title>
      <description>
        <![CDATA[
            So there I was, reviewing a series of commits, sucking air between my teeth and cringing when I came upon one of those lazy commits that has way too much stuff in it to reasonably digest. I needed a way to go back and split that commit into two or three separate commits. This is pretty easy to do with <code>git rebase</code>. You can just do a mixed reset of the last commit, stage the bits you want in one commit, stage the next bits and put that in a separate commit.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/10/09/the-cleverest-git-maneuver-i-ever-pulled-off/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            clip version 1.0.2 has been released!
        ]]>
      </title>
      <description>
        <![CDATA[
            You like command-line parsing, but you hate all of the bloat. Why
            should you have to create a Hash, then create a parser, fill the Hash
            out then throw the parser away (unless you want to print out a usage
            message) and deal with a Hash? Why, for Pete's sake, should the parser
            and the parsed values be handled by two different objects?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/10/03/clip-version-1-0-2-has-been-released/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The End of an Era
        ]]>
      </title>
      <description>
        <![CDATA[
            Well, this is it kids; the end of my time at <a href="http://evri.com">Evri</a>. While I have cultivated a long-standing antipathy towards the Grateful Dead, I'll co-opt one of their song titles and simply mutter, "what a long strange trip it's been". I started out at Evri when it was still just a twinkle in somebody's eye. Since then I've seen it grow and mutate in ways I would have never imagined. I got to work on a lot of cool stuff and learn a bunch of new things. The best part, like any good job, was having the opportunity to work with some really great people.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/10/02/the-end-of-an-era-2/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            iPhone Screencasts
        ]]>
      </title>
      <description>
        <![CDATA[
            I'm pleased to announce the release of the first in a series of <a href="http://peepcode.com">PeepCode screencasts for the iPhone SDK</a> I've been co-writing with Geoffrey Grosenbach. The first one (done in two parts) covers View Controller basics. We decided to start with View Controllers because they are at the core of all "productivity"-style applications. Once you have them down, you can start to put some meat on the bones of your iPhone apps.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/09/15/iphone-screencasts/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            EvriVerse 2.0
        ]]>
      </title>
      <description>
        <![CDATA[
            <img src="/images/2009/08/photo-5.jpg" class="left">
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/08/19/evriverse-2-0/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Cocoa's Ways of Talking
        ]]>
      </title>
      <description>
        <![CDATA[
            Getting objects to talk to one another in Objective-C is a easy as passing a message from one to the other. These messages are typically passed through the message-invocation mechanism of using the square-braces to bind a message and arguments to a receiver. Most of the time this is a perfectly reasonable way to communicate. However there are times when you need objects to communicate <em>without having explicit knowledge of one another.</em>
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/06/25/cocoas-ways-of-talking/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The iPhone and Web APIs
        ]]>
      </title>
      <description>
        <![CDATA[
            We live in a very interesting time for application development. The distinctions between desktop, browser and mobile applications are blurring more and more every day. "Ubiquitous platform" applications, like <a href="http://evernote.com">Evernote</a>, are where the future is because it reduces the major hurdle of access for users. As time goes on users are going to expect applications to be available in a bunch of different ways that all need to work together.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/05/27/the-iphone-and-web-apis/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Peepcode meets MacRuby
        ]]>
      </title>
      <description>
        <![CDATA[
            I am pleased to announce the release of Peepcode's latest screencast about MacRuby written by yours truly with Geoffrey Grossenbach and technical editing by Laurent Sansonetti.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/05/15/peepcode-meets-macruby/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Incremental Find on the iPhone
        ]]>
      </title>
      <description>
        <![CDATA[
            This is the first in a series of posts I'll be writing about my experiences developing the <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=312716560=8">EvriVerse iPhone application</a> for <a href="http://evri.com">work</a>. Since the end of 2008 I've been getting more and more into Cocoa for both the iPhone and Mac. The more I work on it, the more fun I have. I've got several side-projects in mind so I'll be spending a lot more time in Cocoa-land and, as a result, blogging and tweeting about it a lot more.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/05/15/typeahead-search-on-the-iphone/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Introducing the EvriVerse
        ]]>
      </title>
      <description>
        <![CDATA[
            <img src="/images/2009/05/graph.jpg" class="left">
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/05/12/introducing-the-evriverse/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The Great Git Setup
        ]]>
      </title>
      <description>
        <![CDATA[
            One of the best ways to really learn the ins and outs of anything is to immerse yourself in all the gory details. Not only do you learn what works, what doesn't, what's elegant and what sucks, but you also start to grok the inner-workings. I just spent the last two weeks getting our own internal Git infrastructure up and running at work and I feel like Git and I have a new level of intimacy that we previously lacked. What follows is a review of the process and the solution that we've implemented.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/05/08/the-great-git-setup/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Using Git as a Safety Net
        ]]>
      </title>
      <description>
        <![CDATA[
            I spent the last week on a top-secret iPhone application at work. It has been a blast, in part, because it's been so fun to learn so much new information so quickly. That has meant trying out lots of ideas and, more often than not, rolling them back and trying again. The problem is that doing this kind of experimentation can be an absolute productivity-killer in terms of managing your changes&mdash;unless you have a good tool to manage large chunks of changes, you can spend a lot of time trying to do it manually (and probably screwing it up in the process).
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/03/14/using-git-as-a-safety-net/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            What Jersey Means To Java
        ]]>
      </title>
      <description>
        <![CDATA[
            In the last few days at <a href="http://evri.com">work</a> I've been migrating a home-grown REST framework over to the <a href="https://jersey.dev.java.net/">Jersey project</a> (the reference implementation of JSR-311 or, JAX-RS). Previously I had done some work moving JRuby into the VM and launching Merb. It was satisfying to figure out how to do that, but involved an awful lot of wiring and special-casing.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/03/04/what-jersey-means-to-java/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            You Put Merb In My Jetty!
        ]]>
      </title>
      <description>
        <![CDATA[
            In the latest update of <em>The Chronicles of Stuff Alex Figures out at Work,</em> our intrepid hero figures out how to run Merb inside an embedded Jetty instance!
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/02/11/you-put-merb-in-my-jetty/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Rewriting History with Git
        ]]>
      </title>
      <description>
        <![CDATA[
            This past week I spent some quality time with git's history-rewriting capabilities. Over the past few weeks I had been working on a rather long-lived branch full of JRuby and Merb patches. Some of the fixes and changes were ready to go in the next release, others were still a wee bit experimental and so my plan was to split the patches in two. The ones that were ready would get pushed upstream while the not-ready-for-primetime stuff stayed on a local branch.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/01/31/rewriting-history-with-git/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Opening The Gates&#8230;of Hell!!
        ]]>
      </title>
      <description>
        <![CDATA[
            &hellip;umm, no, actually not so much.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/01/27/opening-the-gatesof-hell/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Ruby Threads Suck&#8230;Just Not The Way You Think They Do
        ]]>
      </title>
      <description>
        <![CDATA[
            At <a href="http://www.evri.com%20Evri!!">work</a>, we do a lot of scheduled tasks in which we process a "chunk" of data within a particular time-period. For example, we may tail log files, parse the lines and publish summary statistics "up-stream" on a fixed schedule of, say, ten minutes. Similarly, last week we were working on a Ruby wrapper script that launches <a href="http://www.danga.com/memcached/%20memcached">memcached</a> and maintains a registration lease within a home-grown registration service we run. The script needs to launch memcached, then periodically check it and renew its registration lease.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/01/26/ruby-threads-suckjust-not-the-way-you-think-they-do/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Meet Magit!
        ]]>
      </title>
      <description>
        <![CDATA[
            In the spirit of Geoffrey Grossenbach's <a href="http://peepcode.com/products/meet-emacs%20Meet%20Emacs">Meet Emacs Peepcode Screencast</a>, I put together my own humble little screencast this weekend on <a href="http://zagadka.vm.bytemark.co.uk/magit/magit.html%20Magit">magit</a>, a fantastic <a href="http://git-scm.com%20Git">git</a> mode for Emacs.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/01/18/meet-magit/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            clip version 1.0.1 has been released!
        ]]>
      </title>
      <description>
        <![CDATA[
            You like command-line parsing, but you hate all of the bloat. Why
            should you have to create a Hash, then create a parser, fill the Hash
            out then throw the parser away (unless you want to print out a usage
            message) and deal with a Hash? Why, for Pete's sake, should the parser
            and the parsed values be handled by two different objects?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/01/07/clip-version-101-has-been-released/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            ActiveRecord, Associations and Counters
        ]]>
      </title>
      <description>
        <![CDATA[
            Maybe this is old hat to all you grizzled vets out there, but today I thought I'd post about my experience with ActiveRecord's counter caches and the tricks I had to pull to get it working. Let me first set the stage with what I was trying to accomplish.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/01/04/activerecord-associations-and-counters/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The Fast and the Quick
        ]]>
      </title>
      <description>
        <![CDATA[
            <img alt="Walter Payton" src="http://media-2.web.britannica.com/eb-media/91/95591-004-36D62DDD.jpg" class="left">
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2009/01/01/the-fast-and-the-quick/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Flaccid Attitudes
        ]]>
      </title>
      <description>
        <![CDATA[
            Today I had an impromptu conversation with a total stranger at my local caf&eacute; that got me thinking. He saw that I was working on some code and asked me what I was doing. I gave him the thirty-second whirlwind tour of Ruby and briefly explained what I was working on.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/12/23/flaccid-attitudes/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Burning My Ships
        ]]>
      </title>
      <description>
        <![CDATA[
             When Columbus reached the New World, he burned his ships. As a result his men were well-motivated.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/12/21/burning-my-ships/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            A Tale of Sandwiches and Happiness
        ]]>
      </title>
      <description>
        <![CDATA[
            <img src="http://farm4.static.flickr.com/3228/3096590905_8ccb3341e4_m.jpg" class="left">
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/12/18/a-tale-of-sandwiches-and-happiness/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Just Having Fun
        ]]>
      </title>
      <description>
        <![CDATA[
            After spending nearly all of my spare hours on <a href="http://moochbot.com%20moochbot%20%E2%80%94%20track%20what%20you%20lend%20and%20borrow">moochbot</a>, it was fun to take a lighter turn this week. Today I put up <a href="http://isthatfreedomrock.com%20Freedom%20Rock!!">http://isthatfreedomrock.com</a>. If you are lucky enough to have watched cable in the late 80's you might remember a TV ad in which two hippies sit in front of a VW bus doing their best Cheech &amp; Chong routine. One hippy says to another, "is that freedom rock? Then turn it up!" I don't know why, but that has <em>always</em> been funny to me. It's just so&hellip;stupid. Can you imagine the ad execs sitting around the table thinking this one up?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/12/16/just-having-fun/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            This Evening's moochbot Lessons
        ]]>
      </title>
      <description>
        <![CDATA[
            Tonight's post-get-the-kid-to-bed hacking time was a mad dash to cleanup a handful of bugs that some of you fine folks found with <a href="http://moochbot.com">moochbot</a>. In no particular order is a list of this evening's "a-ha" moments:
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/12/11/this-evenings-moochbot-lessons/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            moochbot is out
        ]]>
      </title>
      <description>
        <![CDATA[
            <img alt="moochbot" src="http://moochbot.com/images/logo.png" class="left">
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/12/10/moochbot-is-out/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Code Personification
        ]]>
      </title>
      <description>
        <![CDATA[
            Today I had a conversation with co-worker about the two software components we were trying to integrate in the system we work on. In that conversation I noticed that we both kept referring to the software components as "you" and "I". If you had been within earshot of this conversation you would have heard phrases like "&hellip;<em>you</em> should send the dates in GMT so that <em>I</em> can search correctly&hellip;" I don't think this conversational style is uncommon among developers. Clearly it's not logically correct&mdash;it's not <em>me</em> sending dates, it's <em>my code</em>. It's not <em>him</em> who is searching, it's <em>his code</em>. Why do we do this?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/12/09/code-personification/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Asynchronous Mail with DelayedJob, God &#38; Daemons
        ]]>
      </title>
      <description>
        <![CDATA[
            Slowly but surely I've been pecking away at a little Rails-based side-project for the last four or five months. I'm <em>this close</em> to flipping the <em>on</em> switch&mdash;but in the meantime I've still got some "i"s to dot and "t"s to cross. One of those was switching from in-request mail delivery to asynchronous mail delivery. The app I've been working on involves two parties marching a particular transaction through a variety of state transitions, each of which usually sends an email to either or both parties.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/11/06/asynchronous-mail-with-delayedjob-god-daemons/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Election Infographics Redux
        ]]>
      </title>
      <description>
        <![CDATA[
            With Election Night coming to a close and Senator Barack Obama declared as President-elect, I figured I'd spend a little time <a href="http://livollmers.net/index.php/2008/02/05/a-survey-of-super-tuesday-infographics/">re-surveying the infographics</a> of some of the major online publishers. This is by no means comprehensive, and doesn't consider a lot of the interesting visualizations that some folks are doing. I consciously stuck with the mainstream to see how design innovation was trickling down into conservative publishers.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/11/05/election-infographics-redux/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Proportional Code
        ]]>
      </title>
      <description>
        <![CDATA[
            Few things are less sexy than command-line parsing. It is one of the most mundane tasks a programmer has to execute in their career. But, it surprises just how much code is required to do basic command-line parsing in a lot of languages, including Ruby. So I got to thinking, <em>why does this bug me so much?</em> I think the answer is that requiring so much code for such a relatively trivial task violates my sense of <em>proportionality</em> in the code. I hate having to say so much more about this teeny little task than I do about the "theme" of my code. I think it distorts the narrative of the code.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/10/26/proportional-code/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Back To My...Emacs
        ]]>
      </title>
      <description>
        <![CDATA[
            Emacs. Love it or hate it, it is undeniably a monument of software engineering. At best it's an amazingly customizable work environment that can be shaped to your every whim. At worst it's a giant time-sink where productivity is skewered by endless "fiddling".
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/10/07/back-to-myemacs/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            A Philosophy of Testing
        ]]>
      </title>
      <description>
        <![CDATA[
            Did you hear that? Did you feel it? I did. Agile just took another punch to the gut. The Agile Backlash is picking up a full head of steam. Rather than becoming a term to embrace, it's become a term of ridicule. I think it's probably deserved. As a guy who picked up the first <a href="http://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658%3FSubscriptionId%3D0PZ7TM66EXQCXFVTMTR2%26tag%3Dhttplivollmne-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0321278658">Extreme Programming</a> book as soon as it was released and is a long-time practitioner, I feel qualified to comment on this.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/10/02/a-philosophy-of-testing/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Make View Helpers a Little Less "Helpful"
        ]]>
      </title>
      <description>
        <![CDATA[
            I stumbled across a little bit of hidden Rails fun last night when I was trying to get the form_for method to <em>stop</em> wrapping error fields with extra div tags. Did you know that? Maybe you never noticed, but when you use the field helper methods, like text_field, password_field, etc, Rails will wrap fields with errors in a <code>&lt;div&gt;</code> with the class 'fieldWithErrors'.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/09/23/make-view-helpers-a-little-less-helpful/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Clip 1.0.0 Released!
        ]]>
      </title>
      <description>
        <![CDATA[
            Command-line parsing made short and sweet.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/09/19/clip-100-released/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Oracle's Listening&hellip;
        ]]>
      </title>
      <description>
        <![CDATA[
            Following a re-tweet of @timoreilly, I went to check out <a href="http://oracle.com">Oracle's home pag</a>e today. Here's what I got:
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/09/19/oracles-listening/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Book Review: "JavaScript: The Good Parts"
        ]]>
      </title>
      <description>
        <![CDATA[
            <img src="/images/2008/08/dsc-0204.jpg" alt="DSC_0204.NEF">
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/08/15/book-review-javascript-the-good-parts/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Book Review: About Face 3
        ]]>
      </title>
      <description>
        <![CDATA[
            Alan Cooper's <em>About Face</em> is one of those pillars of UI/UX design, the reading of which is a rite of passage. I figured few books would be more appropriate as a capstone to my long list of design-oriented reads. It is nearly an institution in and of itself. Last night I turned the final page and ticked a pretty big 560-page book off of my reading list.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/07/30/book-review-about-face-3/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            ActiveRecord Fun Thay May Stump Only Me
        ]]>
      </title>
      <description>
        <![CDATA[
            I've just spent the last two hours pulling my hair out trying to get Single-Table Inheritance (STI) working with associations in <code>ActiveRecord</code>. After essentially walking through all of the possible <code>ActiveRecord</code> options in this setup, I finally stumbled upon a configuration that seems to work. So this post is an attempt to help the next poor bastard who is Googling in earnest for a solution to a similar problem.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/07/24/activerecord-fun-thay-may-stump-only-me/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            clip version 0.0.6 has been released!
        ]]>
      </title>
      <description>
        <![CDATA[
            You like command-line parsing, but you hate all of the bloat. Why
            should you have to create a Hash, then create a parser, fill the Hash
            out then throw the parser away (unless you want to print out a usage
            message) and deal with a Hash? Why, for Pete's sake, should the parser
            and the parsed values be handled by two different objects?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/07/10/clip-version-006-has-been-released/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Military History
        ]]>
      </title>
      <description>
        <![CDATA[
            In addition to technical geekery and social commentary, one of my favorite intellectual pursuits is the study of military history. It's one of my many interests that makes me so very thankful that I met my wife when I did or I would never have had a date in my adult life.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/28/military-history/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            gemdoc completion in zsh
        ]]>
      </title>
      <description>
        <![CDATA[
            This week I stumbled upon Stephen Celis' awesome bit of shell-fu, <a href="http://stephencelis.com/archive/2008/6/bashfully-yours-gem-shortcuts%20gemdoc">gemdoc</a>, which allows you to quickly get to the HTML docs for installed gems via command-line. Unfortunately I abandoned bash years ago for zsh and Stephen's shell bits needed a little porting. For me, zsh, is a bit like swiss-army knife where about 95% of it is a mystery to me, but the 5% I use I couldn't live without. So simply switching back to bash is a no-go.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/25/gemdoc-completion-in-zsh/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Launch Day!!!
        ]]>
      </title>
      <description>
        <![CDATA[
            I've spilled a lot of (virtual) ink in this blog, but almost none of it about what I do all day. That's because I've been working at a startup in "stealth mode" for darn near two years and haven't been able to really say much about it. Until today.<a href="http://evri.com" title="Evri" target="_blank"></a>
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/24/launch-day/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Smorgasm!
        ]]>
      </title>
      <description>
        <![CDATA[
            While on vacation last week, my wife and some friends of ours solved the age-old problem of melting the chocolate <em>and</em> the marshmallow in a s'more. You stuff a chunk of chocolate (we prefer good old-fashioned Hershey's waxy American milk chocolate) <em>inside</em> the mallow and then toast the entire unit.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/21/smorgasm/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Book Reviews: Designing the Obvious/Designing the Moment
        ]]>
      </title>
      <description>
        <![CDATA[
            I've been on a usability/design kick for about the last six months. Somehow I stumbled across a link to <a href="http://rhjr.net">Robert Hoekman Jr's site</a> which was described as great design books for programmers. I fully recognize the fact that I really don't have that little spark that good designers have, but I'd like to be better at it than I am. So I've been eager to find usability and design books that work for visually-clumsy folks like me. Robert Hoekman's pair of books, <em>Designing the Obvious</em> and <em>Designing the Moment</em> were wonderful additions to my growing design-for-code-dorks library.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/20/book-reviews-designing-the-obviousdesigning-the-moment/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Somebody Hates Me
        ]]>
      </title>
      <description>
        <![CDATA[
            When I see a forecast like this, I gotta think that life just isn't fair sometimes...
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/19/somebody-hates-me/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            It Would Be Nice If...
        ]]>
      </title>
      <description>
        <![CDATA[
            When talking about building software, few sentences set off more red flags than those beginning with "it would be nice if..". I don't mean some variation of this phrase, I mean exactly this phrase. It's like those words are a specific code-phrase for "speculative features coming your way!"
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/14/it-would-be-nice-if/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            clip version 0.0.5 has been released!
        ]]>
      </title>
      <description>
        <![CDATA[
            You like command-line parsing, but you hate all of the bloat. Why should you have to create a Hash, then create a parser, fill the Hash out then throw the parser away (unless you want to print out a usage message) and deal with a Hash? Why, for Pete's sake, should the parser and the parsed values be handled by two different objects?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/13/clip-version-005-has-been-released/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The End of an Era
        ]]>
      </title>
      <description>
        <![CDATA[
            Well, okay maybe that title is a bit misleading. I mean, we're not talking about a transition from when dinosaurs ruled the earth to the Ice Age or the introduction of the combustible engine. But today I shut down my remaining home Linux server which ran this blog since its inception.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/07/the-end-of-an-era/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            clip version 0.0.4 has been released!
        ]]>
      </title>
      <description>
        <![CDATA[
            You like command-line parsing, but you hate all of the bloat. Why
            should you have to create a Hash, then create a parser, fill the Hash
            out then throw the parser away (unless you want to print out a usage
            message) and deal with a Hash? Why, for Pete's sake, should the parser
            and the parsed values be handled by two different objects?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/07/clip-version-004-has-been-released/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            RailsConf '08 Wrapup
        ]]>
      </title>
      <description>
        <![CDATA[
            RailsConf closed up last Sunday afternoon and after three-hour drive back and day of work to contemplate, here's what I've boiled it down to:
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/06/03/railsconf-08-wrapup/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            1Password To Rule Them All...
        ]]>
      </title>
      <description>
        <![CDATA[
            I came across a fantastic piece of Mac software thanks to a <a href="http://twitter.com/hotdogsladies">Merlin Mann tweet</a>. The app is called <a href="http://agilewebsolutions.com/products/1Password">1Password</a> and, to paraphrase Mr. Mann's original tweet, it solves a problem I didn't even realize I had. Well...that's not entirely true. I knew that the various passwords I have scattered across the net weren't as secure as they could be. I had heard of master-password apps but hadn't really done much research on them. Now I'm not going to bother because 1Password so completely blew me away that I went ahead and bought the license (more on that in a bit).
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/05/26/1password-to-rule-them-all/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Passing The Mom Test
        ]]>
      </title>
      <description>
        <![CDATA[
            How many times have you excitedly tried to show your parents some project you're working on and gotten a confused or indifferent response? My reaction has often been to dismiss this disconnect as the result of a generation-gap, but a recent experience has led me to rethink that.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/05/24/passing-the-mom-test/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            clip version 0.0.2 has been released!
        ]]>
      </title>
      <description>
        <![CDATA[
            You like command-line parsing, but you hate all of the bloat. Why
            should you have to create a Hash, then create a parser, fill the Hash
            out then throw the parser away (unless you want to print out a usage
            message) and deal with a Hash? Why, for Pete's sake, should the parser
            and the parsed values be handled by two different objects?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/05/21/clip-version-002-has-been-released/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The Great Music Backup
        ]]>
      </title>
      <description>
        <![CDATA[
            My to-do list is a mile-long and never ends. That thought can be quite depressing at times, but sometimes you finally get to tick something off of the list that has sat there so long that you can briefly enjoy a fleeting moment of smug self-satisfaction. I had just such a moment this week when my Great Big Music Backup to S3 finally completed.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/04/24/the-great-music-backup/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            clip version 0.0.1 has been released!
        ]]>
      </title>
      <description>
        <![CDATA[
            You like command-line parsing, but you hate all of the bloat. Why should you have to create a Hash, then create a parser, fill the Hash out then throw the parser away (unless you want to print out a usage message) and deal with a Hash? Why, for Pete&rsquo;s sake, should the parser and the parsed values be handled by two different objects?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/04/12/clip-version-001-has-been-released/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            S3 Sync Update
        ]]>
      </title>
      <description>
        <![CDATA[
            A while back <a href="http://blog.livollmers.net/index.php/2008/01/21/poor-mans-mac/">I wrote about my strategy for synchronizing between two machines</a> using Amazon's S3 and the JungleDisk tool. I just wanted to post a quick update that refines that strategy a bit. First, let me describe what needed improvement. I sync the <code>~/Documents</code> directory between my home and work MacBooks. However, on my home machine I have some extra files that really don't belong on my work machine (like Quicken files), so I have a small text file (called <code>sync_files</code>) that enumerates which sub-directories and file in ~/Documents are to be synchronized between the two machines.This all worked pretty well until I noticed duplicates of files appearing in different places. I realized that what had happened was that I had moved the files on one of the disks and then sync'd with S3. With my current scripts this resulted in copying the file to the new location, but not removing the old one.So with a quick glance at the <code>rsync</code> man-page, I found the <code>--delete</code> option. I refined my scripts and ran them. It all looked good--until I got home. Oops, I just lost a whole bunch of files. Uh-oh. It turns out I forgot to use the <code>sync_files</code> file for both directions. This was an easy tweak but reminded me of the Golden Rule of Rsync:
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/04/05/s3-sync-update/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            PCI4R Update
        ]]>
      </title>
      <description>
        <![CDATA[
            We finally made some progress this week on the languishing <a href="http://github.com/alexvollmer/pci4r/tree/master%20pci4r%20on%20GitHub">pci4r</a> project. First, congrats to <a href="http://www.railsonwave.com/">Sandro Paganotti</a> for the first commit to pci4r--the prize is in the mail. This morning, after a bit of git-fiddling, I managed to get the second commit for the project in. It's code for document classification, which is the topic of Chapter 6 of Toby Segaran's <a href="http://www.oreilly.com/catalog/9780596529321/">"Programming Collective Intelligence"</a>. I deviated quite a bit from Toby's original code. In some cases this was simply a side-effect of porting from Python to idiomatic Ruby. In other cases though changes were made for simple aesthetic reasons.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/03/23/pci4r-update/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            One Geek's Aesthetics
        ]]>
      </title>
      <description>
        <![CDATA[
            I'm a fussy guy when it comes to fonts. I like them a certain way because I have strong opinions about which fonts look good and because I spend a lot of time throughout the day looking at them. I like being an avid reader, a software developer and a guy with 20/20 vision. As a result I spend more time than most fiddling with the fonts on my machine to get them just so.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/03/13/one-geeks-aesthetics/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Book Review: Information Dashboard Design
        ]]>
      </title>
      <description>
        <![CDATA[
            Dashboards are one of those phrases that the synergy-loving, tassle-loafer, khaki-loving business-types really like. I was worried at first that this book would be targeted more toward the executive officer crowd and less about helping designers. The first two chapters didn't ease my concerns with lots of discussion around designing for executive goals and summaries. However once we got past the introductory chapters, the book really picks up...
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/03/07/book-review-information-dashboard-design/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Green Fields
        ]]>
      </title>
      <description>
        <![CDATA[
            Ahhh...a fresh new server install. It's like getting the first squeeze of toothpaste or the first scoop of peanut butter. It feels especially good because it's all yours. It brims with potential and has no marks of anyone else's will upon it. Setting a server for yourself is liberating because there are no constraints, no corporate policies to adhere to. Right or wrong, you get to call all the shots and take all the responsibility. You finally get to do what you always dremed of when that sneering, omnipotent system administrator show down all your ideas. Petty bureacracy will not stand in your way!
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/03/04/green-fields/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Fat Proxies and the Danger of Reuse
        ]]>
      </title>
      <description>
        <![CDATA[
            UIs are, essentially, collections of widgets. These widgets act as visual and manipulative proxies between the user and the underlying conceptual model. If we think of the ultimate UI as being one which minimizes the mental distance between what the user wants to do and what they have to do to accomplish it, perhaps the ideal interface would be like the fictional jet-fighter, <a href="http://imdb.com/title/tt0083943/">Firefox</a>. What could possibly be more direct than thinking, fire that missile, and seeing that missile burst forth from under the wing? Unfortunately, since most of us work on slightly less fantastic technologies than those portrayed in the movie, we have to figure how to work best within our milieu. This is the real challenge of what we do. How can we take the crude medium of computer software and diminish the distance between thinking and doing?
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/02/19/fat-proxies-and-the-danger-of-reuse/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Shopping for Men
        ]]>
      </title>
      <description>
        <![CDATA[
            <img src="/images/2008/02/photo-2.jpg" class="left">
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/02/11/shopping-for-men/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Washington Caucuses
        ]]>
      </title>
      <description>
        <![CDATA[
            This past week has seen Washington State abuzz with the excitement over Saturday's Caucuses. For the Democrats especially, this is an exciting time since the two candidates are running neck and neck and in the Evergreen State the Caucus is for all the marbles. So Saturday we headed over the local church for our precinct Caucus which was an absolute madhouse. There was a record turnout for the Caucuses and my personal experience certainly validated that.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/02/10/washington-caucuses/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            A Survey of Super Tuesday Infographics
        ]]>
      </title>
      <description>
        <![CDATA[
            On Super Tuesday, I forwent attending the usual Seattle Ruby Brigade meeting and stayed at home glued to the radio and TV keeping up on the primary and caucus results across the nation. I love the Public Radio/TV talking heads, but I was really lacking the overall picture. So I warmed up the Internet tubes and started searching for some helpful at-a-glance snapshot of the state of Super Tuesday.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/02/06/a-survey-of-super-tuesday-infographics/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            High Resolution
        ]]>
      </title>
      <description>
        <![CDATA[
            <img src="/images/2008/02/img-01721.jpg" class="left">
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/02/02/high-resolution/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Geek Manners
        ]]>
      </title>
      <description>
        <![CDATA[
            A couple of days ago I was fly-on-the-wall for what can only be described as a great example of Geek Manners. One definition of a "geek" is one whose intense interest in a specific topic is offset by a lack of standard social skills. That doesn't mean that all geeks are completely oblivious to social customs, just that they invent their own at times. Below is a transcript (from memory) of the conversation I heard.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/02/01/geek-manners/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Poor Man's .mac
        ]]>
      </title>
      <description>
        <![CDATA[
            The discontent with Apple's .mac service seems to be <a href="http://www.43folders.com/2008/01/18/mac-future-sleeping-giant%20.Mac:%20Future%20of%20a%20sleeping%20giant?%20%7C%2043%20Folders">growing</a> and <a href="http://www.43folders.com/2006/09/28/dot-mac-lameness%20LifeClever:%20Dot%20Mac%20needs%20more%20than%20a%20paint%20job%20%7C%2043%20Folders">growing</a>. I've looked at .mac a couple of times but couldn't really find a good reason to get on board. Oh sure it has some nice features like syncing contacts, but honestly most of the features .mac offers I don't or can get in other ways. In short it's hard to imagine ponying up $99 for this service when it can be beaten with other tools.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2008/01/21/poor-mans-mac/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The Java Conundrum
        ]]>
      </title>
      <description>
        <![CDATA[
            <a href="http://steve-yegge.blogspot.com/2007/12/codes-worst-enemy.html%20Stevey's%20Blog%20Rants:%20Code's%20Worst%20Enemy">Steve Yegge's latest blog post</a> was one that really struck a chord with me personally. I think he hit most of the nail right on the head in describing a common frustration with the Java language. It seems like every attempt to refine the language ends up as some controversial, inelegant hack that often reduces the readability of the code. The same day I read that post I came across <a href="http://www.javac.info/bloch-closures-controversy.ppt%20Josh's%20PowerPoint%20Presentation">Josh Bloch's presentation on Java closures</a>. This was my first introduction to closures in Java-land and my first reaction was one of horror. This is supposed to enhance the expressiveness of the language? Sheesh, not as far as I can tell&hellip;
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/12/30/the-java-conundrum/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Yet More RSpec Fun With TextMate!
        ]]>
      </title>
      <description>
        <![CDATA[
            Why is it that I just can&rsquo;t leave well enough alone? Here, after several weeks for forehead-impact conditioning, I <em>finally</em> get a working setup with Ruby on Leopard with RSpec and TextMate. Life is good, I have my pretty spec runner window back, I&rsquo;m a BDD&rsquo;ing fool. But oh no, I have to keep fiddling with stuff.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/12/16/yet-more-rspec-fun-with-textmate/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Putting Leopard Back Together
        ]]>
      </title>
      <description>
        <![CDATA[
            Ever since I upgraded to Leopard my wonderful RSpec TextMate bundle simply stopped working. This may not have been a result of the Leopard upgrade per se, but things went seriously south about the same time. Between the day after Leopard was released and now I&rsquo;ve been tearing my hair out trying to figure just what went wrong. Finally, last night, I capped off several weeks of frustrating exploration by getting the damn bundle working again.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/12/15/putting-leopard-back-together/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Close the Laptop, Dude
        ]]>
      </title>
      <description>
        <![CDATA[
            I've got a million projects. My GTD list is a mile long with home and personal geek projects. But some weekends you need to just put all that aside and give yourself a play-day. I spent my Sunday bundled up watching the Seahawks wrap up their fourth consecutive NFC West title. Not a bad way to spend a day.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/12/10/close-the-laptop/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Ruby and Leopard
        ]]>
      </title>
      <description>
        <![CDATA[
            I've spent the bulk of this week trying to dig myself out of Ruby/Leopard hell. I'm surprised that things were as borked as they were. So much so, that I'm inclined to believe that there was something special happening on my machine. I got my shiny new Leopard install the day after it came out. I did an upgrade (not a clean install) with no hiccups and was happy with all of my <a href="http://www.apple.com/macosx/features/300.html%20Apple%20-%20Mac%20OS%20X%20Leopard%20-%20Features%20-%20300+%20New%20Features">shiny happy new Leopard features</a>. I knew that first-class Ruby support was coming so I figured I would abandon my MacPorts install and go with what Mr. Jobs deigned to give me.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/12/06/ruby-and-leopard/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Ruby Port of "Programming Collective Intelligence"
        ]]>
      </title>
      <description>
        <![CDATA[
            Thanks to a quick comment from Toby Seagaran, the author of <a href="http://www.oreilly.com/catalog/9780596529321/%20O'Reilly%20Media%20%7C%20Programming%20Collective%20Intelligence">"Programming Collective Intelligence"</a>, my motivation finally exceeded my laziness in getting the porting code available in a public place. So I&rsquo;m proud to announce that you can take a look at the ongoing porting effort at <a href="http://github.com/alexvollmer/pci4r">my Ruby port of Programming Collective Intelligence</a>. I'm in the midst of Chapter 4 right now, so I still have a long way to go.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/12/01/ruby-port-of-programming-collective-intelligence/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Many Spinning Plates
        ]]>
      </title>
      <description>
        <![CDATA[
            Like many folks in this age of immediacy and information overload, I've been a big fan of multi-tasking. We multi-taskers believe that by multi-tasking we are cutting out any "down-time" and making nearly every previously-idle second a productive one. However, lately I've come to realize that the amount time and effort spent on switching my brain from context to context is incurring an overhead that exceeds any gains I might get in multi-tasking.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/12/01/many-spinning-plates/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Happy Mac Day To Me, Happy Mac Day To Me
        ]]>
      </title>
      <description>
        <![CDATA[
            This weekend has been one of the best birthday weekends I've had in a while. First, I got to see my Oregon Ducks beat the USC Trojans to put themselves right in the hunt for the BCS. Second, I scored a couple of copies Leopard which I've installed on my laptop. And lastly, I joined the ranks of happy iPhone owners.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/10/29/happy-mac-day-to-me-happy-mac-day-to-me/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            How To Make URLs
        ]]>
      </title>
      <description>
        <![CDATA[
            One of the things that makes a web application &ldquo;look&rdquo; RESTful is the type of URLs it presents. Like many things, whether or not these URLs really meet a particular criteria is a matter of degrees. But anyone who has some basic understanding of a resource-oriented view versus a functional view can tell the extremes apart (e.g. <code>/system?sport=football&amp;amp;team=seahawks&amp;amp;year=2006</code> vs. <code>/football/seattle_seahawks/2006</code>).
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/10/26/how-to-make-urls/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Ten Things I Think I Think
        ]]>
      </title>
      <description>
        <![CDATA[
            In the spirit of Peter King's <a href="http://sportsillustrated.cnn.com/writers/peter_king/archive/index.html%20SI.com">Monday Morning Quarterback</a>, here are ten things that I think I think:
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/10/17/ten-things-i-think-i-think/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            The Ache of Swing Programming
        ]]>
      </title>
      <description>
        <![CDATA[
            As I type this post, I have to fight every urge to grab my hands in agony and cry out like a hurt child. This hand-ache is not unfamiliar. I realize that my hands have <em>always</em> felt like this anytime I've had to do some <a href="http://java.sun.com/products/jfc/tsc/index.html%20Java%20SE%20Desktop%20Articles">Swing</a> programming.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/09/07/the-ache-of-swing-programming/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Pro-Social Code
        ]]>
      </title>
      <description>
        <![CDATA[
            There is a growing trend of geeks getting hip to the principles of usability and user experience design. The idea is that when developers start taking a more user-centric approach to their development, their design of their applications will be influenced more by the user's needs and less by the internal mechanisms or frameworks upon which it is built. As a kind of agile, post-modern, less-is-more kinda guy I think this is a wonderful approach.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/07/19/pro-social-code/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Book Review: Information Architecture for the World Wide Web
        ]]>
      </title>
      <description>
        <![CDATA[
            <em>Peter Morville &amp; Louis Rosenfeld</em>
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/07/08/book-review-information-architecture-for-the-world-wide-web/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Daughters in Computing
        ]]>
      </title>
      <description>
        <![CDATA[
            I'm a big podcast fan. There aren't many I listen to, but the few I enjoy accompany me and my dog on a near-daily basis. One of my favorites is Geoffrey Grossenbach's excellent <a href="http://podcast.rubyonrails.org/">Ruby On Rails Podcast</a>. In particular the last <a href="http://podcast.rubyonrails.org/programs/1/episodes/roundtable-women-in-open-source">two</a> <a href="http://podcast.rubyonrails.org/programs/1/episodes/roundtable-women-in-development-ii">episodes</a>, about women in computing, really got me thinking about education and technology. If you haven't had a chance to check them out, they are worth listening to.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/07/04/daughters-in-computing/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Why Can't Web Apps Be REST-ful?
        ]]>
      </title>
      <description>
        <![CDATA[
            In case the recent posts haven&rsquo;t made it obvious, I&rsquo;ve been on a bit of a tear about REST lately. In large part this is due to <a href="http://www.oreilly.com/catalog/9780596529260/">Leonard Richardson's and Sam Ruby's "RESTful Web Services"</a> book that I picked up at RailsConf. One of the thoughts that has been bouncing around in my head is how web service-oriented the book was and, besides a chapter about Ajax, said very little about how REST applied to user-facing <em>web applications</em>.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/06/27/why-cant-web-apps-be-rest-ful/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Book Review: Agile Retrospectives
        ]]>
      </title>
      <description>
        <![CDATA[
            <em>Esther Derby and Diana Larsen</em>
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/06/23/book-review-agile-retrospectives/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Book Review: Don't Make Me Think
        ]]>
      </title>
      <description>
        <![CDATA[
            <em>Steve Krug</em>
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/06/23/book-review-dont-make-me-think/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Book Review: RESTful Web Services
        ]]>
      </title>
      <description>
        <![CDATA[
            <em>Leonard Richardson &amp; Sam Ruby</em>
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/06/23/book-review-restful-web-services/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Why REST Matters
        ]]>
      </title>
      <description>
        <![CDATA[
            I first ran across REST in my reading about a year and a half ago. While it took me some time to "get" what REST was, I quickly became a fan. However I've found that aside from pure aesthetics, I've had a hard time articulating why REST is not only beautiful, but effective. I've spent a little more time thinking about REST and I think I may have a couple of concrete arguments for REST that go beyond a simple appreciation of its beauty.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/06/13/why-rest-matters/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            My first RubyGem!
        ]]>
      </title>
      <description>
        <![CDATA[
            With a little help from Ryan Davis' Hoe and reading the actual documentation of the <code>rubyforge</code> command, I finally got a gem released for my little <a href="http://redhanded.hobix.com/bits/campingAMicroframework.html">Camping</a> app, <a href="http://chikkenbukket.rubyforge.org/">Chikkin In A Bukket</a>. Yaaayyy!
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/06/09/my-first-rubygem/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Getting Leverage
        ]]>
      </title>
      <description>
        <![CDATA[
            Right after getting back from <a href="http://conferences.oreillynet.com/rails/">RailsConf</a> I headed off to a family trip to Southern California. I only just got back this weekend and I feel like I haven't quite had the time to fully digest the conference. As a result I've had a lot of odd thoughts rattling around in my head, most of which have failed to form into anything cogent. Well, except for one..
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/06/01/getting-leverage/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Day Three RailsConf '07 -- Summary
        ]]>
      </title>
      <description>
        <![CDATA[
            The day opened with a disappointing keynote speech from Tim Bray. He was upfront about the fact that Sun wrote a big check to big a sponsor and proceeded to launch, unapologetically, into a forty-five minute advertisement of Sun and just how great their servers and JRuby are.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/05/20/day-three-railsconf-07-summary/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Day Two Rails Conf '07 -- Summary
        ]]>
      </title>
      <description>
        <![CDATA[
            After the keynote speech by David Heinemeier Hansson, I attended several session that felt disparate at the time, but magically coalesced into a meaningful takeaway by day's end. In short the day was about testing, REST and Amazon's suite of Web Services.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/05/19/day-two-rails-conf-07-summary/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Day Two RailsConf '07 -- DHH's Keynote Address
        ]]>
      </title>
      <description>
        <![CDATA[
            This is my first RailsConf so I can only say this given second-hand information. But it seems that I've arrive just as the interest and popularity in the framework has hit the bend in the hockey-stick. The enthusiasm at the morning keynote address by David Heinemeir Hanssson was equals parts technology preview, religious revival and idol worship.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/05/18/day-two-railsconf-07-dhhs-keynote-address/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Day One, Afternoon RailsConf 2007 -- Patterns to DRY Up Your Views
        ]]>
      </title>
      <description>
        <![CDATA[
            Update: 2007-05-19 &mdash; Bruce and Marcel posted a PDF of their talk <a href="http://codefluency.com/assets/2007/5/18/VisForVexing.pdf">here</a>.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/05/18/day-one-afternoon-railsconf-2007-patterns-to-dry-up-your-views/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Day One, Rails Conf 2007 -- Morning Session
        ]]>
      </title>
      <description>
        <![CDATA[
            Update: 2007-05-19 &mdash; Jason posted a PDF of his presentation <a href="http://media.joyent.com/JHoffmanRailsConf-May2007.pdf">here</a>.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/05/17/day-one-rails-conf-2007-morning-session/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Leading Off
        ]]>
      </title>
      <description>
        <![CDATA[
            Hi folks, and welcome to the new location of my blog. I've retired the old <a href="http://blog.feedbagnews.net%20The%20old%20feedbag%20blog">feedbag blog</a> and started this one since the topics I want to write about have grown beyond the scope of working on feedbag. Working on feedbag was a great experience, but I have since started new side-projects and a fantastic new job, thereby putting feedbag on the back-burner.
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2007/05/15/leading-off/
      </link>
    </item>
    <item>
      <title>
        <![CDATA[
            Using Closures To Support Object-Oriented AJAX
        ]]>
      </title>
      <description>
        <![CDATA[
            <em>updated 1/23/2006</em>
        ]]>
      </description>
      <link>
        http://alexvollmer.com/posts/2005/12/14/using-closures-to-support-object-oriented-ajax/
      </link>
    </item>
  </channel>
</rss>
