<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Hopville Blog</title>
	<atom:link href="http://blog.hopville.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hopville.com</link>
	<description>Hopville, the free community for homebrewers, has a blog.</description>
	<lastBuildDate>Tue, 29 Nov 2011 17:27:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.hopville.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Hopville Blog</title>
		<link>http://blog.hopville.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.hopville.com/osd.xml" title="Hopville Blog" />
	<atom:link rel='hub' href='http://blog.hopville.com/?pushpress=hub'/>
		<item>
		<title>Another Winter in Hopville</title>
		<link>http://blog.hopville.com/2011/05/23/another-winter-in-hopville/</link>
		<comments>http://blog.hopville.com/2011/05/23/another-winter-in-hopville/#comments</comments>
		<pubDate>Mon, 23 May 2011 22:10:19 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Beer Calculus]]></category>
		<category><![CDATA[Bug Fixes]]></category>
		<category><![CDATA[Hopville]]></category>
		<category><![CDATA[New Features]]></category>

		<guid isPermaLink="false">http://blog.hopville.com/?p=212</guid>
		<description><![CDATA[I&#8217;d started the winter focused on building another juicy web app having no connection to Hopville. It was the kind of project that would make me rich and famous and handsome and smart.  As these things go, while I concentrated all of my time and energy elsewhere, Hopville sneakily enjoyed a significant growth spurt, approximately [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=212&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d started the winter focused on building another juicy web app having no connection to Hopville. It was the kind of project that would make me rich and famous and handsome and smart.  As these things go, while I concentrated all of my time and energy elsewhere, Hopville sneakily enjoyed a significant growth spurt, approximately doubling in traffic in the trailing months of 2010. The site had been on auto-pilot for months, so I was surprised and inspired that it&#8217;s slow, steady march toward success suddenly sped up. I doubled back at the beginning of the year and started working on Hopville in my (still very limited) spare time.</p>
<p>The result is that, over the last few months I&#8217;ve gotten several days&#8217; worth of work on Hopville done. Lots of small changes and new features have made it to the site, mostly unannounced.  While I plan to continue working on new features for the near future (because now I realize that Hopville is the site that will make me rich and famous and handsome and smart), I wanted to take this time to summarize the stuff that has already made it to the site in 2011:</p>
<ul>
<li><strong>Customizable yeast attenuation</strong>. Each strain will continue to have a default attenuation value, but brewers can adjust the attenuation percentage on their recipes in order to better match their own situation or experience.</li>
<li>Hopville now includes a feature allowing you to <strong>follow other brewers</strong>.  Now folks can easily keep tabs on each other&#8217;s brewing activity.</li>
<li>Malt additions can now be marked as <strong>Late Boil Additions</strong>. Ingredients marked in this way will not affect the calculated gravity of the boil, which means they also won&#8217;t affect IBU calculations in formulas sensitive to boil gravity. Many brewers who use extract in their beers requested this feature &#8211; late boil additions are a great way to maximize hop utilization when brewing with extracts.</li>
<li>Another common request was to allow for <strong>&#8220;each&#8221; units for miscellaneous ingredients</strong> so that, for instance, you don&#8217;t have to calculate or guess a specific weight or volume for something unit-based, like a Whirlfloc tablet.</li>
<li>Brewers who measure the color of their finished beer can now store their result as the <strong>measured SRM/EBC</strong>.</li>
<li>Added a page to highlight <a href="http://hopville.com/brewing-statistics"><strong>Brewing Statistics</strong></a>. What&#8217;s there now is a first draft &#8211; as time goes on I hope to find lots of interesting information to pull out of Hopville&#8217;s database and display here in fancy graphs and charts and things.</li>
<li>Added a <strong>&#8220;share&#8221; button</strong> to easily link any recipes to a post on one of several social media sites.</li>
<li>Created the official <a href="http://www.facebook.com/pages/Hopvillecom/172282176154620"><strong>Facebook Page</strong></a> for Hopville.com.</li>
<li>Added a new category for recipes, <strong>Extract with Specialty Grains</strong>. Formerly all Extract recipes were sorted and filtered equally, whether or not the recipe included grains. Now folks looking for one type of extract recipe or the other can find them more easily.</li>
<li>Bug fixes improved sundry items: top navigation, large volume batches, recipe cloning, metrics mode, BeerXML syntax, recipe sorting, recipe &#8220;interestingness&#8221; score, direct heat mash rests, partial mash categorization, lovibond range&#8230;</li>
</ul>
<p>Most importantly (in the grand scheme of things), now you can <a href="http://hopville.com/donate"><strong>Support Hopville</strong></a> with a simple donation via PayPal. I&#8217;m hoping to create a positive feedback loop where Hopville&#8217;s fans provide significant enough financial support to keep me from getting distracted by other projects. By staying focused, the site&#8217;s improvements will come at a much faster rate, hopefully feeding back into increased financial support, meaning the site could become viable as a part-time job for me instead of the hobby site it is now.  Paying members are encouraged to participate directly in this feedback loop by voting for their favorite future features on another new part of the site, the <a href="http://hopville.com/features"><strong>&#8220;Future Features&#8221;</strong> page</a>.</p>
<p>Current recipe count:<strong> 50,205</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=212&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2011/05/23/another-winter-in-hopville/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>
	</item>
		<item>
		<title>Ch-ch-ch-ch-changes</title>
		<link>http://blog.hopville.com/2010/04/10/206/</link>
		<comments>http://blog.hopville.com/2010/04/10/206/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 02:46:46 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hopville.com/2010/04/10/206/</guid>
		<description><![CDATA[Okay folks, Hopville and Beer Calculus are likely to be a little drunk and out of sorts this weekend.  Or maybe it&#8217;s me that will be drunk and out of sorts, and the site will be merely rough around the edges.  I decided to roll out the current state of the major revision I described [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=206&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Okay folks, Hopville and Beer Calculus are likely to be a little drunk and out of sorts this weekend.  Or maybe it&#8217;s me that will be drunk and out of sorts, and the site will be merely rough around the edges.  I decided to roll out the current state of the major revision I described a bit in my last post.  But this is definitely a case where I&#8217;m pushing it live in order to get more eyeballs on it and to light a fire under my butt to finish the parts that aren&#8217;t really ready for prime time.  Bear with me through a slew of changes, probably some times when the site is a little broken, and please report any bugs &#8211; I plan to focus all my (limited) spare time on Hopville this week, so bugs should get fixed pretty quickly&#8230;within a day or so.  The ingredient &#8220;info&#8221; links and ingredient search will be back on the site ASAP &#8211; just have to get them working properly with the new Beer Calculus code.</p>
<p>Current recipe count: <strong>14,960</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/206/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=206&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2010/04/10/206/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>
	</item>
		<item>
		<title>The &#8220;February 25th Release&#8221; was very poorly named.</title>
		<link>http://blog.hopville.com/2010/03/16/the-february-25th-release-was-very-poorly-named/</link>
		<comments>http://blog.hopville.com/2010/03/16/the-february-25th-release-was-very-poorly-named/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 06:38:33 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Web/Technical]]></category>

		<guid isPermaLink="false">http://blog.hopville.com/?p=193</guid>
		<description><![CDATA[Well.  I made a personal deadline to roll out a new release of Hopville by February 25th, the site&#8217;s second birthday, but things have changed quite a bit since I was making any personal dealines.  First, I was unexpectedly asked to audition for a band.  I managed to pass, so now I&#8217;m practicing with and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=193&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well.  I made a personal deadline to roll out a new release of Hopville by February 25th, the site&#8217;s second birthday, but things have changed quite a bit since I was making any personal dealines.  First, I was unexpectedly asked to audition for a band.  I managed to pass, so now I&#8217;m practicing with and gigging with and learning dozens of new songs for a band&#8230;which is time-consuming.  Meanwhile, the job I started in February ended up having a pretty intensive, high-productivity work environment with long hours and very little wiggle room.  No complaints here &#8211; the new band and new job are great &#8211; but much of the free time I might&#8217;ve had over the last month and a half simply&#8230;vanished.</p>
<p>Thinks are calmer now as I settle into both new roles, and I continue to make progress on the site.  I&#8217;m now aiming to roll out the new stuff by the end of March. You can mark my words, or cross your fingers, or knock on wood &#8211; not really sure how to instruct you at this point.  But anyway…what is the new stuff?  I&#8217;ve boiled this release down to two major updates: better site navigation and improved Beer Calculus performance.</p>
<p>YOU SHOULD STOP READING NOW IF YOU&#8217;RE NOT A GEEK.</p>
<p>The performance improvements are what made this release a challenging one.  I rewrote all the front-end parts of Beer Calculus to make them easier to maintain and to improve the way the front-end communicates to the back-end.  Current users won&#8217;t be shocked by the changes, but their ongoing use of the site will be every-so-subtly more fun and rewarding.  Like buying a newer, noticeably-faster-at-first computer.  And on my end, the code is already cleaner and easier to manage, which means I hope to build new stuff at a faster pace than before.  I&#8217;m definitely looking forward to getting this release out the door &#8211; when a new launch (including lots of small UI improvements) is overdue by a whole month the existing site becomes quite an eyesore.</p>
<p>THIS IS YOUR SECOND WARNING, NON-NERD.  STOP READING!</p>
<p>Since this blog post announces that there is <strong>nothing new</strong> to see, I figured I&#8217;d use this opportunity to describe those behind-the-scenes changes that nobody will notice or want to hear about on launch day anyway.  Here&#8217;s what I&#8217;ve been working on:</p>
<ul>
<li>All Beer Calculus HTML will be rendered via <strong>HAML</strong> templates instead of ERB.  Net effect? The HTML will be more structurally and semantically sound, making the pages easier for browsers to render, easier for search engines to crawl, and easier for humans (especially me) to read.</li>
</ul>
<ul>
<li> Beer Calculus code goes <strong>RESTful</strong>.  Net effect?  Lighter pages and simpler, more AJAX-centric page requests result in a zippier interface that&#8217;s more responsive and fun to use.  Ever notice the the scary message your browser sends you every time you try a page reload on Beer Calculus?  Yeah…that won&#8217;t happen anymore.</li>
</ul>
<ul>
<li> JavaScript moves to the <strong>jQuery</strong> framework.  I came late to the jQuery party but there&#8217;s no stopping me now.  Net effect? Smoother and more responsive effects &#8211; web interfaces getting closer and closer to behaving as well as desktop software, without having to resort to Flash.  I still thought I&#8217;d have to resort to Flash (meaning, rewrite the calculator all over again in ActionScript) as of about six months ago, so it&#8217;s big news that JavaScript has matured to this inflection point.  Lots of cooler interface stuff to follow.</li>
</ul>
<p>Current recipe count: <strong>13,687</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/193/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/193/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/193/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=193&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2010/03/16/the-february-25th-release-was-very-poorly-named/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>
	</item>
		<item>
		<title>Mayor of Hopville back in the office.</title>
		<link>http://blog.hopville.com/2010/01/28/mayor-of-hopville-back-in-the-office/</link>
		<comments>http://blog.hopville.com/2010/01/28/mayor-of-hopville-back-in-the-office/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 19:38:18 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Hopville]]></category>
		<category><![CDATA[New Features]]></category>

		<guid isPermaLink="false">http://blog.hopville.com/?p=180</guid>
		<description><![CDATA[I recently got hired again after six months of (mostly voluntary) unemployment.  While I normally don&#8217;t muddy up the Hopville blog with details of my personal life, this is relevant purely because of how shockingly little I accomplished during all that time off.  I mean sure,  I traveled a lot. I worked on the house. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=180&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently got hired again after six months of (mostly voluntary) unemployment.  While I normally don&#8217;t muddy up the Hopville blog with details of my personal life, this is relevant purely because of how <em>shockingly little I accomplished during all that time off</em>.  I mean sure,  I traveled a lot. I worked on the house. I interviewed and interviewed and interviewed some more.  Did some volunteer work. And so on.  But I took a long overdue break from the tech industry, and from software development in general, for the <em>entire time</em>.</p>
<p>Luckily for Hopville, now that I am about to start work again, I&#8217;m learning lots of knew stuff and I&#8217;m completely energized about getting back into web development.  On a recent trip back east, I had some productive time on the plane &#8211; including my first-ever launch of website features from a chair in the sky (since my Delta flights were equipped with WiFi).  Here&#8217;s what&#8217;s new:</p>
<ul>
<li>Recipe pages now have dedicated sections where the brewer can add <strong>tasting notes</strong> and<strong> taste ratings</strong>.</li>
<li>Brewers pitching <strong>multiple yeasts in a single batch</strong> can now list unlimited yeast strains and bacteria cultures on a recipe page.  Previously only one yeast was allowed, so brewers pitching multiple cultures had to list the supplemental strains in the recipe comments.  Now the extra cultures become a part of the main recipe.</li>
<li><strong>Measured OG and FG</strong> can be recorded on recipe pages &#8211; when present, the display of the measured values takes priority over the values estimates by Beer Calculus.</li>
<li>Brewers can easily export their entire Hopville <strong>recipe catalog as BeerXML</strong> from their recipe page.  This is a nice shortcut for folks who want to backup or export their entire list of recipes at once, rather than one at a time from each recipe page.</li>
<li>New and slightly more enticing <strong>homepage</strong>&#8230;though it&#8217;s still a work in progress, design-wise.  Much improved version launching in a few weeks.</li>
<li><strong>Featured recipes!</strong> Recipes are now given an &#8220;interestingness&#8221; score which allows Hopville to feature lists of the juiciest recipes on the site.  Now that there are over 10,000 recipes on Hopville, this kind of highlighting will become an important signal-vs-noise aid, making it convenient to find the best recipes quickly.</li>
</ul>
<p>Over the next month I&#8217;ll be continuing to do some major upgrades in preparation for a larger rollout of changes I&#8217;m planning to launch on February 25th.  It&#8217;s nice to be having fun with code again&#8230;and Hopville stands to reap the benefits.</p>
<p>Current recipe count: <strong>11,134</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/180/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=180&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2010/01/28/mayor-of-hopville-back-in-the-office/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>
	</item>
		<item>
		<title>Defaulting to Tinseth</title>
		<link>http://blog.hopville.com/2009/12/09/defaulting-to-tinseth/</link>
		<comments>http://blog.hopville.com/2009/12/09/defaulting-to-tinseth/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 18:40:22 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[hopville ibu]]></category>

		<guid isPermaLink="false">http://hopville.wordpress.com/2009/12/09/defaulting-to-tinseth/</guid>
		<description><![CDATA[It&#8217;s been many moons since I&#8217;ve updated anything on Hopville.  I blame the old job and the quitting of the old job and the traveling all summer and the search for a new job.  I&#8217;ve got excuses, see.  I&#8217;ve been lax, so I thought I&#8217;d announce this update.  Even though it&#8217;s small, it can have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=171&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been many moons since I&#8217;ve updated anything on Hopville.  I blame the old job and the quitting of the old job and the traveling all summer and the search for a new job.  I&#8217;ve got excuses, see.  I&#8217;ve been lax, so I thought I&#8217;d announce this update.  Even though it&#8217;s small, it can have a large effect on recipe design.  Previously, the default <strong>IBU calculation for Beer Calculus</strong> was based on an average of a few popular formulas.  It did four calculations (Garetz, Rager, Tinseth, and the legacy Hopville calc) and averaged them together.  I chose to blend a few conflicting numbers together instead of committing to a single one by default.  That neutral position tended to cause some confusion among both types of brewers: those who cared which formula was in use, but didn&#8217;t know you could change it, and those who didn&#8217;t care at all. Plus, the only indication that a formula selection was being made was a subtle message &#8220;avg&#8221; near the IBU result &#8211; pretty vague about what was happening behind the scenes. <strong>Recipes now default to the Tinseth formula.</strong> Hopefully this will satisfy those who prefer this formula, and also clarify the default calculation to folks who don&#8217;t really care.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=171&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2009/12/09/defaulting-to-tinseth/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>
	</item>
		<item>
		<title>Little feature weekend</title>
		<link>http://blog.hopville.com/2009/02/01/little-feature-weekend/</link>
		<comments>http://blog.hopville.com/2009/02/01/little-feature-weekend/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 06:21:44 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.hopville.com/?p=150</guid>
		<description><![CDATA[Checked off a few random things on the ever-growing TODO list for Hopville this weekend. Added BJCP style validation to Beer Calculus.  As you work on recipes in the calculator, you&#8217;ll see warnings whenever the calculations seem to put your recipe out of bounds for the chosen beer style.  These warnings can be ignored entirely, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=150&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Checked off a few random things on the ever-growing <strong>TODO</strong> list for Hopville this weekend.</p>
<ul>
<li>Added <strong>BJCP style validation</strong> to Beer Calculus.  As you work on recipes in the calculator, you&#8217;ll see warnings whenever the calculations seem to put your recipe out of bounds for the chosen beer style.  These warnings can be ignored entirely, but at least the information is now available where it would be most useful.</li>
<li>Added a <strong>random recipe</strong> link to the recipe navigation menu.  Self-explanatory.  And fun!  <a href="http://hopville.com/random">Try it!</a></li>
<li>Moved Beer Calculus so that it lives under the hopville.com domain at <strong>beercalculus.hopville.com</strong>.  This shouldn&#8217;t have any effect on users, but it&#8217;ll help with Hopville&#8217;s &#8220;Google juice&#8221;, keep me from having to jump through hoops to maintain state between two domains, and make it more apparent that Hopville is there to support Beer Calculus.  Since the calculator preceded Hopville by so many years, lots of folks don&#8217;t even know they can save their BC recipes yet!</li>
</ul>
<p>Current recipe count:<strong class="nowrap"> 2026<a href="http://hopville.com/recipes"><br />
</a></strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/150/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=150&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2009/02/01/little-feature-weekend/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>
	</item>
		<item>
		<title>In Search of the Real Hopville</title>
		<link>http://blog.hopville.com/2008/12/28/in-search-of-the-real-hopville/</link>
		<comments>http://blog.hopville.com/2008/12/28/in-search-of-the-real-hopville/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 07:14:19 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Hopville]]></category>

		<guid isPermaLink="false">http://blog.hopville.com/?p=87</guid>
		<description><![CDATA[I was traveling through Oregon this weekend and decided to take a detour to the real Hopville, a rural area in Oregon.  Google Maps makes it pretty clear that Hopville is a placeless place, in that there is no town or village or landmark to speak of.  But Google suggests that it does have a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=87&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was traveling through Oregon this weekend and decided to take a detour to <strong>the real Hopville</strong>, a rural area in Oregon.  Google Maps makes it pretty clear that Hopville is a placeless place, in that there is no town or village or landmark to speak of.  But Google suggests that it does have a location, which it places along a roadside by some farmhouses.  The driving directions from Eugene actually ended with the grand finale: &#8220;Turn left at Wigrich Rd, then go 75 ft.&#8221;</p>
<div id="attachment_50" class="wp-caption alignnone" style="width: 490px"><img class="size-full wp-image-50" title="Hopville, OR" src="http://hopville.files.wordpress.com/2008/12/hopville-or.jpg?w=480&#038;h=319" alt="The location of Hopville, OR according to Google Maps" width="480" height="319" /><p class="wp-caption-text">The location of Hopville, OR according to Google Maps</p></div>
<p>So, I had to go there, and I had to turn left at Wigrich road, and I had to go that 75 ft.  How could I not?  Knowing in advance that &#8220;Hopville&#8221; would amount to two Willamette Valley crop fields divided by a road, I was pleasantly surprised to discover that one of those two fields is for hops.  <strong>Trellised fields</strong> were pretty common in the area, as I discovered with a little more exploration.  I drove around for a while looking for a sign (literally, a sign) that I was in Hopville, hoping to snap some photos to use on <a href="http://hopville.com">Hopville.com</a>.  (Ever notice that the site has no logo?  Well, one day soon, I hope that it will, and a snapshot with the word &#8220;Hopville&#8221; might&#8217;ve helped a bit.)  But here&#8217;s the thing: <em>I never found any sign of Hopville</em>.  But I did find, at the dead end of Wigrich Road (a right turn on Wigrich being the dead end direction), a very good sign:</p>
<p><img class="alignnone size-full wp-image-51" title="Rogue Farms Sign" src="http://hopville.files.wordpress.com/2008/12/rogue-farms.jpg?w=480&#038;h=319" alt="Rogue Farms Sign" width="480" height="319" /></p>
<p>Yep, I stumpled upon the very hop yard where the estimable Oregon brewery Rogue grows and processes its own hops.</p>
<p>I researched this a bit online after I&#8217;d returned home.  Rogue never mentions Hopville in any of their literature, so I am not sure if anyone besides Google believes the place exists. But, I&#8217;m just sayin&#8217;, here&#8217;s a wider view of the Hopville map:</p>
<p><img class="alignnone size-full wp-image-52" title="Hopville to Rogue Farms" src="http://hopville.files.wordpress.com/2008/12/rogue-near.jpg?w=480&#038;h=276" alt="Hopville to Rogue Farms" width="480" height="276" /></p>
<p>Rogue brands their hops using a town a few miles northwest of this area, a town called Independence.  Apparently it was once the &#8220;hop capital of the world&#8221;.  From Rogue&#8217;s press release:</p>
<blockquote><p>In May of 2008, Rogue entered into a strategic alliance with heritage hop growers the Coleman family. Rogue planted 22 acres of hops and will add 20 more this fall on the former John I. Haas Alluvial Hop Farm just south of Independence. The land, at the end of Wigrich Road, is part of a historic hop farm called the Wigrich Ranch, that in the 1920s was the largest hop yard under a single trellis in the world.</p></blockquote>
<p>Quite a coincidence considering that I was only trying to find Hopville; apparently Rogue was too.  If I didn&#8217;t have <a href="http://maritimebrewery.ypguides.net/">Maritime Pacific</a> as my neighborhood brewery in Seattle, I think Rogue would have to be Hopville&#8217;s official microbrewery.  Maybe I should return during growing season so I can see hops on those trellises and see if Rogue wants to sponsor their &#8220;neighborhood website&#8221;.  Hmm&#8230;.</p>
<p>Current Hopville recipe count: <strong>1554</strong>. Hey, ain&#8217;t that <a href="http://www.newbelgium.com/beers_bk.php">a beer</a>?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=87&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2008/12/28/in-search-of-the-real-hopville/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>

		<media:content url="http://hopville.files.wordpress.com/2008/12/hopville-or.jpg" medium="image">
			<media:title type="html">Hopville, OR</media:title>
		</media:content>

		<media:content url="http://hopville.files.wordpress.com/2008/12/rogue-farms.jpg" medium="image">
			<media:title type="html">Rogue Farms Sign</media:title>
		</media:content>

		<media:content url="http://hopville.files.wordpress.com/2008/12/rogue-near.jpg" medium="image">
			<media:title type="html">Hopville to Rogue Farms</media:title>
		</media:content>
	</item>
		<item>
		<title>Milestone!</title>
		<link>http://blog.hopville.com/2008/11/05/major-milestone/</link>
		<comments>http://blog.hopville.com/2008/11/05/major-milestone/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 23:10:31 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Hopville]]></category>

		<guid isPermaLink="false">http://hopville.wordpress.com/?p=40</guid>
		<description><![CDATA[Yesterday was truly an historic day, folks.  Know why?  Hopville passed the mark of 1,000 homebrew recipes.  That&#8217;s pretty good for an almost-ready website, I&#8217;d say.  (Apparently, there was some sort of election too.  Check the interwebs.)<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=40&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday was truly an historic day, folks.  Know why?  Hopville passed the mark of <strong>1,000 homebrew recipes</strong>.  That&#8217;s pretty good for an almost-ready website, I&#8217;d say.  (Apparently, there was some sort of election too.  Check the interwebs.)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=40&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2008/11/05/major-milestone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>
	</item>
		<item>
		<title>Database Exposure</title>
		<link>http://blog.hopville.com/2008/09/22/database-exposure/</link>
		<comments>http://blog.hopville.com/2008/09/22/database-exposure/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 05:05:16 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hopville.wordpress.com/?p=28</guid>
		<description><![CDATA[When I last checked in about development status, I was about to shoehorn the BJCP style information into the database.  Well, consider the  most recent guidelines shoehorned.  They still need to be cleaned up a little bit, the textual data was a little messy, but at least the stats and descriptions are there now for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=28&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I last checked in about development status, I was about to shoehorn the <strong>BJCP style information</strong> into the database.  Well, consider the  most recent guidelines shoehorned.  They still need to be cleaned up a little bit, the textual data was a little messy, but at least the stats and descriptions are there now for easy reference.  In the process of fleshing out the style pages, I also made it easier to browse recipes within the style, narrowing down to extract, all grain, or partial mash.  And the relatively new search feature is an easy way to cut through the database looking for specific styles too.</p>
<p>In other developments:</p>
<ul>
<li><strong>I finally opened up the ingredients database to the masses.</strong> Previously I was the only person who could add new ingredients into the database, so folks had to drop me an email request or list their unlisted ingredients inside the recipe notes.  Now anybody can add anything right into the recipe on their own.</li>
<li>To accommodate an open ingredient database, I added <strong>inline ingredient search</strong> to Beer Calculus.  Now, rather than having to read through an alphabetical select box to find the malt, hop, yeast, or miscellaneous ingredient you need, you can switch on a search box and find the selection by typing a keyword or two.  And if the ingredient you&#8217;re searching for can&#8217;t be found, it&#8217;s easy to add it.</li>
<li>Previously all IBU results were calculated using an ages-old custom formula that combined parts of the &#8220;Daniels method&#8221; with the &#8220;Garetz method&#8221;.  I&#8217;ve now <strong>updated the IBU number to be customizable to the popular formulas (Tinseth, Garetz, Rager)</strong>, but I also left in the old &#8220;Hopville method&#8221; so that existing recipes keep their existing IBU value.  By default, new recipes added to Hopville will calculate IBUs by averaging the three commonly used formulas, but brewers with a formula preference can customize to use that instead.</li>
<li>Fixed some rounding errors introduced by the recent migration to metrics-based recipe storage, and some other bugs I introduced in the broad sweep of new changes.</li>
</ul>
<p>Current recipe count: <strong>675</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=28&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2008/09/22/database-exposure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>
	</item>
		<item>
		<title>automatic color palette for Rails</title>
		<link>http://blog.hopville.com/2008/09/18/automatic-color-palette-for-rails/</link>
		<comments>http://blog.hopville.com/2008/09/18/automatic-color-palette-for-rails/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 18:48:58 +0000</pubDate>
		<dc:creator>Todd Gehman</dc:creator>
				<category><![CDATA[Web/Technical]]></category>

		<guid isPermaLink="false">http://hopville.wordpress.com/?p=23</guid>
		<description><![CDATA[It&#8217;s difficult trying to standardize colors across a site. I picked up a tip somewhere to keep a legend at the top of a stylesheet, something like this; /* HOPVILLE COLORS F9F9FF off white 4a443c main text B34700 link text FF6600 action link text eeeeee tiger body */ Then you have an easy hex color [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=23&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s difficult trying to standardize colors across a site.  I picked up a tip somewhere to keep a legend at the top of a stylesheet, something like this;</p>
<pre>/*
HOPVILLE COLORS
F9F9FF off white
4a443c main text
B34700 link text
FF6600 action link text
eeeeee tiger body
*/</pre>
<p>Then you have an easy hex color reference right at the top of your main stylesheet.  But &#8220;easy&#8221; becomes relative.  On Hopville, I ended up describing shades of green as &#8220;medium&#8221;, &#8220;medium light&#8221;, &#8220;lightest&#8221;, and &#8220;extra-lightest&#8221;.  Extra-lightest green?  Which one was that again?  And as the site&#8217;s color scheme has evolved, the legend has gotten out of date.  Some of the colors on the site aren&#8217;t in the legend any more, some of the colors in the legend aren&#8217;t in use anymore, and so on.<br />
It just occurred to me that this could be automated, that I could scan all the stylesheets with a script, pull out the color attributes, and generate a <a href="http://hopville.com/about/swatch">color swatch page</a> on the fly.  So when I want &#8220;that one shade of green&#8221;, I can go look it up and cut and paste the hex value, without having to dig through stylesheets or maintain a color palette legend.  Rails made it easy to generate it on the fly with an erb template (ignoring MVC for simplicity&#8217;s sake) and not even have to set up a cronjob.</p>
<div id="attachment_24" class="wp-caption alignnone" style="width: 310px"><a href="http://hopville.files.wordpress.com/2008/09/swatch-screenshot.jpg"><img class="size-medium wp-image-24" title="swatch-screenshot" src="http://hopville.files.wordpress.com/2008/09/swatch-screenshot.jpg?w=300&#038;h=214" alt="Dynamic color palette browser created from stylesheets in Rails." width="300" height="214" /></a><p class="wp-caption-text">Dynamic color palette browser created from stylesheets in Rails.</p></div>
<p>The code:</p>
<pre>&lt;%
stylesheet_dir = RAILS_ROOT + '/public/stylesheets'
files = Dir.open(stylesheet_dir)
css_files = []
colors_in_stylesheets = Hash.new {}

files.each do |file|
  if file.match(/\.css$/)
     File.open(stylesheet_dir + '/' + file).each do |line|
        if line.match(/\#([0-9a-f]{3,6})\;/i)
          unless colors_in_stylesheets[file]
            colors_in_stylesheets[file] = {}
          end
          colors_in_stylesheets[file][$1.downcase] = 1
        end
      end
  end
end

block_size = 100
%&gt;

&lt;style type="text/css"&gt;
div.swatch-block {
  margin:10px;
  float:left;
  width:&lt;%= block_size %&gt;px;
  height:&lt;%= block_size %&gt;px;
  text-align:center;
  border:1px dotted #ccc;
}
div.swatch-block span {
  background-color:#fff;
  color:#999;
  border:1px dotted #ccc;
  padding:3px;
}
h2 { clear:left; }
&lt;/style&gt;

&lt;h1&gt;Color Swatch&lt;/h1&gt;
&lt;% colors_in_stylesheets.keys.sort{|a,b|
   colors_in_stylesheets[b].size &lt;=&gt; colors_in_stylesheets[a].size
   }.each do |stylesheet| %&gt;
  &lt;h2&gt;&lt;%= stylesheet %&gt;&lt;/h2&gt;
  &lt;% colors_in_stylesheets[stylesheet].sort.each do |color, garbage| %&gt;
    &lt;div class="swatch-block" style="background-color:#&lt;%= color %&gt;;"&gt;
    &lt;span&gt;&lt;%= color %&gt;&lt;/span&gt;
    &lt;/div&gt;
  &lt;% end %&gt;
&lt;% end %&gt;</pre>
<p>This works great for me since I always use hex colors, but I imagine it could be tweaked to find other color definitions as well.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hopville.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hopville.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hopville.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hopville.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hopville.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hopville.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hopville.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hopville.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hopville.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hopville.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hopville.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hopville.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hopville.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hopville.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.hopville.com&amp;blog=3012215&amp;post=23&amp;subd=hopville&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.hopville.com/2008/09/18/automatic-color-palette-for-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4277a2020ec17e994f82248667c41e53?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pugetive</media:title>
		</media:content>

		<media:content url="http://hopville.files.wordpress.com/2008/09/swatch-screenshot.jpg?w=300" medium="image">
			<media:title type="html">swatch-screenshot</media:title>
		</media:content>
	</item>
	</channel>
</rss>
