<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Carl Mercier's blog</title>
	
	<link>http://blog.carlmercier.com</link>
	<description>me = entrepreneur + hacker;</description>
	<pubDate>Mon, 13 Oct 2008 16:23:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/CarlMercier" type="application/rss+xml" /><item>
		<title>Announcing install_gems.rb</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/419624210/</link>
		<comments>http://blog.carlmercier.com/2008/10/13/announcing-install_gemsrb/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 15:50:53 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[Defensio]]></category>

		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[Software development]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[capistrano]]></category>

		<category><![CDATA[deployment]]></category>

		<category><![CDATA[install_gems]]></category>

		<category><![CDATA[install_gems.rb]]></category>

		<category><![CDATA[merb]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[rubygems]]></category>

		<category><![CDATA[rubyonrails]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/?p=154</guid>
		<description><![CDATA[Over the weekend, I was rethinking the way we should deploy our Merb application (our API) for Defensio.  Everything I&#8217;ll say here applies to Rails as well.
Managing gems has been painful lately.  Like most people, we&#8217;re freezing them, which helps tremendously.  However, there&#8217;s a few problems with this approach:

We can&#8217;t freeze C [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend, I was rethinking the way we should deploy our Merb application (our API) for <a href="http://defensio.com" target="_blank">Defensio</a>.  Everything I&#8217;ll say here applies to Rails as well.</p>
<p>Managing gems has been painful lately.  Like most people, we&#8217;re freezing them, which helps tremendously.  However, there&#8217;s a few problems with this approach:</p>
<ul>
<li>We can&#8217;t freeze C extensions because they need to be compiled for the target platform.  We develop on OS X and Linux 64, but deploy to Linux i386.  As a workaround, we currently freeze but recompile them on every deployment.  Definitely not optimal.</li>
<li>Our frozen gems directory is getting huge.</li>
<li>It&#8217;s becoming complicated and quite a mess to manage multiple gem versions for different branches/tags.</li>
<li>We never quite know which branch needs which gem.</li>
</ul>
<p>Of course, we could manually install the gems we need on our servers.  But the word &#8220;manually&#8221; generally leads to &#8220;epic fail&#8221;.</p>
<p>So I thought, why not install them at deployment time, just before restarting the Mongrels, with Capistrano?  That seemed like a pretty good idea!  The only problem is that Rubygems will always install a gem when asked to do so, even if it&#8217;s already installed.</p>
<p>That&#8217;s where <a href="http://github.com/karabunga/install_gems/tree/master" target="_blank">install_gems.rb</a> comes in.  install_gems.rb takes a file name as an argument.  This file contains a simple list of gems along with their version number.  A custom installation command can also be specified.</p>
<p>Here&#8217;s an example:<br />
<code><br />
# This is an example file.  As you can see, it supports comments.<br />
haml 2.0.3<br />
eventmachine 0.12.2<br />
# Notice the custom command specified after the --<br />
termios 0.9.4 -- gem install termios -v 0.9.4 --no-rdoc --no-ri</p></blockquote>
<p></code></p>
<p>To install the above gems, you&#8217;d simply run<br />
<code>./install_gems.rb input_file</code></p>
<p>install_gems.rb has a few advantages over vanilla rubygems:</p>
<ul>
<li>It will only install a gem if the specified version is not already installed. That&#8217;s obviously much faster than reinstalling everything every time.</li>
<li>C extensions will be properly compiled.</li>
<li>Using different gem versions in different branches/tags/releases is now very easy.  You just have to maintain a list of required gems in your Git repository and make sure Capistrano runs install_gems.rb against this list before restarting the application servers.</li>
<li>It forces us to keep an up-to-date list of the gems we need.</li>
</ul>
<p>Of course, for this to work as expected, you&#8217;ll need to require specific gem versions in your application.  Your production server will likely have multiple versions of the same gems installed and if you don&#8217;t specify which version of the gem you want to require, things might (or will) break.</p>
<p>I released <a href="http://github.com/karabunga/install_gems/tree/master" target="_blank">install_gems.rb on GitHub</a> and <a href="http://danielharan.com" target="_blank">Daniel Haran</a> has already submitted a patch.  Feel free to do so as well, I&#8217;m a puller!</p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/419624210" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/10/13/announcing-install_gemsrb/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/10/13/announcing-install_gemsrb/</feedburner:origLink></item>
		<item>
		<title>The art of losing a customer</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/381030432/</link>
		<comments>http://blog.carlmercier.com/2008/09/02/the-art-of-losing-a-customer/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 04:12:21 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/?p=151</guid>
		<description><![CDATA[If you sent me an email in the last few months and you just received a confirmation e-mail from a company called SpamArrest, you can ignore it.
I&#8217;m trying all sorts of crazy things to once and for all solve my e-mail spam problem.  Gmail ain&#8217;t cutting it for me.  I decided to give SpamArrest a [...]]]></description>
			<content:encoded><![CDATA[<p>If you sent me an email in the last few months and you just received a confirmation e-mail from a company called SpamArrest, you can ignore it.</p>
<p>I&#8217;m trying all sorts of crazy things to once and for all solve my e-mail spam problem.  Gmail ain&#8217;t cutting it for me.  I decided to give SpamArrest a go even though I&#8217;m not a big fan of the <a href="http://en.wikipedia.org/wiki/Challenge-response_spam_filtering" target="_blank">Challenge/Response</a> principle.</p>
<p>The company lost my business within 2 minutes.  They fetched mail from my inbox and sent a challenge/response to everybody who had an email sitting there&#8230; about a thousand people!  I don&#8217;t need retroactive service thank you!  I already dealt with those emails thank you.</p>
<p>I&#8217;m truly sorry about this.  I&#8217;m out of SpamArrest already.  Any other suggestion?</p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/381030432" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/09/02/the-art-of-losing-a-customer/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/09/02/the-art-of-losing-a-customer/</feedburner:origLink></item>
		<item>
		<title>Facebook can’t afford software licenses?</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/370059687/</link>
		<comments>http://blog.carlmercier.com/2008/08/20/facebook-cant-afford-software-licenses/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 15:27:18 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[Cool/funny/stupid stuff]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/?p=144</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://blog.carlmercier.com/wp-content/uploads/2008/08/picture-3.png"><img class="alignnone size-full wp-image-146" title="picture-3" src="http://blog.carlmercier.com/wp-content/uploads/2008/08/picture-3.png" alt="" width="500" height="374" /></a></p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/370059687" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/08/20/facebook-cant-afford-software-licenses/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/08/20/facebook-cant-afford-software-licenses/</feedburner:origLink></item>
		<item>
		<title>Here’s a reason why we’re such Mac fanboys</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/369654279/</link>
		<comments>http://blog.carlmercier.com/2008/08/20/heres-a-reason-why-were-such-mac-fanboys/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 04:44:52 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[customer]]></category>

		<category><![CDATA[mac]]></category>

		<category><![CDATA[satisfaction]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/?p=141</guid>
		<description><![CDATA[
According to the American Customer Satisfaction Index (ACSI), Apple still tops the list as highest in customer satisfaction for personal computers. Apple&#8217;s customer satisfaction score reached a record 85, which was 10 points higher Dell, its closest competitor.
&#8220;We haven&#8217;t seen anything like this before, where a company scores 10 points over its nearest rival,&#8221; said [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.carlmercier.com/wp-content/uploads/2008/08/apple-logo1.jpg"><img class="size-medium wp-image-142 alignleft" title="apple-logo1" src="http://blog.carlmercier.com/wp-content/uploads/2008/08/apple-logo1-248x300.jpg" alt="" width="89" height="108" /></a></p>
<p><em>According to the American Customer Satisfaction Index (ACSI), Apple still tops the list as highest in customer satisfaction for personal computers. Apple&#8217;s customer satisfaction score reached a record 85, which was 10 points higher Dell, its closest competitor.</em></p>
<p><em>&#8220;We haven&#8217;t seen anything like this before, where a company scores 10 points over its nearest rival,&#8221; said Claes Fornell, the head of the American Customer Satisfaction Index (ACSI), conducted quarterly by the University of Michigan.</em></p>
<p>I personally had to contact Apple a few times and every time, they exceeded my expectations.  They know how to treat their customers.  I can&#8217;t say the same for most companies I had to contact.</p>
<p>Read the full story here: <a href="http://www.macrumors.com/2008/08/19/app-tops-customer-satisfaction-surveys/" target="_blank">http://www.macrumors.com/2008/08/19/app-tops-customer-satisfaction-surveys/</a></p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/369654279" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/08/20/heres-a-reason-why-were-such-mac-fanboys/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/08/20/heres-a-reason-why-were-such-mac-fanboys/</feedburner:origLink></item>
		<item>
		<title>I Google Myself</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/369005112/</link>
		<comments>http://blog.carlmercier.com/2008/08/19/i-google-myself/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 12:37:20 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[Cool/funny/stupid stuff]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/?p=139</guid>
		<description><![CDATA[Must see video!


]]></description>
			<content:encoded><![CDATA[<p>Must see video!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="464" height="392" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowScriptAccess" value="always" /><param name="src" value="http://embed.break.com/NTU2Mzk2" /><embed type="application/x-shockwave-flash" width="464" height="392" src="http://embed.break.com/NTU2Mzk2" allowscriptaccess="always"></embed></object><br />
<span style="font-size: xx-small;"><a href="http://www.break.com/index/i-google-myself.html"></a></span></p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/369005112" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/08/19/i-google-myself/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/08/19/i-google-myself/</feedburner:origLink></item>
		<item>
		<title>!$title$!</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/342841498/</link>
		<comments>http://blog.carlmercier.com/2008/07/22/title/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 19:14:34 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[!$mt_keywords$!]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/2008/07/22/title/</guid>
		<description><![CDATA[!$text$!
]]></description>
			<content:encoded><![CDATA[<p>!$text$!</p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/342841498" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/07/22/title/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/07/22/title/</feedburner:origLink></item>
		<item>
		<title>Sometimes, being in Canada just plain sucks.</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/338584801/</link>
		<comments>http://blog.carlmercier.com/2008/07/18/sometimes-being-in-canada-just-plain-sucks/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 02:08:30 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[Cool/funny/stupid stuff]]></category>

		<category><![CDATA[appstore]]></category>

		<category><![CDATA[canada]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/?p=131</guid>
		<description><![CDATA[
Ok.  This definitely goes in the rant category.  I got myself a shiny new iPhone 3G.  I decided to play by the rules (this time): I didn&#8217;t unlock it, I didn&#8217;t jailbreak it.  Problem is, most of the apps I want are not available here.  What gives?
Just to name a few: Pandora, Loopt, AOL Radio, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.carlmercier.com/wp-content/uploads/2008/07/picture-1.png"><img class="aligncenter size-full wp-image-132" title="App Store in Canada: sucks." src="http://blog.carlmercier.com/wp-content/uploads/2008/07/picture-1.png" alt="" width="500" height="273" /></a></p>
<p>Ok.  This definitely goes in the rant category.  I got myself a shiny new iPhone 3G.  I decided to play by the rules (this time): I didn&#8217;t unlock it, I didn&#8217;t jailbreak it.  Problem is, most of the apps I want are not available here.  What gives?</p>
<p>Just to name a few: Pandora, Loopt, AOL Radio, Google Mobile.  Why does technology always have to suck in Canada?  Not only we get ripped off BAD by mobile carriers, but we can&#8217;t do half of what people in the US can do with their mobile devices.</p>
<p>EDIT: and some more: Jott, Evernote, Yelp, Save Benjis, Ebay Mobile,</p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/338584801" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/07/18/sometimes-being-in-canada-just-plain-sucks/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/07/18/sometimes-being-in-canada-just-plain-sucks/</feedburner:origLink></item>
		<item>
		<title>Montreal Startup Index</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/338209671/</link>
		<comments>http://blog.carlmercier.com/2008/07/17/montreal-startup-index/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 17:04:19 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[Defensio]]></category>

		<category><![CDATA[Startup and business]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/?p=129</guid>
		<description><![CDATA[The Montreal Startup Index for July 2008 is out.  To my amazement, BOTH my startups are in the top 15!
Ajaxwhois (recently acquired) is at #9, and Defensio is at #13.  Oddly enough, Defensio has a lot more traffic than Ajaxwhois.  However, API traffic is not reflected in those rankings and since 99.9% of our traffic [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.techvibes.com/blog/montreal-start-up-index-july-2008/" target="_blank">The Montreal Startup Index for July 2008</a> is out.  To my amazement, BOTH my startups are in the top 15!</p>
<p><a href="http://ajaxwhois.com" target="_blank">Ajaxwhois</a> (recently acquired) is at #9, and <a href="http://defensio.com" target="_blank">Defensio</a> is at #13.  Oddly enough, Defensio has a lot more traffic than Ajaxwhois.  However, API traffic is not reflected in those rankings and since 99.9% of our traffic comes through our API, Defensio is not scoring as high as it should.</p>
<p>I&#8217;m sure our friends from <a href="http://praized.com" target="_blank">Praized</a> will take the list by storm in the coming months.  <a href="http://standoutjobs.com" target="_blank">Standout Jobs</a> is also scoring pretty high.  Congrats to all!</p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/338209671" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/07/17/montreal-startup-index/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/07/17/montreal-startup-index/</feedburner:origLink></item>
		<item>
		<title>iPhone 3G, you know you want it!</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/331819937/</link>
		<comments>http://blog.carlmercier.com/2008/07/10/iphone-3g-you-know-you-want-it/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 15:30:40 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/?p=127</guid>
		<description><![CDATA[Camilo just sent me that&#8230; so true!  You know what I&#8217;ll do tomorrow   (click to enlarge)

]]></description>
			<content:encoded><![CDATA[<p><a href="http://camilolopez.com" target="_blank">Camilo</a> just sent me that&#8230; so true!  You know what I&#8217;ll do tomorrow <img src='http://blog.carlmercier.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (click to enlarge)</p>
<p style="text-align: center;"><a href="http://blog.carlmercier.com/wp-content/uploads/2008/07/1125.gif"><img class="alignnone size-medium wp-image-128 aligncenter" title="iPhone 3G financial advice" src="http://blog.carlmercier.com/wp-content/uploads/2008/07/1125-287x300.gif" alt="" width="287" height="300" /></a></p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/331819937" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/07/10/iphone-3g-you-know-you-want-it/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/07/10/iphone-3g-you-know-you-want-it/</feedburner:origLink></item>
		<item>
		<title>Podcast: Building Developer-Friendly Web Service APIs</title>
		<link>http://feeds.feedburner.com/~r/CarlMercier/~3/313997258/</link>
		<comments>http://blog.carlmercier.com/2008/06/17/podcast-building-developer-friendly-web-service-apis/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 18:41:08 +0000</pubDate>
		<dc:creator>Carl Mercier</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[dabbledb]]></category>

		<category><![CDATA[Defensio]]></category>

		<category><![CDATA[facebook]]></category>

		<category><![CDATA[freshbooks]]></category>

		<category><![CDATA[podcast]]></category>

		<category><![CDATA[pownce]]></category>

		<category><![CDATA[sxsw]]></category>

		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://blog.carlmercier.com/?p=126</guid>
		<description><![CDATA[
If you&#8217;re interested, the podcast for Building Developer-Friendly Web Service APIs @ SxSW was just released. I was on the panel with Avi Bryant (DabbleDB), Leah Culver (Pownce), Ari Steinberg (Facebook) and Ben Vinegar (Freshbooks).  Not a bad line-up!
Here&#8217;s the podcast
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.carlmercier.com/wp-content/uploads/2008/06/2347830409_4b4a5ae238.jpg"><img class="aligncenter size-full wp-image-125" title="Building Developer-Friendly Web Service APIs @ SxSW 2008" src="http://blog.carlmercier.com/wp-content/uploads/2008/06/2347830409_4b4a5ae238.jpg" alt="" width="500" height="333" /></a></p>
<p>If you&#8217;re interested, the podcast for Building Developer-Friendly Web Service APIs @ SxSW was just released. I was on the panel with Avi Bryant (DabbleDB), Leah Culver (Pownce), Ari Steinberg (Facebook) and Ben Vinegar (Freshbooks).  Not a bad line-up!</p>
<p><a href="http://2008.sxsw.com/blogs/podcasts.php/2008/06/16/building_developer_friendly" target="_blank">Here&#8217;s the podcast</a></p>
<img src="http://feeds.feedburner.com/~r/CarlMercier/~4/313997258" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.carlmercier.com/2008/06/17/podcast-building-developer-friendly-web-service-apis/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.carlmercier.com/2008/06/17/podcast-building-developer-friendly-web-service-apis/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.333 seconds --><!-- Cached page served by WP-Cache -->
