<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Skepsis</title>
 <link href="http://www.supaspoida.com/atom.xml" rel="self"/>
 <link href="http://www.supaspoida.com/"/>
 <updated>2012-10-17T14:12:49-07:00</updated>
 <id>http://www.supaspoida.com/</id>
 <author>
   <name>Lar Van Der Jagt</name>
   <email>supaspoida@gmail.com</email>
 </author>
 
 
 <entry>
   <title>Join Multiple FLAC Files for Gapless Playback via Command Line on OSX</title>
   <link href="http://www.supaspoida.com/2012/10/11/join-multiple-flac-files-for-gapless-playback-via-command-line-on-osx.html"/>
   <updated>2012-10-11T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2012/10/11/join-multiple-flac-files-for-gapless-playback-via-command-line-on-osx</id>
   <content type="html">
     I am working on post that includes a segment of live music embedded via SoundCloud. The segment consists of 5 songs that transition into each other seamlessly. The source I had was split into separate flac files and I wanted to join them into a single file for gapless playback. I also wanted to do this via the cli because why the hell not?

     &lt;h3&gt;First Attempt&lt;/h3&gt;
&lt;p&gt;A quick Google search led me to a solution that kind of blew my mind:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;  cat *.flac &amp;gt; joined.flac
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This &amp;#8220;works&amp;#8221; in the sense that it joins all flac files in the directory &amp;amp; the end result is gapless.  However, it clobbers metadata from all but the first track. The file played fine to completion in &lt;a href=&quot;http://www.videolan.org/vlc/index.html&quot;&gt;&lt;span class=&quot;caps&quot;&gt;VLC&lt;/span&gt;&lt;/a&gt;, but appeared as 26 minutes instead of the 60+ I was expecting. When the file was uploaded to SoundCloud only those first 26 minutes were playable.&lt;/p&gt;
&lt;p&gt;This command also works with mp3s, but didn&amp;#8217;t result in a gapless file in my case.&lt;/p&gt;
&lt;h3&gt;Second Attempt&lt;/h3&gt;
&lt;p&gt;Time to dig deeper. The final solution has a few dependencies that you can install via &lt;a href=&quot;http://mxcl.github.com/homebrew/&quot;&gt;Homebrew&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;  brew install flac
  brew install shntool
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;shntool&lt;/code&gt; depends on &lt;code&gt;flac&lt;/code&gt; to work with &lt;span class=&quot;caps&quot;&gt;FLAC&lt;/span&gt; files. It comes with a &lt;code&gt;join&lt;/code&gt; command that does exactly what we want:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;  shntool join -n -o flac *.flac
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The &lt;code&gt;-n&lt;/code&gt; flag ensures no padding is added between tracks. The &lt;code&gt;-o&lt;/code&gt; flag specifies what format we are working with. This gives us a new file called &lt;code&gt;joined.flac&lt;/code&gt; with recalculated metadata. When played in &lt;span class=&quot;caps&quot;&gt;VLC&lt;/span&gt; we see the correct running length. When uploaded to SoundCloud we can now play the entire file, complete with smooth transitions between tracks.&lt;/p&gt;
&lt;p&gt;With that I declare this yak successfully shaved.&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>Rendering a Collection of Heterogeneous Objects with View Resolvers</title>
   <link href="http://www.supaspoida.com/2012/03/02/rendering-collections-of-heterogeneous-objects-with-view-resolvers.html"/>
   <updated>2012-03-02T00:00:00-08:00</updated>
   <id>http://www.supaspoida.com/2012/03/02/rendering-collections-of-heterogeneous-objects-with-view-resolvers</id>
   <content type="html">
     About a month ago &quot;Obie Fernandez showed us&quot;:http://blog.obiefernandez.com/content/2012/01/rendering-collections-of-heterogeneous-objects-in-rails-32.html how to do this using the new Object#to_partial_path API in Rails 3.2. This feature has been a long time coming and represents a significant improvement over the hacks I'd been using for this sort of thing.

There was one thing that bugged me about his post however. In order to reuse the same templates from within a namespace Obie monkey patched a private ActionView method. In my opinion this is almost always a _Bad Idea_.

Fortunately Rails 3 exposes a public API which allows you to accomplish the same thing via View Resolvers. This post will show you how.

     &lt;h3&gt;The Problem&lt;/h3&gt;
&lt;p&gt;If your view is rendered by a namespaced controller the namespace will be prefixed to all template lookups.&lt;/p&gt;
&lt;p&gt;Say we are exposing a list of items posted to our app in an admin view. You might have a controller such as this:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Admin&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;FeedController&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;ApplicationController&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;expose&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Item&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And you are rendering a collection in &lt;code&gt;app/views/admin/feed/index&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;o&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ul&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;render&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;items&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The default lookup would search for an &lt;code&gt;item&lt;/code&gt; partial within &lt;code&gt;app/views/admin/items&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;We want it to look in &lt;code&gt;app/views/items&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Introducing the View Resolver&lt;/h3&gt;
&lt;p&gt;To accomplish this without monkey patching add an &lt;code&gt;items_resolver.rb&lt;/code&gt; file somewhere that Rails can autoload it. It should look like this:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;ItemsResolver&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;ActionView&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;FileSystemResolver&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;initialize&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;app/views&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

  &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;find_templates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;prefix&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;partial&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;details&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;items&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;partial&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;details&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The key thing to note is the second argument to &lt;code&gt;super&lt;/code&gt;. We ignore the prefix and specify our own. This is the bit that lets us avoid monkey patching.&lt;/p&gt;
&lt;h3&gt;Using the View Resolver&lt;/h3&gt;
&lt;p&gt;One of the downsides of monkey patching is that changes will affect your entire app. With a view resolver we can be explicit about when to modify our lookup paths.&lt;/p&gt;
&lt;p&gt;Modify the admin feed controller to append your custom view resolver like so:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;Admin&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;FeedController&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;ApplicationController&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;append_view_path&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;ItemsResolver&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;expose&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Item&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;all&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Rails will now search all the default paths and fall back on our new view resolver if nothing is found. This also means that should you want to modify how your items are rendered in the admin view all it takes is creating a new &lt;code&gt;item&lt;/code&gt; partial in &lt;code&gt;app/views/admin/items&lt;/code&gt;. Pretty slick if you ask me.&lt;/p&gt;
&lt;h3&gt;A Soap Box Moment&lt;/h3&gt;
&lt;p&gt;I must admit I had a bit of an ulterior motive for writing this post. Rails has been taking a lot of hits recently for a variety of reasons. I have my own thoughts about these debates but will need more time to distill my opinions and present them in a constructive fashion.&lt;/p&gt;
&lt;p&gt;I did want to chime in on one topic however. There has been some discussion about the value of the Rails/Merb &amp;#8220;merge&amp;#8221; and whether or not it ended up being a net win. I feel like the problem Obie&amp;#8217;s post addressed is a clear example of where Rails&amp;#8217; conventions can sometimes get in the way. I wrote this post as an attempt to illustrate how some of the &lt;em&gt;philosophy&lt;/em&gt; taken from Merb can lead to better solutions.&lt;/p&gt;
&lt;p&gt;Many of the comments I&amp;#8217;ve read comparing Rails 3 to Rails 2 seem to be written through &lt;a href=&quot;http://en.wiktionary.org/wiki/rose-colored_glasses&quot;&gt;rose-colored glasses&lt;/a&gt;. It seems to me like people are not remembering what life was really like in Rails 2 land. There also seems to be a rather myopic view of the long term benefits the entire community reaps due to the architectural improvements in Rails 3.&lt;/p&gt;
&lt;p&gt;The sort of monkey patching Obie proposed was rampant before Rails 3. And not just in application code, but in library code as well. This made every upgrade a minefield of potentially infuriating issues. By defining public interfaces to extend the framework everybody benefits from easier upgrades. This is a &lt;em&gt;huge&lt;/em&gt; deal in my opinion.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s not to say things are perfect now. There is always room for improvement. I think we can do a better job highlighting new public extension API&amp;#8217;s. Certain areas such as ActiveModel have gotten a lot more love than others. This post is my first attempt to shine some light on one of my favorite new API&amp;#8217;s. Granted it&amp;#8217;s a pretty trivial example. I plan to dig deeper in my next post.&lt;/p&gt;
&lt;p&gt;Until then, I&amp;#8217;d love for this post to start some discussion about what &lt;em&gt;your&lt;/em&gt; favorite Rails 3 features are and why.&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>Showing the Count of Commits in git log</title>
   <link href="http://www.supaspoida.com/2011/12/15/show-count-of-commit-in-git-log.html"/>
   <updated>2011-12-15T00:00:00-08:00</updated>
   <id>http://www.supaspoida.com/2011/12/15/show-count-of-commit-in-git-log</id>
   <content type="html">
     Why and how to level up your rebase with numbered commits. Like this:
&lt;div&gt;
!/img/hacks/git-ln.png!
&lt;/div&gt;

     &lt;h3&gt;Why?&lt;/h3&gt;
&lt;p&gt;I rebase. &lt;em&gt;A lot&lt;/em&gt;. While prepping for a presentation I rebased 40-some atomic commits down into 6 logical commits. A typical rebase workflow looks something like this:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;git log
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Count back a bunch of commits. Looks like the one I want is 5 commits back.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;git rebase -i head~5
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Reorder some commits, squash a few, edit some messages.&lt;/p&gt;
&lt;p&gt;Repeat.&lt;/p&gt;
&lt;p&gt;With 40+ commits in play during a rebase, counting backwards becomes a tedious proposition. I wanted a quick way to get that number.&lt;/p&gt;
&lt;h3&gt;The Code&lt;/h3&gt;
&lt;p&gt;Add the following git alias:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# ~/.gitconfig&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;alias&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;
  &lt;span class=&quot;nv&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; log --pretty&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;format:&lt;span class=&quot;s1&quot;&gt;&amp;#39;%Cblue%h %Cred* %C(yellow)%s&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And the following bash alias:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# ~/.bashrc.local&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;alias &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;gln&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;git ln | perl -ple &amp;#39;s/\*/sprintf(\&amp;quot;%2s\&amp;quot;, \$n++)/e&amp;#39; | less&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Then just &lt;code&gt;source ~/.bashrc.local&lt;/code&gt; and run &lt;code&gt;gln&lt;/code&gt; in any git repository. Enjoy!&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>A Short Story About a Tweet, a Video, an Idea and it's Execution</title>
   <link href="http://www.supaspoida.com/2011/10/26/a-short-story-about-a-tweet-a-video-an-idea-and-its-execution.html"/>
   <updated>2011-10-26T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2011/10/26/a-short-story-about-a-tweet-a-video-an-idea-and-its-execution</id>
   <content type="html">
     I've just had a surreal 10 minute interaction that I am compelled to share. It involves code editors, touch screen devices, global communication networks and a small group of people hanging out in a basement apartment.

     &lt;h3&gt;The Story&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://twolivesleft.com/Codify/&quot;&gt;Codify&lt;/a&gt; pops into the internet. Nick Quaranto &lt;a href=&quot;http://twitter.com/#!/qrush/status/129341274544291841&quot;&gt;tweets it&lt;/a&gt;. Hacker News &lt;a href=&quot;http://news.ycombinator.com/item?id=3160712&quot;&gt;discusses it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://twitter.com/rbxbx&quot;&gt;Robert Pitts&lt;/a&gt;&lt;/b&gt;: Hey, have you seen this Codify thing?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://twitter.com/supaspoida&quot;&gt;Lar Van Der Jagt&lt;/a&gt;&lt;/b&gt;: No, what is it?&lt;/p&gt;
