<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
  <title>Softies on Rails - Home</title>
  <id>tag:www.softiesonrails.com,2009:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  
  <link href="http://www.softiesonrails.com/" rel="alternate" type="text/html" />
  <updated>2009-06-17T03:28:23Z</updated>
  <geo:lat>41.900332</geo:lat><geo:long>-87.669276</geo:long><link rel="self" href="http://feeds.feedburner.com/SoftiesOnRails" type="application/atom+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2009-06-17:34912</id>
    <published>2009-06-17T03:27:00Z</published>
    <updated>2009-06-17T03:28:23Z</updated>
    <category term="rails" />
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/WbxQ84v_kgY/join-us-at-windy-city-rails" rel="alternate" type="text/html" />
    <title>Join Us at Windy City Rails 2009</title>
<content type="html">
            &lt;p&gt;I’m glad to announce that I’ll be conducting the morning tutorial session at the upcoming &lt;a href="http://windycityrails.org"&gt;Windy City Rails Conference&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;It’s a 3-hour tutorial called &lt;a href="http://windycityrails.org/sessions"&gt;&lt;span class="caps"&gt;REST 101&lt;/span&gt;: Best Practices for Rails Developers&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;If you’re relatively new to Rails, especially if you’re currently a .NET or Java developer who’s trying to figure out how to really get started with Rails, this tutorial is for you. If you’re a more seasoned developer, then you should still attend the conference.  There’s a great lineup of speakers, all-day coding sessions, and more.&lt;/p&gt;


	&lt;p&gt;The conference will be held on September 12, 2009 in downtown Chicago. If you register now, you can get the early bird rate of $99 for conference admission or &lt;a href="http://windycityrails.org/register"&gt;just $199 for the conference with one tutorial session&lt;/a&gt;.  For those who might not have heard of the annual Windy City Rails conference before, the conference donates all profits to local charities, like the &lt;a href="http://www.chicagosfoodbank.org"&gt;Greater Chicago Food Depository&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;So &lt;a href="http://windycityrails.org/register"&gt;register now&lt;/a&gt; for the conference and/or tutorial.  We’ll learn a lot, have fun, and support a good cause all in one day.&lt;/p&gt;


	&lt;p&gt;Questions?  Leave a comment below and I’ll try to respond quickly.&lt;/p&gt;


	&lt;p&gt;Thanks!  See you there!&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=WbxQ84v_kgY:3RsFYthHB1Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=WbxQ84v_kgY:3RsFYthHB1Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=WbxQ84v_kgY:3RsFYthHB1Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=WbxQ84v_kgY:3RsFYthHB1Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=WbxQ84v_kgY:3RsFYthHB1Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=WbxQ84v_kgY:3RsFYthHB1Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/WbxQ84v_kgY" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2009/6/17/join-us-at-windy-city-rails</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2009-06-11:34847</id>
    <published>2009-06-11T00:13:00Z</published>
    <updated>2009-06-11T00:14:51Z</updated>
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/ZLfENfmCWGs/making-git-commands-a-little-shorter" rel="alternate" type="text/html" />
    <title>Making Git Commands A Little Shorter</title>
<content type="html">
            &lt;p&gt;Most of you git geeks probably already knew this, but recently I learned how to make git a little more usable for me.&lt;/p&gt;


	&lt;p&gt;One of the things I appreciate about Subversion’s command line interface is that, usually, you don’t have to type the entire command name.  As long as you enter enough of the command so it can’t be confused with another subversion command, it will work.&lt;/p&gt;


	&lt;p&gt;For example, instead of doing:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;svn status&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;I always do&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;svn st&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;(i know, I know, you can go even further and create shell aliases that are even further, or shell scripts, or whatever…)&lt;/p&gt;


	&lt;p&gt;Anyway, now that I’m using git for my personal projects, I end up doing this a lot:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;But recently I learned that I can make this shorter by creating a &lt;em&gt;git alias&lt;/em&gt; for the status command (or any other command I want).&lt;/p&gt;


	&lt;p&gt;So I did this:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;git config alias.st status&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now I can do this instead:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;git st&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;You can do the same for git commit:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;git config alias.ci commit&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;For more information about how to create aliases in git, well… just Google for it.  You’ll be glad you did.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=ZLfENfmCWGs:NoQsFT1EzjU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=ZLfENfmCWGs:NoQsFT1EzjU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=ZLfENfmCWGs:NoQsFT1EzjU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=ZLfENfmCWGs:NoQsFT1EzjU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=ZLfENfmCWGs:NoQsFT1EzjU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=ZLfENfmCWGs:NoQsFT1EzjU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/ZLfENfmCWGs" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2009/6/11/making-git-commands-a-little-shorter</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2009-05-28:34552</id>
    <published>2009-05-28T13:47:00Z</published>
    <updated>2009-05-28T13:48:07Z</updated>
    <category term="rails" />
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/wbjtrGw7aSM/i-don-t-use-rspec" rel="alternate" type="text/html" />
    <title>I Don't Use RSpec</title>
