<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Dinomite.net</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/" />
    <link rel="self" type="application/atom+xml" href="http://dinomite.net/atom.xml" />
    <id>tag:dinomite.net,2009-12-27://1</id>
    <updated>2010-01-17T04:03:13Z</updated>
    <subtitle>Musings without prejudice</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.32-en</generator>

<entry>
    <title>SHDH 36 Lightning Talk: Perl&apos;s Moose Object Framework</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2010/shdh-36-lightning-talk-perls-moose-object-framework/" />
    <id>tag:dinomite.net,2010://1.293</id>

    <published>2010-01-17T03:56:35Z</published>
    <updated>2010-01-17T04:03:13Z</updated>

    <summary>I am about to give a talk at Super Happy Dev House 36 on Moose, the object system for Perl. I&apos;ve put the slides for my talk up on SlideShare....</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Computers" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="computers" label="Computers" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="moose" label="Moose" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="Perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programming" label="Programming" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>I am about to give a talk at <a href="http://superhappydevhouse.org/">Super Happy Dev House</a> 36 on <a href="http://search.cpan.org/dist/Moose/lib/Moose.pm">Moose</a>, the object system for <a href="http://perl.org">Perl</a>.</p>

<p>I've put the slides for my talk up on <a href="http://www.slideshare.net/dinomite/learning-moose-lightning">SlideShare</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Using The Shell Right</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/using-the-shell-right/" />
    <id>tag:dinomite.net,2009://1.291</id>

    <published>2009-12-25T21:03:14Z</published>
    <updated>2009-12-28T05:16:11Z</updated>

    <summary>The most powerful part of Unix/Linux/BSD is the command line. In stock trim, the Unix shells are all very effective, but your time can be more effective by customizing the shell. I use bash, so I know that these things...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Computers" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="bash" label="bash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="shell" label="shell" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="unix" label="unix" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>The most powerful part of Unix/Linux/BSD is the command line.  In stock trim, the Unix shells are all very effective, but your time can be more effective by customizing the shell.  I use <code>bash</code>, so I know that these things work in that shell, but they ought to be easily transferred to others as well.</p>

<h2>Aliases</h2>

<p>A good friend of mine, <a href="http://semicomplete.com">Jordan Sissel</a>, once said that if you do something more than once, you're doing it wrong.  His conjecture applies as much to your shell as it does to your <a href="http://dinomite.net/2008/smart-bookmarks">browser</a>—computers are great at repetitive tasks, so you shouldn't bore yourself with such things.  Therein lies the most important thing you can do with your shell: make common tasks easier with aliases.</p>

<p>First things first, I use <code>ls</code> a whole lot, and, despite it's simple makeup, I often mistype the command.  I don't care about being able to easily run <a href="http://www.freebsdsoftware.org/games/sl.html">Steam Locomotive</a>, and there's no <code>s</code> or <code>l</code> command, so I replace those all with <code>ls</code>:</p>

<pre class="brush: bash; gutter: false">alias sl="ls"
alias l="ls"
alias s="ls"
alias ll="ls -l"
alias lh="ls -lh"
alias la="ls -la"</pre>
Another thing I do all the time is descend into directories, which means I need to get out of them, too:
<pre class="brush: bash; gutter: false">
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
alias ......="cd ../../../../.."
alias .......="cd ../../../../../.."
</pre>

<p>I always want extended regular expressions, and there are tons of things I don't want to search when I grep (though I use <a href="http://betterthangrep.com">ack</a> these days):</p>

<pre class="brush: bash; gutter: false">
alias grep="egrep"
alias G="grep -n --color=always --binary-file=without-match --exclude=tags \
--exclude=*-min.js --exclude-dir='.[a-zA-Z]*' --exclude-dir='external' \
--exclude-dir='blib'"
</pre>

<p>Furthermore, I often want to do recursive greps of a entire codebase, sometimes case insensitive, and like everything else, I mistype it:</p>

<pre class="brush: bash; gutter: false">
alias GR="G -r"
alias RG="GR"
alias GRI="G -r -i"
alias GIR="GRI"
alias IGR="GRI"
alias IRG="GRI"
</pre>

<p>If you do any sort of system administration, you need to grep the process list; make that easy:</p>

<pre class="brush: bash; gutter: false">
alias paux="ps aux|grep -i"
</pre>

<p>Is someone shoulder surfing?</p>

<pre class="brush: bash; gutter: false">
alias c="clear"
alias logout="clear; logout"
</pre>

<p><a href="http://asktherelic.com">Matt Behrens</a> tipped me off to this one—<code>type -a</code> tells you a lot more than the standard <code>which</code>:</p>

<pre class="brush: bash; gutter: false">
alias which='type -a'
</pre>

<p>When I'm writing in a language that requires compilation, I use cowsay to break up the output of each run, so that errors are easy to distinguish between this run and the previous one:</p>

<pre class="brush: bash; gutter: false">
alias gcc='cowsay "Hello"; gcc'
alias g++='cowsay "Hello"; g++'
alias make='cowsay "Hello"; nice -n 10 make'
alias javac='cowsay "Hello"; javac'
</pre>

<p>Machines that I SSH to often get their names as aliases; I've got a bunch more of these:</p>

<pre class="brush: bash; gutter: false">
alias claudius="ssh -Y dinomite@dinomite.net"
alias caligula="ssh -Y dinomite@caligula.dinomite.net"
</pre>

<h2>Prompt</h2>

<p>There are numerous articles about pimping out your shell's prompt, many include previous command exit codes, the time, the current energy of the LHC, and the price of the S&amp;P 500.  I have a web browser, so I don't need all that information—I only put in my prompt things that are pertinent to the task at hand.  The things that make up my prompt are a bit complicated, so I build it in stages.  First, since I work on a lot of different machines, I always have the hostname in my prompt.  To make it easy to tell which machine I'm on, I assign colors to the systems that I use most often:</p>

<pre class="brush: bash; gutter: false">
HOSTNAME=`hostname|sed -e 's/\..*$//'`
if [ $HOSTNAME = 'Caligula' ] || [ $HOSTNAME = 'Caligula.local' ]; then
    export HOST_COLOR="\[\033[1;35m\]"
fi
if [ $HOSTNAME = 'claudius' ]; then
    export HOST_COLOR="\[\033[1;36m\]"
fi
if [ $HOSTNAME = 'dev1' ]; then
    export HOST_COLOR="\[\033[1;34m\]"
