<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
  <title>User Obsessed</title>
  
  <link href="/feed.xml" />
  <updated>2012-07-16T16:12:50-04:00</updated>
  <id>http://userobsessed.net</id>
  <author>
    <name>Joe Fiorini</name>
    <email>joe@userobsessed.net</email>
  </author>
  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/UserObsessed" /><feedburner:info uri="userobsessed" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>UserObsessed</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
    <title>Why I Love Rails 3.1 Built In Asset Packaging</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/DUFeXw7c-eM/" />
    <updated>2012-03-14T01:09:00-04:00</updated>
    <id>http://userobsessed.net/master-your-tools/2012/03/14/why-i-love-rails-3-1-built-in-asset-packaging</id>
    <content type="html">
      &lt;p&gt;For far too long, Rails&amp;rsquo; &lt;code&gt;application.js&lt;/code&gt; has been a junk drawer for Javascript. Having less files is ideal, after all it&amp;rsquo;s much faster to &lt;a href="http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/"&gt;download one large file than 10 small ones&lt;/a&gt;. The problem is, a huge file with lots of code is very difficult to maintain. It would be much easier to break that up into a number of small files, just like we do with with our Ruby code.&lt;/p&gt;

&lt;p&gt;There are a number of libraries, called &amp;ldquo;asset packagers&amp;rdquo;, that combine multiple Javascript and/or CSS files into one large file for use in production. &lt;a href="http://getsprockets.org/"&gt;Sprockets, from 37signals&lt;/a&gt; is one such library. With Sprockets we get the best of both worlds: lots of small files for developing, but only one file for the user to download. In Rails 3.1 and up, Sprockets is part of the framework so we get this helpful behavior out of the box.&lt;/p&gt;

&lt;p&gt;In Rails 3.1 and up, &lt;code&gt;application.js&lt;/code&gt; serves a new purpose. Instead of a junk drawer of spaghetti Javascript, it&amp;rsquo;s now a container of well organized client code (see &lt;a href="http://guides.rubyonrails.org/asset_pipeline.html"&gt;Ryan Bigg&amp;rsquo;s Asset Pipeline guide&lt;/a&gt; for more on how this works). This organization will make it much easier to find problems in static files (make sure you &lt;a href="http://dev.af83.com/rails/2-require-tips-rails-31-assets-bundling-sprockets/2011/06/14"&gt;set debug: true&lt;/a&gt;). You no longer have an excuse for disorganized client-side code.&lt;/p&gt;



      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/DUFeXw7c-eM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/master-your-tools/2012/03/14/why-i-love-rails-3-1-built-in-asset-packaging/</feedburner:origLink></entry>
  
  <entry>
    <title>What's new in Ruby on Rails 3.1</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/jtiZjaN91Ss/" />
    <updated>2011-05-12T07:42:00-04:00</updated>
    <id>http://userobsessed.net/master-your-tools/2011/05/12/what-s-new-in-ruby-on-rails-3-1</id>
    <content type="html">
      &lt;p&gt;In case you haven&amp;rsquo;t heard, Rails 3.1 is right around the corner. I&amp;rsquo;m very excited for the built-in asset packaging and rendering engines for Javascript and CSS templates. The patterns they are recommending will help keep my static assets more organized without hurting client-side performance. &lt;a href="http://www.railscasts.com"&gt;Ryan Bates (of Railscasts fame)&lt;/a&gt; has put together &lt;a href="https://gist.github.com/958283"&gt;a list of all the changes&lt;/a&gt; coming in the next release of Rails. Along with the asset changes, Rails 3.1 sees built-in role support for ActiveRecord models to improve your app&amp;rsquo;s security, jQuery as the default Javascript framework and much more. If you&amp;rsquo;re interested in seeing it in action watch &lt;a href="http://railscasts.com/episodes/265-rails-3-1-overview"&gt;Ryan&amp;rsquo;s Rails 3.1 overview screencast&lt;/a&gt;. With this release, the Rails team has proven they want to stay ahead of the curve. My hope is that it will help us deliver more robust software faster.&lt;/p&gt;



      
        &lt;p&gt;&lt;a href='http://userobsessed.net/master-your-tools/2011/05/12/what-s-new-in-ruby-on-rails-3-1/'&gt; ☺ Source&lt;/a&gt;&lt;/p&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/jtiZjaN91Ss" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/master-your-tools/2011/05/12/what-s-new-in-ruby-on-rails-3-1/</feedburner:origLink></entry>
  
  <entry>
    <title>Pasting in terminal Vim</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/K2zLlzOf4Ew/" />
    <updated>2011-05-10T00:12:00-04:00</updated>
    <id>http://userobsessed.net/tips-and-tricks/2011/05/10/copy-and-paste-in-vim</id>
    <content type="html">
      &lt;p&gt;&lt;ins datetime="2011-05-10T01:59:00-05:00"&gt;