<content type="html">
            &lt;p&gt;It seems I’m in a super-minority among Rails developers.&lt;/p&gt;


	&lt;p&gt;First of all, I write tests.  My unscientific guess is that less than half of people who call themselves Rails developers actually write tests.&lt;/p&gt;


	&lt;p&gt;Second, I write tests first.  Of those that write tests, I would guess that less than half write them before writing the implementation code.&lt;/p&gt;


	&lt;p&gt;So already I’m in the group of “those crazy &lt;span class="caps"&gt;TDD&lt;/span&gt; developers”.  But you know what’s even worse?&lt;/p&gt;


	&lt;p&gt;In that very group of “crazy &lt;span class="caps"&gt;TDD&lt;/span&gt; developers”, I bet more than half use &lt;a href="http://rspec.info/"&gt;RSpec&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;But I don’t.  Instead, I use a combination of &lt;a href="http://www.thoughtbot.com/projects/shoulda/"&gt;shoulda&lt;/a&gt;, &lt;a href="http://github.com/brynary/webrat/tree/master"&gt;webrat&lt;/a&gt;, and &lt;a href="http://mocha.rubyforge.org/"&gt;mocha&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Honestly I don’t know why I’ve never liked RSpec.  Lots of smart people use it, and maybe I just don’t understand it.  But I don’t think business users will write tests with the story runner.  The most they’ll ever do is &lt;em&gt;read&lt;/em&gt; them, which is still valuable.  But they can read my webrat tests well enough.&lt;/p&gt;


	&lt;p&gt;Also, RSpec just feels… heavy.  There are spaces between words when I expect ruby-like underscores instead:&lt;/p&gt;


&lt;pre&gt;&lt;code class="ruby"&gt;Model.should have(1).record
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This just looks weird to me.&lt;/p&gt;


	&lt;p&gt;Unfortunately learning Mocha hasn’t been like falling off a log, either.  There’s an excellent &lt;a href="http://groups.google.com/group/mocha-developer"&gt;Google Group&lt;/a&gt;, but I don’t really know of a simple “Getting Started with Mocha” guide anywhere, so it’s taken me a while to get up to speed.  Maybe I should take the time to write one?  If enough people are interested I’d be willing to give it a shot.&lt;/p&gt;


	&lt;p&gt;So, there it is.  &lt;strong&gt;I don’t use RSpec&lt;/strong&gt;.  So flame away and tell me know if I’m a genius or a moron.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=wbjtrGw7aSM:eAdfFW8Y8aI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=wbjtrGw7aSM:eAdfFW8Y8aI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=wbjtrGw7aSM:eAdfFW8Y8aI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=wbjtrGw7aSM:eAdfFW8Y8aI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=wbjtrGw7aSM:eAdfFW8Y8aI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=wbjtrGw7aSM:eAdfFW8Y8aI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/wbjtrGw7aSM" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2009/5/28/i-don-t-use-rspec</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2009-05-04:33157</id>
    <published>2009-05-04T21:18:00Z</published>
    <updated>2009-05-04T21:18:29Z</updated>
    <category term="rails" />
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/FDShV6NCzGU/railsbridge" rel="alternate" type="text/html" />
    <title>RailsBridge</title>