fi
if [ $HOSTNAME = 'svr-dev-rw1' ]; then
    export HOST_COLOR="\[\033[1;31m\]"
fi
if [ $HOSTNAME = 'drewfus' ]; then
    export HOST_COLOR="\[\033[1;30m\]"
fi
</pre>

<p>Next, I capitalize the hostname and make the colon separating it from the path red if I'm currently acting as root via <code>sudo -s</code>.  This makes it very hard to forget that the consequences of actions are great at the current time:</p>

<pre class="brush: bash; gutter: false">
COLON_COLOR='0m'
if [ ${UID} -eq 0 ]; then
    COLON_COLOR='1;31m'
fi
if [ ${UID} -eq 0 ]; then
    HOSTNAME="`echo $HOSTNAME|tr '[a-z]' '[A-Z]'`"
fi
</pre>

<p>Finally, build the actual prompt:</p>

<pre class="brush: bash; gutter: false">
PS1=`echo -ne "$HOST_COLOR$HOSTNAME\[\033[00m\]\[\e[$COLON_COLOR\]:\[\033[33m\]\
w\[\033[00m\]\\[\033[01;33m\]\$\[\033[00m\] "`
</pre>

<p>What does this look like?<br>
<span style="color: #00ccff;">claudius</span>:<span style="color: #339966;">/usr/local$</span><br>
And when root:<br>
<span style="color: #00ccff;">CLAUDIUS</span><span style="color: #ff0000;">:</span><span style="color: #339966;">/usr/local$</span></p>

<h2>History</h2>

<p>There are a lot of complicated commands that I only use occasionally; having a big history means if I've used it once, I can easily search and find the command later.  The <code>histappend</code> options tells bash to append rather than overwrite the history file and <code>cmdhist</code> combines multi-line history commands into a single entry.  It's often useful to run the same command repeatedly, and I find myself typing <code>ls</code> whenever I stop to think; setting <code>HISTCONTROL</code> and <code>HISTIGNORE</code> keeps those actions from filling up my history.</p>

<pre class="brush: bash; gutter: false">
#"I know I've used that command before, but I can't remember the syntax"
export HISTSIZE=50000
shopt -s histappend
shopt -s cmdhist
HISTCONTROL=ignoredups
export HISTIGNORE="&:ls:ll:la:lh:sl"
export HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S - '
</pre>

<h2>Environment Variables</h2>

<p>A lot of linuxes come with lackluster program defaults (emacs, more, etc.); you can get better ones by setting environment variables:</p>

<pre class="brush: bash; gutter: false">
export PAGER=/usr/bin/less
export EDITOR='vim -X'
export BROWSER='firefox'
export CC=/usr/bin/gcc
</pre>

<p>Since we are in the 21st century, I use Unicode:</p>

<pre class="brush: bash; gutter: false">
export LC_ALL="en_US.UTF-8"
export LANGUAGE="en_US.UTF-8"
</pre>

<h2>Functions</h2>

<p>I use Perl a lot, and have to deal with keeping modules the same across different systems; this function makes getting the installed version of a module easy:</p>

<pre class="brush: bash; gutter: false">
function perlmodver {
    perl -M$1 -e 'print "Version " . $ARGV[0]->VERSION . " of " . $ARGV[0] . " is installed.\n"' $1
}
</pre>

<p>The thing I use <code>awk</code> for most often is '{print $n}', so I wrote <a href="http://dinomite.net/2009/fawk/"><code>fawk</code></a> which you give a number and it des just that:</p>

<pre class="brush: bash; gutter: false">
function fawk {
    first="awk '{print "
    last="}'"
    cmd="${first}\$${1}${last}"
    eval $cmd
}
</pre>

<p><code>awk</code> also does math:</p>

<pre class="brush: bash; gutter: false">
function calc {
    awk "BEGIN{ print $* }";
}
</pre>

<h2>Tying It All Together</h2>

<p>To keep things organized, I separate the above mentioned things into a few different files, so my <code>.bashrc</code> brings them all together.  Additionally, I check for a <code>.bash_local</code> file, which isn't <a href="http://dinomite.net/2008/keeping-your-home-directory-in-subversion/">checked into subversion</a>, so that I can have machine-specific alterations to my shell environment.</p>

<pre class="brush: bash; gutter: false">
# .bashrc
source ~/.bash_global
source ~/.bash_aliases
source ~/.bash_functions
if [ -f ~/.bash_local ]
then
    source ~/.bash_local
fi
</pre>
]]>
        

    </content>
</entry>

<entry>
    <title>Screen Presets</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/screen-presets/" />
    <id>tag:mt.dinomite.net,2009://1.290</id>

    <published>2009-11-18T06:40:11Z</published>
    <updated>2009-12-27T02:57:50Z</updated>

    <summary>Ubuntu&apos;s Screen Profiles package taught a lot of folks about how GNU Screen can be so much more than a fancy replacement for nohup(1). Since GNU Screen&apos;s name is difficult enough to search for, they have thankfully renamed the package...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Computers" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Sysadmin" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="computers" label="Computers" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programming" label="Programming" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="screen" label="screen" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>Ubuntu's <a href="https://wiki.ubuntu.com/ScreenProfiles">Screen Profiles</a> package taught a lot of folks about how GNU Screen can be so much more than a fancy replacement for <a href="http://en.wikipedia.org/wiki/Nohup">nohup(1)</a>.  Since GNU Screen's name is difficult enough to search for, they have thankfully renamed the package to <a href="https://launchpad.net/byobu">Byobu</a>.  Byobu provides users with a whole bunch of pre-defined aliases to make working within Screen easier, and make more sense by defining a useful status line.  There's more that can be done with screen, the most notable in my view is creating predefined working environments that make getting yourself up and running when logging into a system easy.</p>

<p>I've got a number of different things that I commonly do where I want a number of different screen windows: running the deamons on our development server, connecting to the DB servers in each of the different environments, and developing an experimental project.  For each of these applications, I have created a screenrc that I keep in my <code>.screen/</code> directory; the basic format is this:</p>

<pre class="brush: bash;">
source $HOME/.screenrc

sessionname daemons
chdir /code/htdocs/dstephens/trunk/webroot/daemons

screen -t 'CONTROL' bash
screen -t 'aggregator' bash
screen -t 'autoEventWatcher' bash
screen -t 'emailReady' bash
screen -t 'sfUpload' bash
screen -t 'jmsCommandExecutor' bash
screen -t 'bouncedEmail' bash
select 0
</pre>

