<?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>Global Nerdy &#187; Rails</title>
	<atom:link href="http://www.globalnerdy.com/tag/rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.globalnerdy.com</link>
	<description>Tech Evangelist Joey deVilla on Shopify, startups, software development, tech news and other nerdy stuff</description>
	<lastBuildDate>Wed, 08 Feb 2012 21:54:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ClearFit&#8217;s Looking for a Rails Developer</title>
		<link>http://www.globalnerdy.com/2011/11/08/clearfits-looking-for-a-rails-developer/</link>
		<comments>http://www.globalnerdy.com/2011/11/08/clearfits-looking-for-a-rails-developer/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 06:38:44 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[help wanted]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2011/11/08/clearfits-looking-for-a-rails-developer/</guid>
		<description><![CDATA[My friend Robert Nishimura’s looking for a Rails developer for his company, ClearFit, which is based in uptown Toronto. He sent me some details about the position he’s trying to fill; I’ve posted them below. If you’ve got the skills and if the position sounds interesting to you, you should drop him a line at [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top: 0px; border-right: 0px; padding-top: 0px" title="Clearfit" border="0" alt="Clearfit [hearts] Rails, GitHub and Amazon Web Services" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2011/11/clearfit.jpg" width="524" height="415" /></p>
<p><strong>My friend Robert Nishimura’s looking for a Rails developer for his company, </strong><a href="http://clearfit.com/"><strong>ClearFit</strong></a><strong>,</strong> which is based in uptown Toronto. He sent me some details about the position he’s trying to fill; I’ve posted them below. </p>
<p>If you’ve got the skills and if the position sounds interesting to you, you should drop him a line at <a href="mailto:robert@clearfit.com">robert@clearfit.com</a>!</p>
<h3>Company Information</h3>
<p><a href="http://clearfit.com/">ClearFit</a> is changing the way small businesses hire. Most people know that ‘fit’ is the most desirable attribute for employees and employers &#8212; that intangible sense that can’t be found in a resume and is difficult to glean from a job interview. It’s a huge problem &#8212; employers spend billions every year on staffing in Canada alone.</p>
<p>Most small business owners don’t know where to even start when hiring a new employee. Ask around for referrals, “pay and pray” with a job board or deal with an avalanche of resumes from Craigslist?&#160; </p>
<p>We have built the system that some describe as “an eHarmony for jobs”. We have over 2500 registered employers and tens of thousands of registered career seekers which barely scratches the surface of a multi-billion dollar market. All this and we just completed our first round of investment so we are poised for stellar growth.</p>
<p>We are located in the Yonge/Eglinton neighbourhood, strategically situated between 3 Starbucks and 3 minutes from Bulldog Coffee. We’re also upstairs from Copacabana Brazilian BBQ.</p>
<h3>Skills &amp; Requirements</h3>
<p><strong>Skills:</strong></p>
<ul>
<li>Minimum 2 years experience coding in Ruby on Rails</li>
<li>Minimum 2 years experience with HTML/CSS</li>
<li>Experience with Javascript (Prototype, JQuery)</li>
<li>Experience with Postgres SQL</li>
<li>Experience with Ubuntu/Nginx</li>
<li>Experience with GitHub </li>
</ul>
<p><strong>Bonus points:</strong></p>
<ul>
<li>Experience with Amazon EC2</li>
<li>Experience integrating with other web apps </li>
<li>Photoshop and front-end web development skillz</li>
<li>iOS development experience</li>
</ul>
<h3>What ClearFit Offers</h3>
<ul>
<li>Salary between $80K and $100K based on experience</li>
<li>Snacks and drinks in our kitchen </li>
<li>Wicked awesome coffee from our new Nespresso machine</li>
<li>15 days paid vacation per year</li>
<li>Full group benefit plan which includes vision, dental</li>
</ul>
<p>If this sounds like something you&#8217;re interested in, contact Robert Nishimura directly at <a href="mailto:robert@clearfit.com">robert@clearfit.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2011/11/08/clearfits-looking-for-a-rails-developer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Salmagundi for Monday, August 22, 2011</title>
		<link>http://www.globalnerdy.com/2011/08/22/salmagundi-for-monday-august-22-2011/</link>
		<comments>http://www.globalnerdy.com/2011/08/22/salmagundi-for-monday-august-22-2011/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 21:17:41 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=8874</guid>
		<description><![CDATA[Welcome to another Salmagundi &#8212; a selection of some interesting techie stuff on the web! In his article Your Code is My Hell, all-round Ruby/Rails guru Avdi Grimm warns Ruby and Rails developers about a creeping exceptionalism that has been rearing its ugly head as of late. Many Ruby/Rails developers seem to be under the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Welcome to another Salmagundi &#8212; a selection of some interesting techie stuff on the web!</p>
<p style="text-align: center;"><a href="http://avdi.org/devblog/2011/08/22/your-code-is-my-hell/"><img src="http://cdn.shopify.com/s/files/1/0070/7032/files/south_park_satan_large.jpg?110040" alt="" /></a></p>
<p>In his article <em style="font-weight: bold;"><a href="http://avdi.org/devblog/2011/08/22/your-code-is-my-hell/">Your Code is My Hell</a></em>, all-round Ruby/Rails guru <a href="http://avdi.org/devblog/about/">Avdi Grimm</a> warns Ruby and Rails developers about a creeping exceptionalism that has been rearing its ugly head as of late. Many Ruby/Rails developers seem to be under the impression that simply because Ruby and Rails do a lot to make programming easier, they can simply ignore things like good coding, good object design, design patterns and the SOLID principles and all those other practices and disciplines that good coders follow and exercise. Ruby&#8217;s a great programming language and Rails is a great web development framework (and I&#8217;m quite glad to return to them), but they&#8217;re not a free pass to code carelessly!</p>
<p style="text-align: center;"><a href="http://robots.thoughtbot.com/post/9251081564/coffeescript-spartan-javascript"><img src="http://cdn.shopify.com/s/files/1/0070/7032/files/coffeescript_300_grande.jpg?110042" alt="" /></a></p>
<p>Nick Quaranto from <a href="http://thoughtbot.com/">Thoughtbot</a> explains why he loves CoffeeScript, by way of the movie <em><a href="http://en.wikipedia.org/wiki/300_(film)">300</a>,</em> in <strong><em><a href="http://robots.thoughtbot.com/post/9251081564/coffeescript-spartan-javascript">CoffeeScript: Spartan JavaScript</a></em></strong>. &#8220;Writing JavaScript properly, and in an OO manner, requires you to be verbose,&#8221; writes Quaranto. &#8220;What I like best is that CoffeeScript is simply…spartan.&#8221; He covers the good as well as the bad (but it&#8217;s mostly good). If you&#8217;d like to try it out, <a href="http://coffeescript.org/">visit the CoffeeScript site to get started</a>.</p>
<p style="text-align: center;"><a href="http://avdi.org/devblog/2011/07/26/the-procedurefunction-block-convention-in-ruby/"><img src="http://cdn.shopify.com/s/files/1/0070/7032/files/blocks_large.jpg?110044" alt="" /></a></p>
<p>Here&#8217;s another one from Avdi Grimm (he&#8217;s got lots of good suggestions &#8212; you should check his blog regularly if you&#8217;re a Ruby/Rails developer): <strong><em><a href="http://avdi.org/devblog/2011/07/26/the-procedurefunction-block-convention-in-ruby/">The Procedure/Function Block Convention in Ruby</a></em></strong>. He&#8217;s got a clever idea for when to use &#8220;curly bracket&#8221; blocks (he suggests to use the for functional blocks) and when to use &#8220;do&#8230;end&#8221; blocks (he says to use them for procedural ones.</p>
<p style="text-align: center;"><a href="http://sandofsky.com/blog/git-workflow.html"><img src="http://cdn.shopify.com/s/files/1/0070/7032/files/assembly_line_large.jpg?110046" alt="" /></a></p>
<p>And finally, if you use Git, you&#8217;ll want to read Benjamin Sandofsky&#8217;s article, <strong><em><a href="http://sandofsky.com/blog/git-workflow.html">Understanding the Git Workflow</a></em></strong>. &#8220;If you&#8217;re fighting Git&#8217;s defaults,&#8221; he writes, &#8220;ask yourself why.&#8221; He suggests that your workflow should be:</p>
<ol>
<li>Create a private branch off a public branch.</li>
<li>Regularly commit your work to this private branch.</li>
<li>Once your code is perfect, clean up its history.</li>
<li>Merge the cleaned-up branch back into the public branch.</li>
</ol>
<p><a href="http://www.shopify.com/technology/3862572-salmagundi-for-monday-august-22-2011">This article also appears in the Shopify Technology Blog.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2011/08/22/salmagundi-for-monday-august-22-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Foo</title>
		<link>http://www.globalnerdy.com/2011/05/30/ruby-foo/</link>
		<comments>http://www.globalnerdy.com/2011/05/30/ruby-foo/#comments</comments>
		<pubDate>Mon, 30 May 2011 18:32:36 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2011/05/30/ruby-foo/</guid>
		<description><![CDATA[After three years away from all but the most trivial of noodling with the Ruby programming language, I have become a Ruby Foo (as in Mr. T’s catchphrase, “I pity the foo’!”). I am severely out of practice with Ruby, and with two versions having appeared since I last made a living with Rails, even [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="ruby foo" border="0" alt="ruby foo" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2011/05/ruby-foo.jpg" width="600" height="402" /></p>
<p><strong>After three years away from all but the most trivial of noodling with the <a href="http://www.ruby-lang.org/en/">Ruby programming language</a>, I have become a Ruby Foo </strong>(as in Mr. T’s catchphrase, <a href="http://www.youtube.com/watch?v=DJnKm6ftPu0">“I pity the foo’!”</a>). I am severely out of practice with Ruby, and with <em>two </em>versions having appeared since I last made a living with Rails, even the act of creating a new project is completely different. Since Ruby is the preferred back-end programming language at Shopify and I am the Platform Evangelist, it’s time for me to <a href="https://www.stephencovey.com/7habits/7habits-habit7.php">“sharpen the saw”</a>.</p>
<p><a href="http://obiefernandez.com/"><img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="obie" border="0" alt="obie" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2011/05/obie.jpg" width="600" height="449" /></a></p>
<p>Luckily for me, I ran into <a href="http://obiefernandez.com/">Obie Fernandez</a> at the <a href="http://sxsw.com/interactive">South by Southwest Interactive conference</a> back in March. We sat down for a coffee and he told me about what was happening with <a href="http://www.hashrocket.com/">Hashrocket</a> and I told him that I was a hair’s breadth away from joining <a href="http://shopify.com/">Shopify</a>.</p>
<p>“I’ve been away from Ruby long enough that I’m probably back at newbie level again,” I told Obie between sips of latte made with overcooked beans. “I did it for a bit at the beginning using <a href="http://ironruby.net/">IronRuby</a>, but between doing all the <a href="http://msdn.microsoft.com/en-us/vcsharp/default">C#</a> and <a href="http://php.net/">PHP</a> and <a href="http://blog.jimmy.schementi.com/2010/08/start-spreading-news-future-of-jimmy.html">the open source ‘Iron’ languages dying of neglect at Microsoft</a>, I’m severely out of practice. I thinking of joining Shopify, and let’s face it: I don’t want to look like an ignoramus in the presence of rock stars like <a href="http://twitter.com/#!/tobi">Tobi</a>, <a href="http://twitter.com/#!/codyfauser">Cody</a> and <a href="http://twitter.com/#!/edwardog">Edward</a>.”</p>
<p>“Give me your email,” said Obie, “and I can do something to help.” Of course he could – he’s the series editor of Addison-Wesley’s Professional Ruby series of books.</p>
<p>Shortly after South by Southwest, a couple of links to PDF editions appeared in my inbox. Thanks, Obie!</p>
<p><a href="http://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104"><img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="eloquent ruby" border="0" alt="eloquent ruby" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2011/05/eloquent-ruby.jpg" width="382" height="500" /></a></p>
<p><strong>The first link was to <em><a href="http://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104">Eloquent Ruby</a></em>,</strong> Russ Olsen’s guide to speaking idiomatic Ruby and getting the most out of the Ruby programming language. It’s a breezy read, written in the same conversational tone that Olsen used in <em><a href="http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452">Design Patterns in Ruby</a></em>, and the book is broken down into 31 bite-size chapters about a dozen pages in length. Each chapter’s title is some principle for programming eloquent Ruby – the first few are “Write Code That Looks Like Ruby”, “Choose the Right Control Structure” and “Take Advantage of Ruby’s Smart Collections” – and each explains that principle, provides code, shows you where you can find the principles used in actual, working projects. The book straddles the line between tutorial and reference; it’s written in tutorial style, but it’s organized so well that it might as well be a reference for those parts of Ruby that you might not use often (but should) as well as for those parts you keep forgetting (in my case, I <em>always</em> end up having to look up metaprogramming). I’ve been going through it at about a chapter an evening, and I’ve been getting smarter each time. Whether you’re coming back to Ruby after a hiatus like I am or if you just simply want to get better at Ruby, you should have this book in your library.</p>
<p class="note">If you’d like to know more about <em>Eloquent Ruby</em> and its author, Russ Olsen, <a href="http://www.infoq.com/articles/olsen-eloquent-ruby">check out this interview with him at<em> InfoQ</em></a>.</p>
<p><a href="http://www.amazon.com/Ruby-Rails-Tutorial-Addison-Wesley-Professional/dp/0321743121"><img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ruby on rails 3 tutorial" border="0" alt="ruby on rails 3 tutorial" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2011/07/ruby-on-rails-3-tutorial.jpg" width="375" height="489" /></a></p>
<p><strong>I have yet to properly sink my teeth into <em><a href="http://www.amazon.com/Ruby-Rails-Tutorial-Addison-Wesley-Professional/dp/0321743121">Ruby on Rails 3 Tutorial</a></em></strong> but a quick scan of the book has shown that it’s quite promising, and <a href="http://www.amazon.com/Ruby-Rails-Tutorial-Addison-Wesley-Professional/product-reviews/0321743121/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;showViewpoints=1">the Amazon reviews</a> are bolstering my belief.</p>
<p>I’ll be writing from time to time about my return to Ruby and Rails in this “Ruby Foo” series of posts, and I hope that whether you’re new to the language, returning after a break like me or aiming for “guru” status, that you’ll check out this blog regularly for notes on my explorations and what I’ve learned.</p>
<p class="alert"><a href="http://www.shopify.com/technology/3301282-ruby-foo">This article also appears in the Shopify Technology blog.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2011/05/30/ruby-foo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First a Django Guy and Now a Microsoft Guy: &#8220;Thank You, Rails&#8221;</title>
		<link>http://www.globalnerdy.com/2009/11/06/first-a-django-guy-and-now-a-microsoft-guy-thank-you-rails/</link>
		<comments>http://www.globalnerdy.com/2009/11/06/first-a-django-guy-and-now-a-microsoft-guy-thank-you-rails/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 15:24:15 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[advocacy]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[ecosystems]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Monkey Knife Fight]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[web applications]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/11/06/first-a-django-guy-and-now-a-microsoft-guy-thank-you-rails/</guid>
		<description><![CDATA[Platform wars are like monkey knife fights: amusing at first, but regrettable and messy in the end. You don’t see this very often, and it’s a shame: Jacob Kaplan-Moss, co-creator of Django, the Python-based MVC web application framework, wrote a great article titled Thank You, Rails. From the article’s opening paragraph: It’s fashionable, or perhaps [...]]]></description>
			<content:encoded><![CDATA[<p></p><p align="center"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="monkey-knife-fight" border="0" alt="monkey-knife-fight" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/monkeyknifefight.jpg" width="450" height="295" /><em> Platform wars are like monkey knife fights: amusing at first, but regrettable and messy in the end.</em></p>
<p><strong>You don’t see this very often, and it’s a shame: <a href="http://jacobian.org/writing/thank-you-rails/">Jacob Kaplan-Moss, co-creator of Django, the Python-based MVC web application framework, wrote a great article titled <em>Thank You, Rails</em>.</a></strong> From the article’s opening paragraph:</p>
<blockquote><p>It’s fashionable, or perhaps inevitable, for tech communities to trash their competition…We geeks make arguing over minor technical points into a kind of art.</p>
</blockquote>
<p>The most important point in <a href="http://jacobian.org/writing/thank-you-rails/">his essay</a> is a few paragraphs down. He points out that while having a competitor often lends focus to a developer community and that a rivalry can often bring about excellence among all parties concerned, it can also bring bitterness and nastiness. He wants to counter those latter things, and so he writes:</p>
<blockquote><p>I think it’s important to recognize that we in the web development community do in fact owe Rails and the Rails community a debt of gratitude. Rails helped reframe the way we think about web development, and even those who’ve never touched Rails nevertheless are probably reaping indirect benefits right now.</p>
<p>So I think we should all step back from our personal preferences and plainly say <strong>thank you, Rails</strong>, for all that you’ve done to move the state of web development forward.</p>
</blockquote>
<p>Rails was a wake-up call to the web development world in so many ways. In the short time – a mere five years &#8212; that it’s been around, it’s been responsible for many changes in the world of web applications:</p>
<ul>
<li>Popularizing <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> amongst web developers. Yes, it had been done before, but never quite as elegantly or explained so clearly. </li>
<li>Bringing concepts like <a href="http://www.artima.com/intv/dry.html"><em>DRY</em></a> and <a href="http://en.wikipedia.org/wiki/Convention_over_configuration"><em>Convention Over Configuration</em></a> into the developer vernacular. </li>
<li>Proving that simplicity is a feature, whether it’s from the developer’s or end user’s point of view. </li>
<li>Pointing the spotlight at the <a href="http://ruby-lang.org">Ruby</a> programming language. </li>
<li>Driving a movement towards web applications with both beautiful and usable interfaces. </li>
<li>Reminding us that programming should be fun. </li>
<li>Reinforcing an important idea that we often forget: community matters. (If you’ve been to a <a href="http://en.oreilly.com/rails2009">RailsConf</a> or better still, <a href="http://rethink.unspace.ca/2008/7/20/we-are-rubyfringe">RubyFringe</a> and <a href="http://futureruby.com/">FutureRuby</a>, which takes the Ruby/Rails community camaraderie and turns the dials up to 11, you know what I mean.) </li>
</ul>
<p><strong>Speaking as a Microsoft guy, I too would like to say “Thank you, Rails”.</strong> While I can’t honestly classify myself as ever having been a serious Rails developer – it’s mostly noodling on personal projects and one major cancelled project at Toronto’s worst-run startup – I come from the periphery of the Rails community, having been an unofficial evangelist and occasional court jester, as evidenced in this performance from the evening keynotes at RailsConf 2007:</p>
<p align="center"><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/t05f_KR1Tbw&amp;hl=en&amp;fs=1&amp;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/t05f_KR1Tbw&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>I take a lot of what I’ve learned from the community-building effort that made Rails what it is today and have applied it to my work at Microsoft. From what I’ve been hearing, it seems to be helping.</p>
<p><strong>It’s not just the community aspects of Rails for which both Microsoft and I owe Rails a debt of gratitude &#8212; there are the technical aspects as well.</strong> I’m sure the event-driven desktop-style development metaphor behind ASP.NET makes a lot of developers happy, but it drove me bonkers – and also to PHP (and eventually, Rails) &#8212; back in 2002. The drive to create an MVC web application framework that treated the web like a first-class citizen instead of “like the desktop, but lamer” led to the creation of my preferred Microsoft web framework, <a href="http://asp.net/mvc">ASP.NET MVC</a>, and I cannot begin to convey how grateful I am for that. I love ASP.NET MVC, and a good chunk of the reasons why stem from the Rails-isms that found their way into it. I think ASP.NET MVC developers would benefit from <a href="http://rubyonrails.org/">getting to know Rails and taking it out for a spin</a> – and I think the Rails developers would also gain something from giving ASP.NET MVC a try.</p>
<p><strong>I once read a saying that has stuck with me all these years: “When you slice a blade of grass, you shake the universe.”</strong> Yeah, it’s a pretty drama-queeny way of saying that everything is interconnected, but it’s true in many respects, including human endeavour, which in turn includes software development. It’s an ecosystem, and different parts of it influence each other all the time. I think that the best participants in that ecosystem learn from other parts, and acknowledge those efforts that make the ecosystem a better place in which to live.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="joey-devilla-on-accordion-at-railsconf-2007" border="0" alt="joey-devilla-on-accordion-at-railsconf-2007" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/11/joeydevillaonaccordionatrailsconf2007.jpg" width="334" height="500" /> </p>
<p><strong>So to echo a Django guy’s sentiment, here’s a Microsoft guy saying it: <em>Thank you, Rails.</em></strong></p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/11/06/first-a-django-guy-and-now-a-microsoft-guy-thank-you-rails.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/11/06/first-a-django-guy-and-now-a-microsoft-guy-thank-you-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LearnHub: Powered by Rails, Searches with Bing</title>
		<link>http://www.globalnerdy.com/2009/06/29/learnhub-powered-by-rails-searches-with-bing/</link>
		<comments>http://www.globalnerdy.com/2009/06/29/learnhub-powered-by-rails-searches-with-bing/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 15:35:07 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Bing]]></category>
		<category><![CDATA[interoperability]]></category>
		<category><![CDATA[John Philip Green]]></category>
		<category><![CDATA[LearnHub]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[search engines]]></category>
		<category><![CDATA[Wesley Moxam]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/06/29/learnhub-powered-by-rails-searches-with-bing/</guid>
		<description><![CDATA[This article also appears in Canadian Developer Connection. Introducing LearnHub LearnHub&#8217;s home page. If you’re a student applying to colleges and universities and are looking for help with the process, you should try LearnHub. Based in Toronto, LearnHub is a social learning network that helps students to prepare for standardized tests, assists with finding places [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/06/29/learnhub-powered-by-rails-searches-with-bing.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
<h3>Introducing LearnHub</h3>
<p align="center"><a href="http://learnhub.com/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="learnhub_home_page" border="0" alt="learnhub_home_page" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub_home_page2.jpg" width="600" height="372" /></a><em>LearnHub&#8217;s home page.</em></p>
<p><strong>If you’re a student applying to colleges and universities and are looking for help with the process, you should try <a href="http://learnhub.com/">LearnHub</a>.</strong> Based in Toronto, LearnHub is a social learning network that helps students to prepare for standardized tests, assists with finding places to study abroad and provides career counseling. LearnHub’s site has hundreds of thousands of pages of free content, including the world&#8217;s largest bank of questions that appear in the GMAT and SAT standardized tests. The site has a large following among students worldwide, particularly in India, and has partnerships with 25 universities to recruit domestic and international students.</p>
<p><a href="http://learnhub.com/"><img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="learnhub" border="0" alt="learnhub" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub1.jpg" width="240" height="116" /></a></p>
<p>With those hundreds of thousands of pages, LearnHub needed to provide a way for students to find what they’re looking for. <strong>They provide a search function, and it’s powered by <a href="http://bing.com/">Bing</a>.</strong></p>
<p><strong>The people at LearnHub are part of that sector of Toronto tech that’s into Ruby on Rails, open source and founding startups.</strong> Founders <a href="http://married-inc.com/">John Philip Green and Malgosia Green</a> are a husband-and-wife team who are known for building web applications for education and have been active members of Toronto’s tightly-knit open source tech community since the earliest <a href="http://democamp.com/">DemoCamps</a>. John caught <a href="http://rubyonrails.org/">Rails</a> fever after trying it out and decided to rewrite a major application using it. The core development team of <a href="http://learnhub.com/users/wmoxam">Wesley Moxam</a>, <a href="http://heycarsten.com/">Carsten Nielsen</a> and <a href="http://blog.libinpan.com/">Libin Pan</a> are fixtures of the local Toronto’s on Rails scene; a gathering of local Rubyists doesn’t feel complete without them.</p>
<p>So what are they doing, using Bing?</p>
<h3>Site-Wide Search</h3>
<p align="center"><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub_dev_management_team2.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="learnhub_dev_management_team" border="0" alt="learnhub_dev_management_team" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub_dev_management_team_thumb1.jpg" width="600" height="450" /></a><em>The main room at LearnHub’s offices. Management are to the left, developers to the right.</em></p>
<p><strong>In the beginning, they went with their first instinct, which was to use Google.</strong> “We launched in March 2008,” said co-founder John Philip Green, “and we needed to provide site-wide search, so we went with Google. We signed up, and for a few hundred bucks a year, we got a search function that covered about 5,000 pages. It seemed like a pretty big number, and we thought that would be more than enough to cover our site.”</p>
<p><strong>They soon found that the results weren’t what they expected.</strong> “We weren’t getting good results. We’d use our site-wide search to search for something that we knew was in our site, and it wouldn’t show up in the results.” The same search would work just fine if you did it from Google.com, but not from their Google-powered search function. “The results just weren’t relevant, and we also had a limited number of queries,” John said.</p>
<p align="center"><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub_management_dev_team2.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="learnhub_management_dev_team" border="0" alt="learnhub_management_dev_team" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub_management_dev_team_thumb1.jpg" width="600" height="450" /></a><em>The main room at LearnHub’s offices. That’s management in the foreground, developers in the back.</em></p>
<p><strong>LearnHub’s page count grew quickly and beyond the 5,000 pages covered by their arrangement with Google.</strong> “Going up to a bigger package was expensive;” John said, “it would have cost a couple thousand for 50,000 pages, and we were already at hundreds of thousands.”</p>
<p>“We could’ve gotten the functionality for free, but that’s only an option when you show ads in the search results, and the ads that showed up were for our competitors.”</p>
<p align="center"><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub_sales_team2.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="learnhub_sales_team" border="0" alt="learnhub_sales_team" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub_sales_team_thumb1.jpg" width="600" height="450" /></a><em>LearnHub&#8217;s sales team.</em></p>
<p><strong>There was another problem: Google’s site search returned its results as a web page.</strong> In order to make LearnHub’s site-wide search’s results page have the same look and feel as the rest of the site, they had to stick the Google results in an iframe. “And even then, what was inside the iframe didn’t match the rest of the page,” added John.</p>
<p><strong>They started looking at other options for implementing LearnHub’s site-wide search, including running their own spider.</strong> “We really didn’t want to do that,” said programmer Wesley Moxam.</p>
<h3>Enter Bing</h3>
<p align="center"><strong><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/wes_moxam2.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="wes_moxam" border="0" alt="wes_moxam" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/wes_moxam_thumb1.jpg" width="450" height="600" /></a></strong><em>LearnHub developer Wesley Moxam.</em></p>
<p><strong>While looking around at search options, Wesley found the Live Search API, which is now known as the <a href="http://msdn.microsoft.com/en-us/library/dd251056.aspx">Bing API</a>.</strong> “It was free, well-designed and spits out JSON,” he said. “Google requires a JavaScript interface or SOAP, and SOAP libraries in Ruby are painful.”</p>
<p>“It took a day to implement and get it up and running,” said Wesley, “The entire switch-over project happened over three days, with us working on it on and off, while we were doing other tasks. Best of all, we get consistent results – the results from the API are the same results you’d get if you just used the Bing site.”</p>
<p><strong>“Bing’s API is simple and straightforward. You call it, you get the results, you take those results and use them how you like,”</strong> he continued. “It’s good. It’s hard to explain good software; good software is inherently simple.”</p>
<p>Here’s a screenshot of a LearnHub search results page for the search term “accordion” – and yes, the word appears on a handful of Learnhub pages!</p>
<p align="center"><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub_search_results_page.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="LearnHub search results page for the search term &quot;accordion&quot;" border="0" alt="LearnHub search results page for the search term &quot;accordion&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/learnhub_search_results_page_thumb.jpg" width="600" height="350" /></a><em> LearnHub’s search results page for the term “accordion”.</em></p>
<p>LearnHub have benefited from using Bing to power their site-wide search, and they’ve decided to share the wealth. <strong>Wesley’s working on refactoring the Ruby library he wrote to act as a wrapper for the Bing API and open source it for anyone to use.</strong> It should be available later this summer. He’ll announce it when it’s released, and I’ll announce it here.</p>
<h3>The Bing API</h3>
</p>
<p><a href="http://bing.com/developers"><img style="border-right-width: 0px; margin: 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Bing logo" border="0" alt="Bing logo" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/bing2.jpg" width="250" height="96" /></a></p>
<p>It’s easy to harness the power of Bing in your applications, whether for desktop, web or mobile.</p>
<p><strong>The first step is to <a href="http://www.bing.com/developers/createapp.aspx">get an AppID</a>,</strong> which is a string that uniquely identifies you as a registered Bing application developer. Go to the <a href="http://bing.com/developers/">Bing Developer Center</a>, sign in with your Windows Live ID (which you can get for free) and follow the link to created a new AppID. You’ll be asked to supply some very basic information about your application and to review the Bing API’s Terms of Use. If you provide the information and agree to the <a href="http://www.bing.com/developers/tou.aspx">Terms of Use</a> (which I summarize in plain English below), you&#8217;ll get an AppID.</p>
<p><strong>Once you have an AppID, you can start experimenting right away with the Bing API.</strong> All you need to do is start typing URLs with the format below into your browser’s address bar:</p>
</p>
<pre><code>http://api.search.live.net/xml.aspx?AppID=<em><strong>&lt;AppID&gt;</strong></em>&amp;query=<em><strong>&lt;SearchTerms&gt;</strong></em>&amp;sources=<em><strong>&lt;SourceTypes&gt;</strong></em></code></pre>
</p>
<p>where:</p>
<ul>
<li><strong><code>&lt;AppID&gt;</code></strong> is the AppID assigned to you </li>
<li><strong><code>&lt;SearchTerms&gt;</code></strong> are your urlencoded search terms </li>
<li><strong><code>&lt;SourceTypes&gt;</code></strong> specifies the type(s) of search results you want. The different sourcetypes are explained in the table below: </li>
</ul>
<table border="1" cellspacing="3" cellpadding="3" width="600">
<tbody>
<tr>
<td valign="top" width="114"><strong>SourceType</strong></td>
<td valign="top" width="286"><strong>Description</strong></td>
<td valign="top" width="200"><strong>Example Search Terms</strong></td>
</tr>
<tr>
<td valign="top" width="114"><strong><code>Web</code></strong></td>
<td valign="top" width="286">Searches for web content</td>
<td valign="top" width="200">accordion – returns web pages containing the term “accordion”</td>
</tr>
<tr>
<td valign="top" width="114"><strong><code>Image</code></strong></td>
<td valign="top" width="286">Searches for images on the web</td>
<td valign="top" width="200">accordion – returns images of accordions</td>
</tr>
<tr>
<td valign="top" width="114"><strong><code>News</code></strong></td>
<td valign="top" width="286">Searches news stories</td>
<td valign="top" width="200">accordion – returns news articles about accordions</td>
</tr>
<tr>
<td valign="top" width="114"><strong><code>InstantAnswer</code></strong></td>
<td valign="top" width="286">Searches Encarta online</td>
<td valign="top" width="200">what is an accordion – returns the definition of “accordion” </p>
<p>convert 1.6 kilometres to miles – returns “0.9941939 miles” </p>
<p>sin(30 degrees) – returns “0.5”</td>
</tr>
<tr>
<td valign="top" width="114"><strong><code>Spell</code></strong></td>
<td valign="top" width="286">Searches Encarta Dictionary for spelling suggestions</td>
<td valign="top" width="200">accordi<strong><em>a</em></strong>n – returns “accordi<strong><em>o</em></strong>n”&#160; </td>
</tr>
<tr>
<td valign="top" width="114"><strong><code>Phonebook</code></strong></td>
<td valign="top" width="286">Searches phonebook entries</td>
<td valign="top" width="200">accordions in Toronto – returns location results for “accordions in Toronto”</td>
</tr>
<tr>
<td valign="top" width="114"><strong><code>RelatedSearch</code></strong></td>
<td valign="top" width="286">Returns query strings most similar to yours</td>
<td valign="top" width="200">accordion – returns results like “{piano accordion; button accordion; accordion store}”</td>
</tr>
<tr>
<td valign="top" width="114"><strong><code>Ad</code></strong></td>
<td valign="top" width="286">Returns advertisements to incorporate with results (use this to make money with you Bing-powered application)</td>
<td valign="top" width="200">accordion – returns ads relevant to the keyword “accordion”</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>The default format for results is XML, and that’s the format you get when typing in API calls in your browser. You can also have the results returned as JSON or SOAP if you prefer.</p>
<p>You can find out more about the Bing API in the <a href="http://msdn.microsoft.com/en-us/library/dd251056.aspx">Bing API section of MSDN</a>.</p>
<h3>Bing’s Terms of Use, Explained as Simply as Possible</h3>
<p><strong>Here’s a quick explanation of Bing’s Terms of Use for those of us without a law degree.</strong> It’s adapted from the Bing documentation and provides a quick summary of what application developers using the Bing API must do and cannot do (besides the obvious &quot;I promise not to use the API to plan a terrorist attack, run a drug smuggling ring or help the band Nickelback take forceful despotic rule of planet Earth&quot;).</p>
<p><strong>What you must do:</strong></p>
<ul>
<li>You must display all the results you request. No filtering! </li>
<li>You must display your results in the context of a user-facing application or website. </li>
<li>You must display attribution to Bing in a manner compliant with our branding rules. Currently, you may determine the specific manner in which you display attribution. A link to <a href="http://www.live.com">http://www.live.com</a> with the query echo is a suggested example. </li>
<li>You must restrict your usage to <strong>less than 7 queries per second per IP address</strong>. You may be permitted to exceed this limit under some conditions, but this must be approved through discussion with the folks at <a href="mailto:api_tou@microsoft.com">api_tou@microsoft.com</a>. </li>
<li>If you interleave data from any source other than the API with data from the API, you must clearly<br />
    <br />differentiate the respective sources. (Yes, you can interleave Bing results with other data!) </li>
</ul>
<p><strong>What you cannot do:</strong></p>
<ul>
<li>You cannot use API results for search engine optimization (SEO). In particular, using the API for rank checks is explicitly prohibited. </li>
<li>You cannot display advertisements in positions other than the mainline and sidebar. </li>
<li>You cannot change the order of the results the API returns from a SourceType other than <code>Web</code>. (In other words, you <em>can</em> re-order results from standard searches for web pages!) </li>
</ul>
<h3>Bing Your Apps!</h3>
<p>From there, the sky’s the limit. The Bing API is very straightforward and easy to use, it costs nothing to use it, and as someone who’s been using Bing as his default search engine since its beta period, the results it provides are great. Go forth and Bing your apps!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/06/29/learnhub-powered-by-rails-searches-with-bing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The &#8220;employment.nil?&#8221; Ruby Job Fair</title>
		<link>http://www.globalnerdy.com/2009/06/09/the-employmentnil-ruby-job-fair/</link>
		<comments>http://www.globalnerdy.com/2009/06/09/the-employmentnil-ruby-job-fair/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 01:26:33 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Pete Forde]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Unspace]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=3605</guid>
		<description><![CDATA[One of the pillars of the Toronto developer scene is the Ruby/Rails community. They’re an active, engaged, hard-working bunch who work without the direct benefit of a large organization like The Empire or its resources (they do, through people like Yours Truly and Nik Garkusha, Microsoft Canada’s open source go-to guy, get some indirect support). [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="employment_nil_floor" border="0" alt="employment_nil_floor" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/employment-nil-floor.jpg" width="600" height="450" /></p>
<p><strong>One of the pillars of the Toronto developer scene is the Ruby/Rails community.</strong> They’re an active, engaged, hard-working bunch who work without the direct benefit of a large organization like <a href="http://microsoft.com/">The Empire</a> or its resources (they do, through people like Yours Truly and <a href="http://twitter.com/nik_g">Nik Garkusha</a>, Microsoft Canada’s open source go-to guy, get some <em>indirect</em> support). They – through the efforts of people like Pete Forde and the Ruby local heroes at <a href="http://unspace.ca/">Unspace</a> – know how to maximize grassroots organization and harness them into industry-leading events like last year’s <a href="http://rubyfringe.com/">RubyFringe</a> and the upcoming <a href="http://futureruby.com/">FutureRuby</a> conference.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="meghann_and_pete" border="0" alt="meghann_and_pete" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/meghann-and-pete.jpg" width="450" height="600" /></p>
<p><strong>It should therefore not be a surprise that when Pete and company got the idea to help out their fellow Ruby developers during the econopocalypse with a job fair – <em><a href="http://rubyjobfair.ca/">employment.nil?</a></em> &#8212; they’d take the standard techie job fair formula, turn it upside down and make it their very own.</strong> They chose the Gladstone Hotel in Toronto’s hip <a href="http://westqueenwest.ca/">West Queen West neighbourhood</a>, which is better known as a venue for karaoke, rock bands and burlesque (in fact, I’ve performed in all three kinds of shows there) than for computer and IT-related employment fairs.</p>
<p>&#160;<img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="unspace" border="0" alt="unspace" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/unspace.jpg" width="600" height="450" /></p>
<p><strong>This was <em>not</em> your typical job fair.</strong> It didn’t have any of the fancy display stands that you normally see on the exhibition floor at tech conferences. Instead, both job-seekers and small companies were told to build poster board displays, a la high school science fairs. </p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="shindig" border="0" alt="shindig" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/shindig.jpg" width="600" height="450" /></p>
<p><strong>Another rule: <em>no computers allowed!</em></strong> Even iPhone apps were considered “cheating”. The closest you were allowed to get was using whiteboards or pen and paper for “live coding”. This wasn’t about staring at computer screens, but people talking to other people – people who were passionate about the Ruby programming language and its associated frameworks, libraries and communities. </p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="postrank" border="0" alt="postrank" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/postrank.jpg" width="600" height="450" /></p>
<p><strong>An excerpt from <a href="http://rubyjobfair.eventbrite.com/">the sign-up page for <em>employment.nil?</em></a>:</strong></p>
<blockquote><p>Let&#8217;s face it: it&#8217;s better to be a Ruby developer than a car manufacturer in 2009, but things have definitely slowed down — for everyone. And yet, there are solid reasons why this is an excellent time to start new projects, launch companies, and create new markets. By definition, Ruby has been adopted by creative individuals that grew frustrated with risk averse bureaucracies.</p>
<p>We believe that there are huge number of opportunities to be found during this economic downturn, both for freelance developers and aspiring entrepreneurs alike. As with most tragic historical near-misses, there are just a huge number of connections that aren&#8217;t made even in our own collective back yard.</p>
</blockquote>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="terry_smith" border="0" alt="terry_smith" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/terry-smith.jpg" width="600" height="450" /></p>
<p><strong>More from the job fair’s site:</strong></p>
<blockquote><p>That said, we also believe that Ruby people are determined self-starters that aren&#8217;t afraid to self-promote. Anything worth doing in life requires hard work and sacrifice. Sadly, while many developers are patient and willing to think orthogonally, we rarely get an opportunity to practice the other more social skills which make us desirable as team members, project managers, and co-founders. Unless we overcome our shyness and learn to speak eloquently about our experience and skill sets, we have nobody to blame for our work prospects but ourselves.</p>
<p>Our solution is to gather students, developers, development companies, and of course project leaders and company founders for a good old-fashioned career fair. </p>
</blockquote>
<p>As you can see from the photos, there were different kinds of booths set up. There were those for companies looking to hire some Ruby developers…</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="mulder_consulting" border="0" alt="mulder_consulting" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/mulder-consulting.jpg" width="600" height="450" /></p>
<p>and those deidicated to showcasing some interesting application of Ruby, such as lojacking iPhones:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="tony_thompson" border="0" alt="tony_thompson" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/tony-thompson.jpg" width="600" height="450" /></p>
<p>…or <a href="http://hacklab.to/">HacklabTO’s</a> own Jed Smith showing how we harness Ruby to drive our laser (yes, we’ve got a laser etcher/cutter!):</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="ruby_laser_awesome" border="0" alt="ruby_laser_awesome" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/ruby-laser-awesome.jpg" width="600" height="450" />&#160;</p>
<p>And some booths were set up by Ruby programmers showcasing their own work and who were looking for a job:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="talha_syed_1" border="0" alt="talha_syed_1" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/talha-syed-1.jpg" width="600" height="450" /></p>
<p>&#160;<img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="talha_syed_2" border="0" alt="talha_syed_2" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/talha-syed-2.jpg" width="600" height="450" /></p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="dan_mcgrady" border="0" alt="dan_mcgrady" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/dan-mcgrady.jpg" width="600" height="450" /></p>
<p>The event wasn’t just noticed by the Ruby community, who filled the room throughout the 11 a.m. to 6 p.m. course of the event. <strong>Late in the afternoon, Ontario’s Minister of Small Business and Consumer Services, <a href="http://www.hstakhar.com/">Harinder S. Takhar</a>, paid a visit to the job fair.</strong></p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="meghann_pete_minister" border="0" alt="meghann_pete_minister" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/meghann-pete-minister.jpg" width="600" height="450" /></p>
<p>Pete, ever the gracious event curator, took Mr. Takhar to several booths, introducing him to their owners, who were only too happy to show the Minister their Ruby-related work. Here’s <a href="http://www.shindigital.com/">Andrew Burke of Shindig</a>, showing him the projects he’s taking on in his independent software consultancy:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="andrew_minister" border="0" alt="andrew_minister" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/andrew-minister.jpg" width="450" height="600" /></p>
<p>Here’s <a href="http://twitter.com/kieran">Kieran Huggins</a> showing Mr. Takhar his work in <a href="http://myttc.ca/">MyTTC.ca</a>: </p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="minister_kieran" border="0" alt="minister_kieran" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/minister-kieran.jpg" width="600" height="450" /></p>
<p>I’m sure that grassroots high-tech events with a strong “indie” aesthetic are outside the Minister’s everyday experience, but he seemed pretty impressed with the event: a dedicated group of nerds building software and careers using only laptops, stuff you can download for free and their brain cells.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="minister_presentation" border="0" alt="minister_presentation" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/minister-presentation.jpg" width="450" height="600" /></p>
<p>Here’s Pete explaining the local Ruby developer scene and the concept of open source software to Mr. Takhar:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="pete_minister" border="0" alt="pete_minister" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/pete-minister.jpg" width="600" height="450" /></p>
<p>And here’s Mr. Takhar presenting Pete with an award of recognition for Unspace for putting the event together. At that point, I broke out the accordion and played <em>For He’s a Jolly Good Fellow</em>, partly for the Minister for showing up on a Saturday afternoon, but partly for Pete for putting the event together.</p>
<p>&#160;<img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="pete_minister_certificate" border="0" alt="pete_minister_certificate" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/pete-minister-certificate.jpg" width="450" height="600" /></p>
<p>Here’s a close-up of the award:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="award_of_recognition" border="0" alt="award_of_recognition" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/06/award-of-recognition.jpg" width="600" height="800" /></p>
<p>It reads:</p>
<blockquote><p>Award of Recognition</p>
<p>On behalf of the Government of Ontario,      <br />I am delight to extend my congratulations on the       <br />Employment.nil?       <br />First Toronto Ruby Job Fair</p>
<p>Unspace Interactive Inc.</p>
<p>Our government recognizes the importance of new and creative opportunities for      <br />business. Building a business requires vision and dedication. I applaud your work and       <br />success in web consulting through your team of industry-leading developers and       <br />designers under one roof.</p>
<p>Please accept my best wishes for continued success.</p>
<p>Harinder S. Takhar      <br />Minister of Small Business and Consumer Services       <br />June 06, 2009</p>
</blockquote>
<p>Congratulations to Pete, Meghann Millard, all the folks from Unspace and the Toronto Ruby community on a job well done!</p>
<h3>The Photo Gallery</h3>
<p><a href="http://www.flickr.com/photos/accordionguy/sets/72157619407493507/">I took a lot of photos at <strong><em>employment.nil?</em></strong> and shared them in a Flickr photoset</a>, which you can also view in the slideshow below:</p>
<p align="center"><iframe height="600" src="http://www.flickr.com/slideShow/index.gne?group_id=&amp;user_id=37996580467@N01&amp;set_id=72157619407493507&amp;tags=Ruby,Rails,jobfair,Toronto" frameborder="0" width="600" scrolling="no" align="center"></iframe>    <br /><small>Created with <a title="Admarket.se" href="http://www.admarket.se">Admarket&#8217;s</a> <a title="flickrSLiDR" href="http://flickrslidr.com">flickrSLiDR</a>.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/06/09/the-employmentnil-ruby-job-fair/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails and Merb Merge!</title>
		<link>http://www.globalnerdy.com/2008/12/23/ruby-on-rails-and-merb-merge/</link>
		<comments>http://www.globalnerdy.com/2008/12/23/ruby-on-rails-and-merb-merge/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 21:47:27 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software and Services]]></category>
		<category><![CDATA[Merb]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[merger]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2008/12/23/ruby-on-rails-and-merb-merge/</guid>
		<description><![CDATA[The Merb/Rails rivalry could’ve gone as depicted on the cover of the science fiction “classic” shown below… &#160; (I think Merb would be the Human Bat and Rails would be the Robot Gangster.) …but instead, the two projects have merged! The result will be the upcoming Rails 3. The merger is commemorated on a “plaque” [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The <a href="http://merbivore.com/">Merb</a>/<a href="http://rubyonrails.org/">Rails</a> rivalry could’ve gone as depicted on the cover of the science fiction “classic” shown below…</p>
<p><img title="the_human_bat_v_the_robot_gangster" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="599" alt="the_human_bat_v_the_robot_gangster" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/12/the-human-bat-v-the-robot-gangster.jpg" width="400" border="0" /></p>
<p>&#160;</p>
<p>(I think Merb would be the Human Bat and Rails would be the Robot Gangster.)</p>
<p><a href="http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3">…but instead, the two projects have merged!</a> The result will be the upcoming <strong>Rails 3</strong>.</p>
<p>The merger is commemorated on a “plaque” page on the Rails site titled <a href="http://rubyonrails.org/merb"><strong><em>The Day Merb Joined Rails</em></strong></a>, which I’ve excerpted below:</p>
<blockquote><p><a href="http://www.merbivore.com/">Merb</a> was started two years ago by Ezra Zygmuntowicz as a tiny framework to serve ERb templates from Mongrel. This quickly grew into much more and carved out a niche as an alternative Rails stack. Merbists focused on among other things a small speedy core, being ORM/JavaScript agnostic, and having a rigorous API for extensions.</p>
<p>Along with the expansion in ambition came the fact that Merb and Rails started sharing more and more of the same ideas and even implementation. This lead to a fair amount of unnecessary duplication on both sides of the fence and lead to some paradox of choice. When do I choose one over the other and when?</p>
<h3>Rails 3</h3>
<p>On December 23rd, we decided to end the duplication and the paradox of choice. That was the day we declared our intentions of bringing the best ideas of Merb into Rails 3. That was the day <a href="http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3">we</a> <a href="http://yehudakatz.com/2008/12/23/rails-and-merb-merge/">announced</a> <a href="http://brainspl.at/articles/2008/12/23/merb-is-rails">our</a> <a href="http://merbist.com/2008/12/23/rails-and-merb-merge/">commitment</a> <a href="http://splendificent.com/2008/12/the-merb-rails-merger-announcement-an-inside-opinion/">to</a> work together.</p>
</blockquote>
<p>It’s nice to see this sort of thing happening. It’s more common to see projects forking over the tiniest disagreements, a la <a href="http://www.mwscomp.com/movies/brian/brian-07.htm">“The People’s Front of Judea” in Monty Python’s <em>Life of Brian</em></a><em>:</em></p>
<p style="text-align: center"><embed src="http://www.youtube.com/v/gb_qHP7VaZE&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed> </p>
<p>It’s a win for both projects, as well as the users. Rails gets some much-needed optimization, the ability to shed excess weight for speed, framework agnosticism and an API that won’t break with upgrades, and Merb gets a much bigger development community and mindshare momentum that Rails enjoys. Better still, the merger now has both teams’ big brains working on the same project, and isn’t that what the spirit of the <a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself">DRY</a> principle is all about?</p>
<p>Congratulations to both the Merb and Rails teams! And hey, congrats to all you Ruby/Rails/Merb developers out there too! 2009 just got a little more interesting for all of us.</p>
<h3>Links</h3>
<ul>
<li><a href="http://rubyonrails.org/merb"><strong>The Rails/Merb Commemorative Merger Page</strong></a> </li>
<li>The Rails Blog: <a href="http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3"><strong><em>Merb Gets Merged into Rails 3!</em></strong></a> </li>
<li>Yehuda Katz’ blog, <em>Katz Got Tour Tongue?</em>: <strong><em><a href="http://yehudakatz.com/2008/12/23/rails-and-merb-merge/">Rails and Merb Merge</a></em></strong> </li>
<li><em>The Merbist</em>: <a href="http://merbist.com/2008/12/23/rails-and-merb-merge/"><strong><em>Rails and Merb Core Team Working Together on Their Next Release</em></strong></a> </li>
<li><em>Brainspl.at</em>: <a href="http://brainspl.at/articles/2008/12/23/merb-is-rails"><em><strong>Merb *is* Rails</strong></em></a> </li>
<li>Lori Holden’s blog: <strong><em><a href="http://loriholden.com/archives/2008/12/23/16-merb-is-rails-30">Merb is Rails 3.0</a></em></strong> </li>
<li>Tom Mornini’s blog: <strong><em><a href="http://mornini.wordpress.com/2008/12/23/rails-2x-merb-1x-rails-30/">Rails 2.x + Merb 1.x = Rails 3.0!</a></em></strong> </li>
<li><em>Splendificent</em>: <strong><em><a href="http://splendificent.com/2008/12/the-merb-rails-merger-announcement-an-inside-opinion/">The Merb/Rails Merger Announcement, an Inside Opinion</a></em></strong> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/12/23/ruby-on-rails-and-merb-merge/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Notes from Ruby on Rails Project Night</title>
		<link>http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/</link>
		<comments>http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 21:37:50 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[Creative]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Rich Media Institute]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby/Rails Project Night]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=1567</guid>
		<description><![CDATA[It&#8217;s Back! Last Friday marked the return of Ruby on Rails Project Night, a Toronto-based event where developers who worked on Ruby and Rails projects could do in-depth presentations on their current projects or ideas. It was on hiatus for the past couple of months (you can see this entry for the definition of &#8220;on [...]]]></description>
			<content:encoded><![CDATA[<p></p><h3>It&#8217;s Back!</h3>
<p><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/bruce_lee_rails_nunchucks.jpg" alt="Bruce Lee, brandishing &quot;Rails&quot; nunchucks" title="Bruce Lee, brandishing &quot;Rails&quot; nunchucks" width="270" height="200" align="right" />Last Friday marked the return of <strong>Ruby on Rails Project Night</strong>, a Toronto-based event where developers who worked on Ruby and Rails projects could do in-depth presentations on their current projects or ideas. It was on hiatus for the past couple of months (you can see <a href="http://www.globalnerdy.com/2008/09/17/the-return-of-ruby-on-rails-project-night/">this entry</a> for the definition of &#8220;on hiatus&#8221;), but thanks to the efforts of <a href="http://correlations.wordpress.com/"><strong>Corina Newby</strong></a>, who helped put together the event at its old venue, it&#8217;s back, and judging from the attendance, it was missed. Thanks, Corina, for all your work!</p>
<h3>James Robertson</h3>
<p>The first speaker was also the special guest (and the reason the event was held on a Friday, as opposed to the typical Monday or Tuesday): <a href="http://www.cincomsmalltalk.com/blog/blogView?content=bio"><strong>James Robertson</strong></a>, whom you may know from his blog <a href="http://www.cincomsmalltalk.com/blog/blogView"><cite>Smalltalk Tidbits, Industry Rants</cite></a>. He was on a &#8220;Canadian tour&#8221;, during which he was talking about the Smalltalk-based web app framework <a href="http://en.wikipedia.org/wiki/Seaside_(software)">Seaside</a> as well as Webvelocity, which puts the Smalltalk development experience within the browser.</p>
<p>Here&#8217;s the abstract for his presentation (<a href="http://correlations.wordpress.com/2008/09/19/update-for-tonight-toronto-ror-project-night-returns/">from this entry from Corina&#8217;s blog</a>):</p>
<blockquote><p>
WebVelocity is a new Smalltalk Development Environment that is oriented around Seaside for Web Development and Glorp for Object/Relatonal Mapping. Come and see how WebVelocity re-targets the Smalltalk development experience into the Web Browser and simplifies the challenge of learning a new environment for newcomers. We’ll even build an entire application using Active Record and Scaffolding during the presentation, with minimal programming. If you’re a fan of Ruby on Rails, you need to come out and see this presentation!
</p></blockquote>
<p>Here are my notes from his presentation:</p>
<pre>
- Seaside is open source, but Smalltalk ain't
- Seaside is maintained in Squeak, which you could call "the open source Smalltalk"

- Ruby on Rails is opinionated
- "Seaside is also opinated; it just has different opinions"
- When building Seaside, Avi Bryant asked "What if I took all the assumptions about web apps...
  and ignored them?"
- Some of what I show you is what happens when you blow those assumptions

- The canonical Seaside example -- the number increment/decrement button
  (now we know where that disastrous DemoCamp Seaside presentation came from!)
- Seaside uses continuations to remember state
- They enable "proper" support for the backbutton
- Session state info is keyed via a cryptographically secure key in the URL

- With Rails, you're dealing with two different worlds: templates and code
- Seaside is just one world: You don't write any HTML at all, you write all Smalltalk
- It's all in one place
- Support for debugger -- you can debug web apps as if they were desktop apps, with breakpoints and resumes
- In Seaside, the "html" argument is a "brush" that knows how to "paint" HTML
- You can debug in the middle of a page hit

- In beta: Seaside totally within the browser
- Editing code within a webpage, including tooltips and color hinting
- Every time a method is entered and it is syntactically correct, it is auto-saved -- no need to manual save!
- [Shows a Smalltalk debugger with an Ajax front end]
- "In some ways, it's even more productive than the real Smalltalk environment is"
- [Smalltalk console within the browser]
- [Auto-indenting within the browser]
- [Auto-generates a scaffolding-like page]
- The "call" method lets you write web app code very much like writing GUI stuff
</pre>
<h3>Paul Doerwald</h3>
<p>The second speaker was <a href="http://pauldoerwald.ca/"><strong>Paul Doerwald</strong></a>, who changed his topic from the more Ruby/Rails-specific &#8220;insights gained from working with ActiveRecord validation&#8221; to a more general (but still interesting) topic: Agile Documentation. He figured that it might be a better fit with James&#8217; presentation, and it was &#8212; it was also quite interesting.</p>
<p>Here&#8217;s the abstract for his presentation:</p>
<blockquote><p>
“Programmers generally hate writing documentation. That’s because most documentation is kept separate from the code and becomes hard to keep up-to-date. Besides violating the DRY principle… it can lead to misleading documentation, which is generally worse than none at all.” [Subramaniam/Hunt '06]. Why do developers hate writing documentation, and why do stakeholders and managers keep requiring it? Is there agile documentation beyond inline API documentation (JavaDoc, RDoc, etc.) and comments in the code? What parts of a project deserve separate-from-code documentation? How do we identify them, capture them, and keep them relevant?</p>
<p>Tonight’s Toronto Ruby on Rails Project Night presentation discusses the problem of documentation, explores some key aspects to consider when writing effective  documentation, and dreams of a future of testable, executable documentation, where non-code knowledge could be integrated into your code.“
</p></blockquote>
<p>And here are my notes from his talk:</p>
<pre>
- My original presentation was going to be about insights gained from ActiveRecord validation
- But I've decided to change it -- it's now on Agile Documentation
- It's my M.Sc. Thesis!
- "You'll find this talk a bit heavy on problem and not so heavy on solution"
- Think of this as an introduction -- I want to frame things and ask:
  what is Agile Documentation?

- By "documentation", I mean by the kind that's by programmers for programmers

- It's not a particularly sexy area
- Frameworks are sexy:
    - Rails is sexy
    - Django is sexy
    - CakePHP is sexy...(for PHP)
- Languages are sexy
    - Ruby is sexy
    - Objective-C is..."strangely alluring"
- Even databases are sexy! Consider CouchDB and AWS
- What's not sexy?
    - Documentation
    - Backup -- at least not until Apple's Time Machine
    - Both are viewed as a waste of time

- We're developers. We may grudgingly accept the presence of non-developer things,
  but we don't want to do them
- Documentation is hard to write
- It seems so much easier to program rather than write
- Writing -- the non code-type -- is not our core competency
- We say "Our code is the authoritative documentation!"
- Consider what DHH said in a "Signal vs. Noise" blog entry in February 2006
    - When asked "How do you document your projects?", he replied "We don't."
    - He also said:
        - "Never worked consistently or successfully"
        - "Not necessary for our work"
        - "Most Rails developers can walk in and find out"
        - "We use Ruby"
        - "Method docs only for non-obvious behaviour"
        - "Docs mean BDUF"
        - "Appropriate only for onerous enviroments with complex policies"
        - "Focus on code quality instead"

- Like backups, docs are important
- We're not the only people who'll be working on a project, especially if it's a success
- We don't want to feel like we're wasting time when we're working
- Running a documentation tool and taking its output and pasting it into a Word doc is not DRY
- Why are we writing highly-coupled docs?

- Is there such a thing as agile documentation? I'm going to say yes
- Look at the Agile Manifesto
    - "We value working software over comprehensive documentation"
    - But it doesn't say that comprehensive documentation isn't valued!

- What's the state of the Art
    - For API Documentation, it's JavaDoc
    - In Rails, the outer classes are well documented, but not the inner ones
    - The JDK is extremely well-documented
    - You could say that RSpec is a form of agile documentation
    - It's a stretch, but Domain-Specific Languages could also be agile documentation
    - After all these, I can only think of process
    - When do we do docs? At the beginning of the process? At the end?

- What could agile documentation look like? What does it feel like?
- I borrowed principle from Alastair Cockburn's "Agile Software Development:
  The Cooperative Game, 2nd ed."
- The goals set out in the book:
    - Finish the game (i.e. finish development and launch the product)
    - Set up the game for the next team
    - Think of pool: maybe you take the hard shot first to set yourself up later for the easy shot
    - Coburn calls this "residue": the stuff that one team leaves behind for the next team
    - Residue includes:
        - Code
        - Process in place
        - Documentation

- I would argue that DHH/37signals has an oral form of documentation
- It works if the company doesn't grow too quickly
- What are we really asking for when we ask for the documentation: Tacit Knowledge
    - "That which is seen but not noticed"
    - It is information that is understood and implied but not stated
    - If you've ever brought someone else onto a team, you spend a lot of time
      explaining things that are obvious to you
    - You might not explain that stuff if you're doing it on paper
    - You don't want to end up in a situtation where there's too much documentation

- What can we borrow from software engineering principles?
    - Orthogonality
        - A good thing in software development
        - Intersect at a clear and obvious point and do not influence each other at any other point
    - Cohesion
        - All attributes and methods are related to the essence of the class
        - Don't have people look in 5 different places to get the answer to a single question
    - Coupling
        - The extent to which one thing is dependent on each other

- To the future
    - 5 years ago, unit testing was unheard of in the web development world
    - Rails and similar projects have helped popularize unit testing
    - We've moved from the point to where we say "testing is awesome"
    - Testing is now a core value
    - Can we make documentation a core value?

- Agile documentation processes
    - Large companies are good at this; open source people not so good
    - Looking to Rails:
        - Documentaton conventions?
        - What if we had 5 steps for writing documentation that did 70% of the work?
    - Can we integrate documentation with code?
        - In many cases, the docs exist as a Word document
        - A step up is to use a Wiki -- support for multiple authors, versioning, linking
        - Can we put docs right in the codebase?
        - Every Rails app has a doc directory -- can we use that?
        - We test code -- is there a way to make testable documentation?
        - What if we could tag a method and class with a keyword and make that keyword appear in the docs?
          -- We could generate an alert when changes happen
</pre>
<h3>Checking Out the Rich Media Institute</h3>
<p>After the presentation, which was held in the Rich Media Institute&#8217;s basement-level lecture room, a number of us headed upstairs to check out its main floor. If you&#8217;re a techie with a creative bent, this place is like a candy store. The front part is a store full of books, t-shirts, music and other goodies that new media creators and aficionados would love, while the back is a gallery for local interactive artists&#8217; works.</p>
<p>I took some photos of the place and posted them in the gallery below. Click on any of the thumbnails to see a larger version of the picture:<br />

<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/books/' title='The Tech Bookshelf at the Rich Media Institute'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/books-150x150.jpg" class="attachment-thumbnail" alt="The Tech Bookshelf at the Rich Media Institute" title="The Tech Bookshelf at the Rich Media Institute" /></a>
<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/books_2/' title='Some of the books available at the Rich Media Institute&#039;s &quot;store&quot; section'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/books_2-150x150.jpg" class="attachment-thumbnail" alt="Some of the books available at the Rich Media Institute&#039;s &quot;store&quot; section" title="Some of the books available at the Rich Media Institute&#039;s &quot;store&quot; section" /></a>
<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/discs/' title='The music area of the Rich Media Institute&#039;s &quot;store&quot; section'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/discs-150x150.jpg" class="attachment-thumbnail" alt="The music area of the Rich Media Institute&#039;s &quot;store&quot; section" title="The music area of the Rich Media Institute&#039;s &quot;store&quot; section" /></a>
<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/discs_2/' title='Another shot of the music area of the Rich Media Institute&#039;s &quot;store&quot; section'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/discs_2-150x150.jpg" class="attachment-thumbnail" alt="Another shot of the music area of the Rich Media Institute&#039;s &quot;store&quot; section" title="Another shot of the music area of the Rich Media Institute&#039;s &quot;store&quot; section" /></a>
<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/far_from_equilibrium/' title='&quot;Far from Equilibrium: Essays on Technology and Design Culture&quot;'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/far_from_equilibrium-150x150.jpg" class="attachment-thumbnail" alt="&quot;Far from Equilibrium: Essays on Technology and Design Culture&quot;" title="&quot;Far from Equilibrium: Essays on Technology and Design Culture&quot;" /></a>
<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/interact_or_die/' title='&quot;Interact or Die!&quot;'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/interact_or_die-150x150.jpg" class="attachment-thumbnail" alt="&quot;Interact or Die!&quot;" title="&quot;Interact or Die!&quot;" /></a>
<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/robot/' title='Cardboard robot in the &quot;gallery&quot; part of the Rich Media Institute'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/robot-150x150.jpg" class="attachment-thumbnail" alt="Cardboard robot in the &quot;gallery&quot; part of the Rich Media Institute" title="Cardboard robot in the &quot;gallery&quot; part of the Rich Media Institute" /></a>
<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/store_wide/' title='A wide shot of the &quot;store&quot; part of the Rich Media Institute, taken from the back.'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/store_wide-150x150.jpg" class="attachment-thumbnail" alt="A wide shot of the &quot;store&quot; part of the Rich Media Institute, taken from the back." title="A wide shot of the &quot;store&quot; part of the Rich Media Institute, taken from the back." /></a>
<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/store_wide_2/' title='A wide shot of the &quot;store&quot; part of the Rich Media Institute, taken from the front'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/store_wide_2-150x150.jpg" class="attachment-thumbnail" alt="A wide shot of the &quot;store&quot; part of the Rich Media Institute, taken from the front" title="A wide shot of the &quot;store&quot; part of the Rich Media Institute, taken from the front" /></a>
<a href='http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/toy_soldier_candle_holder/' title='&quot;Toy Soldier&quot; Candle Holder'><img width="150" height="150" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/toy_soldier_candle_holder-150x150.jpg" class="attachment-thumbnail" alt="&quot;Toy Soldier&quot; Candle Holder" title="&quot;Toy Soldier&quot; Candle Holder" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/09/24/notes-from-ruby-on-rails-project-night/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Return of Ruby on Rails Project Night</title>
		<link>http://www.globalnerdy.com/2008/09/17/the-return-of-ruby-on-rails-project-night/</link>
		<comments>http://www.globalnerdy.com/2008/09/17/the-return-of-ruby-on-rails-project-night/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 16:28:39 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby/Rails Project Night. Rich Media Institute]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=1551</guid>
		<description><![CDATA[After &#8220;a much-needed summer hiatus&#8221; (which you can read as &#8220;the complete implosion of Toronto&#8217;s worst-run software development shop, which used to host the event&#8221;) Ruby on Rails Project Night makes its comeback this Friday, September 19th at its new home at the Rich Media Institute in Kensington Market. Event organizer Corina Newby promises that [...]]]></description>
			<content:encoded><![CDATA[<p></p><p style="text-align:center;"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2008/09/rails_to_victory.jpg" alt="Rails to Victory" title="Rails to Victory" width="600" height="483"  /></p>
<p>After &#8220;a much-needed summer hiatus&#8221; (which you can read as &#8220;the complete implosion of <a href="http://tsotinc.com/">Toronto&#8217;s worst-run software development shop</a>, which used to host the event&#8221;) <a href="http://correlations.wordpress.com/2008/09/04/sept-19th-ruby-on-rails-project-night-the-rich-media-institute/"><strong>Ruby on Rails Project Night</strong></a> makes its comeback this Friday, September 19th at its new home at the <a href="http://www.richmediainstitute.com/">Rich Media Institute</a> in Kensington Market.</p>
<p>Event organizer <a href="http://correlations.wordpress.com/">Corina Newby</a> promises that it won&#8217;t normally be on Fridays, which should the minds of your significant others, party-going friends or World of Warcraft clans at ease. The event is being held on a Friday this time to accommodate the schedule of special guest <a href="http://www.cincomsmalltalk.com/blog/blogView"><strong>James &#8220;<cite>Smalltalk Tidbits, Industry Rants</cite>&#8221; Robertson</strong></a>, who&#8217;ll be there to give us a presentation of the Smalltalk-based web application framework <a href="http://en.wikipedia.org/wiki/Seaside_(software)">Seaside</a> and the Seaside-based Smalltalk development environment WebVelocity.</p>
<p>Also scheduled is local Ruby on Rails developer <a href="http://pauldoerwald.ca/"><strong>Paul Doerwald</strong></a>, who&#8217;ll be doing a presentation on insights he gained from working with ActiveRecord validation.</p>
<p>As always, one of the greatest benefits of these gatherings is actually meeting local developers who work with or are interested in working with Ruby and Rails. It&#8217;s good for you, your software development career and the future of <a href="http://en.wikipedia.org/wiki/Toronto">Accordion City</a> as a hub for high-tech when gatherings like this take place, so be a part of it!</p>
<p>By the way, did I mention that the event is <strong>FREE</strong>?</p>
<p>Once again, the date is this <strong>Friday, September 19th</strong> at the <a href="http://www.richmediainstitute.com/">Rich Media Institute</a> (<a href="http://maps.google.com/maps?f=q&#038;hl=en&#038;geocode=&#038;q=156+Augusta+Avenue,+Toronto,+ON&#038;sll=37.0625,-95.677068&#038;sspn=46.764446,112.148438&#038;ie=UTF8&#038;z=16&#038;iwloc=addr">156 Augusta Avenue</a>). The presentations will start at 6 p.m. and run until about 7:30. If you&#8217;re planning to attend, let Corina know at <a href="mailto:corecorina@hotmail.com">corecorina@hotmail.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/09/17/the-return-of-ruby-on-rails-project-night/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;Rails to Victory&#8221;</title>
		<link>http://www.globalnerdy.com/2008/07/31/rails-to-victory/</link>
		<comments>http://www.globalnerdy.com/2008/07/31/rails-to-victory/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 15:33:02 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=1110</guid>
		<description><![CDATA[Here&#8217;s a still from what I assume is a propaganda film from World War II titled Rails to Victory. If any of you are planning to do presentations covering the topic of Rails and are looking for some graphics for your slides, you might want to consider this one: Click the photo to see a [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Here&#8217;s a still from what I assume is a propaganda film from World War II titled <cite>Rails to Victory</cite>. If any of you are planning to do presentations covering the topic of <a href="http://rubyonrails.org/">Rails</a> and are looking for some graphics for your slides, you might want to consider this one:</p>
<p class="center"><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/rails_to_victory.jpg"><img src="http://www.globalnerdy.com/wordpress/wp-content/uploads/rails_to_victory_small.jpg" alt="Opening shot from the film \&quot;Rails to Victory\&quot;" title="Opening shot from the film \&quot;Rails to Victory\&quot;" width="600" height="483" /></a><br /><span class="caption">Click the photo to see a larger version.<br />Photo courtesy of Miss Fipi Lele.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/07/31/rails-to-victory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Tech Reading List for May</title>
		<link>http://www.globalnerdy.com/2008/05/01/my-tech-reading-list-for-may/</link>
		<comments>http://www.globalnerdy.com/2008/05/01/my-tech-reading-list-for-may/#comments</comments>
		<pubDate>Thu, 01 May 2008 19:29:09 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apress]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Head First]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/?p=1655</guid>
		<description><![CDATA[<p>I got a number of books for free this past week:</p>

<p style="text-align:center;"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/05/books_im_reviewing_may_2008.jpg" alt="Books I\&#039;m reviewing in May 2008" title="books_im_reviewing_may_2008" width="400" height="337" /></p>

<ul>
<li><a href="http://www.amazon.com/Head-First-PMP-Brain-Friendly-Professional/dp/0596102348?tag=particculturf-20"><strong><cite>Head First PMP</cite></strong></a> - When my friend <a href="http://hypatia.ca/">Leigh Honeywell</a> heard that I was taking a project management course later this month, she told me that she got this book for free at a conference and had no use for it. So she gave this book to me, and I'll be reading it so that when the course comes around -- it's May 21st through 23rd -- I'll be at least familiar with the material.</li>
</ul>

<p>And four books from <a href="http://apress.com/">Apress</a>, courtesy of Julie Miller:</p>
<ul>
<li><a href="http://www.amazon.com/Pro-PHP-Patterns-Frameworks-Testing/dp/1590598199/ref=pd_bbs_sr_1?ie=UTF8&#038;s=books&#038;qid=1209667340&#038;sr=1-1"><strong><cite>Pro PHP: Patterns, Frameworks, Testing and More</cite></strong></a></li>
<li><a href="http://www.amazon.com/PHP-Objects-Patterns-Practice-Second/dp/1590599098/ref=pd_bxgy_b_img_b"><strong><cite>PHP Objects, Patterns, and Practice, Second Edition</cite></strong></a></li>
<li><a href="http://www.amazon.com/Practical-Web-2-0-Applications-PHP/dp/1590599063/ref=pd_bxgy_b_img_b"><strong><cite>Practical Web 2.0 Applications with PHP</cite></strong></a></li>
<li><a href="http://www.amazon.com/Practical-Reporting-Rails-Experts-Source/dp/1590599330/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1209667643&#038;sr=1-1"><strong><cite>Practical Reporting with Ruby and Rails</cite></strong></a></li>
</ul>

<p>I'll be reading them this month and posting my reviews here in <cite>Global Nerdy</cite>. Watch this space!</p>]]></description>
			<content:encoded><![CDATA[<p></p><p>I got a number of books for free this past week:</p>
<p style="text-align:center;"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/05/books_im_reviewing_may_2008.jpg" alt="Books I\&#039;m reviewing in May 2008" title="books_im_reviewing_may_2008" width="400" height="337" /></p>
<ul>
<li><a href="http://www.amazon.com/Head-First-PMP-Brain-Friendly-Professional/dp/0596102348?tag=particculturf-20"><strong><cite>Head First PMP</cite></strong></a> &#8211; When my friend <a href="http://hypatia.ca/">Leigh Honeywell</a> heard that I was taking a project management course later this month, she told me that she got this book for free at a conference and had no use for it. So she gave this book to me, and I&#8217;ll be reading it so that when the course comes around &#8212; it&#8217;s May 21st through 23rd &#8212; I&#8217;ll be at least familiar with the material.</li>
</ul>
<p>And four books from <a href="http://apress.com/">Apress</a>, courtesy of Julie Miller:</p>
<ul>
<li><a href="http://www.amazon.com/Pro-PHP-Patterns-Frameworks-Testing/dp/1590598199/ref=pd_bbs_sr_1?ie=UTF8&#038;s=books&#038;qid=1209667340&#038;sr=1-1"><strong><cite>Pro PHP: Patterns, Frameworks, Testing and More</cite></strong></a></li>
<li><a href="http://www.amazon.com/PHP-Objects-Patterns-Practice-Second/dp/1590599098/ref=pd_bxgy_b_img_b"><strong><cite>PHP Objects, Patterns, and Practice, Second Edition</cite></strong></a></li>
<li><a href="http://www.amazon.com/Practical-Web-2-0-Applications-PHP/dp/1590599063/ref=pd_bxgy_b_img_b"><strong><cite>Practical Web 2.0 Applications with PHP</cite></strong></a></li>
<li><a href="http://www.amazon.com/Practical-Reporting-Rails-Experts-Source/dp/1590599330/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1209667643&#038;sr=1-1"><strong><cite>Practical Reporting with Ruby and Rails</cite></strong></a></li>
</ul>
<p>I&#8217;ll be reading them this month and posting my reviews here in <cite>Global Nerdy</cite>. Watch this space!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/05/01/my-tech-reading-list-for-may/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TSOT Ruby/Rails Project Night Next Tuesday!</title>
		<link>http://www.globalnerdy.com/2008/02/07/tsot-rubyrails-project-night-next-tuesday/</link>
		<comments>http://www.globalnerdy.com/2008/02/07/tsot-rubyrails-project-night-next-tuesday/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 00:55:21 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Project Night]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[TSOT]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/02/07/tsot-rubyrails-project-night-next-tuesday/</guid>
		<description><![CDATA[<p>Next Tuesday is the second Tuesday of the month, which means: <strong>Ruby/Rails Project Night</strong>, hosted by <a href="http://tsotinc.com/">TSOT</a>!</p>
<p style="text-align:center;"><a href="http://globalnerdy.com/2008/02/07/tsot-rubyrails-project-night-next-tuesday/"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/02/stewart_obrien_colbert_rails_400.jpg" alt="Jon Stewart, Conan O’Brien and Stephen Colbert fighting over a Rails logo" width="400" height="275" /></a></p>
<p><ul>
<li><strong>When:</strong> Tuesday, February 12th, 2008:
  <ul>
     <li>Doors open around 5:30 p.m.</li>
     <li>Presentations begin sometime between 6 - 6:30 p.m.</li>
     <li>Arrive early to get fed!</li>
  </ul>
</li>
<li>Where: TSOT developer office, <a href="http://maps.google.com/maps?f=q&#038;hl=en&#038;geocode=&#038;time=&#038;date=&#038;ttype=&#038;q=151+Bloor+St+W,+Toronto,+ON,+Canada&#038;sll=37.0625,-95.677068&#038;sspn=38.22949,85.078125&#038;ie=UTF8&#038;ll=43.66902,-79.392571&#038;spn=0.017073,0.041542&#038;z=15&#038;iwloc=addr&#038;om=1">151 Bloor Street West</a> (just east of Avenue Road), Suite 1130</li>
<li><strong>Admission: <em>FREE</em></strong> (but please register!)</li>
<li><strong>Register with:</strong> <a href="http://corina.newby@tsotinc.com">Corina Newby</a> or <a href="mailto:joey.devilla@tsotinc.com">Joey deVilla</a></li>
</ul></p>
<p><a href="http://globalnerdy.com/2008/02/07/tsot-rubyrails-project-night-next-tuesday/"><strong>For more details, read on...</strong></a></p>]]></description>
			<content:encoded><![CDATA[<p></p><p>Next Tuesday is the second Tuesday of the month, which means: <strong>Ruby/Rails Project Night</strong>, hosted by <a href="http://tsotinc.com/">TSOT</a>!</p>
<p style="text-align:center;"><img src='http://www.joeydevilla.com/wordpress/wp-content/uploads/2008/02/stewart_obrien_colbert_rails_600.jpg' alt="Jon Stewart, Conan O'Brien and Stephen Colbert fighting over a Rails logo" width="600" height="413" /></p>
<h3>The Quick Version</h3>
<ul>
<li><strong>When:</strong> Tuesday, February 12th, 2008:
<ul>
<li>Doors open around 5:30 p.m.</li>
<li>Presentations begin sometime between 6 &#8211; 6:30 p.m.</li>
<li>Arrive early to get fed!</li>
</ul>
</li>
<li><strong>Where:</strong> TSOT developer office, <a href="http://maps.google.com/maps?f=q&#038;hl=en&#038;geocode=&#038;time=&#038;date=&#038;ttype=&#038;q=151+Bloor+St+W,+Toronto,+ON,+Canada&#038;sll=37.0625,-95.677068&#038;sspn=38.22949,85.078125&#038;ie=UTF8&#038;ll=43.66902,-79.392571&#038;spn=0.017073,0.041542&#038;z=15&#038;iwloc=addr&#038;om=1">151 Bloor Street West</a> (just east of Avenue Road), Suite 1130</li>
<li><strong>Admission: <em>FREE</em></strong> (but please register!)</li>
<li><strong>Register with:</strong> <a href="http://corina.newby@tsotinc.com">Corina Newby</a> or <a href="mailto:joey.devilla@tsotinc.com">Joey deVilla</a></li>
</ul>
<h3>About Ruby/Rails Project Night</h3>
<p>Ruby/Rails Project Night is a Toronto-area gathering held at the TSOT developer office on the second Tuesday of every month. It&#8217;s an event that lets people developing projects in either Ruby or Ruby on Rails show them off in front of their peers in 20-30 minute presentations. Presenters are encouraged to go into as much technical detail as they like (even showing the code, if they&#8217;re so inclined) and cover all sorts of aspects of their projects, from programming issues to visual design and usability to the business of making a living off their software.</p>
<p>Whether you code in Ruby and Rails for a living like we do, dabble in it in your spare time or are just curious as to what the fuss is all about, we encourage you to come to our office next Tuesday for Ruby/Rails Project Night! It&#8217;s a chance for you to see software that&#8217;s being developed right here in town and to mingle with other developers interested in Ruby and Rails. We provide food and drink, so you can focus on the presentations and not your grumbling stomach.</p>
<h3>Who&#8217;s Presenting</h3>
<p>Yours Truly will start the night with an opening monologue to get things going, after which I&#8217;ll be followed the the evening&#8217;s main presentations:</p>
<ul>
<li><strong><cite>How to Avoid Hanging Yourself in Rails,</cite></strong> by Rowan Hick. This presentation is subtitled &#8220;or: Optimizing Your ActiveRecord Associations&#8221;.</li>
<li><strong>EasyBrandingTools.com:</strong> Mike Bowler and Steve Vetzal will talk about their project that helps new businesses be memorable.</li>
<li><strong>CRMS &#8211; Clinical Research Management System.</strong> Luke Galea will present this project, a Rails and Prolog/XSB application that manages drug and procedure trials at some of the biggest hospitals in the U.S..</li>
</ul>
<h3>What Happened at the Last Ruby/Rails Project Night?</h3>
<p style="text-align:center;"><a href="http://www.flickr.com/photos/accordionguy/2180029464/" title="Everyone Takes Their Seats by Joey DeVilla, on Flickr"><img src="http://farm3.static.flickr.com/2104/2180029464_d78aa97e43.jpg" width="500" height="375" alt="Everyone Takes Their Seats" /></a><br /><span class="caption">Click the photo to see it on its Flickr page.</span></p>
<p><a href="http://globalnerdy.com/2008/01/09/tsot’s-first-rubyrails-project-night-a-success/"><strong>Check out this article,</strong></a> which has a quick write-up and photos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/02/07/tsot-rubyrails-project-night-next-tuesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO Tips for Rails Apps</title>
		<link>http://www.globalnerdy.com/2008/02/06/seo-tips-for-rails-apps/</link>
		<comments>http://www.globalnerdy.com/2008/02/06/seo-tips-for-rails-apps/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 15:45:34 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/02/06/seo-tips-for-rails-apps/</guid>
		<description><![CDATA[Default Routes Considered Harmful, and Other Rails SEO Tips covers SEO for Rails apps, with both on-page SEO tips (Prettier URLs, Better Title Tags and DRY in Content) and off-page SEO tips (Easy Linking and Bookmarks).]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.dailybingocards.com/rails-seo-tips.htm"><strong><cite>Default Routes Considered Harmful, and Other Rails SEO Tips</cite></strong></a> covers SEO for Rails apps, with both on-page SEO tips (Prettier URLs, Better Title Tags and DRY in Content) and off-page SEO tips (Easy Linking and Bookmarks).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/02/06/seo-tips-for-rails-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RailsConf 2008 Registration is Open</title>
		<link>http://www.globalnerdy.com/2008/01/29/railsconf-2008-registration-is-open/</link>
		<comments>http://www.globalnerdy.com/2008/01/29/railsconf-2008-registration-is-open/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 19:47:09 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[budgeting]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[decisions]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[O'Reilly]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/01/29/railsconf-2008-registration-is-open/</guid>
		<description><![CDATA[Just got the email: early bird registration for RailsConf 2008 (which is $100 cheaper) is now open. When I was working a nice big company like Tucows, they&#8217;d foot the bill, making the decision a no-brainer. Now that I&#8217;m at TSOT, which is a start-up, we don&#8217;t have those budgets and now I have to [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Just got the email: <a href="https://en.oreilly.com/rails2008/public/register"><strong>early bird registration for RailsConf 2008 (which is $100 cheaper) is now open.</strong></a> When I was working a nice big company like <a href="http://about.tucows.com/">Tucows</a>, they&#8217;d foot the bill, making the decision a no-brainer. Now that I&#8217;m at <a href="http://tsotinc.com/">TSOT</a>, which is a start-up, we don&#8217;t have those budgets and now I have to think about the bang-per-buck ratio. Are you going, and what factors are you taking into account?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/01/29/railsconf-2008-registration-is-open/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Books I’m Buying / Recommended Ruby and Rails Books</title>
		<link>http://www.globalnerdy.com/2008/01/15/books-i%e2%80%99m-buying-recommended-ruby-and-rails-books/</link>
		<comments>http://www.globalnerdy.com/2008/01/15/books-i%e2%80%99m-buying-recommended-ruby-and-rails-books/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 17:01:20 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[recommendations]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[TSOT]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/01/15/books-i%e2%80%99m-buying-recommended-ruby-and-rails-books/</guid>
		<description><![CDATA[<p style="text-align:center;"><a href="http://globalnerdy.com/2008/01/15/books-i%e2%80%99m-buying-recommended-ruby-and-rails-books/"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/01/design_patterns_in_ruby_the_rails_way.jpg" width="374" height="241" alt="Covers of “Design Patterns in Ruby” and “The Rails Way”" /></a></p>

I've got some Ruby and Rails books on order, and Antonio Cangiano's got some Ruby and Rails book recommendations...]]></description>
			<content:encoded><![CDATA[<p></p><p style="text-align:center;"><img src='http://globalnerdy.com/wordpress/wp-content/uploads/2008/01/design_patterns_in_ruby_the_rails_way.jpg' alt='Covers of “Design Patterns in Ruby” and “The Rails Way”' width="374" height="241" /></p>
<p>I&#8217;ve been quite impressed by the &#8220;Addison-Wesley Professional Ruby&#8221; series of books (I&#8217;ve got <a href="http://www.amazon.com/Ruby-Way-Second-Addison-Wesley-Professional/dp/0672328844/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1200415939&#038;sr=8-1"><cite>The Ruby Way</cite></a> and <a href="http://www.amazon.com/RailsSpace-Building-Networking-Addison-Wesley-Professional/dp/0321480791/ref=pd_bbs_sr_1?ie=UTF8&#038;s=books&#038;qid=1200415989&#038;sr=8-1"><cite>RailsSpace</cite></a>) as well as the work of series editor <a href="http://obiefernandez.com/">Obie Fernandez</a>, whom I had the pleasure of meeting at RailsConf 2006. That &#8212; along with glowing reviews for both books plus my serious immersion into Ruby and Rails at <a href="http://tsotinc.com/">TSOT</a> &#8212; is why I&#8217;ve got <a href="http://www.amazon.com/Design-Patterns-Ruby-Addison-Wesley-Professional/dp/0321490452/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1200416043&#038;sr=1-1"><cite>Design Patterns in Ruby</cite></a> and <a href="http://www.amazon.com/Rails-Way-Addison-Wesley-Professional-Ruby/dp/0321445619/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1200416017&#038;sr=1-1"><cite>The Rails Way</cite></a> on order. I&#8217;m looking forward to getting my paws on these books, and I&#8217;ll post reviews shortly afterwards.</p>
<p>(I&#8217;m normally pretty conservative when it comes to spending on computer programming books for the past little while, but that&#8217;s because evangelism rather than programming has paid the rent. <a href="http://globalnerdy.com/2007/11/25/assrockets-and-opportunities-or-why-i-changed-jobs/">That situation has changed somewhat.</a>)</p>
<p>Both <cite>Design Patterns in Ruby</cite> and <cite>The Rails Way</cite> are in Antonio Cangiano&#8217;s set of recommended Ruby and Rails books. If you&#8217;re looking to get into either Ruby or Rails (or if you&#8217;re already into either and just looking for related reading material), <a href="http://antoniocangiano.com/2008/01/15/great-ruby-and-rails-books/"><strong>check out his list.</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/01/15/books-i%e2%80%99m-buying-recommended-ruby-and-rails-books/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TSOT’s Ruby/Rails Project Night</title>
		<link>http://www.globalnerdy.com/2008/01/08/tsot%e2%80%99s-rubyrails-project-night/</link>
		<comments>http://www.globalnerdy.com/2008/01/08/tsot%e2%80%99s-rubyrails-project-night/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 08:01:10 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[Andrew Burke]]></category>
		<category><![CDATA[Hampton Catlin]]></category>
		<category><![CDATA[Mike Ferrier]]></category>
		<category><![CDATA[Project Night]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[TSOT]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/01/08/tsot%e2%80%99s-rubyrails-project-night/</guid>
		<description><![CDATA[<p style="text-align:center;"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/01/rails-project-night-preview.jpg" width="400" height="175" /></p>

Tonight is <a href="http://tsotinc.com/">TSOT's</a> first monthly Ruby/Rails Project Night, where we invite the local developer community into our offices to see presentations on Ruby and Rails development and socialize. We've got a great lineup of speakers...]]></description>
			<content:encoded><![CDATA[<p></p><p style="text-align:center;"><img src='http://globalnerdy.com/wordpress/wp-content/uploads/2008/01/rails-project-night.jpg' alt='Andrew Burke, Hampton Catlin and Mike Ferrier' width="600" height="262" /></p>
<p>Tonight is <a href="http://tsotinc.com/">TSOT&#8217;s</a> first monthly Ruby/Rails Project Night, where we invite the local developer community into our offices to see presentations on Ruby and Rails development and socialize. We&#8217;ve got a great lineup of speakers:</p>
<ul>
<li>Yours Truly, on the lessons and challenges of Zed Shaw&#8217;s rant</li>
<li><strong>Andrew Burke</strong> on the business and technical aspects of his current Rails project</li>
<li><strong>Hampton Catlin</strong> on Ziplocal.com</li>
<li><strong>Mike Ferrier</strong> on The Score&#8217;s iPhone application</li>
</ul>
<p>The event will take place at TSOT’s office — 151 Bloor Street West (on the south side, just east of Avenue Road), suite 1130. The doors open at 5:30 p.m., during which time we&#8217;ll serve food. Presentations start at 6-ish, with breaks in between and some time for socializing afterwards. Admission is free, but space is limited &#8212; to register, please email <a href="mailto:joey.devilla@tsotinc.com">joey.devilla@tsotinc.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/01/08/tsot%e2%80%99s-rubyrails-project-night/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>17 Thousand Reasons I AM a Ruby on Rails Developer</title>
		<link>http://www.globalnerdy.com/2008/01/07/17-thousand-reasons-i-am-a-ruby-on-rails-developer/</link>
		<comments>http://www.globalnerdy.com/2008/01/07/17-thousand-reasons-i-am-a-ruby-on-rails-developer/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 03:05:57 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[money]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[salary]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/01/07/17-thousand-reasons-i-am-a-ruby-on-rails-developer/</guid>
		<description><![CDATA[The blogger at willcode4beer says in 17 Thousand Reasons I&#8217;m not a Ruby on Rails Developer that the median salary of Rails developers is on average $17K less than that for J2EE developers. I&#8217;m not worried &#8212; the pay at TSOT for RoR development is on par with the J2EE rates cited. The article also [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The blogger at <a href="http://willcode4beer.blogspot.com/"><cite>willcode4beer</cite></a> says in <a href="http://willcode4beer.blogspot.com/2008/01/17-thousand-reasons-im-not-ruby-on.html"><strong><cite>17 Thousand Reasons I&#8217;m not a Ruby on Rails Developer</cite></strong></a> that the median salary of Rails developers is on average $17K less than that for J2EE developers. I&#8217;m not worried &#8212; the pay at <a href="http://tsotinc.com/">TSOT</a> for RoR development is on par with the J2EE rates cited.</p>
<p>The article also suggests that &#8220;to bring salaries up, they need to drop the &#8216;easy&#8217; part. Development is hard, and no language or platform is going to change that. We solve complex problems. Complex problems are hard to solve. period. They should focus on the productivity gains in the areas where Rails shines, and try to avoid the areas where it doesn&#8217;t.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/01/07/17-thousand-reasons-i-am-a-ruby-on-rails-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rant Said Zed: I&#8217;m Too Sexy for My Rails</title>
		<link>http://www.globalnerdy.com/2008/01/06/rant-said-zed-im-too-sexy-for-my-rails/</link>
		<comments>http://www.globalnerdy.com/2008/01/06/rant-said-zed-im-too-sexy-for-my-rails/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 18:53:21 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Ideas and Opinions]]></category>
		<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toronto]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[Project Night]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[TSOT]]></category>
		<category><![CDATA[Zed Shaw]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/01/06/rant-said-zed-im-too-sexy-for-my-rails/</guid>
		<description><![CDATA[<p style="text-align:center;"><a href="http://globalnerdy.com/2008/01/06/rant-said-zed-im-too-sexy-for-my-rails/"><img src="http://globalnerdy.com/wordpress/wp-content/uploads/2008/01/right_said_fred_vs_rant_said_zed_preview.jpg" width="400" height="204" alt="Fred Fairbrass and Zed Shaw, side by side. The resemblance is uncanny!" /></a></p>

(The resemblance between Fred "Right Said Fred" Fairbrass and Zed Shaw -- uncanny, isn't it?)

Inspired by the now-infamous rant by Zed Shaw, I'm changing my presentation topic at Tuesday's TSOT Ruby/Rails Project Night to "Rant Said Zed: I'm Too Sexy for My Rails (or: Lessons and Challenges from Zed Shaw's Rant"). If you're free Tuesday evening, you might want to catch this.]]></description>
			<content:encoded><![CDATA[<p></p><p style="text-align:center;"><a href="http://www.flickr.com/photos/adewale_oshineye/423037071/"><img src='http://globalnerdy.com/wordpress/wp-content/uploads/2008/01/right_said_fred_vs_rant_said_zed.jpg' alt='Fred Fairbrass and Zed Shaw, side by side. The resemblance is uncanny!' /></a><br /><span class="caption">The resemblance is uncanny, isn&#8217;t it?<br />Zed Shaw photo by Adewale Oshineye &#8212; click the photo to see it on its Flickr page.</span></p>
<p>By now, most Rails developers &#8212; and even a number of people who couldn&#8217;t care less about Rails &#8212; have read <a href="http://www.zedshaw.com/rants/rails_is_a_ghetto.html"><strong>Zed Shaw&#8217;s infamous rant titled <cite>Rails is a Ghetto</cite></strong></a>. It&#8217;s given me a lot to think about, and as a result, I&#8217;m changing my presentation topic at Tuesday&#8217;s TSOT Ruby/Rails Project Night to <strong><cite>Rant Said Zed: I&#8217;m Too Sexy for my Rails (or: Lessons and Challenges from Zed Shaw&#8217;s Rant)</cite></strong>. I promise that it&#8217;ll be both informing and entertaining.</p>
<ul>
<li>Want to know more about Tuesday&#8217;s TSOT Ruby/Rails Project Night, which takes place this Tuesday, January 8th? <a href="http://globalnerdy.com/2008/01/04/tsots-rubyrails-project-night-next-tuesday/"><strong>See this entry.</strong></a></li>
<li>Want to sign up? <a href="mailto:joey.devilla@tsotinc.com"><strong>Email me!</strong></a></li>
</ul>
<h3>Aside: A Quick Trip Down Memory Lane</h3>
<p>How can I reference <a href="http://en.wikipedia.org/wiki/Right_Said_Fred">Right Said Fred</a> without showing you <a href="http://www.youtube.com/watch?v=ipZDG6__Zfc">the video for their one hit</a>?</p>
<p style="text-align:center;"><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/ipZDG6__Zfc&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/ipZDG6__Zfc&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/01/06/rant-said-zed-im-too-sexy-for-my-rails/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>“Now, While Rails is Weak, We Must Strike!”</title>
		<link>http://www.globalnerdy.com/2008/01/02/%e2%80%9cnow-while-rails-is-weak-we-must-strike%e2%80%9d/</link>
		<comments>http://www.globalnerdy.com/2008/01/02/%e2%80%9cnow-while-rails-is-weak-we-must-strike%e2%80%9d/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 03:50:46 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[Geek Culture]]></category>
		<category><![CDATA[language wars]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Zed Shaw]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/01/02/%e2%80%9cnow-while-rails-is-weak-we-must-strike%e2%80%9d/</guid>
		<description><![CDATA[<p style="text-align:center;"><a href="http://globalnerdy.com/2008/01/02/“now-while-rails-is-weak-we-must-strike”/"><img src='http://globalnerdy.com/wordpress/wp-content/uploads/2008/01/rebel_pilot_briefing_preview.jpg' alt='Preview: Rebel pilot briefing from “Star Wars: A New Hope”, with some Rails-specific changes made to the display of the Death Star' width="400" height="450" /></a></p>

Of all the responses to Zed Shaw's <cite>Rails is a Ghetto</cite> rant, the one in Jesse Stay's blog is the most hilarious...]]></description>
			<content:encoded><![CDATA[<p></p><p style="text-align:center"><img src='http://globalnerdy.com/wordpress/wp-content/uploads/2008/01/rebel_pilot_briefing.jpg' alt='Rebel pilot briefing from “Star Wars: A New Hope”, with some Rails-specific changes made to the display of the Death Star' width="500" height="375" /></p>
<p>If you&#8217;ve been following the usual programmer and tech new sites, you&#8217;ve probably read (or at least heard of) <a href="http://www.zedshaw.com/rants/rails_is_a_ghetto.html"><strong>Zed Shaw&#8217;s rant, titled <cite>Rails is a Ghetto</cite></strong></a>. If you haven&#8217;t read it yet, <a href="http://www.zedshaw.com/rants/rails_is_a_ghetto.html">go there now, give it a quick read</a> and come back. I can wait.</p>
<p>High-spirited stuff, isn&#8217;t it? As you might expect, there have been a <a href="http://programming.reddit.com/info/6489w/comments/">number</a> <a href="http://www.techcrunch.com/2008/01/01/zed-shaw-puts-the-smack-down-on-the-rails-community/">of</a> <a href="http://gilesbowkett.blogspot.com/2007/12/problem-with-zed-shaw.html">interesting</a> <a href="http://www.rubyinside.com/zed-shaw-goes-nuclear-on-our-community-683.html">responses</a> to Zed&#8217;s polemic, <strong>but only one made me laugh out loud &#8212; it&#8217;s <a href="http://www.jessestay.com/articles/2008/01/02/perl-now-is-the-time-to-step-up/">this entry in Jesse Stay&#8217;s blog</a>:</strong></p>
<blockquote><p>
Ruby on Rails is weak right now, it’s breaking apart from the inside. Now is the time for the Perl community to show its strength and unite in an effort to make Perl once again the most used platform on the web!
</p></blockquote>
<p>Perhaps it&#8217;s time for <a href="http://en.wikipedia.org/wiki/Larry_Wall">Larry Wall</a> to update <a href="http://www.netropolis.org/hash/perl/virtue.html">his maxim about the great virtues of a programmer</a>: it should now be laziness, impatience, hubris and <em>revenge fantasies.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/01/02/%e2%80%9cnow-while-rails-is-weak-we-must-strike%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gift Idea: &#8220;RailsSpace: Building a Social Networking Site with Ruby on Rails&#8221;</title>
		<link>http://www.globalnerdy.com/2007/12/17/gift-idea-railsspace-building-a-social-networking-site-with-ruby-on-rails/</link>
		<comments>http://www.globalnerdy.com/2007/12/17/gift-idea-railsspace-building-a-social-networking-site-with-ruby-on-rails/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 19:21:47 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[recommendation]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Social Software]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2007/12/17/gift-idea-railsspace-building-a-social-networking-site-with-ruby-on-rails/</guid>
		<description><![CDATA[Today marks the start of my fourth week at TSOT, a Toronto-based startup that develops custom social networking software in Ruby on Rails. The company&#8217;s first two products are FraternityLive and SororityLive, which as you might imagine are targeted at fraternities and sororities, with future plans for creating similar apps for other fields. I was [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.amazon.com/dp/0321480791"><img src='http://globalnerdy.com/wordpress/wp-content/uploads/2007/12/railsspace.jpg' alt='Cover of the book “RailsSpace”' width="200" height="260" align="right" /></a>Today marks the start of my fourth week at <a href="http://tsotinc.com/">TSOT</a>, a Toronto-based startup that develops custom social networking software in Ruby on Rails. The company&#8217;s first two products are <a href="http://fraternitylive.com/">FraternityLive</a> and <a href="http://sororitylive.com/">SororityLive</a>, which as you might imagine are targeted at fraternities and sororities, with future plans for creating similar apps for other fields.</p>
<p>I was hired primarily for my tech evangelism cred and broad development experience (Visual Basic, Python, PHP, Director and Java from the rough-and-tumble Java 1.2 days) rather than for experience with Rails, on which I&#8217;d done only a little spare-time noodling. This means that a good chunk of my time during this first month on the job has been split between getting familiar with Rails as well as TSOT&#8217;s apps.</p>
<p>Just before my first day at TSOT, I went down to Boston to join my in-laws for American Thanksgiving. While there, I decided to take advantage of the strong Canadian dollar and Thanksgiving weekend sales to do a little job-related book shopping. Although I had the PDF edition of Apress&#8217; <a href="http://www.amazon.com/Practical-Rails-Social-Networking-Experts/dp/1590598415"><cite>Practical Rails Social Networking Sites</cite></a>, I was pleased to stumble across another book on building social networking apps in Rails: Addison Wesley&#8217;s <a href="http://www.amazon.com/dp/0321480791"><strong><cite>RailsSpace: Building a Social Networking Site with Ruby on Rails</cite></strong></a>. I figured that if I find a book that covers the sort of development work that I&#8217;m about to start, I should buy it on the spot (after a quick skim of the book while in the store, of course).</p>
<p>Of all the books I&#8217;ve read on Rails development, this one&#8217;s my current favourite. Yes, there&#8217;ll always be a special place for <a href="http://pragprog.com/titles/rails2/"><cite>Agile Web Development with Rails</cite></a>, but I have to say that I like the pacing, ordering of topics and the presentation of material in <cite>RailsSpace</cite> a little bit better. I like the way that authors Michael Hartl and Aurelius Prochazka take a slightly different approach to teaching Rails, from going with a social networking app rather than a &#8220;store&#8221; app to their clever visualization of Rails&#8217; directories as a pie chart, shown below:</p>
<p style="text-align:center;"><img src='http://globalnerdy.com/wordpress/wp-content/uploads/2007/12/rails_as_a_pie_chart.jpg' alt='Rails directories, laid out in pie chart format' width="350" height="351" /><br /><span class="caption">Graph adapted from <cite>RailsSpace</cite><br />and <a href="http://www.fernandoreig.com/175/rails-as-a-pie-chart/">borrowed from <cite>Weblog of Fernando Reig Matthies</cite></a>.</span></p>
<p>So take it from a guy who&#8217;s paying his rent by working on Rails social networking apps: if you have some development experience under your belt and are looking to pick up Rails in a hurry (or if you&#8217;re looking for a gift for someone who needs to learn Rails in a hurry) I recommend:</p>
<ul>
<li>Picking up a book on Ruby (because you need solid Ruby fundamentals to really write good Rails code &#8212; I&#8217;ll talk about my favourite Ruby books later)</li>
<li>Picking up <a href="http://www.amazon.com/dp/0321480791"><strong><cite>RailsSpace: Building a Social Networking Site with Ruby on Rails</cite></strong></a></li>
</ul>
<p>Here&#8217;s what other folks have to say about the book:</p>
<ul>
<li>Review at Amazon.com by Charles Harvey: <a href="http://www.amazon.com/review/RYXW9X6L5CQM5"><strong>My favorite of the Ten Ruby and Rails Books on my desk</strong></a> &#8212; &#8220;The authors&#8217; programming style(s) are easy to read while following and teaching the Ruby/Rails community practices. The book uses output examples after each snippet of code so you can follow along not wondering if what you just did worked.
<p>The example app you produce while working through RailsSpace is not YASNS (Yet Another Social Networking Site) rather a (LBERBPS) Learn by Example Rails Best Practices Site. It was fun for me as I was tired of shopping cart, and book/music store examples.</p>
<p>I don&#8217;t know how to put it into to the right words, but this books code flows.</p>
<p>I always enjoy the rare book that sets a standard of excellence, and that is what puts this book at the top of my Ruby on Rails Library.&#8221;</li>
<li><cite>myCATs</cite>: <a href="http://mycatshq.com/wordpress/?p=28"><strong>An excellent Rails tutorial for the intermediate Rails Programmer</strong></a> &#8212; &#8220;This book is just plain fun. As the title implies, the focus is on building a social networking site using Ruby on Rails. The depth of knowledge of the authors, Michael Hartl and Aure Prochazka, is evident right from the first chapter. The examples are relevant and well explained, with clean, consice, well-tested and correct code.&#8221;</li>
<li><cite>Nate Klaiber</cite>: <a href="http://www.nateklaiber.com/2007/09/09/railsspace-building-a-social-networking-website-with-ruby-on-rails-book-review/"><strong>RailsSpace review</strong></a> &#8212; &#8220;I may seem cynical about social networks, but this truly book pays attention to the small details. Building a social network is a great tutorial that covers many aspects of Rails and building your own application &#8211; no matter what it is. It has several callout boxes that give more explanation where it is needed. It discusses the importance of testing. It shows the importance of refactoring. All of this comes together to make a great reading experience and knowledge gained. If you are a Rails professional, there might not be a whole lot new for you, but if you are just beginning Rails this is an excellent full-blown tutorial. Even if you don’t want to create a social networking site, the foundation and principles set in this book will give you the knowledge needed to start building your own application.&#8221;</li>
<li><cite>ComputerWorld</cite>: <a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&#038;articleId=9030460"><strong><cite>RailsSpace</cite> hits the Ruby on Rails learning sweet spot</strong></a> &#8212; &#8220;&#8230;if you&#8217;re already a proficient OOP developer &#8212; or a beginner who prefers learning by example &#8212; RailsSpace offers useful insight into what the Ruby on Rails hoopla is all about.&#8221;</li>
<li><cite>A.P. Lawrence</cite>: <a href="http://aplawrence.com/Books/RailsSpace.html"><strong>RailsSpace</strong></a> &#8212; &#8220;I liked also that the project paid attention to both looks and ease of use without clouding up with too much detail. The design is simple, but with enough attention paid to presentation to understand how to accomplish that in ROR, and the same is true for niceties like data validation: they do enough to show the concepts without burying us in it.
<p>The authors also included deliberate mistakes &#8211; that is, design deficiencies which you might notice before they get around to pointing out the problem. That&#8217;s good too, because often the best way to understand why you need to do something this way is to see what happens when you don&#8217;t.&#8221;</li>
<li><cite>WebChicanery</cite>: <a href="http://webchicanery.com/2007/09/20/railsspace-the-book/"><strong>RailsSpace &#8211; The Book</strong></a> &#8212; I’m somewhat skeptical of these “build a project and learn” type of book, but this book may be one the the handiest book on Ruby that I’d had a chance to read. The authors approach it was a very pragmatic and structured standpoint, all while explaining some neat steps and additions they’ve thrown in along the way.&#8221;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2007/12/17/gift-idea-railsspace-building-a-social-networking-site-with-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

