<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Old Dog, New Tricks</title>
	<atom:link href="http://mdenomy.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mdenomy.wordpress.com</link>
	<description>Striving for better ways to write code</description>
	<lastBuildDate>Tue, 22 May 2012 01:54:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mdenomy.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Old Dog, New Tricks</title>
		<link>http://mdenomy.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mdenomy.wordpress.com/osd.xml" title="Old Dog, New Tricks" />
	<atom:link rel='hub' href='http://mdenomy.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Why Katas</title>
		<link>http://mdenomy.wordpress.com/2012/05/18/why-katas/</link>
		<comments>http://mdenomy.wordpress.com/2012/05/18/why-katas/#comments</comments>
		<pubDate>Fri, 18 May 2012 11:40:47 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[pair programming]]></category>
		<category><![CDATA[Software Craftsmanship]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=613</guid>
		<description><![CDATA[The Merriam-Webster dictionary provides the following definition for kata Kata a set combination of positions and movements (as in karate) performed as an exercise Most people are probably familiar with katas as they are used in martial arts (come on, admit it, you liked the Karate Kid).  My introduction to katas in software was through [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=613&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The Merriam-Webster dictionary provides the following definition for <a href="http://www.merriam-webster.com/dictionary/kata">kata</a></p>
<blockquote><p><strong>Kata</strong></p>
<p>a set combination of positions and movements (as in karate) performed as an exercise</p></blockquote>
<p>Most people are probably familiar with katas as they are used in martial arts (come on, admit it, you liked the <a href="http://www.youtube.com/watch?v=H-I1hJl0ujI">Karate Kid</a>).  My introduction to katas in software was through the <a href="http://manifesto.softwarecraftsmanship.org/">Software Craftsmanship</a> movement, where they are often used as training exercises.</p>
<p>It is important to understand with coding katas that the idea is not to do the exercises the same way every time.  Katas are a great way to experiment with different techniques and styles.</p>
<ul>
<li>Can I provide more descriptive naming</li>
<li>Does a terse syntax make the code easier or harder to understand in a particular place.  Would a more verbose, explicit approach be better.  For example, in the case of a complex ternary operator, would an explicit structured if/else construct be better?  Worse?  Try them out and decide for yourself.</li>
<li>Experiment with different syntax, e.g. the unless keyword in Ruby.  More or less readable?</li>
<li>Should I use a defensive programming style checking for nil/null in several places or a more <a href="http://www.youtube.com/watch?v=T8J0j2xJFgQ">confident</a> programming style?</li>
<li>How am I naming my tests (yes you should be writing tests as part of your katas)</li>
</ul>
<p>There are no right or wrong answers to these questions, the goal is to experiment and try out new ideas.  Understand where an idea works well and where it doesn&#8217;t work well.  Try a variety of approaches.  And the great thing about a kata, unlike your code base at your real job, is that you can blow it away when you are done and do it a little different the next time.</p>
<h3><strong>Katas and Interviews</strong></h3>
<p>I&#8217;ve been using pairing as a key part of the interview process for several years now, but a consistent challenge is to what to pair on.  It is unrealistic to assume that most developers are going to walk in the door and instantly grok your code base.  No matter how awesome you are or how descriptive the tests are, it&#8217;s just not gonna happen. Instead pick a problem set that a candidate can quickly get their head around and that you can discuss different design and implementation choices.</p>
<h3><strong>Katas and Pairing</strong></h3>
<p>I had an awesome pairing session yesterday with someone I had never worked with before, and we did some katas as a way to get to know one another, discuss approaches to coding, good naming, refactoring techniques.  It was a blast!</p>
<p>And the really great thing about katas and pairing is that it can be challenging to think of different ways to try something on your own.  But with a pair you have different perspectives baked-in.  And what you can learn may not be strictly code related: it could be keyboard shortcuts, different IDEs or editors, maybe even a wacky keyboard.  Don&#8217;t be afraid to experiment.</p>
<h3><strong>Resources for Katas</strong></h3>
<p><a href="http://jonjagger.blogspot.com/p/cyber-dojo_17.html">Cyber Dojo</a><br />
Great resource for ideas for simple exercises.  Even if you don&#8217;t use the online collaboration tools, it has a great list of problems that can be used for a kata.  I used this yesterday for my leap year kata in Ruby</p>
<p><a href="http://codekata.pragprog.com/2007/01/code_kata_backg.html">Dave Thomas&#8217;s Katas</a><br />
This is the blog post that kicked off a lot of the talk about katas in the software craftsmanship movement. Again, great problem sets that you can get your head around quickly, but with enough meat for some interesting challenges to address.</p>
<p><strong>Your Friendly Neighborhood Software Craftsmanship Group</strong><br />
Here in Boston we have <a href="groups.google.com/group/boston-software-craftsmanship ">Boston Software Craftsmanship</a>. Great group, someone&#8217;s always willing to pair.  Find your local group, or start one yourself.</p>
<p><strong>Another Developer on Your Team</strong><br />
Ask someone on your team if they&#8217;d be interested in brown bagging it some day and do some kata&#8217;s together.  You should do this especially if you are not pairing now or are not doing TDD.  You may find that you should really be pairing and you really should be doing TDD.  You should.  Really.</p>
<p><a href="http://coderetreat.org/">CodeRetreat.org</a><br />
I had a great time at last year&#8217;s <a href="http://mdenomy.wordpress.com/2011/12/04/my-day-at-global-code-retreat-2011/">Global Day of Code Retreat</a>.  Check it out.  Conway&#8217;s Game of Life is a great coding exercise.  This also introduces some great constraints and pairing ideas that really get you thinking.</p>
<p>Now get out there and start coding&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/613/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/613/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/613/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=613&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/05/18/why-katas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>
	</item>
		<item>
		<title>So Ends The Season of Ruby</title>
		<link>http://mdenomy.wordpress.com/2012/04/20/so-ends-the-season-of-ruby/</link>
		<comments>http://mdenomy.wordpress.com/2012/04/20/so-ends-the-season-of-ruby/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 03:25:28 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Season of Ruby]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=603</guid>
		<description><![CDATA[After a few false starts trying to get started with Ruby, I made a commitment this year to dive in with both feet and really learn it.  I decided on the notion of a &#8220;season&#8221; to dedicate to getting started with Ruby, and I think my initial dive has come to an end.  When are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=603&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After a few false starts trying to get started with Ruby, I made a commitment <a href="http://mdenomy.wordpress.com/2011/12/23/i-hate-year-end-lists/">this year</a> to dive in with both feet and really learn it.  I decided on the notion of a <a href="http://mdenomy.wordpress.com/category/season-of-ruby/">&#8220;season&#8221;</a> to dedicate to getting started with Ruby, and I think my initial dive has come to an end.  When are you ever done learning about a language or a technology, probably never?  And I am no more done learning about Ruby than I am done learning about C#, Java, Python, Perl, Javascript, or any other language.  Well, maybe Perl (ha, ha, ha).</p>
<p>So my introduction to Ruby and Ruby on Rails has not disappointed.  As expected, the community is vibrant and on the whole focused on real quality and craftsmanship.  There is no shortage of great resources out there to help a developer come up to speed on Ruby and Ruby on Rails.  And in that spirit, I wanted to take a snapshot on what I have learned, what resources I have found helpful, and where I might focus in the future.</p>
<p><strong><span style="text-decoration:underline;">Learn Ruby First</span></strong></p>
<p>It is surprising easy to get up and running in Rails without really knowing much Ruby, just follow the wealth of examples and tutorials that are already out there.  I would argue strongly against that approach though.  Ruby has some really great features, especially if you are new to dynamic languages.  There is a an expressive syntax, great features like blocks and iterators, and incredibly rich set of standard libraries and 3rd party gems that allow you to build on.</p>
<p>Here are some of the resources I used to get up to speed with Ruby</p>
<p><a href="http://rubykoans.com/">Ruby Koans</a> &#8211; Well structured introduction to the various features of Ruby.  A great intro to the language that you can bang through pretty quickly and refer back to when questions arise.  I have a lot of experience with Test Driven Development, but if you are new to TDD this will also get you thinking about TDD and how to write tests for your code.</p>
<p><a href="http://pragprog.com/book/ruby/programming-ruby">The Pickaxe Book</a> &#8211; Great resource on features of the Ruby language</p>
<p><a href="http://www.amazon.com/The-Ruby-Way-Second-Edition/dp/0672328844">The Ruby Way</a> &#8211; Extensive resource for ways to solve several common programming tasks using Ruby.  This is also a great early introduction to writing in a Ruby-esque style, which was really helpful for me coming from C#.</p>
<p><a href="http://www.ruby-doc.org/">Ruby-Doc.org</a> is another good reference for features about Ruby, especially the core API and standard library.</p>
<p><span style="text-decoration:underline;"><strong>Moving on To Ruby On Rails</strong></span></p>
<p>There is just an incredible wealth of resources to getting started with Ruby on Rails.</p>
<p>I spent a lot of time on Michael Hartl&#8217;s <a href="http://ruby.railstutorial.org/chapters/">Ruby on Rails Tutorial</a>.  I loved the focus on TDD and good developer practices.  Other added benefits to this tutorial is it is a gently introduction to git and even shows you how to push your code up to heroku.  I know this is a resource I will continue to come back to again and again.</p>
<p>As much as I loved the Hartl tutorial, I wish I had actually started with <a href="http://railsforzombies.org/">Rails for Zombies</a>.  Rails for Zombies is put on by Code School, which has a lot of content available for purchase, but the Rails for Zombies course will give you a good introduction to Rails <span style="text-decoration:underline;">and it&#8217;s free</span>.  You can blast through it pretty quickly, gives you a good sense of the basics, and it really sets the table for a deeper dive into Rails.  I actually did this after spending a lot of time with the Hartl tutorial, but doing Rails for Zombies provided a lot of &#8220;a ha&#8221; moments as I went through it.</p>
<p><a href="http://railscasts.com/">RailsCasts</a> has a <em>ton</em> of great content, both free and by subscription and is just a fantastic resource.  The screencasts are typically anywhere between 5 and 15 minutes and cover a huge range of topics.</p>
<p>I can&#8217;t get enough of the <a href="http://rubyrogues.com/">Ruby Rogues</a> podcast.  These guys do a fantastic job and have great chemistry.  I am shocked that they can do all of this every week, and it has made my commute a lot more educational and enjoyable.  They have some great guests and even for a newb I find the content informative.  Some stuff goes past me, but I usually go to the website afterwards and follow up on the links for the list of topics discussed on each episode.</p>
<p><a href="http://ruby5.envylabs.com/">Ruby 5</a> is another great podcast.  It serves a different purpose than Ruby Rogues.  Ruby 5 is more of a news oriented feed of what&#8217;s happening in the Ruby community, what gems have been released, what books have come out, etc.</p>
<p>Other great resources for learning about Rails are the <a href="http://guides.rubyonrails.org/">Rails Guides</a> and <a href="http://apidock.com/rails">Rails ApiDock</a>.</p>
<p><strong>Get Involved in the Local Community</strong></p>
<p>I am fortunate that in Boston there are a lot of resources for meeting and learning from other people in the community.</p>
<p><a href="http://bostonrb.org/">Boston Ruby</a> puts on some great talks each month and also does hackfests a couple times a month.  I have been to a few talks, but really need to get to the hackfests. They also have a very active mailing list that is a great resource for technical issues.</p>
<p>The <a href="http://www.meetup.com/Rails-Boston/">Boston Ruby on Rails</a> group meets more sporadically, but seems like a great group.  I went there for a series of lightning talks just before starting the Season of Ruby and there was a spirited Q&amp;A after each of the talks.  I am sure that helped motivate me.</p>
<p>I also went to a few workshops put on by <a href="http://thoughtbot.com/">thoughtbot</a> that I got a lot out of: the <a href="https://workshops.thoughtbot.com/sections/39-the-web-design-and-development-process">Web Design and Development Process</a>, and <a href="https://workshops.thoughtbot.com/sections/45-intermediate-ruby-on-rails">Intermediate Ruby on Rails</a>.</p>
<p><strong>Where to Next</strong></p>
<p>The simple answer is just write more code because that is the best way I know to improve.  There is still <em>sooooooo</em> much to learn.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/603/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/603/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/603/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=603&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/04/20/so-ends-the-season-of-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>
	</item>
		<item>
		<title>The Non-Linear Nature of Learning</title>
		<link>http://mdenomy.wordpress.com/2012/03/19/the-non-linear-nature-of-learning/</link>
		<comments>http://mdenomy.wordpress.com/2012/03/19/the-non-linear-nature-of-learning/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 16:45:55 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[Learning]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Season of Ruby]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=587</guid>
		<description><![CDATA[Learning is a funny thing, rarely does our knowledge progress in a smooth, linear fashion.  I have been spending some of my copious free time learning Ruby and Rails and in that time I have experienced various moments of joy, frustration, utter confusion, and total clarity.  It got me to thinking about the way we [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=587&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Learning is a funny thing, rarely does our knowledge progress in a smooth, linear fashion.  I have been spending some of my copious free time <a href="http://mdenomy.wordpress.com/category/season-of-ruby/">learning Ruby and Rails</a> and in that time I have experienced various moments of joy, frustration, utter confusion, and total clarity.  It got me to thinking about the way we learn.</p>
<p>Inspired by Jessica Hagy&#8217;s great work at <a href="http://thisisindexed.com/">Indexed</a> I came up with this diagram.</p>
<p><a href="http://mdenomy.files.wordpress.com/2012/03/learning.png"><img class="aligncenter size-full wp-image-589" title="How we learn" src="http://mdenomy.files.wordpress.com/2012/03/learning.png?w=500" alt=""   /></a></p>
<p>I experienced a brief, fleeting moment of Ruby hubris (Rubris?) a few weeks back and implied I was <a href="http://mdenomy.wordpress.com/2012/03/02/rails-starting-to-click/">starting to &#8220;get it&#8221;</a>, even invoking the good name of Ralph Kramden.  Well the Rails gods rightfully smited  me for my lack of a deep understanding of Rail&#8217;s<a href="http://guides.rubyonrails.org/association_basics.html"> Active Record Associations</a>.</p>
<p>For my penance, I have started to take a look at <a href="http://hackety.com/">HacketyHack</a> and hope to soon <a href="https://github.com/hacketyhack/hackety_hack-lessons">contribute some lessons</a> or help out however I can.  If anyone knows of any other resources for teaching kids to code, I&#8217;d be interested in helping out.</p>
<p>Needless to say I&#8217;ll also be spending some time trying to grok Active Record Associations as well.</p>
<p>Still having a blast on this journey.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/587/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=587&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/03/19/the-non-linear-nature-of-learning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>

		<media:content url="http://mdenomy.files.wordpress.com/2012/03/learning.png" medium="image">
			<media:title type="html">How we learn</media:title>
		</media:content>
	</item>
		<item>
		<title>Season of Ruby &#8211; Things Are Starting To Click</title>
		<link>http://mdenomy.wordpress.com/2012/03/02/rails-starting-to-click/</link>
		<comments>http://mdenomy.wordpress.com/2012/03/02/rails-starting-to-click/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 13:57:00 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Season of Ruby]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=533</guid>
		<description><![CDATA[The danger with doing any online tutorial, even one as good as the Michael Hartl Rails Tutorial, is that if you aren&#8217;t careful the only benefits you will have at the end is that your typing skills have improved and you have the marketable ability to cut-and-paste large snippets of code.  At some point you [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=533&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The danger with doing any online tutorial, even one as good as the <a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book">Michael Hartl Rails Tutorial</a>, is that if you aren&#8217;t careful the only benefits you will have at the end is that your typing skills have improved and you have the marketable ability to cut-and-paste large snippets of code.  At some point you need to start driving the bus.  Today I felt like the <a href="http://en.wikipedia.org/wiki/The_Honeymooners#Ralph_Kramden">Ralph Kramden</a> of Rails.</p>
<p><a href="http://mdenomy.files.wordpress.com/2012/03/honeymooners2.jpg"><img class="size-medium wp-image-566 alignnone" title="Driving the bus" src="http://mdenomy.files.wordpress.com/2012/03/honeymooners2.jpg?w=300&h=254" alt="" width="300" height="254" /></a></p>
<p><em>Editor&#8217;s Note: I am not actually old enough to have seen the Honeymooner&#8217;s, I just remember in my college days the reruns were on at 11PM, just before Star Trek at midnight (also in reruns).</em></p>
<p>The last few chapters I have been making an effort to implement the code without looking at the solution from the tutorial.  Today I stepped it up a little further by taking more control of writing and defining the tests too.  It really paid off today as I felt like I took ownership of the app and the technical choices.</p>
<p><a href="http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#top">Chapter 10</a> starts out by defining the functionality needed for editing a user.  I looked over the <a href="http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#sec:edit_form">wireframes</a> and had a good idea about the functionality I wanted.  I glanced at the titles of the <a href="http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#code:user_edit_specs">1st three tests</a>: get page successfully, has correct title, and includes link to change gravatar.</p>
<p>From a pure TDD approach, <a href="http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html">doing the simplest thing that work</a>s, I was able to get these tests to pass with the following code.</p>
<p><strong>app/views/users/edit.html.erb</strong></p>
<p><pre class="brush: ruby; gutter: false;">
&lt;h1&gt;Edit User&lt;/h1&gt;
&lt;a href=&quot;http://gravatar.com/emails&quot;&gt;change&lt;/a&gt;
</pre></p>
<div><strong>app/controllers/user_controllers.rb</strong></div>
<p><pre class="brush: ruby; gutter: false;">
 class UsersController &lt; ApplicationController
    ...
    def edit
      @title = &quot;Edit user&quot;
    end
    ...
</pre></p>
<p>Obviously this is not enough to implement the final solution, but it <em><strong>is enough</strong></em> to get the tests to pass, and in my experience additional functionality should be driven by the tests.  From the perspective of a Rails noob I felt that these were valuable tests because they proved out the plumbing and set the table for more complex tests/functionality.  Now it was time to look at the tutorial&#8217;s <a href="http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#code:initial_edit_action">solution</a>.</p>
<p>I was surprised to see that the tutorial solution included the form and all its associated fields.  Now this is not a knock on the tutorial, it is a very good tutorial.  I love this tutorial, but while it introduces some concepts of TDD and its primary goal is not to teach TDD.  But clearly there was a disconnect between the solution and the tests.</p>
<p>So I added the tests for the fields, and now was happily back to red.  Yes Virginia, real developer&#8217;s love failing tests, they are a sign of progress.</p>
<p><strong>spec/controllers/user_controllers_spec.rb</strong></p>
<p><pre class="brush: ruby; gutter: false;">
   it &quot;should have a name field&quot; do
      get :edit, :id =&gt; @user
      response.should have_selector(&quot;input[name='user[name]'][type='text']&quot;)
    end

    it &quot;should have an email field&quot; do
      get :edit, :id =&gt; @user
      response.should have_selector(&quot;input[name='user[email]'][type='text']&quot;)
    end

    it &quot;should have an password field&quot; do
      get :edit, :id =&gt; @user
      response.should have_selector(&quot;input[name='user[password]'][type='password']&quot;)
    end

    it &quot;should have an confirmation field&quot; do
      get :edit, :id =&gt; @user
      response.should have_selector(&quot;input[name='user[password_confirmation]'][type='password']&quot;)
    end
</pre></p>
<p>Getting to green was fairly trivial, and I was able to cut-and-paste a lot of the code from &#8220;new&#8221; and make a few minor mods.</p>
<p><strong>app/views/users/edit.html.erb</strong></p>
<p><pre class="brush: ruby; gutter: false;">
&lt;h1&gt;Edit User&lt;/h1&gt;
&lt;%= form_for(@user) do |f| %&gt;
  &lt;%= render 'shared/error_messages', :object =&gt; f.object %&gt;
  &lt;div&gt;
    &lt;%= f.label :name %&gt;&lt;br /&gt;
    &lt;%= f.text_field :name %&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;%= f.label :email %&gt;&lt;br /&gt;
    &lt;%= f.text_field :email %&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;%= f.label :password %&gt;&lt;br /&gt;
    &lt;%= f.password_field :password %&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;%= f.label :password_confirmation, &quot;Confirmation&quot; %&gt;&lt;br /&gt;
    &lt;%= f.password_field :password_confirmation %&gt;
  &lt;/div&gt;
&lt;div&gt;
  &lt;%= f.submit &quot;Update&quot; %&gt;
&lt;/div&gt;
&lt;% end %&gt;
&lt;div&gt;
  &lt;a href=&quot;http://gravatar.com/emails&quot;&gt;change&lt;/a&gt;
&lt;/div&gt;
</pre></p>
<p>My tests were passing but now I had quite a bit of duplicated code in my app/views/users/new.html.erb and app/views/users/edit.html.erb files.  It was time for the 3rd piece of the red-green-refactor cycle.</p>
<p>Thinking back to earlier chapters, I thought what I would like to do is to implement a partial view that encapsulated the user forms.  After some googling about how to<a href="http://stackoverflow.com/questions/6672454/passing-parameters-to-partial-view"> pass parameters into a partial view</a> I ended up with the following partial view</p>
<p><strong>app/views/shared/_user_fields.html.erb</strong></p>
<p><pre class="brush: ruby; gutter: false;">
&lt;div class=&quot;field&quot;&gt;
  &lt;%= f.label :name %&gt;&lt;br /&gt;
  &lt;%= f.text_field :name %&gt;
&lt;/div&gt;
&lt;div class=&quot;field&quot;&gt;
 &lt;%= f.label :email %&gt;&lt;br /&gt;
 &lt;%= f.text_field :email %&gt;
&lt;/div&gt;
&lt;div class=&quot;field&quot;&gt;
 &lt;%= f.label :password %&gt;&lt;br /&gt;
 &lt;%= f.password_field :password %&gt;
&lt;/div&gt;
&lt;div class=&quot;field&quot;&gt;
 &lt;%= f.label :password_confirmation, &quot;Confirmation&quot; %&gt;&lt;br /&gt;
 &lt;%= f.password_field :password_confirmation %&gt;
&lt;/div&gt;
</pre></p>
<p>And the edit.html.erb was a lot cleaner now and my tests were still passing.<br />
<strong>app/views/user/edit.html.erb</strong></p>
<p><pre class="brush: ruby; gutter: false;">
&lt;h1&gt;Edit User&lt;/h1&gt;

&lt;%= form_for(@user) do |f| %&gt;
 &lt;%= render 'shared/error_messages', :object =&gt; f.object %&gt;
 &lt;%= render 'shared/user_fields', :f =&gt; f %&gt;
 &lt;div class=&quot;actions&quot;&gt;
 &lt;%= f.submit &quot;Update&quot; %&gt;
 &lt;/div&gt;
&lt;% end %&gt;

&lt;div&gt;
 &lt;a href=&quot;http://gravatar.com/emails&quot;&gt;change&lt;/a&gt;
&lt;/div&gt;
&lt;pre&gt;
</pre></p>
<p>Making the necessary changes to new.html.erb completed the process.<br />
<strong>app/views/user/new.html.erb</strong></p>
<p><pre class="brush: ruby; gutter: false;">
&lt;h1&gt;Sign up&lt;/h1&gt;
&lt;%= form_for(@user) do |f| %&gt;
  &lt;%= render 'shared/error_messages' %&gt;
  &lt;%= render 'shared/user_fields', :f =&gt; f %&gt;
  &lt;div class=&quot;actions&quot;&gt;
    &lt;%= f.submit &quot;Sign up&quot; %&gt;
  &lt;/div&gt;
&lt;% end %&gt;
</pre></p>
<p>Run the tests one more time&#8230;and still green.</p>
<p>It was a really good day in Rails land.  None of this was rocket-science, but I felt like I knew what I wanted to do and how to do it (with just a few minor hiccups related to syntax and mechanics).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/533/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/533/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/533/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=533&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/03/02/rails-starting-to-click/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>

		<media:content url="http://mdenomy.files.wordpress.com/2012/03/honeymooners2.jpg?w=300" medium="image">
			<media:title type="html">Driving the bus</media:title>
		</media:content>
	</item>
		<item>
		<title>Season of Ruby &#8211; Iteration 4 Retrospective</title>
		<link>http://mdenomy.wordpress.com/2012/02/26/iteration-4-retrospective/</link>
		<comments>http://mdenomy.wordpress.com/2012/02/26/iteration-4-retrospective/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 23:38:02 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Season of Ruby]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=527</guid>
		<description><![CDATA[Iteration 4? Wait, shouldn&#8217;t I be on Iteration 5?  Yes, but as expected work reared its ugly head and the Season of Ruby got pushed to the back of the line. I am now through Chapter 8 of the Ruby on Rails Tutorial.  I wish I had tracked the actual time spent on the tutorial, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=527&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Iteration 4? Wait, shouldn&#8217;t I be on Iteration 5?  Yes, but as expected work reared its ugly head and the Season of Ruby got pushed to the back of the line.</p>
<p>I am now through Chapter 8 of the <a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book">Ruby on Rails Tutorial</a>.  I wish I had tracked the actual time spent on the tutorial, that would have been useful information for anyone wishing to follow the same roadmap.  I would estimate I have spent around 14-16 hours through the first 8 chapters.</p>
<p><strong>What Went Well</strong></p>
<ul>
<li>In the interest of trying to get as much as possible, I am resisting the urge to cut-and-paste from the tutorial.  You learn a lot from mistakes, big and small, so there is a lesson to be learned when you type &#8220;name&#8221; or &#8220;@name&#8221; when what you really needed to type &#8220;:name&#8221;.</li>
<li>I still think one of the strengths of this <a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book">tutorial</a> is the focus on TDD.  As I have started to get more comfortable with the environment, I have also been trying to implement solutions on my own after writing the tests from the tutorial.  That makes me feel like I am starting to get more of a lay of the land.</li>
<li>Used the <a href="https://github.com/thoughtbot/factory_girl">FactoryGirl</a> gem to simulate model objects for testing.</li>
<li>Got my shiny new MacBook Pro and have switched all my Ruby and Rails development from Windows.  It was really cool once the environment was set up to grab the repo of github and pick up right where I left off.  BTW, I used the thoughtbot <a href="https://github.com/thoughtbot/laptop">laptop</a> project to get my system all set up for Rails development.  Went pretty smoothly.</li>
</ul>
<p><strong>What Can Be Improved On</strong></p>
<ul>
<li>I feel a little like <a href="http://mdenomy.wordpress.com/2012/01/22/season-of-ruby-iteration-zero-retrospective/">how I felt during the Ruby Koans</a>, that I am gaining a false sense of knowledge by following the tutorial.  It has been really helpful to get me moving forward with Rails, but you are still following a well-defined roadmap.</li>
<li>I want to finish the tutorial because I think there are several more lessons to learn and it will be a great reference to look back on, but I am anxious to start from a clean sheet of paper and make a <strong>ton</strong> of mistakes.  That is when the real learning will happen.</li>
<li>I have been pretty good about not doing a lot of cut-and-paste from the tutorial, but at times it is hard.  Just need to keep forcing myself to resist doing that.</li>
</ul>
<div><strong>What Am I Going To Do To Improve</strong></div>
<div>The most learning has come in cases where I have tried to implement my own solutions after using the tests as provided from the tutorial.  From this point on, that will be the approach I will use.  Then when I have a passing test I can look at the tutorial and compare my solution against the tutorial solution and take that as a refactoring exercise.  It may take longer, but it will pay dividends down the line.</div>
<div></div>
<div>
<p><strong>Iteration 5 Stories/Tasks</strong></p>
<p>Chapters 9 and 10 of the <a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book">Ruby on Rails Tutorial</a>, implementing my own solutions first after using the tutorial tests to get to &#8220;red&#8221;.</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/527/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/527/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/527/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/527/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/527/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/527/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/527/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/527/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/527/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/527/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/527/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/527/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/527/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/527/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=527&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/02/26/iteration-4-retrospective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>
	</item>
		<item>
		<title>New Startup Accelerator Program Coming To Boston</title>
		<link>http://mdenomy.wordpress.com/2012/02/21/new-startup-accelerator-program-coming-to-boston/</link>
		<comments>http://mdenomy.wordpress.com/2012/02/21/new-startup-accelerator-program-coming-to-boston/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 12:23:56 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[Lean Startup]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=521</guid>
		<description><![CDATA[There is a new startup accelerator looking to set up shop in Boston this summer.  The thing that caught my eye is that this accelerator, Bolt, will focus on connected devices.  Real&#8230;physical&#8230;stuff. I think that this is great for the Boston area.  We already have a lot of energy and effort in the area around [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=521&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There is a new startup accelerator looking to set up shop in Boston this summer.  The thing that caught my eye is that this accelerator, <a href="http://www.boston.com/business/technology/innoeco/2012/02/bolt_new_accelerator_program_f.html">Bolt</a>, will focus on connected devices.  Real&#8230;physical&#8230;stuff.</p>
<p>I think that this is great for the Boston area.  We already have a lot of energy and effort in the area around startups for mobile, web, and software services, but I think this will help bring other engineering disciplines into the Boston startup community.  The ability to iterate in the mechanical/electrical world has improved a lot over the years, especially with the widespread use of <a href="http://en.wikipedia.org/wiki/3D_printing">3D printers</a>, <a href="http://en.wikipedia.org/wiki/Prototype#Electronics_prototyping">electronics prototyping</a>, and OTS platforms like <a href="http://arduino.cc/">Arduino</a>.  It will be interesting to see how <a href="http://theleanstartup.com/">lean startup</a> principles come into play in the physical world (yes, I know that&#8217;s where they came from <a href="http://en.wikipedia.org/wiki/Lean_manufacturing">initially</a>)</p>
<p>As someone who has spent most of his career doing software for robotics, automation, and medical devices this will be something to keep an eye on.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/521/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=521&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/02/21/new-startup-accelerator-program-coming-to-boston/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>
	</item>
		<item>
		<title>Season of Ruby &#8211; Iteration 3 Retrospective</title>
		<link>http://mdenomy.wordpress.com/2012/02/12/season-of-ruby-iteration-3-retrospective/</link>
		<comments>http://mdenomy.wordpress.com/2012/02/12/season-of-ruby-iteration-3-retrospective/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 00:24:54 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[Season of Ruby]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=512</guid>
		<description><![CDATA[I am now a month into the  Season of Ruby, so aside from the usual retrospective, it is a good time to reflect on what I have learned to this point.  In the last month I have made the following strides: Set up a github account and pushed code up to it. Re-familiarized myself with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=512&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am now a month into the <a href="http://mdenomy.wordpress.com/category/season-of-ruby/"> Season of Ruby</a>, so aside from the usual retrospective, it is a good time to reflect on what I have learned to this point.  In the last month I have made the following strides:</p>
<ul>
<li>Set up a <a href="https://github.com/mdenomy">github account</a> and pushed code up to it.</li>
<li>Re-familiarized myself with<a href="http://git-scm.com/"> git</a> and got more practice using it on a day-to-day basis, creating and merging branches, as well as pushing code to github and <a href="http://www.heroku.com/">heroku</a>.</li>
<li>Learning the basics of Ruby and used it to develop an implementation of the <a href="https://github.com/mdenomy/GameOfLife">Conway&#8217;s Game of Life</a></li>
<li>Picked up a little Rails with the <a href="http://mdenomy.wordpress.com/2012/02/12/halftime-review-of-michael-hartls-ruby-on-rails-tutorial/">Ruby on Rails Tutorial</a></li>
</ul>
<p><strong>What Went Well</strong></p>
<ul>
<li>I am really enjoying the <a href="http://mdenomy.wordpress.com/2012/02/12/halftime-review-of-michael-hartls-ruby-on-rails-tutorial/">Ruby on Rails Tutorial</a>, not just for how it teaches Rails, but as much for the developer practices that it encourages.</li>
<li>Gave some thought to the overall roadmap of where I want to go for the next few months.  I thought this <a href="http://techiferous.com/2010/07/roadmap-for-learning-rails/">website</a> gave a good picture and though I will customize it a bit, I think a lot of the areas I want to build on are covered here.  For me the areas that I want to focus on in the next few months are a strong foundation in Ruby along with a better understanding of <a href="https://developer.mozilla.org/en/JavaScript">JavaScript</a> (and <a href="http://coffeescript.org/">CoffeeScript</a>), and <a href="http://www.w3.org/Style/CSS/">CSS</a>.  I have a few ideas about an app I can put together that will provide an opportunity to strengthen those areas.</li>
</ul>
<p><strong>What Can Be Improved On</strong></p>
<ul>
<li>Practice, practice, practice.  The tutorial is really helping me put all this together, but I need to keep repeating the lessons to make sure it sinks in.  Similar to what I went through with the Ruby Koans, I don&#8217;t want to develop a false sense of understanding, so I need to keep writing code and making sure to dig beneath the surface.</li>
</ul>
<div><strong>What Am I Going To Do To Improve Things</strong></div>
<div>
<p>To make sure I am really grokking the lessons from the tutorial, I think it would be a good idea to take a few hours at the end of this iteration and write a simple app.  Something similar in complexity to the micro-blogging example in the tutorial. It doesn&#8217;t need to be a complete application, but the parts I get to need to be &#8220;right&#8221;, so I will time-box it at 3 hours. Does not need to be visually pretty.</p>
<p><strong>Iteration 4 Stories/Tasks</strong></p>
<p>Keep chugging away on the Ruby on Rails tutorial.  I am through chapter 5, but this is going to be a long week at work, so I would like to be able to get through chapters 6 &amp; 7 this week.</p>
<div>To make sure I am really absorbing the tutorial lessons, develop a simple application without referring back to the tutorial documentation.  Going through other documentation is OK, e.g. StackOverflow, Ruby Core Docs, Rails Guides.  Time-box it at 3 hours, and follow good developer practices, i.e. use TDD, git/github.  Application is TBD, but should be similar in complexity to the micro-blogging example.</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/512/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/512/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/512/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=512&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/02/12/season-of-ruby-iteration-3-retrospective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>
	</item>
		<item>
		<title>Halftime Review of Michael Hartl&#8217;s Ruby on Rails Tutorial</title>
		<link>http://mdenomy.wordpress.com/2012/02/12/halftime-review-of-michael-hartls-ruby-on-rails-tutorial/</link>
		<comments>http://mdenomy.wordpress.com/2012/02/12/halftime-review-of-michael-hartls-ruby-on-rails-tutorial/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 23:02:23 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Season of Ruby]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=505</guid>
		<description><![CDATA[I am a newcomer to Ruby and Ruby on Rails, so when I wanted to get started with Rails I looked around quite a bit for a good starting point.  I finally settled on Michael Hartl&#8217;s Ruby on Rails Tutorial.  I am about halfway through with the tutorial, and I am really pleased so far.  This [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=505&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am a newcomer to <a href="http://www.ruby-lang.org/en/">Ruby</a> and <a href="http://rubyonrails.org/">Ruby on Rails</a>, so when I wanted to get started with Rails I looked around quite a bit for a good starting point.  I finally settled on <a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book">Michael Hartl&#8217;s Ruby on Rails Tutorial</a>.  I am about halfway through with the tutorial, and I am really pleased so far.  This is a great tutorial for a lot of reasons, but the aside from just teaching Rails, he is also teaching good development practices such as:</p>
<ul>
<li>How to use <a href="http://git-scm.com/">git</a> effectively.  The tutorial starts out with git basics and then quickly moves on to integration with <a href="https://github.com/">github</a>, working on branches when adding new features, and merging changes back into the master.</li>
<li>Focus on testing.  We start out with <a href="http://rspec.info/">RSpec</a> writing unit tests, but then also add in integration tests.  He also follows a TDD approach for a lot of the tutorial where the tests come before the code, a practice that I believe strongly in.</li>
<li>Stresses good developer practices like running your tests before and after merging a branch.  Sure the merge probably went fine, but be a good citizen and test it before you push it up to github.</li>
<li>Refactoring your code to reduce duplication and make it more readable and maintainable.</li>
<li>Shows how to deploy your code up to <a href="http://www.heroku.com/">heroku</a></li>
<li>Introduces real world work practices like <a href="http://ruby.railstutorial.org/book/ruby-on-rails-tutorial#sec:structure">sketches and wireframes</a>.</li>
</ul>
<div>The focus on testing, refactoring, and general good developer practices is important to me.  These are practices that I have been using for a long time, but it is great to see them so much a part of Ruby on Rails.  Just seeing that standard project hierarchy includes a place for tests tells you it is ingrained in Rails.  I really loved this quote from the tutorial</div>
<blockquote>
<div>
<p align="LEFT"><span style="color:#111111;"><span style="font-family:Georgia, serif;"><span style="font-size:small;">If you ask five Rails developers how to test any given piece of code, you’ll get about fifteen different answers—but they’ll all agree that you should definitely be writing tests</span></span></span></p>
</div>
</blockquote>
<p>As far as the Rails side of the tutorial goes, I think after my<a href="http://mdenomy.wordpress.com/2012/02/08/season-of-ruby-a-bad-day-fishing/"> initial environment snafu</a> (that&#8217;s all on me), things have been going great.  I am starting to see more of how Rails implements <a href="http://ruby.railstutorial.org/chapters/a-demo-app#sec:mvc_in_action">MVC</a>.  MVC is obviously not a new concept, it&#8217;s been around for a <a href="http://c2.com/cgi/wiki?ModelViewControllerHistory">while</a>, but each framework and environment uses it differently.  I also really enjoy the ordered structure of a rails project and can see what an advantage it is to have this kind of common project structure.  I know ASP.NET MVC also tries to use a <a href="http://msdn.microsoft.com/en-us/library/dd410120.aspx">standard project hierarchy</a>, but rails felt a little cleaner and more intuitive.</p>
<p>After some simple applications to get your feet wet and make sure your environment is good to go, the tutorial uses a micro-blogging application to slowly walk through the different capabilities in rails.  The tutorial also explains some of the &#8220;magic&#8221; that goes on under the covers that Rails provides for you.  This has encouraged me to<a href="http://guides.rubyonrails.org/routing.html"> route around</a> (pun intended, thanks) to understand more of the magic.  Aside from routing, we have also hit a bit on database integration and <a href="http://ruby.railstutorial.org/chapters/modeling-and-viewing-users-one#sec:database_migrations">migrations</a>, <a href="http://ruby.railstutorial.org/chapters/filling-in-the-layout#sec:custom_css">some CSS</a>, and <a href="http://ruby.railstutorial.org/chapters/filling-in-the-layout#sec:partials">partials</a>.</p>
<p>One thing this tutorial will not teach you is a lot of Ruby, and the author is <a href="http://ruby.railstutorial.org/book/ruby-on-rails-tutorial#sec:comments_for_various_readers">quite clear about that</a>.  He provides some good references for learning more Ruby, but the focus here is on Rails, and he keeps the amount of Ruby necessary to a minimum.</p>
<p>I am about halfway through and am hoping to finish up in the next 2 weeks.  It is a little slow going because as I learn I often go off to investigate different aspects of what I am learning.  Finishing the tutorial will not be the end of the journey, but it certainly has helped get it going in a good direction.  I recommend it highly to anyone interested in getting started with Ruby on Rails.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/505/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/505/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/505/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=505&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/02/12/halftime-review-of-michael-hartls-ruby-on-rails-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>
	</item>
		<item>
		<title>Season of Ruby &#8211; A Bad Day Of Fishing</title>
		<link>http://mdenomy.wordpress.com/2012/02/08/season-of-ruby-a-bad-day-fishing/</link>
		<comments>http://mdenomy.wordpress.com/2012/02/08/season-of-ruby-a-bad-day-fishing/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 13:35:57 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Season of Ruby]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=475</guid>
		<description><![CDATA[I have been really excited to get going with Michael Hartl&#8217;s Ruby on Rails Tutorial.  Skimming through the table of contents and the introduction, I liked that he makes testing such a focal point of the tutorial.  I also liked the Comments for Various Readers section.  I fit into the &#8220;Experienced programmers new to web development&#8221; camp, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=475&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have been really excited to get going with Michael Hartl&#8217;s <a href="http://ruby.railstutorial.org/chapters">Ruby on Rails Tutorial</a>.  Skimming through the table of contents and the introduction, I liked that he makes testing such a focal point of the tutorial.  I also liked the <a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book?version=3.2#sec:comments_for_various_readers">Comments for Various Readers</a> section.  I fit into the &#8220;Experienced programmers new to web development&#8221; camp, and after reading the introduction I knew  that this would be a great tutorial for me.</p>
<p>The first section was well laid out, and focused on getting your environment set up.  It also touched on using <a href="http://git-scm.com/">git </a>and <a href="https://github.com/">github </a>which is starting to feel like old hat for me, but then it ended with deploying the sample app to <a href="http://www.heroku.com/">heroku</a> which was a new thing for me.  As someone experienced in software development, but new to web development, it was great to have the heroku deployment so well explained and easy to do.  I was feeling quite full of myself.</p>
<p>Then came the 2nd chapter&#8230;</p>
<p>Someone once said &#8220;A bad day fishing is better than a good day at work&#8221;.  Oh yeah, tell that to <a href="http://www.imdb.com/character/ch0175379/quotes">Captain Quint</a>, he looks like he is having a pretty bad day fishing.</p>
<div class="mceTemp mceIEcenter" style="text-align:left;">
<dl class="wp-caption aligncenter">
<dt class="wp-caption-dt"><a href="http://mdenomy.files.wordpress.com/2012/02/quint.jpg"><img class="wp-image-477 " title="Quint" src="http://mdenomy.files.wordpress.com/2012/02/quint.jpg?w=450&h=280" alt="" width="450" height="280" /></a></dt>
<dd class="wp-caption-dd">A Bad Day Of Fishing</dd>
</dl>
</div>
<p>Now you could argue that he&#8217;s actually just having a good day at work, since technically, as a fisherman, he is at work.  But I digress. Up to this point my Ruby experience has been all pie and ice cream, but today was a bad day of fishing with Ruby.</p>
<p>The author <a href="http://ruby.railstutorial.org/chapters/beginning?version=3.2#sec:rubygems">goes to great length</a> to explain that the tutorial uses an older more stable combination of Rails/Ruby versions and that is what you should install.  But I am <em>sooooooo</em> much smarter than that and besides, I want to use the newest stuff.  To say the least, I ran into a lot of problems with getting the right combinations of Ruby, Rails, sqlite, etc, etc working.  I learned a lot about <a href="http://rubygems.org/">gems </a>and <a href="http://gembundler.com/">bundler </a>along the way.  I think things were further complicated by running on a Windows box as well.</p>
<p>After a lot of time fighting my environment, I realized I was fighting the wrong battle and the smart thing to do was to get the environment set up as the author intended to be able to get the most out of the tutorial.  Once I made that decision I was back on the happy path and am looking forward to moving on to more in-depth parts of the tutorial.  I don&#8217;t feel like it was a wasted experience, because I did learn quite a bit digging around.  I imagine this can be a significant issue for Rails projects, especially as new versions of Rails, Ruby, or different gems roll out and that the correct dependencies need to be addressed.  It reminded me a lot about the &#8220;<a href="http://en.wikipedia.org/wiki/DLL_Hell">DLL Hell</a>&#8221; days of Windows before .NET.</p>
<p>The take-away is if you decide to do<a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book"> this tutorial</a> follow the author&#8217;s advice and set up the environment as specified.  The lessons to be learned are more to the core of Rails and running the latest version of Rails or the application&#8217;s dependencies is not important.  And now that I am on the right track I am looking forward to moving on to more advanced sections of the tutorial.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/475/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/475/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/475/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=475&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/02/08/season-of-ruby-a-bad-day-fishing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>

		<media:content url="http://mdenomy.files.wordpress.com/2012/02/quint.jpg?w=300" medium="image">
			<media:title type="html">Quint</media:title>
		</media:content>
	</item>
		<item>
		<title>Season of Ruby &#8211; Iteration 2 Retrospective</title>
		<link>http://mdenomy.wordpress.com/2012/02/05/season-of-ruby-iteration-2-retrospective/</link>
		<comments>http://mdenomy.wordpress.com/2012/02/05/season-of-ruby-iteration-2-retrospective/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 04:07:53 +0000</pubDate>
		<dc:creator>mdenomy</dc:creator>
				<category><![CDATA[Season of Ruby]]></category>

		<guid isPermaLink="false">http://mdenomy.wordpress.com/?p=469</guid>
		<description><![CDATA[Things are coming together well with the Season of Ruby.  Getting out of my comfort zone was a driving theme and there has been some discomfort, but I am now establishing a new comfort zone, familiarizing myself with a new language and new tools.  There is still a lot of work to do, but I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=469&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Things are coming together well with the<a href="http://mdenomy.wordpress.com/category/season-of-ruby/"> Season of Ruby</a>.  Getting out of my comfort zone was a driving theme and there has been some discomfort, but I am now establishing a new comfort zone, familiarizing myself with a new language and new tools.  There is still a lot of work to do, but I am really pleased with how things are going.  And with that, on to the retrospective.</p>
<p><strong>What Went Well</strong></p>
<ul>
<li>Got to write more code this iteration.  I wrote a <a href="https://github.com/mdenomy/GameOfLife">Ruby implementation of Conway&#8217;s Game of Life</a>.  I really love to code and sometimes I don&#8217;t get to do that enough in my day job.  Solving a problem was a lot of fun.</li>
<li>I stayed true to TDD, which is my standard way of working, but given the new tools it is important to stay true.  So far I have been using test-unit, but I also got a look at some <a href="http://rspec.info/">RSpec</a>.</li>
<li>Played around with forking a project on github, starting to get more comfortable with the workflow.</li>
</ul>
<p><strong>What Can Be Improved On</strong></p>
<ul>
<li>I hit a roadblock with TDD when I got to a point where in .NET I would use a mocking framework.  The reason I wanted to mock was because I was interested in testing behavior and not state.  I wanted to know that the GameOfLife class was interacting with the Cell class in the correct sequence.  Need to understand how that type of testing would be done under Ruby.</li>
<li>I need to understand how to structure my projects in Ruby.  That will mean looking at more code and also learning tools like Rake.</li>
<li>Start thinking about the overall roadmap of this adventure.  I&#8217;m into it far enough now that I am starting to feel comfortable with the tools, now it is time to start doing some longer range (1-2 month) planning.</li>
</ul>
<div><strong>What Am I Going To Do To Improve Things</strong></div>
<div>
<p>I still have some work on Ruby fundamentals, but I would like to get a simple Rails project under my belt to give me some context and also to start the long term thinking.  I was considering the <a href="http://guides.rubyonrails.org/getting_started.html">Ruby on Rails Guides</a>, but now think I will take a crack at <a href="http://ruby.railstutorial.org/chapters/a-demo-app">Michael Hartl&#8217;s</a> tutorial.  It seems a little richer and also seems to really focus on testing.</p>
<p><strong>Iteration 3 Stories</strong></p>
<div>&#8220;Stories&#8221; is a reach this iteration.  I am back into uncharted waters with Rails.  I don&#8217;t know what I don&#8217;t know yet.  Instead I will just put in at least 6 hours on  <a href="http://ruby.railstutorial.org/chapters/a-demo-app">Michael Hartl&#8217;s</a> tutorial</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mdenomy.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mdenomy.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mdenomy.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mdenomy.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mdenomy.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mdenomy.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mdenomy.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mdenomy.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mdenomy.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mdenomy.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mdenomy.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mdenomy.wordpress.com/469/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mdenomy.wordpress.com/469/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mdenomy.wordpress.com/469/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mdenomy.wordpress.com&#038;blog=1422655&#038;post=469&#038;subd=mdenomy&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mdenomy.wordpress.com/2012/02/05/season-of-ruby-iteration-2-retrospective/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ce3ab3b40fd18000b68f4126cda2006a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mdenomy</media:title>
		</media:content>
	</item>
	</channel>
</rss>