<p>First, I source my global <code>.screenrc</code>, which includes setting a statusline, larger scrollback buffer, multiuser and utf8.  Next, giving the session a name makes it easier for me to figure out which one to reattach to later. Finally, I create and name all of the windows that I want to have in my session, in this case, one for each of the daemons that I want to be able to run.</p>

<p>To run a specific preset, just invoke screen with the <code>-c</code> option: <code>screen -c ~/.screen/daemons</code>.  Easy.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Bruce Schneier plugin for Hudson</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/bruce-schneier-plugin-for-hudson/" />
    <id>tag:mt.dinomite.net,2009://1.289</id>

    <published>2009-10-29T05:40:57Z</published>
    <updated>2009-12-27T18:18:02Z</updated>

    <summary>With the help of Mike Rooney, I created a plugin for Hudson that shows quotes from Bruce Schneier Facts: the BruceSchneier plugin....</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Computers" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="bruceschneier" label="bruceschneier" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="code" label="code" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programming" label="Programming" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>With the help of <a href="http://mrooney.blogspot.com/">Mike Rooney</a>, I created a plugin for <a href="http://hudson-ci.org/">Hudson</a> that shows quotes from <a href="http://www.schneierfacts.com/">Bruce Schneier Facts</a>: the <a href="http://wiki.hudson-ci.org/display/HUDSON/BruceSchneier+Plugin">BruceSchneier plugin</a>.</p>

<p><img src="http://dinomite.net/2009/10/BruceSchneierPlugin-600x419.png" alt="BruceSchneierPlugin" title="BruceSchneierPlugin" width="600" height="419" class="aligncenter size-medium wp-image-928" /></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Skittles Vodka</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/skittles-vodka/" />
    <id>tag:mt.dinomite.net,2009://1.288</id>

    <published>2009-09-29T06:13:58Z</published>
    <updated>2009-12-28T23:52:51Z</updated>

    <summary>When walking through Ikea one day, I spotted the perfect bottles in which to make Skittles vodka. Starting with these, here is the process for making this infusion. Materials 1300 grams of Skittles [$18 at Costco] 4 liters of vodka...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Cooking" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>When walking through Ikea one day, I spotted the perfect bottles in which to make Skittles vodka.  Starting with these, here is the process for making this infusion.
<a href="http://www.flickr.com/photos/dinomite/3964554487/" class="tt-flickr tt-flickr-Small" title="Skittles vodka materials"><img class="alignright" src="http://farm3.static.flickr.com/2465/3964554487_50b848e127_m.jpg" alt="Skittles vodka materials" width="240" height="122" /></a> </p>

<h3>Materials</h3>

<ul>
    <li>1300 grams of Skittles [$18 at Costco]</li>
    <li>4 liters of vodka [$60 at Costco]</li>
    <li>Five 1 liter bottles [$25 at Ikea]</li>
</ul>

<h3>Tools</h3>

<ul>
    <li>Paper towels</li>
    <li>Colander</li>
    <li>Funnel</li>
    <li>1 liter bowl</li>
    <li>5 bowls</li>
</ul>

<h2>Sorting</h2>

<p><a href="http://www.flickr.com/photos/dinomite/3964553495/" class="tt-flickr tt-flickr-Small" title="Sorting Skittles"><img class="alignleft" src="http://farm3.static.flickr.com/2585/3964553495_544ab42731_m.jpg" alt="Sorting Skittles" width="240" height="158" /></a>
The first tedious part of this process is sorting the Skittles into their various colors (ostensibly, flavors).  I sat down in front of the <a href="http://en.wikipedia.org/wiki/2009_Singapore_Grand_Prix">Singapore Grand Prix</a> with six plates: one for each of the five Skittles colors and an extra on which to dump packages for sorting.  I bough a box of 36 normal-size (61 gram) packages of Skittles from Costco and ended up using 22 of the packs.  To sort them, I poured a few packages onto one of the plates and separated the candies onto the five others.</p>

<p>After consulting <a href="http://www.instructables.com/id/Shoot-the-Rainbow-Skittles-Vodka/">other</a> who had <a href="http://mixthatdrink.com/skittles-vodka-tutorial/">made Skittles vodka</a>, I settled on needing 240 Skittles per liter of vodka.</p>

<p><br></p>

<h2>Assembly</h2>

<p>Now comes the easy part.  To get the Skittles into my narrow-mouthed bottles, I made a simple paper funnel and carefully poured the candies in.  Easy.  Then, I just used my liquid funnel to fill each bottle with vodka.</p>

<p><a href="http://www.flickr.com/photos/dinomite/3964551461/" class="tt-flickr tt-flickr-Small" title="The assembled Skittles vodka team"><img class="alignright" src="http://farm3.static.flickr.com/2536/3964551461_2316f38122_m.jpg" alt="The assembled Skittles vodka team" width="240" height="172" /></a> </p>

<h2>Shake and Wait</h2>

<p>After each of the containers was filled, I gave them a quick shake; within a few hours, much of the candies had dissolved.  I left them overnight, and by the next day all that was left was a small bed of white pebbles in the bottom of each bottle.</p>

<h2>Filter</h2>

<p>Finally, the filtration.  This step is the most difficult, because it requires a lot of patience even though you're almost done!</p>

<p><a href="http://www.flickr.com/photos/dinomite/3964546733/" class="tt-flickr tt-flickr-Small" title="Completed Skittles vodka"><img class="alignleft" src="http://farm3.static.flickr.com/2473/3964546733_0ab8c7a1db_m.jpg" alt="Completed Skittles vodka" width="240" height="128" /></a></p>

<p>A lot of the mass of Skittles is binder—corn starch and the like.  It leaves a significant amount of scum onthe top of your Skittles vodka mix.  To strain it off, I started by using standard office coffee filters, but those clogged very quickly.  I switched to normal paper towels, which made filtering take about 5 minutes per bottle.  After filtering, re-bottle and enjoy your super-sweet vodka rainbow!</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Internet Birthday</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/internet-birthday/" />
    <id>tag:mt.dinomite.net,2009://1.287</id>

    <published>2009-07-10T06:20:22Z</published>
    <updated>2009-12-27T02:57:50Z</updated>

    <summary>My Internet Birthday recently passed. What is an Internet Birthday, you ask? Why it&apos;s the arbitrary date that I&apos;ve chosen to give when a website wants to know my birthday. You see, gentle reader, the vast majority of websites that...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Computers" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="internet" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="computers" label="Computers" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="theinternets" label="The Internets" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>My Internet Birthday recently passed.  What is an Internet Birthday, you ask?  Why it's the arbitrary date that I've chosen to give when a website wants to know my birthday.  You see, gentle reader, the vast majority of websites that ask for your birthday have no real reason to have it; most of the time it will simply be used for marketing.  Whether or not you really care about that relatively innocuous usage, the real danger is that a lot of legitimate, organizations such as financial institutions, hospitals, and governments, use your birthday as an identifying piece of information—as though providing such a date is a verification of the person speaking or filling out a form.</p>