&lt;p&gt;Robert hands Lar his iPad. A video demo of Codify, an iOS game &lt;span class=&quot;caps&quot;&gt;IDE&lt;/span&gt; starts. At 0:35 seconds the presenter passes parameters to a &lt;b&gt;color&lt;/b&gt; method by taping and choosing a color from a color picker.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lar&lt;/b&gt;: Oh man! I wish I could do that with vim.&lt;/p&gt;
&lt;p&gt;A short discussion about possible implementation begins. &lt;a href=&quot;http://twitter.com/tpope&quot;&gt;Tim Pope&lt;/a&gt; enters.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lar&lt;/b&gt;: Hey Tim, would it be possible to trigger an &lt;span class=&quot;caps&quot;&gt;OSX&lt;/span&gt; color picker from vim that would insert the hex value of the color you choose?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Tim&lt;/b&gt;: Sure, if you can launch a color picker from the command line &amp;amp; have it output to &lt;span class=&quot;caps&quot;&gt;STDOUT&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Lar Googles&lt;/b&gt;: command line color picker&lt;/p&gt;
&lt;p&gt;The sixth result on the list is for a project named &lt;b&gt;&lt;a href=&quot;https://github.com/jnordberg/color-pick&quot;&gt;color-pick&lt;/a&gt;&lt;/b&gt; by &lt;a href=&quot;https://github.com/jnordberg&quot;&gt;Johan Nordberg&lt;/a&gt;. It&amp;#8217;s a command line wrapper for OSX&amp;#8217;s built in color picker.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;  git clone https://github.com/jnordberg/color-pick.git
  &lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;color-pick
  make
  make install
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Lar&lt;/b&gt;: Okay, got it. Now how do I trigger this from vim?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Tim&lt;/b&gt;: Easy.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;vim&quot;&gt;  # &lt;span class=&quot;p&quot;&gt;~&lt;/span&gt;/.vimrc.local
  &lt;span class=&quot;nb&quot;&gt;inoremap&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;C&lt;span class=&quot;p&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;X&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;c&lt;/span&gt; #&lt;span class=&quot;p&quot;&gt;&amp;lt;&lt;/span&gt;C&lt;span class=&quot;p&quot;&gt;-&lt;/span&gt;R&lt;span class=&quot;p&quot;&gt;&amp;gt;=&lt;/span&gt;system&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&amp;#39;colorpick&amp;#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&amp;lt;&lt;/span&gt;CR&lt;span class=&quot;p&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Lar&lt;/b&gt;: control+x c. It works!&lt;/p&gt;
&lt;h3&gt;What Just Happened Here?&lt;/h3&gt;
&lt;p&gt;Codify was built by three guys in Australia. It may represent an early glimpse&lt;br /&gt;
of how the next generation will learn to create software. Steve Jobs &amp;amp; Apple&lt;br /&gt;
gave them a platform to build on and share their vision 3 years ago.&lt;/p&gt;
&lt;p&gt;A network invented 21 years ago connected those ideas to three other guys on&lt;br /&gt;
the opposite side of the world. Those guys use and love a text editor that&lt;br /&gt;
began it&amp;#8217;s life 35 years ago. They were inspired to extend the capabilities of&lt;br /&gt;
that editor by this video.&lt;/p&gt;
&lt;p&gt;A search engine built 15 years ago led them to another guy halfway across the&lt;br /&gt;
world who had already done most of the hard work. His work is shared for free&lt;br /&gt;
on a 3 year old site named GitHub that has triggered an explosion in global&lt;br /&gt;
collaboration.&lt;/p&gt;
&lt;p&gt;I find the sequence of events that led us here fascinating. The result may not&lt;br /&gt;
be anything world changing. I may never even use it after tonight. Tracing the&lt;br /&gt;
path of ideas gives me a zoomed out sense of perspective. We have worlds of&lt;br /&gt;
possibilities at our fingertips that previous generations could only imagine.&lt;/p&gt;
&lt;p&gt;I can&amp;#8217;t wait to see what happens next.&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>How I Fast Test with Rails</title>
   <link href="http://www.supaspoida.com/2011/10/16/how-i-fast-test-rails.html"/>
   <updated>2011-10-16T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2011/10/16/how-i-fast-test-rails</id>
   <content type="html">
     Corey Haines has been busy bringing the &lt;a href=&quot;http://confreaks.net/videos/641-gogaruco2011-fast-rails-tests&quot;&gt;gospel of fast tests&lt;/a&gt; to the Rails world. A few others have since taken up the call and written up their &lt;a href=&quot;http://blog.moretea.nl/corey-haines-fast-rails-tests&quot;&gt;own&lt;/a&gt; &lt;a href=&quot;http://ariejan.net/2011/10/13/fast-specs-run-your-specs-in-less-than-1-second&quot;&gt;approach&lt;/a&gt;. This is all wonderful but I didn't quite feel like I could get behind the implementations I've seen. So I decided to work out an approach that would fit with my workflow. This article is the result.

     &lt;h3&gt;What I Want&lt;/h3&gt;
&lt;p&gt;All the approaches I&amp;#8217;ve seen required some change in how your specs &amp;amp; code are organized. This would require subtle changes to my workflow. While not insurmountable, I figured there had to be a cleaner way.&lt;/p&gt;
&lt;p&gt;My goals going in were as follows:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Navigate my code/specs with existing rails-vim shortcuts&lt;/li&gt;
	&lt;li&gt;Work with code in app/models as well as lib&lt;/li&gt;
	&lt;li&gt;No extra command line requirements&lt;/li&gt;
	&lt;li&gt;Work with my existing guard config&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;What I Did&lt;/h3&gt;
&lt;p&gt;Move common RSpec config to &lt;b&gt;spec/config.rb&lt;/b&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;c1&quot;&gt;# spec/config.rb&lt;/span&gt;
&lt;span class=&quot;no&quot;&gt;RSpec&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;configure&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;|&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mock_with&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:rspec&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;treat_symbols_as_metadata_keys_with_true_values&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Create &lt;b&gt;spec/fast_spec_helper.rb&lt;/b&gt;. It adds &lt;b&gt;app/models&lt;/b&gt; to the load path &amp;amp; requires common RSpec config. The &lt;b&gt;rspec&lt;/b&gt; command already includes the &lt;b&gt;lib&lt;/b&gt; directory so we don&amp;#8217;t need to worry about that.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;c1&quot;&gt;# spec/fast_spec_helper.rb&lt;/span&gt;
&lt;span class=&quot;vg&quot;&gt;$:&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;push&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;File&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;expand_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;../../app/models&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;bp&quot;&gt;__FILE__&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;config&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Specs go in &lt;b&gt;spec/models&lt;/b&gt; like normal &amp;amp; include the &lt;b&gt;fast_spec_helper&lt;/b&gt; as well as the model file.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;c1&quot;&gt;# spec/models/hello_spec.rb&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;fast_spec_helper&amp;#39;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;hello&amp;#39;&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;describe&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Hello&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;its&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:world&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;should&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;hello world&amp;#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Implementation goes in &lt;b&gt;app/models&lt;/b&gt; as you&amp;#8217;d expect.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;c1&quot;&gt;# app/models/hello.rb&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Hello&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;world&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&amp;quot;hello world&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And that&amp;#8217;s it! You can now run this fast spec via &lt;b&gt;rspec spec/models/hello_spec.rb&lt;/b&gt; same as you ever would. No need to change your Guards and you can use rails-vim&amp;#8217;s &lt;b&gt;:A/:Runit&lt;/b&gt; to jump around your fast specs &amp;amp; their implementation.&lt;/p&gt;
&lt;h3&gt;Bonus Points: Split the Fast &amp;amp; Slow&lt;/h3&gt;
&lt;p&gt;What if you want to run all of your fast, isolated tests before committing to running the slow, framework dependant tests? Easy, just leverage RSpec 2&amp;#8217;s meta-data by tagging your examples with &lt;b&gt;fast: true&lt;/b&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;c1&quot;&gt;# spec/models/hello_spec.rb&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;fast_spec_helper&amp;#39;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;hello&amp;#39;&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;describe&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Hello&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fast&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kp&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;its&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:world&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;should&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&amp;#39;hello world&amp;#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;~/&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;rspec spec -t fast
~/&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;rspec spec -t ~fast
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
  </content>
 </entry>
 
 <entry>
   <title>The iPad is Cool but I Really Want a MacPad</title>
   <link href="http://www.supaspoida.com/2010/01/28/the-ipad-is-cool-but-i-really-want-a-macpad.html"/>
   <updated>2010-01-28T00:00:00-08:00</updated>
   <id>http://www.supaspoida.com/2010/01/28/the-ipad-is-cool-but-i-really-want-a-macpad</id>
   <content type="html">
     Yesterday Apple revealed their assault on the tablet market &amp; like the rest of the internet I'm going to weigh in with my thoughts. A product launch with this much hype is bound to create a lot of expectations &amp; some people are going to be disappointed. I can't help but consider what I want from an Apple tablet; even if it means paying twice as much. Despite that I think Apple did a great job of matching the features to the asking price on this one.
     &lt;h3&gt;iPad vs. MacPad&lt;/h3&gt;
