<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.stevenharman.net/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
    <channel>
        <title>StevenHarman.net</title>
        <link>http://stevenharman.net/blog/Default.aspx</link>
        <description>living. learning. improving.</description>
        <language>en-US</language>
        <copyright>Steven Harman</copyright>
        <generator>Subtext Version 2.1.2.2</generator>
        <image><link>http://creativecommons.org/licenses/by/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.stevenharman.net/stevenharman" /><feedburner:info uri="stevenharman" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><feedburner:emailServiceId>stevenharman</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.stevenharman.net%2Fstevenharman" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.stevenharman.net%2Fstevenharman" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.stevenharman.net%2Fstevenharman" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.stevenharman.net/stevenharman" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.stevenharman.net%2Fstevenharman" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.stevenharman.net%2Fstevenharman" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.stevenharman.net%2Fstevenharman" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Ffeeds.stevenharman.net%2Fstevenharman" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.stevenharman.net%2Fstevenharman" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><item>
            <title>Another Git Repository Visualization, Just for Fun.</title>
            <category>Code &amp;amp; Stuff...</category>
            <link>http://stevenharman.net/blog/archive/2011/07/01/another-git-visualization-for-fun.aspx</link>
            <description>&lt;p&gt;I’ve created visualizations for Git repositories before – the one tracked a &lt;a title="Gain New Insights by Visualizing What You’ve Already Got" href="http://stevenharman.net/blog/archive/2010/02/24/gain-new-insights-by-visualizing-what-youve-already-got.aspx"&gt;product from its first commit through launch&lt;/a&gt;. And while I still think there is some information and insight to be gleaned from such visualizations, the real reason I like to make them is... I think they're neat.&lt;/p&gt;  &lt;p&gt;To celebrate launching the latest incarnation of &lt;a title="VersionOne - its pronounced Agilé!" href="http://versionone.com/" rel="external"&gt;VersionOne&lt;/a&gt;, I made another visualization! This one tracks all changes made in our Git repository that occurred between our last major release (in late February) right through the very last commit that made it into the &lt;a title="VersionOne Spring 2011 Release" href="http://www.versionone.com/release/2011/spring/" rel="external"&gt;Spring 2011 release&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Wow… that really sounded like a sales pitch, didn’t it? I hate sales pitches!&lt;/p&gt;  &lt;p&gt;Enough of that. Enjoy!&lt;/p&gt; &lt;p&gt;&lt;object width="560" height="349"&gt;&lt;param name="movie" value="https://www.youtube.com/v/fYv9XgzY9Cc?version=3&amp;amp;hl=en_US&amp;amp;rel=0" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed src="https://www.youtube.com/v/fYv9XgzY9Cc?version=3&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" width="560" height="349" allowscriptaccess="always" allowfullscreen="true" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12866.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=YlF03Li1JYc:CzhOoxqOA4o:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=YlF03Li1JYc:CzhOoxqOA4o:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=YlF03Li1JYc:CzhOoxqOA4o:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=YlF03Li1JYc:CzhOoxqOA4o:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=YlF03Li1JYc:CzhOoxqOA4o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=YlF03Li1JYc:CzhOoxqOA4o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=YlF03Li1JYc:CzhOoxqOA4o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=YlF03Li1JYc:CzhOoxqOA4o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/YlF03Li1JYc" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2011/07/01/another-git-visualization-for-fun.aspx</guid>
            <pubDate>Fri, 01 Jul 2011 19:44:32 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2011/07/01/another-git-visualization-for-fun.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12866.aspx</wfw:commentRss>
        </item>
        <item>
            <title>git pull with automatic rebase</title>
            <category>How-To-[Tech].</category>
            <category>Subtext.</category>
            <link>http://stevenharman.net/blog/archive/2011/06/09/git-pull-with-automatic-rebase.aspx</link>
            <description>&lt;div class="thumbnail right"&gt;&lt;a title="Y U NO REBASE!?!" href="https://skitch.com/stevenharman/fdhm5/y-u-no-rebase"&gt;&lt;img class="right" title="Y U NO REBASE!?!" alt="y-u-no-rebase" src="https://img.skitch.com/20110609-jhy91eh42t193wquj6ryi91ura.preview.jpg" /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;span class="smallnote"&gt;Uploaded with &lt;a href="http://skitch.com"&gt;Skitch&lt;/a&gt;!&lt;/span&gt;&lt;/div&gt;  &lt;p&gt;To rebase, or not to rebase… for me its not really a question. I generally prefer a clean, linear commit history. Why? Because merge bubbles make history confusing, noisy, break &lt;code&gt;git bisect&lt;/code&gt;.&lt;/p&gt;  &lt;p&gt;Don’t believe me? Check out the pretty log to the right. See all those merge bubbles in there? &lt;em&gt;Eww!&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;The Why?&lt;/h3&gt;  &lt;p&gt;The workflow that caused those merges was as follows:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;code&gt;git pull&lt;/code&gt; (to bring local up to date) &lt;/li&gt;    &lt;li&gt;&lt;em&gt;hackity-hack&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;&lt;code&gt;git commit&lt;/code&gt; &lt;/li&gt;    &lt;li&gt;&lt;code&gt;git pull&lt;/code&gt; &lt;/li&gt;    &lt;li&gt;&lt;code&gt;git push&lt;/code&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;By default &lt;code&gt;git pull&lt;/code&gt; will fetch any new commits from the remote, and then merge any local changes in, resulting in the merge bubbles.&lt;/p&gt;  &lt;h3&gt;A better approach&lt;/h3&gt;  &lt;p&gt;I typically use the same workflow as above with one tweak. Rather than &lt;code&gt;git pull&lt;/code&gt;, I use &lt;code&gt;git pull --rebase&lt;/code&gt;, which will fetch the remote commits, and rebase your commits on top of the new commits from the remote. This is the “re-writing” of history folks often talk about.&lt;/p&gt;  &lt;h3&gt;Make it better, automatically!&lt;/h3&gt;  &lt;p&gt;You can tell git to use rebase, rather than merge, in one of two ways, depending on your situation.&lt;/p&gt;  &lt;p&gt;To have all future branches automatically use rebase&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;$ git config branch.autosetuprebase always&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;You can add the &lt;code&gt;--global&lt;/code&gt; switch to have all future branches, in all repositories on this machine, behave this way.&lt;/p&gt;