<p>Because of this abuse of a fairly public piece of information for the purpose of security, it is reasonable to want to keep your date of birth somewhat secret—or at least refrain from giving it to everyone who asks.  Unfortunately, many services require you to provide a date of birth when signing up; some will give you a bonus if you give them your birthday.  So as to not miss out on these services, I simply came up with a date that I use as my birthday when asked on the internet.  I no longer hesitate to provide the information asked.  Why not use a random date every time you sign up?  Sometimes, particularly if you forget your password, a website will want you to enter your birthday at a later time to verify who you are.  By choosing one date and sticking to it, you can always give the correct information.</p>

<h2>Choosing an Internet Birthday</h2>

<p>To come up with an internet birthday, simply choose a date!  Afraid you won't remember?  Understandable.  Choose something that makes sense to you: the first or last day of the month you were born, the day you were born modulo 12 to get a new month, or take <a href="http://cheshirecatalyst.com/birthday.html">Cheshire Catalyst's suggestion</a> and use the start or end date for your astrological symbol.  As for the year, in most cases keeping the same year as your actual birth is the easiest and effective enough for our purpose.  If you're really paranoid, then just round to the nearest half-decade</p>

<h2>Internet Family</h2>

<p>Cheshire has updated his essay to suggest that an internet "Mother's Maiden Name" is also beneficial—and I agree.  I have an entire family based upon characters from a movie that I use for my financial accounts.  If you're serious about security, or you just can't remember the surnames names of your recent ancestors, then an Internet family based upon your favorite (or not so favorite) story is a great route to take.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>eBay Sucks at Domains</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/ebay-sucks-at-domains/" />
    <id>tag:mt.dinomite.net,2009://1.286</id>

    <published>2009-05-04T00:58:22Z</published>
    <updated>2009-12-27T02:57:49Z</updated>

    <summary>If you go to http://ebay.com you will briefly see a naked text page with the following text, broken sentence structure and all: The page you are looking for has been moved. If this page does not redirect you in 10...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Computers" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Web" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="computers" label="Computers" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sysadmin" label="Sysadmin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="web" label="Web" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>If you go to <a href="http://ebay.com">http://ebay.com</a> you will briefly see a naked text page with the following text, broken sentence structure and all:</p>

<pre>
The page you are looking for has been moved. If this page does not redirect you in 10 Secs,lease click here.
</pre>

<p>It will only be visible for a fleeting moment, because your browser will be redirected to <a href="http://www.ebay.com">www.ebay.com</a>.  The world's flea market fails the <a href="http://no-www.org/faq.php">no-www</a> test in the worst way - if you try to go to their website without a www subdomain, your are sent to said subdomain.  eBay fails in a special way; rather than simply using an Apache RewriteRule:</p>

<pre class="brush: bash;">
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
</pre>

<p>they send a web page containing an HTML <a href="http://en.wikipedia.org/wiki/Meta_refresh">meta refresh</a> to send you to <a href="http://www.ebay.com">www.ebay.com</a>.  This is a clumsy and slow way to perform a redirect, particularly for the front-page of your website.  If you are a website administrator or webmaster, please, don't be as hackish as eBay - embrace <a href="http://no-www.org/faq.php">Class A no-www compliance</a> or at least redirect using <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection">HTTP status codes</a> rather than browser redirection.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Zombie Defense Station</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/zombie-defense-station/" />
    <id>tag:mt.dinomite.net,2009://1.285</id>

    <published>2009-04-19T16:48:53Z</published>
    <updated>2009-12-27T02:57:49Z</updated>

    <summary> I have finally completed my Zombie Defense Station.  Inspired by this post that made it around the internet a few months ago, my kit contains a Sig P226 handgun, a Franchi SPAS-12 shotgun (as seen in  Jurassic Park), and...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Project" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="tutorial" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="guns" label="guns" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tutorial" label="tutorial" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="zombies" label="zombies" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p><a class="tt-flickr tt-flickr-Medium" href="http://www.flickr.com/photos/dinomite/3455135080/in/set-72157616252174270/"><img class="alignright" src="http://farm4.static.flickr.com/3319/3455135080_1a853a6011.jpg" alt="Completed Zombie Defense Station" width="500" height="233" /></a></p>

<p>I have finally completed my Zombie Defense Station.  Inspired by <a title="Craftster Zombie Defense Station" href="http://www.craftster.org/forum/index.php?topic=202668.0">this post</a> that made it around the internet a few months ago, my kit contains a <a title="Sig P226 on Wikipedia" href="http://en.wikipedia.org/wiki/SIG_P226">Sig P226</a> handgun, a <a title="Franchi SPAS-12 on Wikipedia" href="http://en.wikipedia.org/wiki/Franchi_SPAS-12">Franchi SPAS-12</a> shotgun (as seen in  <a title="Jurrasic Park on IMFDB" href="http://www.imfdb.org/index.php?title=Jurassic_Park#Franchi_SPAS-12">Jurassic Park</a>), and a<a title="Gerber Gator Machete" href="http://www.amazon.com/Gerber-22-41576-Gator-Machete-Sheath/dp/B000Q9BBZI"> Gerber Gator</a> machete, which looks unnecessarily evil.</p>

<p>The construction was pretty easy and consists of the following parts</p>

<ul>
    <li>1/4 inch beech plywood</li>
    <li>1x4 pine plank</li>
    <li>1/2 inch pine square</li>
    <li>1/2 inch dowel</li>
    <li>3/16 inch thick plexiglass</li>
    <li>Stencils from <a href="http://www.stencilease.com/">StencilEase</a></li>
    <li>Airsoft guns</li>
    <li>Gerber Gator machete</li>
</ul>