&lt;p&gt;The most common complaint about the iPad seems to be that it&amp;#8217;s closer to an iPhone than a MacBook. Whether from a philosophical viewpoint on open vs. closed platforms or just feature envy this definitely appears to be the clear dividing line in opinions. I can relate to both sides.&lt;/p&gt;
&lt;h3&gt;iPad Killer Features&lt;/h3&gt;
&lt;p&gt;I believe the iPad offers enough use cases to justify the price. Here are some of my favorites:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;em&gt;Application specific remote controls:&lt;/em&gt; There are already several of these for the iPhone &amp;amp; the potential applications only improve with more screen real estate.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Midi controller:&lt;/em&gt; I believe it should already be possible to use the iPad to control hardware &amp;amp; software Midi devices. This opens up lots of opportunity for creative new interfaces to control these devices.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Perfect travel device:&lt;/em&gt; The iPad already does almost everything that I might want while traveling. Assuming it will have a decent &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; reader that is.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Internet in comfort:&lt;/em&gt; Laptops are too unwieldily for hammocks or cars &amp;amp; iPhones are too small for extended use. Same thing applies for video &amp;amp; ebooks. The iPad really is a missing form factor just waiting to be filled.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;MacBook trackpad:&lt;/em&gt; This is another app which already exists for iPhone and would be greatly improved in a larger form factor.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Better maps experience:&lt;/em&gt; Yet another example of something the iPhone already nails that would be improved on a larger screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;MacPad Killer Features&lt;/h3&gt;
&lt;p&gt;As great as all that is Apple could easily get twice as much cash out of me if the device supported the following:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;em&gt;Secondary Display:&lt;/em&gt; I want to hook it up to my laptop to use it as a secondary display. Specifically I want to use it in mirrored mode with a stylus for Photoshop.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Wireless Hotspot:&lt;/em&gt; The 30$ price point for an unlimited 3G data connection is the sweet spot for me, but only if I can use it as a hotspot for my laptop as well.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Console game controller/secondary display:&lt;/em&gt; For role playing games it displays your inventory, dialog options &amp;amp; other menus. For a first person shooter you could prop it up in front of you &amp;amp; have it show your heads up display. For racing games you could control the vehicle with the accelerometer.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Full development environment:&lt;/em&gt; I want the command line, Ruby, ssh &amp;amp; all the works anywhere I go.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;No AppStore lock in:&lt;/em&gt; This should be obvious enough.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Multitasking:&lt;/em&gt; This is one of the biggest reasons I don&amp;#8217;t own an iPhone and probably the dealbreaker for the iPad as well. Palm really nailed the mobile touch multitasking experience &amp;amp; I would love to see something similar to their card system in an iPad.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Video chat:&lt;/em&gt; This seems like a big missed opportunity. Stick an iSight camera on the top of this thing and you&amp;#8217;ve got a great video chat platform.&lt;/li&gt;
	&lt;li&gt;&lt;em&gt;Stream content from MacBook:&lt;/em&gt; This should be easy enough to enable on the device as is but I haven&amp;#8217;t seen anything indicating it will be possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;At 499$ I&amp;#8217;m Definitely Interested&lt;/h3&gt;
&lt;p&gt;I won&amp;#8217;t be rushing out to get an iPad on launch day, but I&amp;#8217;ve got to admit I&amp;#8217;d interested. The iPad is a much more appealing device to me personally than the iPhone. Without being forced into a wireless contract it ends up being significantly cheaper as well. Depending on how things shape up after launch I expect I will bite the bullet on the iPad soon enough.&lt;/p&gt;
&lt;p&gt;Do you think the iPad offers good value for the price? Were you underwhelmed by the launch? What would your dream tablet do that the iPad does not?&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>Write 750 Words Every Day</title>
   <link href="http://www.supaspoida.com/2010/01/25/write-750-words-every-day.html"/>
   <updated>2010-01-25T00:00:00-08:00</updated>
   <id>http://www.supaspoida.com/2010/01/25/write-750-words-every-day</id>
   <content type="html">
     One of my goals with this blog was to post regularly. A quick look back at the recent posts and it is clear that I failed to deliver on that. In an effort to increase posting consistency I've set a new goal of writing __something__ every day. I've been using a web application called &quot;750 Words&quot;:http://www.750words.com to help me with this.
     &lt;h3&gt;What It&amp;#8217;s All About&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;http://www.750words.com&quot;&gt;About&lt;/a&gt; page on 750 words gives you the gist of the idea:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Morning pages are three pages of writing done every day, typically encouraged to be in &amp;#8220;long hand&amp;#8221;, typically done in the morning, that can be about anything and everything that comes into your head. It&amp;#8217;s about getting it all out of your head, and is not supposed to be edited or censored in any way. The idea is that if you can get in the habit of writing three pages a day, that it will help clear your mind and get the ideas flowing for the rest of the day.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Establishing a Daily Habit&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20100125-rcksfrtfg1r7h8tq3m9k3edkhg.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One of the biggest benefits of the site for me has been in encouraging the daily habit of writing. 750 words does this by keeping track of your streaks and assigning points based on how often you write.&lt;/p&gt;
&lt;p style=&quot;float:right;&quot;&gt;&lt;img src=&quot;http://img.skitch.com/20100125-biiaehe7tb2p9pu8mupmx3gdby.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It will also track your progress in comparison with other users. It ranks everybody based on their points &amp;amp; calculates the average time it took to reach 750 words &amp;amp; how many words per minute that works out to.&lt;/p&gt;
&lt;p&gt;These stats &lt;a href=&quot;http://scobleizer.com/2010/01/23/the-social-behavior-incentive-how-your-app-can-be-as-addictive-as-facebook-twitter-foursquare/&quot;&gt;create incentive to participate&lt;/a&gt;. This is a common approach in both social networks &amp;amp; in video games to encourage participation and for me it definitely works. As you can see I&amp;#8217;ve only missed one day since I&amp;#8217;ve started. Without these statistics I am positive that would not be the case.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20100125-5grmcgj3whyp51em96fxtkyae.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Writing Behind Closed Doors&lt;/h3&gt;
&lt;p&gt;Another key element of &lt;a href=&quot;http://www.750words.com&quot;&gt;750 words&lt;/a&gt; is the fact that your entries are private. I could not churn out three pages of content for this blog in under 20 minutes. Under the public eye I scrutinize every word and a simple blog post like this one ends up taking over an hour.&lt;/p&gt;
&lt;p&gt;The other benefit of keeping the writing private is that you get to write about things you wouldn&amp;#8217;t write about publicly. Just the act of writing some of these things down helps me clear my head. This is the journal aspect of the site.&lt;/p&gt;
&lt;p&gt;For example, I have found that it works really well as a dream log. I don&amp;#8217;t dream every night, but when I do it easily provides enough content for 750 words. This is stuff I wouldn&amp;#8217;t want to share with the world but is still worth writing down.&lt;/p&gt;
&lt;h3&gt;Writing in the Open&lt;/h3&gt;
&lt;p&gt;Coming back to the original reason I started using 750 words, I am hoping that developing a daily writing habit will also help me get into the habit of posting here regularly. One of the ways I&amp;#8217;ve been using 750 words is to brainstorm ideas for this blog in a stream of consciousness format.&lt;/p&gt;
&lt;p&gt;Previously I&amp;#8217;ve used the &lt;a href=&quot;http://www.mindmeister.com/&quot;&gt;mind mapping tool Mindmeister&lt;/a&gt; for this purpose. This works well for quickly capturing a bunch of related points, but I have found that it doesn&amp;#8217;t give me enough context for a full post. I am hoping that 750 words can serve as an intermediary step that will help me get some of those ideas into sentences.&lt;/p&gt;
&lt;p&gt;I guess we will see how well it works over the next few weeks. In the meantime, I highly recommend giving &lt;a href=&quot;http://www.750words.com&quot;&gt;750 words&lt;/a&gt; a shot if you&amp;#8217;re at all interested in developing a writing habit.&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>How I Became a Morning Person in Two Easy Steps</title>
   <link href="http://www.supaspoida.com/2009/10/23/how-i-became-a-morning-person-in-two-easy-steps.html"/>
   <updated>2009-10-23T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/10/23/how-i-became-a-morning-person-in-two-easy-steps</id>
   <content type="html">
     After over a month at &quot;Coco Vivo&quot;:http://www.cocovivo.com I've adapted to island living in some unexpected ways. One of the most significant is a complete 180 in my sleeping patterns. While living in Brooklyn I was a creature of the night. Here, I am out of bed every day at 6:30. And it wasn't even hard.
     &lt;h3&gt;Step One: Move to a Remote Island&lt;/h3&gt;
&lt;p&gt;No pharmaceuticals required, just a destination &amp;amp; a plane ticket.&lt;/p&gt;
&lt;p&gt;We made the trip from Bocas del Toro to Isla Cristobal by boat at night. Waking up the next morning I was greeted by a panoramic view of the sun rising over palm trees with water glistening in the background.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/img/panama/panarama.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;That was all it took to motivate me to get out of bed.&lt;/p&gt;
&lt;h3&gt;Step Two: Go to Sleep When the Bugs Wake Up&lt;/h3&gt;
&lt;p style=&quot;float:right;&quot;&gt;&lt;img src=&quot;/img/panama/blaberous.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A reason to wake up in the morning is only half of the equation. The other half is the willpower to go to sleep early. The bugs made that easy.&lt;/p&gt;
&lt;p&gt;The Hill House had been unoccupied for some time when we arrived. A wide range of roaches, moths, june bugs &amp;amp; other creatures had gladly taken up residence. At night they came out in full force, competing for space in our light.&lt;/p&gt;
&lt;p&gt;It was easier to just go to sleep. They would all be hidden away when I woke up in the morning. Out of sight &amp;amp; out of mind.&lt;/p&gt;
&lt;p&gt;Though I&amp;#8217;ve grown accustomed to the bugs by now (showering with a &lt;a href=&quot;http://en.wikipedia.org/wiki/Blaberus_giganteus&quot;&gt;Blaberous Giganteous&lt;/a&gt; two feet away didn&amp;#8217;t even phase me), I still go to bed between 9 &amp;amp; 10 every night. That makes waking up at 6:30 easy.&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>How to Land an Awesome Gig with Blogging &amp; Twitter</title>
   <link href="http://www.supaspoida.com/2009/09/12/how-to-land-your-dream-job-using-blogging-and-twitter.html"/>
   <updated>2009-09-12T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/09/12/how-to-land-your-dream-job-using-blogging-and-twitter</id>
   <content type="html">
     I am currently three days into an experiment in nomadic bootstrapping with the guys at &lt;a href=&quot;http://www.spreadsong.com&quot; target=&quot;_blank&quot;&gt;Spreadsong&lt;/a&gt;. We spent these three days working &amp; brainstorming in Panama City &amp;amp; are moving on to our next destination today. This post is about how we got here.
     &lt;h3&gt;Put Your Ideas Out There&lt;/h3&gt;
