<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>Ottawa Ruby</title><generator>Tumblr (3.0; @ottawaruby)</generator><link>http://ottawaruby.ca/</link><item><title>Ruby Tuesday Summary for May 22nd, 2012 Meetup</title><description>&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Thanks for coming out last night everyone!&lt;/p&gt;

&lt;p&gt;For those who couldn&amp;#8217;t make it, or would just like a recap, a summary of what happened is below.&lt;/p&gt;

&lt;h2&gt;Slidedeck from last night&lt;/h2&gt;

&lt;p&gt;The slides for the May 22nd, 2012 Meetup &lt;a href="http://www.slideshare.net/michaeldwp/ruby-tuesday-may-22-2012"&gt;are available here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Hanging out in the new Shopify Annex&lt;/h2&gt;

&lt;p&gt;Shopify has kindly provided us with a great new space to host future meetups!&lt;/p&gt;

&lt;p&gt;Check it out &amp;#8212;&amp;gt; &lt;a href="http://www.meetup.com/OttawaRuby/photos/713604/#122400822"&gt;http://www.meetup.com/OttawaRuby/photos/713604/#122400822&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s nice, big and open. You can&amp;#8217;t see them in the picture, but there&amp;#8217;s tables along the outside which will be good for future hacking sessions.&lt;/p&gt;

&lt;h2&gt;Announcements&lt;/h2&gt;

&lt;p&gt;We had a few announcements for the upcoming summer speakers. We&amp;#8217;ve got some great speakers and interesting talks lined up, namely:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;&lt;p&gt;June Speaker: Jeff Casimir - Adventures on the Golden Path&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;July Speaker (?): Russ Olsen - Topic to be chosen by vote (cast your vote &lt;a href="http://app.fluidsurveys.com/surveys/ottawa-ruby/russ-olsen-s-talk-topic-survey/"&gt;here&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;August Speaker: Avdi Grimm - Topic to be announced&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;More info can be found in &lt;a href="http://www.slideshare.net/michaeldwp/ruby-tuesday-may-22-2012/3"&gt;the slides here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Introductions&lt;/h2&gt;

&lt;p&gt;We went around the room and introduced ourselves, what we&amp;#8217;re working on and a bit about our backgrounds. It&amp;#8217;s great to see people from all sorts of other languages moving into Ruby.&lt;/p&gt;

&lt;p&gt;This is as it should be. ;)&lt;/p&gt;

&lt;h2&gt;Remote Presentation: Charles Max Wood&lt;/h2&gt;

&lt;p&gt;Charles Max Wood gave an interesting talk on Cassandra Scalability. I&amp;#8217;ll try and get the slide deck and post a link in the Google Group.&lt;/p&gt;

&lt;p&gt;A few links:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://teachmetocode.com"&gt;Teach Me To Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://rubyrogues.com"&gt;Ruby Rogues Podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://rubyfreelancers.com"&gt;Ruby Freelancers Podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://javascriptjabber.com"&gt;Javascript Jabber Podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://devchattv.uservoice.com/forums/149517-ruby-rogues-suggested-topics"&gt;Suggest a Topic&lt;/a&gt;

&lt;ul&gt;&lt;li&gt;See links on the right to suggest topics for Ruby Freelancers or Javascript Jabber &lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Mingling, Pizza, and Drinks&lt;/h2&gt;

&lt;p&gt;After Charles&amp;#8217; talk, we chatted and got to know each other a bit better, while enjoying some pizza and drinks (courtesy of &lt;a href="http://shopify.com"&gt;Shopify&lt;/a&gt;, thanks guys!).&lt;/p&gt;

&lt;h2&gt;Hacking on Katas and One-Liners&lt;/h2&gt;

&lt;p&gt;For those who stuck around after the networking, we had a few Ruby exercises for people to choose from:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;&lt;a href="http://bit.ly/yellow-belt-kata"&gt;Yellow Belt Kata&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bit.ly/refactoring-kata"&gt;Gilded Rose Refactoring Kata&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bit.ly/whenbot-one-liners"&gt;Whenbot One-Liners&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;We didn&amp;#8217;t have a lot of time for this part, but some people managed to get started.&lt;/p&gt;

&lt;p&gt;Additional details on what these involve can be found &lt;a href="http://www.slideshare.net/michaeldwp/ruby-tuesday-may-22-2012/20"&gt;here&lt;/a&gt; (see slide 20 onward).&lt;/p&gt;

&lt;h2&gt;What&amp;#8217;s next?&lt;/h2&gt;

&lt;p&gt;Thanks again for coming out! If you missed this one, be sure to come next month. Jeff Casimir has graciously agreed to return for another talk. :)&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s the abstract for next month&amp;#8217;s talk:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;### Adventures on the Golden Path

Rails 1.0 was about proving we could build the same functionality as
the other web frameworks, but doing it faster.
Rails 2.0 was about pushing the vanguard forward, setting new trends
for how the web should be built.
Rails 3.0 paid down technical debt and laid the foundation for our future.

Now what?

Rails has always guided developers down the "golden path" of best
practices. Let's look at potholes needing filling, ways we can
straighten the dangerous corners, and figure out where this road might
be heading.
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sounds like fun. :) I&amp;#8217;m thinking some of the content may lead to insights into how we can improve our Rails 3 code before Rails 4 hits.&lt;/p&gt;

&lt;p&gt;We hope to see you there!&lt;/p&gt;

&lt;p&gt;The Ruby Tuesday Team&lt;/p&gt;</description><link>http://ottawaruby.ca/post/23671094533</link><guid>http://ottawaruby.ca/post/23671094533</guid><pubDate>Thu, 24 May 2012 10:01:00 -0400</pubDate><category>Katas</category><category>Practice</category><category>Ruby Tuesday</category><category>Meetup</category><category>Summary</category></item><item><title>Git Tutorial Videos and Presentation</title><description>&lt;h2&gt;Gitting To Know You videos&lt;/h2&gt;

&lt;p&gt;For those who are looking to learn more about Git, Casey Li was nice enough to create an introductory video series titled &lt;a href="http://www.caseyli.com/gittingtoknowyou"&gt;Gitting to Know You&lt;/a&gt; (nice title, too :).&lt;/p&gt;

&lt;p&gt;Each of the videos are bite-sized (under 15 minutes). By the end of the series, you should have a good grasp of Git and how to use it.&lt;/p&gt;

&lt;h2&gt;Git Presentation from Girl Develop It&lt;/h2&gt;

&lt;p&gt;At the April meetup, Gabriel Castro mentioned a presentation on Git that was given during a recent &lt;a href="http://www.meetup.com/Girl-Develop-It-Ottawa/"&gt;Girl Develop It&lt;/a&gt; meetup. If you&amp;#8217;re up for some additional information on Git, &lt;a href="https://github.com/kmoir/Git-tutorial"&gt;check out the presentation here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;(To download those, click through the link in the file listing [e.g. GitParty.pdf], and then right-click the &amp;#8220;Raw&amp;#8221; button and click &amp;#8220;Save As.&amp;#8221;)&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description><link>http://ottawaruby.ca/post/23670952960</link><guid>http://ottawaruby.ca/post/23670952960</guid><pubDate>Thu, 24 May 2012 09:57:33 -0400</pubDate><category>git</category></item><item><title>Git Tutorial Videos and Presentation</title><description>&lt;h2&gt;Gitting To Know You videos&lt;/h2&gt;

&lt;p&gt;For those who are looking to learn more about Git, Casey Li was nice enough to create an introductory video series titled &lt;a href="http://www.caseyli.com/gittingtoknowyou"&gt;Gitting to Know You&lt;/a&gt; (nice title, too :).&lt;/p&gt;

&lt;p&gt;Each of the videos are bite-sized (under 15 minutes). By the end of the series, you should have a good grasp of Git and how to use it.&lt;/p&gt;

&lt;h2&gt;Git Presentation from Girl Develop It&lt;/h2&gt;

&lt;p&gt;At the April meetup, Gabriel Castro mentioned a presentation on Git that was given during a recent &lt;a href="http://www.meetup.com/Girl-Develop-It-Ottawa/"&gt;Girl Develop It&lt;/a&gt; meetup. If you&amp;#8217;re up for some additional information on Git, &lt;a href="https://github.com/kmoir/Git-tutorial"&gt;check out the presentation here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;(To download those, click through the link in the file listing [e.g. GitParty.pdf], and then right-click the &amp;#8220;Raw&amp;#8221; button and click &amp;#8220;Save As.&amp;#8221;)&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;</description><link>http://ottawaruby.ca/post/23670959280</link><guid>http://ottawaruby.ca/post/23670959280</guid><pubDate>Thu, 24 May 2012 09:45:00 -0400</pubDate><category>git</category></item><item><title>May 22nd, 2012 Agenda</title><description>&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;Hear a talk from Charles Max Wood, meet some fellow Rubyists, and do a bit of hacking.&lt;/p&gt;