<p><a class="tt-flickr tt-flickr-Small" href="http://www.flickr.com/photos/dinomite/3394065314/in/set-72157616252174270/"><img class="alignright" src="http://farm4.static.flickr.com/3436/3394065314_77242815ae_m.jpg" alt="15 inch machete saw" width="240" height="160" /></a></p>

<p>The first thing I did was get the airsoft guns and the machete, so that I could decide how big to make the enclosure.  I bought the SPAS-12 online at the suggestion of my roommate when I said that I just wanted an awesome looking shotgun.  We then trekked to various stores in the area in search of machetes.  After turning up empty handed at OSH, Home Depot, and Target we hit the jackpot in Sports Authority's camping section.  For some reason, Gerber makes, and Sports Authority carries, this <a href="http://www.flickr.com/photos/dinomite/3394065314/">15 inch, saw-back machete</a>.  While I think it is absolutely unnecessary for camping purposes, the Gerber Gator is a great zombie knife.</p>

<p>I settled on 34 inches long and 15 inches high, since that fit the SPAS-12 nicely with room for the machete underneath.  I cut the box perimeter, screwed it square, and then screwed the back of the box to that.  I affixed some 3.5 inch long pieces of 1/2 inch pine square to the corners, upon which the plexiglass would later rest.  To mount the guns, I used some 2 and 3 inch long pieces of 1/2 in dowel that are screwed in place from the back of the box.  The machete is held in place by some small metal hooks that I got in the Home Depot hardware aisle.</p>

<p><a class="tt-flickr tt-flickr-Small" href="http://www.flickr.com/photos/dinomite/3406616916/in/set-72157616252174270/"><img class="alignright" src="http://farm4.static.flickr.com/3574/3406616916_4a23319e58_m.jpg" alt="15 inch machete saw" width="240" height="116" /></a></p>

<p>After the box was all assembled, I tossed a coat of gray paint on the inside, and bright red around the perimeter.  I cut a piece of 3/16 plexiglass with a razor knife (doesn't work very well - is there a better way?) and stenciled it using the stick-on stencils I orderd from <a href="http://www.stencilease.com/">StencilEase</a>.  To put the plexiglass into place, I used <a href="http://www.amazon.com/3M-Scotch-Removable-Mounting-Squares/dp/B001B0D46K/ref=sr_1_3?ie=UTF8&amp;s=office-products&amp;qid=1240125975&amp;sr=8-3">3m Removable Mounting Squares</a>.</p>

<p>My house is now safe from zombie attacks.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>What is CrossFit?</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/what-is-crossfit/" />
    <id>tag:mt.dinomite.net,2009://1.284</id>

    <published>2009-04-17T07:15:24Z</published>
    <updated>2009-12-27T02:57:48Z</updated>

    <summary>Distilled down to the simplest terms, CrossFit workouts are about intensity, variability, and functionality. The values of CrossFit&apos;s World Class Fitness, are often summarized in 100 words: Eat meat and vegetables, nuts and seeds, some fruit, little starch and no...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="CrossFit" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Fitness" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="crossfit" label="CrossFit" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="exercise" label="exercise" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>Distilled down to the simplest terms, <a href="http://crossfit.com">CrossFit</a> workouts are about <strong>intensity, variability, and functionality</strong>.</p>

<p>The values of CrossFit's World Class Fitness, are often <a href="http://www.crossfit.com/cf-info/start-how.html">summarized in 100 words</a>:</p>

<blockquote>Eat meat and vegetables, nuts and seeds, some fruit, little starch and no sugar. Keep intake to levels that will support exercise but not body fat. Practice and train major lifts: Deadlift, clean, squat, presses, C&amp;J, and snatch. Similarly, master the basics of gymnastics: pull-ups, dips, rope climb, push-ups, sit-ups, presses to handstand, pirouettes, flips, splits, and holds. Bike, run, swim, row, etc. hard and fast. Five or six days per week mix these elements in as many combinations and patterns as creativity will allow. Routine is the enemy. Keep workouts short and intense. Regularly learn and play new sports.</blockquote>

<p>If all that is too simplified, let me elaborate.  CrossFit is a workout regiment that embodies the above mentioned values.  Unlike so many "gym rats" who think in disparate terms of cardiovascular and strength training, CrossFit does away with these distinctions for a methodology that is driven by results.  Personal trainers at <a href="http://www.urbandictionary.com/define.php?term=Globo%20Gym">Globo Gym</a> encourage long cardio stints of an hour or more "balanced" with similarly long sessions of strength training using <a href="http://www.nautilus.com">Nautilus</a> machines.  In contrast, CrossFit workouts are mixed modal functional movements, performed at high intensity.</p>

<p><strong>What is the difference and what make CrossFit better?</strong></p>

<p>First, the focus on functional movements rather than isolated muscles.  CrossFit not only trains your entire body to actually be used, but trains you in how to use your body to it's fullest extent.  Instead of a leg press machine, shoulder press machine, and lat pull-down, CrossFit workouts involve similar exercises, the squat, push press, and pull-up, either with bodyweight or barbells.  Performing those latter exercises, which are done outside of the support of weight machines, means that technique, not just raw strength, is an important factor.  Your body has to employ numerous minor muscles in concert to complete the moves safely and effectively.  Ask yourself: do you have a machine guiding you to lift that dresser when helping a friend move?</p>

<p>Variety is a key part of CrossFit.  The Workout Of the Day repeats on the scale of months and years - you can do CrossFit for quite some time before you repeat any single workout, and at the rate we're going it'll be a long time before any 3 days have the same prescription.  This unique aspect of CrossFit is vitally important not only because keeps you from getting bored with exercise but it also keeps your body in limbo - there's know way to prepare for the next move when it's always different.  This variety increases your ability to function optimally in the face of any task that is thrown at you, be it a new sport or a true emergency.  Greg Glassman, the founder of CrossFit describes the importance of variability thusly:</p>

<blockquote>We don't have the agility of gymnasts, the power of a weightlifter, or the endurance of a marathoner but we have more agility, power, and endurance than any gymnast, weightlifter or marathoner. We do your stuff almost as good as you, you can’t do our stuff at all and we do stuff neither of us does way better than you can.</blockquote>

<p>What he's saying that CrossFit athletes may not have the same ultimate performance in a single domain that specialists athletes have, we have a much broader portfolio of abilities. While the average marathon runner may be able to keep that sustained effort for hours, but they can't jump more than 18 inches or lift their body weight off the ground. The weightlifter may be able to toss twice his weight overhead, but would suffer if asked to run a mile or do 20 pull-ups.</p>

<p>The intensity of CrossFit is, to me, the central factor that differentiates it from the way most people exercise.  At the Globo Gym, you'll see folks do their cardio workout, perhaps running on the treadmill, spinning on a stationary bike, or pedaling on a elliptical machine for 30 to 45 minutes.  Then, they'll amble around the weight machines for an hour or more, doing 3 sets of 10 with a minute of rest in between; guys who are trying to "get big" will split the weight session between "lats &amp; back" on day, "chest &amp; biceps" another, and "legs" the third.  It all seems very organized, takes a lot of dedication and time.</p>

<p>In contrast, CrossFit workouts are usually 20-30 minutes and the longest ones take 45 to complete.  That's it.  What do we do in that time?  A whole lot more work than most people do in their entire 2-3 hour gym sessions, thanks to the ever present intensity.  Even in CrossFit strength workouts like <strong>DT</strong> (3 rounds for time of <a href="http://www.crossfit.com/cf-info/faq.html#WOD1">155lbs. deadlift x 12, clean x 12, jerk x 6</a>), there's a note that the workout is "for time" — no ambling around between sets in this workout.  The reason this intensity is important is because is teaches you how to use the maximum extent of your body; to actually employ your muscles to their fullest.  Intensity also plays into another big question that people have about CrossFit:</p>

<p><strong>What about cardio?</strong></p>

<p>Ahh, yes, what about cardio?  Surely because we never do any long sessions of running, CrossFitters can't have any endurance or stamina.  Wrong.  The widely touted measure of aerobic stamina and endurance is VO2 max, the amount of oxygen that your body can consume during sustained aerobic exercise — medium intensity stuff like distance running or biking.  There's a misconception that long bouts of aerobic exercise are what is required to build stamina and endurance, but this simply isn't true.  In the same way muscles must be taken beyond their limits and torn to stimulate growth, your ability to process oxygen must be pushed out of equilibrium in order to increase your capacity to process it (see <a href="http://journal.crossfit.com/2004/06/what-about-cardio-by-greg-glas.tpl">CrossFit Journal issue 22</a>; ask me if you're really interested).  Running at some level below your aerobic threshold (i.e. less than 100% VO2 max) will do little if anything to increase this ability.  To push it out of equilibrium and induce growth you have to workout at 200% or more of your aerobic ability.  In metabolic terms, you need to work the high-intensity phosphagenic and glycolytic pathways in order to improve the medium-low intensity aerobic pathway.</p>