&lt;p&gt;You need to know what you want &amp;amp; be confident in pursuing your goals. A blog gives you a platform to express your ideas &amp;amp; goals where anybody can see them.&lt;/p&gt;
&lt;p&gt;My idea: &lt;a href=&quot;http://www.supaspoida.com/2009/06/30/destination-bootstrapping.html&quot; target=&quot;_blankk&quot;&gt;Destination Bootstrapping in Costa Rica&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Follow Interesting People&lt;/h3&gt;
&lt;p&gt;I started following &lt;a href=&quot;http://www.twitter.com/gilesgoatboy&quot;&gt;Giles Bowkett&lt;/a&gt; after watching an &lt;a href=&quot;http://goruco2008.confreaks.com/02_bowkett.html&quot; target=&quot;_blank&quot;&gt;inspiring talk in which he railed against typical VC patronage&lt;/a&gt;. His content is relevant enough that I will click links with no description.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090912-ggqcuqs4r17qbqftub73rh38en.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This link lead me here: &lt;a href=&quot;http://spreadsong.com/dont_be_a_lonely_planet_entrepreneur_startup_mythology_and_the_death_of_capitalism&quot; target=&quot;_blank&quot;&gt;Don&amp;#8217;t Be a Lonely Planet Entrepreneur-startup mythology and the death of capitalism&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Start a Conversation&lt;/h3&gt;
&lt;p&gt;Blogs can be the ultimate ice breaker. Don&amp;#8217;t be afraid to reach out &amp;amp; connect with people you would like to know. &lt;a href=&quot;http://spreadsong.com/dont_be_a_lonely_planet_entrepreneur_startup_mythology_and_the_death_of_capitalism#comment-14525630&quot; target=&quot;_blank&quot;&gt;Comment on posts that resonate with you&lt;/a&gt;. Be sure to let the author know why they might want to know you as well.&lt;/p&gt;
&lt;h3&gt;Be Prepared to Go the Distance&lt;/h3&gt;
&lt;p&gt;After this simple series of social media connections I spoke with the guys at &lt;a href=&quot;http://www.spreadsong.com&quot; target=&quot;_blank&quot;&gt;Spreadsong&lt;/a&gt; for over three hours on Skype. Just one month later we are in Panama City getting ready to fly to &lt;a href=&quot;http://bit.ly/ZBfkY&quot; target=&quot;_blank&quot;&gt;Bocas del Toro&lt;/a&gt;. On Wednesday we take up residence at &lt;a href=&quot;http://www.cocovivo.com&quot; target=&quot;_blank&quot;&gt;Coco Vivo&lt;/a&gt; for the next two months. From there, who knows?&lt;/p&gt;
&lt;p&gt;And it all started with less than 140 characters.&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>Book Review&#58; The Merb Way from a Rails Developer's Perspective</title>
   <link href="http://www.supaspoida.com/2009/08/18/book-review-the-merb-way.html"/>
   <updated>2009-08-18T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/08/18/book-review-the-merb-way</id>
   <content type="html">
     In December of 2008 the Rails team &amp; Merb team announced that the two frameworks would be merging to form Rails 3. This came as quite a shock to many &amp; reactions were rather polarizing. For Foy Savas the news raised the question of whether or not there would still be a place for his work-in-progress &lt;a href=&quot;http://www.amazon.com/gp/product/0321606388?ie=UTF8&amp;tag=skepsis-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321606388&quot;&gt;The Merb Way&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=skepsis-20&amp;l=as2&amp;o=1&amp;a=0321606388&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;. After several weeks with the book &amp; playing around with my first Merb app I am happy to say that I believe there is.
     &lt;h3&gt;The Rails Way &amp;amp; Mastering an &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;Obie Fernandez&amp;#8217;s book &lt;a href=&quot;http://www.amazon.com/gp/product/0321445619?ie=UTF8&amp;tag=skepsis-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321445619&quot;&gt;The Rails Way&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=skepsis-20&amp;l=as2&amp;o=1&amp;a=0321445619&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt; was instrumental in taking my understanding of the Rails framework to the next level. When I began reading The Rails Way I was already productive with Rails but knew I was missing out on a lot of less publicized features.&lt;/p&gt;
&lt;p&gt;The Rails Way gives you a top down perspective with a focus on how to use the &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; to make the most of the framework. Exploring the actual implementation is left up to you. The Merb Way takes a different approach.&lt;/p&gt;
&lt;h3&gt;The Merb Way: Design &amp;amp; Philosophy&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/0321606388?ie=UTF8&amp;tag=skepsis-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0321606388&quot;&gt;The Merb Way&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=skepsis-20&amp;l=as2&amp;o=1&amp;a=0321606388&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt; is all about design. The best bits may be the sidebars that dig into the various design decisions made in Merb &amp;amp; the reasons behind them. This is stuff that you&amp;#8217;ll never get from &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; documentation.&lt;/p&gt;
&lt;p&gt;The book starts out with a pastie consisting of the full source of the initial Merb implementation. At barely three pages long it really illustrates how Merb distinguishes itself. It was built from the ground up to embody a philosophy of &lt;i&gt;lightweight&lt;/i&gt;. The introduction does a great job putting this &amp;amp; other Merb philosophies such as speed &amp;amp; modularity into words.&lt;/p&gt;
&lt;p&gt;Chapter one goes over the basics of the Merb stack from a high level. It covers the application layouts available &amp;amp; how to generate them. It breaks down the basics of what each component of the stack is responsible for as well as the various configuration bits that glue them all together.&lt;/p&gt;
&lt;p&gt;I did feel that there was one major omission in this first chapter &amp;amp; that is coverage of the installation process. Before reading this book I had made one attempt to explore Merb and never got an application running due to various dependency conflicts. This was well before the 1.0 release &amp;amp; the process was much smoother this time but there was still a period of frustration where I was unable to get an application to boot up successfully. To be fair the clues needed to solve my problems were contained in the book but they were not obvious without some help from google. It would have been nice to have a section dedicated to common problems you might encounter getting up &amp;amp; running.&lt;/p&gt;
&lt;h3&gt;Grokking the Internals&lt;/h3&gt;
&lt;p&gt;The bulk of the content is a mix between in-depth exploration of source code &amp;amp; practical usage of the &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt;. Foy does a great job of explaining this code without letting the discussion get dry.&lt;/p&gt;
&lt;p&gt;The coverage of DataMapper was one of the highlights for me. As someone comfortable with ActiveRecord I always figured that I would just use that in a Merb project. Seeing how things like migrations &amp;amp; query construction/execution are handled in Merb quickly changed that attitude. There is some really clever code (the good kind) in here &amp;amp; I&amp;#8217;m looking forward to drop in compatibility with DataMapper in Rails 3.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.yehudakatz.com/&quot;&gt;Yehuda Katz&lt;/a&gt; has written &lt;a href=&quot;http://yehudakatz.com/2009/06/11/rails-edge-architecture/&quot;&gt;quite a bit&lt;/a&gt; &lt;a href=&quot;http://yehudakatz.com/2009/04/07/better-module-organization/&quot;&gt;about refactoring&lt;/a&gt; &lt;a href=&quot;http://yehudakatz.com/2009/03/20/another-dispatch-abstractcontroller/&quot;&gt;the Rails controller&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://yehudakatz.com/2009/06/18/and-the-pending-tests-they-shall-pass/&quot;&gt;view layers&lt;/a&gt; so I didn&amp;#8217;t find these chapters to be as illuminating as the DataMapper chapter. Parts &amp;amp; Slices are two features I was excited to learn about. It turns out there wasn&amp;#8217;t a whole lot of depth to these chapters, which I think is actually a reflection of the design decisions made on the controller level.&lt;/p&gt;
&lt;p&gt;The chapter on merb-auth is a good way to learn how to add custom functionality to Merb. The plugin is designed to be extensible, following the example set by Merb itself.&lt;/p&gt;
&lt;h3&gt;Who Should Read It?&lt;/h3&gt;
&lt;p&gt;Foy makes several references to three separate types of developers this book is targeted towards.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Application Developers&lt;/li&gt;
	&lt;li&gt;Plugin Authors&lt;/li&gt;
	&lt;li&gt;Framework Students&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You will get the most out of this book if you fall into one of the later two categories. With Rails 3 approaching, I would encourage anybody who works with Rails to assume the role of framework student &amp;amp; give this book a look. There are some very cool things coming in Rails 3 that pull from the Merb design philosophy &amp;amp; I believe that being familiar with these ideas will give you an advantage as Rails 3 makes it&amp;#8217;s way into production apps.&lt;/p&gt;
&lt;p&gt;If you are curious about how a framework is designed this is the perfect book for you. I don&amp;#8217;t believe there is another book out there that covers the design of a Ruby framework to this extent.&lt;/p&gt;
&lt;p&gt;Because the content bounces back and forth between &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; usage &amp;amp; discussion of the internals I wouldn&amp;#8217;t recommend this as a reference book for Merb development. That&amp;#8217;s not to say it isn&amp;#8217;t useful for that purpose however&amp;#8230;&lt;/p&gt;
&lt;h3&gt;The Merb Way in Practice&lt;/h3&gt;
&lt;p&gt;After reading through the book I went back &amp;amp; tried to put my new knowledge into practice. I decided to build a simple contact list backend for &lt;a href=&quot;http://www.ckcunited.org&quot;&gt;the &lt;span class=&quot;caps&quot;&gt;CKC&lt;/span&gt; United&lt;/a&gt;. I&amp;#8217;m definitely not taking full advantage of all Merb has to offer but I wanted to see what it would take to get up to speed &amp;amp; productive working with Merb on a real project.&lt;/p&gt;
&lt;p&gt;Aside from the installation issues mentioned earlier it was mostly smooth sailing. I did find the book to be a valuable reference even if finding the content I was looking for might not have been as straightforward as possible. There were a few spots where I had to resort to google but that is to be expected.&lt;/p&gt;
&lt;h3&gt;Conclusion &amp;amp; A Contest!&lt;/h3&gt;
&lt;p&gt;The Merb Way is definitely worth picking up if you&amp;#8217;re even a little bit interested in framework design. Foy Savas is an excellent writer &amp;amp; presents the material with style.&lt;/p&gt;
&lt;p&gt;I thought it would be fun to have a contest to give away my copy. If you&amp;#8217;re interested in receiving a copy please leave a comment letting us know why you want to learn The Merb Way. It can be serious, funny, practical or creative. I will pick my favorite answer &amp;amp; send the book your way. I&amp;#8217;ll also choose one runner up to receive a 35% discount from &lt;a href=&quot;http://www.informit.com&quot;&gt;InformIT&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is my first review &amp;amp; I plan to do more in the future so any comments on how I did &amp;amp; how I could improve are much appreciated!&lt;/p&gt;
&lt;h3&gt;Other Resources for Merb &amp;amp; Rails 3&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://ghettochip.com/merb_internals&quot;&gt;Merb Internals Handbook&lt;/a&gt; (with huge graphic of Merb stack)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://wiki.merbivore.com/documentation/guides&quot;&gt;The Merbivore Wiki&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://yehudakatz.com/&quot;&gt;Yehuda Katz&amp;#8217;s blog&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://ryandaigle.com/&quot;&gt;Ryan Daigle&amp;#8217;s&lt;/a&gt; (covering Rails 3 changes)&lt;/li&gt;
&lt;/ul&gt;
  </content>
 </entry>
 
 <entry>
   <title>The Pomodoro Technique&#58; Using Rhythm to Increase Productivity</title>
   <link href="http://www.supaspoida.com/2009/08/06/the-pomodoro-technique-using-rhythm-to-be-more-productive.html"/>
   <updated>2009-08-06T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/08/06/the-pomodoro-technique-using-rhythm-to-be-more-productive</id>
   <content type="html">
     Over the last few years I have read about lots of techniques for increasing productivity. Getting Things Done is all the rage &amp; there are many apps that claim to help you Getting Things Done better than anything else. What most of these amount to is a glorified task list, just one more thing to manage &amp; keep me from actually Getting Things Done. In the end it turns out that the real enemy of productivity is time.
     &lt;h3&gt;What is the Pomodoro Technique?&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;http://bit.ly/TcUzS&quot;&gt;Pomodoro Technique&lt;/a&gt; is a method of dealing with Time Anxiety. All you need to try it out is a timer, a paper &amp;amp; pencil. At it&amp;#8217;s simplest it involves a list of tasks &amp;amp; a commitment to focus on one task in 25 minute increments. The 25 minute increments are broken up by three short breaks followed by one long break. These breaks are 5 &amp;amp; 15 minutes respectively.&lt;/p&gt;
