<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
 
 <title>The Whole Doubt</title>
 
 <link href="http://thewholedoubt.com/" />
 <updated>2011-10-02T15:17:52-07:00</updated>
 <id>http://thewholedoubt.com/</id>
 <author>
   <name>Brandon Mitchell</name>
   <email>brandon@systemisdown.net</email>
 </author>

 
 <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/TheWholeDoubt" /><feedburner:info uri="thewholedoubt" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
   <title>A Mature Hot Hatch</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/jnJiXHFYeg4/a-mature-hot-hatch.html" />
   <updated>2010-04-30T00:00:00-07:00</updated>
   <id>http://thewholedoubt.com/2010/04/30/a-mature-hot-hatch</id>
   <content type="html">&lt;h3&gt;&lt;/h3&gt;

&lt;p&gt;I purchased a well-equipped 2010
&lt;a href="http://en.wikipedia.org/wiki/Volkswagen_Golf"&gt;Volkswagen GTI&lt;/a&gt; on the 30th of March
this year. Having now put 1000 miles and 30 days on the car, I have a
few initial thoughts to share.&lt;/p&gt;

&lt;p&gt;The GTI is powered by a turbo-charged 2.0L four-cylinder engine based on VAG's current
&lt;a href="http://en.wikipedia.org/wiki/List_of_Volkswagen_Group_petrol_engines#Four_cylinder_EA888_petrols"&gt;EA888 platform&lt;/a&gt;, and it is fantastic. Pushing down on the throttle at
any time results in instantly available torque, seemingly across the
entire RPM band. Looking at the &lt;a href="/images/20_torque.jpg"&gt;torque curve&lt;/a&gt; however,
there is a huge plateau across most of the powerband. This implies that Volkwagen
has artificially limited the power output of this motor, likely for insurance purposes.&lt;/p&gt;

&lt;p&gt;At partial throttle, the GTI is a supple and refined daily
driver. There are few signs of the power available during an average
day's commute. I am finding a respectible 30 mpg in daily mixed
driving and the broad torque curve makes city driving a joy.&lt;/p&gt;

&lt;p&gt;Like all direct-injected engines with exhaust gas recycling - an
emissions requirement - the 2.0L TSI is subject to carbon buildup
on the intake valves. Unlike port-injected engines, very
little detergent-enhanced fuel washes against the intake valves in a
direct-injected engine. This is something that bears watching.&lt;/p&gt;

&lt;p&gt;The 2010 model comes equipped with both stability control ("ESP") and
an electronically simulated limited slip differential ("XDS"). New on
the 2010 GTI, XDS helps prevent inside wheel spin in hard cornering by
applying slight brake pressure. This system is fairly unobtrusive and
effective at keeping the front-driven GTI well-mannered in the
twisties. ESP is also extremely effective in daily driving, but
quickly gets in the way when the car is pushed. The stability control
will intervene too often by cutting power and causing the car to
shudder unexpectedly. As recommended by VW, be sure to hit "ESP off"
before "spirited" driving.&lt;/p&gt;

&lt;p&gt;The interior fit-and-finish is the best I have seen from an
econobox, with few exceptions. The Interlagos plaid seats are
well-bolstered and stylish. The dash controls are easy to read at a
glance and simple to operate. I have experienced a rattle in both the
driver- and passenger-side B-pillar. I plan to discuss the issue with my
dealer at the 90-day checkup.&lt;/p&gt;

&lt;p&gt;Steering is electronically-assisted, which is usually a recipe for
isolation in the wheel. Not here. The steering wheel is well-damped,
but still maintains road feel for the driver. My model is also
equipped with a &lt;a href="http://en.wikipedia.org/wiki/Direct-Shift_Gearbox"&gt;DSG&lt;/a&gt;
6-speed automated-manual gearbox. The DSG provides the convenience of an
automatic in city traffic, with the control of a manual transmission via
paddle shifters - hold the Formula One metaphors, please - or taps of the
shift knob forward or backward.&lt;/p&gt;

&lt;p&gt;Two fully automatic modes are provided, Drive and Sport, which offer a
comfortable mix of fuel-sipping conservatism and smile-inducing power
shifts. In the Tiptronic mode, shifts are executed at blazing fast
speeds with minimal delay. This is not your father's manumatic. I do
miss the clutch pedal, but the dead pedal decoy and a gearbox that shifts
in a blink are an excellent replacement.&lt;/p&gt;