<p><strong>The Bottom Line</strong></p>

<p>To really get CrossFi, you must understand <a href="http://library.crossfit.com/free/pdf/CFJ-trial.pdf">what fitness really is</a> (PDF) in the CrossFit view.  First, CrossFit sees fitness as including ten metrics: cardiovascular endurance, stamina, strength, flexibility, power, coordination, agility, balance, and accuracy.  Second is the ability to not just perform well at certain measures of fitness, but to perform admirably at any task that is thrown at you.  The CrossFit games, which determines who is the fittest CrossFitter each year, embraces this — the competitors don't know what the competition will entail until the day of the competition.  Rounding out CrossFit's standard for being "fit" is competency in each of the three metabolic pathways: phosphagenic, glycolytic, and oxidative.  Fulfilling CrossFit's standard means that one has total fitness, fitness across the broadest range of measures and challenges.</p>

<p>If you're trying to "get big", then by all means, stick to a rotating schedule of isolating muscles, hit the protein powder hard, skip the cardio, and enjoy the ditzy chicks you can pick up at the bar.</p>

<p>If you dig that ematiated Ethiopian look, like to run marathons, and want to pick up the vegan chick from Whole Foods to have some very boney sex, then keep at those super cardio sessions!</p>

<p>If you're truly interested in challenging yourself, being in the best shape possible, and improving your abilities across numerous domains, then <a href="http://www.crossfit.com/cf-affiliates/">find a local CrossFit gym</a>, and get in their boot camp.  You'll thank me later.</p>

<p><strong>Edit 2008-04-24</strong>: CrossFit Radio talked about <a href="http://journal.crossfit.com/2009/04/crossfit-radio-weekend-edition-7-090419.tpl">starting CrossFit last weekend</a>.  Also, <a href="http://www.crossfitbrandx.com">CrossFit Brand X</a> does scaled versions of the <a href="http://crossfit.com">main site</a> WODs <a href="http://www.crossfitbrandx.com/index.php/forums/viewforum/16/">on their forum</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>I&apos;m on the Genius Engineering blog</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/im-on/" />
    <id>tag:mt.dinomite.net,2009://1.283</id>

    <published>2009-04-10T17:35:42Z</published>
    <updated>2009-12-28T23:53:06Z</updated>

    <summary>I was interviewed for the Genius.com Engineering Blog today....</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Computers" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="geniuscom" label="genius.com" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p><a href="http://eng.genius.com/blog/2009/04/10/team-focus-drew-stephens/">I was interviewed</a> for the <a href="http://eng.genius.com/blog">Genius.com Engineering Blog</a> today.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Crontab Files</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/crontab-files/" />
    <id>tag:mt.dinomite.net,2009://1.282</id>

    <published>2009-04-09T06:20:47Z</published>
    <updated>2009-12-28T23:53:24Z</updated>

    <summary>Crontabs are incredibly useful devices - the easiest way to regularly run a command at a specified time. The unfortunate part is that, as an operating system level function, their content is easily lost if you aren&apos;t careful about backups,...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Computers" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="linux" label="Linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sysadmin" label="Sysadmin" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>Crontabs are incredibly useful devices - the easiest way to regularly run a command at a specified time.  The unfortunate part is that, as an operating system level function, their content is easily lost if you aren't careful about backups, or haphazardly reinstall your Unix system.  A simple trick I learned is to keep your crontab entries in a file, say, <code>.crontab</code> in your home directory, rather than just editing your crontab directly (i.e. <code>crontab -e</code>).  That way, you can be sure that all your important data, including your own user crontab, is in your home directory, and that's the one important thing to backup.  To install a new crontab, simply run <code>crontab ~/.crontab</code> after having edited that file and your cron system will install your changes.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Caligula&apos;s Giant Ship</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/caligulas-giant-ship/" />
    <id>tag:mt.dinomite.net,2009://1.281</id>

    <published>2009-04-01T06:11:13Z</published>
    <updated>2009-12-27T02:57:47Z</updated>

    <summary>Like any good geek, I have a naming system for my computers and associated devices. Real systems &#x2014; which I define as those that run SSH &#x2014; are named after Roman Emperors; things that are computer-like but don&apos;t run SSH...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Computers" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="history" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="computers" label="Computers" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="history" label="history" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>Like any good <a href="http://www.geekcode.com">geek</a>, I have a naming system for my computers and associated devices.  Real systems &#x2014; which I define as those that run SSH &#x2014; are named after <a href="http://en.wikipedia.org/wiki/List_of_Roman_Emperors">Roman Emperors</a>; things that are computer-like but don't run SSH are named after <a href="http://en.wikipedia.org/wiki/List_of_Roman_generals">Roman generals</a>.</p>

