<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>McLovin Does Ruby, Chikkit!</title>
	<atom:link href="http://mclovindoesruby.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mclovindoesruby.wordpress.com</link>
	<description>A Hawaiian organ donor's experiments with Ruby</description>
	<lastBuildDate>Fri, 26 Jun 2009 10:44:23 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='mclovindoesruby.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/bb94a5be9e5ce06ed5d538791b05e191?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>McLovin Does Ruby, Chikkit!</title>
		<link>http://mclovindoesruby.wordpress.com</link>
	</image>
			<item>
		<title>Ugh</title>
		<link>http://mclovindoesruby.wordpress.com/2009/06/26/ugh/</link>
		<comments>http://mclovindoesruby.wordpress.com/2009/06/26/ugh/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 09:45:35 +0000</pubDate>
		<dc:creator>mclovindoesruby</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mclovindoesruby.wordpress.com/?p=33</guid>
		<description><![CDATA[It&#8217;s ironic that I just finished watching a VelocityConf video and stumbled upon this gem from TechCrunch. A choice quote:
For anyone who has seen the new Pixar movie, Up, this reminds me of the scene where they have to throw stuff out of the house to make it float again.
Every website (and that includes Facebook, Twitter, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=33&subd=mclovindoesruby&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>It&#8217;s ironic that I just finished watching a <a href="http://velocityconference.blip.tv/">VelocityConf</a> video and stumbled upon this <a href="http://www.techcrunch.com/2009/06/25/its-kill-feature-time-again-at-twitter-to-stay-up/">gem</a> from TechCrunch. A choice quote:</p>
<blockquote><p>For anyone who has seen the new Pixar movie, <em>Up</em>, this reminds me of the scene where they have to throw stuff out of the house to make it float again.</p></blockquote>
<p>Every website (and that includes <a href="http://www.facebook.com">Facebook</a>, <a href="http://www.twitter.com">Twitter</a>, <a href="http://www.engineyard.com">EngineYard</a> and <a href="http://www.flickr.com">Flickr</a>) recommends that your application have switches and levers in place, so that you can turn off features when load is high. This is so that the site remains functional, at the cost of &#8216;downtime&#8217; for only certain features. It&#8217;s a credit to Twitter that they have such infrastructure elements in place.</p>
<p>Twitter has its share of problems, agreed. But it has a bunch of incredible people working on it (as do most web startups), and for them to be subject to such belittling from arm-chair experts who can&#8217;t appreciate that running a web application which has a tremendous growth rate is hard work; pisses me off. To use words such as &#8216;afloat&#8217; and &#8216;kill-feature-time&#8217; when Twitter has been growing at an incredible rate is misguided.</p>
<p>Ugh.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mclovindoesruby.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mclovindoesruby.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mclovindoesruby.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mclovindoesruby.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mclovindoesruby.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mclovindoesruby.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mclovindoesruby.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mclovindoesruby.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mclovindoesruby.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mclovindoesruby.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=33&subd=mclovindoesruby&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mclovindoesruby.wordpress.com/2009/06/26/ugh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffe1712e2a11189abe6025fd9caec6d8?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">mclovindoesruby</media:title>
		</media:content>
	</item>
		<item>
		<title>The English Premier League GitHub Application</title>
		<link>http://mclovindoesruby.wordpress.com/2009/01/25/the-english-premier-league-github-application/</link>
		<comments>http://mclovindoesruby.wordpress.com/2009/01/25/the-english-premier-league-github-application/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 18:40:47 +0000</pubDate>
		<dc:creator>mclovindoesruby</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[epl]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[soccer]]></category>

		<guid isPermaLink="false">http://mclovindoesruby.wordpress.com/?p=31</guid>
		<description><![CDATA[After half a day&#8217;s worth of data-gathering and HTML/CSS/Javascript, I present to you: the EPL GitHub App.
(Works on iPhone too)
Brought to you by: GitHub, JQuery, UiUIKit, Ruby
With inspiration from: Paul Buchheit
It&#8217;s still very rough around the edges, and there are some more features I&#8217;d like to add. But I&#8217;ve found a new interesting side project [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=31&subd=mclovindoesruby&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After half a day&#8217;s worth of data-gathering and HTML/CSS/Javascript, I present to you: the <a href="http://epl.github.com">EPL GitHub App</a>.</p>
<p>(Works on <a href="http://epl.github.com/iphone" target="_blank">iPhone</a> too)</p>
<p>Brought to you by: <a href="http://www.github.com" target="_blank">GitHub</a>, <a href="http://www.jquery.com" target="_blank">JQuery</a>, <a href="http://code.google.com/p/iphone-universal/" target="_blank">UiUIKit</a>, <a href="http://www.github.com/arunthampi/epl" target="_blank">Ruby</a></p>
<p>With inspiration from: <a href="http://paulbuchheit.blogspot.com/2009/01/communicating-with-code.html" target="_blank">Paul Buchheit</a></p>
<p>It&#8217;s still very rough around the edges, and there are some more features I&#8217;d like to add. But I&#8217;ve found a new interesting side project to work on.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mclovindoesruby.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mclovindoesruby.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mclovindoesruby.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mclovindoesruby.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mclovindoesruby.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mclovindoesruby.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mclovindoesruby.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mclovindoesruby.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mclovindoesruby.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mclovindoesruby.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=31&subd=mclovindoesruby&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mclovindoesruby.wordpress.com/2009/01/25/the-english-premier-league-github-application/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffe1712e2a11189abe6025fd9caec6d8?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">mclovindoesruby</media:title>
		</media:content>
	</item>
		<item>
		<title>Mclovin does Emacs</title>
		<link>http://mclovindoesruby.wordpress.com/2009/01/05/mclovin-does-emacs/</link>
		<comments>http://mclovindoesruby.wordpress.com/2009/01/05/mclovin-does-emacs/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 13:31:08 +0000</pubDate>
		<dc:creator>mclovindoesruby</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mclovindoesruby.wordpress.com/?p=23</guid>
		<description><![CDATA[As part of my New Years Resolution to increase my overall productivity and be more disciplined (generally in life), I&#8217;ve been experimenting with a couple of text-editors. Tried out vim first because I was quite familiar with it, but it didn&#8217;t promise the paradigm-shift that I was expecting to happen in my work-flow.
Enter Emacs
Daniel Fischer&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=23&subd=mclovindoesruby&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>As part of my New Years Resolution to increase my overall productivity and be more disciplined (generally in life), I&#8217;ve been experimenting with a couple of text-editors. Tried out vim first because I was quite familiar with it, but it didn&#8217;t promise the paradigm-shift that I was expecting to happen in my work-flow.</p>
<p><strong>Enter Emacs</strong></p>
<p>Daniel Fischer&#8217;s <a href="http://www.danielfischer.com/2008/12/16/emacs-on-osx-for-ruby-on-rails-development/">blog post</a> did quite a bit to pique my curiosity and upon return from my holiday, I bought and watched the awesome <a href="http://peepcode.com/products/meet-emacs">Emacs peepcode</a> as well. I&#8217;ve been trying to use <a href="http://www.apple.com/downloads/macosx/unix_open_source/carbonemacspackage.html">Emacs</a> continuously for the last couple of days (including at work) and even though I am still stumbling my way a little through the darkness, I am awed by how much power it has.</p>
<p><strong><em>My likes:</em></strong></p>
<ul>
<li>Embedded shell which gives me the power to write and test code with minimal context-switching. I&#8217;m using this <a href="http://www.20seven.org/journal/2008/11/emacs-terminal-emulator.html">one</a> currently and it works much better than the default M-x shell.</li>
<li>Embedded IRB which offers the same functionality. You can even copy-paste a function from your Ruby buffer to a terminal and execute it! How awesome is that.</li>
<li>Multi-window workflow. Tabs are great, but being able to see two files side-by-side is better IMO.</li>
<li><a href="http://zagadka.vm.bytemark.co.uk/magit/">Built-in Git</a>, where you can push/pull/branch/commit with the press of a button.</li>
<li>Full-screen coding (although I&#8217;m not able to toggle it occasionally &#8211; have to figure this out).</li>
<li>All these above reasons combine to give me a piece of software I rarely have to switch away  from while at work &#8211; thus effectively boosting productivity.</li>
</ul>
<p><strong><em>My dislikes:</em></strong></p>
<ul>
<li>Found it hard to learn/configure in the beginning. Spent at least 3-4 hours trying to get my <a href="http://www.github.com/arunthampi/emacs-starter-kit">configuration</a> (forked from <a href="http://www.twitter.com/topfunky">topfunky</a>) right. The peepcode was a great help.</li>
<li>The different key-combinations are slightly overwhelming, but on the bright-side, unlike Vim I don&#8217;t need to switch from command-mode to edit-mode and back during coding.</li>
</ul>
<p>It&#8217;s still early days and who knows, I might still head back to good ol&#8217; TextMate soon. On the other hand, if I can push through the initial pain-barrier, Emacs offers an awesome and powerful cross-platform IDE.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mclovindoesruby.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mclovindoesruby.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mclovindoesruby.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mclovindoesruby.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mclovindoesruby.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mclovindoesruby.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mclovindoesruby.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mclovindoesruby.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mclovindoesruby.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mclovindoesruby.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=23&subd=mclovindoesruby&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mclovindoesruby.wordpress.com/2009/01/05/mclovin-does-emacs/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffe1712e2a11189abe6025fd9caec6d8?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">mclovindoesruby</media:title>
		</media:content>
	</item>
		<item>
		<title>How To Use CouchDB/ActiveCouch with Ruby On Rails</title>
		<link>http://mclovindoesruby.wordpress.com/2008/10/26/how-to-use-couchdb-with-ruby-on-rails/</link>
		<comments>http://mclovindoesruby.wordpress.com/2008/10/26/how-to-use-couchdb-with-ruby-on-rails/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 02:38:22 +0000</pubDate>
		<dc:creator>mclovindoesruby</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ActiveCouch]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[Ruby On Rails]]></category>

		<guid isPermaLink="false">http://mclovindoesruby.wordpress.com/?p=19</guid>
		<description><![CDATA[I was going to blog about this, but thought it might be better to link to a wiki, which will be easier to update depending on when changes are made, or errors that are discovered.
So here is how you can use CouchDB with Ruby On Rails:
ActiveCouch Wiki Page describing how you can use ActiveCouch with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=19&subd=mclovindoesruby&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I was going to blog about this, but thought it might be better to link to a wiki, which will be easier to update depending on when changes are made, or errors that are discovered.</p>
<p>So here is how you can use CouchDB with Ruby On Rails:</p>
<p><a href="http://github.com/arunthampi/activecouch/wikis/how-to-use-activecouch-with-rails">ActiveCouch Wiki Page describing how you can use ActiveCouch with Ruby On Rails</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mclovindoesruby.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mclovindoesruby.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mclovindoesruby.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mclovindoesruby.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mclovindoesruby.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mclovindoesruby.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mclovindoesruby.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mclovindoesruby.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mclovindoesruby.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mclovindoesruby.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=19&subd=mclovindoesruby&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mclovindoesruby.wordpress.com/2008/10/26/how-to-use-couchdb-with-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffe1712e2a11189abe6025fd9caec6d8?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">mclovindoesruby</media:title>
		</media:content>
	</item>
		<item>
		<title>EventedNet &#8211; A new way to make evented HTTP calls in Ruby</title>
		<link>http://mclovindoesruby.wordpress.com/2008/08/19/eventednet-a-new-way-to-make-evented-http-calls-in-ruby/</link>
		<comments>http://mclovindoesruby.wordpress.com/2008/08/19/eventednet-a-new-way-to-make-evented-http-calls-in-ruby/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 08:18:33 +0000</pubDate>
		<dc:creator>mclovindoesruby</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ruby eventmachine evented]]></category>

		<guid isPermaLink="false">http://mclovindoesruby.wordpress.com/?p=9</guid>
		<description><![CDATA[I caught the &#8216;evented&#8217; bug last week when I started poking around EventMachine for an internal EventMachine based library at work. Basically, I wanted an HTTP library which could be used in an evented fashion while being used in an EventMachine reactor, and in the boring synchronous way, when used outside the reactor. Why do [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=9&subd=mclovindoesruby&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I caught the &#8216;evented&#8217; bug last week when I started poking around EventMachine for an internal EventMachine based library at <a href="http://www.wego.com">work</a>. Basically, I wanted an HTTP library which could be used in an evented fashion while being used in an EventMachine reactor, and in the boring synchronous way, when used outside the reactor. Why do I want this, you ask? Well, the primary reason is that the HTTP client that I am writing should be able to run normally without an EventMachine reactor (for me to test out individually, write specs for, etc) but once it is used in an EventMachine reactor, it should get all the <a href="igvita.com/2008/05/27/ruby-eventmachine-the-speed-demon/">benefits of using the Deferred pattern</a>.</p>
<p>Simple enough, right? Since EventMachine exposes the <em>EM.reactor_running?</em> method, all I need to do is to check if the reactor is running and make the appropriate call. Well, wrong! The built-in HTTPClient which comes as part of the EventMachine library (EM::Protocols::HttpClient) had a lot of problems with the initial set of tests that I was conducting. As far as I understand, it was because EventMachine&#8217;s HTTP parser is not robust enough to handle streaming HTTP data.</p>
<p><strong>Enter Stage Left, Zed Shaw</strong></p>
<p>Thus began my search for a proper HTTP parser which could be used as part of my networking library. I stumbled upon the <a href="http://rev.rubyforge.org/">Rev project</a> (which is similar to EventMachine in many ways, and exposes the libevent library to Ruby). Rev has an HTTP client which uses Rev semantics, but whose parser is based on Zed Shaw&#8217;s immortal Mongrel parser.</p>
<p><strong>Finito</strong></p>
<p>Armed with Zed Shaw awesomeness, I was able to easily use the modular, fast HTTP parser from the Rev project as a Ruby-C extension and hook it up to EventMachine semantics, and thus was born EventedNet::HTTP !</p>
<p>The API to make a simple HTTP GET request, is like so:<br />
<code><br />
EventedNet::HTTP.get(URI.parse('http://www.google.com'), :callback =&gt; Proc.new {|status, body| puts "Status: #{status}, Body: #{body}" })<br />
</code></p>
<p><strong>Note:</strong> The callback parameter can even be a Method object, please see <a href="http://github.com/arunthampi/evented_net/tree/master/examples/evented_get.rb">evented_get.rb</a> for an example of how that works.</p>
<p><strong>Installation</strong></p>
<p>EventedNet is available at <a href="http://github.com/arunthampi/evented_net/tree/master">GitHub</a>. In the coming weeks, I intend to add more functionality (including HTTP authentication) and more specs so as to make the library more complete. As always, patches and <span style="text-decoration:line-through;">fork</span> pull requests are always come!</p>
<p>You can also install the gem from GitHub:<br />
<code>$ gem sources -a http://gems.github.com (you only have to do this once)<br />
$ sudo gem install arunthampi-evented_net</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mclovindoesruby.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mclovindoesruby.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mclovindoesruby.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mclovindoesruby.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mclovindoesruby.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mclovindoesruby.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mclovindoesruby.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mclovindoesruby.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mclovindoesruby.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mclovindoesruby.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mclovindoesruby.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mclovindoesruby.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=9&subd=mclovindoesruby&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mclovindoesruby.wordpress.com/2008/08/19/eventednet-a-new-way-to-make-evented-http-calls-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffe1712e2a11189abe6025fd9caec6d8?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">mclovindoesruby</media:title>
		</media:content>
	</item>
		<item>
		<title>SuperModel &#8211; to sexy up your Ruby models</title>
		<link>http://mclovindoesruby.wordpress.com/2008/06/11/supermodel-to-sexy-up-your-ruby-models/</link>
		<comments>http://mclovindoesruby.wordpress.com/2008/06/11/supermodel-to-sexy-up-your-ruby-models/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 13:35:00 +0000</pubDate>
		<dc:creator>mclovindoesruby</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ruby activecouch couchdb supermodel github]]></category>

		<guid isPermaLink="false">http://mclovindoesruby.wordpress.com/?p=3</guid>
		<description><![CDATA[A few months ago, my friend Chu Yeow and I released a Ruby gem called ActiveCouch which was designed to be a very elegant Ruby wrapper for the exciting new phenomenon &#8211; CouchDB. ActiveCouch was my first shot at a Ruby library and I had a lot of fun creating elegant DSL&#8217;s (a lot of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=3&subd=mclovindoesruby&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A few months ago, my friend <a href="http://blog.codefront.net">Chu Yeow</a> and I <a href="http://www.wego.com/blog/2008/01/23/activecouch-a-ruby-wrapper-for-couchdb/">released</a> a Ruby gem called ActiveCouch which was designed to be a very elegant Ruby wrapper for the exciting new phenomenon &#8211; <a href="http://incubator.apache.org/couchdb/">CouchDB</a>. ActiveCouch was my first shot at a Ruby library and I had a lot of fun creating elegant DSL&#8217;s (a lot of which were inspired from ActiveRecord and ActiveResource). In essence, <a href="http://www.github.com/arunthampi/activecouch">ActiveCouch</a> lets you define models like so:</p>
<pre><code>class Pet &lt; ActiveCouch::Base

  has :name, :which_is =&gt; :text, :with_default_value =&gt; 'Tom'

end

class Person &lt; ActiveCouch::Base

  has :name, :which_is =&gt; :text, :with_default_value =&gt; 'McLovin'

  has :age, :which_is =&gt; :number, :with_default_value =&gt; 0

  has_many :dogs, :class =&gt; Pet

  has_many :cats, :class =&gt; Pet

  has_many :pets # Automagically assumes that 'pets' corresponds to the class Pet

end
</code></pre>
<p>While this is great, I found myself using these semantics more often in other Ruby libraries that I started to work on. Thus was born &#8211; <a href="http://www.github.com/arunthampi/supermodel">SuperModel</a>.</p>
<p>SuperModel&#8217;s aim is to wrap semantics such as has, has_one, has_many (which are familiar to many Ruby/Rails developers) in a re-usable library which can form the basis for other such libraries. For instance, I am currently in the process of re-writing ActiveCouch so that ActiveCouch::Base inherits from SuperModel::Base. By doing so, all the &#8216;modeling&#8217; semantics will be taken care of by SuperModel and ActiveCouch can deal with interfacing with CouchDB.</p>
<p>SuperModel also gives you serialization for free (currently only JSON, but future releases will also include XML, YAML, etc.) So, methods such as to_json, to_xml and to_yaml will let you serialize/de-serialize SuperModel objects in/from any format that you want.</p>
<pre><code>class Person &lt; SuperModel::Base</code>
<span style="font-family:0;">  # If you don't specify a 'type', it defaults to string</span>
<span style="font-family:0;">  # while converting to JSON</span>
<code>  has :name</code>
<code>end</code>
<span style="font-family:0;">
</span><span style="font-family:0;"># Create a SuperModel object</span>
<code>p = Person.new(:name =&gt; 'McLovin')</code>
<span style="font-family:0;">
</span>
<code># Another way you can create a SuperModel object
p1 = Person.new do |person|
  person.name = 'Seth'
end</code>
<code>
# JSON serialization
p.to_json # =&gt; {"name":"McLovin"}
</code></pre>
<p>SuperModel is hosted at <a title="SuperModel on GitHub" href="http://www.github.com/arunthampi/supermodel" target="_blank">http://www.github.com/arunthampi/supermodel</a> and the gem is available from GitHub as well. [Note: There are some problems currently with installing gems from GitHub, please refer to the <a href="http://gems.github.com">GitHub RubyGems page</a> for pointers]</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mclovindoesruby.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mclovindoesruby.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mclovindoesruby.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mclovindoesruby.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mclovindoesruby.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mclovindoesruby.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mclovindoesruby.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mclovindoesruby.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mclovindoesruby.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mclovindoesruby.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mclovindoesruby.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mclovindoesruby.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mclovindoesruby.wordpress.com&blog=3952196&post=3&subd=mclovindoesruby&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://mclovindoesruby.wordpress.com/2008/06/11/supermodel-to-sexy-up-your-ruby-models/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/ffe1712e2a11189abe6025fd9caec6d8?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">mclovindoesruby</media:title>
		</media:content>
	</item>
	</channel>
</rss>