&lt;p&gt;While the GTI is an economical and fun drive from the factory, there
are some changes I plan to make which will improve the performance of
the car. My initial goal is to help the car get the most out of the
power it currently makes, before adding more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: I've installed a larger &lt;a href=""&gt;intercooler&lt;/a&gt;, &lt;a href=""&gt;turbo&lt;/a&gt; and &lt;a href=""&gt;downpipe&lt;/a&gt;,
which all have massively improved an already fun-to-drive machine. These
upgrades aren't for everyone, but they were money well-spent in my book.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/jnJiXHFYeg4" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2010/04/30/a-mature-hot-hatch.html</feedburner:origLink></entry>
 
 <entry>
   <title>Django Niggles</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/7YNCbi6O3D0/django-niggles.html" />
   <updated>2009-11-08T00:00:00-08:00</updated>
   <id>http://thewholedoubt.com/2009/11/08/django-niggles</id>
   <content type="html">&lt;p&gt;I have been doing a bit of work in Python, lately. As I am generally a "web guy," this means spending
time with &lt;a href="http://djangoproject.com"&gt;Django&lt;/a&gt;. This post is admittedly heavily bias and probably includes
mistakes and omissions. The standard disclaimer applies. However, I am hoping that someone out there on
the tubes will be able to help me understand these minor annoyances and point me in the direction of a
better way.&lt;/p&gt;

&lt;h3&gt;The Model&lt;/h3&gt;

&lt;p&gt;Django has a usable ORM. For the majority of uses, it Just Works(TM). So there are a few more
underscores than I would prefer to look at (my "_" key is looking haggard) and the
&lt;a href="http://docs.djangoproject.com/en/dev/ref/models/relations/#ref-models-relations"&gt;related object&lt;/a&gt; API is
a bit... odd. Whatever. I can deal.&lt;/p&gt;

&lt;p&gt;However, to quote Jerry Seinfeld, what is the deal with transactions? Why is the
&lt;a href="http://docs.djangoproject.com/en/dev/topics/db/transactions/#topics-db-transactions"&gt;middleware&lt;/a&gt;
seemingly the only elegant way to control transactions? Okay, so Django likes to tie these things to the
request/response cycle. Most of the time, that &lt;em&gt;is&lt;/em&gt; what I want. Most of the time. Please tell me there
exists some decorator-based support for transactional methods in the Model, though. Please.&lt;/p&gt;

&lt;h3&gt;The View&lt;/h3&gt;

&lt;p&gt;Most of the world calls this the Controller, in
&lt;a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller"&gt;MVC&lt;/a&gt; parlance. Again, no big deal. They consist of
methods that sit in between the Template (views, to the rest of us) and the Model. The rendering support
arguably reads a bit oddly, but we all already know that I have a fetish for readability.&lt;/p&gt;

&lt;p&gt;There must be a better way to handle error conditions in the Model. The typical action in Django
seems to be to wrap each Model interaction with try/except clauses and hope you've caught everything.
Yes, I know Python is predisposed to
&lt;a href="http://docs.python.org/library/exceptions.html#exceptions.GeneratorExit"&gt;abusing&lt;/a&gt;
&lt;a href="http://docs.python.org/library/exceptions.html#exceptions.StopIteration"&gt;exceptions&lt;/a&gt;, but this
interface is crying out for something cleaner. Something saner. Something
&lt;a href="http://api.rubyonrails.org/classes/ActiveRecord/Errors.html"&gt;else&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I cannot for the life of me find a decent way to handle &lt;code&gt;PUT&lt;/code&gt;/&lt;code&gt;DELETE&lt;/code&gt; requests in views without
wallowing in &lt;a href="http://docs.djangoproject.com/en/dev/ref/request-response/#httprequest-objects"&gt;here&lt;/a&gt;. I
strive for interfaces that at least &lt;em&gt;pretend&lt;/em&gt; to be RESTful, but Django does not seem to care much for
that philosophy. A shame.&lt;/p&gt;

&lt;h3&gt;Tests&lt;/h3&gt;

&lt;p&gt;This is a personal soapbox. At both the language and framework level, testing should be clean,
unobtrusive, flexible and &lt;em&gt;fast&lt;/em&gt;. xUnit-style tests are fine and well, given adequate support for the
framework's primitives. In the web world, this means managing database state between tests, loading up
fixture data, executing faux web requests and testing integration points with caches and peers.&lt;/p&gt;

&lt;p&gt;Yes, Django has a cursory
&lt;a href="http://docs.djangoproject.com/en/dev/topics/testing/#topics-testing"&gt;examination&lt;/a&gt; of
testing a web application. Ironically, &lt;code&gt;doctest&lt;/code&gt; is lauded as feeling more "pythonic," but there seems
to be better support for testing each component of the stack using the &lt;code&gt;unittest&lt;/code&gt; style. Moreover,
&lt;code&gt;doctest&lt;/code&gt; begins feeling like a cruel joke when test coverage grows to anything more than example method
usage.&lt;/p&gt;

&lt;p&gt;Django's documentation explicitly states that "most projects will end up using both." I hope this
is an intermediate step, until someone builds a more &lt;a href="http://github.com/brynary/webrat"&gt;elegant&lt;/a&gt;
&lt;a href="http://www.thoughtbot.com/projects"&gt;harness&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Administrivia&lt;/h3&gt;