&lt;h2&gt;Time and Place&lt;/h2&gt;

&lt;ul&gt;&lt;li&gt;Date: May 22nd, 2012&lt;/li&gt;
&lt;li&gt;Time: 6:30pm&lt;/li&gt;
&lt;li&gt;Place: The new Shopify Office: 126 York Street&lt;/li&gt;
&lt;li&gt;Bring: Yourselves, and your laptops with Ruby installed :)&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Plan on coming? Let us know…&lt;/h2&gt;

&lt;p&gt;We hope you can join us. If you could &lt;a href="http://www.meetup.com/OttawaRuby/events/62061012/"&gt;RSVP here&lt;/a&gt;, that would be great.&lt;/p&gt;

&lt;h2&gt;Tentative Agenda&lt;/h2&gt;

&lt;h2&gt;Exciting news: Moving to the Annex!&lt;/h2&gt;

&lt;p&gt;This month we&amp;#8217;ll be hosting Ruby Tuesday in the Shopify Annex. It&amp;#8217;s at the same office location (126 York Street), but in a bigger, better-suited room. :)&lt;/p&gt;

&lt;h2&gt;1) Introductions and Announcements&lt;/h2&gt;

&lt;p&gt;We&amp;#8217;ll have some brief announcements, and then we&amp;#8217;ll go around the room and introduce ourselves and what we&amp;#8217;re working on. This will be good to get to know each other a little.&lt;/p&gt;

&lt;h2&gt;2) Live (remote) presentation by Charles Max Wood&lt;/h2&gt;

&lt;p&gt;This month, we have Charles Max Wood (&lt;a href="http://teachmetocode.com"&gt;Teach Me To Code&lt;/a&gt;, the &lt;a href="http://rubyrogues.com"&gt;Ruby Rogues podcast&lt;/a&gt;, and the &lt;a href="http://rubyfreelancers.com"&gt;Ruby Freelancers Show&lt;/a&gt; will be giving us a talk.&lt;/p&gt;

&lt;p&gt;The topic will be announced later. But come on out if you&amp;#8217;d like to learn something new. :)&lt;/p&gt;

&lt;h2&gt;3) Break / Food and Networking (20-30 minutes)&lt;/h2&gt;

&lt;p&gt;Eat, drink, meet some Rubyists! :)&lt;/p&gt;

&lt;h2&gt;4) A bit of hacking&lt;/h2&gt;

&lt;p&gt;A few months ago, we tried to do some Ruby katas, but it didn&amp;#8217;t go so well since the agenda said that laptops were optional. :\&lt;/p&gt;

&lt;p&gt;This month, we&amp;#8217;ll be trying these again, with the additional option of working on some Whenbot one-liners (possibly more, time permitting).&lt;/p&gt;

&lt;p&gt;There&amp;#8217;ll be three options:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Work on some one-liners for Whenbot&lt;/li&gt;
&lt;li&gt;Work on a Yellow Belt Kata (for Ruby novices)&lt;/li&gt;
&lt;li&gt;Work on the Red Rose Refactoring Kata&lt;/li&gt;
&lt;li&gt;&amp;#8230;There may be some other fun stuff to work on too. :)&lt;/li&gt;
&lt;/ol&gt;&lt;h2&gt;Resources and Wrap up&lt;/h2&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;New to Ruby or Ruby on Rails?&lt;/strong&gt; Check out the &lt;a href="http://ottawaruby.ca/post/19293837924/a-few-links-for-new-ruby-on-rails-developers"&gt;Getting Started with Ruby on Rails&lt;/a&gt; blog post at OttawaRuby.ca.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Questions?&lt;/strong&gt; Join us in the &lt;a href="https://groups.google.com/forum/#!forum/ogre-list"&gt;Ottawa Ruby Google Group&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plan on attending?&lt;/strong&gt; Let us know by &lt;a href="http://www.meetup.com/OttawaRuby/events/62061012/"&gt;RSVP&amp;#8217;ing for this event on meetup.com&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;We hope to see you there!&lt;/p&gt;

&lt;p&gt;The Ottawa Ruby Team&lt;/p&gt;</description><link>http://ottawaruby.ca/post/23101447090</link><guid>http://ottawaruby.ca/post/23101447090</guid><pubDate>Tue, 15 May 2012 09:04:00 -0400</pubDate><category>agenda</category><category>meetup</category></item><item><title>April 24th, 2012 Meetup Agenda (Hint: Whenbot coding session!)</title><description>&lt;h2&gt;Summary&lt;/h2&gt;

&lt;p&gt;This month we&amp;#8217;ll have a coding session to work on our group project: Whenbot. Come on out if you&amp;#8217;d like to contribute to a cool, new Open Source project.&lt;/p&gt;

&lt;h2&gt;Side-Note: Ruby on Rails versions&lt;/h2&gt;

&lt;p&gt;We&amp;#8217;ll be working with &lt;strong&gt;Ruby 1.9.3-p125&lt;/strong&gt; and &lt;strong&gt;Rails 3.2.3&lt;/strong&gt;. It would be good if you had at least Ruby 1.9.x and Rails 3.2.x installed when you arrive.&lt;/p&gt;

&lt;p&gt;Need a guide for installing Ruby on Rails? See &lt;a href="http://railsapps.github.com/installing-rails.html"&gt;this guide&lt;/a&gt; for how to install Ruby on Rails using RVM. It covers Mac OS, Ubuntu and Windows.&lt;/p&gt;

&lt;h2&gt;Plan on coming? Let us know…&lt;/h2&gt;

&lt;p&gt;We hope you can join us. If you could &lt;a href="http://www.meetup.com/OttawaRuby/events/58228672/"&gt;RSVP here&lt;/a&gt;, that would be great.&lt;/p&gt;

&lt;h1&gt;Tentative Agenda&lt;/h1&gt;

&lt;ul&gt;&lt;li&gt;Date: April 24th, 2012&lt;/li&gt;
&lt;li&gt;Time: 6:30pm&lt;/li&gt;
&lt;li&gt;Place: The new Shopify Office: 126 York Street&lt;/li&gt;
&lt;li&gt;Bring: Your laptops, and yourselves.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;1) Introductions and Announcements&lt;/h2&gt;

&lt;p&gt;We&amp;#8217;ll have some brief announcements, and then we&amp;#8217;ll go around the room and introduce ourselves and what we&amp;#8217;re working on. This will be good to get to know each other a little.&lt;/p&gt;

&lt;h2&gt;2) Getting Started with Contributing to Whenbot&lt;/h2&gt;

&lt;p&gt;We&amp;#8217;ll have a brief introduction on how to contribute to Whenbot, our group project.&lt;/p&gt;

&lt;h2&gt;3) Let&amp;#8217;s code!&lt;/h2&gt;

&lt;p&gt;Follow the guides to either create your own Whenbot gem, or pull the Whenbot development branch and add in some needed functionality to the main app.&lt;/p&gt;

&lt;p&gt;Teaming up with a partner or two is encouraged.&lt;/p&gt;

&lt;p&gt;Feel free to raise your hand if you have any questions. We&amp;#8217;ll have some people circulating around.&lt;/p&gt;

&lt;h2&gt;4) Break / Food and Networking (20-30 minutes)&lt;/h2&gt;

&lt;p&gt;Eat, drink, meet some Rubyists! :)&lt;/p&gt;

&lt;h2&gt;5) Let&amp;#8217;s hack some more!&lt;/h2&gt;

&lt;p&gt;Back to the room to continue what you were working on before the break.&lt;/p&gt;

&lt;h2&gt;Resources and Wrap up&lt;/h2&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;New to Ruby or Ruby on Rails?&lt;/strong&gt; Check out the &lt;a href="http://ottawaruby.ca/post/19293837924/a-few-links-for-new-ruby-on-rails-developers"&gt;Getting Started with Ruby on Rails&lt;/a&gt; blog post at OttawaRuby.ca.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Questions?&lt;/strong&gt; Join us in the &lt;a href="https://groups.google.com/forum/#!forum/ogre-list"&gt;Ottawa Ruby Google Group&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plan on attending?&lt;/strong&gt; Let us know by &lt;a href="http://www.meetup.com/OttawaRuby/events/58228672/"&gt;RSVP&amp;#8217;ing for this event on meetup.com&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;We hope to see you there!&lt;/p&gt;

