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

<channel>
	<title>Kickass Labs &#187; Quick Hits</title>
	<atom:link href="http://www.kickasslabs.com/category/quick-hits/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kickasslabs.com</link>
	<description>We &#9829; code.</description>
	<lastBuildDate>Wed, 28 Dec 2011 16:57:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Agile vs. No Silver Bullet</title>
		<link>http://www.kickasslabs.com/2011/12/28/agile-vs-no-silver-bullet/</link>
		<comments>http://www.kickasslabs.com/2011/12/28/agile-vs-no-silver-bullet/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 16:48:23 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Process]]></category>
		<category><![CDATA[Quick Hits]]></category>

		<guid isPermaLink="false">http://www.kickasslabs.com/?p=770</guid>
		<description><![CDATA[I&#8217;ve been returning to my source materials on Agile software development/project management methods recently, just to stay fresh. As part of my study, I ran across a blog post (more of a petulant rant, actually) that cites (actually, mentions in &#8230; <a href="http://www.kickasslabs.com/2011/12/28/agile-vs-no-silver-bullet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been returning to my source materials on Agile software development/project management methods recently, just to stay fresh.  As part of my study, I ran across a blog post (more of a petulant rant, actually) that cites (actually, mentions in passing, with no real justification) the classic Fred Brooks essay <a href="http://en.wikipedia.org/wiki/No_Silver_Bullet" title="No Silver Bullet" target="nsb"><i>No Silver Bullet</i></a> in support of the assertion that big-A Agile methods cannot possibly be better than other ways of getting software delivered.  Besides suffering from the fallacy of appeal to authority (however meritorious Mr. Brooks&#8217;s authority in our field might be), it also falls a bit flat to cite <i>NSB</i> in an anti-Scrum screed. To wit:</p>
<blockquote><p>Incremental development&#8211;grow, don&#8217;t build, software. I still remember the jolt I felt in 1958 when I first heard a friend talk about building a program, as opposed to writing one. In a flash he broadened my whole view of the software process. The metaphor shift was powerful, and accurate. Today we understand how like other building processes the construction of software is, and we freely use other elements of the metaphor, such as specifications, assembly of components, and scaffolding.</p>
<p>The building metaphor has outlived its usefulness. It is time to change again. If, as I believe, the conceptual structures we construct today are too complicated to be specified accurately in advance, and too complex to be built faultlessly, then we must take a radically different approach.</p>
<p>Let us turn nature and study complexity in living things, instead of just the dead works of man. Here we find constructs whose complexities thrill us with awe. The brain alone is intricate beyond mapping, powerful beyond imitation, rich in diversity, self-protecting, and selfrenewing. The secret is that it is grown, not built.</p>
<p>So it must be with our software-systems. Some years ago Harlan Mills proposed that any software system should be grown by incremental development. That is, the system should first be made to run, even if it does nothing useful except call the proper set of dummy subprograms. Then, bit by bit, it should be fleshed out, with the subprograms in turn being developed&#8211;into actions or calls to empty stubs in the level below.</p>
<p>I have seen most dramatic results since I began urging this technique on the project builders in my Software Engineering Laboratory class. Nothing in the past decade has so radically changed my own practice, or its effectiveness. The approach necessitates top-down design, for it is a top-down growing of the software. It allows easy backtracking. It lends itself to early prototypes. Each added function and new provision for more complex data or circumstances grows organically out of what is already there.</p>
<p>The morale effects are startling. Enthusiasm jumps when there is a running system, even a simple one. Efforts redouble when the first picture from a new graphics software system appears on the screen, even if it is only a rectangle. One always has, at every stage in the process, a working system. I find that teams can grow much more complex entities in four months than they can build.</p></blockquote>
<p>(The above is, of course, excerpted from Brooks&#8217;s essay.)</p>
<p>Iterative development that delivers frequent releases of working software, and uses feedback to determine the direction of growth for the next increment? And a report of empirical (if decidedly anecdotal) support for the notion?</p>
<p>Sounds pretty Agile to me.</p>
<p>(The full essay is available in <i><a href="http://www.amazon.com/gp/product/0201835959/ref=as_li_ss_tl?ie=UTF8&#038;tag=bradandkristshom&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0201835959" target="mmm">The Mythical Man-Month: Essays on Software Engineering</a><img src="http://www.assoc-amazon.com/e/ir?t=bradandkristshom&#038;l=as2&#038;o=1&#038;a=0201835959" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />,</i> which I recommend to anyone who writes, builds, grows, or otherwise makes software.)</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kickasslabs.com%2F2011%2F12%2F28%2Fagile-vs-no-silver-bullet%2F&amp;title=Agile%20vs.%20No%20Silver%20Bullet" id="wpa2a_2"><img src="http://www.kickasslabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kickasslabs.com/2011/12/28/agile-vs-no-silver-bullet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Hits: UIActionSheet cancel button strange behaviour</title>
		<link>http://www.kickasslabs.com/2010/07/03/uiactionsheet-cancel-button-strange-behaviour/</link>
		<comments>http://www.kickasslabs.com/2010/07/03/uiactionsheet-cancel-button-strange-behaviour/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 02:41:39 +0000</pubDate>
		<dc:creator>abel</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Quick Hits]]></category>
		<category><![CDATA[objc]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.kickasslabs.com/2010/07/03/uiactionsheet-cancel-button-strange-behaviour/</guid>
		<description><![CDATA[I just got bit by this and fixed it thanks to this StackOverflow post. http://stackoverflow.com/questions/1197746/uiactionsheet-cancel-button-strange-behaviour Long story short, if your launch an action sheet in a view that lives in a UITabBarController, the &#8220;hit&#8221; box for the cancel button gets &#8230; <a href="http://www.kickasslabs.com/2010/07/03/uiactionsheet-cancel-button-strange-behaviour/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just got bit by this and fixed it thanks to this StackOverflow post.</p>
<p><a href="http://stackoverflow.com/questions/1197746/uiactionsheet-cancel-button-strange-behaviour" target="_blank">http://stackoverflow.com/questions/1197746/uiactionsheet-cancel-button-strange-behaviour</a></p>
<p>Long story short, if your launch an action sheet in a view that lives in a UITabBarController, the &#8220;hit&#8221; box for the cancel button gets shifted in a VERY STUPID WAY!</p>
<p>The solution is to reference the view you&#8217;re displaying in by the UITabBarController like this:</p>
<pre><code>[sheet showInView:self.parentViewController.tabBarController.view];</code></pre>
<p>Freaking WOW!  Thanks a heap, Apple!</p>
<p>*grumble grumble*</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kickasslabs.com%2F2010%2F07%2F03%2Fuiactionsheet-cancel-button-strange-behaviour%2F&amp;title=Quick%20Hits%3A%20UIActionSheet%20cancel%20button%20strange%20behaviour" id="wpa2a_4"><img src="http://www.kickasslabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kickasslabs.com/2010/07/03/uiactionsheet-cancel-button-strange-behaviour/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quick Hits: Becareful when returning inc&#8217;ed vars</title>
		<link>http://www.kickasslabs.com/2010/05/01/quick-hits-becareful-when-returning-inced-vars/</link>
		<comments>http://www.kickasslabs.com/2010/05/01/quick-hits-becareful-when-returning-inced-vars/#comments</comments>
		<pubDate>Sat, 01 May 2010 05:01:44 +0000</pubDate>
		<dc:creator>abel</dc:creator>
				<category><![CDATA[MonoTouch]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Quick Hits]]></category>
		<category><![CDATA[gotcha]]></category>
		<category><![CDATA[noob]]></category>

		<guid isPermaLink="false">http://www.kickasslabs.com/?p=473</guid>
		<description><![CDATA[I noticed this in some MonoTouch code that I wrote recently, but I think it makes sense across other languages as well.  Let&#8217;s say you write a method that returns an incremented variable like this: private int MyAwesomeFunction(int pVar) { &#8230; <a href="http://www.kickasslabs.com/2010/05/01/quick-hits-becareful-when-returning-inced-vars/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I noticed this in some MonoTouch code that I wrote recently, but I think it makes sense across other languages as well.  Let&#8217;s say you write a method that returns an incremented variable like this:</p>
<p><span style="color: #0000ff;">private int</span> MyAwesomeFunction(int pVar)<br />
{<br />
<span style="color: #008000;">// coding magic</span><br />
<span style="color: #008000;"> <span style="color: #0000ff;"> return</span></span> pVar++;<br />
}</p>
<p>&#8230;where pVar = 10, the returned value will NOT be 11!  The returned value will still be 10.  If you want to return an incremented value for pVar, do the following:</p>
<p><code><span style="color: #0000ff;">private  int</span> MyAwesomeFunction(int pVar)<br />
{<br />
<span style="color: #008000;">//  coding magic</span></code><br />
<code> <span style="color: #0000ff;">return <span style="color: #000000;">++</span></span>pVar; <span style="color: #008000;">// or </span></code><span style="color: #008000;"><code>return   pVar+1</code></span>;<br />
<code>}</code></p>
<p>Just a case of postfix vs prefix.  In the previous example, the variable never gets incremented because the postfix operator would get evaluated after the line is processed, but that never happens because we&#8217;re returning the pVar.  By flipping to a prefix operator, we guarantee that we evaluate the opperator against the variable before we return it.</p>
<p>It&#8217;s also worth mentioning that being a little verbose here is also good.  Explicitly stating that you&#8217;re adding 1 to the variable (as displayed in the commented code) is the same number of characters and we eliminate the confusion over what&#8217;s getting returned.</p>
<p>Happy Coding!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kickasslabs.com%2F2010%2F05%2F01%2Fquick-hits-becareful-when-returning-inced-vars%2F&amp;title=Quick%20Hits%3A%20Becareful%20when%20returning%20inc%26%238217%3Bed%20vars" id="wpa2a_6"><img src="http://www.kickasslabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kickasslabs.com/2010/05/01/quick-hits-becareful-when-returning-inced-vars/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick Hits: Sass demands syntax perfection!</title>
		<link>http://www.kickasslabs.com/2010/01/25/quick-hits-sass-demands-syntax-perfection/</link>
		<comments>http://www.kickasslabs.com/2010/01/25/quick-hits-sass-demands-syntax-perfection/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 22:01:58 +0000</pubDate>
		<dc:creator>abel</dc:creator>
				<category><![CDATA[Quick Hits]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Sass]]></category>

		<guid isPermaLink="false">http://www.kickasslabs.com/?p=388</guid>
		<description><![CDATA[Just a quick note about sass.  Let&#8217;s say you had the following in /public/stylesheets/sass/foo.sass: body line-height:1.2em h1 color:red This would render a blank document for /public/stylesheets/foo.css.  You won&#8217;t get an error about it, you&#8217;ll just get a blank document.  Here&#8217;s &#8230; <a href="http://www.kickasslabs.com/2010/01/25/quick-hits-sass-demands-syntax-perfection/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just a quick note about sass.  Let&#8217;s say you had the following in <strong>/public/stylesheets/sass/foo.sass</strong>:</p>
<pre>body
  line-height:1.2em

h1
  color:red</pre>
<p>This would render a <span style="text-decoration: underline;">blank</span> document for <strong>/public/stylesheets/</strong><strong>foo.css</strong>.  You won&#8217;t get an error about it, you&#8217;ll just get a blank document.  Here&#8217;s the thing, when you&#8217;re declaring a CSS property, you MUST put a space after the colon.  Failing to do so will just wind up in parsing errors on the sass side.</p>
<p>I hope I&#8217;ve saved you some head scratching. <img src='http://www.kickasslabs.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kickasslabs.com%2F2010%2F01%2F25%2Fquick-hits-sass-demands-syntax-perfection%2F&amp;title=Quick%20Hits%3A%20Sass%20demands%20syntax%20perfection%21" id="wpa2a_8"><img src="http://www.kickasslabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kickasslabs.com/2010/01/25/quick-hits-sass-demands-syntax-perfection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Hits:Deploying iPhone projects to your iPhone/iPod Touch</title>
		<link>http://www.kickasslabs.com/2009/06/04/quick-hitsdeploying-iphone-projects-to-your-iphoneipod-touch/</link>
		<comments>http://www.kickasslabs.com/2009/06/04/quick-hitsdeploying-iphone-projects-to-your-iphoneipod-touch/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 12:23:39 +0000</pubDate>
		<dc:creator>abel</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Quick Hits]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://www.kickasslabs.com/?p=350</guid>
		<description><![CDATA[This process sucks. Period. To get you through the suckage, I found this article with clear and useful steps. If you&#8217;re becoming an iPhone/iPod Touch developer, this is something you NEED to read. The article presents the steps of the &#8230; <a href="http://www.kickasslabs.com/2009/06/04/quick-hitsdeploying-iphone-projects-to-your-iphoneipod-touch/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This process sucks.  Period.  To get you through the suckage, I found this article with clear and useful steps.  If you&#8217;re becoming an iPhone/iPod Touch developer, this is something you NEED to read. The article presents the steps of the deployment process in the best order possible to improve your chances at a successful push.</p>
<p><a title="Deploying iPhone apps to real devices" href="http://mobiforge.com/developing/story/deploying-iphone-apps-real-devices" target="_blank">Deploying iPhone Apps to Real Devices</a></p>
<p>Happy hacking!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kickasslabs.com%2F2009%2F06%2F04%2Fquick-hitsdeploying-iphone-projects-to-your-iphoneipod-touch%2F&amp;title=Quick%20Hits%3ADeploying%20iPhone%20projects%20to%20your%20iPhone%2FiPod%20Touch" id="wpa2a_10"><img src="http://www.kickasslabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kickasslabs.com/2009/06/04/quick-hitsdeploying-iphone-projects-to-your-iphoneipod-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Hits: A great FAQ for iPhone game developers</title>
		<link>http://www.kickasslabs.com/2009/05/30/quick-hits-a-great-faq-for-iphone-game-developers/</link>
		<comments>http://www.kickasslabs.com/2009/05/30/quick-hits-a-great-faq-for-iphone-game-developers/#comments</comments>
		<pubDate>Sat, 30 May 2009 16:51:11 +0000</pubDate>
		<dc:creator>abel</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Quick Hits]]></category>
		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://www.kickasslabs.com/?p=337</guid>
		<description><![CDATA[I came across this video from Brian Greenstone, the president and CEO of Pangea Software.  You might remember him from such iPhone games as Enigmo, Cro-Mag Rally, or Bugdom 2. He&#8217;s made a video answering &#8220;10,000 ft view&#8221; questions about &#8230; <a href="http://www.kickasslabs.com/2009/05/30/quick-hits-a-great-faq-for-iphone-game-developers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I came across this video from <span class="description">Brian Greenstone, the president and CEO of Pangea Software.  You might remember him from such iPhone games as <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=281736535&amp;mt=8">Enigmo</a>, <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=281747159&amp;mt=8">Cro-Mag Rally</a>, or <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=291322250&amp;mt=8">Bugdom 2</a>.</span></p>
<p>He&#8217;s made a video answering &#8220;10,000 ft view&#8221; questions about iPhone game development that people who are new to the platform should hear.  What he&#8217;s saying isn&#8217;t revolutionary, but it&#8217;s a lot of very good advice in 1 spot.</p>
<p><object width="560" height="340" data="http://www.youtube.com/v/jjdJR_-ftns&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/jjdJR_-ftns&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>Enjoy and happy hacking!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kickasslabs.com%2F2009%2F05%2F30%2Fquick-hits-a-great-faq-for-iphone-game-developers%2F&amp;title=Quick%20Hits%3A%20A%20great%20FAQ%20for%20iPhone%20game%20developers" id="wpa2a_12"><img src="http://www.kickasslabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kickasslabs.com/2009/05/30/quick-hits-a-great-faq-for-iphone-game-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Hits: Things to keep in mind</title>
		<link>http://www.kickasslabs.com/2009/05/17/quick-hits-things-to-keep-in-mind/</link>
		<comments>http://www.kickasslabs.com/2009/05/17/quick-hits-things-to-keep-in-mind/#comments</comments>
		<pubDate>Mon, 18 May 2009 02:32:55 +0000</pubDate>
		<dc:creator>abel</dc:creator>
				<category><![CDATA[Quick Hits]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kickasslabs.com/?p=324</guid>
		<description><![CDATA[(1) Before you unpack your gems, navigate to your vendors directory: /Users/[yourname]/[your-app]/vendor/gems: gem unpack [gem name] It isn&#8217;t the end of the world if you don&#8217;t do it ahead of time, but it does make life slightly easier. (2) Remember &#8230; <a href="http://www.kickasslabs.com/2009/05/17/quick-hits-things-to-keep-in-mind/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>(1) Before you unpack your gems, navigate to your vendors directory:</p>
<p>/Users/[yourname]/[your-app]/vendor/gems: gem unpack [gem name]</p>
<p>It isn&#8217;t the end of the world if you don&#8217;t do it ahead of time, but it does make life slightly easier.</p>
<p>(2) Remember that when you find a bug, you should write a test for the expected behavior BEFORE fixing the bug.  &#8220;The Rails Way&#8221; has a great quote about testing:</p>
<p>&#8220;It&#8217;s not that Rails encourages you to do test-driven development, it&#8217;s that it makes it difficult for you not to do test-driven development.&#8221; ~Brian Eng</p>
<p>I&#8217;ve interpreted this quote into the following mantra:</p>
<p>&#8220;It&#8217;s not that rails makes it easy to test, it that it makes you pay when you don&#8217;t&#8221;.</p>
<p>Finding a bug after creating your test suite just means that you missed a test.  Take the opportunity to correct that.</p>
<p>Happy hacking.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kickasslabs.com%2F2009%2F05%2F17%2Fquick-hits-things-to-keep-in-mind%2F&amp;title=Quick%20Hits%3A%20Things%20to%20keep%20in%20mind" id="wpa2a_14"><img src="http://www.kickasslabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kickasslabs.com/2009/05/17/quick-hits-things-to-keep-in-mind/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FasterCSV and noob-ish silliness</title>
		<link>http://www.kickasslabs.com/2009/03/23/fastercsv-and-noob-ish-silliness/</link>
		<comments>http://www.kickasslabs.com/2009/03/23/fastercsv-and-noob-ish-silliness/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 03:44:52 +0000</pubDate>
		<dc:creator>abel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Quick Hits]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[fastercsv]]></category>
		<category><![CDATA[noob]]></category>

		<guid isPermaLink="false">http://www.kickasslabs.com/?p=238</guid>
		<description><![CDATA[Here are two things I discovered this weekend: Thing 1: FasterCSV is really cool!  It&#8217;s easy to use and does exactly what it should.  Here&#8217;s Scott Becker&#8217;s exporting tutorial.  For importing, i&#8217;ve hacked together bits from Peter Larkmund&#8217;s travels and &#8230; <a href="http://www.kickasslabs.com/2009/03/23/fastercsv-and-noob-ish-silliness/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here are two things I discovered this weekend:</p>
<p><strong>Thing 1:</strong> <a href="http://fastercsv.rubyforge.org/" target="_blank">FasterCSV</a> is really cool!  It&#8217;s easy to use and does exactly what it should.  Here&#8217;s Scott Becker&#8217;s <a href="http://synthesis.sbecker.net/articles/2007/06/07/how-to-generate-csv-files-in-rails" target="_blank">exporting tutorial</a>.  For importing, i&#8217;ve hacked together bits from Peter Larkmund&#8217;s <a href="http://marklunds.com/articles/one/310" target="_blank">travels</a> and the FasterCSV <a href="http://fastercsv.rubyforge.org/classes/FasterCSV.html" target="_blank">documentation</a>.  Thanks to these tutorials, <a href="http://www.am-budget.com" target="_blank">AMB</a> will give users the ability to upload and export CSVs.</p>
<p><strong>Thing 2:</strong> Default values for the win!  If you have a table that has a column for an amount, feel free to set the default value to 0.00.  Otherwise you won&#8217;t be able to do the following:</p>
<p>a = Account.new<br />
a.amount += 20</p>
<p>&#8230;because a.amount will be nil.  You&#8217;ll throw an error and if you just updated a bunch of code, you might waste an hour trying to figure out why you&#8217;re throwing an exception.  However, if you declare a default value, you&#8217;ll be able to avoid any issues.</p>
<p>If you want me to go into further detail on either thing, just leave a comment.</p>
<p>Thanks for reading and happy hacking.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kickasslabs.com%2F2009%2F03%2F23%2Ffastercsv-and-noob-ish-silliness%2F&amp;title=FasterCSV%20and%20noob-ish%20silliness" id="wpa2a_16"><img src="http://www.kickasslabs.com/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kickasslabs.com/2009/03/23/fastercsv-and-noob-ish-silliness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