&lt;p&gt;Django provides a script with each new project in the form of &lt;code&gt;manage.py&lt;/code&gt;. It works as advertised and
creating custom commands is straightforward. I do miss some &lt;a href="http://rake.rubyforge.org"&gt;other&lt;/a&gt;
&lt;a href="http://capify.org"&gt;tools&lt;/a&gt;, but it gets the job done.&lt;/p&gt;

&lt;p&gt;With its &lt;a href="http://www.python.org/about/"&gt;usurped&lt;/a&gt; motto of "batteries included," one would think log
output has received as much attention as command execution, though. &lt;code&gt;import logging&lt;/code&gt; and other
boilerplate hoop-jumping is not the answer, here. When the application is running in development, at the
very least console output should include useful tidbits such as SQL statements executed by the ORM and
stack execution times (the template engine...). Also, the framework should provide an elegant way to
output custom messages. I hope I have completely missed some part of
&lt;a href="http://docs.djangoproject.com/en/dev/"&gt;this&lt;/a&gt; page. And yes, I know about
&lt;a href="http://github.com/robhudson/django-debug-toolbar"&gt;this&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UPDATE&lt;/em&gt;: There appears to be an &lt;a href="http://code.djangoproject.com/ticket/12012"&gt;effort&lt;/a&gt; to improve this situation for Django 1.2.&lt;/p&gt;

&lt;p&gt;Deployment has been covered ad nauseum elsewhere, but suffice to say Python web application have a long
way to go before they reach &lt;a href="http://www.modrails.com/"&gt;parity&lt;/a&gt; &lt;a href="http://unicorn.bogomips.org/"&gt;with&lt;/a&gt;
&lt;a href="http://rack.rubyforge.org"&gt;others&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;The End... Or Is It?&lt;/h3&gt;

&lt;p&gt;Django is certainly an acceptable framework in daily usage. Its rough edges are bound to be honed by the
raging torrent of time and use. The emphasis on pluggable "apps" is a pattern I am happy with, the
middleware infrastructure is well thought out and well executed, and most of the common use cases for a
web framework (nee &lt;a href="http://docs.djangoproject.com/en/dev/ref/contrib/admin/#ref-contrib-admin"&gt;CMS&lt;/a&gt;?)
are covered.&lt;/p&gt;

&lt;p&gt;As I said in the introductory text, this post is composed of minor annoyances that make my life a little
harder than it really ought to be. I hope to post followups to this little diatribe exploring solutions
to each of these gripes. If you have a solution that puts a smile on your face, let me know via email or
twitter.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/7YNCbi6O3D0" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2009/11/08/django-niggles.html</feedburner:origLink></entry>
 
 <entry>
   <title>Reno.rb Coding Dojo</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/sJIaiRT9qvw/reno.rb-coding-dojo.html" />
   <updated>2009-10-14T00:00:00-07:00</updated>
   <id>http://thewholedoubt.com/2009/10/14/reno.rb-coding-dojo</id>
   <content type="html">&lt;p&gt;Last night, our local Ruby programmers' group hosted its first
hackfest. My &lt;a href="http://www.rgj.com"&gt;employer&lt;/a&gt; agreed to host the
hackfest in one of our (many) conference areas. Pizza was
ordered. Code was written.&lt;/p&gt;

&lt;p&gt;I had a fantastic time working with my fellow Rubyists and
discussing others' approaches to our shared problem. I hope the other
attendees enjoyed the experience as much as I did.&lt;/p&gt;

&lt;h3&gt;It's Not Tandoori&lt;/h3&gt;

&lt;p&gt;We took a page out of the &lt;a href="http://groups.google.com/group/clerb.than"&gt;Cleveland Ruby Brigade's&lt;/a&gt;
book and chose the Randori format. These are the rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One computer, projected for the rest of the group.&lt;/li&gt;
&lt;li&gt;All coding is done on this computer by a pair of developers.&lt;/li&gt;
&lt;li&gt;The Driver (at the keyboard) has to get up every 10 minutes and let
someone else join the pair.&lt;/li&gt;
&lt;li&gt;The pair should constantly talk about what they are doing.&lt;/li&gt;
&lt;li&gt;The pair must stop if someone in the audience loses track, and
cannot continue until the member is caught up.&lt;/li&gt;
&lt;li&gt;During the red bar (failing tests), the only audience participation
is asking question. Once the test is passing, anyone can comment on
the design.&lt;/li&gt;
&lt;li&gt;Never move on to new code if someone is not happy with the design -
always refactor.&lt;/li&gt;
&lt;li&gt;TDD is required.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;On the whole, we struggled to stick to the rules. Some audience
members struggled to let the pair work, for example. TDD was a new
experience for many in the group, and our adherence became less strict
as the evening wore on.&lt;/p&gt;