&lt;p&gt;Each 25 minute increment is referred to as a Pomodoro. During a Pomodoro distractions are not allowed. If a distraction pops into mind you are supposed to record it but maintain focus on the chosen task. Four Pomodoros make up one set.&lt;/p&gt;
&lt;p&gt;How you organize &amp;amp; prioritize your task list is up to you. The creator of the Pomodoro technique does have some suggestions, but if you already have a system in place I imagine that it can be easily adapted to work alongside the Pomodoro Technique.&lt;/p&gt;
&lt;h3&gt;Where does Rhythm Come in?&lt;/h3&gt;
&lt;p&gt;If you are musically inclined you may have already noticed a familiar structure here. I&amp;#8217;m no expert on music theory but I believe that most modern music is written in 4/4 time. There are notable exceptions but personally 4/4 is the time signature I identify with emotionally.&lt;/p&gt;
&lt;p&gt;Nearly all electronic dance music is in 4/4. It is this consistent rhythm which allows DJ&amp;#8217;s to seamlessly blend one track into the next. It also makes it easier for the dancer to anticipate &amp;amp; react to changes. The best music uses this rhythm to create an emotional connection in the listener.&lt;/p&gt;
&lt;p&gt;With the Pomodoro Technique you get to apply the benefits of rhythm to your daily tasks. One set of Pomodoros becomes a measure, a full work day might be a phrase. After weeks &amp;amp; months of practicing the Pomodoro Technique you end up with songs. Taken over years of practice you get albums &amp;amp; a full discography cataloging your professional output.&lt;/p&gt;
&lt;p&gt;Applying this to my own work a phrase might become a feature in a web app. Each incremental release might become a song &amp;amp; an app launch becomes an album. Over the history of my career I hope to create my own discography of projects. Some of them will be successful &amp;amp; others not so much so. Framed in the musical concepts I am comfortable with it all doesn&amp;#8217;t sound quite so intimidating.&lt;/p&gt;
&lt;h3&gt;My History with Time Anxiety &amp;amp; Fear&lt;/h3&gt;
&lt;p&gt;Until discovering the Pomodoro Technique I had never heard of Time Anxiety. I was aware that I wasn&amp;#8217;t as productive as I felt I could be, but tended to write it off as a personality flaw &amp;amp; tried to brute force productivity. The results were generally unsatisfactory &amp;amp; frequently led to depression when I felt like I wasn&amp;#8217;t accomplishing the things I should be.&lt;/p&gt;
&lt;p&gt;I first started to really consider this issue after watching a talk called &lt;a href=&quot;http://bit.ly/zzBjA&quot;&gt;Fear of Programming&lt;/a&gt; by Nathaniel Talbott at RubyConf in 2008. Nathaniel talks about how at a subconscious level Fear is frequently involved in preventing us from achieving our full potential. I started to consider the role Fear was playing in my life &amp;amp; was shocked to find that nearly every source of unhappiness could be traced back to Fear on some level.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve always been attracted to media involving Time. The earliest may have been Star Wars, which starts out by declaring that these futuristic events actually took place a long time ago. Douglas Adams &amp;amp; the &lt;a href=&quot;http://bit.ly/BgILG&quot;&gt;Hitchhikers Guide to the Galaxy&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=skepsis-20&amp;l=as2&amp;o=1&amp;a=0517226952&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt; treat Time as something totally different than what we perceive. &lt;a href=&quot;http://bit.ly/YZdp5&quot;&gt;Jitterbug Perfume&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=skepsis-20&amp;l=as2&amp;o=1&amp;a=0553348981&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt; by Tom Robbins has transcendence of Time as a core theme. When season 5 of &lt;span class=&quot;caps&quot;&gt;LOST&lt;/span&gt; began I was thrilled with the time skipping plot &amp;amp; spent a ton of my own time coming up with &lt;a href=&quot;http://bit.ly/nWD9&quot;&gt;theories of time travel&lt;/a&gt;. Another recent favorite is &lt;a href=&quot;http://bit.ly/hMUVB&quot;&gt;The Holographic Universe&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=skepsis-20&amp;l=as2&amp;o=1&amp;a=0060922583&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt; which covers Time as part of it&amp;#8217;s &lt;a href=&quot;http://bit.ly/2h6IQp&quot;&gt;Theory of Everything&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After a short time practicing the Pomodoro Technique I started to realize that this fascination with transcending Time may have been a subconscious hint at my own Fear of it. This Fear was the cause of my anxiety &amp;amp; it made important tasks seem insurmountable. By reframing the idea of time as something I could take control of it became much easier to focus on the immediate task at hand.&lt;/p&gt;
&lt;h3&gt;Rhythm in Life&lt;/h3&gt;
&lt;p&gt;Music isn&amp;#8217;t the only place where rhythm affects us. At a basic level rhythm is really just a series of cycles &amp;amp; cycles are everywhere in nature. The change of seasons, the tides, reproduction, weather &amp;amp; so on are all cycles which stretched out over time create natural rhythm. I think this is why rhythm can be so comforting.&lt;/p&gt;
&lt;p&gt;I believe that everybody can benefit from taking a close look at how rhythm affects their life. Think about the patterns in your career or your relationships. Especially as the workforce becomes increasingly mobile, think about how you feel going into a new job versus how you feel right before leaving an old one. Or the difference between a fresh relationship &amp;amp; one that is about to end. By recognizing these rhythms you can become aware of how they are affecting you &amp;amp; use that knowledge to make better decisions.&lt;/p&gt;
&lt;p&gt;As part of the Pomodoro Technique you are encouraged to keep a log of your tasks as well as your distractions. Some of those distractions may end up becoming future tasks, but the important thing is that they don&amp;#8217;t get in the way of the current task. By paying close attention to where your focus likes to wander over time you will be able to make better decisions about what to focus on.&lt;/p&gt;
&lt;h3&gt;Getting Started with the Pomodoro Technique&lt;/h3&gt;
&lt;p&gt;The first thing you should do is grab a &lt;span class=&quot;caps&quot;&gt;PDF&lt;/span&gt; copy of &lt;a href=&quot;http://www.pomodorotechnique.com/pomodoro-technique-book.html&quot;&gt;The Pomodoro Technique&lt;/a&gt;. It goes into much greater detail than I have here &amp;amp; will help you get started with concepts I&amp;#8217;ve just glossed over like the activity inventory &amp;amp; to do today sheet.&lt;/p&gt;
&lt;p&gt;The next thing to do is get yourself a timer. If most of your tasks happen online you may want to give &lt;a href=&quot;http://www.tomatoist.com&quot;&gt;Tomatoist&lt;/a&gt; a look. Any timer will do however, the important thing is that it stays close by &amp;amp; visible.&lt;/p&gt;
&lt;p&gt;Another helpful tool for the computer bound is &lt;a href=&quot;http://getconcentrating.com/&quot;&gt;Concentrate&lt;/a&gt; for Mac. If you find it hard to avoid distraction this app will let you hide programs &amp;amp; block websites on a timer. For those looking for a cross platform tool there is &lt;a href=&quot;http://www.focusboosterapp.com/&quot;&gt;Focus Booster&lt;/a&gt; which runs on Adobe &lt;span class=&quot;caps&quot;&gt;AIR&lt;/span&gt;.&lt;/p&gt;
&lt;h3&gt;Other Techniques which Use Rhythm&lt;/h3&gt;
&lt;p&gt;One which comes to mind that I haven&amp;#8217;t tried out yet comes from &lt;a href=&quot;http://lifehacker.com/281626/jerry-seinfelds-productivity-secret&quot;&gt;Jerry Seinfeld&lt;/a&gt;. The goal is to mark an X everyday that you perform a certain task &amp;amp; try not to break the chain. There is an &lt;a href=&quot;http://www.freshapps.com/streaks/&quot;&gt;iphone app call Streaks&lt;/a&gt; to help you do this.&lt;/p&gt;
&lt;p&gt;I am curious to hear about other productivity techniques which use rhythm. For example anything that focuses on achieving a balance between work &amp;amp; pleasure could apply. Do you have any tricks for being productive which are based around establishing a rhythm?&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>Ruby Developer For Hire</title>
   <link href="http://www.supaspoida.com/2009/08/03/ruby-developer-for-hire.html"/>
   <updated>2009-08-03T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/08/03/ruby-developer-for-hire</id>
   <content type="html">
     In the interest of speeding up my job search, I wanted to write a post to complement my resume &amp;amp; cold calling efforts. If you are looking for someone to write Ruby codes for you, please take a gander &amp;amp; see if I might be a good fit for your company or project.
     &lt;h3&gt;Update&lt;/h3&gt;
&lt;p&gt;I am no longer available for full time gigs. I am leaving this up here because it says a lot about who I am and what I look for out of my work experience. I may still be available for consulting gigs, if the opportunity is right.&lt;/p&gt;
&lt;h3&gt;Who are You?&lt;/h3&gt;
&lt;p&gt;You are a &lt;a href=&quot;http://www.entp.com&quot;&gt;consulting&lt;/a&gt; &lt;a href=&quot;http://www.unspace.ca&quot;&gt;company&lt;/a&gt; doing &lt;a href=&quot;http://www.hashrocket.com&quot;&gt;Agile development&lt;/a&gt; with Ruby. You are looking to bring somebody on as a full time member of your team. You work on projects which are intellectually stimulating &amp;amp; solve real problems for real people. You do pair programming, daily stand ups &amp;amp; all the Agile works. You value the creativity of your staff just as much as their talent.&lt;/p&gt;
&lt;p&gt;Alternatively, you are a company with a &lt;a href=&quot;http://getharvest.com&quot;&gt;great product&lt;/a&gt; looking to bring someone in on a contract basis for a short term. You have an application filled with spaghetti code that needs to be unraveled. Or, your application is ready to launch and you need a strategy for deployment. Or, your application is already out in the wild &amp;amp; you are wondering how to expand your reach &amp;amp; increase conversions.&lt;/p&gt;
&lt;p&gt;Neither of those descriptions completely fit you but you still think your company is pretty awesome? Keep reading. I&amp;#8217;m not about to pass over a great opportunity just because it doesn&amp;#8217;t fit into a short paragraph.&lt;/p&gt;
&lt;h3&gt;Who am I?&lt;/h3&gt;
&lt;p&gt;I am a web developer who has been working with Ruby &amp;amp; Rails for 2 1/2 years. I have &lt;a href=&quot;/resume.html&quot;&gt;a resume&lt;/a&gt;, but that only tells a small part of my story. I am passionate about programming &amp;amp; love working with Ruby. I have over a decade of experience watching the web evolve &amp;amp; an uncanny ability to recognize current &amp;amp; future trends.&lt;/p&gt;
&lt;p&gt;Programming represents only a small fraction of who I am. I draw from all of my life experiences to constantly evolve a holistic perspective. A lot of these experiences come from years spent in various music communities observing people of all walks of life while traveling the world.&lt;/p&gt;
&lt;h3&gt;What you Want.&lt;/h3&gt;
&lt;p&gt;Someone who will work with product owners to execute the stakeholders&amp;#8217; vision while ensuring that the needs of the users are also met. Someone who recognizes that the code represents only a small fraction of what makes an application successful. Someone who will stand for what he believes in but can  recognize when he needs to defer to those with more experience.&lt;/p&gt;
&lt;p&gt;You are looking for someone who can make good decisions in the interest of your company without being managed. Someone who can analyze a problem &amp;amp; evaluate many solutions in order to find the best one for a given context.&lt;/p&gt;
&lt;p&gt;You want somebody who recognizes that success comes through teamwork &amp;amp; not egos. Someone who values the contributions of others &amp;amp; is inspired to be better in turn. Someone who can stand up to pressure by diffusing the stress of it.&lt;/p&gt;
&lt;h3&gt;What I Want.&lt;/h3&gt;
&lt;p&gt;I want to learn from smart &amp;amp; inspiring people. I want to teach people with a passion for knowledge. I want to live &lt;a href=&quot;/2009/06/30/destination-bootstrapping.html&quot;&gt;someplace interesting&lt;/a&gt;. I want to be compensated fairly for my time, yet realize that some things carry more value than the dollar, euro, yen or whatever you may use.&lt;/p&gt;
&lt;p&gt;I believe that Agile is the future, for more than just software. I feel strongly that principles such as shared responsibility &amp;amp; setting expectations based on real data have applications outside our industry which can lead to a better world for everybody. I want to be a part of bringing these ideas into the larger consciousness one application at a time.&lt;/p&gt;
&lt;h3&gt;Sound Like a Good Fit? Please Get in Touch!&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Email: jobs@supaspoida.com&lt;/li&gt;
	&lt;li&gt;Telephone: 443-&lt;span class=&quot;caps&quot;&gt;CYMATIC&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;Twitter: &lt;a href=&quot;http://www.twitter.com/supaspoida&quot;&gt;@supaspoida&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.contxts.com&quot;&gt;Contxts&lt;/a&gt;: Send a txt message with &amp;#8216;lar&amp;#8217; in the body to 50500&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hope to hear from you soon!&lt;/p&gt;