<content type="html">
            &lt;p&gt;&lt;img src="http://railsbridge.org/images/logo.png" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;I’m glad to help announce &lt;a href="http://railsbridge.org"&gt;RailsBridge&lt;/a&gt;, a great idea put forth by &lt;a href="http://www.afreshcup.com"&gt;Mike Gunderloy&lt;/a&gt;.  Mike invited me (and many others) last week to join his concept for a positive approach inside the Rails community, and so far things look promising.&lt;/p&gt;


	&lt;p&gt;I hope to help out by donating time and energy toward any public workshops the group may choose to host, as well do any writing and mentoring that may be needed.  The group will do many other things, but for now those are the two that I feel most qualified to do (see &lt;a href="http://www.purpleworkshops.com"&gt;here&lt;/a&gt; and &lt;a href="http://pragprog.com/titles/cerailn"&gt;here&lt;/a&gt; if you’re a new reader and don’t know what I’m talking about).&lt;/p&gt;


	&lt;p&gt;I wasn’t able to make it to RailsConf, but some other RailsBridge members are there, so find them, learn more about it, and join us if you’re so inclined.&lt;/p&gt;


	&lt;p&gt;A couple weeks ago I was pretty depressed about the state of the Rails community.  But now, I’m more optimistic that ever.&lt;/p&gt;


	&lt;p&gt;Thanks, Mike.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=FDShV6NCzGU:9qURLq8kukA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=FDShV6NCzGU:9qURLq8kukA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=FDShV6NCzGU:9qURLq8kukA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=FDShV6NCzGU:9qURLq8kukA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=FDShV6NCzGU:9qURLq8kukA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=FDShV6NCzGU:9qURLq8kukA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/FDShV6NCzGU" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2009/5/4/railsbridge</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>brian</name>
    </author>
    <id>tag:www.softiesonrails.com,2009-03-03:31337</id>
    <published>2009-03-03T15:38:00Z</published>
    <updated>2009-03-03T15:38:45Z</updated>
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/OXJ6lSXyatY/an-essential-rails-success-story-and-win-a-free-book" rel="alternate" type="text/html" />
    <title>An Essential Rails success story (and win a free book)</title>
<content type="html">
            &lt;p&gt;&lt;a href="http://tzetzefly.com/"&gt;Dan Woolley&lt;/a&gt; writes:&lt;/p&gt;