&lt;p&gt;Despite struggling to follow the rules, I found the format provided a
successful framework for encouraging dialog between the group
members. With additional practice, the group should gain a great deal
of practical knowledge from our hackfests using this format.&lt;/p&gt;

&lt;h3&gt;The Kata&lt;/h3&gt;

&lt;p&gt;The Kata, again shamelessly copied from CleRB's playbook, was a Sudoku
Solver as proposed in &lt;a href="http://www.rubyquiz.com/quiz43.html"&gt;Ruby Quiz 43&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Like CleRB, we did not leave the meeting with a working solver, but
the problem was thoroughly disected and several potential strategies
were debated. After much of the group had left for the
evening, four of us were so enthralled that we stayed for nearly
another hour.&lt;/p&gt;

&lt;h3&gt;Repeat Performance&lt;/h3&gt;

&lt;p&gt;I hope to host and attend many more Randori-style hackfests with the
Reno.rb group. Everyone seemed to have a great time and the insight
gained from working with such a diverse group of coders is priceless.&lt;/p&gt;

&lt;p&gt;If you'd like to attend the next hackfest, be sure to sign up for the
&lt;a href="http://groups.google.com/group/renorb"&gt;mailing list&lt;/a&gt;. I hope to see
you there.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/sJIaiRT9qvw" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2009/10/14/reno.rb-coding-dojo.html</feedburner:origLink></entry>
 
 <entry>
   <title>How I Use Mac OS X</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/jOSRnkYmA5I/how-i-use-mac-os-x.html" />
   <updated>2009-08-28T00:00:00-07:00</updated>
   <id>http://thewholedoubt.com/2009/08/28/how-i-use-mac-os-x</id>
   <content type="html">&lt;p&gt;With the release of Mac OS X 10.6, I think it's time to write down how
I use OS X. Perhaps this will be of use to you, or a future me.&lt;/p&gt;

&lt;h3&gt;Dock&lt;/h3&gt;

&lt;p&gt;On modern widescreen monitors, vertical space is at a premium. Thus,
the Dock is on the side. I keep mine on the left for no good reason.&lt;/p&gt;

&lt;p&gt;My Dock is arranged somewhat by icon color. Strange, I know. I fiddle
with it every so often, but mostly it stays just so.&lt;/p&gt;

&lt;p&gt;My Dock, top to bottom:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; The Blues: Finder, Mail, Photoshop, WebKit Nightly, Safari,
 iChat, iTunes&lt;/li&gt;
&lt;li&gt; The Purples: Cocoa Emacs, TextMate&lt;/li&gt;
&lt;li&gt; The Browns: iCal, Bridge, NewsFire&lt;/li&gt;
&lt;li&gt; The Greys: Terminal, System Preferences, iBank&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Menubar&lt;/h3&gt;

&lt;p&gt;My Menubar is perhaps the most cluttered place on my machines. I keep
a variety of status notification-type thingies up there that inform
(sometimes) and distract (mostly).&lt;/p&gt;

&lt;p&gt;From left to right: Twitterific, SizeUp, Growl, iSync, iChat, iStat
Menus, Spaces, WiFi status, Volume, American flag (the International
prefPane), battery indicator, weekday and time.&lt;/p&gt;

&lt;h3&gt;Desktop&lt;/h3&gt;

&lt;p&gt;Clean. Clear. A grey background. I don't want distractions when I
switch apps via Exposé. Perhaps I should do something about my
Menubar, though...&lt;/p&gt;

&lt;h3&gt;Monitors&lt;/h3&gt;

&lt;p&gt;My laptop is usually, well, in my lap. It's a mid-2007 15" MacBook
Pro. Matte screen, of course. I don't often hook it up to an external
screen. I prefer to be on the couch or in bed with my laptop than at
a desk.&lt;/p&gt;