&lt;p&gt;Also, I would love to hear any thoughts on this post. Even if you&amp;#8217;re not hiring, would reading something like this make you more or less likely to hire me? Is there anything missing, or anything that goes too far?&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>Inventing the Future by Owning It&#58; Reflections on the FutureRuby Conference</title>
   <link href="http://www.supaspoida.com/2009/08/02/inventing-the-future-by-owning-it.html"/>
   <updated>2009-08-02T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/08/02/inventing-the-future-by-owning-it</id>
   <content type="html">
     I recently attended the FutureRuby conference in Toronto, Ontario CA. It was put on by the incredible people at Unspace &amp; was exactly what I needed at this point in my life.
     &lt;h3&gt;What is FutureRuby?&lt;/h3&gt;
&lt;p style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;/img/posts/future_ruby_group.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;FutureRuby is unlike any other conference I&amp;#8217;ve heard of. Though targeted at Ruby programmers there were only a few talks which were purely technical in nature. Unspace did a great job explaining their goals in the &lt;a href=&quot;http://www.futureruby.com&quot;&gt;FutureRuby&lt;/a&gt; mission statement:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;FutureRuby isn&amp;#8217;t a Ruby conference, but a conference for Rubyists. This is a call to order &amp;#8211; a congress of the curious characters that drew us to this community in the first place. We have a singular opportunity to express a long-term vision, a future where Ruby drives creativity and prosperity without being dampened by partisan politics.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The distinction between being a Ruby conference &amp;amp; a conference for Rubyists is an important one which was echoed in every aspect of the conference. At a Ruby conference the pivot point is the language itself. What Unspace did was shift that pivot point towards us, the Rubyists.&lt;/p&gt;
&lt;p&gt;In his talk Polyglots Unite! &lt;a href=&quot;http://www.foysavas.com/&quot;&gt;Foy Savas&lt;/a&gt; provided an excellent definition of a Rubyist:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Rubyist (n): Person who has come to realize, through Ruby, that the computer should serve them and not vice versa.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I wanted illustrate some of the ways Unspace made FutureRuby all about us, the Rubyists. I will discuss some of the standout talks in separate posts.&lt;/p&gt;
&lt;h3&gt;Telling a Story&lt;/h3&gt;
&lt;p&gt;There is a difference between an album &amp;amp; a collection of tracks. An album is a cohesive whole where each song supports the others to create a work which is greater than the sum of it&amp;#8217;s parts. It tells a story through it&amp;#8217;s structure, themes &amp;amp; sometimes words.&lt;/p&gt;
&lt;p&gt;Unspace created a living canvas for the speakers &amp;amp; attendees to help write FutureRuby&amp;#8217;s story. Over the course of the weekend I took great pleasure in watching this story unfold through the talks, events &amp;amp; conversations. I have no idea if the speakers coordinated their talks, or how much guidance Unspace provided regarding themes, but I was often struck by how each talk seemed to relate to the others in some way.&lt;/p&gt;
&lt;p&gt;Themes such as the banality of evil, owning the means of production, personal accountability &amp;amp; introspection were represented. Talks heavy in &amp;#8220;wetware&amp;#8221; content were spliced with technical presentations &amp;amp; lighter fare, giving us time to consider the implications of previous talks.&lt;/p&gt;
&lt;p&gt;The whole thing was capped by a powerful talk from &lt;a href=&quot;http://jessehirsh.com/&quot;&gt;Jesse Hirsch&lt;/a&gt; which railed against the Californian Ideology. Jesse urged us to trust those close to us, our friends, families &amp;amp; community over the business interests of the elite. Though controversial, I feel that it perfectly wrapped up several of the recurring themes. I left the conference buzzing with the thrill of new horizons.&lt;/p&gt;
&lt;h3&gt;Community is King&lt;/h3&gt;
&lt;p&gt;One of the key points to take away from Jesse&amp;#8217;s talk was the importance of community. One of the best things about FutureRuby was the attention put into enabling a community atmosphere.&lt;/p&gt;
&lt;p&gt;My first conference was RubyConf in 2008. Being surrounded by so many smart people was inspiring but I didn&amp;#8217;t leave feeling like I was part of their community. Unspace created an environment where you &lt;a href=&quot;http://blog.supergenius.ca/2009/07/futureruby-reflections.html&quot;&gt;couldn&amp;#8217;t help but connect with other attendees&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;They did this by organizing social events each night. These included FAILCamp on an island, a kickoff party in their offices, a &lt;a href=&quot;http://bit.ly/13N9JE&quot;&gt;Soviet themed catered gala at the Pravda Vodka bar&lt;/a&gt; &amp;amp; a multi-venue block party. Open bars at each event ensured that even the most socially awkward geeks were lubricated enough to connect with our peers.&lt;/p&gt;
&lt;p&gt;As a result of these efforts I left the conference knowing that I would miss the &lt;em&gt;people&lt;/em&gt; most. I finally felt like a part of this community I&amp;#8217;ve been lurking around for over two years.&lt;/p&gt;
&lt;h3&gt;All in the Details&lt;/h3&gt;
&lt;p&gt;Throughout all of this Unspace went above &amp;amp; beyond to ensure that the experience was top notch. Extra perks like discounted iPhone training, a workshop where you could grow your own bacteria &amp;amp; transit passes so that you could explore Toronto on your downtime (what downtime?) helped keep us engaged at all times.&lt;/p&gt;
&lt;p&gt;The Soviet propaganda theme was consistently used with great effect. Upon registration we were greeted with a canvas swag bag with a FutureRuby patch, pin, book of matches &amp;amp; T-shirt. There was a full sized promotional poster available which I plan to frame &amp;amp; hang proudly on my wall. Even the badges &amp;amp; backdrops for the slides stuck with the iconic Soviet imagery.&lt;/p&gt;
&lt;p&gt;The catered lunches &amp;amp; dinner at Pravda were delicious. Food &amp;amp; drink was plentiful &amp;amp; every effort was made to accommodate different dietary requirements.&lt;/p&gt;
&lt;p&gt;These details combined with the excellent talks &amp;amp; quality company helped create an experience which was far more than the sum of it&amp;#8217;s parts.&lt;/p&gt;
&lt;h3&gt;Wrapping Up &amp;amp; Thanks&lt;/h3&gt;
&lt;p&gt;If this reads like a fluff piece, that&amp;#8217;s probably because it is. And a well deserved one. FutureRuby ranks near the top of my Best Ever experiences, among multiple European adventures &amp;amp; seeing my favorite band play through sunrise on a boat in the Caribbean. I will do everything in my power to be at any Unspace events in the future.&lt;/p&gt;
&lt;p&gt;Some thanks are definitely in order as well:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://twitter.com/peteforde&quot;&gt;Pete Forde&lt;/a&gt;, &lt;a href=&quot;http://www.twitter.com/meghatron&quot;&gt;Meghann Millard&lt;/a&gt; &amp;amp; rest of Unspace crew &amp;amp; volunteers for putting their heart &amp;amp; soul into making this the best experience for us possible. &lt;a href=&quot;http://www.unpossible.com/&quot;&gt;Dan Grigsby&lt;/a&gt; of &lt;a href=&quot;http://www.mobileorchard.com/&quot;&gt;Mobile Orchard&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://www.urbanhonking.com/ideasfordozens/&quot;&gt;Greg Borenstein&lt;/a&gt; for going out of their way to make me feel welcome. &lt;a href=&quot;http://www.globalnerdy.com/&quot;&gt;Joey deVilla&lt;/a&gt; for his detailed notes on some of the talks which helped refresh my memory for this post. The Shopify team for keeping the bar open at Pravda. And most importantly all of the amazing people I met for the stimulating conversation &amp;amp; inspiration.&lt;/p&gt;
&lt;h3&gt;FutureRuby Elsewhere&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://freelancing-gods.com/posts/future_ruby_and_californian_conflict&quot;&gt;Pat Allan on FutureRuby &amp;amp; Californian Conflict&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://blog.supergenius.ca/2009/07/futureruby-reflections.html&quot;&gt;Jay Tennier on the importance of proximity&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.shindigital.com/blogpost/53&quot;&gt;Andrew Burke with more on shared leftist themes&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Joey deVilla&amp;#8217;s notes
	&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.globalnerdy.com/2009/07/15/futureruby-talk-fighting-the-imperial-californian-ideology/&quot;&gt;Fighting the Imperial Californian Ideology&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://www.globalnerdy.com/2009/07/16/futureruby-talk-artisanal-retro-futurism-and-team-scale-anarcho-syndicalism/&quot;&gt;Artisanal Retro-Futurism and Team-Scale Anarcho-Syndicalism&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;Various wrap up posts
	&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;http://hyfen.net/tags/futureruby/&quot;&gt;Andrew Louis&amp;#8217; posts tagged with FutureRuby&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href=&quot;http://deadprogrammersociety.blogspot.com/search/label/futureruby&quot;&gt;Ron Evans&amp;#8217; posts tagged with FutureRuby&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.infoq.com/FutureRuby&quot;&gt;Video of talks on InfoQ&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/tags/futureruby/&quot;&gt;Photos tagged with FutureRuby on Flickr&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
  </content>
 </entry>
 
 <entry>
   <title>Practicing What you Preach&#58; Complete Web Monitoring</title>
   <link href="http://www.supaspoida.com/2009/07/06/practicing-what-you-preach-complete-web-monitoring.html"/>
   <updated>2009-07-06T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/07/06/practicing-what-you-preach-complete-web-monitoring</id>
   <content type="html">
     I recently picked up the book &lt;a href=&quot;http://bit.ly/VwcjS&quot;&gt;Complete Web Monitoring&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=skepsis-20&amp;l=as2&amp;o=1&amp;a=0596155131&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt; by Sean Power &amp; Alistair Croll. It's a large book with extensive details about monitoring everything needed while running a business online, from infrastructure to marketing. After skimming the PDF for a bit I posted my initial thoughts on twitter. Today one of the authors responded to my tweet &amp; the other had begun following me. This is a perfect example of online marketing done right.
     &lt;h3&gt;Why Complete Web Monitoring?&lt;/h3&gt;