&lt;blockquote&gt;
I took your course in Chicago a couple of years ago &amp;ndash; I think it was your first one.  I finally left my comfy corporate job and went full time on Rails in July 2008.  I recently released my first Rails app &amp;ndash; Dwellicious (http://dwellicious.com).  That is our free site for consumers that helps you organize, share, and discuss the search for homes for sale on the internet.
&lt;/blockquote&gt;

&lt;p&gt;Congrats, Dan.  &lt;a href="http://dwellicious.com"&gt;Dwellicious&lt;/a&gt; is beautifully designed, well executed, and yes, has a &lt;em&gt;real&lt;/em&gt; business model.&lt;/p&gt;

&lt;p&gt;Are you a .NET developer who's turned to Rails?  What's your success story?  Link it up in the comments or e-mail us.  We'll take the best ones, post them here, and send you a free copy of &lt;a href="http://www.pragprog.com/titles/cerailn/rails-for-net-developers"&gt;Rails for .NET Developers&lt;/a&gt;.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=OXJ6lSXyatY:BH0XdPnKXDA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=OXJ6lSXyatY:BH0XdPnKXDA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=OXJ6lSXyatY:BH0XdPnKXDA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?i=OXJ6lSXyatY:BH0XdPnKXDA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=OXJ6lSXyatY:BH0XdPnKXDA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/SoftiesOnRails?a=OXJ6lSXyatY:BH0XdPnKXDA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/SoftiesOnRails?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/OXJ6lSXyatY" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2009/3/3/an-essential-rails-success-story-and-win-a-free-book</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2009-02-12:31216</id>
    <published>2009-02-12T18:12:00Z</published>
    <updated>2009-02-16T13:46:34Z</updated>
    <category term="Ruby" />
    <category term="ruby" />
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/I4Wv--k0e5w/another-ruby-tip" rel="alternate" type="text/html" />
    <title>Simplifying Your Ruby Code</title>
<content type="html">
            &lt;p&gt;I used to write Ruby code like this a lot when I my brain was still half .NET.&lt;/p&gt;


&lt;pre&gt;&lt;code class="ruby"&gt;def is_ready?
  if self.status &amp;gt; 3
    return true
  else
    return false
  end
end&lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;I see this all the time on the Rails mailing list.  Would you be surprised to know that you can write the same method this way:&lt;/p&gt;


&lt;pre&gt;&lt;code class="ruby"&gt;def ready?
  self.status &amp;gt; 3
end
&lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;(I’d do away the the magic number “3” in favor of a constant, but I digress…)&lt;/p&gt;


	&lt;p&gt;Notice two things:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Methods that return a true/false indicator should end with a question mark.  For more on this topic, see &lt;a href="http://www.softiesonrails.com/2007/10/18/ruby-101-naming-conventions"&gt;my other post&lt;/a&gt; on the topic of naming conventions in Ruby.&lt;/li&gt;
		&lt;li&gt;Ruby uses the last-evaluated expression as the return value.  No need to wrap it with a useless if/else block.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Questions?  Got another example of code patterns you’ve seen that could be simpler?  Use Textile formatting in the comments.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=TXh2q2UZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=TXh2q2UZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=MfluXz3X"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=MfluXz3X" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=SjU4Sn7Z"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=0wTOhsz3"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/I4Wv--k0e5w" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2009/2/12/another-ruby-tip</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2009-01-23:31040</id>
    <published>2009-01-23T01:45:00Z</published>
    <updated>2009-01-23T01:46:17Z</updated>
    <category term="rails" />
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/-kGe2TFpKJM/do-you-test-your-views" rel="alternate" type="text/html" />
    <title>Do You Test Your Views?</title>
<content type="html">
            &lt;p&gt;Those of you &lt;a href="http://www.twitter.com/jeffcohen"&gt;following me on twitter&lt;/a&gt; already know that I’m learning &lt;a href="http://wiki.github.com/aslakhellesoy/cucumber"&gt;Cucumber&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Traditionally I don’t test my views or controllers all that much.  I know, I know, it’s heresy.  But I’ve just never gotten much value from writing Rails functional tests nor integration tests.&lt;/p&gt;


	&lt;p&gt;Yet those of you who have been reading my articles or &lt;a href="http://www.amazon.com/Rails-NET-Developers-Jeff-Cohen/dp/1934356204/"&gt;new book&lt;/a&gt; know that I’ve been immersed in &lt;span class="caps"&gt;TDD&lt;/span&gt; for a long time and can’t imagine writing any application without a decent test suite to go with it.&lt;/p&gt;


	&lt;p&gt;So what do I test?  I test the models like no one’s business.  I use test/unit or shoulda to drive the design of all the models I write, and I write a lot of tests covering every possible edge case I can think of.&lt;/p&gt;


	&lt;p&gt;But the controllers and views?  Up until now it’s seemed like a waste of time, for several reasons.&lt;/p&gt;


	&lt;p&gt;First, &lt;strong&gt;most of my controllers are stupid-simple RESTful controllers&lt;/strong&gt;.  They’re as skinny as possible, because I move almost all of the real logic into the models.  That way I can test my models with unit tests without trying to simulate a browser, and I find it easier to use script/console to play with models than with controllers.&lt;/p&gt;


	&lt;p&gt;Secondly, once the application gets to its first stabilization point, I find that &lt;strong&gt;&lt;span class="caps"&gt;HTML&lt;/span&gt; and &lt;span class="caps"&gt;CSS&lt;/span&gt; change way more often than 80% of the core application logic ever will&lt;/strong&gt;.  Writing tests for the views just means they’ll break after inconsequential layout changes.  After all, views are just supposed to be a representation of your models (generally speaking), and other stuff (navigation, ajax effects, etc.) just aren’t worth my time writing a regression suite for.&lt;/p&gt;


	&lt;p&gt;As much as I’m digging Cucumber’s syntax, I’m desparately close to just going back to test/unit and forgetting about the controllers again.&lt;/p&gt;


	&lt;p&gt;Convince me otherwise.  Do you test your controllers and views?  If so, with what – Rails functional tests in test/unit?  RSpec? Cucumber?  What are you trying to verify in your tests, and why?&lt;/p&gt;


&lt;hr /&gt;

	&lt;p&gt;&lt;i&gt;Is your team switching to Rails?  Sign up for a fun-filled, one-day class in your own office: &lt;a href="http://www.switchingtorails.com"&gt;SwitchingToRails.com&lt;/a&gt;&lt;/i&gt;&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=klWnMdoJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=klWnMdoJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=LT0POMm0"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=LT0POMm0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=eg5IazR4"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=hg84dxsy"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/-kGe2TFpKJM" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2009/1/23/do-you-test-your-views</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>brian</name>
    </author>
    <id>tag:www.softiesonrails.com,2009-01-13:30259</id>
    <published>2009-01-13T15:09:00Z</published>
    <updated>2009-01-13T15:12:50Z</updated>
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/G9aLzSCkPJQ/interviewed-on-infoq" rel="alternate" type="text/html" />
    <title>Interviewed on InfoQ</title>
<content type="html">
            &lt;p&gt;We were recently &lt;a href="http://www.infoq.com/articles/rails-for-net-developers"&gt;interviewed by Rob Bazinet over at InfoQ&lt;/a&gt; about our book and how we got started with our careers working with Rails.&lt;/p&gt;

&lt;blockquote&gt;
I was learning Rails and using it for side-projects while working at my 9-to-5 .NET job for almost 2 years. I was shocked at how much of an immediate impact it had on how I thought about my .NET code. It definitely made me a better developer, and that in itself is reason enough to learn Ruby. Plus, as techies, we're easily distracted by new, shiny things.
&lt;/blockquote&gt;

&lt;p&gt;Also included is a complete sample chapter from our book (Chapter 2: Switching to Ruby), exclusive to InfoQ.  Thanks to Rob for the interview and for posting it.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=YU2miHYB"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=YU2miHYB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=2Lne6P8n"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=2Lne6P8n" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=8GzN8Gdo"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=ueecLoAQ"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/G9aLzSCkPJQ" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2009/1/13/interviewed-on-infoq</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2009-01-01:30139</id>
    <published>2009-01-01T05:26:00Z</published>
    <updated>2009-01-01T05:28:27Z</updated>
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/nhWpRytuQ0c/what-did-you-learn-in-2008" rel="alternate" type="text/html" />
    <title>What Did You Learn In 2008?</title>
<content type="html">
            &lt;p&gt;I learned a lot of new things in 2008.  Here are a few highlights I can think of:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;The &lt;span class="caps"&gt;REST&lt;/span&gt; concepts became crystal clear in early 2008.  Later I wrote the &lt;a href="http://www.softiesonrails.com/search?q=rest+101"&gt;&lt;span class="caps"&gt;REST 101&lt;/span&gt; series&lt;/a&gt; which became one of our more popular series we’ve done on this blog, and then &lt;a href="http://www.purpleworkshops.com/workshops/rest-and-web-services"&gt;taught a workshop&lt;/a&gt; on it down in Austin, TX.  (The next one is in Chicago, so sign up now to be notified when registration opens.)&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;I hated, then learned, then loved &lt;a href="http://git.or.cz/"&gt;Git&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Learned how to &lt;a href="http://www.amazon.com/Rails-NET-Developers-Jeff-Cohen/dp/1934356204/"&gt;write a book&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;I hated, then learned, then loved setting up my own &lt;span class="caps"&gt;VPS&lt;/span&gt; on Slicehost.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Learned how to setup &lt;a href="http://nginx.net/"&gt;nginx&lt;/a&gt; with a &lt;a href="http://code.macournoyer.com/thin/"&gt;Thin cluster&lt;/a&gt; to host Rails applications.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Learned how to write my own DSLs in Ruby.  Awesome.  I’ve said it before, I’ll say it again.  People will look back at 2008 and remember it as the Year of the &lt;span class="caps"&gt;DSL&lt;/span&gt;, when DSLs finally started to get the attention they deserve.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Learned a bit about functional programming.  I don’t completely get it yet, but I find it fascinating.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Learned to play chess better.  But I still suck at it. It insists on oscillating along the love-hate spectrum.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Already on my radar for 2009:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Learn the ins and outs of using Apache + &lt;a href="http://www.modrails.com"&gt;Passenger&lt;/a&gt; for Rails apps.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Learn &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; and how to use Javascript more effectively in Rails apps.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Learn a new programming language.  I have my sights set on Haskell, but perhaps Erlang.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Learn how to not lose at chess quite so badly.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;What did you learn this past year?  What do you want to learn next?&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=tUcNq104"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=tUcNq104" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=N9nQXNAn"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=N9nQXNAn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=Pcl7PBfm"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=GLvHX9kt"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/nhWpRytuQ0c" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2009/1/1/what-did-you-learn-in-2008</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2008-12-30:30121</id>
    <published>2008-12-30T06:10:00Z</published>
    <updated>2008-12-30T06:11:43Z</updated>
    <category term="podcast" />
    <category term="rails" />
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/S2N_NvnGsHo/hear-us-talk-about-rails-net-and-more-on-the-alt-net-podcast" rel="alternate" type="text/html" />
    <title>Hear us talk about Rails, .NET, and more on the Alt.net Podcast</title>
<content type="html">
            &lt;p&gt;&lt;img src="http://farm2.static.flickr.com/1368/599606659_fe8bb645a2.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://flickr.com/photos/hiddedevries/599606659/"&gt;Photo credit&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;A little while back, Brian and I were glad to be asked to appear along with &lt;a href="http://infozerk.com/averyblog/"&gt;James Avery&lt;/a&gt; on the &lt;a href="http://altnetpodcast.com/"&gt;&lt;span class="caps"&gt;ALT&lt;/span&gt;.NET Podcast&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;We mostly focus on issues that are of interest to those who are straddling that line between day-job .NET and night-time Rails, but we also touch on other topics as well.&lt;/p&gt;


	&lt;p&gt;So give a kick and a listen to &lt;a href="http://www.dotnetkicks.com/other/Alt_NET_Podcast_Episode_13_Ruby_on_Rails"&gt;our episode about Rails&lt;/a&gt; and let us know what you think of it.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=L0sYJs12"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=L0sYJs12" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=Cfd8Gfjh"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=Cfd8Gfjh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=4uIEStDP"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=KSxLK435"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/S2N_NvnGsHo" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2008/12/30/hear-us-talk-about-rails-net-and-more-on-the-alt-net-podcast</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2008-12-17:29301</id>
    <published>2008-12-17T20:13:00Z</published>
    <updated>2008-12-17T20:16:23Z</updated>
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/zWSK12Z-05s/microblogging-on-twitter" rel="alternate" type="text/html" />
    <title>Microblogging on Twitter</title>
<content type="html">
            &lt;p&gt;Earlier this year, I &lt;a href="http://www.softiesonrails.com/2008/5/3/i-m-on-twitter-for-some-reason"&gt;started using twitter&lt;/a&gt;.  I was not at all convinced it would be worth my time.  I didn’t really understand why I would want to tell people “what I’m doing right now.”&lt;/p&gt;


	&lt;p&gt;While some people literally tweet what they’re doing every five minutes, I discovered that many people don’t.  And so now, I “get it”.  I’ve found the key is not follow a lot of people – I currently follow about 70 – otherwise it’s a firehose.&lt;/p&gt;


	&lt;p&gt;What I get out of twitter is access to conversations that those that I’m interested in are having.  It helps me keep up with the news a bit more than reading blogs, although anything important always shows up on a blog at some point anyway.  Also, many heated conversations on twitter originate from a blog post.&lt;/p&gt;


	&lt;p&gt;So I think blogging is here to stay for a while, despite what some may think.&lt;/p&gt;


	&lt;p&gt;However, it occurred to me that I’ve blogged a lot less in the past couple months, because it’s much more convenient for me to tweet a link or an idea, than it is to write up a blog post.  So while both Brian and I will continue to blog here, you should follow us on twitter:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.twitter.com/jeffcohen"&gt;Jeff on twitter&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.twitter.com/eng"&gt;Brian on twitter&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Anytime we have something to announce, teach, entertain, or waste your time with that fits into 140 characters or less, we’ll use twitter instead.&lt;/p&gt;


	&lt;p&gt;I will say that I don’t understand how some people follow 800 other people.  Unless you’re watching the stream all day long, or using another tool to analyze/summarize it for you (which is cool).&lt;/p&gt;


	&lt;p&gt;And I don’t understand tweets like, “Having dinner with my wife.”  Imagine, you’re sitting there eating dinner… “Uh huh, yes dear, exactly… hold on a minute, i have to get my cell phone out so i can text something to twitter…”&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=3o3YozFP"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=3o3YozFP" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=bgcp7HlX"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=bgcp7HlX" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=gAT9EfUi"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=RnZdg15N"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/zWSK12Z-05s" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2008/12/17/microblogging-on-twitter</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2008-12-09:29209</id>
    <published>2008-12-09T21:25:00Z</published>
    <updated>2008-12-09T21:27:10Z</updated>
    <category term="book" />
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/qjiI10evSlE/rails-for-net-developers-as-a-wordle" rel="alternate" type="text/html" />
    <title>Rails for .NET Developers As A Wordle</title>
<content type="html">
            &lt;p&gt;The title of this post says it all.  Click for a larger view:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.wordle.net/gallery/wrdl/372614/Rails_for_.NET_Developers" title="Wordle: Rails for .NET Developers"&gt;&lt;img src="http://www.wordle.net/thumb/wrdl/372614/Rails_for_.NET_Developers"&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Get &lt;a href="http://pragprog.com/titles/cerailn/rails-for-net-developers"&gt;the pdf&lt;/a&gt; or &lt;a href="http://www.amazon.com/Rails-NET-Developers-Jeff-Cohen/dp/1934356204/"&gt;just paper&lt;/a&gt;.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=yuaeJawW"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=yuaeJawW" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=0uIcdega"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=0uIcdega" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=WoFsQHko"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=Ob3FWK7f"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/qjiI10evSlE" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2008/12/9/rails-for-net-developers-as-a-wordle</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2008-11-21:28973</id>
    <published>2008-11-21T15:00:00Z</published>
    <updated>2008-11-21T15:01:39Z</updated>
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/ekD3WbM4Qlc/can-software-updates-be-made-simpler" rel="alternate" type="text/html" />
    <title>Can Software Updates Be Made Simpler?</title>
<content type="html">
            &lt;p&gt;&lt;img src="http://img.skitch.com/20081121-8mek88gbq9t3npsmfh6sng414f.png" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Generally speaking, I like Apple’s Software Update mechanism more than I liked Microsoft’s Windows Update.  It generally seems less intrusive, runs faster, and has a simpler UI (disclaimer: I’m more familiar with WinXP than Vista; if the Vista experience has made it a lot better, be sure to comment to this post).&lt;/p&gt;


	&lt;p&gt;However, it still takes a lot more clicks than it should, especially for iTunes updates.  iTunes seems to update itself more often than any other piece of software I own, and every time there’s an update I have to click once or twice to get past the License Agreement nonsense in addition to the clicks needed to just get the update installed.  For minor “point” releases, I wish it wouldn’t ask me about the license agreement every single time:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20081121-t4p26ija591wu54xgxtbgywp65.png" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Agreeing to the terms and conditions of, say, version 8.0.0, should imply that I agree for 8.1 through 8.9.  Or heck, through 125.2.  Does anybody read these things anymore anyway?  Just give me a way to view the license agreement from the Help menu or something if I’m really worried about it.&lt;/p&gt;


	&lt;p&gt;Software updates should be, ideally, invisible; and when they can’t be, they should be simple to apply.  I think Apple has done a good job with making them simple to apply.  But many of them could be invisible.  Windows Update had an option to automatically download and install (and even reboot if necessary) updates at 2AM.  The next morning, updates are applied, and you’re none the wiser.  Unfortunately this was a &lt;em&gt;little&lt;/em&gt; scary, because there wasn’t a way to select which updates are authorized for automatic installation.  It was all or nothing.&lt;/p&gt;


	&lt;p&gt;I want an option in iTunes where I can say, “Yes, yes, install whatever you want, whenever you want – just don’t bother me, kthx.”&lt;/p&gt;


	&lt;p&gt;I guess I want something more akin to the experience I have with software like Adium and Skitch.  You’re told that there’s an update available, and you have to agree to install the update.  After watching the progress bar (can’t &lt;em&gt;anybody&lt;/em&gt; think of anything a little more entertaining than a solid bar filling up with the standard color?  How about a clown juggling 3 balls, then 4, then 5?  Or &lt;em&gt;something&lt;/em&gt;?), I get a button that just stays “Install and Relaunch.”  Which, unfortunately, is followed by a dialog asking if I want to allow it to touch all my keychain stuff (which I always say yes to).  So there’s room for improvement there, too, but overall the experience seems cleaner and faster.&lt;/p&gt;


	&lt;p&gt;I don’t have all the answers, and I know that client software is supposed to be a dying breed, but I do think it’s time that someone – either Apple, Microsoft, or Linux – figure out a nicer way to install updates.&lt;/p&gt;


	&lt;p&gt;Speaking of Linux, I’ve never used a Linux Desktop OS.  Those of you who have, I’d be interested in hearing about your experiences with operating-system updates as well as client software updates.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=ydR6qdg9"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=ydR6qdg9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=Fjo25JRY"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=Fjo25JRY" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=NBS7Zapj"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=29rbnVJ5"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/ekD3WbM4Qlc" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2008/11/21/can-software-updates-be-made-simpler</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>jeff</name>
    </author>
    <id>tag:www.softiesonrails.com,2008-11-13:28770</id>
    <published>2008-11-13T21:25:00Z</published>
    <updated>2008-11-13T21:25:36Z</updated>
    <category term="rails" />
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/AjIb9TCC58A/speaking-at-chicagoruby-this-saturday" rel="alternate" type="text/html" />
    <title>Speaking at ChicagoRuby this Saturday</title>
<content type="html">
            &lt;p&gt;Sorry for the late notice – I was having too much fun at RubyConf last week – but I’ll be speaking at the upcoming &lt;a href="http://www.chicagoruby.org/"&gt;ChicagoRuby&lt;/a&gt; meeting this Saturday.  If you’re in the neighborhood, come join us!&lt;/p&gt;


	&lt;p&gt;ChicagoRuby is headed up by Ray Hightower, the same guy who made &lt;a href="http://windycityrails.org/"&gt;Windy City Rails&lt;/a&gt; a reality.  You can let us know you’re coming by using &lt;a href="http://www.meetup.com/ChicagoRuby"&gt;this Meetup.com link&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;See you there!&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=WANONd14"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=WANONd14" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=BqP7ny5y"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=BqP7ny5y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=cikmPgfJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=QZllqkXw"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/AjIb9TCC58A" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2008/11/13/speaking-at-chicagoruby-this-saturday</feedburner:origLink></entry>
  <entry xml:base="http://www.softiesonrails.com/">
    <author>
      <name>brian</name>
    </author>
    <id>tag:www.softiesonrails.com,2008-10-15:28223</id>
    <published>2008-10-15T18:17:00Z</published>
    <updated>2008-10-15T18:21:19Z</updated>
    <link href="http://feedproxy.google.com/~r/SoftiesOnRails/~3/8P587RuTyZY/rails-for-net-developers-now-shipping-pragmatic-podcast" rel="alternate" type="text/html" />
    <title>Rails for .NET Developers now shipping + Pragmatic Podcast</title>
<content type="html">
            &lt;p&gt;We're happy to announce that our book, &lt;a href="http://pragprog.com/titles/cerailn/rails-for-net-developers"&gt;Rails for .NET Developers&lt;/a&gt;, is now shipping!  You can pick it up today in plain ol' paper, PDF, or a combo.  We hope you enjoy it as much we enjoyed writing it.&lt;/p&gt;

&lt;p&gt;Jeff and I are also featured in today's &lt;a href="http://pragprog.com/podcasts"&gt;Pragmatic Podcast&lt;/a&gt;... thanks to Susannah Pfalzer for the interview.&lt;/p&gt;
          &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=Sguw0Lf9"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=Sguw0Lf9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=16halk5l"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?i=16halk5l" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=EpIfqsgH"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/SoftiesOnRails?a=uZsJxzSz"&gt;&lt;img src="http://feeds.feedburner.com/~f/SoftiesOnRails?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/SoftiesOnRails/~4/8P587RuTyZY" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.softiesonrails.com/2008/10/15/rails-for-net-developers-now-shipping-pragmatic-podcast</feedburner:origLink></entry>
</feed>
