<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Curt's Software Blog</title>
	<atom:link href="http://csummers.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://csummers.com</link>
	<description>on ruby, design, and development</description>
	<pubDate>Mon, 28 Jul 2008 00:26:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>warning: default `to_a&#8217; will be obsolete</title>
		<link>http://csummers.com/2008/07/26/warning-default-to_a-will-be-obsolete/</link>
		<comments>http://csummers.com/2008/07/26/warning-default-to_a-will-be-obsolete/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 21:30:15 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
		
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://csummers.com/?p=9</guid>
		<description><![CDATA[Apparently Object.to_a will eventually be obsolete (not sure when).  I was using it in the following context:

def foo&#40;args&#41;
  args.to_a.join&#40;','&#41;
end

According to this very old ruby-lang thread, this [*args] is a suitable alternative:

def foo&#40;args&#41;
  &#91;*args&#93;.join&#40;','&#41;
end

]]></description>
			<content:encoded><![CDATA[<p>Apparently <a href="http://ruby-doc.org/core/classes/Object.html#M000628">Object.to_a</a> will eventually be obsolete (not sure when).  I was using it in the following context:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#9966CC; font-weight:bold;">def</span> foo<span style="color:#006600; font-weight:bold;">&#40;</span>args<span style="color:#006600; font-weight:bold;">&#41;</span>
  args.<span style="color:#9900CC;">to_a</span>.<span style="color:#9900CC;">join</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">','</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>According to <a href="http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/931de58e7189d355">this very old ruby-lang thread</a>, this [*args] is a suitable alternative:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#9966CC; font-weight:bold;">def</span> foo<span style="color:#006600; font-weight:bold;">&#40;</span>args<span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">*</span>args<span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">join</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">','</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2008/07/26/warning-default-to_a-will-be-obsolete/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Learning git</title>
		<link>http://csummers.com/2008/07/26/learning-git/</link>
		<comments>http://csummers.com/2008/07/26/learning-git/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 11:54:50 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
		
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://csummers.com/?p=8</guid>
		<description><![CDATA[What?&#8230;you&#8217;re not using git yet? Everybody&#8217;s doing it.  It&#8217;s all the rage (at least for Rubyists)!
I finally blocked out everything else for a few hours yesterday afternoon to learn git.  A couple of observations coming from SVN:

The use of SHA1 hashes to identify revisions will take some time to get used to, but it appeals [...]]]></description>
			<content:encoded><![CDATA[<p>What?&#8230;you&#8217;re not using <a href="http://git.or.cz/">git</a> yet? <a href="http://git.or.cz/gitwiki/GitProjects">Everybody</a>&#8217;s doing it.  It&#8217;s <a href="http://www.rubyinside.com/git-and-ruby-git-tutorials-articles-and-links-for-rubyists-860.html">all the rage</a> (at least for Rubyists)!</p>
<p>I finally blocked out everything else for a few hours yesterday afternoon to learn git.  A couple of observations coming from SVN:</p>
<ul>
<li>The use of SHA1 hashes to identify revisions will take some time to get used to, but it appeals greatly to my inner geek.</li>
<li>No central repository (every clone is the full repository) makes me feel safer about my data somehow.</li>
<li>If you want a central repository like svn, use &#8220;git push &lt;repo-url&gt;&#8221;</li>
</ul>
<p>There are lots of resources and tutorials out there, but I found the <a href="http://git.or.cz/course/svn.html">SVN Crash Course</a> coupled with git&#8217;s own help pages &#8220;git &lt;command&gt; &#8211;help&#8221; to be all I needed.</p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2008/07/26/learning-git/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ramp up your testing for Safari/Webkit</title>
		<link>http://csummers.com/2007/11/07/ramp-up-your-testing-for-safariwebkit/</link>
		<comments>http://csummers.com/2007/11/07/ramp-up-your-testing-for-safariwebkit/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 12:55:16 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[android]]></category>

		<category><![CDATA[browsers]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[safari]]></category>

		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://csummers.com/?p=7</guid>
		<description><![CDATA[Do you test in Safari with the same priority as other browsers? If not, you might should start making it a part of your routine.  According to an article on Rob Pegoraro&#8217;s Faster Forward blog, Google&#8217;s new mobile OS, Android, contains a browser &#8220;built on the same open-source WebKit software as the Safari browser [...]]]></description>
			<content:encoded><![CDATA[<p>Do you test in Safari with the same priority as other browsers? If not, you might should start making it a part of your routine.  According to an <a href="http://blog.washingtonpost.com/fasterforward/2007/11/analyzing_googles_android_1.html">article on Rob Pegoraro&#8217;s Faster Forward blog</a>, Google&#8217;s new mobile OS, Android, contains a browser &#8220;built on the same open-source <a href="http://webkit.org/">WebKit</a> software as the Safari browser in Mac OS X and the iPhone.&#8221;</p>
<p>If Google can accomplish what they hope to with Android, namely, to be <em>the</em> mobile operating system, then developers will have yet another target browser to test for.  I&#8217;m not complaining, though, Safari/Webkit is a great browser.  And, as long as it maintains good adherence to web standards the additional testing only serves to better our web applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2007/11/07/ramp-up-your-testing-for-safariwebkit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New development blog</title>
		<link>http://csummers.com/2007/11/05/new-development-blog/</link>
		<comments>http://csummers.com/2007/11/05/new-development-blog/#comments</comments>
		<pubDate>Mon, 05 Nov 2007 11:27:51 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
		
		<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://csummers.com/?p=6</guid>
		<description><![CDATA[I&#8217;ve set up shop here with a new blog to focus on software development.  I&#8217;ll be porting some of my related posts from my personal blog over the next few days/weeks.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve set up shop here with a new blog to focus on software development.  I&#8217;ll be porting some of my related posts from my <a href="http://www.csummers.org/index.php/category/programming/">personal blog</a> over the next few days/weeks.</p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2007/11/05/new-development-blog/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ActiveYahoo: A Ruby API for Yahoo! Web Services</title>
		<link>http://csummers.com/2007/11/04/activeyahoo-a-ruby-api-for-yahoo-web-services/</link>
		<comments>http://csummers.com/2007/11/04/activeyahoo-a-ruby-api-for-yahoo-web-services/#comments</comments>
		<pubDate>Mon, 05 Nov 2007 02:31:08 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
		
		<category><![CDATA[ruby]]></category>

		<category><![CDATA[activeyahoo]]></category>

		<guid isPermaLink="false">http://csummers.com/?p=5</guid>
		<description><![CDATA[Do you Yahoo?  I do, and was recently a little disappointed in the Ruby offerings for the Yahoo Web Services API.  So, a little coding and we have ActiveYahoo:

require 'active_yahoo'
y = ActiveYahoo::WebSearch.new&#40;‘YOUR_APP_ID’, ‘ruby’, &#123; :results =&#62; 2 &#125;&#41;
y.result.total_results_returned  # =&#62; 2
y.result.records&#91;0&#93;.title  # =&#62; &#34;Ruby-lang.org&#34;
y.result.records.map &#123; &#124;r&#124; r.url &#125;
#  =&#62;  [...]]]></description>
			<content:encoded><![CDATA[<p>Do you Yahoo?  I do, and was recently a little disappointed in the Ruby offerings for the Yahoo Web Services API.  So, a little coding and we have ActiveYahoo:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'active_yahoo'</span>
y = <span style="color:#6666ff; font-weight:bold;">ActiveYahoo::WebSearch</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>‘YOUR_APP_ID’, ‘ruby’, <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#ff3333; font-weight:bold;">:results</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">2</span> <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
y.<span style="color:#9900CC;">result</span>.<span style="color:#9900CC;">total_results_returned</span>  <span style="color:#008000; font-style:italic;"># =&gt; 2</span>
y.<span style="color:#9900CC;">result</span>.<span style="color:#9900CC;">records</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">title</span>  <span style="color:#008000; font-style:italic;"># =&gt; &quot;Ruby-lang.org&quot;</span>
y.<span style="color:#9900CC;">result</span>.<span style="color:#9900CC;">records</span>.<span style="color:#9900CC;">map</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>r<span style="color:#006600; font-weight:bold;">|</span> r.<span style="color:#9900CC;">url</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#008000; font-style:italic;">#  =&gt;  [&quot;http://www.ruby-lang.org/en&quot;, &quot;http://en.wikipedia.org/wiki/Ruby_programming_language&quot;]</span></pre></div></div>

<p>A primary objective of ActiveYahoo is to encapsulate Yahoo‘s responses into their own objects. For example, an instance of the WebSearch class will return a WebSearchResult object. Special care is also given to convert response fields into appropriate Ruby data types.</p>
<p>So far, the following Search services have been implemented:  Web, News, Images, Audio, and Video.  More will follow soon. The essentials are on Rubyforge here:</p>
<p><a href="http://rubyforge.org/projects/activeyahoo/">View the ActiveYahoo project page</a><br />
<a href="http://activeyahoo.rubyforge.org/">View the documentation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2007/11/04/activeyahoo-a-ruby-api-for-yahoo-web-services/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Monotony vs. Usability Luster</title>
		<link>http://csummers.com/2007/11/03/monotony-vs-usability-luster/</link>
		<comments>http://csummers.com/2007/11/03/monotony-vs-usability-luster/#comments</comments>
		<pubDate>Sat, 03 Nov 2007 16:39:57 +0000</pubDate>
		<dc:creator>Curt</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://csummers.com/?p=3</guid>
		<description><![CDATA[I think there is an interesting dynamic that occurs when a developer is freed up from the monotony of the development process.  Specifically, there is a direct consequence on the usability of a product when a developer&#8217;s progress in slowed by monotonous tasks.
As a developer, I&#8217;d love to claim that my initial design intentions [...]]]></description>
			<content:encoded><![CDATA[<p>I think there is an interesting dynamic that occurs when a developer is freed up from the monotony of the development process.  Specifically, there is a direct consequence on the usability of a product when a developer&#8217;s progress in slowed by monotonous tasks.</p>
<p>As a developer, I&#8217;d love to claim that my initial design intentions (sketches/wireframes, task flow) are spot-on every time.  Ha! Let&#8217;s be realistic: creating a good user experience is hard to do.</p>
<p>It is often the case that the product is near a finished state before some usability issues are encountered.  In other words, the product may be feature-complete, and deemed releasable, but it&#8217;s that extra effort towards usability that can really make a product shine.</p>
<p>What can we do as developers to make sure our end product has that finishing touch?  Or, more specifically, what blockers exist to keep us from achieving this goal?</p>
<p>I&#8217;d suggest monotony is a key blocker:</p>
<p><img src="http://csummers.com/wp-content/uploads/2007/11/monotony_vs_usability.png" alt="Monotony vs Usability Luster" /></p>
<p>Let&#8217;s define our two forces at play:</p>
<ul>
<li>Monotony - any repetitive, tedious process, task, or routine that drags down creativity during the development process</li>
<li>Usability Luster - the extra, finishing touches on a product that exponentially elevate the product&#8217;s usability</li>
</ul>
<p>For a developer, more monotony means less time and space (grey matter space) to cope with finishing touches.  If, as a developer, I feel like a cubicle code monkey all day, every day, then that is affecting my ability to push out a quality user experience.</p>
<p>How can we combat monotony?</p>
<ul>
<li>Use tools that reduce monotony and increase productivity
<ul>
<li>Rails comes to mind</li>
</ul>
<ul>
<li>A good IDE</li>
</ul>
</li>
<li>Use good programming technique
<ul>
<li>DRY (Don&#8217;t Repeat Yourself)</li>
</ul>
<ul>
<li>Design Patterns (where appropriate)</li>
</ul>
<ul>
<li>Test (reduce your stress level by testing)</li>
</ul>
</li>
<li>Get a cheerleader
<ul>
<li> Find that guy/gal who encourages you through the monotony</li>
</ul>
</li>
</ul>
<p>What do you do to get through the monotony?  What other techniques do you use to ensure that little something extra for the user experience?</p>
]]></content:encoded>
			<wfw:commentRss>http://csummers.com/2007/11/03/monotony-vs-usability-luster/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