&lt;p&gt;The MacPro at work is attached to the largest monitor I could find
(28"). Still, probably not enough.&lt;/p&gt;

&lt;h3&gt;Extras&lt;/h3&gt;

&lt;p&gt;My ~/Library/Application/TextMate and ~/.emacs.d are full of gold that
I drag with me from machine to machine. I am unsure whether I could
function effectively without them.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/jOSRnkYmA5I" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2009/08/28/how-i-use-mac-os-x.html</feedburner:origLink></entry>
 
 <entry>
   <title>Lemon-Basil Eggs</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/hKPqKYH--a8/lemon-basil-eggs.html" />
   <updated>2009-08-05T00:00:00-07:00</updated>
   <id>http://thewholedoubt.com/2009/08/05/lemon-basil-eggs</id>
   <content type="html">&lt;p&gt;After making &lt;a href="http://en.wikipedia.org/wiki/Panzanella"&gt;panzanella&lt;/a&gt; for dinner
recently, I found myself with a few leftover ingredients that combine to
make my otherwise-normal breakfast a bit more interesting. I have made the
following a few times now, and find it to be a tasty diversion from The Usual(TM).&lt;/p&gt;

&lt;p&gt;Remember, fresh is always best. Don't skimp on the lemon, basil or garlic - get
the real deal. Bonus points if you find it at a local farmer's market!&lt;/p&gt;

&lt;h3&gt;The Recipe&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;* 1 tbs. butter
* 1/4 cup sweet onion, sliced thinly (I used Maui onions)
* 6 large eggs
* 1/4 cup lemon zest (about a whole lemon)
* 1/4 cup basil leaves, loosely torn (1 tbs. dried may be substituted)
* 1 clove garlic, crushed
* Salt and pepper
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Melt butter in a 12" &lt;a href="http://www.amazon.com/Calphalon-Commercial-Hard-Anodized-12-Inch-Everyday/dp/B00006FX83"&gt;everyday pan&lt;/a&gt;
or skillet on medium heat. After the butter has completely melted, add onion.
Cook until clear and &lt;em&gt;slightly&lt;/em&gt; brown - err on the side of undercooked. About
2 minutes.&lt;/p&gt;

&lt;p&gt;In a small bowl, combine eggs, lemon zest, basil, garlic, salt and pepper. Scramble
with a fork or whisk. Add to pan and stir &lt;em&gt;lightly&lt;/em&gt; (too many people abuse their
eggs). Cook until most of the moisture has evaporated, or until the eggs begin
to brown. About 5-7 minutes.&lt;/p&gt;

&lt;p&gt;Serve warm.&lt;/p&gt;

&lt;h3&gt;Notes&lt;/h3&gt;

&lt;p&gt;I like to add some &lt;a href="http://www.cholula.com"&gt;Cholula&lt;/a&gt; for a nice
contrast to the eggs' sweetness. These make a great compliment to a slice of
&lt;a href="/2009/02/03/spotted-dog.html"&gt;soda bread&lt;/a&gt; with honey
and a cup of Earl Grey.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/hKPqKYH--a8" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2009/08/05/lemon-basil-eggs.html</feedburner:origLink></entry>
 
 <entry>
   <title>Wheels</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/b3g4mkuLNvE/wheels.html" />
   <updated>2009-05-31T00:00:00-07:00</updated>
   <id>http://thewholedoubt.com/2009/05/31/wheels</id>
   <content type="html">&lt;p&gt;Several years ago, my bicycle was stolen. Thinking I had done my best to keep
it secure from the thieves of the world, I was at a loss and decided against
replacing it with more bait.&lt;/p&gt;

&lt;p&gt;After much talk and not much action, I have finally replaced that bike. Last
week, I purchased a &lt;a href="http://www.jamisbikes.com"&gt;Jamis&lt;/a&gt; 2007 Commuter 3.0 -
quite a mouthful. Being a technical type, of course I was obliged to research
every aspect of each bike that fit my criteria: internally geared, 700c wheels,
aluminum frame and mounts for a rack and fenders. Now that I have made the buy,
I would like to present the numbers and my reasoning.&lt;/p&gt;

&lt;h3&gt;Purpose&lt;/h3&gt;

&lt;p&gt;My reason for finally replacing my lost bike is one of circumstance. I now live
close enough to my &lt;a href="http://www.rgj.com"&gt;employer&lt;/a&gt; to commute to work (~6km)
and most of the places I frequent otherwise are within about that same radius.&lt;/p&gt;

&lt;p&gt;The style of bike best suited to around-town recreation and commuting is
called a &lt;a href="http://en.wikipedia.org/wiki/Hybrid_bicycle"&gt;hybrid&lt;/a&gt; - being a hybrid
between road and mountain bike styles.&lt;/p&gt;

&lt;h3&gt;Gears&lt;/h3&gt;

&lt;p&gt;There are two basic gear types on a modern road bike, &lt;a href="http://en.wikipedia.org/wiki/Hub_gear"&gt;internal&lt;/a&gt;
and &lt;a href="http://en.wikipedia.org/wiki/Derailleur_gears"&gt;derailleur&lt;/a&gt;. There are,
as with everything, trade-offs to be made between the two. The aforelinked
wiki articles explain that better than I could, but my principle
concerns were maintenance and ease-of-use. Internal gears require both vastly
less maintenance than derailleurs, but also allow shifting while stopped and
keep the chain in the most efficient alignment.&lt;/p&gt;

&lt;p&gt;The Jamis uses a Shimano Nexus Inter-8 hub with 700 x 32c wheels, 170mm crank
and a 36 tooth sprocket. This hub has a very respectable 306% overall gear ratio
and in this bike's configuration it provides a solid 16.6 gear-inches in the
first gear - plenty low for most of the hills in the area I plan to ride.&lt;/p&gt;

&lt;p&gt;As you can see, the gears are fairly evenly spaced over the available gear-inches:&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/gear_inches.jpg" alt="Gear Inches" /&gt;&lt;/p&gt;

&lt;p&gt;However, the inter-gear ratios are a bit sporadic. A better hub, such as the
top-of-the-line &lt;a href="http://en.wikipedia.org/wiki/Rohloff_Speedhub"&gt;Rohloff Speedhub&lt;/a&gt;,
would provide not only a wider overall gear ratio, but a smoother curve, here:&lt;/p&gt;

&lt;p&gt;&lt;img src="/images/intergear_ratio.jpg" alt="Inter-gear Ratio" /&gt;&lt;/p&gt;

&lt;p&gt;Of course, I could upgrade the hub or sprocket in the future, should I find
this geometry limiting.&lt;/p&gt;

&lt;h3&gt;Wheels&lt;/h3&gt;

&lt;p&gt;The knobby tires of a mountain bike increase the amount of air resistance a
bicyclist works against and really are not designed for around-town riding. It
is important to me to have a lightweight, robust wheel that suits the area I
am riding in. The best choice here is the 700c rim of a road bike; the Jamis
uses a 700 x 32c, 622mm wheel that fits my need perfectly.&lt;/p&gt;

&lt;h3&gt;Frame&lt;/h3&gt;

&lt;p&gt;Frames in my price range are made from steel alloy and aluminum. Steel is easily
repaired with a simple welder if it cracks, but aluminum offers light weight
and no rust. The weight is particularly important to me - with a rack and
pannier full of groceries, the weight of a steel frame will be noticeable.&lt;/p&gt;

&lt;h3&gt;Accessories&lt;/h3&gt;

&lt;p&gt;Not all bikes come with the tabs for fenders and racks from the factory. A
shame, in my opinion. Fenders not only have an attractive, classic look, but
also reduce the amount of mud and water the wheels spray back on the chain and
gears. This is less of an issue with internal gears, but important for chain-life
nonetheless.&lt;/p&gt;

&lt;p&gt;I plan to use this bike as more than just a commuter. I live a short distance
from groceries, clothing stores and restaurants that I would rather bike to
than drive. With a rack and pannier, I can easily accommodate any small purchases
(or leftovers!) I may find.&lt;/p&gt;

&lt;h3&gt;The Shop&lt;/h3&gt;

&lt;p&gt;Finally, I would like to say that my &lt;a href="http://en.wikipedia.org/wiki/Local_bike_shop"&gt;LBS&lt;/a&gt; -
&lt;a href="http://www.bicyclebananas.com"&gt;Bicycle Bananas&lt;/a&gt; - was helpful, courteous and
had an extremely competitive price for the Jamis. What's more, the new bike
comes with a year of free maintenance, a free water bottle and holder and 10%
off accessories for the next year. A great deal all around!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/b3g4mkuLNvE" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2009/05/31/wheels.html</feedburner:origLink></entry>
 
 <entry>
   <title>Spotted Dog</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/4kj1OFxjNk4/spotted-dog.html" />
   <updated>2009-02-03T00:00:00-08:00</updated>
   <id>http://thewholedoubt.com/2009/02/03/spotted-dog</id>
   <content type="html">&lt;p&gt;&lt;a href="http://wikipedia.org/wiki/Irish_soda_bread"&gt;Irish Soda Bread&lt;/a&gt; has become
something of a staple in my house. As with most Irish foods, the basic
ingredients are cheap and easy to find.&lt;/p&gt;

&lt;p&gt;It is important to note that &lt;em&gt;traditional&lt;/em&gt; soda bread contains only the
following: flour, baking soda, salt and sour milk. Therefore, the recipe below
is non-traditional and is more properly called a "Spotted Dog" or "Railroad
Cake." I substitute buttermilk for sour milk because of its availability, and
prefer the Saco Cultured Buttermilk powder to liquid buttermilk.&lt;/p&gt;

&lt;p&gt;These cakes are a tasty compliment to a cup of tea or a hearty stew and freeze
well.&lt;/p&gt;

&lt;h3&gt;The Recipe&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;* 4 cp. unbleached flour ("soft wheat" pastry or cake flour is best)
* 3 tsp. baking powder
* 1 tsp. baking soda
* 1/3 cp. sugar (making this a "cake," rather than a "bread")
* 1/4 tsp. cardamom
* 1/2 cp. firm margarine or butter, cut into small chunks
* 1/4 cp. caraway seeds
* 1 cp. raisins
* 1 large egg
* 1 3/4 cp. buttermilk, or equiv. powder
* 1 oz. Irish whiskey (stereotypical, I know... but it's tasty!)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Preheat oven to 375 &amp;deg;F.&lt;/p&gt;

&lt;p&gt;In a large bowl, combine flour, baking powder, baking soda, sugar and cardamom.
Add the butter and blend thoroughly in mixer or using two knives until crumbly.
Stir in caraway seeds and raisins.&lt;/p&gt;

&lt;p&gt;In a separate bowl, beat egg lightly and add buttermilk and whiskey. Stir into
dry ingredients.&lt;/p&gt;

&lt;p&gt;Turn out onto a floured board and knead until dough holds (only takes a minute
or two). Divide dough in half and shape each half into a round loaf. Place on
a cookie sheet sprayed with non-stick spray. Cut a cross into the top of each
loaf.&lt;/p&gt;

&lt;p&gt;Place in pre-heated oven and bake for 35-40 minutes or until nicely browned
on top. Tapping should yield a hollow sound.&lt;/p&gt;

&lt;p&gt;Serve warm or cold.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/4kj1OFxjNk4" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2009/02/03/spotted-dog.html</feedburner:origLink></entry>
 
 <entry>
   <title>Obligation</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/KJiaNHEKxqA/obligation.html" />
   <updated>2008-12-22T00:00:00-08:00</updated>
   <id>http://thewholedoubt.com/2008/12/22/obligation</id>
   <content type="html">&lt;p&gt;This horse has been beaten by innumerable people much better than I (the people
and the beating), but there is something unifying about our common obligations
that provides a perennial opportunity for 'me, too' consolation.&lt;/p&gt;

&lt;p&gt;Most of us have had childhoods defined more-or-less by whim, with the occasional
reign-tug by a parent. A lucky few have experienced that independence well into
their adult lives by luck, birthright or sheer force of will. The rest...&lt;/p&gt;

&lt;p&gt;The rest of us work each day at a job in which we hopefully find some
measure of entertainment - eight hours can seem a long time - out of necessity.
I know very few who would continue their lives as they are, had they come
across the means to make that decision. Those that would have already found
their fortune, I think.&lt;/p&gt;

&lt;p&gt;I keep a glamorous notion of my "life's work" floating in the back of my mind.
It is an idealistic light switch that, should I find the force or knowledge
to flip it, will change my life in an instant. I doubt any of my personal
heroes went through such an instantaneous transformation... perhaps no one has.&lt;/p&gt;

&lt;p&gt;Another day at the salt mine.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/KJiaNHEKxqA" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2008/12/22/obligation.html</feedburner:origLink></entry>
 
 <entry>
   <title>Rituals</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/Pld1Q8cXMwk/rituals.html" />
   <updated>2008-12-15T00:00:00-08:00</updated>
   <id>http://thewholedoubt.com/2008/12/15/rituals</id>
   <content type="html">&lt;p&gt;For the past three-ish days, I have been struggling with a dose of the &lt;a href="http://en.wikipedia.org/wiki/Common_cold"&gt;Common
Cold&lt;/a&gt;. As fun as these things usually
are, they provide ample time to lay in bed moaning about this-or-that and
generally contemplating one's own existence.&lt;/p&gt;

&lt;p&gt;In this happy state of affairs, I turned to a couple of go-to rituals to
assuage my anguish: &lt;a href="http://www.imdb.com/title/tt0066206/"&gt;Patton&lt;/a&gt; and
&lt;a href="http://www.yogitea.com/Pages/OurTeas/GreenTeas/GT_TripleEchinacea.html"&gt;Yogi Triple Echinacea&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For some reason, unbeknownst to me, the combination of George C. Scott roaring,
"Rommel... you magnificent bastard, &lt;em&gt;I read your book&lt;/em&gt;!" and the tranquil feeling
of green tea pulls me up by my bootstraps every time.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/Pld1Q8cXMwk" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2008/12/15/rituals.html</feedburner:origLink></entry>
 
 <entry>
   <title>Circle of Confusion</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/WjJpy_VtmMQ/circle-of-confusion.html" />
   <updated>2008-09-30T00:00:00-07:00</updated>
   <id>http://thewholedoubt.com/2008/09/30/circle-of-confusion</id>
   <content type="html">&lt;p&gt;Just in case a similarly befuddled audience turns to Google as its beacon of
hope, I thought I'd document a few points of confusion I ran into, tonight:&lt;/p&gt;

&lt;h4&gt;Skunked Trunk&lt;/h4&gt;

&lt;p&gt;In the Cisco world, where I've spent a considerable amount of time and
training, a "trunk" applies to an interface on which VLAN tagging is applied.
HP refers to this as simply a "tagged" interface.&lt;/p&gt;

&lt;p&gt;Cisco refers to a set of bonded interfaces as a "channel-group", whereas HP
refers to this same functionality as "trunking."&lt;/p&gt;

&lt;h4&gt;Tag It and Bag It&lt;/h4&gt;

&lt;p&gt;HP uses the term "untagged" and "tagged" to refer to Cisco's "mode access" and
"mode trunk," respectively. This was my original point of confusion; i.e. what
defined an "access" port and a "trunk" port on an HP switch...&lt;/p&gt;

&lt;p&gt;Finally, in Cisco-land, an interface without a VLAN association has &lt;strong&gt;&lt;em&gt;no&lt;/em&gt;&lt;/strong&gt;
configuration at all. To achieve the same thing, HP added a "no" mode at the
interface level, as well as the usual disabled VLAN mode, globally.&lt;/p&gt;

&lt;h4&gt;Put On A Happy Face&lt;/h4&gt;

&lt;p&gt;Having worked with IOS for so long, fiddling with HP's SROS tonight was a
bit of an impedance mismatch. The bottom line:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;* Cisco "mode trunk" == HP "tagged"
* Cisco "mode access" == HP "untagged"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;With that little bit of confusion resolved, go forth and bring HP and Cisco
switches into heterogeneous harmony.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/WjJpy_VtmMQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2008/09/30/circle-of-confusion.html</feedburner:origLink></entry>
 
 <entry>
   <title>Pebble</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/6TwizZ9Yyjc/pebble.html" />
   <updated>2008-09-22T00:00:00-07:00</updated>
   <id>http://thewholedoubt.com/2008/09/22/pebble</id>
   <content type="html">&lt;p&gt;During stressful periods, I like to practice a small meditation. I am by no
account a very religious person, but this practice helps to ground my
thoughts and find some measure of peace in a hectic world. For those that may
be interested, I present a short description.&lt;/p&gt;

&lt;p&gt;This method is based heavily on the teachings of
&lt;a href="http://en.wikipedia.org/wiki/Nhat_Hanh"&gt;Thầy Nhất Hạnh&lt;/a&gt;, so it may be
recognizable to those familiar with his work.&lt;/p&gt;

&lt;p&gt;Over a fresh cup of hot tea, close your eyes and begin to focus on the feeling
of the steam as you inhale. Try to use a short sentence or mantra to time each
inhalation and exhalation of breath. It is important that each breath be even.&lt;/p&gt;

&lt;p&gt;After twenty breaths, begin to imagine a small pebble, perhaps the size of a
quarter. Imagine this pebble dropping into a clear stream; perhaps a brook along
a favorite trail or the cool, smooth surface of a river on a windless, autumn
day. Imagine the pebble slowly falling into the water.&lt;/p&gt;

&lt;p&gt;As it strikes the surface, imagine the sudden weightlessness of the pebble.
Feel how the pebble slowly drifts through the current, effortless and unburdened.
The pebble is completely at the whim of the water, having shed its weight with
ripples on the surface. Watch as it floats lazily toward the bottom.&lt;/p&gt;

&lt;p&gt;As the pebble nestles itself softly in the silt, take a slow, deep breath of the
steam from the tea. Exhale. Keeping the image of the pebble, repeat the short
sentence for each inhalation and exhalation of the steam.&lt;/p&gt;

&lt;p&gt;Count twenty even breaths, using the sentence as a metronome, and begin breathing
normally.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/6TwizZ9Yyjc" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2008/09/22/pebble.html</feedburner:origLink></entry>
 
 <entry>
   <title>First Post</title>
   <link href="http://feedproxy.google.com/~r/TheWholeDoubt/~3/9Roh588fEwQ/first-post.html" />
   <updated>2008-09-17T00:00:00-07:00</updated>
   <id>http://thewholedoubt.com/2008/09/17/first-post</id>
   <content type="html">&lt;p&gt;The first moments with a new acquaintance often shape a relationship. Regardless of whether the word 'judgment' ever
enters the conversation, the freshness of each ensuing feeling form the mold that defines the experience. These are
the first words of a new dialogue between us. Allow me to show you around.&lt;/p&gt;

&lt;p&gt;As you may have noticed, this blog is authored and served with an exciting technology called &lt;a href="http://git.or.cz"&gt;Git&lt;/a&gt;.
There are enough resources on the web, that I don't feel compelled to introduce it any more. Suffice to say that the
concept of using this software for this project excites me a great deal.&lt;/p&gt;

&lt;p&gt;The principal motivation for this blog is not technical, but creative. As surprising as this may sound to those that
know me, I have a creative writing habit that (humbly) deserves a public face. This is it. Any content that finds its
way onto these pages may be of interest to others, but &lt;a href="http://www.systemisdown.net"&gt;tumblr&lt;/a&gt; and
&lt;a href="http://twitter.com/bitbckt"&gt;twitter&lt;/a&gt; have proved inappropriate mediums for.&lt;/p&gt;

&lt;p&gt;This Space has no preconceived notion of grandeur, organization or time. I don't pretend to be capable of maintaining a
fixed schedule, topical prose or large audience. The content herein is provided without warranty, but might just put a
smile on your face or spark a thought between your ears. I think that justifies its existence.&lt;/p&gt;

&lt;p&gt;With that brief introduction, I introduce my blog(git).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/TheWholeDoubt/~4/9Roh588fEwQ" height="1" width="1"/&gt;</content>
 <feedburner:origLink>http://thewholedoubt.com/2008/09/17/first-post.html</feedburner:origLink></entry>
 
 
</feed>