&lt;p&gt;The Ottawa Ruby Team&lt;/p&gt;</description><link>http://ottawaruby.ca/post/21228173022</link><guid>http://ottawaruby.ca/post/21228173022</guid><pubDate>Mon, 16 Apr 2012 17:26:00 -0400</pubDate><category>agenda</category><category>meetup</category></item><item><title>Lessons Learned from a Code Review</title><description>&lt;p&gt;&lt;em&gt;The following is a guest post by Casey Li. Below, Casey shares what he learned from a code review by John Duff. Enjoy.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Hey everybody,&lt;/p&gt;

&lt;p&gt;John Duff graciously took the time out of his schedule to do some code reviewing of my Open Mic Community site.&lt;/p&gt;

&lt;p&gt;I was definitely nervous posting my code as I&amp;#8217;d never done that before - but was instantly glad I did - because just from a few (no more than 15) code fixes, I learned a wealth of information. So I highly recommend to everyone - get someone to look at your code - I got out of it more of a learning experience than anything else.&lt;/p&gt;

&lt;p&gt;Anyway, I&amp;#8217;ve gone through everything, and I thought it&amp;#8217;d be good if I shared my lessons learned with everybody so they can tighten up their code too.
Below are just some of the highlights:&lt;/p&gt;

&lt;h2&gt;1. The power of AREL&lt;/h2&gt;

&lt;p&gt;One of the biggest things I learned was the power of AREL. John had mentioned to me that the great thing about AREL is that is doesn&amp;#8217;t actually do a Database query until you actually need the records. The biggest thing here - is that you can chain your query conditions. For example, I had code along the lines of:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;if admin
   @open_mics = OpenMic.all
else
   @open_mics = OpenMic.published
end

if filtered &amp;amp;&amp;amp; admin
   @open_mics = OpenMic.all.where(...)
else
   @open_mics = OpenMic.published.where(...)
# etc....
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;There were all these conditions where I would do a different Model query for each. Again, the lesson learned was that I could just daisy chain them because no query was actually being made at that point:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;@open_mics = OpenMic.scoped
@open_mics = @open_mics.published unless admin?
@open_mics = @open_mics.where(:city =&amp;gt; @city, :prov_state =&amp;gt; @prov_state) if @selected_city_prov_state.present?
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Basically - AREL returns a Query object (rather than an array of records) that can be further manipulated. Great eye-opener.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://magicscalingsprinkles.wordpress.com/2010/01/28/why-i-wrote-arel/"&gt;http://magicscalingsprinkles.wordpress.com/2010/01/28/why-i-wrote-arel/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;2. Let to_json do the work for you&lt;/h2&gt;

&lt;p&gt;My app has a JQTouch front-end for iPhones, as such - I&amp;#8217;m doing a lot of AJAX calls to my rails server code, and returning a lot of json objects.
Up to this point, I knew Rails had some built in functionality to turn objects into json objects - but up til now, I only thought about using this with my Model objects / resources - I never thought about using to_json on customized JSON responses.&lt;/p&gt;

&lt;p&gt;Before the code review, my code was scattered with code like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;render :json =&amp;gt; " { response : " + success + " , attendee_count : " + @open_mic.users.size.to_s + " } "
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;As you can see, I was basically creating the entire JSON response as a string - and with a lot of ugly concatenation. A cleaner way to do this is to just create a ruby hash - and call .to_json on it:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;render :json =&amp;gt; { :response =&amp;gt; success, :attendee_count =&amp;gt; @open_mic.users.size }.to_json
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Much cleaner.&lt;/p&gt;

&lt;h2&gt;3. Think about where your logic actually belongs&lt;/h2&gt;

&lt;p&gt;Up until now, I realized the power of using before and after filters in terms of saving you time and code so you DRY. But, sometimes, even if you&amp;#8217;re using a before filter for one method, it makes sense to have it - because of the logic of your code. I had a method call &amp;#8220;attend&amp;#8221; in my OpenMics controller. The method checked if the user was signed in or not in the method - but that is not inherently something a &amp;#8220;attend&amp;#8221; method should do. The attend method should simply create attend relationship. The signed_in check should really be done in a before_filter.&lt;/p&gt;

&lt;p&gt;So big take home - was that before_filter has some semantic meanings beyond saving you time and code that can make your code a lot easier to read.&lt;/p&gt;

&lt;h2&gt;4. blank?&lt;/h2&gt;

&lt;p&gt;There were definitely a lot of places where .blank? condensed my code. I attribute this to only half understanding what it did in the past. So do a quick google search for those who don&amp;#8217;t know about it.&lt;/p&gt;

&lt;h2&gt;5. respond_with&lt;/h2&gt;

&lt;p&gt;This came in handy a lot because I was doing a lot of returns that were essentially returning the same object, but in different formats (html, json, etc.) - a perfect case to use respond_with. A quick read of how to use this condensed a lot of my code.&lt;/p&gt;

&lt;p&gt;So those were just some of the major lessons I learned - and honestly - it was just quick google searches on each - and within 3-5 minutes of learning, I had huge gains.&lt;/p&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;p&gt;Big thanks to John for all his help, and big thanks to the organizers of the Group for giving me a venue to experience this.&lt;/p&gt;

&lt;p&gt;Again, highly recommend others get in on this. This group features some of the best Ruby/Rails programmers you&amp;#8217;ll meet and they are all incredibly helpful.&lt;/p&gt;</description><link>http://ottawaruby.ca/post/20838282897</link><guid>http://ottawaruby.ca/post/20838282897</guid><pubDate>Tue, 10 Apr 2012 08:04:00 -0400</pubDate><category>lessons learned</category><category>rails</category><category>ruby</category></item><item><title>Ruby Tuesday Meetup Summary: March 27th, 2012</title><description>&lt;p&gt;It was great to see everyone out on Tuesday! For those who couldn&amp;#8217;t make it, or would just like a recap, a summary of what happened is below.&lt;/p&gt;

&lt;p&gt;Meetup slides are available &lt;a href="http://www.slideshare.net/michaeldwp/ruby-tuesday-march-27-2012-12228764"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Introductions&lt;/h2&gt;

&lt;p&gt;With Jeff&amp;#8217;s presentation starting shortly, we had to go quickly for this part. Everyone did a speedy introduction of themselves. Even with the brevity, it was nice to put names to people&amp;#8217;s faces, and to hear where everyone is working and what they&amp;#8217;re up to. :)&lt;/p&gt;

&lt;h2&gt;Remote Presentation: Jeff Casimir&lt;/h2&gt;

&lt;p&gt;Jeff Casimir from &lt;a href="http://jumpstartlab.com"&gt;JumpstartLab&lt;/a&gt; gave a great talk on &lt;em&gt;Metrics-Driven Rails Performance&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://speakerdeck.com/u/j3/p/metrics-driven-rails-performance"&gt;&lt;img src="https://img.skitch.com/20120330-j49w26x2ifq964jjji59fm95da.jpg" alt="Jeff Casimir: Metrics-driven Performance Slides"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can &lt;a href="http://speakerdeck.com/u/j3/p/metrics-driven-rails-performance"&gt;download the slides here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There was lots of interesting information in this one. We also had an interesting Q&amp;amp;A session.&lt;/p&gt;

&lt;p&gt;Here are the original links from the start of the presentation:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;&lt;p&gt;JumpstartLab&amp;#8217;s Creative Commons Licensed learning materials: &lt;a href="http://tutorials.jumpstartlab.com/"&gt;&lt;a href="http://tutorials.jumpstartlab.com/"&gt;http://tutorials.jumpstartlab.com/&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can see more resources from Jeff&amp;#8217;s Metrics-Driven Performance talk &lt;a href="http://tutorials.jumpstartlab.com/paths/performance_metrics.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;h2&gt;Mingling, Pizza, Drinks and Food&lt;/h2&gt;

&lt;p&gt;After Jeff&amp;#8217;s talk, we moved over to the kitchen for some food and chatting.&lt;/p&gt;

&lt;h2&gt;Introduction to the Group Project&lt;/h2&gt;

&lt;p&gt;Mike attempted to give a quick introduction to the Group Project, explain some core concepts, and discuss its current state. It was a terrible presentation. Just terrible.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is Mike writing, so I can say that, heh&amp;#8230; We&amp;#8217;ll have some more guides online and have a better presentation next time. ;)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Gabriel Castro then went over the &lt;a href="https://github.com/ottawaruby/whenbot/wiki/UI-Notes"&gt;Whenbot sketches and concepts&lt;/a&gt; that he and Sean Evans came up with. They have some very interesting improvements over the original site&amp;#8217;s design.&lt;/p&gt;

&lt;h2&gt;Wrap Up and What&amp;#8217;s next?&lt;/h2&gt;

&lt;p&gt;Overall it was a good night. Everyone seemed to really enjoy the presentation, and the mingling / networking. Oh, and the pizza too! :)&lt;/p&gt;

