<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>watch this &amp;amp;nbsp;</title>
    <description>the official mrchucho blog</description>
    <link>http://mrchucho.net/posts.rss</link>
    <item>
      <title>The correct way to override ActiveRecord::Base#destroy</title>
      <description>&lt;p&gt;In order to correctly override #destroy in an ActiveRecord model, you actually need to implement #destroy_without_callbacks like so:&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;
def destroy_without_callbacks
  unless new_record?
    # do your custom stuff here, then save
  end
  freeze
end
&lt;/code&gt;
&lt;/pre&gt;

	&lt;p&gt;Simply implementing #destroy will short-circuit the callback chain and skip the destroy method on any associations marked :dependent =&amp;gt; :destroy.&lt;/p&gt;</description>
      <pubDate>Tue, 30 Sep 2008 12:04:20 -0400</pubDate>
      <link>http://mrchucho.net/2008/09/30/the-correct-way-to-override-activerecordbasedestroy</link>
      <guid>http://mrchucho.net/2008/09/30/the-correct-way-to-override-activerecordbasedestroy</guid>
    </item>
    <item>
      <title>Times Tables</title>
      <description>&lt;p&gt;To help my daughter practice multiplication and to experiment with &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt;, I created a small app for doing your times tables.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://times-tables.appspot.com/"&gt;http://times-tables.appspot.com/&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m pretty impressed with &lt;acronym title="Google App Engine"&gt;GAE&lt;/acronym&gt;. It&amp;#8217;s very easy to use, the Mac App Launcher is helpful and the online Dashboard is well done. I especially like the ability to upload and stage multiple versions.&lt;/p&gt;</description>
      <pubDate>Sat, 23 Aug 2008 10:21:07 -0400</pubDate>
      <link>http://mrchucho.net/2008/08/23/times-tables</link>
      <guid>http://mrchucho.net/2008/08/23/times-tables</guid>
    </item>
    <item>
      <title>Next Image on AMO</title>
      <description>&lt;p&gt;I&amp;#8217;ve started the process of having Next Image hosted on the official Mozilla Add-ons site. Once it receives enough ratings, it can be nominated for the public site.&lt;/p&gt;


	&lt;p&gt;Please rate or review Next Image via it&amp;#8217;s sandbox page:&lt;/p&gt;


	&lt;p&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/7824"&gt;Next Image :: Firefox Add-ons&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 24 Jun 2008 10:22:17 -0400</pubDate>
      <link>http://mrchucho.net/2008/06/24/next-image-on-amo</link>
      <guid>http://mrchucho.net/2008/06/24/next-image-on-amo</guid>
    </item>
    <item>
      <title>Next Image Updated for Firefox 3</title>
      <description>&lt;p&gt;I&amp;#8217;m in the process of updating my extensions to support Firefox 3. Unfortunately, there were some significant changes in how extensions can be served. So, at this point, only my Next Image plugin is working. Also, it might not show up via the Add-ons manager &amp;#8220;Find Update&amp;#8221;, so please install it directly.&lt;/p&gt;


	&lt;p&gt;Project Page: &lt;a href="http://www.mrchucho.net/pages/projects#nextimage"&gt;http://www.mrchucho.net/pages/projects#nextimage&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Direct Link: &lt;a href="http://www.mrchucho.net/downloads/nextimage-0.9.xpi"&gt;http://www.mrchucho.net/downloads/nextimage-0.9.xpi&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Updated&lt;/strong&gt; &amp;#8211; My second extension, This Window, is now up-to-date and available, too.&lt;/p&gt;


	&lt;p&gt;Project Page: &lt;a href="http://www.mrchucho.net/pages/projects#thiswindow"&gt;http://www.mrchucho.net/pages/projects#thiswindow&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Direct Link: &lt;a href="http://www.mrchucho.net/downloads/thiswindow-0.8.xpi"&gt;http://www.mrchucho.net/downloads/thiswindow-0.8.xpi&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 23 Jun 2008 12:21:51 -0400</pubDate>
      <link>http://mrchucho.net/2008/06/23/next-image-updated-for-firefox-3</link>
      <guid>http://mrchucho.net/2008/06/23/next-image-updated-for-firefox-3</guid>
    </item>
    <item>
      <title>This is bbot</title>
      <description>&lt;p&gt;This blog is powered by a custom blog engine I wrote in Rails. I call it bbot as an homage to my favorite Ruby irc bot, &lt;a href="http://ruby-rbot.org/"&gt;rbot&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I built bbot for two reasons: I wanted to build a completely RESTful application from scratch and I was tired of wrangling with Wordpress. bbot is simple; it does exactly want I need and nothing more. It supports all the basic blogging features: posts, comments, moderating, drafts, permalinks, etc. plus non-post static page (e.g. my &lt;a href="http://www.mrchucho.net/pages/about"&gt;about&lt;/a&gt;).&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;ve decided to make bbot available on github: &lt;a href="http://github.com/mrchucho/bbot/tree/master"&gt;http://github.com/mrchucho/bbot/tree/master&lt;/a&gt;. This way I hope to learn more about git &lt;em&gt;and&lt;/em&gt; share bbot with anyone who might be interested.&lt;/p&gt;</description>
      <pubDate>Thu, 29 May 2008 19:03:08 -0400</pubDate>
      <link>http://mrchucho.net/2008/05/29/this-is-bbot</link>
      <guid>http://mrchucho.net/2008/05/29/this-is-bbot</guid>
    </item>
    <item>
      <title>Gmail prohibits attachments with "executable" files</title>
      <description>&lt;p&gt;Since when does Gmail prohibit sending email with a .bat file attached? It won&amp;#8217;t even send a Zip file that &lt;em&gt;includes&lt;/em&gt; a .bat file.&lt;/p&gt;


	&lt;p&gt;Of course, executable shell scripts for other platforms can still be attached and sent. Apparently, even legitimate users require protection from the scourge of Windows batch files.&lt;/p&gt;</description>
      <pubDate>Mon, 05 May 2008 22:53:47 -0400</pubDate>
      <link>http://mrchucho.net/2008/05/05/gmail-prohibits-attachments-with-executable-files</link>
      <guid>http://mrchucho.net/2008/05/05/gmail-prohibits-attachments-with-executable-files</guid>
    </item>
    <item>
      <title>Tulsa Ruby Workshop</title>
      <description>&lt;p&gt;If you&amp;#8217;re in Tulsa or the surrounding area and want to learn more about Ruby (or just meet other Tulsa Rubyists) please attend the &lt;a href="http://tulsarubyworkshop.com/"&gt;Tulsa Ruby Workshop&lt;/a&gt; Saturday April 26th from 10am to 4pm.&lt;/p&gt;


	&lt;p&gt;Hope to see you there.&lt;/p&gt;</description>
      <pubDate>Fri, 11 Apr 2008 14:10:22 -0400</pubDate>
      <link>http://mrchucho.net/2008/04/11/tulsa-ruby-workshop</link>
      <guid>http://mrchucho.net/2008/04/11/tulsa-ruby-workshop</guid>
    </item>
    <item>
      <title>Tip: Capistrano local_repository</title>
      <description>In the case where your application is deployed on the same server as your Subversion repository, it can be helpful to access the repository via the file system rather than over the network.