<p>I have also taken to naming each of the disks attached to a machine after a land mass somehow connected to the Emperor it is named after.  My main desktop is <a href="http://en.wikipedia.org/wiki/Caligula">Caligula</a> with the disks <a href="http://en.wikipedia.org/wiki/Capri">Capri</a>, where Caligula lived under the care of <a href="http://en.wikipedia.org/wiki/Tiberius">Tiberius</a>, <a href="http://en.wikipedia.org/wiki/Mauretania">Mauretania</a>, which Tiberius annexed, and <a href="http://en.wikipedia.org/wiki/Germania">Germania</a>, where Caligula accompanied his father on military campaigns as a young child.  When I got a USB drive for keeping off-site backups, I needed to name it and though ships of the <a href="http://en.wikipedia.org/wiki/Roman_Navy">Roman Navy</a> would be appropriate.  What a pleasant surprise to find that Caligula had built a ship to transport the obelisk in <a href="http://en.wikipedia.org/wiki/Saint_Peter%27s_Square">St. Peter's Square</a> which when it was found in the 1950's was named <a href="http://en.wikipedia.org/wiki/Caligula%27s_Giant_Ship">Caligula's "Giant Ship"</a>.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>DIY R-Strap</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/diy-r-strap/" />
    <id>tag:mt.dinomite.net,2009://1.280</id>

    <published>2009-03-16T06:40:25Z</published>
    <updated>2009-12-27T02:57:47Z</updated>

    <summary>After seeing the BlackRapid R-Strap mentioned on Photojojo I knew that I wanted one for greater convenience when walking about with my camera. I hate neck straps because they get in the way when you aren&apos;t using them and make...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="photography" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="photography" label="photography" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tutorial" label="tutorial" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>After seeing the <a href="http://www.blackrapid.com/">BlackRapid R-Strap</a> mentioned on <a href="http://photojojo.com/content/buy-this/diy-camera-r-strap/">Photojojo</a> I knew that I wanted one for greater convenience when walking about with my camera.  I hate neck straps because they get in the way when you aren't using them and make you look like a fat tourist when you are.  I might as well break out the khaki shorts and Hawaiian shirt.  Aside from the not-exactly-cheap $50 price tag, I figured that and R-Strap was something I should DIY.</p>

<p>My version of the R-Strap is a simple affair, consisting of the plate off my Manfrotto ballhead and some gear from the climbing section of REI.  To begin with, I got myself a <a href="http://www.rei.com/product/722354">2 foot long, 18mm runner</a> which I wear like a bandolier.  To this, I attach a simple <a href="http://www.rei.com/product/782255">locking carabiner</a> - I just chose the smallest and cheapest one.  I thought about using chintzy keychain carabiners, but then realized I'll be hangning thousands of dollars of gear off of it and went with the slightly more expensive real thing.</p>

<p>Finally, I tied a small loop of <a href="http://www.rei.com/product/784296">nylon cord</a> to the D-ring on my tripod plate, to which I clip the carabiner.  If your tripod plate has a large enough ring, you could clip directly to it.</p>

<p><a href="http://www.flickr.com/photos/dinomite/3355077177/"><img src="http://farm4.static.flickr.com/3474/3355077177_bbc6355987.jpg?v=0" alt="2 foot 18mm Black Diamond sling" class="alignright" /></a></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Track Day Diary</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/track-day-diary/" />
    <id>tag:mt.dinomite.net,2009://1.279</id>

    <published>2009-03-10T05:30:25Z</published>
    <updated>2009-12-28T23:54:24Z</updated>

    <summary>If you&apos;re into cars, a weekend at the racetrack is as good as it gets. The local chapters of car clubs (BMW CCA, PCA, FCA, SCCA etc.) rent a track for the weekend, organize instructors from member volunteers, and allow...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Cars" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="bmw" label="bmw" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cars" label="Cars" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>If you're into cars, a weekend at the racetrack is as good as it gets.  The local chapters of car clubs (<a href="http://bmwcca.org">BMW CCA</a>, <a href="http://pca.org">PCA</a>, <a href="http://ferrariclubofamerica.org">FCA</a>, <a href="http://scca.org">SCCA</a> etc.) rent a track for the weekend, organize instructors from member volunteers, and allow you to Drive Like You Mean It on a real racetrack while teaching you to be a much better driver.  Track weekends are variously called Driver's Schools, High Performance Driver Education (HPDE), or simply track days.  The weekends aren't cheap &#x2014; the <a href="http://nccbmwcca.org">NCC BMW CCA</a> I used to drive with charges $430 and the <a href="http://ggcbmwcca.org">GGC BMW CCA</a> $525 &#x2014; but are worth every penny.  Your first time can be quite daunting, since it's hard to know what to expect or how to prepare.  Hopefully this overview of my most recent day with the Golden Gate Chapter at <a href="http://en.wikipedia.org/wiki/Infineon_Raceway">Infineon Raceway</a> will be helpful.</p>

<h2>Inspection</h2>

<p>Two to three weeks prior to the track day, I get my car inspected by a mechanic I trust.  They usually charge an hour of labor, but if you're lucky you can get it thrown in with some maintenance you require &#x2014; ask other club members.  All clubs I know of require an inspection to ensure that your car is in tip top shape for being pushed to the limit.  Common to all such inspections is that you have sufficient brake pad material left (more than half the pad) and that the brake fluid has been changed within the past six months.  Other than those two specifics, most cars in good condition won't need anything special done to work on the track, especially your first time.</p>

<h2>Packing</h2>

