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

<channel>
	<title>Relentless Simplicity :: The Bonanza Tech Blog</title>
	<atom:link href="http://www.williambharding.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.williambharding.com/blog</link>
	<description>Rails programming with an entrepreneurial aftertaste.</description>
	<lastBuildDate>Thu, 10 May 2012 02:18:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Create a Custom Thumbnail Processor in Carrierwave</title>
		<link>http://www.williambharding.com/blog/rails/howto-create-a-custom-thumbnail-processor-in-carrierwave/</link>
		<comments>http://www.williambharding.com/blog/rails/howto-create-a-custom-thumbnail-processor-in-carrierwave/#comments</comments>
		<pubDate>Thu, 10 May 2012 00:21:45 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[carrierwave]]></category>
		<category><![CDATA[custom processing]]></category>
		<category><![CDATA[image processing]]></category>
		<category><![CDATA[thumbnail]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/?p=577</guid>
		<description><![CDATA[The latest in my of &#8220;shouldn&#8217;t this be better covered in Google and docs if people really use CarrierWave?&#8221;-series. Creating a custom thumbnail processor in Carrierwave is pretty straightforward, but not from any search query I could construct. The gist: class MyUploader &#38;lt; CarrierWave::Uploader::Base version :custom_thumbnail do process :some_fancy_processing end &#160; def some_fancy_processing # Here [...]]]></description>
			<content:encoded><![CDATA[<p>The latest in my of &#8220;shouldn&#8217;t this be better covered in Google and docs if people really use CarrierWave?&#8221;-series.  Creating a custom thumbnail processor in Carrierwave is pretty straightforward, but not from any search query I could construct.  The gist:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> MyUploader <span style="color:#006600; font-weight:bold;">&amp;</span>lt; <span style="color:#6666ff; font-weight:bold;">CarrierWave::Uploader::Base</span>
  version <span style="color:#ff3333; font-weight:bold;">:custom_thumbnail</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    process <span style="color:#ff3333; font-weight:bold;">:some_fancy_processing</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> some_fancy_processing
    <span style="color:#008000; font-style:italic;"># Here our context is the CarrierWave::Uploader object, so we have its full</span>
    <span style="color:#008000; font-style:italic;"># assortment of methods at our disposal.  Let's say we want to open an image with</span>
    <span style="color:#008000; font-style:italic;"># openCV and smooth it out.  That would look something like:</span>
    cv_image = <span style="color:#6666ff; font-weight:bold;">OpenCV::CvMat</span>.<span style="color:#CC0066; font-weight:bold;">load</span> <span style="color:#006600; font-weight:bold;">*</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">full_cache_path</span> <span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#008000; font-style:italic;"># See past blog post on the origins of full_cache_path</span>
    cv_image.<span style="color:#9900CC;">smooth</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">5</span>,<span style="color:#006666;">5</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
    <span style="color:#008000; font-style:italic;"># The key to telling CW what data this thumb should use is to save our output to</span>
    <span style="color:#008000; font-style:italic;"># the current_path of the Uploader, a la</span>
    cv_image.<span style="color:#9900CC;">save_image</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">current_path</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Just call #custom_thumbnail.url on your Uploader instance, and you should get the path to the custom result you created.</p>
<p>Using this framework you should be able to get CW to perform whatever sort of custom image processing you want.   Thanks to <a href="http://www.freezzo.com/2010/12/23/create-ffmpeg-processor-for-carrierwave-in-rails-3/">these fellows</a> for helping me decode the #current_path magic here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/rails/howto-create-a-custom-thumbnail-processor-in-carrierwave/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: Store a CarrierWave File Locally After Uploading to S3</title>
		<link>http://www.williambharding.com/blog/rails/howto-store-a-carrierwave-file-locally-after-uploading-to-s3/</link>
		<comments>http://www.williambharding.com/blog/rails/howto-store-a-carrierwave-file-locally-after-uploading-to-s3/#comments</comments>
		<pubDate>Wed, 09 May 2012 23:45:15 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[carrierwave]]></category>
		<category><![CDATA[retrieve_from_cache]]></category>
		<category><![CDATA[retrieve_from_store]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/?p=571</guid>
		<description><![CDATA[Have now needed to do this twice, and both times have required about an hour of sifting through Google morass to figure out how to pull this off. The situation we&#8217;re assuming here is that you have some CarrierWave file that you&#8217;ve stored to a remote location, and you want to get a copy of [...]]]></description>
			<content:encoded><![CDATA[<p>Have now needed to do this twice, and both times have required about an hour of sifting through Google morass to figure out how to pull this off.   The situation we&#8217;re assuming here is that you have some CarrierWave file that you&#8217;ve stored to a remote location, and you want to get a copy of that file locally to manipulate it.  With promising method names like &#8220;retrieve_from_cache!&#8221; and &#8220;cache!&#8221; and &#8220;move_to_cache&#8221; you too may become entangled in the maze of what the hell you&#8217;re supposed to be calling to accomplish this.  Here&#8217;s what.</p>
<p><strong>Step 1</strong>:   Retrieve from your store (the external place your file exists) to cache (your local machine).</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">my_cw_uploader.<span style="color:#9900CC;">cache_stored_file</span>!</pre></div></div>

<p>After running that, if you call</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">my_cw_uploader.<span style="color:#9900CC;">cached</span>?</pre></div></div>

<p>You should get a long string that is the filename for the file that got cached.  Note that the cache status of a file is only saved on a per-object basis, so if you try something like</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">Image.<span style="color:#9900CC;">find</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">my_cw_uploader</span>.<span style="color:#9900CC;">cache_stored_file</span>!</pre></div></div>

<p>&#8230; you will never again see the object that did the caching, and you will never be able to use that cache.   Only call #cache_stored_file! on an object you are keeping around.</p>
<p><strong>Step 2</strong>: Go access the file that you cached.  Not quite as easy as it sounds.  For this, I mixed in the following into my uploader class</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">module</span> <span style="color:#6666ff; font-weight:bold;">CarrierWave::Uploader::Cache</span>
	<span style="color:#9966CC; font-weight:bold;">def</span> full_cache_path
		<span style="color:#996600;">&quot;#{::Rails.root}/public/#{cache_dir}/#{cache_name}&quot;</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>So now when you call</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">my_cw_uploader.<span style="color:#9900CC;">full_cache_path</span></pre></div></div>

<p>You&#8217;ll get the full pathname to the file you downloaded.  </p>
<p>Hope this helps save someone else from an hour of Google hell.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/rails/howto-store-a-carrierwave-file-locally-after-uploading-to-s3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu, Dark Side of Simplicity</title>
		<link>http://www.williambharding.com/blog/technology/victim-of-oversimplicity/</link>
		<comments>http://www.williambharding.com/blog/technology/victim-of-oversimplicity/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 02:55:45 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/?p=540</guid>
		<description><![CDATA[The following is my take on how the current passion for UI &#8220;simplicity&#8221; may be to blame for Unity, the downfall of Ubuntu as I&#8217;ve known &#38; loved it. It&#8217;s wide-ranging, so I won&#8217;t be able to fully substantiate its every point, but if you simply click the area you&#8217;d like to know more about, [...]]]></description>
			<content:encoded><![CDATA[<p>The following is my take on how the current passion for UI &#8220;simplicity&#8221; may be to blame for Unity, the downfall of Ubuntu as I&#8217;ve known &amp; loved it.   It&#8217;s wide-ranging, so I won&#8217;t be able to fully substantiate its every point, but if you simply click the area you&#8217;d like to know more about, I will wish that you were being shown detailed examples in support of my point.   Many of the newly introduced usability issues in Unity are shared by Gnome3, so it seems that now is as good a time as ever for people who care to try to persuade some Linux distro to retain the high standard of developer usability we&#8217;ve become accustomed to.</p>
<p>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Steve Jobs broke my OS, and I don&#8217;t even use a Mac.   It began about 10 years ago, around the time Jobs had re-joined Apple,   and the software industry was smitten with building UI that had every button and link you could need.   &#8220;If they might need it, why not include it?&#8221; seemed to be the effective rationale.</p>
<p><a href="http://www.williambharding.com/blog/wp-content/uploads/2012/04/good-ole-days.gif"><img class="alignleft size-medium wp-image-541" style="margin: 10px; width: 300px;" title="good-ole-days" src="http://www.williambharding.com/blog/wp-content/uploads/2012/04/good-ole-days-300x226.gif" alt="good-ole-days" /></a></p>
<p>Windows XP represented the pinnacle of the art; complete with a &#8220;Start&#8221; button, that, when clicked, exploded into two columns.   These columns in turn had menu options like &#8220;All Programs&#8221; that could themselves balloon out to several more (overlapping) columns.   In the case of the &#8220;All Programs&#8221; specifically, the user was treated to an unordered list of every program they had ever installed (often hundreds).   It was so&#8230;terrible&#8230;yet quick to an advanced user (e.g., those that figured out how to sort it).   For new users, well, you could probably figure out some of the basics within a week.*</p>
<p>But soon people began to decide this was arrangement was not   ideal.   Or even OK.   I noticed this in full force with the release of the first iPhone.   It was a device that was so stripped down that it didn&#8217;t include a feature (secure network access for business email) that would could have increased its user base significantly.   It launched anyway, was quickly dubbed the &#8220;Jesus Phone,&#8221; and has managed to sell a couple  gajillion  units since.</p>
<p>Gone forever were the days of &#8220;the most commercially successful&#8221;  products  were &#8220;the most feature-full&#8221; ones.</p>
<p>This evolution, which I&#8217;d pin as starting around 2006 (first iPhone) has continued expanding its base of believers to present day.   Now, in addition to the set of Apple devices, the default aesthetic for web consumer products has become &#8220;huge buttons / huge text / nothing that requires reading.&#8221;</p>
<p>In the context of the web, I think that this growing obsession with simple UI is usually a great thing.   Like it or not, our attention is fragmented and life&#8217;s too short to read the manual for a product that I simply want to entertain me (see: Twitter, Instagram).</p>
<p>The problem is when the momentum for this trend** pushes it out to use cases where it makes no sense.   Sometimes, a detail-rich interface is required to get the job done efficiently.   In the case where an app is used by novice and sophisticated*** users, a balanced curve of &#8220;level of detail shown to user&#8221; vs &#8220;user expertise level&#8221; might look something like this</p>
<p style="text-align: center; "><a href="http://www.williambharding.com/blog/wp-content/uploads/2012/04/balance_complexity1.png"><img class="size-full wp-image-543 aligncenter" title="balance_complexity1" src="http://www.williambharding.com/blog/wp-content/uploads/2012/04/balance_complexity1.png" alt="balance_complexity1" width="476" height="280" /></a></p>
<p>That is, this balanced approach would dictate that novice users were exposed only to the most essential 10-20% of all UI complexity.   The UI should appear very basic to them.   As the user&#8217;s needs become more sophisticated, the UI reveals contextual choices and/or configuration menus that accommodate their needs as power users of the product.   Novice users are happy because they don&#8217;t see the complex pieces.   Sophisticated users are happy because they can use it with maximum productivity so long as they&#8217;re willing to read a handful of configuration menus.</p>
<p>Products rarely end up this balanced.   Windows XP threw the user in the deep end, both in terms of the learning complexity, and the vast sea of choices/links presented to even the notice user.   OS X freed users from this soup of links and options, though before they got smart about context sensitivity, it often came at the expense of more clicks.</p>
<p>Ubuntu, pre-Unity, was arguably even worse than XP to the poor novice:</p>
<p style="text-align: center; "><a href="http://www.williambharding.com/blog/wp-content/uploads/2012/04/balance-pre-unity.png"><img class="size-full wp-image-544 aligncenter" title="balance-pre-unity" src="http://www.williambharding.com/blog/wp-content/uploads/2012/04/balance-pre-unity.png" alt="balance-pre-unity" width="475" height="285" /></a></p>
<p>No oversized buttons or contextual UI reveal here.   The reason the project thrived was only because the Ubuntu audience is made up largely of users who have advanced expectations for their OS.   Many are programmers.   They have to juggle IDEs, web browsers, web browser tools, and a smattering of terminal shells.   Usually across multiple high resolution monitors, over multiple workspaces.   To them, if complexity is the price that must be paid for configurability, then it shall be paid****.</p>
<p>This isn&#8217;t the sort of thing a novice will understand, let alone feel comfortable with, but the software did meet the needs of it sophisticated user base.</p>
<p>Then came tablets, the momentum of simplicity, and Ubuntu&#8217;s loving ode to it all:   Unity.</p>
<p style="text-align: center; "><a href="http://www.williambharding.com/blog/wp-content/uploads/2012/04/balance-post-unity.png"><img class="size-full wp-image-545 aligncenter" title="balance-post-unity" src="http://www.williambharding.com/blog/wp-content/uploads/2012/04/balance-post-unity.png" alt="balance-post-unity" width="471" height="280" /></a></p>
<p>Because this blog needs to get finished before tomorrow morning, I am forced to gloss over a detailed analysis of the functionality lost between pre- and post-Unity versions of Ubuntu.   A couple salient examples include:   well-integrated dual monitor support, multiple/configurable taskbar support, desktop customization, and ability to keep program menus within each program.   For the quantitative-minded amongst you, the <a href="http://royal.pingdom.com/2011/11/23/ubuntu-linux-losing-popularity-fast-new-unity-interface-to-blame/">compared market share of Ubuntu vs. Mint</a> makes the point more compellingly than my mini-list.</p>
<p>If it&#8217;s not already obvious, I love the trend toward simplicity.   It was one of the main points of opportunity I saw in starting <a href="http://www.bonanza.com">Bonanza</a> back in 2008 &#8212; we sought to build a version of eBay that would be usable to busy people and non-experts.   Simplicity continues to be something that I push for as often as anyone on my team, and I think it continues to be a big difference between our platforms.</p>
<p>But I don&#8217;t believe that &#8220;simplicity&#8221; should be the same thing as &#8220;dumbed down,&#8221; and I wonder if Unity&#8217;s pared down featureset could be a result of the Ubuntu designers mistakenly conflating &#8220;simple&#8221; and &#8220;feature-sparse&#8221;?</p>
<p><strong>tl; dr</strong></p>
<p>&#8220;Simple&#8221; and &#8220;effective&#8221; are closely related for novice users and for simple products.   But they can be inversely related when &#8220;simple&#8221; gets in the way of &#8220;configurability,&#8221; which begets effectiveness for power users.   In the case of Ubuntu, the users are largely geeks who use complex features to maximize productivity.   Give the pared-down version of Ubuntu to novice users, but don&#8217;t let it rob the majority of your users the functionality they need.*****</p>
<p><strong>Update</strong>: Finally inspired to post this to HN after reading <a href="http://digitizor.com/2011/08/04/linus-torvalds-ditches-gnome-for-xfce/">Linus&#8217; comments about Gnome3</a> being a detriment to usability. Given that Gnome3 has traveled a very similar path to Unity in terms of degrading the user experience (for sophisticated users) with its newest release, I am hoping that perhaps a sympathetic designer of Unity or Gnome3 might find this.</p>
<p><span style="text-decoration: underline;">Footnotes</span></p>
<p>*  Though as a computer repair guy, I often saw the concept take far longer to sink in.   And don&#8217;t even get me started on trying to teach my grandparents exactly what a file system was and &#8220;what it did&#8221;</p>
<p>** Regarding use of &#8220;trend&#8221; to label the simplicity movement:   I mean only that it is influencing all corners of design (web, native apps, mobile, and beyond) &#8212; not that it is ephemeral or irrational.</p>
<p>*** &#8220;Sophisticated&#8221; here means &#8220;more advanced,&#8221; or &#8220;more demanding,&#8221; not somuch the &#8220;better looking&#8221; or &#8220;more expensive&#8221; connotations of the word.</p>
<p>**** Of course, something doesn&#8217;t need to be complex to be configurable.   Progressively revealed / contextual UIs can often deliver much of the best from both worlds.   But it&#8217;s also easy to get implement rather intricate revealing schemes incorrectly and be worse off than if you had simply built a cluttered but static interface.</p>
<p>***** What makes it doubly insulting is that until Ocelot, we <em>could </em>get the functionality we needed by choosing the &#8220;Classic Ubuntu&#8221; login.   What explanation is there to chop a feature that&#8217;s already been built&#8230;and provided the main lifeline to advanced users after Unity&#8217;s release?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/technology/victim-of-oversimplicity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixed:  My i7 Intel Dell Laptop is Ridiculously Slow</title>
		<link>http://www.williambharding.com/blog/technology/fixed-my-i7-intel-dell-laptop-is-ridiculously-slow/</link>
		<comments>http://www.williambharding.com/blog/technology/fixed-my-i7-intel-dell-laptop-is-ridiculously-slow/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 03:37:38 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bios]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[i7]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[slow]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/?p=536</guid>
		<description><![CDATA[Most of the Google results I found when digging around on this subject pointed to usual boring causes of slowness: too many programs being run on startup (which you can test with ms-config if you&#8217;re running Windows), anti-virus software, and other boring stuff of that sort. In my case, I had been running Ubuntu so [...]]]></description>
			<content:encoded><![CDATA[<p>Most of the Google results I found when digging around on this subject pointed to usual boring causes of slowness:   too many programs being run on startup (which you can test with ms-config if you&#8217;re running Windows), anti-virus software, and other boring stuff of that sort.   In my case, I had been running Ubuntu so most of those tips are moot.   But to be thorough, I did remove practically any and every resident program that was running on what should have been a zippy Dell <span class="il">Latitude</span> E6520 with a i7-2720QM (2.20GHz, 6M cache) processor.</p>
<p>And yet, running a utility that averaged about 5 seconds on my desktop consistently took 30 seconds on my laptop.   Except for every once in awhile, when it would take 6 or 7 seconds.</p>
<p>Before splurging for a new laptop, I decided to take a peek through my BIOS settings and managed to stumble across the culprit:   the Intel &#8220;Speed Step&#8221; feature.   On my Dell, this was under the &#8220;Performance&#8221; settings.   I guess that the idea of Speed Step is that the i7 powers itself down when it decides you&#8217;d like your system to perform like a 486.   Whatever the logic is that determines when to power down was clearly NOT working as intended on my laptop.   After disabling Speed Step, I have been running for the entire day at speeds very similar to my desktop.</p>
<p>Hopefully someone else thinks to Google for this problem and find themselves helped by a similar approach.   FWIW I suppose that this might mean that the laptop uses more battery, but you can be an informed consumer about whether you want to run fast or power-efficiently.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/technology/fixed-my-i7-intel-dell-laptop-is-ridiculously-slow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Copy Ubuntu packages between servers</title>
		<link>http://www.williambharding.com/blog/uncategorized/copy-ubuntu-packages-between-servers/</link>
		<comments>http://www.williambharding.com/blog/uncategorized/copy-ubuntu-packages-between-servers/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 22:09:05 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/uncategorized/copy-ubuntu-packages-between-servers/</guid>
		<description><![CDATA[For my own reference, this is a piece o cake: http://ubuntuforums.org/showthread.php?t=261366]]></description>
			<content:encoded><![CDATA[<p>For my own reference, this is a piece o cake:</p>
<p>http://ubuntuforums.org/showthread.php?t=261366</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/uncategorized/copy-ubuntu-packages-between-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fix it: Ubuntu CTRL-SHIFT-V Won&#8217;t Paste Into Terminal</title>
		<link>http://www.williambharding.com/blog/technology/fix-it-ubuntu-ctrl-shift-v-wont-paste-into-terminal/</link>
		<comments>http://www.williambharding.com/blog/technology/fix-it-ubuntu-ctrl-shift-v-wont-paste-into-terminal/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 19:16:43 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/?p=532</guid>
		<description><![CDATA[Ugh, just spent an hour traveling from forum to forum trying to figure out why I couldn&#8217;t CTRL-C in Rubymine and CTRL-SHIFT-V into terminal. As many forum posters were eager to point out, it is possible to use CTRL-SHIFT-INSERT or middle click to paste into terminal, just not CTRL-SHIFT-V. Unfortunately, those workarounds were not OK [...]]]></description>
			<content:encoded><![CDATA[<p>Ugh, just spent an hour traveling from forum to forum trying to figure out why I couldn&#8217;t CTRL-C in Rubymine and CTRL-SHIFT-V into terminal.   As many forum posters were eager to point out, it is possible to use CTRL-SHIFT-INSERT or middle click to paste into terminal, just not CTRL-SHIFT-V.   Unfortunately, those workarounds were not OK since my insert key is in the arctic circle of my keyboard, and I don&#8217;t want to touch the mouse.</p>
<p>Luckily, the folks at Rubymine helped me figure out the answer where Google couldn&#8217;t.</p>
<p>The problem is that when running Rubymine via OpenJDK, the clilpboard used is not compatible with the clipboard used in terminal.   The solution was to run Rubymine with Oracle Java instead.   In Rubymine, this is a matter of first installing Oracle Java (I&#8217;ll let you Google that one, you have to add a repository) and then adding the following lines to the beginning of your Rubymine startup script:</p>
<p>export JAVA_HOME=/usr/lib/jvm/java-6-sun<br />
export JDK_HOME=$JAVA_HOME<br />
export RUBYMINE_JDK=$JAVA_HOME</p>
<p>After that you should be golden.   In my hour of Googling I read that many other IDEs (Netbeans in particular) seem to be subject to the same problem with CTRL-SHIFT-V not working.   I&#8217;d reckon that if these users were to change their application to use Oracle Java it would probably resolve the problem in other IDEs as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/technology/fix-it-ubuntu-ctrl-shift-v-wont-paste-into-terminal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Mint Firefox &amp; Chrome :: Remove Search Branding</title>
		<link>http://www.williambharding.com/blog/technology/linux-mint-firefox-chrome-remove-obnoxious-branding/</link>
		<comments>http://www.williambharding.com/blog/technology/linux-mint-firefox-chrome-remove-obnoxious-branding/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 00:50:59 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/?p=525</guid>
		<description><![CDATA[I&#8217;m all for Mint Linux making some bucks via their Chrome and Firefox searchers, but not if it comes at the expense of basic usability. &#60;quickie rant&#62; If I were the Mint maintainers, I&#8217;d take a long look at whether it was desirable (let alone essential) that they hijack my CTRL-K functionality and replace standard [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m all for Mint Linux making some bucks via their Chrome and Firefox searchers, but not if it comes at the expense of basic usability. &lt;quickie rant&gt; If I were the Mint maintainers, I&#8217;d take a long look at whether it was desirable (let alone essential) that they hijack my CTRL-K functionality and replace standard Google results with their poorly formatted, functionality-impaired substitute.&lt;/quickie rant&gt;</p>
<p>Anyhow, if you are here, you&#8217;re probably trying to figure out how to remove the Mint branded search from Firefox and/or Chrome.   And I&#8217;m here to tell you how.</p>
<h2>Remove Search Branding from Firefox</h2>
<ol>
<li>Click on the Google search icon in your title bar</li>
<li>Click &#8220;Manage Search Engines&#8221;</li>
<li>Click the link to &#8220;Get more search engines&#8221;</li>
<li>Choose a Google, any Google, from Mozilla&#8217;s choices.   I chose Google SSL, which worked nicely.</li>
<li>After you install your Google SSL (or other version of Mozilla version of Google), click &#8220;Manage Search Engines&#8221; again, and move your new Google Search to the top of the list.</li>
<li>Voila!</li>
</ol>
<h2>Remove Search Branding from Chrome</h2>
<p>There are probably an assortment of ways to accomplish this.   I chose to Google &#8220;Chrome deb package&#8221; which led me to Google&#8217;s official distributions of Chrome, <a href="http://www.google.com/chrome/eula.html?platform=linux">which can be found here</a>.   After following Google&#8217;s instructions to install my Chrome package, all was well (though that meant that I was running &#8220;Chrome&#8221; rather than &#8220;Chromium.&#8221;   Whatevskis.)</p>
<p>Other than the annoying search stuff, so far Mint Linux seems to be an easy-to-setup iteration on the developer utopia that Ubuntu was built as, before it decided to go the way of the mandatory Unity.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/technology/linux-mint-firefox-chrome-remove-obnoxious-branding/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ruby debugger list local variables</title>
		<link>http://www.williambharding.com/blog/rails/ruby-debugger-list-local-variables/</link>
		<comments>http://www.williambharding.com/blog/rails/ruby-debugger-list-local-variables/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 06:04:22 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Rails]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/?p=523</guid>
		<description><![CDATA[Short and sweet. You want to list local variables in ruby-debug? Try info locals You can also get ruby-debug to list your stack, instance variables, and much more. Type in plain old &#8220;info&#8221; into debugger to see a full list of what ruby-debug is willing to reveal to you.]]></description>
			<content:encoded><![CDATA[<p>Short and sweet.  You want to list local variables in ruby-debug?  Try</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">info locals</pre></div></div>

<p>You can also get ruby-debug to list your stack, instance variables, and much more.  Type in plain old &#8220;info&#8221; into debugger to see a full list of what ruby-debug is willing to reveal to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/rails/ruby-debugger-list-local-variables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Likes &amp; Dislikes:  The Product Edition</title>
		<link>http://www.williambharding.com/blog/technology/likes-dislikes-the-product-edition/</link>
		<comments>http://www.williambharding.com/blog/technology/likes-dislikes-the-product-edition/#comments</comments>
		<pubDate>Tue, 17 May 2011 20:27:29 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/?p=515</guid>
		<description><![CDATA[Anyone who has followed my blogs over the last couple years knows that I&#8217;m a very big fan of the like/dislike list. But I generally try to exclude products from my lists since they don&#8217;t have that &#8220;essence of life&#8221; quality that I&#8217;ve strived for in my lists. But products are important, too. So here [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone who has followed my blogs over the last couple years knows that I&#8217;m a very big fan of the like/dislike list.   But I generally try to exclude products from my lists since they don&#8217;t have that &#8220;essence of life&#8221; quality that I&#8217;ve strived for in my lists.</p>
<p>But products are important, too.   So here you have it:   a like/dislike list dedicated to the products I use or have used.   I&#8217;ll actually split this particular list into four levels of like because I can quantify more precision when it comes to products.</p>
<p><span style="text-decoration: underline;">Love</span></p>
<ul>
<li><strong>VMWare</strong>.   Being able to seamlessly run Ubuntu &amp; Win7 side-by-side (and have both of them performant) still feels like the coolest thing ever, even after doing it a year.</li>
<li><strong>Rubymine</strong>.   See:   <a href="http://www.williambharding.com/blog/technology/best-of-rails-gui-performance-and-other-utilities/">favorite Rails tools</a></li>
<li><strong>New Relic</strong>.   See: <a href="http://www.williambharding.com/blog/technology/best-of-rails-gui-performance-and-other-utilities/">favorite Rails tools</a></li>
<li><strong>Quora</strong>.   Today it is very good.   And if they don&#8217;t mess it up, next year it is going to be the oracle that has an intelligent answer for everything.</li>
<li><strong>Google Search</strong>.   So easy to take for granted, given how it is woven into every minute of our lives.   But can you imagine a world without it?   Try using any other search engine for solving programming problems if you want to remember why Google search deserves your love.</li>
</ul>
<p><span style="text-decoration: underline;">Like</span></p>
<ul>
<li><strong>Windows 7. </strong> Terrible for programming Rails, great for UI/usability and productivity.</li>
<li><strong>Ubuntu. </strong>Great for programming Rails, passable for usability and productivity (Gimp and Openoffice sure as hell ain&#8217;t no Photoshop and MS Office)</li>
<li><strong>Microsoft Onenote</strong>.   I have found no better tool for mapping whatever arbitrary structure/idea from my brain into tangible existence.</li>
<li><strong>Firefox 4</strong>.   It has Firebug.</li>
<li><strong>Google Chrome.</strong> Introduced to the world the realization that we were browsing at half-speed.   Low memory footprint.</li>
<li><strong>Github</strong>. The world of open source programming could accurately be talked about in terms of &#8220;BG&#8221; and &#8220;AG&#8221;.   It is not an overstatement to say that, along with Git (see below), Github has completely and utterly revolutionized the world&#8217;s ability to collaborate on complex projects.   The residual impact of that change is hard to grasp.</li>
<li><strong>Stackoverflow</strong>.   Opportunity for them to move to &#8220;love&#8221; if ever they could build a half-decent search&#8230; I still use Google to find answers that I suspect are somewhere on Stackoverflow</li>
<li><strong>Amazon</strong>.   Like Google Search, above, it is such a part of our daily lives that it&#8217;s easy to take for granted.   But also like Google, imagine shopping for commodities without it.   Not to mention their efforts to lead the cloud computing movement.</li>
</ul>
<p><span style="text-decoration: underline;">Deeply Divided</span></p>
<ul>
<li><strong>Git</strong>.   The &#8220;deeply divided&#8221; category exists specifically for git.   On one hand, I love what it lets me do (effectively manage source control).   On the other hand, I despise how unnecessarily arcane the syntax is, and how the documentation feels like it was written by a seemly unbathed newsgroup</li>
</ul>
<p><span style="text-decoration: underline;">Dislike</span></p>
<ul>
<li><strong>Rhythmbox.</strong> Happy to remove them from this list if they can ever pull off the herculean feat of not considering the word &#8220;The&#8221; when sorting artists by name.   Update: <a href="http://code.google.com/p/artistprefix/">ho, shit</a>!   A hero!</li>
<li><strong>Dell&#8217;s website.</strong> Inconsistent, buggy, hard to shop.   Do like: Dell&#8217;s products, esp the pricing of them)</li>
<li><strong>eMusic</strong>. Every company has a right to pivot and drop their early adopters &#8212; it is business.   But the manner in which eMusic made this pivot (with an utter lack of advance notice and concerted effort to mask what was really happening) still rubs me the wrong way when I think about it.</li>
</ul>
<p><span style="text-decoration: underline;">Despise</span></p>
<ul>
<li><strong>Quicken</strong>.   Everything feels like it takes 5x longer than necessary.</li>
<li><strong>Microsoft Money</strong>.   Try to use it sometime.</li>
<li><strong>Playstation 3</strong>.   Already <a href="http://williambharding.com/thoughts/2011/02/dislikes-2011-ps3-as-my-mortal-enemy/">hated their constant 45 minute system updates</a>; and days after I wrote that blog post, they give away my CC and password to the Internet.   Bang up job, guys.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/technology/likes-dislikes-the-product-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EC2 vs. Heroku vs. Blue Box Group for Rails Hosting</title>
		<link>http://www.williambharding.com/blog/rails/ec2-vs-heroku-vs-blue-box-group-for-rails-hosting/</link>
		<comments>http://www.williambharding.com/blog/rails/ec2-vs-heroku-vs-blue-box-group-for-rails-hosting/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 09:50:43 +0000</pubDate>
		<dc:creator>Bill</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[bbg]]></category>
		<category><![CDATA[blue box group]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[hosting]]></category>

		<guid isPermaLink="false">http://www.williambharding.com/blog/?p=504</guid>
		<description><![CDATA[Not to kick a company when it&#8217;s (literally) down, but today&#8217;s 12+ hours EC2 outage has finally driven me to write a blog post I&#8217;ve been holding in my head for several months now: comparing a few of the major players within today&#8217;s Rails hosting ecosystem. In this post, I&#8217;ll compare and contrast EC2, Heroku, [...]]]></description>
			<content:encoded><![CDATA[<p>Not to kick a company when it&#8217;s (literally) down, but today&#8217;s 12+ hours EC2 outage has finally driven me to write a blog post I&#8217;ve been holding in my head for several months now:   comparing a few of the major players within today&#8217;s Rails hosting ecosystem.   In this post, I&#8217;ll compare and contrast EC2, Heroku, and Blue Box Group.   I&#8217;ve chosen these three not only because of their popularity, but also because I believe each has a value proposition distinct from the other two, which which makes each ideally suited for different types  of customers.   In the interests of full disclosure, we are a current Blue Box Group customer, but we have spent a great deal of time looking at our choices, and I think that all have their advantages in specific situations.   The facts and opinions below are the result of weighing data gleaned from Googling, popular opinion, and three years running a Rails site that has grown to serve more than 2m uniques per month.</p>
<h3>Heroku vs. EC2 vs. Blue Box Group, Round 1:   Price<span style="text-decoration: underline;"><br />
</span></h3>
<p>Let&#8217;s start by establishing a pricing context.   We&#8217;ll use a dedicated (<em>not</em>-shared resource/virtual) 8 GB, 8 core server with 1TB bandwidth as our baseline, since it is available across all three services (with some caveats, mentioned below).</p>
<table border="0" cellspacing="0" frame="VOID" rules="NONE">
<tbody>
<tr>
<td width="240" height="17" align="LEFT"></td>
<td style="text-align: right;" width="86"><strong>Heroku</strong></td>
<td style="text-align: right;" width="129"><strong>EC2 (High-CPU XL)</strong></td>
<td style="text-align: right;" width="86"><strong>BBG</strong></td>
</tr>
<tr>
<td height="17" align="LEFT"><strong>Dedicated 8-Core Server with 8 GB</strong></td>
<td align="RIGHT"><a href="http://www.heroku.com/pricing#11-14+ika+mecha">$800.00</a></td>
<td align="RIGHT"><a href="http://aws.amazon.com/ec2/pricing/">$490.00</a></td>
<td align="RIGHT">$799.00*</td>
</tr>
<tr>
<td height="17" align="LEFT"><strong>1 TB Bandwidth</strong></td>
<td align="RIGHT">$0.00</td>
<td align="RIGHT"><a href="http://aws.amazon.com/ec2/pricing/">$125.00</a></td>
<td align="RIGHT">$0.00</td>
</tr>
<tr>
<td height="17" align="LEFT"><strong>Total</strong></td>
<td align="RIGHT">$800.00</td>
<td align="RIGHT">$615.00-695.00**</td>
<td align="RIGHT">$799.00</td>
</tr>
</tbody>
</table>
<p>* In the case of BBG, their most current prices aren&#8217;t on their <a href="http://www.bluebox.net/pricing">pricing page</a>.   They should fix that.</p>
<p>** This doesn&#8217;t include <a href="http://aws.amazon.com/ebs/">I/O costs for Amazon EBS</a>.   While these are fairly impossible to predict (varying greatly from app to app), it sounds from Amazon like you&#8217;d be talking about something more than $40 for this.   Give that we&#8217;re comparing a &#8220;high end machine&#8221; here, perhaps $80 might be a more accurate estimate, that would make the price more like $700.</p>
<p>Various minor approximations were made to try to get this as close to apples-to-apples as possible, but the biggest caveat is that the Heroku instance (Ika) only has about 25% the CPU as the EC2 and BBG instances (though it has the same amount of memory.   They don&#8217;t configure their DBs with comparable CPU muscle).   The next highest Heroku instance (Zilla)  is $1600 per month, and more comparable to the other two in terms of CPU, but has twice as much memory as they do.   Note that EC2 and BBG make offer discounts when committing to a year of service &#8212; I couldn&#8217;t find a comparable offer from Heroku, which is not to say that it doesn&#8217;t exist (readers?).   These discounts typically range from 10-25% off the no-commitment price.</p>
<h3>Heroku vs. EC2 vs. Blue Box Group, Round 2:   Setup</h3>
<p>Heroku is ridiculously get started with, the runaway winner of the bunch when it comes to hitting the ground running with zero red tape.   Per their homepage, all you do is run a couple rake commands and you&#8217;re in business.   Even cooler, they offer a <a href="http://addons.heroku.com/">vast and useful collection of add-ons</a> to make it easy to get started on whatever the specific thing is that you app is supposed to do.</p>
<p>Setting up Rails with EC2 is not quite the same walk in the park, but it&#8217;s not necessarily bad.   Amazon handles configuring the OS for you, so in terms of getting your app server setup, you are essentially just   getting Ruby and Rubygems installed, and letting Bundler take care of the rest.   If you managed to set up your development environment in Linux or on a Mac, chances are you won&#8217;t have too much trouble using packages to fill in the gaps for other non-Ruby elements to your application (like Sphinx). When EC2 gets trickier is when you start figuring out how to integrate EBS (Amazon Elastic Block storage, necessary for data that you don&#8217;t want to disappear) and the other 20 Amazon web services that you may or may not want/need to use to run your app.   It can ultimately amount to quite a research project to figure out which tools you want, which ones you need, and how to tie them all together.   That said, you may end up using these tools (S3 in particular) even if you use BBG or Heroku, so that cost is not entirely unique to using EC2.</p>
<p>Ease of getting started on Blue Box is somewhere in between EC2 and Heroku.   There is no high-tech set of tools that automatically build stuff like Heroku, but unlike EC2, you have a friendly and qualified team willing to help you get your server setup in the best possible way.   In my experience, when they have setup new servers, they will ask in advance how we plan to use the server, and then automatically handle getting all of the baseline stuff we&#8217;ll need installed  such that we can just focus on deploying our app.   Which brings me to Round 3&#8230;</p>
<h3>Heroku vs. EC2 vs. Blue Box Group, Round 3: What&#8217;s Best Suited for What?<span style="text-decoration: underline;"><br />
</span></h3>
<p>For pet projects, small sites, or newly started sites, I think that hosting with Heroku is a no-brainer.   You can be up and running immediately, you get a huge variety of conveniences with their add-ons, and there is a wealth of Google help behind you if you should happen to encounter an trouble, given the immense user base Heroku has managed to establish.   All three of these these services can scale up available hardware within hours/minutes-not-days (yay for clouds!), but Heroku is probably the most straightforward to rapidly grow an application with their &#8220;Dynos&#8221; approach.   However, given their highest cost amongst the choices, and their lower-than-BBG application-specific support, the significance of those advantages will erode as your application grows into the 10&#8242;s of thousands of monthly visitors.</p>
<p>I believe that EC2&#8242;s greatest selling point is its price, with its scalability and ubiquity (= generally good Googlability) being close seconds.   As detailed above, on balance, EC2 tends to run 20-30% cheaper than other choices by leveraging their immense scale.   Nifty features like <a href="http://aws.amazon.com/autoscaling/">auto-scale</a> have the promise of making instant growth possible if you get flooded after your Oprah appearance.   The trade-off for those advantages is that you will get 0 application-specific support, and even getting generic system-wide support can be hit-and-miss, as <a href="http://www.geekwire.com/2011/amazoncoms-real-problem-outage-communication">folks who suffered through today&#8217;s EC2 outage learned firsthand</a>.   Transparency is not Amazon&#8217;s strong suit at this point in their evolution, which can be a real problem if you have real customers who depend on your product and want to know when they can expect to see your website again during an outage.   Also, as mentioned in the setup section, figuring out your way around the Amazon product ecosystem can be dauting at first.</p>
<p>I would consider EC2 the best choice for intermediate-sized businesses, particularly if 100% uptime is not imperative to their existence.   EC2 is a great option for bootstrapped startups who want to get online as cheaply as possible, and are willing to put in the extra work setting up their servers in exchange for those cost savings.   Also, since you will probably be unclear about what kind of resources your app is going to consume as it scales, EC2 is a great proving ground to get a sense for what kind of resources you might need if you decide to venture beyond Amazon for improved reliability and service.   I would also take a long look at EC2 for huge businesses that can afford their own IT department, which diminishes the significance of EC2&#8242;s lack of application-specific support or monitoring.</p>
<p>While their prices are competitive with EC2, I would assert that the real differentiator with Blue Box is their focus on service.   Included by default for business-sized BBG customers is  24/7 pro-active human monitoring of all services, including the ability to bring servers back online if they should happen to crash and you&#8217;re not around.   Having gone through a fair number of web hosts in our day, we we have come to realize that, once you are signed up at a given host, it can be a huge pain to change.   Most hosts use this knowledge to their advantage, and after a very romantic honeymoon period, become inattentive to their customer&#8217;s needs after it becomes clear the customer would be hard-pressed to move.</p>
<p>At Blue Box, their customer-focused attitude has not diminished a bit over time.   We still regularly find them answering our questions&#8230;on the weekend&#8230;within minutes of the question being sent.   Equally important, Jesse Proudman (BBG CEO) has built a team around him that gives the customer the benefit of the doubt.   In more than a year of being hosted at BBG, I can not ever remember them &#8220;blaming&#8221; us for server changes we&#8217;ve made that have caused havoc (not the case at some of our past hosts).   Instead, BBG has a solution-focused team that is consistently personable, reasonable, and most importantly, effective when it comes to solving tricky application and server problems.</p>
<p>While BBG offers small VPS instances, as well as cloud servers that can quickly scale, I consider their sweet spot to be businesses that have grown beyond the point of being able to easily maintain their server cluster themselves, but they don&#8217;t want to hire an on-staff IT guy.   Or maybe they do have an IT guy, but they really need two.   Over the past couple years, BBG has been our &#8220;IT guy,&#8221; working to implement systems for us ranging from a Mediawiki server, to load balancers, to Mysql master-master failover clusters.   And compared to having a real IT guy on staff, the price is a huge bargain (not to mention the savings on health insurance, taxes, etc.)</p>
<p>Another nice benefit for those that have been stung by EC2/Heroku uptime hiccups:   in 20 months with BBG, our total system downtime has been something between 1-2 hours (excluding downtime caused by our mistakes).</p>
<h3>Conclusion</h3>
<p>The best host for a particular Rails app depends on a number of factors, including phase of development (pre-launch? newly launched? rapidly growing? already huge?), need for 100% uptime, makeup of team, and cash available.   Hopefully this post will be helpful to someone trying to figure out which host makes most sense for their unique situation.   Please do post any questions or anecdotes from your hosting experience for future Google visitors.</p>
<h3>Update:   Response from BBG</h3>
<p>Blue Box emailed me after this post, with a few extra details that I believe are pertinent:</p>
<ul>
<li><span>4 x 300GB 15k SAS outperforms EBS (which both Heroku and Amazon rely on) by almost 30% based on our client benchmarks.</span></li>
<li><span><span>Neither Heroku nor Amazon provide 24 x 7 monitoring with proactive human response.   This can be is a *key* differentiator, particularly when comparing costs.</span></span></li>
<li><span><span><span>All of our dedicated database instances are running bare metal, meaning you gain consistent and reliable performance, and aren&#8217;t subject to similar massive outages caused by the muli-tenancy of a SAN.</span></span></span></li>
</ul>
<p>If anyone from Amazon or Heroku would like to provide extra details of what makes them a strong choice, I&#8217;d be only too happy to post those as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williambharding.com/blog/rails/ec2-vs-heroku-vs-blue-box-group-for-rails-hosting/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