&lt;pre&gt;
&lt;code&gt;
set :repository, "file:///path/to/repository" 
&lt;/code&gt;
&lt;/pre&gt;
However your workstation (from which you&amp;#8217;ll run Capistrano) will need to access the repository over the network. This is accomplished by setting that &lt;strong&gt;local_respository&lt;/strong&gt; parameter. &amp;#8220;local&amp;#8221;, in this case, meaning your local workstation.
&lt;pre&gt;
&lt;code&gt;
set :local_repository, "http://host/svn/repository" 
&lt;/code&gt;
&lt;/pre&gt;
Thanks to an &lt;a href="http://articles.slicehost.com/2008/2/1/capistrano-series-alternative-subversion-setups"&gt;article&lt;/a&gt; on my host, &lt;a href="http://www.slicehost.com/"&gt;Slicehost&lt;/a&gt;, for pointing this out.</description>
      <pubDate>Tue, 19 Feb 2008 14:03:10 -0500</pubDate>
      <link>http://mrchucho.net/2008/02/19/tip-capistrano-local_repository</link>
      <guid>http://mrchucho.net/2008/02/19/tip-capistrano-local_repository</guid>
    </item>
    <item>
      <title>The REST is History</title>
      <description>&lt;p&gt;It&amp;#8217;s all about the Rewrite Condition.&lt;/p&gt;


Rails &lt;strong&gt;page caching&lt;/strong&gt; is great and &lt;span class="caps"&gt;REST&lt;/span&gt; is great, but together they can be confusing. Considering a resource &amp;#8220;Posts&amp;#8221;, Rails gives you the following routes:
&lt;pre&gt;
&lt;code&gt;
  GET    /posts     {:controller=&amp;gt;"posts", :action=&amp;gt;"index"}
 POST    /posts     {:controller=&amp;gt;"posts", :action=&amp;gt;"create"}
  PUT    /posts/:id {:controller=&amp;gt;"posts", :action=&amp;gt;"update"}
&lt;/code&gt;
&lt;/pre&gt;
If you have Apache configured with mod_rewrite to serve your cached pages (instead of sending them to mongrel, e.g.), then all of those routes appear to be requests for &amp;#8220;posts.html&amp;#8221;. The end result is that you can&amp;#8217;t create or update the &amp;#8220;Posts&amp;#8221; resource.

The solution, let Apache handle the &lt;span class="caps"&gt;GET&lt;/span&gt; requests and mongrel handle everything else:
&lt;pre&gt;
&lt;code&gt;
RewriteEngine On
RewriteRule ^/$ /index.html [QSA]

RewriteCond %{REQUEST_METHOD} ^GET$
RewriteRule ^([^.]+)$ $1.html [QSA]

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
&lt;/code&gt;
&lt;/pre&gt;</description>
      <pubDate>Thu, 14 Feb 2008 13:56:28 -0500</pubDate>
      <link>http://mrchucho.net/2008/02/14/the-rest-is-history</link>
      <guid>http://mrchucho.net/2008/02/14/the-rest-is-history</guid>
    </item>
    <item>
      <title>Quick Mac Clone</title>
      <description>&lt;p&gt;Boot your Mac using the &amp;#8220;Mac &lt;span class="caps"&gt;OS X&lt;/span&gt; Install Disc&amp;#8221;, then select &amp;#8220;Utilities &amp;gt; Terminal&amp;#8230;&amp;#8221; to get a command prompt. With an external drive attached, run the following command substituting the name of the disk you want to clone (source) and the name of the partition onto which you want to place the clone (target):&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;asr &amp;#8212;source /Volumes/Macintosh\ HD &amp;#8212;target /Volumes/Clone &amp;#8212;erase&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;This will do a fast, block-level bootable clone of your Mac. I use this all the time before doing any major upgrades or changes to the partition table.&lt;/p&gt;</description>
      <pubDate>Sat, 02 Feb 2008 17:04:19 -0500</pubDate>
      <link>http://mrchucho.net/2008/02/02/quick-mac-clone</link>
      <guid>http://mrchucho.net/2008/02/02/quick-mac-clone</guid>
    </item>
  </channel>
</rss>