<p>On the Thursday before my track weekend, I start packing.  I have a track/autocross box that contains paper towels, windshield cleaner (Stoner Invisible Glass), a quart of oil, a good air gauge, duct tape, the manual for my car, a couple of common wrenches, a torque wrench, a breaker bar and a bottle of white liquid shoe polish.  Every day at the track I will use the glass cleaner to keep my windows super-clean, the air gauge to set my tire pressure, and the torque wrench to check my wheel bolts.  I often end up adding a bit of oil throughout the course of the weekend and I've found the duct tape useful on a few occasions to fix that stupid plastic undertray on my E36.</p>

<p>As for the shoe polish, it's one of the best tools for adjust air pressure.  Simply put a bit of shoe polish on the sidewall of the tire and onto the shoulder block of the tread; when you get off the track, see where the polish has disappeared and adjust the tire pressure accordingly.</p>

<p>Additionally, I pack my portable air compressor (though most tracks have air available), a couple of towels, my helmet, and tech inspection form &#x2014; the last two being a absolute requirements, since you can't drive without them.</p>

<p>Personal stuff I bring includes a cooler filled with lots of water, some sandwiches, apples, and energy bars.  Being <a href="http://flickr.com/photos/dinomite">something of a photographer</a> I bring along my camera, since hot cars driving on a racetrack makes for good pictures.  I also toss in some reading material and the Eagle Scout in me requires a bag with a complete change of clothes.  If you're coming home each day (which I do, since the track is only about an hour away), you probably don't need the extra clothes, but do bring a sweatshirt and jacket, even if the forecast is for highs in the 80s.  For those of us who live in urban areas, we aren't used to being up at 6 in the morning &#x2014; it can be pretty cold then.  Also, unlike that NASCAR crap, you will drive rain or shine and in cold weather, always with the windows down.  It won't be a fun time if you're cold.</p>

<h2>Friday</h2>

<p>On Friday, I come home from work, pack all of my gear into the car, and head to bed around 10PM.  I won't actually get there until 11 and probably won't fall asleep until later still, but since I have to leave the house at 5:30AM to get to the track by 7, I make the effort to get a good night's sleep.  Why 7AM?  The drivers meeting will be at 8AM, the instructors will do ride-along intro laps thereafter and the track opens at 9AM.  All track events require everyone to attend the drivers meeting and, like the rest of the day, things run a very strict time table.  Renting a track is very expensive and everyone wants to make the most of it, so be on time and build yourself some extra cushion, especially if it's your first time out.</p>

<h2>To The Track</h2>

<p>I get up.  Early.  I give enough time that, driving the speed limit, I can get to the track by 7:30 so that I have time to empty the car before the driver's meeting at 8AM.  Since that means I'm on the road starting at about 6AM on a weekend, the roads are empty; if one desires, this allows them to reach their destination significantly faster than the speed limits might imply is possible.  Do be courteous, especially of other folks in cars that look like they might be headed to the track &#x2014; one of them could be your instructor.  When you get there, you'll have to sign a waiver at the gate and then you can head to the paddock.  In the paddock, just choose a place to park and unpack your gear; follow the lead of those already setup, since there usually isn't any organization.  You have to remove <strong>everything</strong> from your car, down to the driver's side floor mat, because anything that is loose can become a projectile, especially in the unfortunate event of a crash.</p>

<p>There will be a driver's meeting at 8AM and some schools have instructors give low-speed, no-helmet shakedown laps before the track opens for real driving at 9.  If you get this opportunity take it; riding with an instructor is the best way to learn the line.  For the rest of the day, simply follow the schedule and ask others at the school for advice.  Keep in mind that this isn't racing, no one is trying to set record, so just relax and have fun.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>United States Personal Savings Rate</title>
    <link rel="alternate" type="text/html" href="http://dinomite.net/2009/united-states-personal-savings-rate/" />
    <id>tag:mt.dinomite.net,2009://1.278</id>

    <published>2009-03-05T06:50:21Z</published>
    <updated>2009-12-27T23:36:41Z</updated>

    <summary>Americans aren&apos;t good at saving money. The average amount of disposable income — income less taxes, not to be confused with discretionary income — saved has dropped from 11% in the 1980s to 1% before the start of the current...</summary>
    <author>
        <name>Drew Stephens</name>
        <uri>http://dinomite.net</uri>
    </author>
    
        <category term="Economics" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="economics" label="Economics" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="money" label="money" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://dinomite.net/">
        <![CDATA[<p>Americans aren't good at saving money.  The average amount of disposable income — income less taxes, not to be confused with <a href="http://en.wikipedia.org/wiki/Disposable_income">discretionary income</a> — saved has dropped from 11% in the 1980s to 1% before the start of the current recession.  A graph is appropriate here:</p>

<p><a href="http://dinomite.net/2009/03/personal-savings-rate.png"><img src="http://dinomite.net/2009/03/personal-savings-rate.png" height="450" width="662" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" ></a></p>

<p>I'm not some anti-materialist nazi, but that downward march is the increased confusion that Americans have between "wants" and "needs".  Sure, <a href="http://en.wikipedia.org/wiki/Real_wage">real wages</a> <a href="http://www.workinglife.org/wiki/Wages+and+Benefits%3A+Real+Wages+%281964-2004%29">have decreased</a>  over this time period, but not nearly at the rate that savings has slumped.</p>

<p>The uptick for 2009?  That's the just-released data for January of this year which pegs the rate at 5%, up from 1.8% in 2008 and 0.5% the previous year.  August of 2005 even featured a rate of <strong>negative</strong> 2.7%, a feat matched only by the -0.2% rate in 2001.  Though I would generally argue that people thinking about their future rather than <a href="http://www.nytimes.com/2008/03/09/business/09view.html?ex=1362718800&amp;en=e0525c458b2d83df&amp;ei=5124&amp;partner=permalink&amp;exprod=permalink">instant gratification</a> is a wonderful change, increased saving isn't what an economy needs to break out of a recession.</p>

<p>Sources:</p>

<ul>
<li><a href="http://research.stlouisfed.org/fred2/data/PSAVERT.txt">Personal Saving Rate, January 1959 through January 2009</a> from the St. Louis fed</li>
<li>The same data as a <a href="http://dinomite.net/2009/03/personal-savings-rate.zip">Numbers spreadsheet (zip)</a> and <a href="http://dinomite.net/2009/03/personal-savings-rate.xls">Excel</a> spreadsheet, with annual averages</li>
</ul>
]]>
        

    </content>
</entry>

</feed>
