<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>liveandlearn</title>
  <link href="http://michaelahale.com/atom.xml" rel="self" />
  <link href="http://michaelahale.com" />
  <updated>2010-03-02T20:36:44-05:00</updated>
  <id>http://michaelahale.com</id>
  <author>
    <name>Michael Hale</name>
    <email>mikehale@gmail.com</email>
  </author>
  <entry>
    <title>Under Construction</title>
    <link href="http://michaelahale.com/blog/2010/01/24/under-construction" />
    <updated>2010-01-24T00:00:00-05:00</updated>
    <id>http://michaelahale.com/blog/2010/01/24/under-construction</id>
    <content type="html">
      &lt;p&gt;I probably don&#8217;t have many readers to this blog, but for the faithful few you will notice that the theme has changed. This is entirely thanks to the excellent &lt;a href=&quot;http://octopress.org/&quot;&gt;Octopress&lt;/a&gt; blog theme and software. Octopress was created by &lt;a href=&quot;http://brandonmathis.com/&quot;&gt;Brandon Mathis&lt;/a&gt; and is based on the programmer friendly &lt;a href=&quot;http://github.com/mojombo/jekyll&quot;&gt;Jekyll&lt;/a&gt; blog tool. Thanks to Octopress and Jekyll I can have a nice looking blog and use my text editor and &lt;a href=&quot;http://git-scm.com/&quot;&gt;git&lt;/a&gt; to maintain it.&lt;/p&gt;
      
      &lt;p&gt;Also I&#8217;m working on converting the content over from my old wordpress blog. The old posts will be available in the near future. I&#8217;m also hoping to import comments into disqus.&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>RUBYOPT - How it works</title>
    <link href="http://michaelahale.com/blog/2008/11/20/rubyopt-how-it-works" />
    <updated>2008-11-20T00:00:00-05:00</updated>
    <id>http://michaelahale.com/blog/2008/11/20/rubyopt-how-it-works</id>
    <content type="html">
      &lt;p&gt;The RUBYOPT environment variable is a handy way to specify the options that will be pased to ruby without having to type them in all the time.&lt;/p&gt;
      
      &lt;p&gt;According to the &lt;a href=&quot;http://opensource.apple.com/source/ruby/ruby-18/ruby/ruby.c&quot;&gt;ruby source code&lt;/a&gt; you can customize your ruby interpreter by specifying any of the following arguments in RUBYOPT: &lt;code&gt;I, d, v, w, W, r, or K&lt;/code&gt;&lt;/p&gt;
      
      &lt;p&gt;For example to always require rubygems when you run ruby simply add the following to your .profile or .bashrc.&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;RUBYOPT&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;-r rubygems&quot;&lt;/span&gt; 
      &lt;/pre&gt;
      &lt;/div&gt;
      
      
      &lt;p&gt;But wait there&#8217;s more! According to the &lt;a href=&quot;http://www.rubygems.org/read/chapter/3&quot;&gt;rubygems documentation&lt;/a&gt; you can simply say&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;nv&quot;&gt;RUBYOPT&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;rubygems&#39;&lt;/span&gt; 
      &lt;/pre&gt;
      &lt;/div&gt;
      
      
      &lt;p&gt;How does that work?&lt;/p&gt;
      
      &lt;p&gt;Well this trick depends on a couple of things. First RUBYOPT does not actually require you to put a dash in front of your arguments. This kind of makes sense when you think about it since you have already declared the value of RUBYOPT to be options to the ruby interpreter by virtue of the fact that they are in a special environment variable. However, on the command line dashes are required to distinguish between arguments and files to run. So what does not requiring dashes leave us? Well you could expand&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;nv&quot;&gt;RUBYOPT&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;rubygems&#39;&lt;/span&gt; 
      &lt;/pre&gt;
      &lt;/div&gt;
      
      
      &lt;p&gt;into&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;nv&quot;&gt;RUBYOPT&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;-r ubygems&#39;&lt;/span&gt; 
      &lt;/pre&gt;
      &lt;/div&gt;
      
      
      &lt;p&gt;This brings us to the second part of the trick. Rubygems ships with a file named ubygems.rb that has this line &lt;code&gt;require 'rubygems'&lt;/code&gt;.&lt;/p&gt;
      
      &lt;p&gt;All of this adds up to some &#8216;command line syntactic sugar&#8217; allowing you to simply specify &lt;code&gt;RUBYOPT='rubygems'&lt;/code&gt; to require rubygems by default in all ruby programs.&lt;/p&gt;
      
      &lt;hr /&gt;
      
      &lt;p&gt;&lt;strong&gt;This post was inspired by an error I received yesterday; here it is for the benefit of those googling:&lt;/strong&gt;&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;no such file to load -- ubygem &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;LoadError&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;. 
      &lt;/pre&gt;
      &lt;/div&gt;
      
      
      &lt;p&gt;The problem is that RUBYOPT was set to &#8216;rubygem&#8217; when it should have been set to &#8216;rubygems&#8217;, or &#8216;-r rubygems&#8217;, or, &#8216;rrubygems&#8217;, or &#8216;-r ubygems&#8217;&#8230; you get the idea.&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>Restrict an ssh user to scp only access</title>
    <link href="http://michaelahale.com/blog/2008/08/01/restrict-an-ssh-user-to-scp-only-access" />
    <updated>2008-08-01T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2008/08/01/restrict-an-ssh-user-to-scp-only-access</id>
    <content type="html">
      &lt;p&gt;Today I did a bit of research on how to restrict an ssh user to only have scp access. Basically all you have to do is add &lt;code&gt;command=&quot;/usr/lib/openssh/sftp-server&quot;&lt;/code&gt; to the beginning of the user&#8217;s key in &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt; like so:&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;nb&quot;&gt;command&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/usr/lib/openssh/sftp-server&quot;&lt;/span&gt; ssh-rsa &lt;span class=&quot;nv&quot;&gt;thekeygoeshere&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; user@user.local
      &lt;/pre&gt;
      &lt;/div&gt;
      
      
      &lt;p&gt;For more information on how to customize your authorized_keys file check out &lt;a href=&quot;http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html&quot;&gt;this helpful site&lt;/a&gt;.&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>Sake task for mod_rails (aka phusion passenger)</title>
    <link href="http://michaelahale.com/blog/2008/06/17/sake-task-for-mod_rails-aka-phusion-passenger" />
    <updated>2008-06-17T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2008/06/17/sake-task-for-mod_rails-aka-phusion-passenger</id>
    <content type="html">
      &lt;p&gt;So &lt;a href=&quot;http://www.modrails.com/&quot;&gt;phusion passenger&lt;/a&gt; for &lt;a href=&quot;http://nubyonrails.com/articles/ask-your-doctor-about-mod_rails&quot;&gt;local development is the bomb&lt;/a&gt;! &lt;a href=&quot;http://errtheblog.com/posts/60-sake-bomb&quot;&gt;Sake bomb&lt;/a&gt; is also fairly cool in it&#8217;s own right. I got tired of manually updating httpd.conf and /etc/hosts to add new phusion passenger virtual hosts so I wrote a little &lt;a href=&quot;http://pastie.org/216294&quot;&gt;sake script&lt;/a&gt; to do the work for me. Want it?&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;gem install sake &lt;span class=&quot;o&quot;&gt;&amp;&amp;&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
      sake -i http://pastie.caboo.se/216294.txt
      &lt;/pre&gt;
      &lt;/div&gt;
      
      
      &lt;p&gt;Update: I am now using the &lt;a href=&quot;http://www.fngtps.com/2008/06/putting-the-pane-back-into-deployment&quot;&gt;passenger preference pane&lt;/a&gt; instead of my sake script.&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>In the beginning there was chaos</title>
    <link href="http://michaelahale.com/blog/2008/06/07/in-the-beginning-there-was-chaos" />
    <updated>2008-06-07T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2008/06/07/in-the-beginning-there-was-chaos</id>
    <content type="html">
      &lt;p&gt;&lt;img src=&quot;http://michaelahale.com/images/office_before.jpg&quot; alt=&quot;Before Shelf&quot; /&gt;&lt;/p&gt;
      
      &lt;p&gt;afterwards there was a shelf and slightly less chaos.&lt;/p&gt;
      
      &lt;p&gt;&lt;img src=&quot;http://michaelahale.com/images/office_after.jpg&quot; alt=&quot;After Shelf&quot; /&gt;&lt;/p&gt;
      
      &lt;p&gt;As you can see I still have some cleaning up to do, but I think the shelf is a huge improvement. According to the time-stamps of the before and after photos it took me approximately 7 hours to complete this project.&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>Yummy Breakfast :-)</title>
    <link href="http://michaelahale.com/blog/2008/06/04/yummy-breakfast" />
    <updated>2008-06-04T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2008/06/04/yummy-breakfast</id>
    <content type="html">
      &lt;p&gt;Monday Emily fixed me a very yummy breakfast. Redi-whip+pancake+strawberries == good!&lt;/p&gt;
      
      &lt;p&gt;&lt;img src=&quot;http://michaelahale.com/images/yummy_breakfast.jpg&quot; alt=&quot;Yummy Breakfast&quot; /&gt;&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>In 2040&#8230;</title>
    <link href="http://michaelahale.com/blog/2008/05/20/In-2040" />
    <updated>2008-05-20T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2008/05/20/In-2040</id>
    <content type="html">
      &lt;p&gt;The other day I started thinking (shocking I know) about how old my child will be and how old I will be. I wrote down the following on the front of an envelope:&lt;/p&gt;
      
      &lt;table&gt;
       &lt;tr&gt;
         &lt;td class=&quot;header&quot;&gt;Year&lt;/td&gt;
         &lt;td&gt;2008&lt;/td&gt;
         &lt;td&gt;2010&lt;/td&gt;
         &lt;td&gt;2015&lt;/td&gt;
         &lt;td&gt;2020&lt;/td&gt;
         &lt;td&gt;2030&lt;/td&gt;
         &lt;td&gt;2040&lt;/td&gt;
       &lt;/tr&gt;
       &lt;tr&gt;
         &lt;td class=&quot;header&quot;&gt;Me&lt;/td&gt;
         &lt;td&gt;28&lt;/td&gt;
         &lt;td&gt;30&lt;/td&gt;
         &lt;td&gt;35&lt;/td&gt;
         &lt;td&gt;40&lt;/td&gt;
         &lt;td&gt;50&lt;/td&gt;
         &lt;td&gt;60&lt;/td&gt;
        &lt;/tr&gt;
       &lt;tr&gt;
         &lt;td class=&quot;header&quot;&gt;Baby&lt;/td&gt;
         &lt;td&gt;0&lt;/td&gt;
         &lt;td&gt;2&lt;/td&gt;
         &lt;td&gt;7&lt;/td&gt;
         &lt;td&gt;12&lt;/td&gt;
         &lt;td&gt;22&lt;/td&gt;
         &lt;td&gt;32&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    </content>
  </entry>
  <entry>
    <title>Use aptitude not apt-get and friends</title>
    <link href="http://michaelahale.com/blog/2008/05/06/use-aptitude-not-apt-get-and-friends" />
    <updated>2008-05-06T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2008/05/06/use-aptitude-not-apt-get-and-friends</id>
    <content type="html">
      &lt;p&gt;&lt;a href=&quot;http://pthree.org/2007/08/12/aptitude-vs-apt-get/&quot;&gt;From Aaron Toponce&#8217;s blog&lt;/a&gt;&lt;/p&gt;
      
      &lt;blockquote&gt;&lt;p&gt;Aptitude is just superior to apt-get in every way, shape, and form. Better dependency handling. Better curses application. Better options. ONE tool. Better stdout formatting. The list goes on and on. I see constantly, on forums, IRC and email, the use of apt-get. We need to better educate our brethren and sisters about the proper use of tools, and show them the enlightened way of aptitude. I&#8217;ve been using aptitude since I first learned about it, a[n]d will continue to do so the remainder of my Debian/Ubuntu days.&lt;/p&gt;&lt;/blockquote&gt;
    </content>
  </entry>
  <entry>
    <title>How to ban evil robots</title>
    <link href="http://michaelahale.com/blog/2008/04/03/how-to-ban-evil-robots" />
    <updated>2008-04-03T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2008/04/03/how-to-ban-evil-robots</id>
    <content type="html">
      &lt;p&gt;I saw a tip on how to automate banning of evil robots posted by ironclad &lt;a href=&quot;http://www.evolt.org/article/Using_Apache_to_stop_bad_robots/18/15126/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
      
      &lt;p&gt;It got me thinking about how to automate detecting and banning of robots for rails. It seems like all that is required is a combination of a DISALLOW /email_addresses/ line in robots.txt and something to send all requests for /email_addresses to the bit bucket.&lt;/p&gt;
      
      &lt;p&gt;This should be easy enough to do in apache with a rewrite rule:&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;nb&quot;&gt;RewriteRule&lt;/span&gt; ^/email_addresses - [F,L]
      &lt;/pre&gt;
      &lt;/div&gt;
      
      
      &lt;p&gt;And I imagine nginx can do something very similar.&lt;/p&gt;
      
      &lt;p&gt;However this only takes care of robots that expressly do what they should not. In order to ban abusive robots by user agent or ip address you could use something like the following:&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;span class=&quot;nb&quot;&gt;RewriteCond&lt;/span&gt; %{REMOTE_ADDR} ^63\.148\.99\.2(2[4-9]|[3-4][0-9]|5[0-5])$ [OR] # Cyveillance spybot
      &lt;span class=&quot;nb&quot;&gt;RewriteCond&lt;/span&gt; %{HTTP_USER_AGENT} EmailSiphon [NC] 
      &lt;span class=&quot;nb&quot;&gt;RewriteRule&lt;/span&gt; .* - [F,L]
      &lt;/pre&gt;
      &lt;/div&gt;
    </content>
  </entry>
  <entry>
    <title>Keep monit running on ubuntu > 6.10</title>
    <link href="http://michaelahale.com/blog/2008/03/06/keep-monit-running-on-ubuntu-610" />
    <updated>2008-03-06T00:00:00-05:00</updated>
    <id>http://michaelahale.com/blog/2008/03/06/keep-monit-running-on-ubuntu-610</id>
    <content type="html">
      &lt;p&gt;Who is monitoring monit? Well normally init is (or could be), but newer versions of ubuntu (read feisty) don&#8217;t really use init, they use &lt;a href=&quot;http://upstart.ubuntu.com/&quot;&gt;upstart&lt;/a&gt;. If you want to keep monit running with upstart try my &lt;a href=&quot;http://pastie.caboo.se/162162&quot;&gt;monit upstart job&lt;/a&gt;.&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>Mongrel + monit (really mongrel_cluster + monit)</title>
    <link href="http://michaelahale.com/blog/2008/02/12/mongrel-monit-really-mongrel_cluster-monit" />
    <updated>2008-02-12T00:00:00-05:00</updated>
    <id>http://michaelahale.com/blog/2008/02/12/mongrel-monit-really-mongrel_cluster-monit</id>
    <content type="html">
      &lt;p&gt;According to &lt;a href=&quot;http://rubyforge.org/pipermail/mongrel-users/2007-April/003445.html&quot;&gt;Ezra&lt;/a&gt; the best way to train your mongrels with monit is through mongrel_cluster.  Mongrel_cluster is a more reliable way to start and stop your mongrels than issuing straight mongrel_rails commands.&lt;/p&gt;
      
      &lt;p&gt;What if you have a bunch of mongrels? It would be a pain to have to write out the monit configuration for each one, and what happens when you need to change your mongrel config? You would have to remember to  hand update all your monit entries too. Enter &lt;a href=&quot;http://gist.github.com/286460&quot;&gt;mongrel_monit&lt;/a&gt; a script to generate a monit file based on your mongrel config.&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>Leopard, FreeNAS and ISCSI</title>
    <link href="http://michaelahale.com/blog/2008/01/03/leopard-freenas-and-iscsi" />
    <updated>2008-01-03T00:00:00-05:00</updated>
    <id>http://michaelahale.com/blog/2008/01/03/leopard-freenas-and-iscsi</id>
    <content type="html">
      &lt;p&gt;I installed Leopard a few days ago, and in preparation I created a bootable backup of my system using the excellent &lt;a href=&quot;http://www.bombich.com/software/ccc.html&quot;&gt;Carbon Copy Cloner&lt;/a&gt;.  While fairly simple to do, the downside is that I have to have a physical drive present with enough space.  What would be really handy/cool is if I had a storage server that I could allocate and export a new drive from over the network.  Then the storage server can worry about making those bytes available and redundant.&lt;/p&gt;
      
      &lt;p&gt;Well there is some good news and some bad news (for now).  The good news is that this is exactly what ISCSI does and it is really simple to setup with &lt;a href=&quot;http://www.freenas.org/&quot;&gt;FreeNAS&lt;/a&gt;.  The bad news is that I couldn&#8217;t get everything working on Leopard, even though I could with windows.&lt;/p&gt;
      
      &lt;p&gt;A quick definition of &lt;a href=&quot;http://en.wikipedia.org/wiki/ISCSI&quot;&gt;ISCSI from wikipedia&lt;/a&gt;:&lt;/p&gt;
      
      &lt;blockquote&gt;&lt;p&gt;iSCSI is a protocol that allows clients (called initiators) to send SCSI commands (CDBs) to SCSI storage devices (targets) on remote servers. It is a popular Storage Area Network (SAN) protocol, allowing organizations to consolidate storage into data center storage arrays while providing hosts (such as database and web servers) with the illusion of locally-attached disks. Unlike Fibre Channel, which requires special-purpose cabling, iSCSI can be run over long distances using existing network infrastructure.&lt;/p&gt;&lt;/blockquote&gt;
      
      &lt;p&gt;As you can see there are two pieces to ISCSI, the targets or storage devices and the initiators or clients. Using the FreeNAS live cd I was able to quickly setup a storage server and export an ISCSI target.  I was then able to use the &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=12cb3c1a-15d6-4585-b385-befd1319f825&amp;displaylang=en#Requirements&quot;&gt;microsoft ISCSI initiator&lt;/a&gt; to connect to the target and format the disk. Pretty cool!  I now have access to raw disk space that is managed completely by FreeNAS and available anywhere I have a network connection.&lt;/p&gt;
      
      &lt;p&gt;Now onto the sad part. I tried to connect to the same ISCSI target from my Mac using the only freely available ISCSI initiator from Apple &lt;a href=&quot;http://www.apple.com/downloads/macosx/system_disk_utilities/globalsaniscsiinitiator.html&quot;&gt;globalSAN&lt;/a&gt;.The initial connection worked fine, but when I opened DiskUtility and attempted to format the drive, DiskUtility became unresponsive and never finished formatting the drive.  I don&#8217;t know if this is a limitation of globalSAN or of DiskUtility, but I hope that there will be a working solution for free ISCSI on the Mac in the near future.&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>Speed up multiple SSH connections to the same machine</title>
    <link href="http://michaelahale.com/blog/2007/11/03/speed-up-multiple-ssh-connections-to-the-same-machine" />
    <updated>2007-11-03T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2007/11/03/speed-up-multiple-ssh-connections-to-the-same-machine</id>
    <content type="html">
      &lt;p&gt;Add the following to your ~/.ssh/config&lt;/p&gt;
      
      &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;ControlMaster auto
      ControlPath ~/.ssh/master-%r@%h:%p
      &lt;/pre&gt;
      &lt;/div&gt;
      
      
      &lt;p&gt;&lt;a href=&quot;http://www.revsys.com/writings/quicktips/ssh-faster-connections.html&quot;&gt;Thanks for the tip!&lt;/a&gt;&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>Nginx+Mongrel+Capistrano</title>
    <link href="http://michaelahale.com/blog/2007/10/28/nginxmongreldeprec" />
    <updated>2007-10-28T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2007/10/28/nginxmongreldeprec</id>
    <content type="html">
      &lt;p&gt;I have heard lots of good things about &lt;a href=&quot;http://nginx.net/&quot;&gt;nginx&lt;/a&gt; from various people whom I respect. &lt;a href=&quot;http://brainspl.at/&quot;&gt;Ezra Zygmuntowicz&lt;/a&gt; and &lt;a href=&quot;http://www.jaredrichardson.net/&quot;&gt;Jared Richardson&lt;/a&gt; to name two.&lt;/p&gt;
      
      &lt;p&gt;I followed &lt;a href=&quot;http://brainspl.at/articles/2006/08/23/nginx-my-new-favorite-front-end-for-mongrel-cluster&quot;&gt;Ezra&#8217;s blog entry&lt;/a&gt; about nginx and added a few enhancments of my own to create a capistrano recipe and template that works for me and might be a good starting point for your own nginx experience. Enjoy!&lt;/p&gt;
      
      &lt;p&gt;&lt;a href=&quot;http://michaelahale.com/files/nginx_recipe.zip&quot; title=&quot;nginx_recipe.zip&quot;&gt;nginx_recipe.zip&lt;/a&gt;&lt;/p&gt;
    </content>
  </entry>
  <entry>
    <title>Slicehost security update</title>
    <link href="http://michaelahale.com/blog/2007/10/17/slicehost-security-update" />
    <updated>2007-10-17T00:00:00-04:00</updated>
    <id>http://michaelahale.com/blog/2007/10/17/slicehost-security-update</id>
    <content type="html">
      &lt;p&gt;Read the details from Pickled Onion &lt;a href=&quot;http://blog.slicehost.com/articles/2007/10/08/cve-2007-4573-patched&quot;&gt;http://blog.slicehost.com/articles/2007/10/08/cve-2007-4573-patched&lt;/a&gt;&lt;/p&gt;
    </content>
  </entry>
</feed>