UPDATE: There is great discussion going on about pasting in Vim on Hacker News. &lt;a href="http://news.ycombinator.com/item?id=2532350"&gt;Join the conversation&lt;/a&gt; if you have questions or thoughts.
&lt;/ins&gt;&lt;/p&gt;

&lt;p&gt;I like using Vim &lt;del datetime="2011-05-10T10:32:00-05:00"&gt;on the command line&lt;/del&gt; &lt;ins datetime="2011-05-10T10:32:00-05:00"&gt;in a terminal emulator&lt;/ins&gt;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt; rather than through a GUI. I&amp;rsquo;m a fairly distracted person, and I&amp;rsquo;ve found that a strong single-tasking workflow helps me stay focused. Most of my day is spent in one terminal window with one browser window open.&lt;/p&gt;

&lt;h3 id="the-problem"&gt;The problem&lt;/h3&gt;

&lt;p&gt;Unfortunately, pasting in &lt;del datetime="2011-05-10T10:32:00-05:00"&gt;command-line&lt;/del&gt; &lt;ins datetime="2011-05-10T10:32:00-05:00"&gt;terminal&lt;/ins&gt; Vim sucks. When I paste a nicely formatted block of Ruby code I end up with something like this:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="ruby"&gt;    &lt;span class="n"&gt;add_task_address&lt;/span&gt;&lt;span class="o"&gt;=&amp;lt;&lt;/span&gt;&lt;span class="no"&gt;YOUR&lt;/span&gt; &lt;span class="no"&gt;TODO&lt;/span&gt; &lt;span class="no"&gt;APP&lt;/span&gt; &lt;span class="no"&gt;EMAIL&lt;/span&gt; &lt;span class="no"&gt;ADDRESS&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="vg"&gt;$*&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="vg"&gt;$task&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
      &lt;span class="c1"&gt;# Send email with task as subject&lt;/span&gt;
      &lt;span class="n"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;mail&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="vg"&gt;$task&lt;/span&gt; &lt;span class="vg"&gt;$add_task_address&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="vg"&gt;$?&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
            &lt;span class="n"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Successfully added task &lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s2"&gt;$task&lt;/span&gt;&lt;span class="se"&gt;\&amp;quot;&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
              &lt;span class="n"&gt;fi&lt;/span&gt;
              &lt;span class="k"&gt;else&lt;/span&gt;
                &lt;span class="n"&gt;mail&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Inbox&amp;quot;&lt;/span&gt; &lt;span class="vg"&gt;$import_tasks_address&lt;/span&gt;
                &lt;span class="n"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Vim can&amp;rsquo;t determine the difference between normal keystrokes and pasted text. Therefore, certain character combinations could execute commands instead of showing up as text (GUI Vim implementations such as MacVim understand the difference). The solution is easy: tell Vim that you&amp;rsquo;re about to paste, paste, then tell Vim you&amp;rsquo;re done.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="vim"&gt;    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;ESC&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    :&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;paste&lt;/span&gt;
    &lt;span class="k"&gt;i&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;D&lt;span class="p"&gt;-&lt;/span&gt;V&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;quot; Command + v&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;ESC&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    :&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;nopaste&lt;/span&gt;
    &lt;span class="k"&gt;i&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3 id="the-solution"&gt;The solution&lt;/h3&gt;