&lt;p&gt;I earn my living writing code but I have no illusions about the role of code in building a successful product or service. You don&amp;#8217;t have a product without it, but the code is really just the tip of the iceberg when it comes to running a successful business. In order to be successful a company operating on the web has got to do a lot of things right, or do one thing so well that the rest don&amp;#8217;t matter.&lt;/p&gt;
&lt;p&gt;One of the most important things to get right is the marketing. There are no silver bullets when it comes to marketing. Each project is going to require a slightly different approach. Finding what works best for your particular offering is an involved and iterative process.&lt;/p&gt;
&lt;p&gt;When hired as a developer I have found that not all clients are interested in hearing what you think about marketing &amp;amp; would prefer you to just write the code they ask for. This is a marketing problem that I have. I am not marketing part of the value I bring to the table so clients get confused when I want to spend time on something that isn&amp;#8217;t supposed to be my job.&lt;/p&gt;
&lt;p&gt;The problem is marketing isn&amp;#8217;t really my job, it&amp;#8217;s just something that I understand the importance of. I can talk about it but I don&amp;#8217;t really have the knowledge or tools to act on it. All talk and no bite. So I&amp;#8217;ve decide to address that &amp;amp; grabbing this book is one of the first steps in this process.&lt;/p&gt;
&lt;h3&gt;Initial Thoughts&lt;/h3&gt;
&lt;p&gt;I found this book as a result of good marketing. &lt;a href=&quot;http://bit.ly/QJ0Gq&quot;&gt;Word of mouth&lt;/a&gt; led me to the &lt;a href=&quot;http://bit.ly/pUzWh&quot;&gt;O&amp;#8217;Reilly Store&lt;/a&gt; to purchase &lt;a href=&quot;http://bit.ly/NVWV7&quot;&gt;Ruby Best Practices&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=skepsis-20&amp;l=as2&amp;o=1&amp;a=0596523009&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;. From there I was shown &lt;a href=&quot;http://bit.ly/VwcjS&quot;&gt;Complete Web Monitoring: Watching your visitors, performance, communities, and competitors&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.com/e/ir?t=skepsis-20&amp;l=as2&amp;o=1&amp;a=0596155131&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;. I bit on the upsell having only just heard of the book &amp;amp; read just the description. After checking out the table of contents &amp;amp; skimming some of the content I posted the following:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090707-erkwt9h459siue74ufx5c88651.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;The Response&lt;/h3&gt;
&lt;p&gt;That was posted late night on Friday. Monday morning I found the following two messages:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090707-pkrigemy76xfgybfiqgda4m8cq.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090707-cpxk8fh7fiim1b4w5i1uxad74y.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Given the subject of the book I think this is perfect marketing. They are clearly monitoring what is being said about their book &amp;amp; taking the opportunity to connect with their customers. As a result I feel like I&amp;#8217;ve got a direct line to the authors of the book, something that traditional marketing could never give you.&lt;/p&gt;
&lt;h3&gt;But This Book Isn&amp;#8217;t Really About Marketing&lt;/h3&gt;
&lt;p&gt;It&amp;#8217;s about monitoring your online presence. Quality marketing is just one of the side effects of good monitoring. When you learn from &amp;amp; improve based on data collected from your audience marketing is no longer about blindly blasting your message in front of as many eyeballs as possible. Before I really dig into the book the authors have proven by example that their methods work.&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>Crazy Idea or Best Gig Ever? Destination Bootstrapping in Costa Rica.</title>
   <link href="http://www.supaspoida.com/2009/06/30/destination-bootstrapping.html"/>
   <updated>2009-06-30T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/06/30/destination-bootstrapping</id>
   <content type="html">
     I recently took a week long trip to Costa Rica, combining a bit of sightseeing with a bit of soul searching. The natural beauty everywhere is very inspiring, and I came home determined to make some changes in my life. At this point I am considering several different paths to follow &amp; wanted to share one of the more ambitious ones in hopes that maybe some others might be interested in sharing my vision.
     &lt;h3&gt;The Context&lt;/h3&gt;
&lt;p&gt;I have been an independent worker almost all my life. My last W2 gig was a week long stint at a ski resort working the lifts. I took the gig because I wanted something that would get me outside &amp;amp; also let me snowboard regularly. After a week they realized they were overstaffed at the lifts and wanted to put me in the rental shop so I left. Prior to that I parked cars for a Renaissance Festival one summer in High School.&lt;/p&gt;
&lt;p&gt;So I&amp;#8217;m very accustomed to the benefits of the independent life. I&amp;#8217;m also closely acquainted with the downsides &amp;amp; have been considering seeking out full time employment each time a large gig finishes up. Each time however some other project ends up falling into my lap &amp;amp; I put off the career move for &lt;i&gt;just one more project&lt;/i&gt;.&lt;/p&gt;
&lt;h3&gt;Another Alternative&lt;/h3&gt;
&lt;p&gt;All that being said, neither of those options represent what I really want. They are just potential paths to an ultimate goal of starting &amp;amp; running my own businesses. I&amp;#8217;ve got more ideas than I know what to do with &amp;amp; lack the resources to execute on them, making them fairly worthless at this point. And the longer I wait, the more frequently I see others executing those same ideas without me.&lt;/p&gt;
&lt;p&gt;So I want to start my own company, but I don&amp;#8217;t want to be a &lt;span class=&quot;caps&quot;&gt;CEO&lt;/span&gt; or look for funding or get brought out or any of those other things that &lt;i&gt;companies&lt;/i&gt; do. I just want to turn my ideas into products/services that enhance lives &amp;amp; charge money for them. To do this I want to work with motivated people who are passionate about similar things as me. I want to work with people smarter &amp;amp; more experienced than me because I feel like I&amp;#8217;ve hit a wall in how much I can learn on my own. I want to compensate these people well for their time &amp;amp; I want to share the benefits should any of these ideas take off thanks to their help.&lt;/p&gt;
&lt;p&gt;Which brings me to the real reason for this post; &lt;em&gt;compensation&lt;/em&gt;. Due to a combination of poor saving habits &amp;amp; a rampant addiction to travel &amp;amp; live music I&amp;#8217;ve never really accumulated enough capital to feel comfortable hiring the help I need. So how I can entice the type of people I want to get behind my ideas?&lt;/p&gt;
&lt;h3&gt;The Hook&lt;/h3&gt;
&lt;p&gt;Back to Costa Rica. I find I am most inspired to create in beautiful places. This inspiration doesn&amp;#8217;t always carry over into the daily grind upon return. Working off a laptop overlooking green mountains or clear blue oceans doesn&amp;#8217;t sound like much of a grind. Maybe I gather together a group of programmers &amp;amp; designers &amp;amp; just set up shop down there?&lt;/p&gt;
&lt;p&gt;I would cover lodging &amp;amp; transportation to the &amp;#8220;office&amp;#8221; &amp;amp; other essentials. A four day work week would allow ample time for weekend trips around the country. We would focus on projects which could be implemented quickly &amp;amp; earn revenue quickly. I&amp;#8217;ve already got a first project idea which I think could be built in a week or so &amp;amp; earn revenue immediately upon launch with minimal marketing.&lt;/p&gt;
&lt;p&gt;A creative &amp;amp; collaborative atmosphere would be encouraged. I&amp;#8217;ve been talking about my ideas but I&amp;#8217;m also excited about helping others execute their ideas. So long as the idea can be bootstrapped, it&amp;#8217;s fair game. I don&amp;#8217;t want this to be just &lt;i&gt;work&lt;/i&gt;, I&amp;#8217;d like it to be a unique experience for all involved. Should some profitable side businesses emerge out of this, I would count on our team to be able to come to mutually agreeable strategies for sharing profits.&lt;/p&gt;
&lt;h3&gt;Still not Interested? Here are some Pictures.&lt;/h3&gt;
&lt;p&gt;They say a picture is worth a thousand words, so I&amp;#8217;ll leave you with a few taken by my sisters over our vacation. I would love to hear any thoughts on this idea, both positive or negative. Is this realistic at all? Is it something you would be interested in? Are you ready to sign up right now?&lt;/p&gt;
&lt;ul class=&quot;post-images&quot;&gt;
	&lt;li&gt;&lt;img src=&quot;/img/costarica/mal_pais_beach_sunset_with_tree.jpg&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
	&lt;li&gt;&lt;img src=&quot;/img/costarica/mal_pais_beach_sunset.jpg&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
	&lt;li&gt;&lt;img src=&quot;/img/costarica/mal_pais_beach.jpg&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
	&lt;li&gt;&lt;img src=&quot;/img/costarica/national_park_manuel_antonio_beach.jpg&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
	&lt;li&gt;&lt;img src=&quot;/img/costarica/monte_verde_canopy_line.jpg&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
	&lt;li&gt;&lt;img src=&quot;/img/costarica/ronnys_place_cocktail.jpg&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
  </content>
 </entry>
 
 <entry>
   <title>Poaching Customers on Twitter</title>
   <link href="http://www.supaspoida.com/2009/05/06/poaching-customers-on-twitter.html"/>
   <updated>2009-05-06T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/05/06/poaching-customers-on-twitter</id>
   <content type="html">
     In the right hands, Twitter enables businesses and brands to interact with their customers in ways previously unheard of. But if you're not careful, it can do you just as much harm as good. Today I witnessed the power of this firsthand.
     &lt;h3&gt;The Complaint&lt;/h3&gt;