&lt;p&gt;Thanks again for coming out! If you missed this one, be sure to come next month. There won&amp;#8217;t be a presentation; instead, we&amp;#8217;ll be having a full-out coding session for Whenbot.&lt;/p&gt;</description><link>http://ottawaruby.ca/post/20190835480</link><guid>http://ottawaruby.ca/post/20190835480</guid><pubDate>Fri, 30 Mar 2012 18:34:00 -0400</pubDate><category>ruby tuesday</category><category>meetup</category><category>summary</category><category>jeff casimir</category></item><item><title>Meetup Summary: February 28th, 2012</title><description>&lt;p&gt;The February Ruby Tuesday meetup was great. Apart from some audio issues during Peter&amp;#8217;s presentation (fixed now, sorry about that), everyone seemed to have a good time, and we got to learn some Redis!&lt;/p&gt;

&lt;p&gt;Below is a summary of what happened. You can &lt;a href="http://www.slideshare.net/michaeldwp/ruby-tuesday-feb-28-2012"&gt;see the slides here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Introductions&lt;/h2&gt;

&lt;p&gt;We took a few minutes to go around the room and introduce ourselves before Peter&amp;#8217;s talk. It&amp;#8217;s always interesting to hear people&amp;#8217;s backgrounds and where they&amp;#8217;re using Ruby on Rails.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s also great to see the newer developers getting into Ruby!&lt;/p&gt;

&lt;h2&gt;Live talk with Peter Cooper&lt;/h2&gt;

&lt;p&gt;Peter Cooper gave us a great talk on Redis, titled &lt;em&gt;Redis, Steady, Go!&lt;/em&gt;, and followed it up with some Ruby Trick Shots&lt;/p&gt;

&lt;p&gt;&lt;a href="http://speakerdeck.com/u/peterc/p/redis-steady-go"&gt;&lt;img src="https://img.skitch.com/20120329-ecchemfme5urp27y9u4ueaegxp.jpg" alt="Redis, Steady, Go!"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="http://speakerdeck.com/u/peterc/p/redis-steady-go"&gt;slides here&lt;/a&gt;. Peter said that he plans on making a video for this; when he does, we&amp;#8217;ll add the link here.&lt;/p&gt;

&lt;p&gt;After a bit of Q&amp;amp;A, Peter showed us a few Ruby Trick Shots.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://rubytrickshots.com"&gt;&lt;img src="https://img.skitch.com/20120330-dfbe5hrygn6mq9jd7nj6csei7p.jpg" alt="Ruby Trick Shots"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We got the Canadian Edition of the talk, complete with an Ottawa Senators logo replacing the head of the boxcar racer. That was a nice touch. :)&lt;/p&gt;

&lt;p&gt;You can watch a video with some more trick shot&amp;#8217;s from Peter at &lt;a href="http://rubytrickshots.com"&gt;rubytrickshots.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It was an interesting talk, be sure to at least check out the slides.&lt;/p&gt;

&lt;h3&gt;A few follow up links:&lt;/h3&gt;

&lt;ul&gt;&lt;li&gt;&lt;p&gt;To learn more about Peter Cooper, visit his homepage at &lt;a href="http://peterc.org/"&gt;peterc.org&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you want some more Ruby Trickshots (you know you do!) check out &lt;a href="http://rubytrickshots.com/"&gt;rubytrickshots.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://rubyweekly.com/"&gt;Ruby Weekly&lt;/a&gt; is Peter&amp;#8217;s weekly newsletter with a round up of Ruby news and articles from around the web.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Want to take an online Ruby course with Peter? Check out &lt;a href="http://rubyreloaded.com/"&gt;rubyreloaded.com&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Group Project Presentation by John Tajima and John Duff&lt;/h2&gt;

&lt;p&gt;John Tajima and John Duff went over the High Level Design document for the Group Project, called &lt;a href="https://groups.google.com/d/msg/ogre-list/OF5Mo_eqMn8/9dI9sRP4DkAJ"&gt;Whenbot&lt;/a&gt;, and explained some of its core concepts.&lt;/p&gt;

&lt;p&gt;This looks like it&amp;#8217;ll be a fun project!&lt;/p&gt;

&lt;h2&gt;Food and Schmoozing&lt;/h2&gt;

&lt;p&gt;We mingled, we ate, we drank and got to know each other better until it was time to go home. Good talks, good times. :)&lt;/p&gt;</description><link>http://ottawaruby.ca/post/20182326822</link><guid>http://ottawaruby.ca/post/20182326822</guid><pubDate>Fri, 30 Mar 2012 15:54:00 -0400</pubDate><category>ruby</category><category>ruby tuesday</category><category>meetup</category><category>summary</category></item><item><title>Agenda for March 27th, 2012 Meetup</title><description>&lt;p&gt;Hi there,&lt;/p&gt;
&lt;p&gt;Tonight is another Ruby Tuesday meetup!&lt;/p&gt;
&lt;p&gt;Come out and learn some performance boosting tips from Jeff Casimir, and mingle with some fellow Ruby Developers. We&amp;#8217;re also going to try and get people started on Whenbot (the Group Project) as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plan on coming? Let us know&amp;#8230;&lt;br/&gt;&lt;/strong&gt;We hope you can join us. You can &lt;a href="http://www.meetup.com/OttawaRuby/events/49578922/" target="_blank"&gt;RSVP here&lt;/a&gt; (&lt;a href="http://www.meetup.com/OttawaRuby/events/49578922/" target="_blank"&gt;&lt;a href="http://www.meetup.com/OttawaRuby/events/49578922/"&gt;http://www.meetup.com/OttawaRuby/events/49578922/&lt;/a&gt;&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New to Ruby or the Rails Framework?&lt;br/&gt;&lt;/strong&gt;Check out the &lt;a href="http://ottawaruby.ca/post/19293837924/a-few-links-for-new-ruby-on-rails-developers" target="_blank"&gt;&amp;#8220;Getting Started&amp;#8221; blog post at OttawaRuby.ca&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agenda&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Date&lt;/strong&gt;: March 27th, 2012&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time&lt;/strong&gt;: 6:30pm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Place&lt;/strong&gt;: The new Shopify Office: 126 York Street&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bring&lt;/strong&gt;: Yourselves, and your laptops :)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Summary&lt;/strong&gt;: Learn how to dramatically improve your app&amp;#8217;s performance, meet some Rubyists, and (hopefully) start working on the Group Project.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;1) Introductions and Announcements &lt;/strong&gt;(15 minutes)&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ll each take 30 seconds to introduce ourselves and what we&amp;#8217;re working on. This will be good to get to know each other a little. We&amp;#8217;ll then have some brief announcements, and jump straight into Jeff&amp;#8217;s talk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Live (remote) presentation by the spectacular Jeff Casimir &lt;/strong&gt;(30-45 minutes)&lt;/p&gt;
&lt;p&gt;Jeff Casimir (&lt;a href="http://jumpstartlab.com/" target="_blank"&gt;JumpstartLab&lt;/a&gt; founder, World-travelling Ruby on Rails teacher, speaker) will be giving a talk on Metrics-Driven Ruby/Rails Performance. Here&amp;#8217;s the synopsis:&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&amp;#8212;&amp;#8212;&lt;/p&gt;
&lt;p&gt;In this talk, we&amp;#8217;ll look at identifying hotspots in your code including:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Excessive CPU usage&lt;/li&gt;
&lt;li&gt;Memory and object allocation&lt;/li&gt;
&lt;li&gt;Monitoring query count and duration&lt;/li&gt;
&lt;li&gt;Isolating data-store bottlenecks&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;This is about identifying the 1% of your code that, through optimization, can dramatically improve performance.&lt;br/&gt;&amp;#8212;&amp;#8212;&lt;/p&gt;

