<?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>MemeRocket &#187; tool</title>
	<atom:link href="http://memerocket.com/category/tool/feed/" rel="self" type="application/rss+xml" />
	<link>http://memerocket.com</link>
	<description>Bill Burcham's Launch Platform</description>
	<lastBuildDate>Sun, 19 Feb 2012 03:56:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='memerocket.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/048c0b3b1b3b5279e320104a4b5d0bb0?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>MemeRocket &#187; tool</title>
		<link>http://memerocket.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://memerocket.com/osd.xml" title="MemeRocket" />
	<atom:link rel='hub' href='http://memerocket.com/?pushpress=hub'/>
		<item>
		<title>Of Workmen, Tools and Logical Argument</title>
		<link>http://memerocket.com/2010/12/05/of-workmen-tools-and-logical-argument/</link>
		<comments>http://memerocket.com/2010/12/05/of-workmen-tools-and-logical-argument/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 23:04:37 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://memerocket.com/?p=249</guid>
		<description><![CDATA[I&#8217;ve often heard the saying “It&#8217;s a poor workman who blames his tools”.  Remember in 2009: Twitter: blaming Ruby for their mistakes. While I agree with the substance of that post (that Twitter could&#8217;ve picked different tools or made Ruby &#8230; <a href="http://memerocket.com/2010/12/05/of-workmen-tools-and-logical-argument/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=249&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve often heard the saying “It&#8217;s a poor workman who blames his tools”.  Remember in 2009: <a href="http://unlimitednovelty.com/2009/04/twitter-blaming-ruby-for-their-mistakes.html">Twitter: blaming Ruby for their mistakes</a>. While I agree with the substance of that post (that Twitter could&#8217;ve picked different tools or made Ruby suffice), seeing that saying again kind of set me off. Hence the present missive…</p>
<p>Whenever I hear (It&#8217;s a poor workman who blames his tools) used as a blanket statement it bugs me. You know, some tools really are better than others. And you know, sometimes a (workman) chooses or must make do with poor ones. Again, I&#8217;m not talking about Ruby here—I&#8217;m talking about that saying.</p>
<p>A <a href="http://www.google.com/search?hl=en&amp;q=workman+blames+tools+origin">quick search</a> yielded <a href="http://www.phrases.org.uk/bulletin_board/18/messages/587.html">some fascinating history</a> on the origins of that saying. It looks like the saying started off rather differently:</p>
<blockquote><p>Mauves ovriers ne trovera ja bon hostill. [A bad workman will never find a good tool.] (French proverb, late 13th C. )</p></blockquote>
<p>And that usage prevailed for about six centuries or so until this:</p>
<blockquote><p>Good workmen never quarrel with their tools. (Byron, _Don Juan_, 1818)</p></blockquote>
<p>which is pretty close to the prevalent version I hear all the time in the software community.</p>
<p>The earliest version says (a poor workman can&#8217;t do good work, no matter how good the tools are). Now I can get behind that one. No controversy there.</p>
<p>The latest version says a good workman can do good work no matter how poor the tools are. That presumes that the workman cannot choose his tools. For if he could choose his tools then he would be evaluated on his ability to choose them, and choosing bad ones would reflect poorly on his ability. Or perhaps the workman wouldn&#8217;t even bother choosing tools at all since all tools are equally usable (to the good workman.) And that just seems absurd on its face.</p>
<p>Tools do matter, and the ability to pick good ones often sets the very best workmen apart from their peers.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=249&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2010/12/05/of-workmen-tools-and-logical-argument/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>
	</item>
		<item>
		<title>Run Google Chrome on Your Mac Now (with Extensions)</title>
		<link>http://memerocket.com/2009/12/17/run-google-chrome-on-your-mac-now-with-extensions/</link>
		<comments>http://memerocket.com/2009/12/17/run-google-chrome-on-your-mac-now-with-extensions/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 16:06:03 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://memerocket.com/?p=286</guid>
		<description><![CDATA[Google Chrome runs on your Mac now. Google Chrome supports Extensions now. Unfortunately, Google Chrome on your Mac doesn&#8217;t support extensions now. Well that&#8217;s not exactly true. It&#8217;s hard to find, but you can get the developer build of Chrome &#8230; <a href="http://memerocket.com/2009/12/17/run-google-chrome-on-your-mac-now-with-extensions/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=286&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Google Chrome runs on your Mac now. Google Chrome supports Extensions now. Unfortunately, Google Chrome on your Mac doesn&#8217;t support extensions now.</p>
<p>Well that&#8217;s not exactly true. It&#8217;s hard to find, but you can get the developer build of Chrome for the Mac. It&#8217;s prebuilt on the <a href="http://build.chromium.org/buildbot/snapshots/chromium-rel-mac/">Chromium Buildbot Snapshots for Mac Page</a>. Scroll to the bottom and download the latest Zip archive. It contains the app (Chromium) which you just drag to your Applications folder.<a href="http://memerocket.files.wordpress.com/2009/12/screen-shot-2009-12-17-at-7-47-36-am1.png"><img class="alignright size-medium wp-image-290" title="Screen shot 2009-12-17 at 7.47.36 AM" src="http://memerocket.files.wordpress.com/2009/12/screen-shot-2009-12-17-at-7-47-36-am1.png?w=300&h=60" alt="" width="300" height="60" /></a></p>
<p>After it&#8217;s in place, use it to browse to the <a href="https://chrome.google.com/extensions/">Official Google Chrome Extensions</a> site. Then check out the <a href="https://chrome.google.com/extensions/detail/okanipcmceoeemlbjnmnbdibhgpbllgc">Google Quick Scroll Extension</a>, which continues your Google search beyond the results page, right on the third-party pages you jump to.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/286/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=286&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2009/12/17/run-google-chrome-on-your-mac-now-with-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>

		<media:content url="http://memerocket.files.wordpress.com/2009/12/screen-shot-2009-12-17-at-7-47-36-am1.png?w=300" medium="image">
			<media:title type="html">Screen shot 2009-12-17 at 7.47.36 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>Upgrade OS X 10.5.8 to JDK 1.6</title>
		<link>http://memerocket.com/2009/08/06/upgrade-os-x-10-5-8-to-jdk-1-6/</link>
		<comments>http://memerocket.com/2009/08/06/upgrade-os-x-10-5-8-to-jdk-1-6/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 17:08:21 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jdk]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://memerocket.com/?p=268</guid>
		<description><![CDATA[I didn&#8217;t find any clear instructions on upgrading the JDK on OS X so I thought I&#8217;d share my findings. First off, apparently Software Update does not automatically update the JDK. You have to manually download and run the updates. &#8230; <a href="http://memerocket.com/2009/08/06/upgrade-os-x-10-5-8-to-jdk-1-6/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=268&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t find any clear instructions on upgrading the JDK on OS X so I thought I&#8217;d share my findings.</p>
<p>First off, apparently Software Update does not automatically update the JDK. You have to manually download and run the updates. There are four updates to &#8220;Java for Mac OS X 1.5&#8243;. Since I couldn&#8217;t tell whether they were cumulative or not, I just downloaded and installed each one in sequence:</p>
<p style="padding-left:30px;"><a href="http://www.apple.com/downloads/macosx/apple/application_updates/javaformacosx105update1.html">update 1</a></p>
<p style="padding-left:30px;"><a href="http://www.apple.com/downloads/macosx/apple/application_updates/javaformacosx105update2.html">update 2</a></p>
<p style="padding-left:30px;"><a href="http://www.apple.com/downloads/macosx/apple/application_updates/javaformacosx105update3.html">update 3</a></p>
<p style="padding-left:30px;"><a href="http://www.apple.com/downloads/macosx/apple/application_updates/javaformacosx105update4.html">update 4</a></p>
<p>Now you&#8217;d think you&#8217;d be done, but those updates only install JDK 1.6—they don&#8217;t make it the default. The way I did that was to change a link in the Framework:</p>
<div style="padding-left:30px;">
<pre><span style="font-family:monospace, Monaco, 'Courier New', Courier, monospace;">cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm -fr CurrentJDK
sudo ln -s 1.6 CurrentJDK</span></pre>
</div>
<p>Now I see:</p>
<div style="padding-left:30px;"><code> </code></p>
<pre><code>$ java -version
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211)
Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02-83, mixed mode)</code></pre>
</div>
<div>Now to see if it really works…</div>
<div></div>
<div><strong>Update 1 </strong>8/7/09: That link I created wasn&#8217;t quite right in the original post. It was creating a link with an absolute path. This apparently caused the Java Preferences app to fail to start and also caused WebKit/Safari to crash on all but the simplest web pages. Wierd. Corrected link creation above.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/268/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=268&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2009/08/06/upgrade-os-x-10-5-8-to-jdk-1-6/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>
	</item>
		<item>
		<title>OOCSS + SASS = Fewer Classes On Your Elements</title>
		<link>http://memerocket.com/2009/03/28/oocss-sass-fewer-classes-on-your-elements/</link>
		<comments>http://memerocket.com/2009/03/28/oocss-sass-fewer-classes-on-your-elements/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 23:44:06 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://memerocket.com/?p=164</guid>
		<description><![CDATA[update 3/29/2009 8:23 AM: Turns out Chris Eppstein is way ahead of me. Check out Compass. It&#8217;s a project that delivers your favorite CSS frameworks as SASS mix-ins. Oh and also it integrated with your favorite Ruby web development framework. Stubbornella &#8230; <a href="http://memerocket.com/2009/03/28/oocss-sass-fewer-classes-on-your-elements/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=164&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>update</strong> 3/29/2009 8:23 AM: Turns out <a href="http://acts-as-architect.blogspot.com/">Chris Eppstein</a> is way ahead of me. Check out <a href="http://compass-style.org/">Compass</a>. It&#8217;s a project that delivers your favorite <a href="http://wiki.github.com/chriseppstein/compass/supported-frameworks">CSS frameworks</a> as SASS mix-ins. Oh and also it integrated with your favorite Ruby web development framework.</p>
<p>Stubbornella you have captivated me. I am now watching <a href="http://www.stubbornella.org/content/">Nicole Sullivan</a>&#8216;s <a href="http://www.stubbornella.org/content/2009/03/23/object-oriented-css-video-on-ydn/">Object Oriented CSS talk</a> for the second time. The <a href="http://wiki.github.com/stubbornella/oocss">OOCSS framework</a> is a terse but ambitious thing in the tradition of <a href="http://developer.yahoo.com/yui/grids/">YUI Grids CSS</a> and <a href="http://www.blueprintcss.org/">Blueprint</a> but with opinions that reach beyond grids, resets and typography.</p>
<p>While I have certainly not mastered the OOCSS concepts I do have some early observations I&#8217;d like to share nevertheless. This of course is dangerous territory since I risk having to eat my words later. So be it. Feel free to feed ’em to me as appropriate…</p>
<p>It strikes me from looking at the <a href="http://wiki.github.com/stubbornella/oocss/uml">UML diagram</a> for OOCSS that something is missing, or more accurately, some things are being conflated which shouldn&#8217;t be. If we&#8217;re thinking about objects and classes here the first question should be: what are we modeling? Well the <a href="http://en.wikipedia.org/wiki/HTML#Semantic_HTML">semantic HTML</a> folks might say we need to model things like paragraphs and headings, or at another level contacts and phone numbers, or at another level sidebars and navigation. These are all semantics.</p>
<p>When we think about modeling these things in HTML in such as way that CSS can be profitably applied, we use HTML element types to directly model semantics where we can (p element for paragraph, h1 element for top-level heading) and we use class attributes to express the rest (&#8216;top-nav&#8217;, &#8216;address&#8217;, &#8216;phone&#8217;). If you have a look at the OOCSS UML diagram you will see in the &#8220;page layout&#8221; section a set of classes that fall into the former category ( &#8216;doc&#8217;, &#8216;hd&#8217; for header, &#8216;bd&#8217; for body, &#8216;ft&#8217; for footer).</p>
<p>So far so good. But now how do we actually extend a class? The approach suggested in OOCSS is to change the (HTML) markup. One example from the talk is to specialize the media block class &#8216;media&#8217; so that the fixed-size media is on the right instead of on the left. The suggestion is to define a new class &#8216;media_ext&#8217; along with a new set of CSS rules. Then the idea is to change our HTML so that the element of interest carries two classes: &#8216;media&#8217; and &#8216;media_ext&#8217;. And then we define some CSS for the new media_ext module, something like this:</p>
<pre>.media_ext .fixedMedia { float:right }</pre>
<p>This is the fundamental approach in OOCSS, so fundamental that it is on the short list of <em>10 Best Practices</em> from slide 19 of <a href="http://www.slideshare.net/stubbornella/object-oriented-css">the talk</a>:</p>
<p style="padding-left:30px;">9. Extend objects by applying multiple classes to an element</p>
<p>The library defines a small set of base classes and a few core extensions to those. Users are invited to extend these further and we change our HTML to carry the full set of classes expressing semantics, layout and skinning too, all as separate classes.</p>
<p>The value in this approach is it certainly brings order to chaos. The downside is twofold: first we must pollute our HTML with layout and skinning choices and second, we must rely solely on coding conventions to ensure that each HTML element carries a self-consistent and complete set of classes.</p>
<p style="padding-left:30px;">aside: To me this feels much more akin to structured programming or maybe at best &#8220;abstract data types&#8221; than it does OO. I don&#8217;t really see language-level inheritance here, nor do I see polymorphism. But that&#8217;s just a terminological nit.</p>
<p>The first problem we need to solve is to get rid of the superfluous classes (on our elements). How could we make a media block (&#8220;fixed-width media object on the left with an open editable zone on the right&#8221;) into a right-handed media block without changing our HTML? Well the classic way in CSS is to use context to distinguish this situation. So let&#8217;s imagine that every odd media block ought to be right-handed. A classic approach is to have an &#8216;odd&#8217; class on the element (or to use nth-child pseudo class). Perhaps something like this:</p>
<pre>.media.odd .fixedMedia { float:right }</pre>
<p>Where target is the fixed-width object we&#8217;d like to be on the right-hand side instead of the left. You get the idea. The problem with this approach is that we&#8217;ve just coded up some potentially reusable stuff (the {float:right} part) and we&#8217;ve got no way to reuse it in other circumstances. Also we are now guilty of committing pitfall #1 from the talk:</p>
<p style="padding-left:30px;">1. Location dependent styles</p>
<p>So you can see that we are definitely violating a key tennet of OOCSS. If you&#8217;re already an OOCSS dogmatist you may want to stop reading now. Still with me? OK, what if we want a right-hand media block for even rows next time? We&#8217;d have to edit that last CSS rule to look something like this:</p>
<pre>.media.even .fixedMedia { float:right }</pre>
<p>Yuck. What&#8217;s going on here? The problem is that CSS has no named/reusable/callable construct. No macro. No function. No Class. OOCSS does the best it can with plain old CSS by requiring us to define a new HTML class name. That lets us define a reusable set of CSS rules for it, but at the cost of polluting our HTML at each use.</p>
<p>I think a good way out of this is to break out of plain old CSS into a higher realm. Both <a href="http://haml.hamptoncatlin.com/docs/rdoc/classes/Sass.html">SASS</a> and <a href="http://shauninman.com/archive/2007/06/27/css_server_side_pre_processor">CSS-SSC</a> have a macro concept. SASS has its mixins and CSS-SSC has its base and based-on. What these actually add to CSS is named abstractions and reuse. So I could define a SASS mixin like this:</p>
<pre>=right-hand-media
  .fixedMedia
    float: right</pre>
<p>Now that is a reusable module. In my application I can apply that module to an element:</p>
<pre>.media.odd
  +right-hand-media</pre>
<p>Yay. Now I have the best of both worlds. If we have another app that wants even media items to be right-handed then we just define this:</p>
<pre>.media.even
  +right-hand-media</pre>
<p>The value of this is that I didn&#8217;t have to change my HTML markup in order to change the layout. There are examples of using the same approach to define a <a href="http://wonderfullyflawed.com/2008/05/21/clearfix-as-mixin/">clearfix module</a>. To those who say this approach is going to generate a lot of CSS I say, &#8220;well maybe, but I think our first priority needs to be making our source code manageable and this approach may just help us do that.&#8221;</p>
<p>As I already pointed out, this proposal (using SASS mix-ins or CSS-SSC macros to implement reusable modules, and then using contextual CSS Rules to apply those modules) violates a core principle of OOCSS. On the upside it solves one of the wish list items from the <a href="http://www.slideshare.net/stubbornella/object-oriented-css">talk</a> (on slide 60):</p>
<p style="padding-left:30px;">1. Extending objects—possible to make &#8220;sale module&#8221; inherit from &#8220;module&#8221;</p>
<p style="padding-left:30px;">
<pre>.module{}
.saleModule{extends: module}</pre>
<p>Now that approach is a bit different from the one I described for right-hand-media. But it is clear that mix-ins or macros could easily be used to reuse .module in .saleModule right? SASS mix-ins, for instance can be used (as in my first example) as straight-up mix-ins, or to implement inheritance. The choice is yours.</p>
<p>To close, I highly recommend watching the <a href="http://us.dl1.yimg.com/download.yahoo.com/dl/ydn/nicolesullivan.m4v">Stubbornella&#8217;s presentation</a>. <strong>Twice</strong>. There is just a ton of gold in there. Meanwhile, I&#8217;ll go experiment with SASS mix-ins and let you know how it works in practice and how it can be combined with some of the other principles highlighted in the talk.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=164&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2009/03/28/oocss-sass-fewer-classes-on-your-elements/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
<enclosure url="http://us.dl1.yimg.com/download.yahoo.com/dl/ydn/nicolesullivan.m4v" length="583962269" type="video/x-m4v" />
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>
	</item>
		<item>
		<title>Flickr Attributions in WordPress</title>
		<link>http://memerocket.com/2007/12/31/flickr-attributions-in-wordpress/</link>
		<comments>http://memerocket.com/2007/12/31/flickr-attributions-in-wordpress/#comments</comments>
		<pubDate>Tue, 01 Jan 2008 05:55:13 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[diversion]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.meme-rocket.com/2007/12/31/flickr-attributions-in-wordpress/</guid>
		<description><![CDATA[I&#8217;m tired of creating HTML attribution markup and style by hand every time I drop a Flickr photo into a post. I noticed the Yahoo Shortcut Plugin purports to address this issue. So I ended my procrastination and upgraded to &#8230; <a href="http://memerocket.com/2007/12/31/flickr-attributions-in-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=94&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img style="cursor:pointer;" class="yfsc_image" src="http://farm1.static.flickr.com/1/791388_8b89845fea_m.jpg" align="left">
</p>
<p>I&#8217;m tired of creating HTML attribution markup and style by hand every time I drop a <span class="yshortcuts">Flickr</span> photo into a post. I noticed the <a href="http://www.searchenginejournal.com/yahoo-shortcuts-wordpress-plugin/6102/">Yahoo Shortcut Plugin</a> purports to address this issue. So I ended my procrastination and upgraded to WordPress 2.3.2 and installed the plugin. And here we are (see the image to the left)</p>
<p>Convincing the <span class="yshortcuts">Yahoo Shortcuts</span> Plugin to fetch the actual image of interest wasn&#8217;t as easy as I&#8217;d like but it&#8217;s clearly doable. I found the image using <a href="http://www.krazydad.com/colrpickr/">colrpickr</a>, then navigated to the image and then entered the title of the image in the Yahoo Shortcut Plugin&#8217;s &#8220;Review This Post&#8221; view. The plugin found the image and allowed me to then add the image to my post.</p>
<p>Now wouldn&#8217;t it be the bomb if <a href="http://www.krazydad.com">krazydad</a> could integrate his colrpickr directly with the Yahoo thingie and save us all the steps?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/memerocket.wordpress.com/94/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/memerocket.wordpress.com/94/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/94/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=94&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2007/12/31/flickr-attributions-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>

		<media:content url="http://farm1.static.flickr.com/1/791388_8b89845fea_m.jpg" medium="image" />
	</item>
		<item>
		<title>Joyomi Free Edition Launched</title>
		<link>http://memerocket.com/2007/05/19/joyomi%e2%84%a2-free-edition-launched/</link>
		<comments>http://memerocket.com/2007/05/19/joyomi%e2%84%a2-free-edition-launched/#comments</comments>
		<pubDate>Sat, 19 May 2007 18:53:37 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[tool]]></category>
		<category><![CDATA[Web as Platform]]></category>

		<guid isPermaLink="false">http://www.meme-rocket.com/2007/05/19/joyomi%e2%84%a2-free-edition-launched/</guid>
		<description><![CDATA[As of this morning, Joyomi is available for everyone who&#8217;d like a free account. You&#8217;ve heard of a &#8220;to do&#8221; list, well Joyomi manages your &#8220;to get&#8221; list. Joyomi highlights overdue stuff and helps you get it back. If you&#8217;ve &#8230; <a href="http://memerocket.com/2007/05/19/joyomi%e2%84%a2-free-edition-launched/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=71&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-211" title="joyomi-logo" src="http://memerocket.files.wordpress.com/2007/05/joyomi-logo.jpg?w=520" alt="joyomi-logo"   />As of this morning, <a href="http://joyomi.com" target="_blank">Joyomi</a> is available for everyone who&#8217;d like a free account.</p>
<p>You&#8217;ve heard of a &#8220;<span class="st">to</span> do&#8221; <span class="st">list</span>, well <a href="http://joyomi.com" target="_blank">Joyomi</a> manages your &#8220;<strong><em><span class="st">to</span> <span class="st">get</span></em></strong>&#8221; <span class="st">list</span>. <a href="http://joyomi.com">Joyomi</a> highlights overdue stuff and helps you <span class="st">get</span> it back. If you&#8217;ve lent a book to a friend, create a Book Omi and you&#8217;ll remember to ask for the book back next month.</p>
<p><img class="alignnone size-full wp-image-216" title="book-omi-icon" src="http://memerocket.files.wordpress.com/2007/05/book-omi-icon.jpg?w=520" alt="book-omi-icon"   /><img class="alignnone size-full wp-image-214" title="disc-omi-icon" src="http://memerocket.files.wordpress.com/2007/05/disc-omi-icon.jpg?w=520" alt="disc-omi-icon"   /><img class="alignnone size-full wp-image-215" title="money-omi-icon" src="http://memerocket.files.wordpress.com/2007/05/money-omi-icon.jpg?w=520" alt="money-omi-icon"   /><img class="alignnone size-full wp-image-217" title="omi-omi-icon" src="http://memerocket.files.wordpress.com/2007/05/omi-omi-icon.jpg?w=520" alt="omi-omi-icon"   /><img class="alignnone size-full wp-image-218" title="parcel-omi-icon" src="http://memerocket.files.wordpress.com/2007/05/parcel-omi-icon.jpg?w=520" alt="parcel-omi-icon"   /></p>
<p>Same idea for CDs and DVDs and money too. There&#8217;s a whole set of starter Omis. If you don&#8217;t find one that fits your purpose you can create a generic one.</p>
<p><img class="alignleft size-full wp-image-213" title="joyomi-bookmarklet-pin" src="http://memerocket.files.wordpress.com/2007/05/joyomi-bookmarklet-pin.jpg?w=520" alt="joyomi-bookmarklet-pin"   /><br />
<a href="http://joyomi.com/" target="_blank">Joyomi</a> doesn&#8217;t just track your <em>stuff</em> it tracks your online <em><strong>conversations</strong></em> too. Use the <a href="http://joyomi.com/" target="_blank">Joyomi</a> Bookmarklet to create Omi&#8217;s for important emails, blog comments and forum posts as well. With <a href="http://joyomi.com/" target="_blank">Joyomi</a> you don&#8217;t have to remember to visit a bunch of sites—all the conversations are consolidated in one clean dashboard.</p>
<p>Once you&#8217;ve created an Omi it&#8217;s easy to <em><strong>share</strong></em> it with a friend. Nothing like those gentle reminders!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/memerocket.wordpress.com/71/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/memerocket.wordpress.com/71/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=71&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2007/05/19/joyomi%e2%84%a2-free-edition-launched/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>

		<media:content url="http://memerocket.files.wordpress.com/2007/05/joyomi-logo.jpg" medium="image">
			<media:title type="html">joyomi-logo</media:title>
		</media:content>

		<media:content url="http://memerocket.files.wordpress.com/2007/05/book-omi-icon.jpg" medium="image">
			<media:title type="html">book-omi-icon</media:title>
		</media:content>

		<media:content url="http://memerocket.files.wordpress.com/2007/05/disc-omi-icon.jpg" medium="image">
			<media:title type="html">disc-omi-icon</media:title>
		</media:content>

		<media:content url="http://memerocket.files.wordpress.com/2007/05/money-omi-icon.jpg" medium="image">
			<media:title type="html">money-omi-icon</media:title>
		</media:content>

		<media:content url="http://memerocket.files.wordpress.com/2007/05/omi-omi-icon.jpg" medium="image">
			<media:title type="html">omi-omi-icon</media:title>
		</media:content>

		<media:content url="http://memerocket.files.wordpress.com/2007/05/parcel-omi-icon.jpg" medium="image">
			<media:title type="html">parcel-omi-icon</media:title>
		</media:content>

		<media:content url="http://memerocket.files.wordpress.com/2007/05/joyomi-bookmarklet-pin.jpg" medium="image">
			<media:title type="html">joyomi-bookmarklet-pin</media:title>
		</media:content>
	</item>
		<item>
		<title>Interarchy S3 File Browser for OS X</title>
		<link>http://memerocket.com/2007/03/27/interarchy-s3-file-browser-for-os-x/</link>
		<comments>http://memerocket.com/2007/03/27/interarchy-s3-file-browser-for-os-x/#comments</comments>
		<pubDate>Wed, 28 Mar 2007 00:39:02 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.meme-rocket.com/2007/03/27/interarchy-s3-file-browser-for-os-x/</guid>
		<description><![CDATA[I use Amazon S3 to store backups from EC2. For a while I&#8217;ve been thinking I ought to back up some of the S3 data once in a while but I&#8217;ve been putting it off. One reason I&#8217;ve been procrastinating &#8230; <a href="http://memerocket.com/2007/03/27/interarchy-s3-file-browser-for-os-x/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=64&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I use Amazon S3 to store backups from EC2. For a while I&#8217;ve been thinking I ought to back up some of the S3 data once in a while but I&#8217;ve been putting it off. One reason I&#8217;ve been procrastinating is because the S3 &#8220;file&#8221; management tool I&#8217;ve been using, <a href="http://people.no-distance.net/ol/software/s3/">S3 Browser</a>, doesn&#8217;t support simple things like deleting or downloading folders. You may delete a folder (=&#8221;bucket&#8221;) only if it&#8217;s empty. You may copy the files (=&#8221;objects&#8221;) in a folder but there is no convenient way to just copy the folder and all its contents at once.</p>
<p>When I saw the <a href="https://addons.mozilla.org/en-US/firefox/addon/3247">S3Fox</a> Firefox extension a while back I was encouraged.&nbsp; Unfortunately, S3Fox has some critical bugs on the Mac. In particular, folder downloads don&#8217;t work &#8212; apparently because S3Fox is using backslashes in destination paths a la Windows. You end up with empty folders on your Mac.</p>
<p><a href="http://nolobe.com/interarchy/"><img class="applicationicon" src="http://nolobe.com/img/interarchyicon.png" alt="Interarchy" /></a>I was rescued from a serious bout of the crankies by Nolobe&#8217;s <a href="http://nolobe.com/interarchy/">Interarchy</a>. This Mac-only file transfer application apparently supports lots of protocol standards and lots of interesting automation features blah-blah-blah but what&#8217;s important to me is &#8212; it has S3 support!&nbsp; Woo hoo!&nbsp; So I downloaded the free 14 day trial and used it to browse my S3 buckets. In a nonce I had downloaded a couple hundred megabytes of precious machine images and subversion snapshots. Now they sit on my disk, ready for their final DVD resting place. I can sleep tonight.</p>
<p>Oh, and Interarchy is a lickable OS X app too. I have no idea yet if I&#8217;ll prefer it to <a href="http://www.panic.com/transmit/">Transmit</a> (tall order) but for S3 work from the Mac it looks like a must-have.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/memerocket.wordpress.com/64/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/memerocket.wordpress.com/64/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=64&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2007/03/27/interarchy-s3-file-browser-for-os-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>

		<media:content url="http://nolobe.com/img/interarchyicon.png" medium="image">
			<media:title type="html">Interarchy</media:title>
		</media:content>
	</item>
		<item>
		<title>Goodbye Cyberduck, Hello Transmit</title>
		<link>http://memerocket.com/2006/11/18/goodbye-cyberduck-hello-transmit/</link>
		<comments>http://memerocket.com/2006/11/18/goodbye-cyberduck-hello-transmit/#comments</comments>
		<pubDate>Sat, 18 Nov 2006 12:58:08 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.meme-rocket.com/2006/11/18/goodbye-cyberduck-hello-transmit/</guid>
		<description><![CDATA[I recently switched from Fugu to Cyberduck. At the time I considered moving to Panic&#8217;s Transmit but didn&#8217;t see how to get SSH certificate-based authentication to work. Well, a nice person at Transmit support answered my question. Interestingly, while perhaps &#8230; <a href="http://memerocket.com/2006/11/18/goodbye-cyberduck-hello-transmit/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=43&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently switched from Fugu to Cyberduck.  At the time I <a href="http://www.memerocket.com/2006/11/11/goodbye-fugu-hello-cyberduck/">considered</a> moving to Panic&#8217;s <a href="http://www.panic.com/transmit/">Transmit</a> but didn&#8217;t see how to get SSH certificate-based authentication to work.</p>
<p>Well, a nice person at Transmit support answered my question.  Interestingly, while perhaps a little non-obvious to the SSH-non-initiate, the solution is actually elegant &#8212; do nothing.  That&#8217;s right, Transmit works directly with the ssh command-line infrastructure.  This means if you&#8217;ve got your identities (keys and certificates) stored in the ~/.ssh directory you&#8217;re good to go.  Further, if you&#8217;re using an SSH Agent (like <a href="http://www.memerocket.com/2006/11/11/eliminate-subversion-passphrase-prompts-with-sshkeychain/">SSHKeychain</a>) you&#8217;ll never even be prompted for a passphrase by Transmit.<br />
While I like Cyberduck a lot, the edge goes to Transmit &#8212; even at a cost of $29.95.  Here goes:</p>
<ol>
<li>Transmit is <strong>snappier</strong>.  I haven&#8217;t measured file transfer speeds, but directory listing and navigation is definitely snappier than Fugu or Cyberduck.  I spend a lot of time navigating around remote filesystems and I don&#8217;t move a lot of great big files so reponse time for listings is crucial.</li>
<li>Transmit can be configured to edit a file on <strong>double click</strong>.  In Cyberduck you have to select the file and hit command-j to edit it &#8212; annoying.  Of course in any case, the file must be downloaded &#8212; but it&#8217;s downloaded to some mystery location where you don&#8217;t have to worry about cleaning it up.</li>
<li>Transmit supports <strong>column view</strong> (browser view) just like Finder.  Cyberduck does offer a contextual view but it&#8217;s more of a Windows-style-double-click-a-folder-to-expand-subfolders affair.  Not that there&#8217;s anything wrong with that.</li>
</ol>
<p>There are couple shortcomings worth mentioning too:</p>
<ol>
<li>While Transmit offers tab support &#8212; innovative among the file transfer clients I&#8217;ve looked at &#8212; the workflow is a bit <strong>clumsy</strong>.  If you have a configuration saved as a favorite there is no way to quickly and directly open it in a new tab.  Instead you must go through four steps.  How about an &#8220;open favorite in new tab&#8221; option in Preferences?  Currently you must:
<ol>
<li>open a new tab (command-t or via File menu)</li>
<li>select the &#8220;favorites&#8221; tab within that new tab</li>
<li>select the &#8220;Favorites&#8221; folder</li>
<li>double-click the favorite you want</li>
</ol>
<p>On the upside &#8212; once you&#8217;ve done this once, Transmit remembers that you want the Location tab and the Favorites folder so the middle two steps drop out.  Still, one step would be better than two steps.
</li>
<li>When configuring a new connection for password authentication, Transmit won&#8217;t allow <strong>paste</strong> into password field &#8212; you have to type the password from the keyboard.  I keep all my credentials in Keychain Access so it&#8217;s real easy to get &#8216;em on the clipboard.  Minor one-time annoyance.</li>
</ol>
<p>All in all I&#8217;m enjoying Transmit.  It&#8217;s been reliable and comfortable.  I&#8217;m off to pay my $29.95 now&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/memerocket.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/memerocket.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=43&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2006/11/18/goodbye-cyberduck-hello-transmit/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>
	</item>
		<item>
		<title>Eliminate Subversion Passphrase Prompts with SSHKeychain</title>
		<link>http://memerocket.com/2006/11/11/eliminate-subversion-passphrase-prompts-with-sshkeychain/</link>
		<comments>http://memerocket.com/2006/11/11/eliminate-subversion-passphrase-prompts-with-sshkeychain/#comments</comments>
		<pubDate>Sat, 11 Nov 2006 21:44:35 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.meme-rocket.com/2006/11/11/eliminate-subversion-passphrase-prompts-with-sshkeychain/</guid>
		<description><![CDATA[One of the things I really like about OS X is the Keychain Access application. Most Mac applications (but not Firefox) that deal with passwords or certificates enlist Keychain Access services. The upshot is that you don&#8217;t need to manage &#8230; <a href="http://memerocket.com/2006/11/11/eliminate-subversion-passphrase-prompts-with-sshkeychain/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=40&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the things I really like about OS X is the <a title="Keychain Access" href="http://en.wikipedia.org/wiki/Keychain_Access">Keychain Access</a> application.  Most Mac applications (but <a title="Firefox OS X Password Manager Integration" href="http://wiki.mozilla.org/Firefox:3.0_Password_Manager#Mac_OS_X_Integration">not Firefox</a>) that deal with passwords or certificates enlist Keychain Access services.  The upshot is that you don&#8217;t need to manage a password file yourself, and you don&#8217;t need a third-party secure credential management application.</p>
<p>Unless you use <a title="ssh" href="http://en.wikipedia.org/wiki/Secure_Shell">ssh</a> on the command line a lot.</p>
<p>Unfortunately,  on OS X, the ssh command line tools are not integrated with Keychain Access.  This is unfortunate for a couple reasons.  First, it means that you have the choice (with the ssh command line tools) to either passphrase protect each key or not.  If you decide not to then you expose that key to attack (if someone gets access to your disk).</p>
<p>Now if you do decide to passphrase-protect an ssh key a dilemma arises.   You will be prompted for that passphrase each time the key is required for an ssh operation.  Every time you ssh to a remote machine, or run scp or sftp, you&#8217;ll be prompted.  And if you use <a title="Subversion" href="http://www.google.com/url?sa=t&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fsubversion.tigris.org%2F&amp;ei=mUBWRdECpNaDA9XS4K4J&amp;usg=__WUg-CQQMbA6iC8pYlsmw6tsjoXE=&amp;sig2=LNgmSc99NF6dsb76Pk8BkA">Subversion</a> over ssh you&#8217;ll be prompted (for a passphrase) for each of your remote subversion commands.  Ugh.</p>
<p>Until Apple adds direct integration between the ssh command line tools and Keychain Access we have to make due with one of the &#8220;ssh agents&#8221;.  There is a command-line one that ships with OS-X called ssh-agent if you like that sort of thing.  I was hoping for a mouse-driven one and went on a little expedition.</p>
<p>The first one I looked at, <a title="SSH Agent" href="http://www.phil.uu.nl/~xges/ssh/">SSH Agent</a>, is a nice enough Cocoa app but it&#8217;s got a fatal flaw.  The whole point of this thing is to  enable me to avoid entering passphrases.  To do that, the app needs to access a passphrase stored in Keychain Access.  Well SSH Agent looks like it <em>intends</em> to support that &#8212; but unfortunately, the &#8220;add to keychain&#8221; control is disabled.  As a result you have to go to Keychain Access and manually get your passphrase and then paste it into SSH Agent each time you you want to activate an ssh key.</p>
<p>The second Cocoa app I looked at, <a title="SSHKeychain" href="http://www.sshkeychain.org/">SSHKeychain</a> fared better in this regard.  It integrates nicely with Keychain Access.  The interface is a bit quirky but if you follow the <a href="http://trac.sshkeychain.org/cgi-bin/trac.cgi/wiki/INSTALL">directions</a> you should be up in no time.  Note that with each of the ssh agents I tested, there were situations where I had to log out (of OS X) and back in to get the ssh command line tools to notice the agent.</p>
<p>Any chance of integrated SSH key management making it into Keychain Access in time for <a title="OS X Leopard" href="http://www.apple.com/macosx/leopard/index.html">Leopard</a>?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/memerocket.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/memerocket.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=40&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2006/11/11/eliminate-subversion-passphrase-prompts-with-sshkeychain/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>
	</item>
		<item>
		<title>Goodbye Fugu, Hello Cyberduck</title>
		<link>http://memerocket.com/2006/11/11/goodbye-fugu-hello-cyberduck/</link>
		<comments>http://memerocket.com/2006/11/11/goodbye-fugu-hello-cyberduck/#comments</comments>
		<pubDate>Sat, 11 Nov 2006 18:08:34 +0000</pubDate>
		<dc:creator>Bill Burcham</dc:creator>
				<category><![CDATA[OS X]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.meme-rocket.com/2006/11/11/goodbye-fugu-hello-cyberduck/</guid>
		<description><![CDATA[I&#8217;ve been using Fugu as my SFTP (SSH) client for a while now.Â  While I&#8217;m grateful for this free and serviceable program it is not without annoyances.Â  It&#8217;s a bit clumsy at certificate-based authentication.Â  You have to specify some pretty &#8230; <a href="http://memerocket.com/2006/11/11/goodbye-fugu-hello-cyberduck/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=39&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a title="Fugu" href="http://rsug.itd.umich.edu/software/fugu/">Fugu</a> as my SFTP (SSH) client for a while now.Â  While I&#8217;m grateful for this free and serviceable program it is not without annoyances.Â  It&#8217;s a bit clumsy at certificate-based authentication.Â  You have to specify some pretty arcane SSH command-line options (-oIdentityFile=).Â  By itself that wouldn&#8217;t be so bad if Fugu didn&#8217;t <em>forget</em> those options with every restart &#8212; forcing me to re-enter them.Â  The other shortcoming of Fugu is that it only edits with a single program &#8211; the so-called &#8220;text editor&#8221;.Â  It&#8217;s configurable which is good &#8212; but there&#8217;s only one of &#8216;em.Â  What if you have multiple editors for different kinds of files?</p>
<p>Well I&#8217;ve been thinking of switching to Panic <a title="Panic Transmit" href="http://www.panic.com/transmit/">Transmit</a> for a while.Â  The Panic apps are just beautiful and Cocoa-licious. While there is no explicit mention of SSH in the text of the Transmit page, I did notice a picture that showed SFTP configuration, so I decided to give Transmit a try.Â  Unfortunately there appears to be no way to induce Transmit to do certificate-based authentication.Â  Apparently only username/password is supported.</p>
<p>Enter <a title="Cyberduck" href="http://cyberduck.ch/">Cyberduck</a>. Â  It&#8217;s a Cocoa app like the other two.Â  Unlike Fugu, this one remembers settings across restarts.Â  Cyberduck even has a nice little tray that pops out with your site &#8220;bookmarks&#8221;. And unlike Transmit, this one does a great job with certificate-based authentication &#8212; going beyond Fugu&#8217;s cryptic command-line escapes and letting me pick the certificate file from a nice file finder.Â  The other nice thing is that like Transmit, this one supports multiple editors.Â  Very nice.Â  Cyberduck: it takes a few more seconds to download (from <a title="TLD" href="http://en.wikipedia.org/wiki/Top-level_domain">TLD</a> .ch = Switzerland) &#8212; but it&#8217;s definitely worth the wait.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/memerocket.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/memerocket.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/memerocket.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/memerocket.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/memerocket.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/memerocket.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/memerocket.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/memerocket.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/memerocket.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/memerocket.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/memerocket.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/memerocket.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/memerocket.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/memerocket.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/memerocket.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/memerocket.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=memerocket.com&#038;blog=5432592&#038;post=39&#038;subd=memerocket&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://memerocket.com/2006/11/11/goodbye-fugu-hello-cyberduck/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a88a8da103044de18418f303bf0c1507?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bburcham</media:title>
		</media:content>
	</item>
	</channel>
</rss>
