<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Nurture your inner geek</title>
	<atom:link href="http://increaseyourgeek.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://increaseyourgeek.wordpress.com</link>
	<description>become one with the nerdness</description>
	<lastBuildDate>Fri, 20 Jan 2012 15:14:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='increaseyourgeek.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Nurture your inner geek</title>
		<link>http://increaseyourgeek.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://increaseyourgeek.wordpress.com/osd.xml" title="Nurture your inner geek" />
	<atom:link rel='hub' href='http://increaseyourgeek.wordpress.com/?pushpress=hub'/>
		<item>
		<title>let(:me) {get(that).for(you)}</title>
		<link>http://increaseyourgeek.wordpress.com/2012/01/09/letme-getthat-foryou/</link>
		<comments>http://increaseyourgeek.wordpress.com/2012/01/09/letme-getthat-foryou/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 16:16:06 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[behavior driven development]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[test driven development]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/?p=742</guid>
		<description><![CDATA[Before blocks in rspec are good for factoring out certain types of common setup (stubs, in particular.) However, they are not the ideal solution for every test setup need. For example, they&#8217;re commonly abused to create one or more instance variables that are used as test data, or assertions are made against them, etc. Rspec [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=742&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Before blocks in rspec are good for factoring out certain types of common setup (stubs, in particular.) However, they are not the ideal solution for every test setup need. For example, they&#8217;re commonly abused to create one or more instance variables that are used as test data, or assertions are made against them, etc.</p>
<div><img title="Shared Setup" src="http://increaseyourgeek.files.wordpress.com/2012/01/screen-shot-2012-01-09-at-7-54-22-am.png?w=318&#038;h=272" alt="Typical shared setup block in rspec" width="318" height="272" /></div>
<p>Rspec provides another (and sadly perhaps lesser known) facility for accomplishing the same end in a more efficient fashion. The lazily evaluated let(:symbol) {block} provides a way to extract objects (especially the current system under test), especially those which are used in multiple examples within one or more describe blocks, but perhaps not every example within a given describe or context.</p>
<p>The reason this is more efficient than an instance variable in a before block is that before blocks are executed on each test run, so those data values instantiated regardless, times n examples. That&#8217;s assignment cost, memory cost, and parsing cost.</p>
<p>Lazily evaluated blocks only incur cost when they are used. That is to say the parse cost is incurred regardless, but assignment and memory cost are only incurred in the examples which use the values returned by the instance methods that let() creates. It is easy to factor example 1 to use let blocks instead of a before block (and looks cleaner, in my opinion.)</p>
<div><img title="Shared setup refactored using let()" src="http://increaseyourgeek.files.wordpress.com/2012/01/screen-shot-2012-01-09-at-7-55-01-am.png?w=325&#038;h=210" alt="Shared setup, using let()" width="325" height="210" /></a></div>
<p>Another benefit is that lazy evaluation provides a facility to pass different data in from each spec, since the block is evaluated when the method is called, which can be after some individual setup occurs.</p>
<div><img title="Shared setup, different data" src="http://increaseyourgeek.files.wordpress.com/2012/01/screen-shot-2012-01-09-at-9-00-09-am.png?w=417&#038;h=400" alt="Let blocks allow for flexible common setup definition" width="417" height="400" /></a></div>
<p>As you can see, let() can be a very powerful and useful construct, if properly employed. I first discovered let() in a slide deck entitled <a title="Pure RSpec" href="http://pure-rspec-scotruby.heroku.com/" target="_blank">Pure RSpec</a>. Check it out for this and other fun RSpec goodness, and as always, happy hacking!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/742/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=742&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2012/01/09/letme-getthat-foryou/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>

		<media:content url="http://increaseyourgeek.files.wordpress.com/2012/01/screen-shot-2012-01-09-at-7-54-22-am.png" medium="image">
			<media:title type="html">Shared Setup</media:title>
		</media:content>

		<media:content url="http://increaseyourgeek.files.wordpress.com/2012/01/screen-shot-2012-01-09-at-7-55-01-am.png" medium="image">
			<media:title type="html">Shared setup refactored using let()</media:title>
		</media:content>

		<media:content url="http://increaseyourgeek.files.wordpress.com/2012/01/screen-shot-2012-01-09-at-9-00-09-am.png" medium="image">
			<media:title type="html">Shared setup, different data</media:title>
		</media:content>
	</item>
		<item>
		<title>Test Generators, and Other Thoughts on Style.</title>
		<link>http://increaseyourgeek.wordpress.com/2011/08/17/test-generators-and-other-thoughts-on-style/</link>
		<comments>http://increaseyourgeek.wordpress.com/2011/08/17/test-generators-and-other-thoughts-on-style/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 16:42:09 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/?p=728</guid>
		<description><![CDATA[For a time, I paired with someone who convinced me that whitespace between example blocks was superflous and so wound up with a bunch of specs like: it "should define ACTIVITY_LEVELS" do Game::ACTIVITY_LEVELS.should == %w{ Low Medium High } end it "should define FORMATIONS" do Game::FORMATIONS.should == %w{ Circle Lines Scattered None } end it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=728&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For a time, I paired with someone who convinced me that whitespace between example blocks was superflous and so wound up with a bunch of specs like:</p>
<pre>it "should define ACTIVITY_LEVELS" do
  Game::ACTIVITY_LEVELS.should == %w{ Low Medium High }
end
it "should define FORMATIONS" do
  Game::FORMATIONS.should == %w{ Circle Lines Scattered None }
end
it "should define LOCATIONS" do
  Game::LOCATIONS.should == %w{ Indoor Outdoor }
end</pre>
<p>which now bothers me; whitespace separation between example blocks feels more idiomatic. In fact, someone asked me after seeing those specs &#8220;are you in a fight with whitespace?&#8221; I am not.</p>
<p>Also, I don&#8217;t like &#8220;should&#8221; in descriptions. Too wishy-washy sounding, and again, superflous. Speaking of superflous, spaces between curly brackets and their contents&#8230; they are it.</p>
<p>Really, does reading the first example require that much more effort than the second?</p>
<pre>{ :some_key =&gt; "some value" }</pre>
<p>vs</p>
<pre>{:some_key =&gt; "some value"}</pre>
<p>Call me crazy but it saves two keystrokes and just looks better to me without the spaces. Style call. YMMV.</p>
<p>Another thought on idiomatic tests for equality in Rspec examples suggests using the appropriate &#8220;eq&#8221; and &#8220;eql&#8221; matchers instead of the equality operator (&#8220;==&#8221;) so that&#8217;s made its way into muscle memory lately as well.</p>
<p>So, given the above, were I to refactor or rewrite those specs today, they would look like this:</p>
<pre>it "defines ACTIVITY_LEVELS" do
  Game::ACTIVITY_LEVELS.should eql(%w{Low Medium High})
end

it "defines FORMATIONS" do
  Game::FORMATIONS.should eql(%w{Circle Lines Scattered None})
end

it "defines LOCATIONS" do
  Game::LOCATIONS.should eql(%w{Indoor Outdoor})
end</pre>
<p>Looks a bit cleaner to me, probably good enough.</p>
<p>However, since the description isn&#8217;t really giving us any brilliant insights about the behaviour the specs are verifying, those examples could probably be factored into specify blocks:</p>
<pre>specify {Game::ACTIVITY_LEVELS.should eql(%w{Low Medium High})}
specify {Game::FORMATIONS.should eql(%w{Circle Lines Scattered None})}
specify {Game::LOCATIONS.should eql(%w{Indoor Outdoor})}</pre>
<p>It&#8217;s terse, but still pretty readable and obvious to most people who are familiar with Rspec (and we know our tools, right, so that&#8217;s not an issue.)</p>
<p>That is probably a reasonable stopping point, providing it makes sense to leave those as explicit examples. However, were we to add a few more examples, it might be sensible to consider rolling them into a test generator. It can be a useful pattern, especially if you are testing the initialization of many attributes for e.g. an API call, or some similar thing.</p>
<p>While this may not be the ideal example, here&#8217;s what that might look like in the context of the above specs:</p>
<pre>constants = {:activity_levels =&gt; %w{Low Medium High},
             :durations =&gt; ["5 to 15", "15 plus", "below 5"],
             :formations =&gt; %w{Indoor Outdoor}}

constants.each {|key,val| specify {Game.const_get("#{key.upcase}").should eql(val)}}</pre>
<p>In this case it actually adds a line, and again these particular specs are simple enough that leaving them as three individual calls to specify is not a huge deal, but imagine you were testing something like the mapping and initialization of an object from the result of an api call;</p>
<pre>result_hash = {:some_key =&gt; "some value",
               :some_other_key =&gt; "some other value",
               :another_key =&gt; "another value",
               :yet_another_key =&gt; "yet another value",
               :more_key_fun =&gt; "more value fun",
               :moar_object =&gt; "moar stuff"}

it "maps some_key to some value" do
  SomeApiWrapper.new_from_api_result(result_hash).some_key.should eql("some value")
end

it "maps some_other_key to some other value" do
  SomeApiWrapper.new_from_api_result(result_hash).some_other_key.should eql("some value")
end</pre>
<p>&#8230; and so on. Again, taking into account that this is a made-up example, consider that explicitly specifying that all 6 of the expected keys are properly initialized would require 18 lines of code, plus whitespace. Yes, you could build the object and assert that the result of the method you&#8217;re testing returns an equivalent object, but sometimes that isn&#8217;t as easy as it sounds, or you only need to test certain attributes&#8230; Point being, if you&#8217;re writing specs like those, you might consider using a generator, like this:</p>
<pre>result_hash = {:some_key =&gt; "some value",
               :some_other_key =&gt; "some other value",
               :another_key =&gt; "another value",
               :yet_another_key =&gt; "yet another value",
               :more_key_fun =&gt; "more value fun",
               :moar_object =&gt; "moar stuff"}

result_hash.each do |key,value|
  it "maps #{key} to #{value}" do
    SomeApiWrapper.new_from_api_result(result_hash).send("#{some_key}").should eql("some value")
  end
end</pre>
<p>And save ourselves some typing, some reading, and some duplicationey stuff. Since we&#8217;re kind of on a roll here, let&#8217;s save ourselves some method calls too by moving the actual call out of the example:</p>
<pre>result_hash = {:some_key =&gt; "some value",
               :some_other_key =&gt; "some other value",
               :another_key =&gt; "another value",
               :yet_another_key =&gt; "yet another value",
               :more_key_fun =&gt; "more value fun",
               :moar_object =&gt; "moar stuff"}

actual_result = SomeApiWrapper.new_from_api_result(result_hash)

result_hash.each do |key,value|
  it "maps #{key} to #{value}" do
    actual_result.send("#{some_key}").should eql("some value")
  end
end</pre>
<p>Congratulations. Our spec is now precious few microseconds faster. Imagine if that method were more computationally intensive, however. The longer that method call takes, the more time that one little change saves.</p>
<p>The last thing bothering me about that spec is the questionable value of explicitly <strong>specifying</strong> that it maps some key to some value. We could probably use the &#8220;specify&#8221; method and clean things up just that much more&#8230; this is DEFINITELY a style issue however, because the following is quite terse and may be difficult for some people to read, or understand what the spec code is really doing:</p>
<pre>result_hash = {:some_key =&gt; "some value",
               :some_other_key =&gt; "some other value",
               :another_key =&gt; "another value",
               :yet_another_key =&gt; "yet another value",
               :more_key_fun =&gt; "more value fun",
               :moar_object =&gt; "moar stuff"}

actual_result = SomeApiWrapper.new_from_api_result(result_hash)

result_hash.each do |key,value|
  specify {actual_result.send("#{some_key}").should eql("some value")}
end</pre>
<p>That looks pretty clean, from here. All of that said, writing for readability is never bad, some duplication in test code is usually acceptable, and use your discretion about how &#8220;clever&#8221; or dense it makes sense for your specs to be. As long as you&#8217;re writing them, you&#8217;re that much better off than someone who isn&#8217;t.</p>
<p>Again, allow me to reiterate that these are largely matters of preference and style, and are by no means to be taken as anything but. That said, feel free to share your rants, raves, questions or flame war inciting opinions below.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/728/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/728/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/728/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/728/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/728/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/728/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/728/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/728/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/728/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/728/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/728/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/728/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/728/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/728/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=728&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2011/08/17/test-generators-and-other-thoughts-on-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>
	</item>
		<item>
		<title>Google Maps are easy.</title>
		<link>http://increaseyourgeek.wordpress.com/2011/07/27/google-maps-are-easy/</link>
		<comments>http://increaseyourgeek.wordpress.com/2011/07/27/google-maps-are-easy/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 21:21:45 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[hacklife]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/2011/07/27/google-maps-are-easy/</guid>
		<description><![CDATA[Enter a starting address, category for a destination (Restaurants, Auto Repair, Grocery Stores), then add another destination address. This makes it very easy to find places that are conveniently located or plan a route to many destinations.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=726&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Enter a starting address, category for a destination (Restaurants, Auto Repair, Grocery Stores), then add another destination address. </p>
<p>This makes it very easy to find places that are conveniently located or plan a route to many destinations.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/726/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=726&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2011/07/27/google-maps-are-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>
	</item>
		<item>
		<title>Did you know @hypem&#8230;</title>
		<link>http://increaseyourgeek.wordpress.com/2011/05/15/did-you-know-hypem/</link>
		<comments>http://increaseyourgeek.wordpress.com/2011/05/15/did-you-know-hypem/#comments</comments>
		<pubDate>Mon, 16 May 2011 04:36:08 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/?p=706</guid>
		<description><![CDATA[&#8230; exposes resources via a RESTful JSON api? Well, they do. RSS, too. Some of their playlists bear the following text: &#8220;Information on this page is available in RSS and JSON formats for non-commercial, attributed use (CC).&#8221; Viewing the page source reveals a hyperlink: &#60;a class="rss" title="Use computer software to read this page" href="/playlist/subscriptions/seeflanigan/json/1/data.js"&#62; JSON [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=706&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230; exposes resources via a RESTful JSON api? Well, they do. RSS, too. Some of their playlists bear the following text: </p>
<p>&#8220;Information on this page is available in RSS and JSON formats for non-commercial, attributed use (CC).&#8221;</p>
<p>Viewing the page source reveals a hyperlink: </p>
<p><code>&lt;a class="rss" title="Use computer software to read this page" href="/playlist/subscriptions/seeflanigan/json/1/data.js"&gt;<br />
JSON<br />
&lt;/a&gt;<br />
</code></p>
<p>The &#8220;Latest&#8221; feed is exposed as &#8220;/playlist/subscriptions/[yourusername]/json/[pagenumber]/data.js&#8221;</p>
<p>Your &#8220;Loved&#8221; songs are available as &#8220;/playlist/loved/[yourusername]/json/[pagenumber]/data.js&#8221;</p>
<p>The &#8220;Popular&#8221; feed is at &#8220;/playlist/popular/3day/json/[pagenumber]/data.js&#8221; </p>
<p>Lastly, but certainly not least of all, there is a search api. Most excellent. &#8220;/playlist/search/[somesearchkey]/json/data.js&#8221;</p>
<p>If you dig around and come up with cool stuff or figure out more ways to interact with their api (or better yet, find their api documentation), please share it here? </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/706/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=706&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2011/05/15/did-you-know-hypem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>
	</item>
		<item>
		<title>Useful: Ext4 on OSX 10.6</title>
		<link>http://increaseyourgeek.wordpress.com/2011/05/15/useful-ext4-on-osx-10-6/</link>
		<comments>http://increaseyourgeek.wordpress.com/2011/05/15/useful-ext4-on-osx-10-6/#comments</comments>
		<pubDate>Mon, 16 May 2011 02:40:11 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/?p=704</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=704&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://noenieto.com/blog/accessing-ext4-volumes-on-macos-x" title="Accesing Ext4 volumes on OSX 10.6" target="_blank"></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/704/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/704/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/704/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/704/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/704/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/704/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/704/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/704/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/704/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/704/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/704/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/704/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/704/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/704/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=704&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2011/05/15/useful-ext4-on-osx-10-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>
	</item>
		<item>
		<title>Nmap or gtfo</title>
		<link>http://increaseyourgeek.wordpress.com/2011/03/28/nmap-or-gtfo/</link>
		<comments>http://increaseyourgeek.wordpress.com/2011/03/28/nmap-or-gtfo/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 02:43:36 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[Open Source Software]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/?p=699</guid>
		<description><![CDATA[How to scan a remote host with nmap. <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=699&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When setting up a new server for a Rails application, it is a good idea to see what ports are open in order to configure appropriate firewall rules. </p>
<p>An open source tool called &#8216;<a href="http://nmap.org/book/man.html" target="_blank">nmap</a>&#8216; comes in real handy for just such a thing! </p>
<p>After installing nmap (<code>$ sudo apt-get install nmap</code> on Ubuntu,) running a basic scan against a remote host is simple:<br />
<code>$ nmap [ip of remote host]</code><br />
e.g.<br />
<code>$ nmap 192.168.0.1</code></p>
<p>The output looks like this:<br />
<code>Starting Nmap 5.00 ( http://nmap.org ) at 2011-03-28 20:39 MDT<br />
Interesting ports on yourserver.yourdomain.com (192.168.0.1):<br />
Not shown: 993 closed ports<br />
PORT     STATE    SERVICE<br />
22/tcp   open     ssh<br />
80/tcp   open     http<br />
135/tcp  filtered msrpc<br />
... [more open ports]<br />
Nmap done: 1 IP address (1 host up) scanned in 26.05 seconds</code> </p>
<p>Now we can proceed to lock down the irrelevant ports. </p>
<p>Awesome. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/699/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/699/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/699/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/699/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/699/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/699/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/699/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/699/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/699/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/699/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/699/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/699/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/699/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/699/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=699&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2011/03/28/nmap-or-gtfo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>
	</item>
		<item>
		<title>Rsync or swim</title>
		<link>http://increaseyourgeek.wordpress.com/2011/03/27/rsync-or-swim/</link>
		<comments>http://increaseyourgeek.wordpress.com/2011/03/27/rsync-or-swim/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 23:55:52 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/?p=697</guid>
		<description><![CDATA[How to push a local directory to a remote host at the command line, with rsync. <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=697&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Whenever I forget how to use Rsync, usually to push a local directory to a remote one, I usually land on <a href="http://troy.jdmz.net/rsync/index.html" target="_blank">this guide</a>. </p>
<p>The <a href="http://linux.die.net/man/1/rsync" target="_blank">rsync man page</a> gives the syntax for a push operation.</p>
<p>This is the command that I end up using:<br />
<code>$ rsync -avz -e ssh /this/dir/ remoteuser@remotehost:/remote/dir</code></p>
<p>Hooray, rsync! </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/697/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/697/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/697/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=697&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2011/03/27/rsync-or-swim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>
	</item>
		<item>
		<title>Creating mysql users from the command line</title>
		<link>http://increaseyourgeek.wordpress.com/2011/03/23/creating-mysql-users-from-the-command-line/</link>
		<comments>http://increaseyourgeek.wordpress.com/2011/03/23/creating-mysql-users-from-the-command-line/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 04:13:14 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql add user]]></category>
		<category><![CDATA[mysql command line]]></category>
		<category><![CDATA[mysqladmin]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/?p=683</guid>
		<description><![CDATA[Add users to MySQL via the command line. <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=683&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I had to add a mysql user for a web application that a server migration is underway for. And I couldn&#8217;t remember how. It&#8217;s been a while. Thanks to a bit of help from <a href="http://www.databasef1.com/tutorial/mysql-create-user.html" target="_blank">this guide</a>, things are smooth sailing. </p>
<p>The hackery:</p>
<p><code>root@rehauedge:~# mysql -p<br />
Enter password:<br />
Welcome to the MySQL monitor.  Commands end with ; or \g.<br />
...<br />
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. </code></p>
<p><code>mysql&gt; CREATE USER 'newusername' IDENTIFIED BY 'newuserpassword'; </code></p>
<p>Sweet.  </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/683/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=683&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2011/03/23/creating-mysql-users-from-the-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>
	</item>
		<item>
		<title>Start Small</title>
		<link>http://increaseyourgeek.wordpress.com/2011/03/17/start-small/</link>
		<comments>http://increaseyourgeek.wordpress.com/2011/03/17/start-small/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 08:19:25 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/?p=669</guid>
		<description><![CDATA[Perhaps, like me, you come up with grand plans. Plans to do great things to help the world, fantastic projects to give back to your favorite community of the moment, plans to make your mark, make a splash, or otherwise fulfill some high and lofty goal. Problem for me is I get intimidated by the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=669&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Perhaps, like me, you come up with grand plans.</p>
<p>Plans to do great things to help the world, fantastic projects to give back to your favorite community of the moment, plans to make your mark, make a splash, or otherwise fulfill some high and lofty goal.</p>
<p>Problem for me is I get intimidated by the sheer volume and &#8220;where-do-I-start-ness&#8221; of such monumental endeavors. Or, some new shiny thing comes along and whisks away my attention, along with my motivation and dedication. Then, the project/task/plan I was so excited about falls by the wayside. It&#8217;s an ugly habit.</p>
<div id="attachment_674" class="wp-caption aligncenter" style="width: 210px"><a href="http://increaseyourgeek.files.wordpress.com/2011/03/dsc_0222-e1300377283197.jpg"><img class="size-medium wp-image-674" title="Colorado Tumbleweed" src="http://increaseyourgeek.files.wordpress.com/2011/03/dsc_0222-e1300377283197.jpg?w=200&#038;h=300" alt="This is a tumbleweed..." width="200" height="300" /></a><p class="wp-caption-text">Sadly, many of my exciting ideas end up much like this lonely tumbleweed... </p></div>
<p>Granted, some projects find themselves less prone to such unfortunate fates. Usually, they&#8217;re the ones that put food on the table and clothes on our backs. After all, nerd&#8217;s gotta make a living, know what I&#8217;m saying?</p>
<p>No, the ill-fated projects I&#8217;m talking about are the &#8220;update my website&#8221;, &#8220;blog more often&#8221;, &#8220;organize my music collection&#8221; sort. Luckily, I have a panacea for avoiding the constant discontentment and feverish discombobulation that results from chronic-project-switchitis &#8211; GIVE UP!</p>
<p>Now that we&#8217;re rid of the quitters, a real solution. Start small. Case in point, this blog post. It&#8217;s not the sweet tutorial I wanted to write, or the awesome summation of every amazing thing I&#8217;ve been reading lately. But it&#8217;s something. It&#8217;s one post more than I had yesterday, and hopefully an inspirational one.</p>
<p>It was inspired by the tabs currently open in my browser, one for <a title="Free node.js hosting from Nodester" href="http://nodester.com/" target="_blank">free node.js hosting</a>, another about important <a title="7 Essential Blah Blah Blah Stuff" href="http://freelanceswitch.com/freelancing-essentials/7-elements-of-a-successful-freelancers-website/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+FreelanceSwitch+%28Freelance+Switch%29&amp;utm_content=Twitter" target="_blank">features your website should have</a> if you&#8217;re a freelancer.  Instead of building a website and blogging about the step-by-step process of doing so, right this very instant, all at once, I&#8217;m taking a stand against that ridiculousness. At least, I&#8217;m taking a baby step toward a more sane (and achievable) approach. I&#8217;m even going to hit publish before adding any pictures to break the monotony, or tags to aid in the everlasting quest for total organization!</p>
<p>Also, I&#8217;m &#8220;Talking about writing about what I&#8217;m doing. Now I&#8217;m singing about talking about writing about what I&#8217;m doing.&#8221; (Parks &amp; Recreation quote, ignore if irrelevant to your interests&#8230;)</p>
<p>Point is (yes, point, finally!) do something. It&#8217;s way better than nothing, and will certainly help you reach your goal, eventually. Even if it&#8217;s just brainstorming for 5 minutes, or sorting through a pile of mail, or writing some ridiculous self-help monologue that is little more than superfluous narcissistic pandering&#8230; it&#8217;s also easier said than done, so here&#8217;s a final kick in the seat from yours truly;</p>
<p>follow the advice of Dr. Leo Marvin. Baby steps to the elevator. Baby steps toward finishing this blog post&#8230;</p>
<p>Oh yeah, and Happy Saint Patrick&#8217;s Day to you Irish and honorary Irish alike!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/669/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=669&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2011/03/17/start-small/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>

		<media:content url="http://increaseyourgeek.files.wordpress.com/2011/03/dsc_0222-e1300377283197.jpg?w=200" medium="image">
			<media:title type="html">Colorado Tumbleweed</media:title>
		</media:content>
	</item>
		<item>
		<title>Syntax Highlighting for SCSS in Vim</title>
		<link>http://increaseyourgeek.wordpress.com/2011/02/26/syntax-highlighting-for-scss-in-vim/</link>
		<comments>http://increaseyourgeek.wordpress.com/2011/02/26/syntax-highlighting-for-scss-in-vim/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 02:10:07 +0000</pubDate>
		<dc:creator>seeflanigan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[sass]]></category>
		<category><![CDATA[scss]]></category>
		<category><![CDATA[syntax highlighting]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://increaseyourgeek.wordpress.com/?p=649</guid>
		<description><![CDATA[Get syntax highlighting for Sass 3 and SCSS in Vim. <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=649&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I just found something cool. And by cool I mean nerdy.<br />
It&#8217;s a plugin for <a href="http://www.vim.org/" target="_blank">Vim</a> that provides syntax highlighting for SCSS.</p>
<p>Keep reading if your response to that sentence was something like<br />
&#8220;Provides what for what?&#8221;</p>
<p>Otherwise, just <a href="https://github.com/cakebaker/scss-syntax.vim" target="_blank"> grab the code here</a> and get your stylesheet on.</p>
<p>For those still following along, SCSS is an acronym (what else?) for Sassy CSS. Sassy CSS is the main syntax in <a href="http://sass-lang.com/" target="_blank">Sass</a>. It was introduced in version 3 of the project. <a href="http://sass-lang.com/" target="_blank">Sass</a> is yet another acronym (YAA) for Syntactically Awesome Stylesheets&#8230; wait for it&#8230;</p>
<p>&#8220;An extension of <a href="http://www.css3.info/" target="_blank">CSS3</a>!&#8221;</p>
<p>It adds &#8220;&#8230;nested rules, variables, mixins, &#8230;and more.&#8221; It&#8217;s free open source software and helps me write much more manageable CSS code (along with the <a href="http://compass-style.org/" target="_blank">Compass</a> and <a href="http://blueprintcss.org/" target="_blank">Blueprint</a> frameworks&#8230;)</p>
<p>This Vim plugin autodetects SCSS files, and makes them look much better in my terminal window. So far, I vastly prefer it to the syntax highlighting for SASS (predecessor of SCSS) that was included with the version of Vim in my development environment.</p>
<p><a href="https://github.com/cakebaker/scss-syntax.vim" target="_blank">Get it here.</a></p>
<p>Installing the plugin is easy, and requires only 3 simple steps.<br />
1. Clone the repository<br />
2. Copy some files<br />
3. Restart Vim (or load them manually.)</p>
<p>In a terminal on Linux or OSX, issue the following commands:<br />
<code>$mkdir -p ~/src<br />
$ git clone https://github.com/cakebaker/scss-syntax.vim.git</code></p>
<p>On my system, the <code>~/.vim/syntax</code> and <code>~/.vim/ftdetect</code> paths did not exist.</p>
<p>I had to make them;<br />
<code>$ mkdir ~/.vim/syntax ~/.vim/ftdetect</code></p>
<p>Then I just made two filesystem links -<br />
<code>$ ln -s ~/src/scss-syntax.vim/syntax/scss.vim ~/.vim/syntax/<br />
$ ln -s ~/src/scss-syntax.vim/ftdetect/scss.vim ~/.vim/ftdetect/</code></p>
<p>Use Vim to open the example file provided with the plugin:<br />
<code>$ vim ~/src/scss-syntax.vim/example.scss</code><br />
and you should be greeted by a warm wave of colorful, readable stylesheet.</p>
<div id="attachment_664" class="wp-caption aligncenter" style="width: 562px"><a href="http://increaseyourgeek.files.wordpress.com/2011/02/scss_highlighting_in_vim1.png"><img class="size-large wp-image-664   " title="SCSS Vim Syntax Plugin in Action" src="http://increaseyourgeek.files.wordpress.com/2011/02/scss_highlighting_in_vim1.png?w=552&#038;h=310" alt="SCSS Vim Syntax Plugin in Action" width="552" height="310" /></a><p class="wp-caption-text">Joy!</p></div>
<p>Manually loading a <a href="http://vimdoc.sourceforge.net/htmldoc/usr_05.html#plugin" target="_blank">Vim plugin</a> into an already running environment is easy. Just <a href="http://insenvim.sourceforge.net/troubleshoot.htm" target="_blank">source the file</a> (in Vim) with <code>:source ~/.vim/syntax/scss.vim</code> and you&#8217;re off to the races.</p>
<p>Have fun!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/increaseyourgeek.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/increaseyourgeek.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/increaseyourgeek.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/increaseyourgeek.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/increaseyourgeek.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/increaseyourgeek.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/increaseyourgeek.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/increaseyourgeek.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/increaseyourgeek.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/increaseyourgeek.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/increaseyourgeek.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/increaseyourgeek.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/increaseyourgeek.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/increaseyourgeek.wordpress.com/649/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=increaseyourgeek.wordpress.com&amp;blog=9820225&amp;post=649&amp;subd=increaseyourgeek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://increaseyourgeek.wordpress.com/2011/02/26/syntax-highlighting-for-scss-in-vim/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b0f73c0eb23d2569d806bebe728dbe83?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cory</media:title>
		</media:content>

		<media:content url="http://increaseyourgeek.files.wordpress.com/2011/02/scss_highlighting_in_vim1.png?w=1024" medium="image">
			<media:title type="html">SCSS Vim Syntax Plugin in Action</media:title>
		</media:content>
	</item>
	</channel>
</rss>