&lt;p&gt;This should be a great talk, be sure to stop by!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Break / Food and Networking &lt;/strong&gt;(20-30 minutes)&lt;/p&gt;
&lt;p&gt;Eat, drink, meet some Rubyists! :)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) Group Project - Let&amp;#8217;s get started!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We&amp;#8217;re hoping to have everyone get started on the group project tonight! (Stay tuned!)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources and Wrap up&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;New to Ruby or Ruby on Rails? &lt;/strong&gt;Check out the &lt;a href="http://ottawaruby.ca/post/19293837924/a-few-links-for-new-ruby-on-rails-developers" target="_blank"&gt;&amp;#8220;Getting Started&amp;#8221; blog post at OttawaRuby.ca&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Questions?&lt;/strong&gt; Feel free to reply here, or join us in the &lt;a href="https://groups.google.com/forum/#!forum/ogre-list" target="_blank"&gt;Ottawa Ruby Google Group&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plan on attending?&lt;/strong&gt; Let us know by &lt;a href="http://www.meetup.com/OttawaRuby/events/49578922/" target="_blank"&gt;RSVP&amp;#8217;ing for this event&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;We hope to see you there!&lt;/p&gt;
&lt;p&gt;The Ottawa Ruby Team &lt;/p&gt;</description><link>http://ottawaruby.ca/post/20013012492</link><guid>http://ottawaruby.ca/post/20013012492</guid><pubDate>Tue, 27 Mar 2012 12:56:26 -0400</pubDate><category>meetup</category><category>agenda</category></item><item><title>Ruby newbie? Some links for you...</title><description>&lt;p&gt;A few weeks ago, Alex Hudici asked&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;I&amp;#8217;ve been looking into attending the Ruby meetups, however I am completely new to Ruby&amp;#8230; [is there] a place for me and my lack of expertise in any of the projects you mentioned in the &lt;a href="https://groups.google.com/d/topic/ogre-list/OF5Mo_eqMn8/discussion" target="_blank"&gt;group discussion&lt;/a&gt;/&lt;a href="http://app.fluidsurveys.com/surveys/ottawa-ruby/group-project-survey/"&gt;survey&lt;/a&gt;?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The short answer is: Absolutely! We definitely want to encourage new Ruby developers to come to the meetups and participate in the group projects.&lt;/p&gt;
&lt;p&gt;&amp;#8220;Okay,&amp;#8221; you say, &amp;#8220;but how can I contribute if I don&amp;#8217;t know any Ruby?&amp;#8221;&lt;/p&gt;
&lt;p&gt;Well, I&amp;#8217;m glad you asked! :)&lt;/p&gt;
&lt;p&gt;It seems like there are a number of group members who want to learn Ruby, but may not be sure where to start.&lt;/p&gt;
&lt;p&gt;So, let&amp;#8217;s try and get you started. :)&lt;/p&gt;
&lt;p&gt;First things first though. If there&amp;#8217;s one thing a completely new Ruby on Rails developer should know before starting on their journey, it&amp;#8217;s this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br/&gt;The key to being a good Ruby on Rails Developer is learning to be a good _&lt;span&gt;Ruby_&lt;/span&gt; Developer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ruby is at the core of everything you&amp;#8217;ll do as a Ruby on Rails Developer. &lt;span&gt;Ruby is the language, and Rails is the tool that you use to speed up your development. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Having a strong foundation in Ruby is super important; so study to understand Ruby first, then move on to Rails. And as you continue to improve your Rails knowledge, don&amp;#8217;t neglect to improve your Ruby skills as well.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;N.B. Well, this is just my humble opinion on this. Do you have another viewpoint? Let us know in the comments.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Now that we have that out of the way, let&amp;#8217;s move on to the links. Pretty much, this is the same advice that Alex H. got:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br/&gt;Installing Ruby on Rails&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you don&amp;#8217;t have Ruby installed just yet, follow the &lt;a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book?version=3.2#sec:rubygems" target="_blank"&gt;instructions in Michael Hartl&amp;#8217;s Rails Tutorial&lt;/a&gt;. He&amp;#8217;ll walk you through installing Ruby on Rails for Mac OSX, Linux and Windows.&lt;br/&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where to Start?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As for how to get started on Ruby on Rails, I&amp;#8217;d suggest checking out the resources in Edward Ocampo-gooding&amp;#8217;s &lt;a href="https://gist.github.com/1345191" target="_blank"&gt;Learning Basic Programming post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;From the links on that page, you should first start by getting a foundation in Ruby, as mentioned above. So, going through &lt;a href="http://tryruby.org" target="_blank"&gt;&lt;a href="http://tryruby.org"&gt;http://tryruby.org&lt;/a&gt;&lt;/a&gt; and &lt;a href="http://ruby.learncodethehardway.org/book/" target="_blank"&gt;Learn Ruby The Hard Way&lt;/a&gt; is a good way to go. &lt;/p&gt;
&lt;p&gt;Just in case you came to this post late and you need to learn Ruby quickly for, say, a Ruby meetup of some sort ;), here&amp;#8217;s some advice on how to get a quick handle on Ruby.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Go through &lt;a href="http://tryruby.org" target="_blank"&gt;tryruby.org&lt;/a&gt;. This will teach you some of Ruby&amp;#8217;s basics.&lt;br/&gt; &lt;/li&gt;
&lt;li&gt;Next, read through &lt;a href="http://www.ruby-lang.org/en/documentation/quickstart/" target="_blank"&gt;Ruby in Twenty Minutes&lt;/a&gt;. Follow along with the examples. This will get you writing some methods and classes, which tryruby.org seems to gloss over.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;Side-Note: If you don&amp;#8217;t have Ruby installed yet, you can code up the examples online using &lt;a href="http://repl.it" target="_blank"&gt;Repl.it&lt;/a&gt;, which gives you an interactive Ruby console in your browser. &lt;/em&gt;&lt;br/&gt; &lt;/li&gt;
&lt;li&gt;If you&amp;#8217;d like to review and solidify what you just learned, check out JumpstartLab&amp;#8217;s &amp;#8220;&lt;a href="http://tutorials.jumpstartlab.com/projects/ruby_in_100_minutes.html" target="_blank"&gt;Ruby in 100 Minutes&lt;/a&gt;&amp;#8221; tutorial.&lt;br/&gt; &lt;/li&gt;
&lt;li&gt;If you have time to go further, move on to &lt;a href="http://ruby.learncodethehardway.org/book/" target="_blank"&gt;Learn Ruby The Hard Way&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;&lt;br/&gt;Getting on Rails&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Once you&amp;#8217;re comfortable with Ruby, you should move on to learning Rails.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://guides.rubyonrails.org/" target="_blank"&gt;Rails Guides&lt;/a&gt; is the standard place to go to learn about Rails concepts, and it proves useful for beginner and advanced Rails Developers alike. The &lt;a href="http://guides.rubyonrails.org/getting_started.html" target="_blank"&gt;Getting Started With Rails guide&lt;/a&gt; is a good place to start on that site, and you can dive deeper into other concepts by checking out &lt;a href="http://guides.rubyonrails.org/" target="_blank"&gt;the main page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;d be good to go through the &lt;a href="http://railsforzombies.org" target="_blank"&gt;Rails For Zombies videos&lt;/a&gt;. And if you like videos, another one you may want to watch is &lt;a href="http://net.tutsplus.com/tutorials/ruby/the-intro-to-rails-screencast-i-wish-i-had/" target="_blank"&gt;The Intro to Rails Screencast I Wish I Had&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Note that neither of those videos use the latest version of Rails [v3.2.2, as of this writing], as far as I know; so you may have a bit of catching up to do. Still, they&amp;#8217;re good resources, and should help give you a good grasp of some of the core Rails concepts.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For a more structure approach, you can read Michael Hartl (free) book, &lt;a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book" target="_blank"&gt;Rails Tutorial: Learn Rails by Example&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;In Michael Hartl&amp;#8217;s book, he walks you through creating an app from scratch; but once you feel comfortable enough in Rails, you really should try and create your own project. Writing your own app is one of the best ways to learn Ruby on Rails.&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;strong&gt;Prefer the classroom feel?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One of our members, Ramon Brooker, is offering a four-week &lt;em&gt;Introduction to Ruby on Rails&lt;/em&gt; course. Ramon has been using Rails since version 0.5, so he knows his stuff.&lt;/p&gt;
&lt;p&gt;For more info, visit &lt;a href="https://e-connect.ocdsb.ca/Activities/ActivitiesAdvSearch.asp" target="_blank"&gt;this search page&lt;/a&gt; on the Ottawa-Carleton District School Board site, and enter one of the following in the search box on the left:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Enter 60248 for the Tuesday class, or &lt;/li&gt;
&lt;li&gt;Enter 60249 for the Thursday class.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Both classes run from 6:30-8:30pm, and start the week of April 17th.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;Well, that should get you started. Feel free to post any questions you have in the &lt;a href="http://groups.google.com/group/ogre-list" target="_blank"&gt;Ottawa Ruby Google Group&lt;/a&gt; and we&amp;#8217;ll try and help.&lt;br/&gt;&lt;br/&gt;Onward!&lt;br/&gt; &lt;/div&gt;</description><link>http://ottawaruby.ca/post/19293837924</link><guid>http://ottawaruby.ca/post/19293837924</guid><pubDate>Wed, 14 Mar 2012 12:36:00 -0400</pubDate><category>Ruby</category><category>Rails</category><category>Tutorial</category><category>Guide</category></item><item><title>Group Project Survey Results</title><description>&lt;p&gt;A big thanks to everyone who submitted their vote for the group project! We had 15 responses for this survey. Here&amp;#8217;s how the votes were spread out:&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" alt="Which project should we work on?" height="210" src="http://www.innovisoft.com/images/ottawa_ruby/group_project_survey/which_project.png" width="713"/&gt;&lt;/p&gt;
&lt;p&gt;And the winner is&amp;#8230; &lt;strong&gt;Whenbot! :) &lt;/strong&gt;There&amp;#8217;s something for everyone in this app, so this will be a fun project to work on. &lt;/p&gt;
&lt;p&gt;For the curious, the results from the rest of the survey are below.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Feature Suggestions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here are three of the (applicable) feature suggestions:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Make the app bilingual (or even plurilingual) to work on I18n.&lt;/li&gt;
&lt;li&gt;Look at the OmniAuth gem: this gem handles standarizing the authentication in a similar way to how this app will need to standardize data exchange between services.&lt;/li&gt;
&lt;li&gt;Make the Whenbot behavior mobile-friendly.&lt;/li&gt;
&lt;li&gt;Consider using Bootstrap 2.0, unless someone wants to tackle the design.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;br/&gt;Which approach should we use? &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is an interesting one. Let&amp;#8217;s take a look&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.innovisoft.com/images/ottawa_ruby/group_project_survey/development_style_choice.png"/&gt;&lt;/p&gt;
&lt;p&gt;It seems that most people do want to create an app of our best practices, so we&amp;#8217;ll go ahead with that as the main model. At the same time though, we shouldn&amp;#8217;t discourage those who don&amp;#8217;t necessarily want to focus on their technique.&lt;/p&gt;
&lt;p&gt;It would be good if we could accommodate both sides, without opening up the door to sloppy code. ;) Any thoughts on how to go about this? &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In which area(s) do you most want to improve?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="469" src="http://www.innovisoft.com/images/ottawa_ruby/group_project_survey/improvement_areas.png" width="631"/&gt;&lt;/p&gt;
&lt;p&gt;The chart pretty much speaks for itself here. One thing that stands out above the rest is that people want to learn more about Testing / Test Driven Development. We&amp;#8217;ll try and follow TDD practices while developing the app.&lt;br/&gt;&lt;br/&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When would you want to work on this?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="319" src="http://www.innovisoft.com/images/ottawa_ruby/group_project_survey/when_available.png" width="625"/&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s great to see that people are interested in working on this during their spare time, as well as during some additional code sessions. We&amp;#8217;ve got quite a few keeners here! :)&lt;/p&gt;
&lt;p&gt;And finally, the touchy-feely question&amp;#8230;&lt;br/&gt;&lt;br/&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;At the end of this project, how do you hope you&amp;#8217;ll have grown?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img align="middle" height="387" src="http://dl.dropbox.com/u/892105/blog_post_images/desired_growth.png" width="923"/&gt;&lt;/p&gt;
&lt;p&gt;(If that&amp;#8217;s too small to read, see the &lt;a href="http://dl.dropbox.com/u/892105/blog_post_images/desired_growth.png" target="_blank"&gt;full-sized image here&lt;/a&gt;.)&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wrap up&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cool, now that we have a project picked out, we just have to figure out how to build it.&lt;/p&gt;
&lt;p&gt;Next up: &lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Planning the app&lt;/li&gt;
&lt;li&gt;Creating the base project&lt;/li&gt;
&lt;li&gt;Building out the different parts of the app (triggers, parsers and publishers)&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;If you&amp;#8217;re interested in helping out with any of this early-stage stuff (and you haven&amp;#8217;t already mentioned that in the survey), please get in touch.&lt;/p&gt;
&lt;p&gt;Stay tuned!&lt;/p&gt;</description><link>http://ottawaruby.ca/post/17632801753</link><guid>http://ottawaruby.ca/post/17632801753</guid><pubDate>Tue, 14 Feb 2012 20:12:22 -0500</pubDate><category>survey</category><category>group project</category></item><item><title>Three code-style tips for the budding Ruby Developer</title><description>&lt;div&gt;During the last meetup, we had an interesting talk where some of the advanced developers passed on a bunch of great development advice to the beginners. In this post, I wanted to add in one more group of tips for the newer developers.&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Other than Kent Beck&amp;#8217;s advice to &amp;#8220;communicate your intent through your code,&amp;#8221; if I had to list only three pieces of advice that would help a newer Ruby Developer write code more like a Rubyist (rather than a Java / C++ / C# developer), I&amp;#8217;d suggest the following:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&lt;br/&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;(Note: Please feel free to post a comment if you have any advice to add, or if you disagree with any of this.)&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&lt;br/&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;ol&gt;&lt;li&gt;Try to keep your methods short. Following the Single Responsibility Principle helps here. &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;Use descriptive variable, method, and parameter names (this goes back to “communicating your intent&amp;#8221;).&lt;br/&gt;&lt;br/&gt;So, favour method names like &lt;em&gt;calculate_taxes &lt;/em&gt;over &lt;em&gt;do_calcs&lt;/em&gt;, and variable names like &lt;em&gt;subtotal&lt;/em&gt; over &lt;em&gt;value &lt;/em&gt;or &lt;em&gt;x&lt;/em&gt;. &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;You can create self-documenting code by replacing complex logic/statements with a well-named method call.  &lt;br/&gt;&lt;br/&gt;So, instead of: &lt;br/&gt;&lt;br/&gt;&lt;em&gt;    stripped_html = data.gsub(/&amp;lt;\/?[^&amp;gt;]*&amp;gt;/, &amp;#8221;) &lt;/em&gt;&lt;br/&gt;&lt;br/&gt;You can use:&lt;br/&gt;&lt;br/&gt;&lt;em&gt;    stripped_html = remove_html_tags(data) &lt;/em&gt;&lt;br/&gt;&lt;br/&gt;It may not be the best example, but here’s the point: even though you’re assigning to a pretty descriptive variable name (&lt;em&gt;stripped_html&lt;/em&gt;), replacing the regex with a descriptive method name makes the line read almost like a comment. This helps you resist the urge to comment the regex.  :)&lt;br/&gt;&lt;br/&gt;Also, as a bonus, even if you didn’t give your variable a descriptive name, the descriptive method call still makes the line quite clear: &lt;br/&gt;&lt;br/&gt;&lt;em&gt;    data = remove_html_tags(data) &lt;/em&gt;&lt;br/&gt;&lt;br/&gt;See? The data variable doesn’t mean much here since it’s out of context, but the method call still gives you a pretty good idea of what’s going on, and even what sort of data is in the variable.  &lt;br/&gt;&lt;br/&gt;Of course, you’re still communicating your intent with a well-named variable and the regex, but the second and third ways are more clear, in my humble opinion at least.   &lt;br/&gt;&lt;br/&gt;But don’t go crazy with this one, you don’t have to replace every somewhat complex operation with a method call. Use your judgement. &lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Anyway, those are just some thoughts, I hope they help someone. I believe I got most or all of this from reading Russ Olsen&amp;#8217;s Eloquent Ruby. Highly recommended. &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Have any other tips or advice? Feel free to post it in the comments. It would be great to collect a bunch of this stuff and turn it into a blog post.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;</description><link>http://ottawaruby.ca/post/17285740236</link><guid>http://ottawaruby.ca/post/17285740236</guid><pubDate>Wed, 08 Feb 2012 18:11:21 -0500</pubDate><category>Ruby</category><category>coding style</category><category>advice</category></item><item><title>Summary of Ruby Tuesday's meetup (January 24th, 2012)</title><description>&lt;p&gt;&lt;div&gt;Hi all,&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Thanks for coming out last Tuesday everyone! We have a great Ruby community here in Ottawa. It’s awesome to see everyone’s enthusiasm for Ruby and Rails.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Here’s a recap of what happened on Tuesday for those who missed it, or for anyone who would like a review.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;If you’d prefer to look through the slides, they’re up at: &lt;/span&gt;&lt;a href="http://www.slideshare.net/michaeldwp/ruby-tuesday-ottawa-jan-24-2012" target="_blank"&gt;&lt;a href="http://www.slideshare.net/michaeldwp/ruby-tuesday-ottawa-jan-24-2012"&gt;http://www.slideshare.net/michaeldwp/ruby-tuesday-ottawa-jan-24-2012&lt;/a&gt;&lt;/a&gt;&lt;span&gt;. &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Announcements&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;ol&gt;&lt;li&gt;Peter Cooper (Ruby Inside, Ruby Weekly, author, blogger, and more) will be giving us a (live, remote) talk during the February meetup. See&lt;a href="http://peterc.org/" target="_blank"&gt;&lt;a href="http://peterc.org"&gt;http://peterc.org&lt;/a&gt;&lt;/a&gt; for more information on Peter. &lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;Jeff Casimir (Jumpstart Lab founder, world traveling teacher of Ruby, Rails and Javascript) is booked to give us a (live, remote) talk in March. &lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;Rails 3.2 is out! &lt;/li&gt;
&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;Release post: &lt;a href="http://weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store" target="_blank"&gt;&lt;a href="http://weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store"&gt;http://weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store&lt;/a&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Upgrade instructions: &lt;a href="http://guides.rubyonrails.org/3_2_release_notes.html" target="_blank"&gt;&lt;a href="http://guides.rubyonrails.org/3_2_release_notes.html"&gt;http://guides.rubyonrails.org/3_2_release_notes.html&lt;/a&gt;&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Introductions&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;We went around the group and everyone introduced themselves. It was interesting to see such a wide range of backgrounds an expertise in the room.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;The Video&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;We didn’t have a live speaker booked this month, so we watched “Fat Models Aren’t Enough,” by Jeff Casimir. It was a good talk. :)&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Here are the links for the talk:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;&lt;li&gt;The &lt;a href="http://blip.tv/rubynation/jeff-casimir-fat-models-aren-t-enough-5562605" target="_blank"&gt;video is here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href="http://assets.en.oreilly.com/1/event/59/Fat%20Models%20Aren_t%20Enough%20Presentation.pdf" target="_blank"&gt;slides can be found here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Food, Mingling, Schmoozing and Networking&amp;#8230;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;We took a break part-way through the video to mingle and eat some pizza. It was great to see everyone getting to know one another during the break!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Video Discussion&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;After finishing up part II, we had an interesting talk about a few of the topics from the video. We then opened up the floor for people to give a few of their favourite pieces of advice for the newer developers. &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;There were a number of good tips in there, and it was great to hear the advice from everyone. If anyone remembers what they said, or has any additional advice, please post it in the comments as this is wisdom that should be passed on to future Rubyists. &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;#8230;And what better way to do that than to save it on the Internets! :)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Ruby Katas&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;We had some Katas for those who didn’t want to discuss the group project (see below), but most people didn’t get to try them since I made the mistake of saying that laptops were optional, heh. Sorry again about that, it was sort of an impromptu thing. :\&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;For anyone who would like to give the Kata’s a go, here are the links:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Yellow Belt Kata&lt;/strong&gt; (for Ruby beginners): &lt;a href="https://github.com/gigasquid/yellow_belt_ruby_katas" target="_blank"&gt;&lt;a href="https://github.com/gigasquid/yellow_belt_ruby_katas"&gt;https://github.com/gigasquid/yellow_belt_ruby_katas&lt;/a&gt;&lt;/a&gt; &lt;br/&gt; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gilded Rose Kata&lt;/strong&gt; (refactoring Kata): &lt;a href="https://github.com/jimweirich/gilded_rose_kata" target="_blank"&gt;&lt;a href="https://github.com/jimweirich/gilded_rose_kata"&gt;https://github.com/jimweirich/gilded_rose_kata&lt;/a&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;The slides briefly mention how to clone the source, but you could just download the zip file from the Github page. &lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;You should also read the main page of the Yellow Belt Kata for instructions on how to get going. As mentioned, you should go through these in Test Driven Development-style. To do so, after you’ve cloned/unzipped the source: &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;ol&gt;&lt;li&gt;Run “&lt;em&gt;bundle install&lt;/em&gt;” to install the required gems (specifically, rspec)&lt;br/&gt; &lt;/li&gt;
&lt;li&gt;Run “&lt;em&gt;rake spec&lt;/em&gt;” to start on your TDD journey. Fix the bugs one by one.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Note: When you pick a spec to work on, you’ll have to remove the line that says &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;   &lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;em&gt;before { pending }&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;to get the tests to actually run. Then, re-run the specs and fix the bugs, starting from the top and working your way down.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;The Group Project&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;If you haven’t heard, we’re looking at doing a group project to help improve everyone’s Ruby / Rails skillz. :) &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;We went over the&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;a href="https://groups.google.com/d/topic/ogre-list/OF5Mo_eqMn8/discussion" target="_blank"&gt;existing project suggestions&lt;/a&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;(also listed in the slides), and got some feedback on each idea. It was great that all of the submitters were around to present their ideas, by the way, thanks again fellas! :)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;We’ll have an anonymous survey for everyone to vote on which project we should work on. Stay tuned to &lt;/span&gt;&lt;a href="https://groups.google.com/forum/#!forum/ogre-list" target="_blank"&gt;the Google Group&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Following this, we talked about how it may be good to try and make this as an “app of our best practices,” so that we all learn from each other a little better.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;(The alternative here would be for everyone to just create their part(s) of the app and try to learn what they could from their portion [e.g. the specific API they’re dealing with]. But, with everybody focused on producing their best code, people can look through the source and get great tipis and insights from fellow group members.)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;A good point was brought up here though: what about the beginners? They may not even be sure if what they’re doing is correct, let alone whether it’s good coding style or the best way to solve the problem. Sean gave a great suggestion: we can do code reviews (at least I think it was Sean&amp;#8230; please forgive and correct me if I’m wrong).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;This would be good both for beginners, and for the advanced developers (as long as we can get others to talk about why they did things they way they did).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;So, the next steps are to choose a project (via the survey), and then get a starting project framework going. If anyone is willing to help out with this, please send us a message.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Wrap Up&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Thanks again for coming out everyone, we hope to see you next month! Feel free to holler with any questions, comments or feedback.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Thanks,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;The Ruby Tuesday Team&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;/p&gt;</description><link>http://ottawaruby.ca/post/16863254137</link><guid>http://ottawaruby.ca/post/16863254137</guid><pubDate>Wed, 01 Feb 2012 09:02:05 -0500</pubDate><category>Ottawa Ruby</category><category>Meetup Summary</category><category>Katas</category></item><item><title>Survey Results are in! :)</title><description>&lt;p&gt;&lt;div&gt;
&lt;div&gt;
&lt;p class="p1"&gt;First off, a big thanks to everyone for taking the time to fill in the Ottawa &lt;span class="s1"&gt;Ruby survey&lt;/span&gt;, the feedback was fantastic! We had 29 submissions in all, each chalk full of great insights.&lt;/p&gt;
&lt;p class="p1"&gt;I&lt;span class="s2"&gt;f you haven&amp;#8217;t done so already, please go ahead and &lt;/span&gt;&lt;span class="s3"&gt;&lt;a href="https://docs.google.com/spreadsheet/viewform?hl=en_US&amp;amp;formkey=dEcxallqbVdSNnRlMnpqbnFUbnRlQXc6MQ#gid=0"&gt;give us your feedback&lt;/a&gt;&lt;/span&gt;&lt;span class="s2"&gt;. Every submission is important, and we&amp;#8217;re still keeping track of new responses.&lt;/span&gt;&lt;/p&gt;
&lt;p class="p1"&gt;For anyone who&amp;#8217;s interested, the results summary is below. But here&amp;#8217;s the TL;DR version:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;It looks like almost everyone comes out to increase their knowledge of Ruby / Rails, including those who already are super proficient. But, just as importantly it seems, people also want to meet fellow Rubyists.&lt;br/&gt; &lt;/li&gt;
&lt;li&gt;For the meetups themselves, the vast majority would like a presentation followed by some coding. It looks like the goal of the coding session isn&amp;#8217;t just to hack on something cool, but also to learn something new.&lt;br/&gt; &lt;/li&gt;
&lt;li&gt;There&amp;#8217;s a whole bunch of topics that people are interested in, with the most interest in Ruby Best Practices [95%], Front-end stuff (best practices, etc.) [81%], and Productivity Tips and Hacks [76%]. &lt;br/&gt; &lt;/li&gt;
&lt;li&gt;As far as the other topics go, most people want to learn more about Testing [67%], Back-end Stuff (Redis, Memcache, MongoDB, etc.) [62%], CoffeeScript [62%], Debugging [57%], Random APIs [57%], and more.&lt;/li&gt;
&lt;/ol&gt;&lt;p class="p1"&gt;&lt;br/&gt;Now, let&amp;#8217;s dive into those results!&lt;/p&gt;
&lt;p class="h2"&gt;&lt;strong&gt;&lt;br/&gt;The Results&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;em&gt;Note: Some of the personal questions / free-form responses have been &lt;/em&gt;&lt;em&gt;purposely left out&lt;/em&gt;&lt;em&gt;, since we didn&amp;#8217;t say upfront that the results would be published. &lt;br/&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;Ruby and Rails Skill Levels&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;We have a pretty wide range of skill levels actually, as you can see from the graphs:&lt;/p&gt;
&lt;p class="p5"&gt;&lt;strong&gt;&lt;br/&gt;Ruby Proficiency&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p6"&gt;&lt;img align="middle" alt="Ottawa Ruby - Ruby Proficiency" height="204" src="http://www.innovisoft.com/images/ottawa_ruby/ruby_proficiency.png" width="361"/&gt;&lt;/p&gt;
&lt;p class="p5"&gt;&lt;strong&gt;&lt;br/&gt;Rails Proficiency&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p6"&gt;&lt;img align="middle" alt="Ottawa Ruby - Rails Proficiency" height="199" src="http://www.innovisoft.com/images/ottawa_ruby/rails_proficiency.png" width="354"/&gt;&lt;/p&gt;
&lt;p class="p6"&gt;&lt;br/&gt;That&amp;#8217;s a pretty wide spread, which actually makes things a little tough. We definitely want to remain beginner friendly, but at the same time, we want to make sure that the advanced folk find the meetups worthwhile.&lt;/p&gt;
&lt;p class="p1"&gt;This is something we&amp;#8217;re going to have to figure out. We&amp;#8217;ll be working on this for the upcoming meetups, aiming to get better each time.&lt;/p&gt;
&lt;p class="p4"&gt;&lt;strong&gt;&lt;br/&gt;What do you want out of the meetups?&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Here&amp;#8217;s the graph of the results for this one:&lt;/p&gt;
&lt;p class="p6"&gt;&lt;img align="middle" height="217" src="http://www.innovisoft.com/images/ottawa_ruby/what_people_want_from_meetups.png" width="368"/&gt;&lt;/p&gt;
&lt;p class="p6"&gt;Unfortunately, Google cut off some of the text. Here&amp;#8217;s a text-based tally:&lt;/p&gt;
&lt;p class="p6"&gt;&lt;img align="middle" height="158" src="http://www.innovisoft.com/images/ottawa_ruby/what_people_want_2.png" width="350"/&gt;&lt;/p&gt;
&lt;p class="p6"&gt;So, almost everyone wants to increase their Ruby and/or Rails knowledge, no surprises here. But, at the same time, most people also want to meet fellow Rubyists. There&amp;#8217;s a few ways we can go about this, from straight up &amp;#8220;networking time,&amp;#8221; to doing some pair-programming, or perhaps creating mini-teams for the group project. &lt;/p&gt;
&lt;p class="p6"&gt;We&amp;#8217;ll figure this out. The last meetup actually had some great mingling / networking going on during the break, so we&amp;#8217;ll likely keep encouraging that. :)&lt;/p&gt;
&lt;p class="p6"&gt;If you happen to have any suggestions on this, please do let us know in the comments.&lt;/p&gt;
&lt;p class="p6"&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p6"&gt;&lt;strong&gt;Meetup Type Preference&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p6"&gt;This one has a clear winner: people want to have a presentation as well as some hands-on coding during the meetups.&lt;/p&gt;
&lt;p class="p6"&gt;&lt;img align="middle" height="91" src="http://www.innovisoft.com/images/ottawa_ruby/meetup_type_preference_as_text.png" width="425"/&gt;&lt;/p&gt;
&lt;p class="p6"&gt;And since I like graphs:&lt;/p&gt;
&lt;p class="p6"&gt;&lt;img align="middle" height="192" src="http://www.innovisoft.com/images/ottawa_ruby/meetup_type_preference.png" width="381"/&gt;&lt;/p&gt;
&lt;p class="p6"&gt;Based on the other feedback, it looks like the purpose of the hands-on coding isn&amp;#8217;t just to hack for hacking&amp;#8217;s sake, but rather to learn something new. This rings true for both the beginners and the super advanced Rubyists. &lt;/p&gt;
&lt;p class="p6"&gt;It may be tricky, but we should be able to figure something out that will accommodate pretty much everyone.&lt;/p&gt;
&lt;p class="p6"&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p6"&gt;&lt;strong&gt;Topics, topics, topics&amp;#8230;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p6"&gt;Here, the highest number of votes went towards the things that every Ruby developer should be well versed in: best practice patterns, productivity, and testing. These were followed by some more specific topics. Let&amp;#8217;s take a look:&lt;/p&gt;
&lt;p class="p6"&gt;&lt;img align="middle" height="536" src="http://www.innovisoft.com/images/ottawa_ruby/meetup_topics_as_text.png" width="591"/&gt;&lt;/p&gt;
&lt;p class="p6"&gt;The topic list wasn&amp;#8217;t exhaustive, but it&amp;#8217;s helpful to see how things rank. &lt;/p&gt;
&lt;p class="p6"&gt;Over the coming months, we&amp;#8217;ll be looking to either have presenters discuss these topics, or incorporate them into the group project somehow. If you&amp;#8217;d be willing to present on any of these topics yourself, please feel free to let Edward, Dwayne or myself know and we&amp;#8217;ll be happy to schedule you for a talk. You can contact us via &lt;a href="https://groups.google.com/forum/#!forum/ogre-list" target="_blank"&gt;the Google Group.&lt;/a&gt;&lt;/p&gt;
&lt;p class="p4"&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p4"&gt;&lt;strong&gt;So, how can we help you grow?&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p6"&gt;We&amp;#8217;ve got some thinking to do on this. One way is to work on a project as a group, which we&amp;#8217;ve already started &lt;a href="https://groups.google.com/forum/#!topic/ogre-list/OF5Mo_eqMn8" target="_blank"&gt;discussing here&lt;/a&gt;. &lt;/p&gt;
&lt;p class="p6"&gt;With this, people of different skill levels can focus on the parts of the project that would help them grow. For example, you may want to focus specifically on the Model, View, or Controller layer.&lt;/p&gt;
&lt;p class="p6"&gt;For the really advanced developers, they can do some fancy things that they normally wouldn&amp;#8217;t be able to / need to do with an early stage app, like making it crazy scalable or something.&lt;/p&gt;
&lt;p class="p6"&gt;Another thought is to try and make this an &amp;#8220;app of our best practices,&amp;#8221; and rather than focusing on just completing the project, focus on our style, patterns and practices.&lt;/p&gt;
&lt;p class="p6"&gt;(And looking at the topic list [see above], almost everyone is interested in best practices, so this fits! With such a wide range of experience, we can all probably learn a thing or two from each other.]&lt;/p&gt;
&lt;p class="p6"&gt;&lt;span&gt;If anyone has any ideas on this, please either post something in the comments, or feel free to &lt;/span&gt;&lt;a href="https://groups.google.com/forum/#!topic/ogre-list/OF5Mo_eqMn8" target="_blank"&gt;join us in the Google Group&lt;/a&gt; and toss in any ideas you have.&lt;span&gt; If you&amp;#8217;d prefer to talk one on one, send us an email.&lt;/span&gt;&lt;/p&gt;
&lt;p class="p4"&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p4"&gt;&lt;strong&gt;Wrap up&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p6"&gt;Thanks again for providing us your feedback through the survey. Ottawa has a great and interesting Ruby community, and we will continue to work to help every Rubyist to grow.&lt;/p&gt;
&lt;p class="p6"&gt;What do you think we should do to help you grow? Let us know in the comments.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;/p&gt;</description><link>http://ottawaruby.ca/post/16860636829</link><guid>http://ottawaruby.ca/post/16860636829</guid><pubDate>Wed, 01 Feb 2012 07:00:06 -0500</pubDate><category>Ottawa Ruby</category><category>Survey</category></item><item><title>Officially good to go! </title><description>&lt;p&gt;&lt;img height="827" src="http://static.tumblr.com/s3rrvea/W6Ul2p5vq/freeze_jump.jpeg" width="1240"/&gt;&lt;/p&gt;

&lt;p&gt;woot! We&amp;#8217;re officially finished with the new Ottawa Ruby site. Hope to see everyone at the next event! :)&lt;/p&gt;</description><link>http://ottawaruby.ca/post/15703561339</link><guid>http://ottawaruby.ca/post/15703561339</guid><pubDate>Wed, 11 Jan 2012 21:47:00 -0500</pubDate></item><item><title>Wrapping up new design</title><description>&lt;p&gt;New design is almost Tumblr&amp;#8217;d up and good to go! Just working on some final tweaks&amp;#8230;&lt;/p&gt;</description><link>http://ottawaruby.ca/post/14922287768</link><guid>http://ottawaruby.ca/post/14922287768</guid><pubDate>Wed, 28 Dec 2011 11:49:38 -0500</pubDate></item><item><title>First P0st!</title><description>&lt;p&gt;Woop!&lt;/p&gt;</description><link>http://ottawaruby.ca/post/13978831417</link><guid>http://ottawaruby.ca/post/13978831417</guid><pubDate>Fri, 09 Dec 2011 15:23:37 -0500</pubDate></item></channel></rss>