&lt;p&gt;If, however, you have an existing branch, you’ll need&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;$ git config branch.&lt;em&gt;branch-name&lt;/em&gt;.rebase true&lt;/pre&gt;
&lt;/div&gt;

&lt;h3&gt;Get more info&lt;/h3&gt;

&lt;p&gt;Be sure to check out the &lt;a title="git-config Manual Page" href="http://www.kernel.org/pub/software/scm/git/docs/git-config.html" rel="external"&gt;git man pages&lt;/a&gt; for more info on what those options mean and when you may or may not want to use them. &lt;/p&gt;

&lt;p&gt;You might also want to check out my &lt;a title="Git Workflows" href="https://github.com/stevenharman/git-workflows" rel="external"&gt;Git Workflows repository on The GitHubs&lt;/a&gt; where you can find a Keynote presentation (or PDF in the Downloads) explaining &lt;code&gt;git rebase&lt;/code&gt; vs. &lt;code&gt;git merge&lt;/code&gt;. Complete with pictures!&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8279d716-c836-4509-b680-857a1b1c7bc5" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/git" rel="tag"&gt;git&lt;/a&gt;,&lt;a href="http://technorati.com/tags/help" rel="tag"&gt;help&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12865.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Qb8VKvJCs0s:zJBXUABrPI8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=Qb8VKvJCs0s:zJBXUABrPI8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Qb8VKvJCs0s:zJBXUABrPI8:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Qb8VKvJCs0s:zJBXUABrPI8:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Qb8VKvJCs0s:zJBXUABrPI8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=Qb8VKvJCs0s:zJBXUABrPI8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Qb8VKvJCs0s:zJBXUABrPI8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=Qb8VKvJCs0s:zJBXUABrPI8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/Qb8VKvJCs0s" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2011/06/09/git-pull-with-automatic-rebase.aspx</guid>
            <pubDate>Thu, 09 Jun 2011 15:32:50 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2011/06/09/git-pull-with-automatic-rebase.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12865.aspx</wfw:commentRss>
        </item>
        <item>
            <title>An Io (Language) Vim Plugin</title>
            <category>Me, On Software.</category>
            <link>http://stevenharman.net/blog/archive/2011/02/03/an-io-language-vim-plugin.aspx</link>
            <description>&lt;p&gt;Who here doesn't enjoy a little color in their life? I know I do, especially when used to highlight the syntax of a language - as anyone who's been around me while downing a few pints can attest!&lt;/p&gt;  &lt;h3&gt;Learning, Io, and Vim&lt;/h3&gt;  &lt;p&gt;&lt;a title="Io Syntax Highlighting in Vim" href="http://stevenharman.net/images/stevenharman_net/blog/Windows-Live-Writer/e30a4f814bbf_A188/io-syntax_4.png" rel="lightbox"&gt;&lt;img class="left" title="Io Syntax Highlighting in Vim" alt="Io Syntax Highlighting in Vim" src="http://stevenharman.net/images/stevenharman_net/blog/Windows-Live-Writer/e30a4f814bbf_A188/io-syntax_thumb_1.png" width="200" height="240" /&gt;&lt;/a&gt;In an attempt to feed our insatiable desire to learn, a few of us at &lt;a title="VersionOne: Simplifying Software Delivery" href="http://versionone.com" rel="external"&gt;VersionOne&lt;/a&gt; are doing a book club on &lt;a title="Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages" href="http://www.amazon.com/gp/product/193435659X?ie=UTF8&amp;amp;tag=stevenharman-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=193435659X" rel="external"&gt;Seven Languages in Seven Weeks&lt;/a&gt;. We’re currently working on chapter 2: &lt;a title="Io Language" href="http://iolanguage.com/" rel="external"&gt;Io&lt;/a&gt;. My current favorite editor is Vim. I wanted syntax highlighting for Io, in Vim.&lt;/p&gt;  &lt;p&gt;I found a decent Vim script to get Io syntax highlighting, and then wrote a quick &lt;code&gt;ftdetect&lt;/code&gt; script to set Io-related files to use the Io syntax. The resulting vim-io plugin is currently embedded &lt;a title="vim-io: Io, for Vim!" href="https://github.com/stevenharman/config/tree/master/.vim/bundle/vim-io" rel="external"&gt;in my dotfiles on the GitHubs&lt;/a&gt;, but if there’s interest I can pull them out into a standalone plugin.&lt;/p&gt;  &lt;p&gt;Grab it, enjoy it, fork and improve it!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:50f55353-787e-4b9b-abf6-0af6fd138759" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/vim" rel="tag"&gt;vim&lt;/a&gt;,&lt;a href="http://technorati.com/tags/io" rel="tag"&gt;io&lt;/a&gt;,&lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12864.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EyvPaQ7V6Rg:qWQcQlKXw-I:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=EyvPaQ7V6Rg:qWQcQlKXw-I:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EyvPaQ7V6Rg:qWQcQlKXw-I:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EyvPaQ7V6Rg:qWQcQlKXw-I:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EyvPaQ7V6Rg:qWQcQlKXw-I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=EyvPaQ7V6Rg:qWQcQlKXw-I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EyvPaQ7V6Rg:qWQcQlKXw-I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=EyvPaQ7V6Rg:qWQcQlKXw-I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/EyvPaQ7V6Rg" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2011/02/03/an-io-language-vim-plugin.aspx</guid>
            <pubDate>Thu, 03 Feb 2011 20:32:49 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2011/02/03/an-io-language-vim-plugin.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12864.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Caps Lock is Dumb; Make it Useful</title>
            <category>Tips &amp;amp; Tricks.</category>
            <link>http://stevenharman.net/blog/archive/2011/01/20/caps-lock-is-dumb-make-it-useful.aspx</link>
            <description>&lt;p&gt;I’ve long thought that &lt;strong&gt;Caps Lock&lt;/strong&gt; was quite dumb. Yes, I’m sure there is some archaic reason it exists, but the truth is I don’t care. I don’t find it useful and am annoyed that it’s taking up valuable room on my &lt;a title="The Home Row and Touch Typing" href="http://en.wikipedia.org/wiki/Touch_typing" rel="external"&gt;Home Row&lt;/a&gt;. The more I use Vim the more angry I get at the Caps Lock key. &lt;/p&gt;  &lt;h3&gt;Making Caps Lock Useful, on The Mac&lt;/h3&gt;  &lt;p&gt;I long ago remapped &lt;strong&gt;Caps Lock&lt;/strong&gt; to &lt;strong&gt;Esc&lt;/strong&gt; on my Mac – which worked great for &lt;a title="the missing editor" href="http://macromates.com/" rel="external"&gt;TextMate&lt;/a&gt;. However, these days I spend the majority of my time in &lt;a title="Vim for the Mac" href="http://code.google.com/p/macvim/" rel="external"&gt;Vim&lt;/a&gt; or &lt;a title="Zeee Shell" href="http://www.zsh.org/" rel="external"&gt;Zsh&lt;/a&gt; (in Vim mode) where I’d much prefer to have &lt;strong&gt;Ctrl&lt;/strong&gt; on my Home Row. Remapping &lt;strong&gt;Caps Lock&lt;/strong&gt; to &lt;strong&gt;Ctrl&lt;/strong&gt; is trivial on OS X; it’s baked in via &lt;em&gt;System Preferences &amp;gt; Keyboard Preferences &amp;gt; Modifier Keys&lt;/em&gt;.&lt;/p&gt;  &lt;h3&gt;Making Caps Lock Useful, on The Windows&lt;/h3&gt;  &lt;p&gt;To my knowledge, there is nothing baked into the &lt;acronym title="Operating System"&gt;OS&lt;/acronym&gt; that makes this easy, but there are a handful of utilities that will let you remap most keys. I opted for the Lo-Fi route - hacking the registry to remap &lt;strong&gt;Caps Lock&lt;/strong&gt; to &lt;strong&gt;Ctrl&lt;/strong&gt;.&lt;/p&gt; &lt;script src="https://gist.github.com/788631.js?file=CapsLockIsCtrl.reg"&gt;&lt;/script&gt;  &lt;p&gt;To use it, just download/save the raw &lt;em&gt;.reg&lt;/em&gt; file to your Windows box, and the run (double-click, whatever) it.&lt;/p&gt;  &lt;p&gt;And there you have it. Good bye, annoying &lt;strong&gt;Caps Lock&lt;/strong&gt;. Hello, useful stuff!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:52bd2f51-aa68-4f9d-b44c-b3da4064bbd6" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/productivity" rel="tag"&gt;productivity&lt;/a&gt;,&lt;a href="http://technorati.com/tags/mac" rel="tag"&gt;mac&lt;/a&gt;,&lt;a href="http://technorati.com/tags/windows" rel="tag"&gt;windows&lt;/a&gt;,&lt;a href="http://technorati.com/tags/vim" rel="tag"&gt;vim&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12863.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=mebQa42-N9k:NxGJ1LGZjtg:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=mebQa42-N9k:NxGJ1LGZjtg:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=mebQa42-N9k:NxGJ1LGZjtg:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=mebQa42-N9k:NxGJ1LGZjtg:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=mebQa42-N9k:NxGJ1LGZjtg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=mebQa42-N9k:NxGJ1LGZjtg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=mebQa42-N9k:NxGJ1LGZjtg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=mebQa42-N9k:NxGJ1LGZjtg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/mebQa42-N9k" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2011/01/20/caps-lock-is-dumb-make-it-useful.aspx</guid>
            <pubDate>Thu, 20 Jan 2011 21:52:49 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2011/01/20/caps-lock-is-dumb-make-it-useful.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12863.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Toil and Trouble and IE, again&amp;hellip;</title>
            <category>Code &amp;amp; Stuff...</category>
            <link>http://stevenharman.net/blog/archive/2010/12/10/toil-and-trouble-and-ie-again.aspx</link>
            <description>&lt;p&gt;Its one of those stories we’ve all heard before: you spend hours tracking down some odd-ball behavior/bug only to realize its your own stupidity coupled with inconsistencies in browsers that has caused the vein in your forehead to start throbbing. This particular story goes like this:&lt;/p&gt;  &lt;h3&gt;The Expectation&lt;/h3&gt;  &lt;p&gt;Assuming you have an HTML &lt;code&gt;form&lt;/code&gt; with a &lt;code&gt;textarea&lt;/code&gt; field, pressing the &lt;em&gt;Enter&lt;/em&gt; key &lt;strong&gt;should&lt;/strong&gt; add a new line inside the &lt;code&gt;textarea&lt;/code&gt;. Pressing the &lt;em&gt;Enter&lt;/em&gt; key in other form fields will submit the form, assuming you have a submit button, form-action, etc.&lt;/p&gt;  &lt;h3&gt;The WTF Behavior?&lt;/h3&gt;  &lt;p&gt;Given the above, Chrome, Firefox, Safari all act as expected. Internet Explorer, however, incorrectly submits the form… WTF?!?&lt;/p&gt;  &lt;h3&gt;The OMFG Cause&lt;/h3&gt;  &lt;p&gt;After way too much toil and trouble, the cause of the unexpected, and unwanted form submission was an errant &lt;code&gt;type=”text”&lt;/code&gt; attribute on the &lt;code&gt;textarea&lt;/code&gt; element. IE was correctly rendering the element as a &lt;code&gt;textarea&lt;/code&gt;, but treating it as an &lt;code&gt;&amp;lt;input type=”text” /&amp;gt;&lt;/code&gt;.&lt;/p&gt;  &lt;h3&gt;The Root Cause&lt;/h3&gt;  &lt;p&gt;A quick Git-blame showed that the &lt;code&gt;textarea&lt;/code&gt; started life as an &lt;code&gt;&amp;lt;input type=”text” /&amp;gt;&lt;/code&gt; and didn’t finish its metamorphosis, leaving behind the errant attribute. Oops!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:718b469b-104a-408c-95ec-fbef6c2d40b5" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/browsers" rel="tag"&gt;browsers&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ie" rel="tag"&gt;ie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/html" rel="tag"&gt;html&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web" rel="tag"&gt;web&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12862.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EUvNdWvMGB0:xZsPoo9SG2w:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=EUvNdWvMGB0:xZsPoo9SG2w:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EUvNdWvMGB0:xZsPoo9SG2w:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EUvNdWvMGB0:xZsPoo9SG2w:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EUvNdWvMGB0:xZsPoo9SG2w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=EUvNdWvMGB0:xZsPoo9SG2w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=EUvNdWvMGB0:xZsPoo9SG2w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=EUvNdWvMGB0:xZsPoo9SG2w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/EUvNdWvMGB0" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2010/12/10/toil-and-trouble-and-ie-again.aspx</guid>
            <pubDate>Fri, 10 Dec 2010 18:46:01 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2010/12/10/toil-and-trouble-and-ie-again.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12862.aspx</wfw:commentRss>
        </item>
        <item>
            <title>A First Step to Better User Experience: Thinking Like a Human</title>
            <category>Me, On Software.</category>
            <link>http://stevenharman.net/blog/archive/2010/12/08/a-first-step-to-better-user-experience-thinking-like-a.aspx</link>
            <description>&lt;p&gt;As we strive to build more humane user experiences it is important to not only consider what data to, or &lt;em&gt;not to&lt;/em&gt;, show, but also &lt;em&gt;how&lt;/em&gt; we present that data.&lt;/p&gt;  &lt;p&gt;An example from our recent &lt;a title="VersionOne: Conversations" href="http://versionone.com/Product/Collaboration.asp" rel="external"&gt;Conversations&lt;/a&gt; feature is the date and time at which portions of a conversation take place.&lt;/p&gt;  &lt;p&gt;&lt;a title="humate date and time via jquery.timeago" href="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/b2b34c1918ad_D6FF/fuzzy-time_2.png" rel="lightbox"&gt;&lt;img class="left" title="humate date and time via jquery.timeago" alt="humate date and time via jquery.timeago" src="http://stevenharman.net/images/stevenharman_net/blog/WindowsLiveWriter/b2b34c1918ad_D6FF/fuzzy-time_thumb_2.png" width="350" height="96" /&gt;&lt;/a&gt; Notice the two highlighted areas. The tooltip shows fully-formatted, and much more precise information, with the “less than a minute ago” text being a more fuzzy, human-friendly presentation of the same data.&lt;/p&gt;  &lt;p&gt;There is no question that the precise data is valuable, but when it comes to human users of a system, it may not be the most consumable form. The full-fidelity information is still available to the user who cares to engage the application, when he cares to engage it.&lt;/p&gt;  &lt;p&gt;Whether its fuzzy dates and time, or using avatars instead of user names, or any number of other examples, the point is to &lt;em&gt;think&lt;/em&gt; about the human experience when designing for, well, humans.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7d0c9c25-c0b8-4117-aa5e-7dfa9d724327" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;,&lt;a href="http://technorati.com/tags/software" rel="tag"&gt;software&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ux" rel="tag"&gt;ux&lt;/a&gt;,&lt;a href="http://technorati.com/tags/human" rel="tag"&gt;human&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12861.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Z09DLhC022w:XoWhJvgGzLg:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=Z09DLhC022w:XoWhJvgGzLg:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Z09DLhC022w:XoWhJvgGzLg:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Z09DLhC022w:XoWhJvgGzLg:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Z09DLhC022w:XoWhJvgGzLg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=Z09DLhC022w:XoWhJvgGzLg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Z09DLhC022w:XoWhJvgGzLg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=Z09DLhC022w:XoWhJvgGzLg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/Z09DLhC022w" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2010/12/08/a-first-step-to-better-user-experience-thinking-like-a.aspx</guid>
            <pubDate>Wed, 08 Dec 2010 21:49:51 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2010/12/08/a-first-step-to-better-user-experience-thinking-like-a.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12861.aspx</wfw:commentRss>
        </item>
        <item>
            <title>A Handful of Git Workflows for the Agilist</title>
            <category>Code &amp;amp; Stuff...</category>
            <link>http://stevenharman.net/blog/archive/2010/08/12/a-handful-of-git-workflows-for-the-agilist.aspx</link>
            <description>&lt;p&gt;A few months back I gave &lt;a title="the path to agility conference" href="http://www.thepathtoagility.org/"&gt;little talk&lt;/a&gt; on the darling &lt;acronym title="Source Control Management"&gt;SCM&lt;/acronym&gt; tool of the Open Source world, &lt;a title="Git: the fast version control system" href="http://git-scm.com/"&gt;Git&lt;/a&gt;. After the conference, the organizers asked for a copy of the presentation materials I’d used – something I usually find little value in as the content of a discussion is far more than just the collateral used.&lt;/p&gt;  &lt;p&gt;At any rate, I obliged and sent off a PDF… and in the spirit of Open Source, I’ve also &lt;a title="a handful of Git workflows for the agilist" href="http://github.com/stevenharman/git-workflows"&gt;opened the talk up&lt;/a&gt; for others to use and improve! You can find the source (Keynote presentation, images, etc.) on GitHub – where you can fork and modify the talk to your heart’s content!&lt;/p&gt;  &lt;p&gt;Oh, and the &lt;a title="download the PDF version" href="http://github.com/stevenharman/git-workflows/downloads"&gt;PDF is there&lt;/a&gt; too.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:823da7df-0003-4457-8f93-32f648136967" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/git" rel="tag"&gt;git&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Open+Source" rel="tag"&gt;Open Source&lt;/a&gt;,&lt;a href="http://technorati.com/tags/presentation" rel="tag"&gt;presentation&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12860.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=w9HXcOwOZsk:ezV2BXHUOHM:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=w9HXcOwOZsk:ezV2BXHUOHM:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=w9HXcOwOZsk:ezV2BXHUOHM:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=w9HXcOwOZsk:ezV2BXHUOHM:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=w9HXcOwOZsk:ezV2BXHUOHM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=w9HXcOwOZsk:ezV2BXHUOHM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=w9HXcOwOZsk:ezV2BXHUOHM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=w9HXcOwOZsk:ezV2BXHUOHM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/w9HXcOwOZsk" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2010/08/12/a-handful-of-git-workflows-for-the-agilist.aspx</guid>
            <pubDate>Thu, 12 Aug 2010 15:49:27 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2010/08/12/a-handful-of-git-workflows-for-the-agilist.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12860.aspx</wfw:commentRss>
        </item>
        <item>
            <title>A Handful of Great jQuery Articles&amp;hellip;</title>
            <category>Tips &amp;amp; Tricks.</category>
            <link>http://stevenharman.net/blog/archive/2010/06/22/a-handful-of-great-jquery-articles-you-should-read.aspx</link>
            <description>&lt;p&gt;… that have helped me improve both my understanding of JavaScript, and my jQuery-Fu.&lt;/p&gt;  &lt;h3&gt;General Goodness&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Custom events in jQuery open doors to complex behaviors" href="http://www.reynoldsftw.com/2009/04/custom-events-in-jquery-open-doors-to-complex-behaviors/"&gt;Custom events in jQuery open doors to complex behaviors&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Six Things Every jQuery Developer Should Know" href="http://msdn.microsoft.com/en-us/scriptjunkie/ee730275.aspx"&gt;Six Things Every jQuery Developer Should Know&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="How to Create Your Own jQuery Plugin" href="http://msdn.microsoft.com/en-us/scriptjunkie/ff608209.aspx"&gt;How to Create Your Own jQuery Plugin&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Introduction to Stateful Plugins and the Widget Factory" href="http://msdn.microsoft.com/en-us/scriptjunkie/ff706600.aspx"&gt;Introduction to Stateful Plugins and the Widget Factory&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Some Tools&lt;/h3&gt;  &lt;p&gt;I’ve also come across of few kick-ass &lt;a title="Firebug: web development evolved" href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt; plugins you won’t be able to live without.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="FireQuery: a Firebug extension for jQuery development" href="http://firequery.binaryage.com/"&gt;FireQuery&lt;/a&gt;: a Firebug extension for jQuery development &lt;/li&gt;    &lt;li&gt;&lt;a title="FireFinder: Finds HTML elements matching chosen CSS selector(s)" href="https://addons.mozilla.org/en-US/firefox/addon/11905/"&gt;FireFinder&lt;/a&gt;: Finds HTML elements matching chosen CSS selector(s) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can also check out &lt;a title="Steven Harman's jQuery hotness" href="http://delicious.com/stevenharman/jquery"&gt;my del.icio.us feed&lt;/a&gt; for my favorite jQuery resources. If you have some favorite article or resources, please link them in the comments!&lt;/p&gt;  &lt;p&gt;Remember, learning is a primary input to improving!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:256397b5-67d6-4b96-b375-b201eb4acc42" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/jQuery" rel="tag"&gt;jQuery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/javascript" rel="tag"&gt;javascript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/learning" rel="tag"&gt;learning&lt;/a&gt;,&lt;a href="http://technorati.com/tags/improvement" rel="tag"&gt;improvement&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12859.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=36qMCOQjHto:NqvPSkg9Uww:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=36qMCOQjHto:NqvPSkg9Uww:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=36qMCOQjHto:NqvPSkg9Uww:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=36qMCOQjHto:NqvPSkg9Uww:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=36qMCOQjHto:NqvPSkg9Uww:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=36qMCOQjHto:NqvPSkg9Uww:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=36qMCOQjHto:NqvPSkg9Uww:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=36qMCOQjHto:NqvPSkg9Uww:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/36qMCOQjHto" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2010/06/22/a-handful-of-great-jquery-articles-you-should-read.aspx</guid>
            <pubDate>Tue, 22 Jun 2010 18:05:33 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2010/06/22/a-handful-of-great-jquery-articles-you-should-read.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12859.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Want To Make Money? Make Getting Paid the Easy Part!</title>
            <category>Rants &amp;amp; the Lighter Side.</category>
            <link>http://stevenharman.net/blog/archive/2010/04/07/make-money-by-making-getting-paid-easy.aspx</link>
            <description>&lt;p&gt;At least half a dozen times in the past three days I’ve been so annoyed by the payment process for various goods and/or services that I either didn’t purchase the thing, or had a minor meltdown after the whole ordeal was over.&lt;/p&gt;  &lt;p&gt;Why do merchants insist on making it so damned difficult for their customers to get the goods?&lt;/p&gt;  &lt;h3&gt;A few frustrating examples&lt;/h3&gt;  &lt;p&gt;Ever been to a sporting event where the beer vendor only accept cash, has no cash-register, and yet insists on charging a partial dollar amount per unit of booze? $6.65 for a beer… really? Just call it $7 and make the math easy for everyone. Or have a cash register at each kiosk. Or, here’s a novel idea, start accepting plastic!&lt;/p&gt;  &lt;p&gt;Need to renew your vehicle registration? Just do it online! But be prepared to spend an extra $5 for the &lt;em&gt;convenience&lt;/em&gt; of, you know… actually giving them the money now rather than sending a check and them having to pay someone to physically handle the thing.&lt;/p&gt;  &lt;h3&gt;Two simple rules for making money&lt;/h3&gt;  &lt;p&gt;If you’re selling something someone wants: &lt;strong&gt;make it easy for them to give you their money!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you’re selling something someone does not want: &lt;strong&gt;make them want it!&lt;/strong&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f8ffa440-ea9b-453f-b8fe-ec6fea46d114" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/business" rel="tag"&gt;business&lt;/a&gt;,&lt;a href="http://technorati.com/tags/customers" rel="tag"&gt;customers&lt;/a&gt;,&lt;a href="http://technorati.com/tags/don't+be+dumb" rel="tag"&gt;don't be dumb&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12854.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Dcqk8mOO6jY:6zUY6YspKQ4:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=Dcqk8mOO6jY:6zUY6YspKQ4:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Dcqk8mOO6jY:6zUY6YspKQ4:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Dcqk8mOO6jY:6zUY6YspKQ4:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Dcqk8mOO6jY:6zUY6YspKQ4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=Dcqk8mOO6jY:6zUY6YspKQ4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=Dcqk8mOO6jY:6zUY6YspKQ4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=Dcqk8mOO6jY:6zUY6YspKQ4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/Dcqk8mOO6jY" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2010/04/07/make-money-by-making-getting-paid-easy.aspx</guid>
            <pubDate>Wed, 07 Apr 2010 16:20:10 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2010/04/07/make-money-by-making-getting-paid-easy.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12854.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Gain New Insights by Visualizing What You&amp;rsquo;ve Already Got</title>
            <category>Code &amp;amp; Stuff...</category>
            <link>http://stevenharman.net/blog/archive/2010/02/24/gain-new-insights-by-visualizing-what-youve-already-got.aspx</link>
            <description>&lt;p&gt;I don’t know about you, but I like pretty things. Things that engage me. Shiny things. I enjoy seeing &lt;em&gt;the same old thing&lt;/em&gt; in new and interesting ways. I suppose I’m just a visual kinda’ guy.&lt;/p&gt;  &lt;p&gt;Unfortunately, the desire for visual representation is at odds with the high bandwidth flood of information we’re subjected to these days. Even if we manage to trim the overwhelming flood of information down to a laser-focused stream, it still takes an immense amount of effort to make sense of it.&lt;/p&gt;  &lt;h3&gt;For example&lt;/h3&gt;  &lt;p&gt;For years the primary way we’ve looked at the activity or interaction within various source control management systems is via log files. Yep… plain, text-laden, indecipherable logs chock full of entries each a similitude of it’s predecessors.&lt;/p&gt;  &lt;div style="display: inline; margin-left: 1em" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:d1aa545b-b5f2-4ade-80f4-d0e8a02f7878" class="right"&gt;&lt;embed src="http://www.youtube.com/v/S_mMKXFaLaE&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999&amp;amp;hd=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355" /&gt;&lt;/div&gt;  &lt;p&gt;However, thanks to projects like &lt;a title="Processing" href="http://processing.org/" rel="external"&gt;Processing&lt;/a&gt; there may be a change on the horizon. Using tools of their ilk we can build exciting new ways to &lt;em&gt;see&lt;/em&gt; and consume the vast seas of data we’re drowning in. By visualizing the data we are able to discover new and interesting patterns, behaviors, and insights.&lt;/p&gt;  &lt;h3&gt;An example&lt;/h3&gt;  &lt;p&gt;The video to the right is an example of one such visualization I produced using &lt;a title="Gource - software version control visualization" href="http://code.google.com/p/gource/" rel="external"&gt;Gource&lt;/a&gt; to analyze the Git repository of one of the product’s we’ve build at &lt;a title="VersionOne: Simplifying Software Delivery" href="http://versionone.com/" rel="external"&gt;VersionOne&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;For reference, each branch (line) is a different directory containing files. Each leaf (dot) is a file, and different file types (Ruby, JavaScript, C#, etc.) have different colors. Each contributor is represented by their name and Gravatar.  The colored lines that occasionally connect a contributor to a file are color coded to represent adds (green), changes (orange) and deletes (red).&lt;/p&gt;  &lt;p&gt;A few interesting things this visualization leads me to think about are &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;how much churn happens in various parts of the code base? &lt;/li&gt;    &lt;li&gt;where are we spending time? &lt;/li&gt;    &lt;li&gt;is new-feature work well isolated? (perhaps an indicator of composition) &lt;/li&gt;    &lt;li&gt;are there &lt;em&gt;specialists&lt;/em&gt; within the team? &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Do any interesting things pop to mind when you watch the video? Let me know by leaving a comment.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c1ab8f24-aa59-4e71-8c07-fd37e9392446" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/gource" rel="tag"&gt;gource&lt;/a&gt;,&lt;a href="http://technorati.com/tags/git" rel="tag"&gt;git&lt;/a&gt;,&lt;a href="http://technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;,&lt;a href="http://technorati.com/tags/visualization" rel="tag"&gt;visualization&lt;/a&gt;&lt;/div&gt;&lt;img src="http://stevenharman.net/blog/aggbug/12836.aspx" width="1" height="1" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=4buF5w_jPvQ:UW_XnSad7Ts:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=4buF5w_jPvQ:UW_XnSad7Ts:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=4buF5w_jPvQ:UW_XnSad7Ts:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=4buF5w_jPvQ:UW_XnSad7Ts:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=4buF5w_jPvQ:UW_XnSad7Ts:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=4buF5w_jPvQ:UW_XnSad7Ts:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.stevenharman.net/~ff/stevenharman?a=4buF5w_jPvQ:UW_XnSad7Ts:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/stevenharman?i=4buF5w_jPvQ:UW_XnSad7Ts:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/stevenharman/~4/4buF5w_jPvQ" height="1" width="1"/&gt;</description>
            <dc:creator>Steven Harman</dc:creator>
            <guid isPermaLink="false">http://stevenharman.net/blog/archive/2010/02/24/gain-new-insights-by-visualizing-what-youve-already-got.aspx</guid>
            <pubDate>Wed, 24 Feb 2010 21:11:21 GMT</pubDate>
            <comments>http://stevenharman.net/blog/archive/2010/02/24/gain-new-insights-by-visualizing-what-youve-already-got.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://stevenharman.net/blog/comments/commentRss/12836.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>