&lt;p&gt;I recently started using &lt;a href=&quot;http://www.seamlessweb.com&quot;&gt;Seamless Web&lt;/a&gt;, an online meal delivery service. Aside from some slow service, it has been going well enough. Some things about their web UI bothered me however, so I took a few seconds to broadcast some of those issues on Twitter:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090506-81692hqixfamryd9n91a7bkpt3.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;The Competitor&lt;/h3&gt;
&lt;p&gt;Apparently the online delivery service business is heating up, and competition is pretty fierce. Within a few hours I found this Tweet in my @replies:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090506-puc8pkmbkyhsyu232jm574uuac.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;The Response&lt;/h3&gt;
&lt;p&gt;I took a look at the &lt;a href=&quot;http://www.grubhub.com&quot;&gt;Grub Hub&lt;/a&gt; site, and it looks pretty promising:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090506-pngcck7a2keqwka2e1jw4kk5uk.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;The Switch?&lt;/h3&gt;
&lt;p&gt;Next time I place an order online, I will be giving Grub Hub my business. If the experience tops or even equals Seamless Web they will have won a new customer at the expense of their competition. Just goes to show that in the war for attention these days you&amp;#8217;ve gotta be quick to the draw.&lt;/p&gt;
&lt;h3&gt;Update: Twist!&lt;/h3&gt;
&lt;p&gt;Although not addressing my first tweet, Seamless Web did have something to say about the Grub Hub experience:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090506-me8w3mjb7ibijgi97t2n2i51fy.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Which calls attention to the potential for abuse with this practice. If you are watching the conversation around your competition, and choose to reach out to one of their customers or potential customers you&amp;#8217;d better be sure that your message is relevant.&lt;/p&gt;
&lt;p&gt;Regardless of which service I end up preferring (I suspect I will be using both), this exchange has been a perfect example of a kind of dialog which was very rare before Twitter. The real-time nature of Twitter gives businesses the opportunity to promote their services through group conversation, as opposed to the one way nature of an advertisement, and we all benefit from that.&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>Give your Resources Context using render_with_context</title>
   <link href="http://www.supaspoida.com/2009/04/14/adding-context-to-resources-using-render_with_context.html"/>
   <updated>2009-04-14T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/04/14/adding-context-to-resources-using-render_with_context</id>
   <content type="html">
     Use convention to simplify your object partials by giving them context.
     &lt;h3&gt;The Case for Context.&lt;/h3&gt;
&lt;p&gt;Introduced in rails 2.0, default partial rendering based on object naming conventions did quite a bit to clean up my view code. However, in most of the applications I&amp;#8217;ve worked on objects need to be displayed differently depending on what context they are shown in. Take the example of rendering items on a dashboard, or with a minimal set of attributes in the sidebar. If you want to make use of the partial conventions, you end up throwing a bunch of conditional logic into the views to control what appears when.&lt;/p&gt;
&lt;p&gt;I wanted to be able to specify which partial should be used to render the object from each view. Something like this:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;n&quot;&gt;render&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:partial&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;vi&quot;&gt;@items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:locals&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:context&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:dashboard&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;How it Works.&lt;/h3&gt;
&lt;p&gt;In keeping with convention over configuration, I decided to piggy back on what already exists in Rails. Each resource gets a new folder in it&amp;#8217;s view directory called contexts. It looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://img.skitch.com/20090224-84pt3pgiij1bj5pihf85e9479b.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Inside the contexts directory we see three separate context partials, &lt;b&gt;_dashboard.html.haml&lt;/b&gt;, &lt;b&gt;_default.html.haml&lt;/b&gt;, &amp;amp; &lt;b&gt;_minimal.html.haml&lt;/b&gt;. Each one of them contains the markup for that object when displayed in a given context. The names of the contexts are derived from the filenames, so you can pass &lt;b&gt;:dashboard&lt;/b&gt; or &lt;b&gt;:minimal&lt;/b&gt; to the locals hash when rendering objects. The &lt;b&gt;:default&lt;/b&gt; context gets used if there is no &lt;b&gt;:context&lt;/b&gt; key in the locals hash.&lt;/p&gt;
&lt;p&gt;The &lt;b&gt;_item.html.haml&lt;/b&gt; partial contains only the call to render_with_context as so:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;n&quot;&gt;render_with_context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;vi&quot;&gt;@items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:dashboard&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This method passes along the item to be rendered along with the local_assigns, which now include a &lt;b&gt;:context&lt;/b&gt; key to be used in determining which partial to render. The &lt;b&gt;render_with_context&lt;/b&gt; method lives in &lt;b&gt;app/helpers/application_helper.rb&lt;/b&gt; and looks like this:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;render_with_context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;resource&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;locals&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{})&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;context&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;locals&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:context&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||=&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:default&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;resource_root&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;resource&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_s&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pluralize&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;underscore&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;partial_path&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;resource_root&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/contexts/&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_s&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;render&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:partial&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;partial_path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:object&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;resource&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:locals&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;locals&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The example at the beginning of this post would result in the &lt;b&gt;_dashboard.html.haml&lt;/b&gt; partial being rendered. This partial looks like this:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;o&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:class&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cycle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;odd&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;even&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;thumbnail&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;image_tag&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;preview&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:mini&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;h&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;h&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;body&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;If you were to pass &lt;b&gt;:minimal&lt;/b&gt; to the &lt;b&gt;:context&lt;/b&gt; local variable then the &lt;b&gt;_minimal.html.haml&lt;/b&gt; partial would be rendered. Here it is:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;o&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:class&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;cycle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;odd&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;even&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; &lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;thumbnail&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;image_tag&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;preview&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:preview&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;h&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Note that the body is no longer displayed, and the thumbnail now uses a different preview. This code isn&amp;#8217;t cargo cult friendly as there are some conventions in here from the excellent &lt;b&gt;make_resourcful&lt;/b&gt; plugin, and obviously all these partials are in the haml format, but you should get the idea.&lt;/p&gt;
&lt;h3&gt;Where it Could Go.&lt;/h3&gt;
&lt;p&gt;This is a rough first attempt at this concept. I don&amp;#8217;t like the misdirection in the &lt;b&gt;_item.html.haml&lt;/b&gt; partial, and setting up the render is cumbersome due to the locals hash. Ideally that will all be wrapped up into a new method so we can do something like:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;n&quot;&gt;render_with_context&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;vi&quot;&gt;@items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:dashboard&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Or with even more sugar:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;&lt;span class=&quot;n&quot;&gt;render_on_dashboard&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;vi&quot;&gt;@items&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Recently Rails saw some commits which will enable something similar to this, only it is used to render different partials based on locales for l10n support. I suspect there might be some insights in that code on how to patch Rails itself with this feature. At the very least I would like to make this compatible with the new localization features, though I&amp;#8217;m not quite sure what the best organization conventions would be in that case.&lt;/p&gt;
&lt;h3&gt;What Do You Think?&lt;/h3&gt;
&lt;p&gt;I would love to hear some feedback on this, positive or negative. How do you manage complex view requirements for your resources? Does this address a real problem, or is it just an unnecessary abstraction?&lt;/p&gt;
  </content>
 </entry>
 
 <entry>
   <title>3 Essential Turntablism Videos</title>
   <link href="http://www.supaspoida.com/2009/04/14/3-essential-turntabilism-videos.html"/>
   <updated>2009-04-14T00:00:00-07:00</updated>
   <id>http://www.supaspoida.com/2009/04/14/3-essential-turntabilism-videos</id>
   <content type="html">
     I am generally not a fan of Turntablism. I admire the skill involved, but I don't find the results to be all that listenable. Most turntablists come off as extremely self indulgent, at the expense of musicality. There are however, some key exceptions.
     &lt;h3&gt;DJ Qbert &amp;#8211; Superman Routine&lt;/h3&gt;
&lt;p&gt;&lt;object type=&quot;application/x-shockwave-flash&quot; style=&quot;width:425px; height:344px;&quot; data=&quot;http://www.youtube-nocookie.com/v/fiHiRavOLis&amp;amp;hl=en&amp;amp;fs=1&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube-nocookie.com/v/fiHiRavOLis&amp;amp;hl=en&amp;amp;fs=1&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;br /&gt;
&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;This is the most &amp;#8220;traditional&amp;#8221; turntablism routine out of the three. While this is pure scratch candy, it&amp;#8217;s done in a way which turns the scratches into an instrument of their own. QBert says in the excellent Scratch documentary that he tries to make music that sounds like Aliens communicating. Watching him perform in this clip you get the impression that he isn&amp;#8217;t so much mixing music as cutting up and rearranging data.&lt;/p&gt;
&lt;p&gt;My first concert ever was Dream Theater, a progressive rock/metal band. Progressive rock is another one of those genres that tends to feel very self indulgent. Dream Theater is one of the exceptions which manages to combine the overwhelming skill of the individual musicians into something greater than the sum of the parts. Watching their Scenes From a Memory &lt;span class=&quot;caps&quot;&gt;DVD&lt;/span&gt; and focusing on their playing you get the sense that you are watching pure music visualization. Just watching their fingers move on the frets is better than any trippy visuals generated by a computer. The same is true for the QBert routine. Sometimes his hands are moving so fast, he seems almost inhuman himself.&lt;/p&gt;
&lt;h3&gt;Birdy Nam Nam &amp;#8211; Absesses&lt;/h3&gt;
&lt;p&gt;&lt;object type=&quot;application/x-shockwave-flash&quot; style=&quot;width:425px; height:344px;&quot; data=&quot;http://www.youtube-nocookie.com/v/0PqvDwBOp9Y&amp;amp;hl=en&amp;amp;fs=1&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube-nocookie.com/v/0PqvDwBOp9Y&amp;amp;hl=en&amp;amp;fs=1&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;br /&gt;
&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve always had a lot of respect for DJs that play well with others. I&amp;#8217;m not talking about your typical tag team affairs, rather truly meshing with another performer to create something new. Birdy Nam Nam is a team of DJs from France which does exactly that in a very unique way. Each member uses one turntable and mixer and when you combine them you get the effect of a whole band performing on stage.&lt;/p&gt;
&lt;p&gt;What I love about this clip is the effective use of string sounds, something which is generally under represented in dance music. Dubstep has started to play in the string realm, but Birdy Nam Nam takes it to a whole new level. String tracks are chopped up and remixed into a completely new composition. And they all manage to stay in synch with each other. The payoff is an intense bluegrass breakdown, which gives me hope that my dream of Drum &amp;amp; Grass is actually achievable.&lt;/p&gt;
&lt;h3&gt;DJ Shadow, Cut Chemist &amp;amp; Numark &amp;#8211; Pushing Buttons&lt;/h3&gt;
&lt;p&gt;&lt;object type=&quot;application/x-shockwave-flash&quot; style=&quot;width:425px; height:344px;&quot; data=&quot;http://www.youtube-nocookie.com/v/IQcyLMa716k&amp;amp;hl=en&amp;amp;fs=1&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube-nocookie.com/v/IQcyLMa716k&amp;amp;hl=en&amp;amp;fs=1&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;br /&gt;
&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;While the title of this thread is &amp;#8220;3 Essential Turntablism Videos&amp;#8221; this video doesn&amp;#8217;t actually feature a single turn table. However, each performer is a world renowned turntablist in their own right, so I think this still fits. This is taken from DJ Shadow&amp;#8217;s In Tune &amp;amp; On Time &lt;span class=&quot;caps&quot;&gt;DVD&lt;/span&gt; bonus features.&lt;/p&gt;
  </content>
 </entry>
 
 
</feed>