&lt;p&gt;This works, but if you do much pasting it gets old fast. To automate this, I created a command to do it all for me:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="vim"&gt;    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;O&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;:&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;paste&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;r&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;*&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;O&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;:&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;nopaste&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;And then mapped it to &lt;code&gt;&amp;lt;Leader&amp;gt;v&lt;/code&gt; in insert mode:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="vim"&gt;    imap &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;Leader&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="k"&gt;v&lt;/span&gt;  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;O&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;:&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;paste&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="k"&gt;r&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;*&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;C&lt;span class="p"&gt;-&lt;/span&gt;O&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;:&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nb"&gt;nopaste&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;CR&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;abbr title="Note well"&gt;N.B.&lt;/abbr&gt; this command only works in Vim 7.3 or later. It&amp;rsquo;s written for insert mode, but it shouldn&amp;rsquo;t be hard to create a normal mode command that works in a similar manner.&lt;/p&gt;

&lt;h3 id="want-to-know-how-it-works"&gt;Want to know how it works?&lt;/h3&gt;

&lt;p&gt;That should give you a good excuse to get familiar with Vim&amp;rsquo;s &lt;a href="http://vimdoc.sourceforge.net/htmldoc/help.html"&gt;&lt;code&gt;:help&lt;/code&gt;&lt;/a&gt; command or &lt;a href="http://bit.ly/lnA8oD"&gt;practice Googling&lt;/a&gt;. Everything in this command is native, documented Vim. Have fun!&lt;/p&gt;

