<?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/"
	>

<channel>
	<title>Beer and Coding in Eugene &#187; Coding</title>
	<atom:link href="http://beerandcoding.com/category/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://beerandcoding.com</link>
	<description>in Eugene</description>
	<lastBuildDate>Thu, 09 Sep 2010 20:06:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Few New Things&#8230;</title>
		<link>http://beerandcoding.com/a-few-new-things/</link>
		<comments>http://beerandcoding.com/a-few-new-things/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 23:06:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Beer]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Homebrew]]></category>

		<guid isPermaLink="false">http://beerandcoding.com/?p=2006</guid>
		<description><![CDATA[<p>A couple quick website updates and a comment on the &#8220;new&#8221; homebrew-restricting OLCC&#8217; law should do it for today.</p>
<p>Eugene Beer Directory When I posted my Eugene Beer Directory a few weeks ago, <a title="It's Pub Night" href="http://www.its-pub-night.com/" target="_blank">Bill</a> and Jack were quick to point out that the <a title="Beer Mapping Project" href="http://beermapping.com/" target="_blank">Beer Mapping Project</a> had [...]]]></description>
			<content:encoded><![CDATA[<p>A couple quick website updates and a comment on the &#8220;new&#8221; homebrew-restricting OLCC&#8217; law should do it for today.</p>
<p><strong>Eugene Beer Directory</strong> <br />When I posted my Eugene Beer Directory a few weeks ago, <strong><a title="It's Pub Night" href="http://www.its-pub-night.com/" target="_blank">Bill</a></strong> and Jack were quick to point out that the <strong><a title="Beer Mapping Project" href="http://beermapping.com/" target="_blank">Beer Mapping Project</a></strong> had most of the information I was looking for.</p>
<p>Now, Beer Mapping is a great tool, but it doesn&#8217;t have everything I want, and the information it does have takes a few mouse clicks and page loads to get at. Not knocking their design or anything; it is perfect for what they are trying to accomplish, but I want something that is more take-out menu than interactive map. And I think I am getting closer.</p>
<p>If you take a look at the Directory (tab at the top of the page), it now has much more information that when I started, including hours and prices. Please excuse the general ugliness; I am working on a style sheet that will display correctly in IE7, IE8, Firefox and Chrome, but until it is finished, you get drab gray boxes.</p>
<p>Bottleshops and an Event Calendar are next on my list of things to add. I will also probably embed a Beer Mapping Project map at some point. I fiddled around with their Wordpress widget a little, but I think I will end up using their API directly instead.</p>
<p><strong>Beer Test</strong><br />Looking back even further (March), I coded up a simple Beer Test; a starting point for an eventual Android App. At launch, it provided a BJCP style and asked you to correctly choose the ABV, IBU or SRM range from a list of 5 possible answers.</p>
<p>For phase two, I was going to include correctly matching BJCP aroma, appearance, flavor, mouthfeel, overall impression, comments and ingredients descriptions. This proved to be more of a challenge than I anticipated. Many of the descriptions reference the style within them, either directly (Export Stout), or indirectly (Stouts). This made about half of the questions dead giveaways. I tried to solve the problem programmatically, scanning the description as it was chosen and masking all occurrences of the style name. This worked for direct references, but not indirect ones. Next, I tried a static black list, but it filtered the descriptions too much; removing the word Stout from the comments description of a Robust Porter and the like. After several attempts, I arrived at the conclusion that I am just going to have to create a new table of modified  BJCP descriptions, edited on a case by case basis.</p>
<p>In the mean time, I tied the Beer Test into the database used for my Beer App. Beer and brewery matching questions are now part of the rotation. I have set up the code that chooses beers to pick only those that are available year-round and have unique names, so there is no chance you will be given &#8221;Summer Ale&#8221; and five breweries that all produce a beer under that name. I&#8217;ll warn that the beer matching is still far from perfect. I still need to put some filtering in place to keep obvious things like &#8220;Full Sail Amber&#8221; out of the list.</p>
<p>By tapping into the Beer App database, I will be able to expand the possible questions, like match a brewery to the correct state or pick which beer is a winter seasonal. I will also be changing the test from its current open format to a finite length, providing a score at the end. Until then, the current test can be accessed from the Beer Test tab at the top of the page. I will mention that my host is pretty laggy today, so it may take a couple seconds to load a new question after pressing the &#8220;play again&#8221; button.</p>
<p><strong>OLCC&#8217;s &#8220;New&#8221; Law</strong></p>
<p><a href="http://www.leg.state.or.us/ors/471.html"><strong>ORS 471.403</strong></a><br />“No person shall brew, ferment, distill, blend or rectify any alcoholic liquor unless licensed so to do by the Oregon Liquor Control Commission. However, the Liquor Control Act does not apply to the making or keeping of naturally fermented wines and fruit juices or beer in the home, for home consumption and not for sale.”</p>
<p>This law was reinterpreted this week to mean that homebrew can only be consumed at the site it was crafted; effectively making everything from homebrew competitions to taking a beer you made to your buddy&#8217;s house illegal. While this probably isn&#8217;t going to hinder any summer cookouts, it does stop dead any organized competitions that want to keep things legit. It also creates a problem for homebrew clubs that meet at breweries and don&#8217;t want to put their hosts in the OLCC crosshairs.</p>
<p>Already the Oregon State Fair has cancelled this year&#8217;s beer and wine competitions and the Oregon Brew Crew has posted a notice not to bring homebrew to the next club meeting at Widmer. I am going to try to get a hold of someone from the Cascade Brewers Society to see if they plan to issue a similar restriction at their monthly Eugene City Brewery meetings.</p>
<p>Both Lisa and Jeff already have discussions going about this topic, so if you have something to add, I would suggest doing it in one of these two posts:<br /><strong><a title="Oregon Homebrew Threatened" href="http://lisamorrison.hoppress.com/2010/06/29/oregon-homebrew-threatened" target="_blank">Lisa Morrison &#8211; Oregon Homebrew Threatened</a></strong><br /><strong><a title="OLCC Blowback Escalates" href="http://beervana.blogspot.com/2010/06/olcc-blowback-escalates.html" target="_blank">Beervana &#8211; OLCC Blowback Escalates</a></strong></p>
<p>Lisa has links for contacting state representatives, senators and the OLCC. And at the end of Jeff&#8217;s post, you can find the Facebook group set up to protest the &#8220;new&#8221; law.</p>
<p>Well, as usual, this turned out much longer than I had originally intended. I need to learn to stop using the word &#8220;quick&#8221; in the opening sentence.</p>
<p>Cheers!<br />Kevin</p>
<!-- Added by Google Maps (Begin) -->
		<script type="text/javascript">
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById('__ie_onload');
script.onreadystatechange = function() {
  if (this.readyState == 'complete') {}
};
/*@end @*/
if (document.addEventListener) {}</script><!-- Added by Google Maps (End) -->]]></content:encoded>
			<wfw:commentRss>http://beerandcoding.com/a-few-new-things/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Coding Project: Beer Quiz</title>
		<link>http://beerandcoding.com/coding-project-beer-quiz/</link>
		<comments>http://beerandcoding.com/coding-project-beer-quiz/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 17:39:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Beer]]></category>
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://beerandcoding.com/?p=1850</guid>
		<description><![CDATA[<p><em>Update: The demo below now asks IBU and SRM questions in addition to ABV.</em></p>
<p>It&#8217;s been about a week since my last post. Don&#8217;t worry, I haven&#8217;t lost my interest in beer; I&#8217;ve just been busily working on my latest coding project, a Beer Quiz. I have pulled all the BJCP style guideline information into a [...]]]></description>
			<content:encoded><![CDATA[<p><em>Update: The demo below now asks IBU and SRM questions in addition to ABV.</em></p>
<p>It&#8217;s been about a week since my last post. Don&#8217;t worry, I haven&#8217;t lost my interest in beer; I&#8217;ve just been busily working on my latest coding project, a Beer Quiz. I have pulled all the BJCP style guideline information into a database and written a script that uses the info to generate quiz questions.</p>
<p>This project is a exercise for me in concise coding, as I frequently find myself duplicating chunks of code that could easily be handled by a single routine. To keep the code as small as possible, I am using an XML file to hold all the question parameters. The script randomly selects a question type from the XML file. Using the information retrieved, a SQL query is executed to gather a handful of possible answers; one correct, the rest false. Since all the question information is held in the XML file, new question types can be added without any changes to the code.</p>
<p>Here is an example of the code in action. The script is running in an iframe, so if you are running ad blocker, you may need to turn it off.</p>
<p><center><iframe src="../beertest.html" width=100% height="200" marginheight="0" marginwidth="0" frameborder="0" scrolling="off"></iframe></center></p>
<p>In the demo above, only ABV range is being asked. When the script is finished, original gravity, final gravity, IBU and SRM range will also be included. As will BJCP aroma, appearance, flavor, mouthfeel, overall impression, comments and ingredients questions. Since there are 80 BJCP styles, and each of the twelve questions can be asked two ways (match a style to the information, or match information to a style), the Beer Quiz should contain over 1900 unique questions.</p>
<p>I am shooting to have the quiz finished in about a week or so. Once complete, I plan to to recreate it as an Android app; my first project on the platform. If you have any ideas for the Beer Quiz or notice any problems with the demo above, let me know.</p>
<p>Cheers!<br />
Kevin</p>
<!-- Added by Google Maps (Begin) -->
		<script type="text/javascript">
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById('__ie_onload');
script.onreadystatechange = function() {
  if (this.readyState == 'complete') {}
};
/*@end @*/
if (document.addEventListener) {}</script><!-- Added by Google Maps (End) -->]]></content:encoded>
			<wfw:commentRss>http://beerandcoding.com/coding-project-beer-quiz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Coding Project</title>
		<link>http://beerandcoding.com/new-coding-project/</link>
		<comments>http://beerandcoding.com/new-coding-project/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 05:54:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Beer]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://beerandcoding.com/?p=1702</guid>
		<description><![CDATA[<p>The series of projects I have been slogging through at work has left me pretty burnt-out when it comes to coding in my free time. Fortunately my workload is starting to lighten, so I am finally going to put the <a title="Arduino" href="http://arduino.cc" target="_blank">Arduino</a> a friend gave me for Christmas to use. Arduino is an [...]]]></description>
			<content:encoded><![CDATA[<p>The series of projects I have been slogging through at work has left me pretty burnt-out when it comes to coding in my free time. Fortunately my workload is starting to lighten, so I am finally going to put the <strong><a title="Arduino" href="http://arduino.cc" target="_blank">Arduino</a></strong> a friend gave me for Christmas to use. Arduino is an inexpensive open-source microcontroller platform based on Amtel&#8217;s ATMEGA chip. For a much better and much lengthier explanation of Arduino, check out the official site in the link above.</p>
<p><img class="aligncenter size-full wp-image-1705" title="arduino_bare" src="http://beerandcoding.com/wp-content/uploads/2010/03/arduino_bare.JPG" alt="arduino_bare" width="800" height="600" /></p>
<p>For my project I will be starting small; using my Arduino to monitor my fermenter. I will be keeping track of fermentation temperature with a <a title="Digital Temperature Sensor" href="http://www.sparkfun.com/commerce/product_info.php?products_id=245" target="_blank"><strong>Digital Temperature Sensor</strong></a> and using a <a title="Photo Interrupter" href="http://www.sparkfun.com/commerce/product_info.php?products_id=9299" target="_blank"><strong>Photo Interrupter</strong></a> to track airlock activity. Data will be output to an <a title="LCD Display" href="http://www.sparkfun.com/commerce/product_info.php?products_id=9395" target="_blank"><strong>LCD Display</strong></a> and a WiiChuck communicating over I2C via an <a title="WiiChuck Adapter" href="http://www.sparkfun.com/commerce/product_info.php?products_id=9281" target="_blank"><strong>Adapter</strong></a> will be used to toggle the data being shown. Data will also be logged to my PC and eventually streamed live to this blog.</p>
<p>While this is a simple project, it will act as the jump off point for future Arduino experiments. I would love to end up with a fully automated, steam powered brewing system a la <a title="Yuri's Brew Hut" href="http://www.homebrewtalk.com/f51/yuris-brew-yurt-hut-107502/" target="_blank"><strong>Yuri&#8217;s Brew Hut</strong></a>. Once I get the initial code written to control my monitoring system, I&#8217;ll post it here for anyone who is looking to build their own setup.</p>
<p>Actually, Jesse (who gave me the Arduino) is working on a very similar project of his own, but is much further along. So, I&#8217;ll admit in advance that the code I will be running will most likely be a bastardization of the work he has already done.</p>
<p>After my initial project is finished, I plan on building some submersible sensors for measuring mash tun and sparge temperatures. If you have any ideas for other brewing related projects, let me know and I will try to work them in.</p>
<p>Cheers!<br />
Kevin</p>
<!-- Added by Google Maps (Begin) -->
		<script type="text/javascript">
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById('__ie_onload');
script.onreadystatechange = function() {
  if (this.readyState == 'complete') {}
};
/*@end @*/
if (document.addEventListener) {}</script><!-- Added by Google Maps (End) -->]]></content:encoded>
			<wfw:commentRss>http://beerandcoding.com/new-coding-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spoony Bard Games &#8211; Perpetuity Available</title>
		<link>http://beerandcoding.com/spoony-bard-games-perpetuity-available/</link>
		<comments>http://beerandcoding.com/spoony-bard-games-perpetuity-available/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 17:57:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://beerandcoding.com/?p=1289</guid>
		<description><![CDATA[<p>Jesse, the other half of Spoony Bard Games; has released his fractal tool, Perpetuity. Perpetuity lets you explore three types of fractals; saving bookmarks and rending images as you go. You can download Perpetuity for free from <a title="Spoony Games for Spoony Bards" href="http://spoonybardgames.com" target="_blank">Spoony Bard Games</a>.</p>
<p>The download is a whopping 19k, but does require [...]]]></description>
			<content:encoded><![CDATA[<p>Jesse, the other half of Spoony Bard Games; has released his fractal tool, Perpetuity. Perpetuity lets you explore three types of fractals; saving bookmarks and rending images as you go. You can download Perpetuity for free from <a title="Spoony Games for Spoony Bards" href="http://spoonybardgames.com" target="_blank">Spoony Bard Games</a>.</p>
<p>The download is a whopping 19k, but does require you to have at least .NET Framework 1.1 installed. Jesse has also provided a link to the latest .NET Framework on the <a title="Spoonsational!" href="http://spoonybardgames.com" target="_blank">SBG site</a>.</p>
<p>Cheers!<br />
Kevin</p>
<!-- Added by Google Maps (Begin) -->
		<script type="text/javascript">
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById('__ie_onload');
script.onreadystatechange = function() {
  if (this.readyState == 'complete') {}
};
/*@end @*/
if (document.addEventListener) {}</script><!-- Added by Google Maps (End) -->]]></content:encoded>
			<wfw:commentRss>http://beerandcoding.com/spoony-bard-games-perpetuity-available/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Beer App: Support Honest Pints!</title>
		<link>http://beerandcoding.com/beer-app-support-honest-pints/</link>
		<comments>http://beerandcoding.com/beer-app-support-honest-pints/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 20:15:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Beer]]></category>
		<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://beerandcoding.com/?p=1210</guid>
		<description><![CDATA[<p>Nearly a year ago, master scribe Jeff Alworth and software engineer Shawn Montague started <a title="Honest Pint Project" href="http://honestpintproject.org" target="_blank">Honestpintproject.org</a>. The Honest Pint Project is a grass-roots effort started by these two Champions of the Thirsty to recognize pubs and restaurants that pour full 16oz. pints. Establishments found to serve true pints receive a certificate [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly a year ago, master scribe Jeff Alworth and software engineer Shawn Montague started <a title="Honest Pint Project" href="http://honestpintproject.org" target="_blank">Honestpintproject.org</a>. The Honest Pint Project is a grass-roots effort started by these two Champions of the Thirsty to recognize pubs and restaurants that pour full 16oz. pints. Establishments found to serve true pints receive a certificate from the Honest Pint Project; christening them Certified Purveyors of Honest Pints.</p>
<p>Beer and Coding is now doing it&#8217;s part to help promote the Honest Pint Project and it&#8217;s Certified Purveyors. Certified locations are now displayed on the Google Map with a gold icon instead of the standard purple one. They are also given priority over non-certified locations in the list below the map and have a &#8216;Certified Honest Pints&#8217; tag next to their name. When viewing a certified location&#8217;s information page, the Honest Pint Project&#8217;s logo is displayed.</p>
<p><a title="Honest Pint Project" href="http://honestpintproject.org" target="_blank"><img class="aligncenter size-full wp-image-1212" src="http://beerandcoding.com/wp-content/uploads/2009/10/HonestPintProjectLogo.jpg" alt="" width="112" height="150" /></a></p>
<p>An &#8216;Honest Pint&#8217; filter has also been added to the &#8216;Find Beer Near Me&#8217; feature of the <a title="Beer App" href="http://beerandcoding.com/beer-app" target="_self">Beer App</a>. With the filter turned on, only Honest Pint locations will be displayed on the map.</p>
<p>For a complete list of Certified Purveyors, or instructions on how to get your favorite pub or restaurant certified, please visit <a title="Honest Pint Project" href="http://honestpintproject.org" target="_blank">honestpintproject.org</a>.</p>
<p>Cheers!<br />
Kevin</p>
<!-- Added by Google Maps (Begin) -->
		<script type="text/javascript">
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById('__ie_onload');
script.onreadystatechange = function() {
  if (this.readyState == 'complete') {}
};
/*@end @*/
if (document.addEventListener) {}</script><!-- Added by Google Maps (End) -->]]></content:encoded>
			<wfw:commentRss>http://beerandcoding.com/beer-app-support-honest-pints/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- www.000webhost.com Analytics Code -->
<script type="text/javascript" src="http://analytics.hosting24.com/count.php"></script>
<noscript><a href="http://www.hosting24.com/"><img src="http://analytics.hosting24.com/count.php" alt="web hosting" /></a></noscript>
<!-- End Of Analytics Code -->
