<?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>BeerRiot Blog &#187; Uncategorized</title>
	<atom:link href="http://blog.beerriot.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.beerriot.com</link>
	<description>The making of BeerRiot and other thoughts.</description>
	<lastBuildDate>Sat, 10 Dec 2011 13:35:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.beerriot.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>BeerRiot Blog &#187; Uncategorized</title>
		<link>http://blog.beerriot.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.beerriot.com/osd.xml" title="BeerRiot Blog" />
	<atom:link rel='hub' href='http://blog.beerriot.com/?pushpress=hub'/>
		<item>
		<title>Roundtripping the HTTP Flowchart</title>
		<link>http://blog.beerriot.com/2011/10/01/roundtripping-the-http-flowchart/</link>
		<comments>http://blog.beerriot.com/2011/10/01/roundtripping-the-http-flowchart/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 22:46:14 +0000</pubDate>
		<dc:creator>Bryan</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Webmachine]]></category>

		<guid isPermaLink="false">http://blog.beerriot.com/?p=305</guid>
		<description><![CDATA[It has long bugged many of the Webmachine hackers that this relationship with Alan Dean's HTTP flowchart is one-way.  Webmachine was made from that graph, but that graph wasn't made from Webmachine.  I decided to change that in my evenings last week.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.beerriot.com&amp;blog=1135025&amp;post=305&amp;subd=beerriot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Webmachine hackers are familiar with a certain <a href="https://github.com/basho/webmachine/blob/master/docs/http-headers-status-v3.png">flowchart representing the decisions made during the processing of an HTTP request</a>.  Webmachine was designed as a <a href="http://www.infoq.com/presentations/Webmachine">practical executable form of that flowchart</a>.</p>
<p>It has long bugged many of the Webmachine hackers that this relationship is one-way, though.  Webmachine was made from the graph, but the graph wasn&#8217;t made from Webmachine.  I decided to change that in my evenings last week, while trying to take my mind off of <a href="http://blog.basho.com/2011/09/30/Riak-1-dot-0-is-Official/">Riak 1.0</a> testing.</p>
<p><a href="http://beerriot.files.wordpress.com/2011/10/wdc_graph.png"><img src="http://beerriot.files.wordpress.com/2011/10/wdc_graph-small.png?w=480" alt="" title="wdc_graph-small"   class="alignnone size-full wp-image-303" /></a></p>
<p>This is a version of the HTTP flowchart that only a Webmachine hacker could love.  It&#8217;s ugly and missing some information, but the important part is that <em>it&#8217;s generated by parsing <tt>webmachine_decision_core.erl</tt></em>.</p>
<p>I&#8217;ve shared the code for generating this image in the <a href="https://github.com/beerriot/webmachine/tree/gen-graph">gen-graph branch of my webmachine fork</a>.  Make sure you have <a href="http://www.graphviz.org/">Graphviz</a> installed, then checkout that branch and run <tt>make graph &amp;&amp; open docs/wdc_graph.png</tt>.</p>
<p>In addition to the PNG, you&#8217;ll also find a <tt>docs/wdc_graph.dot</tt> if you prefer to render to some other format.</p>
<p>If you&#8217;d really like to dig in, I suggest firing up an Erlang node and looking at the output of <tt>wdc_graph:parse("src/webmachine_decision_core.erl")</tt>:</p>
<pre>
[{v3b13, [ping],                     [v3b13b,503]},
 {v3b13b,[service_available],        [v3b12,503]},
 {v3b12, [known_methods],            [v3b11,501]},
 {v3b11, [uri_too_long],             [414,v3b10]},
 {v3b10, [allowed_methods,'RESPOND'],[v3b9,405]},
 {v3b9,  [malformed_request],        [400,v3b8]},
...
</pre>
<p>If you&#8217;ve looked through <tt>webmachine_decision_core</tt> at all, I think you&#8217;ll recognize what&#8217;s presented above: a list of tuples, each one representing the decision named by the first element, with the calls made to a resource module as the second element, and the possible outcomes as the third element.  Call <tt>wdc_graph:dot/2</tt> to convert those tuples to a DOT file.</p>
<p>There are a few holes in the generation.  Some response codes are reached by decisions spread across the graph, causing long arrows to cross confusingly.  The edges between decisions aren&#8217;t labeled with the criteria for following them.  Some resource calls are left out (like those made from <tt>webmachine_decision_core:respond/1</tt> and the response body producers and encoders).  It&#8217;s good to have a nice list for future tinkering.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/beerriot.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/beerriot.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/beerriot.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/beerriot.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/beerriot.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/beerriot.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/beerriot.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/beerriot.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/beerriot.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/beerriot.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/beerriot.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/beerriot.wordpress.com/305/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/beerriot.wordpress.com/305/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/beerriot.wordpress.com/305/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.beerriot.com&amp;blog=1135025&amp;post=305&amp;subd=beerriot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.beerriot.com/2011/10/01/roundtripping-the-http-flowchart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6fe3cd884c9c036f341631d6f837d98f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">beerriot</media:title>
		</media:content>

		<media:content url="http://beerriot.files.wordpress.com/2011/10/wdc_graph-small.png" medium="image">
			<media:title type="html">wdc_graph-small</media:title>
		</media:content>
	</item>
		<item>
		<title>Riak Presented at NYC NoSQL &#8211; slides, text &amp; video</title>
		<link>http://blog.beerriot.com/2009/10/08/riak-presented-at-nyc-nosql/</link>
		<comments>http://blog.beerriot.com/2009/10/08/riak-presented-at-nyc-nosql/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 01:20:35 +0000</pubDate>
		<dc:creator>Bryan</dc:creator>
				<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Riak]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Webmachine]]></category>

		<guid isPermaLink="false">http://blog.beerriot.com/?p=216</guid>
		<description><![CDATA[I presented Riak at the NYC NoSQL Mini-Conference on October 5, 2009.  Slides, text, and video of my talk are now available.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.beerriot.com&amp;blog=1135025&amp;post=216&amp;subd=beerriot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I had the pleasure of attending the <a href="http://sqlfreenyc.org/conference/">NYC NoSQL Fall &#8217;09 Meetup/Mini-Conference</a> last Monday.  Great talks, all around.  I thought it was a good mix of use-case analysis and technology introduction.  </p>
<p>In addition to enjoying everyone else&#8217;s presentations, I also presented <a href="http://riak.basho.com/">Riak</a>.  It was a quick 12-minute talk, followed by 2.5 minutes of questions, but the response I got was great.  People really dug in and had interesting observations and questions to discuss afterward.</p>
<p>If you weren&#8217;t able to make the event, Brendan has posted <a href="http://bit.ly/riakNYC">video of my talk</a>.  I have also posted <a href="http://riak.basho.com/nyc-nosql/index.html">an HTML slides-and-text version of my talk</a>, if you prefer reading over watching and listening.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/beerriot.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/beerriot.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/beerriot.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/beerriot.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/beerriot.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/beerriot.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/beerriot.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/beerriot.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/beerriot.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/beerriot.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/beerriot.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/beerriot.wordpress.com/216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/beerriot.wordpress.com/216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/beerriot.wordpress.com/216/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.beerriot.com&amp;blog=1135025&amp;post=216&amp;subd=beerriot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.beerriot.com/2009/10/08/riak-presented-at-nyc-nosql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6fe3cd884c9c036f341631d6f837d98f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">beerriot</media:title>
		</media:content>
	</item>
		<item>
		<title>Dev House Boston</title>
		<link>http://blog.beerriot.com/2007/09/08/dev-house-boston/</link>
		<comments>http://blog.beerriot.com/2007/09/08/dev-house-boston/#comments</comments>
		<pubDate>Sat, 08 Sep 2007 20:26:26 +0000</pubDate>
		<dc:creator>Bryan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.beerriot.com/2007/09/08/dev-house-boston/</guid>
		<description><![CDATA[If you&#8217;re in the Boston area, and interested in Erlang/ErlyWeb, and free next Sunday &#8230; I&#8217;ll probably be hanging around Dev House Boston. It&#8217;s my first trip to one of these hackathons. I&#8217;ve never been to Foo/BarCamp, or any of the others. So, we&#8217;ll see how it goes. My best idea for a project so [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.beerriot.com&amp;blog=1135025&amp;post=33&amp;subd=beerriot&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re in the Boston area, and interested in Erlang/ErlyWeb, and free next Sunday &#8230; I&#8217;ll probably be hanging around <a href="http://devboston.pbwiki.com/">Dev House Boston</a>.</p>
<p>It&#8217;s my first trip to one of these hackathons.  I&#8217;ve never been to Foo/BarCamp, or any of the others.  So, we&#8217;ll see how it goes.</p>
<p>My best idea for a project so far is an Emacs mode for ErlTL.  But, mainly I&#8217;d be interested in helping people come up to speed with Erlang/Erlyweb and/or Facebook app development.  I think ErlyWeb&#8217;s a great platform for web development, and I&#8217;d like to see more people put it through its paces.</p>
<p>I&#8217;m also familiar with plenty of other languages/systems, so I feel pretty confident that I&#8217;ll be able to hack on whatever comes up.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/beerriot.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/beerriot.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/beerriot.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/beerriot.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/beerriot.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/beerriot.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/beerriot.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/beerriot.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/beerriot.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/beerriot.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/beerriot.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/beerriot.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/beerriot.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/beerriot.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/beerriot.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/beerriot.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.beerriot.com&amp;blog=1135025&amp;post=33&amp;subd=beerriot&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.beerriot.com/2007/09/08/dev-house-boston/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6fe3cd884c9c036f341631d6f837d98f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">beerriot</media:title>
		</media:content>
	</item>
	</channel>
</rss>