&lt;div class="footnotes"&gt;
  &lt;ol&gt;
    &lt;li id="fn:1"&gt;
      &lt;p&gt;Updated to clarify what I mean by &amp;ldquo;command-line&amp;rdquo; Vim&lt;a href="#fnref:1" rel="reference"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;


      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/K2zLlzOf4Ew" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/tips-and-tricks/2011/05/10/copy-and-paste-in-vim/</feedburner:origLink></entry>
  
  <entry>
    <title>Rapid feedback regex tester</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/2xVdyvB2WgE/" />
    <updated>2011-05-04T14:53:00-04:00</updated>
    <id>http://userobsessed.net/tips-and-tricks/2011/05/04/rapid-feedback-regex-tester</id>
    <content type="html">
      &lt;p&gt;Speaking of web-based tools to help you develop faster, &lt;a href="http://rubular.com/"&gt;Rubular&lt;/a&gt; is a regex tester to help you build and test regular expressions without having to run your app. I use this when I&amp;rsquo;m troubleshooting tricky regular expressions. The way it splits out capture groups is very nice. My only complaint is that I can only test against one string at a time. I&amp;rsquo;d like to be able to put in a few test cases and see where it fails. Maybe I should write a test for that&amp;hellip;&lt;/p&gt;



      
        &lt;p&gt;&lt;a href='http://userobsessed.net/tips-and-tricks/2011/05/04/rapid-feedback-regex-tester/'&gt; ☺ Source&lt;/a&gt;&lt;/p&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/2xVdyvB2WgE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/tips-and-tricks/2011/05/04/rapid-feedback-regex-tester/</feedburner:origLink></entry>
  
  <entry>
    <title>strftime - Never Look up a Date Format String Again</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/tmYJs-8mfjY/" />
    <updated>2011-05-03T13:51:00-04:00</updated>
    <id>http://userobsessed.net/tips-and-tricks/2011/05/03/strftime-never-look-up-a-date-format-string-again</id>
    <content type="html">
      &lt;p&gt;&lt;a href="http://strfti.me"&gt;strfti.me&lt;/a&gt; is an excellent reference for anyone who has ever had to look up the syntax to date format strings in Ruby, PHP, C or Python. Bookmark this one!&lt;/p&gt;



      
        &lt;p&gt;&lt;a href='http://userobsessed.net/tips-and-tricks/2011/05/03/strftime-never-look-up-a-date-format-string-again/'&gt; ☺ Source&lt;/a&gt;&lt;/p&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/tmYJs-8mfjY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/tips-and-tricks/2011/05/03/strftime-never-look-up-a-date-format-string-again/</feedburner:origLink></entry>
  
  <entry>
    <title>Rules from a User to Software Developers</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/VH6qdPzGhrM/" />
    <updated>2011-04-25T00:00:00-04:00</updated>
    <id>http://userobsessed.net/user-experience/2011/04/25/rules-from-a-user-to-software-developers</id>
    <content type="html">
      &lt;p&gt;Here are &lt;a href="http://brooksreview.net/2011/04/rules/"&gt;some helpful guidelines&lt;/a&gt; for developers when you need to make UI decisions. My advice: if you have access to (or can hire) a designer, then use them! If you don&amp;rsquo;t (or can&amp;rsquo;t), then please spend some time up front talking to your target demographic (or someone similar) about what you are building and how it will solve their problem. When you finish a feature, go back to them and have them try it. I promise, it will be well worth it.&lt;/p&gt;



      
        &lt;p&gt;&lt;a href='http://userobsessed.net/user-experience/2011/04/25/rules-from-a-user-to-software-developers/'&gt; ☺ Source&lt;/a&gt;&lt;/p&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/VH6qdPzGhrM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/user-experience/2011/04/25/rules-from-a-user-to-software-developers/</feedburner:origLink></entry>
  
  <entry>
    <title>The Inception Deck</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/CJeP5y21-tA/" />
    <updated>2011-04-21T00:00:00-04:00</updated>
    <id>http://userobsessed.net/process/2011/04/21/inception-deck</id>
    <content type="html">
      &lt;p&gt;Speaking of getting everyone on the same page, before you create a story map &lt;a href="http://agilewarrior.wordpress.com/2010/11/06/the-agile-inception-deck/"&gt;the Inception Deck is a great tool&lt;/a&gt; from ThoughtWorks for communicating high level goals without going into the nitty-gritty. Using this tool, you&amp;rsquo;ll discuss what&amp;rsquo;s in scope, what&amp;rsquo;s &lt;strong&gt;not&lt;/strong&gt; in scope, some technical architecture and more. I used this recently with a team and we found that everyone had a slightly unique take on the goals of the project. Now we all know what we&amp;rsquo;re building and why.&lt;/p&gt;


      
        &lt;p&gt;&lt;a href='http://userobsessed.net/process/2011/04/21/inception-deck/'&gt; ☺ Source&lt;/a&gt;&lt;/p&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/CJeP5y21-tA" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/process/2011/04/21/inception-deck/</feedburner:origLink></entry>
  
  <entry>
    <title>Getting on the Same Page</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/4PBxdvcEm0w/" />
    <updated>2011-04-20T00:00:00-04:00</updated>
    <id>http://userobsessed.net/process/2011/04/20/getting-on-the-same-page</id>
    <content type="html">
      &lt;p&gt;Jeff Patton shares his &lt;a href="http://www.agileproductdesign.com/blog/the_new_backlog.html"&gt;process of brainstorming product features&lt;/a&gt; and breaking them down into a backlog of cards. I&amp;rsquo;ve used this a couple times and found great success with it. It&amp;rsquo;s helped me better understand the problem I&amp;rsquo;m trying to solve and helped us stay on the same page, without going too far into technical details.&lt;/p&gt;


      
        &lt;p&gt;&lt;a href='http://userobsessed.net/process/2011/04/20/getting-on-the-same-page/'&gt; ☺ Source&lt;/a&gt;&lt;/p&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/4PBxdvcEm0w" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/process/2011/04/20/getting-on-the-same-page/</feedburner:origLink></entry>
  
  <entry>
    <title>What is Programmer Productivity?</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/xUrfHHn3g1Q/" />
    <updated>2011-04-18T14:00:00-04:00</updated>
    <id>http://userobsessed.net/productivity/2011/04/18/what-is-programmer-productivity</id>
    <content type="html">
      &lt;p&gt;Recently I started reflecting on some of the tools, workflows and processes I use and whether or not they are actually helping me be more productive. But how do I know if they are making me more productive? We need to go deeper.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Productivity = Value / Time
