<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Cameron Stokes's Blog]]></title>
  <link href="http://www.cameronstokes.com/atom.xml" rel="self"/>
  <link href="http://www.cameronstokes.com/"/>
  <updated>2012-04-11T21:39:05-07:00</updated>
  <id>http://www.cameronstokes.com/</id>
  <author>
    <name><![CDATA[Cameron Stokes]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Beer Review: Stone Bottleworks 13th Anniversary Ale]]></title>
    <link href="http://www.cameronstokes.com/2012/04/11/beer-review-stone-bottleworks-13th-anniversary-ale/"/>
    <updated>2012-04-11T19:25:00-07:00</updated>
    <id>http://www.cameronstokes.com/2012/04/11/beer-review-stone-bottleworks-13th-anniversary-ale</id>
    <content type="html"><![CDATA[<p><img class="right" src="http://www.cameronstokes.com/wp-content/uploads/2012/04/stone-bottleworks-13th-anniversary-ale-logo.jpg" width="300" height="134" title="Stone Bottleworks 13th Anniversary Ale" ></p>

<p><a href="http://bottleworksbeerstore.blogspot.com/">Bottleworks</a> is a &#8220;specialty beer store&#8221; in Seattle with a large following in the local craft beer scene. It&#8217;s a small, dark place and at first glance, a bit unwelcoming but you soon get past it when you browse their selection. They get all the latest and greatest beers but also have some vintage beers in the back. While browsing you can get a pint at the bar in the back or fill up a growler. All in all, it&#8217;s a great destination for beer enthusiasts and one I always recommend.</p>

<p>This year is Bottleworks&#8217; 13th anniversary and like previous years they had an anniversary ale brewed in their honor. Recent years beers have been brewed by the likes of <em>New Belgium</em> (10th anniversary), <em>Big Sky Brewing</em> (11th anniversary), and <em>The Bruery</em> (12th anniversary).</p>

<p>Bottleworks 13th Anniversary Ale was brewed by <em>Stone Brewing</em> and released on March 24th, 2012.</p>

<h2>Beer Facts</h2>

<p><strong>Name</strong>: Bottleworks 13th Anniversary Ale</p>

<p><strong>Brewery</strong>: Stone Brewing Co.</p>

<p><strong>Style</strong>: American Strong Ale</p>

<p><strong>Released</strong>: One Time</p>

<p><strong>Availability</strong>: 22oz. bomber</p>

<p><strong>Description:</strong></p>

<blockquote><p>When it came time to brew Bottleworks&#8217; 13th anniversary beer, we turned to Stone to brew this behemoth. &#8220;The Matts&#8221; traveled down to San Diego in December to help create this 13-hop, 13-grain monument to our 13 years of selling great craft beer!</p></blockquote>

<p><strong>Hops:</strong> Bravo, Target, Columbus, Cascade, Delta, Warrior, Magnum, Apollo, Calypso, Perle, Galena, Chinook, Mt. Hood</p>

<p><strong>Malts:</strong> Pale 2-R, White Wheat, Aromatic, Wyermann Chocoloate Rye, Light Munich, Brown Crisp, Crisp Light Crystal, Crisp Amber, Caramunich, Baird&#8217;s Chocolate Malt, Lightly Peated, Simpsons Dark Crystal, Oats</p>

<p><strong>OG:</strong> ?</p>

<p><strong>FG:</strong> ?</p>

<p><strong>IBUs:</strong> ?</p>

<p><strong>ABV:</strong> 11%</p>

<h2>Tasting</h2>

<p><strong>Serving</strong>: 22oz. bomber into a New Belgium snifter.</p>

<p><strong>Appearance</strong>: Two fingers of tan head that lingers and leaves lots of lacing. Dark but not opaque. Lets light through at the age of the glass.</p>

<p><strong>Aroma</strong>: Lots of hop aroma. Smoked malts and almost medicinal, band-aid smell.</p>

<p><strong>Mouthfeel</strong>: Thick and creamy, but not syrupy. Medium carbonation; appropriate for the beer.</p>

<p><strong>Taste</strong>: Smoke is front and center. Heavy hop presence: flavor and bitterness. The medicinal, band-aid flavor is there as well but not&#8217;s not overpowering that it&#8217;s not enjoyable. Alcohol is apparent but not too hot.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2012/04/stone-bottleworks-13th-anniversary-ale-bottle.jpg" width="360" height="480" title="Stone Bottleworks 13th Anniversary Ale" ></p>

<h2>Conclusion</h2>

<p>With 13 grains and 13 hops, there&#8217;s a lot going on in this beer and it&#8217;s evident in the flavor. It&#8217;s not unbalanced but seems a bit muddled. I wouldn&#8217;t call it complex or layered, but complicated. If this was a blind tasting, I probably could have guessed this was a beer from Stone. It seems to have a bit of their house flavor. The beers grows on me as I drink it, but that could be the 11% ABV kicking in.</p>

<p>All in all, I&#8217;m glad I tried it and I would certainly recommend it to others. If I recall correctly, it was only $6.99, so it is certainly a deal for an 11% bomber. Given the opportunity to have it again, I&#8217;d probably pass for something else, but wouldn&#8217;t hesitate to share a bottle with a friend. This is a good beer, but not a beer that I would regularly buy.</p>

<p><strong>Food pairings</strong>: Something hearty. A thick and heavy pasta would go well with this.</p>

<p><strong>Cellar-able</strong>: The bottle says to age it cellar temperature (55° F) but I don&#8217;t expect age would help except to hide the alcohol a bit.</p>

<p><strong>Comparable beers</strong>: Stone Arrogant Bastard and Double Bastard.</p>

<h2>Links</h2>

<ul>
<li>Brewery Link - None</li>
<li><a href="http://beeradvocate.com/beer/profile/147/79818/">Beeradvocate</a></li>
<li><a href="http://www.ratebeer.com/beer/stone-bottleworks-13th-anniversary-ale/169792/">ratebeer</a></li>
<li><a href="http://www.cellarhq.com/brewery/stone-brewing-company/beer/bottleworks-13th-anniversary-ale">CellarHQ</a></li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[2011: Year in Review]]></title>
    <link href="http://www.cameronstokes.com/2012/01/01/2011-year-in-review/"/>
    <updated>2012-01-01T11:35:00-08:00</updated>
    <id>http://www.cameronstokes.com/2012/01/01/2011-year-in-review</id>
    <content type="html"><![CDATA[<p>My highlights of 2011:</p>

<ol>
<li><strong>In February</strong> I spent two weeks in Shanghai, China kicking off a project for InterContinental Hotels Group (IHG). The project was to create a regionalized website for the China market and is the first production cloud deployment for IHG, running on Amazon Web Services.</li>
<li><strong>Also in February</strong> my fiance learned of a job opportunity for her at Boeing in Seattle, WA. I worked it out with my awesome boss at IHG that I could stay on remotely and Rhonda and I decided to make the leap.</li>
<li><strong>In March</strong> I spent a few days in Aguascalientes, Mexico to evaluate a new software partner for IHG. We were incredibly impressed with the meetings. My plane out of AGU was so small I couldn&#8217;t sit up straight and I saw Willem Dafoe in Mexico City while catching my connecting flight.</li>
<li><strong>In April</strong> I traveled to New Delhi and Mumbai, India to meet with two other potential software partners for IHG. The meetings were disappointing. While in India, we traveled to Pune to visit a long-time, existing partner. We had a fantastic dinner and it was great to finally meet many of the people that I had worked with for years but had never had the opportunity to shake hands with.</li>
<li><strong>After India</strong> we made a stopover in Europe for some leisure. In 5 days we drove from Munich through Austria to Venice to Milan to Zurich and back to Munich. The BMW museum in Munich, dinner in Milan, and dinner at <a href="http://en.wikipedia.org/wiki/Weihenstephan_Abbey">Weihenstephan brewery</a> outside of Munich were the high points of the trip. Venice was the low point. All in all, we drove over 1,000 miles.</li>
<li><strong>After Europe</strong> we left Atlanta for Seattle, driving cross country with stopovers in St. Louis, Nebraska, Fort Collins, Yellowstone, and Twin Falls. Our drive is chronicled starting <a href="http://www.cameronstokes.com/2011/04/24/atlanta-to-seattle-day-1/">here</a>. The drive was over 3,000 miles.</li>
<li><strong>In June</strong> I flew back to Atlanta and went to the <a href="http://en.wikipedia.org/wiki/Bonnaroo">Bonnaroo music festival</a>. It was a great time catching up with everyone from back home.</li>
<li><strong>In July</strong> we sold our home back in Atlanta after having it on the market for just over 3 months. We sold it for $100 more than we had bought it for in 2003. We lost a bit after commission, but given the state of the housing market we did quite well.</li>
<li><strong>In August</strong> we saw friends in Portland and visited <a href="http://www.deschutesbrewery.com/">Deschutes</a> and <a href="http://cascadebrewingbarrelhouse.com/">Cascade Brewing Barrel House</a>.</li>
<li><strong>In September</strong> some friends came out to Seattle for the <a href="http://en.wikipedia.org/wiki/Bumbershoot">Bumbershoot music festival</a>. It was a fun and exhausting weekend.</li>
<li><strong>In October</strong> I sold my 8 year old, 140,000 mile Toyota Tundra and bought a 2012 Volkwswagen Golf TDI. I love the diesel engine and the features of the Golf are top notch.</li>
<li><strong>In November</strong> we traveled to Atlanta for Thanksgiving with family and I turned 29 years old.</li>
<li><strong>In December</strong> we traveled back to Atlanta for Christmas with family and then drove to San Francisco for New Year&#8217;s Eve with family there. The drive was over 1,500 miles.</li>
<li><strong>Between April and December</strong> I traveled between Seattle and Atlanta 7 times.</li>
</ol>


<p>In summary, I flew over 75,000 miles and drove over 5,000 not counting every day driving. I visited 3 continents, 10 countries, and 23 cities. The biggest event was obviously the move from Atlanta to Seattle. It&#8217;s been a great experience so far.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Tweak the Left/Right Panels in #newnewtwitter]]></title>
    <link href="http://www.cameronstokes.com/2011/12/10/tweak-the-left-slash-right-panels-in-number-newnewtwitter/"/>
    <updated>2011-12-10T08:07:00-08:00</updated>
    <id>http://www.cameronstokes.com/2011/12/10/tweak-the-left-slash-right-panels-in-number-newnewtwitter</id>
    <content type="html"><![CDATA[<p>Twitter has dropped another version on its users, affectionately dubbed #newnewtwitter, with even more changes than #newtwitter. Twitter has details of the changes <a href="http://fly.twitter.com/">here</a>.</p>

<p>While I like most of the aesthetic changes, I don&#8217;t like that the <em>dashboard</em> panel is now on the left side of the screen as opposed to the right. With a few lines in a greasemonkey/userscript, I&#8217;ve restored order to twitter.</p>

<p><img class="left" src="http://www.cameronstokes.com/wp-content/uploads/2011/12/newnewtwitter-original-thumb.png" width="300" height="209" title="Old and Busted" ></p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/12/newnewtwitter-fixed-thumb.png" width="300" height="209" title="New Hotness" ></p>

<p>See the details of my <em>#newnewtwitter-tweaker</em> script <a href="https://github.com/clstokes/scraps/tree/master/newnewtwitter-tweaker">here</a> or go straight to the download <a href="https://github.com/clstokes/scraps/raw/master/newnewtwitter-tweaker/newnewtwitter.user.js">here</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Beer Review: Terrapin Coffee Oatmeal Imperial Stout]]></title>
    <link href="http://www.cameronstokes.com/2011/12/05/beer-review-terrapin-coffee-oatmeal-imperial-stout/"/>
    <updated>2011-12-05T14:25:00-08:00</updated>
    <id>http://www.cameronstokes.com/2011/12/05/beer-review-terrapin-coffee-oatmeal-imperial-stout</id>
    <content type="html"><![CDATA[<p><em><strong>Coffee Oatmeal Imperial Stout</strong></em> is part of the <a href="http://terrapinbeer.com/brew/monster-beer/">Monster Beer Tour</a> from Terrapin Beer Company in Athens, Georgia. The &#8216;W-n-B&#8217; on the label stands for &#8220;Wake ‘N’ Bake&#8221;, the beer&#8217;s former name. Terrapin starts with an oatmeal imperial stout recipe and then cold steeps a blend of coffees from Costa Rica, Guatemala, and Zimbabwe. The blend was concocted with Terrapin and Jittery Joe’s Coffee, also in Athens, Georgia, and the blend is available for purchase from Terrapin&#8217;s website <a href="http://terrapinbeer.com/store/">here</a>.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/12/terrapin-coffee-oatmeal-imperial-stout-bottle.jpg" width="480" height="321" title="Terrapin Coffee Oatmeal Imperial Stout" ></p>

<h2>Beer Facts</h2>

<p><strong>Name</strong>: Coffee Oatmeal Imperial Stout</p>

<p><strong>Style</strong>: American Double/Imperial Stout</p>

<p><strong>Brewery</strong>: Terrapin Beer Company</p>

<p><strong>Released</strong>: Seasonal</p>

<p><strong>Availability</strong>: 12oz. bottles and draft</p>

<p><strong>Description:</strong></p>

<blockquote><p>Black as night, this coffee stout is thick, rich and full of real coffee flavor. Brewed with the Terrapin Wake-n-Bake coffee blend created by Terrapin &amp; Jittery Joe’s Coffee.</p></blockquote>

<p><strong>Hops:</strong> Chinook, Northern Brewer</p>

<p><strong>Malts:</strong> 2-Row Pale Malt, Flaked Oats, Flaked Barley, Chocolate Malt, Black Malt &amp; Roasted Barley</p>

<p><strong>OG:</strong> 20.8</p>

<p><strong>FG:</strong> ?</p>

<p><strong>IBUs:</strong> 50</p>

<p><strong>ABV:</strong> 8.6%</p>

<h2>Tasting</h2>

<p><strong>Serving</strong>: 12oz. glass into a Terrapin pint glass.</p>

<p><strong>Appearance</strong>: Rough pour creates a small, mocha-colored head that dissapears quickly leaving light lacing. The beer itself is jet black.</p>

<p><strong>Aroma</strong>: I can smell coffee as soon as I pop the cap even before pouring. Has a rich, fresh ground coffee smell.</p>

<p><strong>Mouthfeel</strong>: Slick mouthfeel with medium body. Right amount of carbonation&#8230; low.</p>

<p><strong>Taste</strong>: Up-front coffee with sweet oats in background. Good balance of bitterness. Flavor doesn&#8217;t linger after sips and isn&#8217;t sticky like some imperial stouts. Alcohol is hidden very well.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/12/terrapin-coffee-oatmeal-imperial-stout-glass.jpg" width="480" height="321" title="Terrapin Coffee Oatmeal Imperial Stout" ></p>

<h2>Conclusion</h2>

<p>This is an awesome beer. The coffee flavors are very complex and the strong oatmeal and roasted malts match really well. It&#8217;s a strong beer but doesn&#8217;t taste strong. In fact, there&#8217;s no noticeable alcohol flavor. Initially very cold, allowing it to warm up a bit let the flavors come out more but it&#8217;s not drastically different as you might expect. As strong in flavor and alcohol as this is, it&#8217;s really easy drinking.</p>

<p><a href="http://www.thebrewingnetwork.com/">The Brewing Network</a> interviewed Terrapin headbrewer, Brian &#8220;Spike&#8221; Buckowksi, on May 18th, 2008 and discussed this beer specifically. On the show Spike shares some history of Terrapin, his beers, and goes into some detail about the Coffee Oatmeal Imperial Stout. Specifically, Spike explains how we came up with the coffee blend and his technique for brewing with it. The Brewing Network attempted to clone this beer on their December 5th, 2010 episode of Can You Brew It. The shows are available <a href="http://thebrewingnetwork.com/shows/The-Sunday-Session/The-Sunday-Session-05-18-08-Terrapin-Brewery-Brewmaster-Brian-Spike-Buckowski">here</a> and <a href="http://thebrewingnetwork.com/shows/700">here</a> and in the iTunes podcast directory.</p>

<p><strong>Food pairings</strong>: Dessert or on its own.</p>

<p><strong>Cellar-able</strong>: Yes.</p>

<p><strong>Comparable beers</strong>: Founders Breakfast Stout, Beer Geek Breakfast from Mikkeller, Bell&#8217;s Java Stout, Southern Tier Jahva.</p>

<h2>Links</h2>

<ul>
<li><a href="http://terrapinbeer.com/brew/monster-beer/wake-n-bake-coffee-oatmeal-imperial-stout/">Brewery Link</a></li>
<li><a href="http://beeradvocate.com/beer/profile/2372/21950">Beeradvocate</a></li>
<li><a href="http://www.ratebeer.com/beer/terrapin-wake-n-bake-coffee-oatmeal-imperial-stout/42303/">ratebeer</a></li>
</ul>


<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/12/terrapin-coffee-oatmeal-imperial-stout-cap.jpg" width="480" height="321" title="Terrapin Coffee Oatmeal Imperial Stout" ></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Short ID Generator in Groovy]]></title>
    <link href="http://www.cameronstokes.com/2011/11/22/short-id-generator-in-groovy/"/>
    <updated>2011-11-22T22:08:00-08:00</updated>
    <id>http://www.cameronstokes.com/2011/11/22/short-id-generator-in-groovy</id>
    <content type="html"><![CDATA[<p>On my latest side project I needed to create IDs for items in a database, but without using a database sequence or artificial counter. I generally would use a UUID but for this project I wanted to minimize the size of the identifier to save on space and make the IDs usable similar to a URL shortener service.</p>

<p>Here&#8217;s what I whipped up in Groovy:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
</pre></td><td class='code'><pre><code class='java'><span class='line'><span class="kd">class</span> <span class="nc">IDUtils</span> <span class="o">{</span>
</span><span class='line'>
</span><span class='line'>  <span class="n">def</span> <span class="n">NUMBER_OF_CHARS</span> <span class="o">=</span> <span class="mi">5</span>
</span><span class='line'>  <span class="n">def</span> <span class="n">CHARS</span> <span class="o">=</span> <span class="o">(</span><span class="sc">&#39;0&#39;</span><span class="o">..</span><span class="sc">&#39;9&#39;</span><span class="o">)</span> <span class="o">+</span>
</span><span class='line'>          <span class="o">(</span><span class="sc">&#39;a&#39;</span><span class="o">..</span><span class="sc">&#39;h&#39;</span><span class="o">)</span> <span class="o">+</span>
</span><span class='line'>          <span class="o">(</span><span class="sc">&#39;j&#39;</span><span class="o">..</span><span class="sc">&#39;k&#39;</span><span class="o">)</span> <span class="o">+</span>
</span><span class='line'>          <span class="o">(</span><span class="sc">&#39;m&#39;</span><span class="o">..</span><span class="sc">&#39;z&#39;</span><span class="o">)</span> <span class="o">+</span>
</span><span class='line'>          <span class="o">(</span><span class="sc">&#39;A&#39;</span><span class="o">..</span><span class="sc">&#39;H&#39;</span><span class="o">)</span> <span class="o">+</span>
</span><span class='line'>          <span class="o">(</span><span class="sc">&#39;J&#39;</span><span class="o">..</span><span class="sc">&#39;K&#39;</span><span class="o">)</span> <span class="o">+</span>
</span><span class='line'>          <span class="o">(</span><span class="sc">&#39;M&#39;</span><span class="o">..</span><span class="sc">&#39;Z&#39;</span><span class="o">)</span>
</span><span class='line'>
</span><span class='line'>  <span class="n">def</span> <span class="n">random</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Random</span><span class="o">()</span>
</span><span class='line'>
</span><span class='line'>  <span class="n">def</span> <span class="nf">generateID</span><span class="o">()</span> <span class="o">{</span>
</span><span class='line'>    <span class="n">def</span> <span class="n">id</span> <span class="o">=</span> <span class="s">&quot;&quot;</span>
</span><span class='line'>    <span class="k">for</span> <span class="o">(</span> <span class="n">i</span> <span class="n">in</span> <span class="mi">1</span><span class="o">..</span><span class="na">NUMBER_OF_CHARS</span> <span class="o">)</span> <span class="o">{</span>
</span><span class='line'>      <span class="n">id</span> <span class="o">+=</span> <span class="n">CHARS</span><span class="o">[</span><span class="n">random</span><span class="o">.</span><span class="na">nextInt</span><span class="o">(</span><span class="n">CHARS</span><span class="o">.</span><span class="na">size</span><span class="o">())]</span>
</span><span class='line'>    <span class="o">}</span>
</span><span class='line'>    <span class="k">return</span> <span class="n">id</span>
</span><span class='line'>  <span class="o">}</span>
</span><span class='line'>
</span><span class='line'><span class="o">}</span>
</span></code></pre></td></tr></table></div></figure>


<p><em>CHARS</em> specifies the available character set and <em>NUMBER_OF_CHARS</em> specifies the length of the ID generated. I specifically omit <em>i</em> and <em>l</em> to cut down on confusion and readability issues across different fonts. The output of <em>generateID()</em> is an ID in the form of 9reaZ, CfrDS, a22mE, etc. With this character set and 5 characters in length there are 601,692,057 combinations available.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Tasting: Rio's Rompin Rye]]></title>
    <link href="http://www.cameronstokes.com/2011/10/27/tasting-rios-rompin-rye/"/>
    <updated>2011-10-27T19:58:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/10/27/tasting-rios-rompin-rye</id>
    <content type="html"><![CDATA[<p><em><strong>Rio&#8217;s Rompin Rye Beer</strong></em> is from Epic Brewing Company in Salt Lake City, Utah. A part of their Exponential Series, Rio&#8217;s Rompin Rye comes in a 22 oz. bomber bottle with an appealing, high-quality label.</p>

<p>As a craft beer drinker, my beer memories from Salt Lake City (SLC) have been interesting. My trips to SLC include:</p>

<ul>
<li>1st trip - Bewilderment at required club memberships to enter a bar and government labels on each beer bottle.</li>
<li>2nd trip - At just the cusp of my beer obsession, visiting Red Rock Brewing and Squatters.</li>
<li>3rd trip - Having a Bohemian Pilsner at the top of one of the ski resorts. Most likely not enjoying it as I had yet to appreciate more classic styles.</li>
<li>4th trip - A co-worker putting together a mixed pack of Wasatch and Uinta beers to take back to Atlanta, which I drank all of before leaving town.</li>
</ul>


<p>Honestly at this point, I think my numbers are off and I&#8217;m missing a trip or two. Ironically enough, I probably have more of a beer history in Salt Lake City than any city other than Atlanta.</p>

<p>Back to Rio&#8217;s Rompin Rye&#8230;</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/10/epic-brewing-rios-rompin-rye-bottle.jpg" width="480" height="321" title="Rio's Rompin Rye" ></p>

<h2>Beer Facts</h2>

<p><strong>Name</strong>: Rio&#8217;s Rompin Rye Beer</p>

<p><strong>Style</strong>: Specialty/Rye Beer</p>

<p><strong>Brewery</strong>: Epic Brewing Company</p>

<p><strong>Released</strong>: Rotating</p>

<p><strong>Availability</strong>: 22oz. bomber</p>

<p><strong>Description:</strong></p>

<blockquote><p>Think freshly baked rye bread with a citrus finish.</p></blockquote>

<p><strong>Hops:</strong> Mt. Hood, Sterling, Tettnag</p>

<p><strong>Malts:</strong> Maris Otter Muttons, Rye Malt, 2-Row Brewers Malt Briess, Munich Malt 20L, CaraMunich II Weyermann, Rice Hulls, Carafa III</p>

<p><strong>OG:</strong> ?</p>

<p><strong>FG:</strong> ?</p>

<p><strong>IBUs:</strong> ?</p>

<p><strong>ABV:</strong> 5.3%</p>

<h2>Tasting</h2>

<p><strong>Serving</strong>: 22oz. bomber into a pint glass.</p>

<p><strong>Appearance</strong>: A rough pour only creates a quarter-inch of head that dissipates quickly. Hazy, burnt orange color and oily, viscous lacing.</p>

<p><strong>Aroma</strong>: Funky yeast is the only aroma just after the pour. After that there&#8217;s a slight rye presence and earthy hops.</p>

<p><strong>Mouthfeel</strong>: Low carbonation. Oily and slick mouthfeel.</p>

<p><strong>Taste</strong>: Very little rye. Some citrus and earthy hops. Surprisingly light on flavor. I suppose I get some lemon. Finishes pretty dry.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/10/epic-brewing-rios-rompin-rye-glass.jpg" width="480" height="321" title="Rio's Rompin Rye" ></p>

<h2>Conclusion</h2>

<p>I&#8217;m disappointed with this beer. Rye is one of my favorite flavors in a beer and this one isn&#8217;t <em>rompin&#8217;</em> and has very little rye. In fact, it&#8217;s really light on aroma and flavor on the whole. This is a below-average beer in my book. Not a fan. I received this along with several other Epic Brewing beers from a friend in SLC. I&#8217;m hoping the others don&#8217;t disappoint.</p>

<p>I <em>am</em> a fan of Epic&#8217;s numbering and brewing log of their Exponential Series available on their website. For each batch in the Exponential Series, Epic notes differences in recipe and outcomes. Each bottle is numbered by batch. I wish more breweries did this.</p>

<p><strong>Food pairings</strong>: Anything&#8230; not much going on here.</p>

<p><strong>Cellar-able</strong>: No.</p>

<p><strong>Comparable beers</strong>: By style, Terrapin Rye would be comparable but is a much better beer.</p>

<h2>Links</h2>

<ul>
<li><a href="http://www.epicbrewing.com/our-beers/item/214-rios-rompin-rye-ale-release-#7">Brewery Link</a></li>
<li><a href="http://beeradvocate.com/beer/profile/22893/66377/">Beeradvocate</a></li>
<li><a href="http://www.ratebeer.com/beer/epic-rios-rompin-rye/140511/">ratebeer</a></li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Since Moving My Blog to Amazon S3...]]></title>
    <link href="http://www.cameronstokes.com/2011/10/22/since-moving-my-blog-to-amazon-s3/"/>
    <updated>2011-10-22T10:52:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/10/22/since-moving-my-blog-to-amazon-s3</id>
    <content type="html"><![CDATA[<p>Can you tell when I migrated this blog from my own server to Amazon S3?</p>

<p><strong>Availability</strong>
<img src="http://www.cameronstokes.com/wp-content/uploads/2011/10/cameronstokes.com-availability.png" width="636" height="296" title="Availability" ></p>

<p><strong>Performance</strong>
<img src="http://www.cameronstokes.com/wp-content/uploads/2011/10/cameronstokes.com-performance.png" width="636" height="296" title="Performance" ></p>

<p>100% availability and 25% faster response times.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Blog Migration - Wordpress to Octopress]]></title>
    <link href="http://www.cameronstokes.com/2011/10/11/blog-migration-wordpress-to-octopress/"/>
    <updated>2011-10-11T21:11:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/10/11/blog-migration-wordpress-to-octopress</id>
    <content type="html"><![CDATA[<p>I&#8217;ve used WordPress since I first started my blog, but recently started looking for
alternatives. I found myself not needing many of the features provided by WordPress
and not wanting to manage Apache, PHP, and MySQL through upgrades, patches, etc.
Finally, inspired by the post <a href="http://www.allthingsdistributed.com/2011/08/Jekyll-amazon-s3.html">No Server Required - Jekyll &amp; Amazon S3</a>, I set out to
find something new. In my searching I stumbled onto <a href="http://octopress.org/">Octopress</a>.</p>

<p>I searched for a tool to help migrate my WordPress blog to Octopress and found a couple
different options. I settled on a script from <a href="https://twitter.com/#!/elvvin">@elvvin</a>
that used an XML export from WordPress and created the appropriate <a href="http://jekyllrb.com/">Jekyll</a>/Octopress format.
With some tweaks I got it to convert my code snippets, images, and post categories. I had to
make some minor <a href="http://daringfireball.net/projects/markdown/">Markdown</a>
fixes to certain posts snippets, but after an hour&#8217;s worth of work, everything was cleaned up and ready to go.
My changes to @elvvin&#8217;s script are on GitHub at <a href="https://github.com/clstokes/wordpress-octopress-migration">wordpress-octopress-migration</a>.</p>

<p>As of this post, my blog is now hosted on <a href="http://aws.amazon.com/s3/">Amazon S3</a>.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[New Pandora Bookmarklet]]></title>
    <link href="http://www.cameronstokes.com/2011/09/21/new-pandora-bookmarklet/"/>
    <updated>2011-09-21T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/09/21/new-pandora-bookmarklet</id>
    <content type="html"><![CDATA[<p><a href="http://blog.pandora.com/pandora/archives/2011/09/new-pandora-for.html">New Pandora</a> has launched, so it&#8217;s time for a #NewPandora bookmarklet. Here you go&#8230;</p>

<p>If you&#8217;re using Firefox, <a href="javascript:function%20pandora(){window.open('http://pandora.com/','_blank','width=850,height=120,scrollbars=1,location=0,menubar=0,titlebar=0,toolbar=0');}pandora();">bookmark this link</a>.</p>

<p>If you&#8217;re using Chrome, click the <em>view source</em> icon in the prettified code below, then copy and paste it into a new bookmark:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
</pre></td><td class='code'><pre><code class='javascript'><span class='line'><span class="nx">javascript</span><span class="o">:</span> <span class="kd">function</span> <span class="nx">pandora</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'>    <span class="nb">window</span><span class="p">.</span><span class="nx">open</span><span class="p">(</span> <span class="s1">&#39;http://pandora.com/&#39;</span><span class="p">,</span>
</span><span class='line'>                 <span class="s1">&#39;_blank&#39;</span><span class="p">,</span>
</span><span class='line'>                 <span class="s1">&#39;width=850,height=120,&#39;</span> <span class="o">+</span>
</span><span class='line'>                 <span class="s1">&#39;scrollbars=0,location=0,menubar=0,titlebar=0,toolbar=0&#39;</span>
</span><span class='line'>    <span class="p">);</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'><span class="nx">pandora</span><span class="p">();</span>
</span></code></pre></td></tr></table></div></figure>


<p>Enjoy.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Grails and 204 "No Content" responses]]></title>
    <link href="http://www.cameronstokes.com/2011/08/15/grails-and-204-no-content-responses/"/>
    <updated>2011-08-15T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/08/15/grails-and-204-no-content-responses</id>
    <content type="html"><![CDATA[<p>Hacking away on a project recently I decided to use the lesser-known HTTP status code 204 <em>No Content</em>. A 204 <em>No Content</em> indicates a successful request, but also that there&#8217;s no content to return. I&#8217;m using 204&#8217;s for responding to AJAX calls to server-side resources for which no content is needed to return. Technically I could use a 200 status code but I want to be as semantically correct as possible.</p>

<p>Using <a href="http://grails.org/">Grails</a> for the project it was super simple to return 204 from my controller. Here&#8217;s how you do it:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
</pre></td><td class='code'><pre><code class='java'><span class='line'><span class="kd">class</span> <span class="nc">ResourceController</span> <span class="o">{</span>
</span><span class='line'>
</span><span class='line'>  <span class="n">def</span> <span class="n">update</span> <span class="o">=</span> <span class="o">{</span>
</span><span class='line'>
</span><span class='line'>    <span class="c1">// service.update params</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">render</span> <span class="nl">status:</span> <span class="mi">204</span>
</span><span class='line'>
</span><span class='line'>  <span class="o">}</span>
</span><span class='line'>
</span><span class='line'><span class="o">}</span>
</span></code></pre></td></tr></table></div></figure>


<p>That&#8217;s it.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Tasting: Trailhead ISA]]></title>
    <link href="http://www.cameronstokes.com/2011/08/04/tasting-trailhead-isa/"/>
    <updated>2011-08-04T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/08/04/tasting-trailhead-isa</id>
    <content type="html"><![CDATA[<p><em><strong>Trailhead ISA</strong></em> from Two Beers Brewing Co. is dubbed an India Style Session Ale but classified an IPA. At 4.8% ABV it doesn’t fit into the strictest standards of a Session Ale but is close nonetheless. It is probably the lowest ABV IPA I’ve had, yet still supplies enough hop flavor and bitterness to be an American IPA rather than an English IPA.</p>

<p>Two Beers recently ventured into canning their beer and Trailhead ISA is one of three initial styles available in cans from them. Per their <a href="https://www.facebook.com/note.php?note_id=10150230586597558">press release</a>, Two Beers is the first Washington State craft brewery to introduce 12-ounce cans. Their wording begs the question: which Washington State craft brewery is canning but not in 12-ouncers?</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/08/two-beers-trailhead-isa-can.jpg" width="480" height="321" title="Trailhead ISA" ></p>

<h2>Beer Facts</h2>

<p><strong>Name</strong>: Trailhead ISA</p>

<p><strong>Style</strong>: India Style Session Ale/American IPA</p>

<p><strong>Brewery</strong>: Two Beers Brewing Co.</p>

<p><strong>Released</strong>: Year round</p>

<p><strong>Availability</strong>: 12-ounce cans and draft</p>

<p><strong>Description:</strong></p>

<blockquote>Toss this beer in a backpack and hit the trail to find freedom, escape, and a more simple life. As the sky above and good friends keep you company this generously dry-hopped ISA will complete the trinity of the good life. Pack it in. Pack it out. Cheers!</blockquote>


<p><strong>Hops:</strong> ?</p>

<p><strong>Malts:</strong> ?</p>

<p><strong>OG:</strong> ?</p>

<p><strong>FG:</strong> ?</p>

<p><strong>IBUs:</strong> ?</p>

<p><strong>ABV:</strong> 4.8%</p>

<h2>Tasting</h2>

<p><strong>Serving</strong>: 12-ounce can into a pint glass.</p>

<p><strong>Appearance</strong>: Slight orange, straw color. Half-inch of frothy head. Lots of lacing leftover. Haze that to fade as it warms.</p>

<p><strong>Aroma</strong>: Lots of piney hop aroma. Sweet malt comes through as it warms.</p>

<p><strong>Mouthfeel</strong>: High carbonation, but not over-carbonated. Light mouthfeel.</p>

<p><strong>Taste</strong>: Very bitter upfront, but dissipates quickly. Grainy malt flavor behind the hops. Very little lingering flavor after each sip.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/08/two-beers-trailhead-isa-glass.jpg" width="321" height="480" title="Trailhead ISA" ></p>

<h2>Conclusion</h2>

<p>I really, really like this beer. While the rest of the beer world is crazy about IPAs I tend to steer clear of them, finding myself drawn to more subtle lagers or complex stouts, Belgians, or sours. Having said that, I think Trailhead ISA is going to become a mainstay in my fridge. It is true to its name, it is a session ale. It is certainly a weak IPA by most standards but is very, very drinkable. On top of that, it comes in cans and I’m a sucker for a good beer in a can. Did I mentioned it&#8217;s very drinkable? I think I&#8217;ll have another.</p>

<p><strong>Food pairings</strong>: BBQs, lighter fare.</p>

<p><strong>Cellar-able</strong>: Nope.</p>

<p><strong>Comparable beers</strong>: Johnny Utah Session IPA from Georgetown Brewing, IPA Junior from Red Rock. (Haven’t had either of these.)</p>

<h2>Links</h2>

<ul>
<li>No brewery link.</li>
<li><a href="http://beeradvocate.com/beer/profile/17005/69549">Beeradvocate</a></li>
<li><a href="http://www.ratebeer.com/beer/two-beers-trailhead-isa/148823/">ratebeer</a></li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Compressed Content, Amazon S3, and CloudFront]]></title>
    <link href="http://www.cameronstokes.com/2011/07/20/compressed-content-amazon-s3-and-cloudfront/"/>
    <updated>2011-07-20T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/07/20/compressed-content-amazon-s3-and-cloudfront</id>
    <content type="html"><![CDATA[<p>I recently published a static website to <a href="http://aws.amazon.com/s3/">Amazon Simple Storage Service (Amazon S3)</a> and started looking for ways to improve performance. There weren&#8217;t any inherent performance problems using S3 by itself but I wanted to squeeze out every bit of performance I could. I first looked at typical website performance techniques such as <a href="http://developer.yahoo.com/performance/rules.html#minify">minifying files</a>, <a href="http://developer.yahoo.com/performance/rules.html#css_top">putting stylesheets at the top</a>, and <a href="http://developer.yahoo.com/performance/rules.html#js_bottom">scripts at the bottom</a>, but wanted to keep going. My next steps were to <a href="http://developer.yahoo.com/performance/rules.html#gzip">GZIP components</a> and <a href="http://developer.yahoo.com/performance/rules.html#cdn">use a content delivery network</a>. Fortunately Amazon makes both of these easy with S3 and <a href="http://aws.amazon.com/cloudfront/">Amazon CloudFront</a>.</p>

<p>Storing GZIP content on S3 takes a mere 3 steps:</p>

<ol>
<li>GZIP content</li>
<li>Upload to S3</li>
<li>Set metadata on content</li>
</ol>


<p>For my small site I ran GZIP on all of my files manually at the command-line, but this could be easily scripted. From the command-line it looks like this:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>$ gzip -c site/index.html &gt; compressed/index.html
</span><span class='line'>$ gzip -c site/_packed/application.js &gt; compressed/_packed/application.js
</span><span class='line'>$ gzip -c site/_packed/application.css &gt; compressed/_packed/application.css </span></code></pre></td></tr></table></div></figure>


<p>After uploading the files to S3 I needed to set their metadata to indicate they&#8217;re GZIP encoded. In the <em>S3</em> tab within the Amazon Management Console, this is done by selecting each object and going to the <em>Metadata</em> tab on an object&#8217;s properties and adding the <em>Content-Encoding</em> key and value shown here:</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/07/metadata-gzip.png" width="466" height="204" title="metadata-gzip" ></p>

<p>At this point you can test your compressed content by opening one of your files in your browser and making sure it renders appropriately.</p>

<p>Distributing content on the Amazon CloudFront CDN takes even fewer steps:</p>

<ol>
<li>Setup CloudFront distribution</li>
<li>Setup DNS CNAME record (such as www.example.com)</li>
</ol>


<p>Back in the AWS Management Console, in the <em>CloundFront</em> tab, click <em>Create Distribution</em> and select your S3 bucket from above as your origin. Enter the <em>CNAME</em> you plan to use and your <em>Default Root Object</em> and click through the rest of the wizard. At this point Amazon distributes your configuration to its CloudFront network, which seems to take about 5-10 minutes on average. Meanwhile, Amazon will assign your CloudFront <em>Domain Name</em> which you should set  CNAME  to in your DNS provider. You&#8217;re done&#8230;</p>

<p>At this point  your website  content is compressed, stored in a bucket on S3 and distributed on CloudFront. If you use Amazon&#8217;s <a href="http://aws.amazon.com/route53/">Route53</a> DNS service, your entire site is running in the cloud.</p>

<p>Cursory tests show significant improvements across each level of changes:</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/07/cloudfront-response-times.png" width="504" height="329" title="cloudfront-response-times" ></p>

<p>To summarize, hosting a static website on S3 and CloudFront from Amazon Web Services is not only easy but also can drastically improve performance of your site.</p>

<p><em>(If you use Amazon&#8217;s Route53 DNS service, I find <a href="http://www.interstate53.com/">www.interstate53.com</a> to be the best management interface out there currently.)</em></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Tasting: Grand Teton Sheep Eater]]></title>
    <link href="http://www.cameronstokes.com/2011/07/16/tasting-grand-teton-sheep-eater/"/>
    <updated>2011-07-16T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/07/16/tasting-grand-teton-sheep-eater</id>
    <content type="html"><![CDATA[<p><em><strong>Sheep Eater Scotch Ale</strong></em> from Grand Teton Brewing Co. is a scotch ale from the brewery&#8217;s Cellar Reserve series. Per the brewery website, it is brewed &#8221; to showcase the role of malt in the flavor of beer&#8221; and is brewed in   adherence to the German Beer Purity Law <em>Reinheitsgebot</em>. Having never heard of the brewery, I was excited to try the beer.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/grand-teton-sheep-eater-bottle.jpg" width="480" height="321" title="Sheep Eater Scotch Ale from Grand Teton brewing Co." ></p>

<h2>Beer Facts</h2>

<p><strong>Name</strong>: Sheep Eater Scotch Ale</p>

<p><strong>Style</strong>: Scotch Ale</p>

<p><strong>Brewery</strong>: Grand Teton brewing Co.</p>

<p><strong>Released</strong>: One-time in 2009</p>

<p><strong>Availability</strong>: 1-liter, flip-top bottles</p>

<p><strong>Description</strong>:</p>

<blockquote>Sheep Eater Scotch Ale was brewed to showcase the  role of malt in the flavor of beer and brewed in strict adherence to the  Reinheitsgebot, or German Beer Purity Law.

Scotch Ales are some of the world&#8217;s most  flavorful beers.  Scotland&#8217;s cold, blustery climate lends itself to the  growing of barley and oats, but not to the production of hops, which are  almost always added sparingly.

The yeast must work at cooler temperatures than  is customary for ales, resulting in maltier, cleaner, less fruity or  estery, beers. The color often comes from black roasted malt, which  imparts some dryness, but because of the lower attenuation and hopping  rates, Scottish ales are almost always slightly sweet and incredibly  drinkable.

Ours was brewed with black roasted barley,  biscuit and peat-smoked malt.  It was gently hopped, fermented cool and  aged cold for weeks for smoothness.  It is copper-brown in color, with  some sweet maltiness and plenty of body.

Try it with ham, roast pork or chicken, roasted  vegetables or venison, crème brulee or, most traditionally, Scottish  butter shortbread cookies.</blockquote>


<p><strong>Hops</strong>: ?</p>

<p><strong>Malts</strong>: Black roasted barley, biscuit malt, peat-smoked malt</p>

<p><strong>OG</strong>: ?</p>

<p><strong>FG</strong>: ?</p>

<p><strong>IBUs</strong>: ?</p>

<p><strong>ABV</strong>: 7.5%</p>

<h2>Tasting</h2>

<p><strong>Serving</strong>: From a 1-liter, flip-top bottle into a Dogfish Head Signature Glass.</p>

<p><strong>Appearance</strong>: Pours an opaque, copper brown. One finger of head off the first pour.</p>

<p><strong>Aroma</strong>: Sweet, roasty, and smokey malt. No discernible hops or alcohol aroma.</p>

<p><strong>Mouthfeel</strong>: Thick mouthfeel, but not syrupy. Medium to low amount of carbonation, the perfect amount.</p>

<p><strong>Taste</strong>: Sweet malts, but not cloying. Just the right amount of roasty, smokey malt flavor. Raisins and toffee after taste. Slight alcohol presence.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/grand-teton-sheep-eater-glass.jpg" width="480" height="321" title="Sheep Eater Scotch Ale from Grand Teton brewing Co." ></p>

<h2>Conclusion</h2>

<p>For a brewery I&#8217;ve never heard of in the middle of nowhere Idaho, I&#8217;m damn impressed. Every aspect of the beer was spot on: the mouthfeel, complexities of flavor, and even carbonation, surprising for a flip-top bottle.</p>

<p><strong>Food pairings</strong>: A hearty meal. Shepherd&#8217;s pie, meatloaf, etc.</p>

<p><strong>Cellar-able</strong>: I would say yes, but Grand Teton&#8217;s Cellar Master says to drink it now. (<a href="http://grandtetoncellar.blogspot.com/2011/01/sheep-eater-at-one-year.html">Link</a>)<strong> </strong></p>

<p><strong>Comparable beers</strong>: Founders Dirty Bastard.</p>

<p>The night we tried Sheep Eater Scotch Ale we paired it with homemade shepherd&#8217;s pie. It was a perfect combination.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/grand-teton-sheep-eater-dinner.jpg" width="480" height="465" title="Sheep Eater and Shepherd's Pie" ></p>

<p>Coincidentally, on our <a href="../2011/04/24/something-new-atlanta-to-seattle/">drive from Atlanta to Seattle in April</a> we drove right by  Grand Teton Brewing Co. in  Victor, ID. Had known this beforehand I would have made sure they were open they were open.  I&#8217;m now on the lookout for other Grand Teton beers to try, but unfortunately was told by local beer store that they no longer distribute to Washington. Hopefully this isn&#8217;t true.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/grand-teton-brew-pub.jpg" width="480" height="321" title="Grand Teton Brewing Co. in Victor, ID" ></p>

<h2>Links</h2>

<ul>
<li><a href="http://www.grandtetonbrewing.com/SESA.html">Brewery Link</a></li>
<li><a href="http://beeradvocate.com/beer/profile/413/55370">BeerAdvocate</a></li>
<li><a href="http://www.ratebeer.com/beer/grand-teton-sheep-eater-scotch-ale/116073/">ratebeer</a></li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Fast Twitter Widget for Wordpress]]></title>
    <link href="http://www.cameronstokes.com/2011/06/24/fast-twitter-widget-for-wordpress/"/>
    <updated>2011-06-24T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/06/24/fast-twitter-widget-for-wordpress</id>
    <content type="html"><![CDATA[<p><em><strong>tl;dr version&#8230;</strong> for loading your Twitter stream on your Wordpress blog, <a href="http://wordpress.org/extend/plugins/reliable-twitter/">Reliable Twitter</a></em><em> is a fast and </em><em>reliable way to do it without impacting performance and usability of your blog.</em></p>

<p>I noticed my blog  performing slowly recently and, knowing that <a href="http://www.useit.com/alertbox/response-times.html">performance impacts site engagement</a>, I set out to fix it.</p>

<p>In particular, the main column loaded quickly but my Twitter stream in the right column would hang.  A quick look showed that the Twitter widget I was using, <a href="http://wordpress.org/extend/plugins/twitter-widget-pro/">Twitter Widget Pro</a>, was loading the stream on the server and that response times from Twitter were likely the culprit. I began looking for an AJAX-based widget knowing that loading the data asynchronously could help initial page load time without impacting usability of my blog. After too much searching, I found an AJAX-based widget, coincidentally called <a href="http://wordpress.org/extend/plugins/reliable-twitter/">Reliable Twitter</a>, that fit the bill. After installing Reliable Twitter, I immediately noticed page loads were quicker and after a bit of time <a href="http://pingdom.com/">Pingdom</a> confirmed this.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/06/pingdom-cameronstokes-com.png" width="563" height="206" title="pingdom-cameronstokes-com" ></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Conflicting getter definitions with Groovy and Jackson]]></title>
    <link href="http://www.cameronstokes.com/2011/06/19/conflicting-getter-definitions-with-groovy-and-jackson/"/>
    <updated>2011-06-19T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/06/19/conflicting-getter-definitions-with-groovy-and-jackson</id>
    <content type="html"><![CDATA[<p>I&#8217;ve been piecing together <em><a href="http://groovy.codehaus.org/">Groovy</a></em> and <a href="http://jackson.codehaus.org/"><em>Jackson JSON Processor</em></a> for a recent project (both making the project a breeze to get up and running) and quickly ran into an exception that at first glance may be a bit confusing but the fix was quite simple. The exception was:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'> java.lang.IllegalArgumentException: Conflicting getter definitions for property "error": pix.Response#isError(0 params) vs pix.Response#getError(0 params)
</span><span class='line'>  at ... </span></code></pre></td></tr></table></div></figure>


<p>The reason for the exception is that Groovy automatically generates <em>isProperty()</em> and <em>getProperty()</em> methods for <em>boolean</em> properties on beans. Groovy is a little too clever in this case and Jackson gives up when it sees both.</p>

<p>Assuming a simple Groovy bean:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='java'><span class='line'> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">GroovyBean</span> <span class="o">{</span>
</span><span class='line'>
</span><span class='line'>  <span class="kt">boolean</span> <span class="n">error</span> <span class="o">=</span> <span class="kc">false</span>
</span><span class='line'>  <span class="n">String</span> <span class="n">name</span>
</span><span class='line'>
</span><span class='line'><span class="o">}</span>
</span></code></pre></td></tr></table></div></figure>


<p>The Groovy compiler really turns this into:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
</pre></td><td class='code'><pre><code class='java'><span class='line'> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">GroovyBean</span> <span class="o">{</span>
</span><span class='line'>
</span><span class='line'>  <span class="kt">boolean</span> <span class="n">error</span> <span class="o">=</span> <span class="kc">false</span>
</span><span class='line'>  <span class="n">String</span> <span class="n">name</span>
</span><span class='line'>
</span><span class='line'>  <span class="n">def</span> <span class="nf">getError</span><span class="o">()</span> <span class="o">{</span>
</span><span class='line'>    <span class="k">return</span> <span class="n">error</span>
</span><span class='line'>  <span class="o">}</span>
</span><span class='line'>
</span><span class='line'>  <span class="n">def</span> <span class="nf">isError</span><span class="o">()</span> <span class="o">{</span>
</span><span class='line'>    <span class="k">return</span> <span class="n">error</span>
</span><span class='line'>  <span class="o">}</span>
</span><span class='line'>
</span><span class='line'>  <span class="o">...</span>
</span><span class='line'>
</span><span class='line'><span class="o">}</span>
</span></code></pre></td></tr></table></div></figure>


<p>The fix is to explicitly define a <em>getError()</em> method in our <em>GroovyBean</em> class. This way the Groovy compiler won&#8217;t automatically generate both getters. (Unfortunately, the Groovy compiler still generates <em>getError() </em>if you define <em>isError()</em> so we&#8217;re stuck with <em>getError().)</em> Our new GroovyBean would look like this:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
</pre></td><td class='code'><pre><code class='java'><span class='line'> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">GroovyBean</span> <span class="o">{</span>
</span><span class='line'>
</span><span class='line'>  <span class="kt">boolean</span> <span class="n">error</span> <span class="o">=</span> <span class="kc">false</span>
</span><span class='line'>  <span class="n">String</span> <span class="n">name</span>
</span><span class='line'>
</span><span class='line'>  <span class="n">def</span> <span class="nf">getError</span><span class="o">()</span> <span class="o">{</span>
</span><span class='line'>    <span class="k">return</span> <span class="n">error</span>
</span><span class='line'>  <span class="o">}</span>
</span><span class='line'>
</span><span class='line'>  <span class="o">...</span>
</span><span class='line'>
</span><span class='line'><span class="o">}</span>
</span></code></pre></td></tr></table></div></figure>


<p><em></em> After this change our GroovyBean is serialized into this:</p>

<pre>{"name":"","error":true}</pre>


<p>I like simple fixes.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[The past 3 months]]></title>
    <link href="http://www.cameronstokes.com/2011/05/30/past-3-months/"/>
    <updated>2011-05-30T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/05/30/past-3-months</id>
    <content type="html"><![CDATA[<p>In the past 3 months I have&#8230;</p>

<ul>
    <li>Flown over 45,000 miles through 10 airports</li>
    <li>Driven over 1,000 miles across Europe</li>
    <li>Driven over 3,000 miles across the U.S.</li>
    <li>Driven through 11 states</li>
    <li>Visited 10 countries across 3 continents</li>
    <li>Spent over 40 nights in hotels</li>
    <li><a href="http://cameronstokes.com/2011/04/24/something-new-atlanta-to-seattle/">Moved from Atlanta to Seattle</a></li>
</ul>


<p>I am now settled into a new home and despite the stress of the extra travel and cross-country move, it&#8217;s all been worth it.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Update: Replacement UPS batteries and RefurbUPS.com]]></title>
    <link href="http://www.cameronstokes.com/2011/05/14/update-replacement-ups-batteries-and-refurbups-com/"/>
    <updated>2011-05-14T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/05/14/update-replacement-ups-batteries-and-refurbups-com</id>
    <content type="html"><![CDATA[<p>A quick and disappointing update to my <a href="http://cameronstokes.com/2010/08/23/replacement-ups-batteries-refurbups-com/"><em>Replacement UPS batteries and RefurbUPS.com</em></a> post from last year. Unfortunately, one of the replacement UPS batteries from RefurbUPS has already died and the second one seems to be on the fritz as well. I contacted RefurbUPS through their website and haven&#8217;t heard back. That was 3 months ago. Once this one finally goes kaput I&#8217;ll be replacing it with an OEM battery.</p>

<p>I no longer recommend RefurbUPS.com.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Atlanta to Seattle - Day 6]]></title>
    <link href="http://www.cameronstokes.com/2011/05/11/atlanta-to-seattle-day-6/"/>
    <updated>2011-05-11T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/05/11/atlanta-to-seattle-day-6</id>
    <content type="html"><![CDATA[<p><em>My fiancé Rhonda and I have picked up and moved to Seattle so that   she can pursue a job at Boeing working on their 787 Dreamliner. We  opted  to make the cross-country drive rather than fly. This series of  posts  will be a recap of our drive. Here&#8217;s our adventure&#8230;</em></p>

<h1>Day 6</h1>

<p>Day 6 was our last and final day of driving cross-country from Atlanta to Seattle. It was our longest day of driving of the entire trip (well the longest <em>planned</em> day). We were leaving Twin Falls, ID for Seattle, over 600 miles and supposed to take over 10 hours.</p>

<p>We left the hotel around 8:30 AM, gassed up the truck, and hit the road. Rhonda had looked up the story behind Twin Falls before we left and read that the falls were actually worth seeing. I made a deal with her that if they were within 5 miles of our hotel we would take the detour to go see them. It turns out Shoshone Falls was only 4.7 miles away. It turns out Shoshone Falls is actually taller than Niagara Falls, interesting because Rhonda and I had visited Niagara about 6 months earlier.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/shoshone-falls.jpg" width="480" height="321" title="Rhonda in front of Shoshone Falls" ></p>

<p>After Shoshone Falls we made our away across the Perinne Bridge across the Snake River Canyon and were surprised to see someone jump off the bridge!</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/parachuting.jpg" width="480" height="321" title="Parachuting from the Perrine Bridge" ></p>

<p>I read after the fact that just down from this bridge, Evel Knievel unsuccessfully tried to jump the Snake River Canyon on a motorcycle (see <a href="http://en.wikipedia.org/wiki/Evel_Knievel#Snake_River_Canyon">Wikipedia</a>).</p>

<p>After the excitement of the falls and the BASE jumpers, the rest of the drive was pretty boring. The next notable bit of scenery came as we passed into Washington and saw hops fields on our way into Yakima Valley.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/hops-fields.jpg" width="480" height="300" title="Hops Fields in Washington" ></p>

<p>As we finished the drive into Seattle our excitement began to build as we thought of the coming weeks and months as we settled into our new home. Washington seemed to be the most beautiful stretch of the drive since we left Atlanta, undoubtedly influenced by our excitement. As we arrived in Seattle, the sun was shining and there was barely a cloud in the sky. We took it as a sign of things to come.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/seattle.jpg" width="480" height="360" title="Seattle" ></p>

<p>Total driving on our last day was over 600 miles and right around 10 hours.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Atlanta to Seattle - Day 5]]></title>
    <link href="http://www.cameronstokes.com/2011/05/09/atlanta-to-seattle-day-5/"/>
    <updated>2011-05-09T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/05/09/atlanta-to-seattle-day-5</id>
    <content type="html"><![CDATA[<p><em>My fiancé Rhonda and I have picked up and moved to Seattle so that  she can pursue a job at Boeing working on their 787 Dreamliner. We opted  to make the cross-country drive rather than fly. This series of posts  will be a recap of our drive. Here&#8217;s our adventure&#8230;</em></p>

<h1>Day 5</h1>

<p>The next morning I set out early to check the roads for our escape  from Tetonia. The night before at least 6 inches of snow had come down. I  swept off as much snow as I could from the truck and hit the road. As I  turned down Highway 32 for the second time I noticed the sign we had  missed the night before, &#8220;TRAVEL AT YOUR OWN RISK&#8221;. A plow had gone through before I got there and I drove a decent ways down to get a feel for  the drive. Once comfortable I texted Rhonda and told her we were  hitting the road.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/travel-at-own-risk.jpg" width="480" height="321" title="Travel at Your Own Risk" ></p>

<p>Once I picked up Rhonda and the dogs we made our third attempt for Yellowstone. Turning onto Highway 32 again we reminisced about the night before and how much better the roads were. Unfortunately the road had only been cleared a few miles down the road and we hit packed snow and ice again. Not knowing how far the roads would be bad we kept going. A few miles later we passed a plow going the opposite way and the roads were fine the rest of the way to Yellowstone.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/snow-plow.jpg" width="480" height="321" title="A Snow Plow When We Needed Him" ></p>

<p>We passed through the entrance to Yellowstone around 10:30 AM and made our way toward Old Faithful. On the road to Old Faithful, we saw many Elk and Bison along the side of the road and in the middle of the road in the case of some Bison. Our dogs, Blue and Violet, pitched a fit with every animal we passed. The Bison were easily the largest animals Blue and Violet had ever seen, I only wish I knew what they were thinking. In some cases the Bison were only a few feet from our car.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/bison.jpg" width="480" height="321" title="Bison on the Road" ></p>

<p>Old Faithful was about 30 minutes away from erupting when we arrived. We walked the dogs around and tried to stay warm. We were one of 5 people when we first got there and by the time Old Faithful was about to erupt there was a crowd of about 30. I think we were the only 30 people in the park that day. Old Faithful erupted and captured everyone&#8217;s attention for about 90 seconds, Blue and Violet&#8217;s included. I had visited Old Faithful once before when I was about 10 years old but couldn&#8217;t remember how amazing it really was. Water erupting from a hole in the earth is a truly magical site and one that occurs seemingly like clockwork is even more amazing.</p>

<p>After Old Faithful we walked around the geothermal pools for a while and decided to head for the Grand Canyon of the Yellowstone. We passed many more Bison and even sat in park on the road for about 10 minutes waiting for some to clear from the road. I would have been happy to sit there and watch them except that an RV drove up from the other way and waived a plastic bag out the window and scared them off the road. We found the Grand Canyon of the Yellowstone, snapped some photos, and made our way for the exit. Being the first week the park was open to visitors, most of the park was actually still closed, so we saw as much as we could.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/grand-canyon-of-yellowstone.jpg" width="480" height="321" title="Grand Canyon of The Yellowstone" ></p>

<p>Yellowstone gave us one last surprise on our way out&#8230; a gray wolf!</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/gray-wolf.jpg" width="480" height="300" title="A Gray Wolf in Yellowstone" ></p>

<p>That night we had reservations in Twin Falls, ID about 4 and a half hours away. We made it in roughly that time on smooth, dry, non-icy roads. It was a welcome change from the night before. We arrived at our La Quinta in Twin Falls and I went out to pick up some dinner. We ate dinner, had a beer or 2, and turned in for the night.</p>

<p>Total driving on day 5 was about 300 miles through Wyoming, Montana, and Idaho.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Atlanta to Seattle - Day 4]]></title>
    <link href="http://www.cameronstokes.com/2011/05/02/atlanta-to-seattle-day-4/"/>
    <updated>2011-05-02T00:00:00-07:00</updated>
    <id>http://www.cameronstokes.com/2011/05/02/atlanta-to-seattle-day-4</id>
    <content type="html"><![CDATA[<p><em>My fiancé Rhonda and I have picked up and moved to Seattle so that she can pursue a job at Boeing working on their 787 Dreamliner. We opted to make the cross-country drive rather than fly. This series of posts will be a recap of our drive. Here&#8217;s our adventure&#8230;</em></p>

<h1>Day 4</h1>

<p>Day 4 we left Fort Collins, CO with our eyes set for West Yellowstone, MO driving through <a href="http://en.wikipedia.org/wiki/Jackson,_Wyoming">Jackson, WY</a>. The day started out as any other day, little did we know what we were in for&#8230;</p>

<p>The drive to Jackson was uneventful as were the previous 3 days except by the time we arrived in Jackson we realized we had made a crucial error in underestimating the drive. Somehow in the confusion of mapping the drive, booking hotels, planning the move, and so on what we thought was a 7 hour drive to West Yellowstone was really a 7 hour drive to Jackson and West Yellowstone was another 3 hours down the road.</p>

<p>Not having done our research on the weather or Yellowstone, we trekked on to the South entrance of the park through <a href="http://en.wikipedia.org/wiki/Grand_Teton_National_Park">Grand Teton National Park</a>. We soon learned of our second crucial mistake for the day, though the severity of it would become apparent later. It turns out the South entrance to Yellowstone was not yet open for the season. The snow on the ground should have been our fist clue&#8230; Our only option was to go back through Jackson and around the park. We saw as much of Grand Teton National Park as we could (see exhibit a below) and made our way back to Jackson. Almost as soon as we had turned around I spotted two moose (meese?) off the road. We pulled over and snapped a few hundred photos of them. Once we had drawn a crowd of other cars and once the dogs had taken notice of the moose and started to pitch a fit we kept on moving. (As Rhonda would learn the next day in Yellowstone, if you see a car on the side of the road, there&#8217;s wildlife nearby.)</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/moose.jpg" width="480" height="329" title="Moose in Grand Teton National Park" ></p>

<p>Back in Jackson we turned onto Highway 22 for West Yellowstone. As with the snow, the &#8220;RETURN TO JACKSON WHEN FLASHING&#8221; sign should have been a warning of our impending doom. Nevertheless we kept going and soon found our way going through what I now affectionately call Dead Man&#8217;s Pass. Dead Man&#8217;s Pass is the stretch of Highway 22 that passes through the Grand Tetons from Jackson  to Idaho. As we climbed the Tetons it began to snow. As it snowed the road became icy. Soon enough we were going about 15 MPH on packed ice and snow. Unfortunately the cars ahead of me decided to slow to a crawl and then to a stop and my truck was unable to get traction again and we were stuck. The late 80&#8217;s Ford Taurus behind me (one straight out of Christmas Vacation) was stuck as well and the cars behind him just began to pass us. After several futile attempts at getting moving again we slid and backed up enough to get going back down the mountain. Once I found a suitable place to pull over we stopped and collected our thoughts. The Taurus had already turned around for another try. Despite the conditions I convinced Rhonda to let me try one more attempt before giving up and staying in Jackson for the night.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/highway-22-tetons.jpg" width="480" height="321" title="Highway 22 through The Tetons" ></p>

<p>This time I was able to make it all the way up the mountain and down the other side. Had we had to have stopped as before we would have undoubtedly been stuck again but luckily we did not. Our friend in the Taurus was not so lucky as we passed him as he was heading back down the mountain as before. On the Idaho side of the Tetons the roads cleared up again and I thought we were home free. We passed <a href="http://www.grandtetonbrewing.com/">Grand Teton Brewing Company</a> in Victor, ID (of which I&#8217;ll posting a review of their  Sheep Eater Scotch Ale soon) and once through Tetonia we turned onto Highway 32 for West Yellowstone. It was about 7:30 PM at this point and I was anxious to get to our hotel. Unfortunately it began to snow again. After about 2 miles or so I was following an invisible car&#8217;s snow tracks in front of me and after a couple more miles the only thing visible was the enormous snow flakes that were about 5 feet in front of the truck. At this point we turned around and followed my own tracks back to Tetonia.</p>

<p>Artist&#8217;s Impression of Highway 32:</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/snow.png" width="480" height="360" title="Artist's Impression of Highway 32" ></p>

<p>Back in Tetonia we called the few hotels in town and finally found one that was open and allowed pets. Rhonda asked if they had a Boeing rate and I chuckled as if anyone from Boeing had ever passed through Tetonia enough to have negotiated a corporate rate.</p>

<p>Once in the Teton Mountain View Lodge we realized it was after 9:00 PM and we were hungry. I left Rhonda, Blue, and Violet at the hotel in search of food. Tetonia, population 247, only has a few restaurants and bars and this night only one bar was open. Walking into Dave&#8217;s Pub I got quite a few looks from the locals as I approached the bar. I asked the bartender if her kitchen was still open and she said all they had was pizza. I ordered the supreme and watched as pulled a DiGiorno pizza out of the freeze and tossed it into the oven. I ordered a Bud Light in an attempt to fit in and the fellow next to me introduced himself. His name was Jim and said &#8220;my daddy always told me to make friends with the biggest man in the bar.&#8221; (I&#8217;m 6&#8217;4&#8221;.) I told him our story and turned down his many offers of tequila as I waited for my DiGiorno to finish. I felt validated in my need to turn around and give up for the night as more locals came through the down exclaiming &#8220;it&#8217;s coming down out there&#8221; in much more colorful language. Jim informed me the snow wasn&#8217;t normal for this late of April and as my pizza finished he wished me good luck on my drive back to the hotel. We ate our pizza, finished our growler of Blue Paddle, and called it a night.</p>

<p><img src="http://www.cameronstokes.com/wp-content/uploads/2011/05/teton-mountain-view-lodge.jpg" width="480" height="321" title="Teton Mountain View Lodge" ></p>

<p>Total driving on day 4 was over 500 miles through Colorado, Wyoming, and Idaho.</p>
]]></content>
  </entry>
  
</feed>