(productivity equals value divided by time)&lt;/p&gt;

  &lt;p&gt;By this definition there are two primary ways of increasing productivity:&lt;/p&gt;

  &lt;ol&gt;
    &lt;li&gt;Increase the value created&lt;/li&gt;
    &lt;li&gt;Decrease the time required to create that value&lt;/li&gt;
  &lt;/ol&gt;

  &lt;p&gt;&lt;a href="http://www.stevepavlina.com/blog/2005/10/what-is-productivity/"&gt;- &lt;cite&gt;What is productivity?&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Decreasing time is pretty obvious, but value is subjective. What is value for a programmer? The most obvious definition is &amp;ldquo;the number of features completed over time&amp;rdquo;. But when is a feature complete? When the tests pass? Sure, it&amp;rsquo;s working, but how do you know you solved the problem correctly (or solved the correct problem)? The feature isn&amp;rsquo;t done until the user tries it and says their problem is solved. Therefore, programmer productivity means solving the most problems to your user&amp;rsquo;s satisfaction.&lt;/p&gt;



      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/xUrfHHn3g1Q" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/productivity/2011/04/18/what-is-programmer-productivity/</feedburner:origLink></entry>
  
  <entry>
    <title>Do I have to use CoffeeScript?</title>
    <link href="http://feedproxy.google.com/~r/UserObsessed/~3/QyzmszBtuo4/" />
    <updated>2011-04-17T00:00:00-04:00</updated>
    <id>http://userobsessed.net/productivity/2011/04/17/do-i-have-to-use-coffeescript</id>
    <content type="html">
      &lt;blockquote&gt;
  &lt;p&gt;Rails is going to force you to use coffeescript in an upcoming version and there&amp;rsquo;s nothing you can do about it.&lt;/p&gt;

  &lt;p&gt;You have to learn coffeescript now.&lt;/p&gt;

  &lt;p&gt;It can&amp;rsquo;t be removed.&lt;/p&gt;

  &lt;p&gt;You must rewrite all existing apps to use coffeescript if you want to upgrade.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://replay.waybackmachine.org/20081227044036/http://ismerbrails.com/"&gt;In his usual style&lt;/a&gt;, &lt;a href="http://doihavetousecoffeescriptinrails.com/"&gt;Jason Seifer kindly asks us to quit fighting&lt;/a&gt; about &lt;a href="http://twitter.com/dhh/statuses/58207700672200704"&gt;CoffeeScript being integrated in Rails 3.1&lt;/a&gt;. I was squarely in the anti-CoffeScript camp at first. My argument? It&amp;rsquo;s just an abstraction on top of a language, and I&amp;rsquo;d rather just use the language itself. But then &lt;a href="http://twitter.com/joecannatti"&gt;Joe Cannatti&lt;/a&gt; reminded me that Ruby is merely an abstraction on top of C and C is an abstraction on top of assembler. Thinking about all the goodness Ruby provides has made me excited to try CoffeeScript (I haven&amp;rsquo;t yet, but will soon).&lt;/p&gt;



      
        &lt;p&gt;&lt;a href='http://userobsessed.net/productivity/2011/04/17/do-i-have-to-use-coffeescript/'&gt; ☺ Source&lt;/a&gt;&lt;/p&gt;
      
    &lt;img src="http://feeds.feedburner.com/~r/UserObsessed/~4/QyzmszBtuo4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://userobsessed.net/productivity/2011/04/17/do-i-have-to-use-coffeescript/</feedburner:origLink></entry>
  
</feed>
