<rss version="2.0"><channel><title>sn17.org</title><link>http://sn17.org/</link><description>We GAVE PhD's a bad name. Now we're doing the same for other professions.</description><pubDate>Mon, 09 Jun 2008 11:07:33 -0000</pubDate><item><title>my first wwdc</title><link>http://www.liquidx.net/from_atom/blog/2008/06/09/my-first-wwdc/</link><description>&lt;div&gt;&lt;p&gt;&lt;p&gt;i'm attending my first ever WWDC this year. so many sessions, so little time.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;just for this once, i'll be using twitter again after 2 months of hiatus. that corresponds to the same amount of time i've fallen off the face of this earth.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://twitter.com/liquidx/http://twitter.com/liquidx/http://twitter.com/liquidx/" title="http://twitter.com/liquidx/"&gt;http://twitter.com/liquidx/&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Mon, 09 Jun 2008 11:07:33 -0000</pubDate><guid>http://www.liquidx.net/from_atom/blog/2008/06/09/my-first-wwdc/</guid></item><item><title>AppleTV &amp; Ubuntu hacking</title><link>http://nick.recoil.org/2008/5/5/appletv-ubuntu-hacking</link><description>&lt;p&gt;I’ve finally enabled &lt;span class="caps"&gt;SSH&lt;/span&gt; on my long dormant AppleTV, and am integrating it into my &lt;span class="caps"&gt;DVB&lt;/span&gt; / Rails / Beanstalk / MySQL system for processing data. I’ve used the Patchstick image available from &lt;a href="http://www.wiki.atv4windows.com/"&gt;atv4windows&lt;/a&gt;. I ended up unpacking and dd’ing the image from the Mac, but the process remains exactly the same. I now have Perian, ssh and a slew of other things enabled, and all I need now is to attempt the hack to get composite output working. I’ve yet to take the plunge and replace my old &lt;span class="caps"&gt;CRT&lt;/span&gt; with an &lt;span class="caps"&gt;LCD TV&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Incidentally, for anyone looking to figure out the ssh username and password for your freshly enabled ssh daemon, they are both &lt;strong&gt;frontrow&lt;/strong&gt;, and that user has &lt;strong&gt;passwordless sudo privileges&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;I also had a minor breakthrough with my x86_64 Ubuntu 8.04 machine. I have a Zyxel G-202 Wireless &lt;span class="caps"&gt;USB&lt;/span&gt; stick, to keep the number of trailing wires to a minimum, but I kept getting an error saying:&lt;/p&gt;


&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td title="click to toggle" class="line_numbers"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre&gt;zd1211rw error ioread32(CF_REG1): -110&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;p&gt;Which was exceedingly unhelpful. I eventually tried disabling hi-speed &lt;span class="caps"&gt;USB&lt;/span&gt; from the &lt;span class="caps"&gt;BIOS&lt;/span&gt;, and rebooted to find it sprang into life immediately. Great! What was even more strange that when I rebooted and reset the &lt;span class="caps"&gt;BIOS&lt;/span&gt; back to enable &lt;span class="caps"&gt;USB 2&lt;/span&gt;.0, the G-202 kept working.  I’m unsure whether this is due to the device not being cold booted, and I’ve yet to see if it stops working after I power the system off, but so far so good, and I don’t need to resort to &lt;span class="caps"&gt;NDIS&lt;/span&gt;.&lt;/p&gt;</description><pubDate>Mon, 05 May 2008 23:20:48 -0000</pubDate><guid>http://nick.recoil.org/2008/5/5/appletv-ubuntu-hacking</guid></item><item><title>Parsing EXIF/IPTC photo tags using pyexiv2 on Leopard</title><link>http://anil.recoil.org/blog/articles/2008/04/17/parsing-exif-iptc-photo-tags-using-pyexiv2-on-leopard</link><description>&lt;p&gt;I've been looking around at refreshing my current photo gallery to make it easier to update, since I'm around 1000 photos behind over the last year.  Part of making it easier to use is to adopt an &lt;a href="http://www.apple.com/aperture"&gt;Aperture&lt;/a&gt;-based system of marking the metadata directly in the image itself, and figuring out how to render so many pictures more effectively in my &lt;a href="http://anil.recoil.org/gallery/"&gt;gallery&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The best library I could find to do the job is &lt;a href="http://www.exiv2.org"&gt;Exiv2&lt;/a&gt; and its associated Python bindings &lt;a href="http://tilloy.net/dev/pyexiv2/"&gt;pyexiv2&lt;/a&gt;.  They use the rather complex &lt;a href="http://www.boost.org/doc/libs/1_35_0/libs/python/doc/index.html"&gt;Boost.Python&lt;/a&gt; bindings, which are a total pain to compile on MacOS X Leopard.&lt;/p&gt;

&lt;p&gt;In order to get it to work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the latest &lt;a href="http://www.finkproject.org"&gt;Fink&lt;/a&gt; to install:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;python25&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;boost1.34.python25&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;libexiv2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scons&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Download the latest &lt;a href="http://tilloy.net/dev/pyexiv2/download.htm"&gt;pyexiv2 distribution&lt;/a&gt;, extract it, and drop in my &lt;a href="http://anil.recoil.org/files/pyexiv2/Makefile"&gt;exiv2 Leopard Makefile&lt;/a&gt; into the extracted directory.&lt;/li&gt;
&lt;li&gt;Type in:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;make&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo make install&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Test it out by running python2.5 and experimenting with importing pyexiv2 (see the pyexiv2 &lt;a href="http://tilloy.net/dev/pyexiv2/developers.htm"&gt;developer guide&lt;/a&gt; for more information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'll tidy this up into a fink package sometime, but for now I want to press on with finishing my &lt;a href="http://www.djangoproject.org/"&gt;Django&lt;/a&gt; experiments.&lt;/p&gt;</description><pubDate>Thu, 17 Apr 2008 10:58:00 -0000</pubDate><guid>http://anil.recoil.org/blog/articles/2008/04/17/parsing-exif-iptc-photo-tags-using-pyexiv2-on-leopard</guid></item><item><title>Mongrel init.d script</title><link>http://nick.recoil.org/2008/4/7/mongrel-init-d-script</link><description>&lt;p&gt;I’ve slightly modified &lt;a href="http://source.mihelac.org/2007/3/27/customized-mongrel-startup-script"&gt;Bojan Mihelac’s Mongrel init.d script&lt;/a&gt; to cope with the situation where there are stale &lt;span class="caps"&gt;PID&lt;/span&gt; files left from a server failure.&lt;/p&gt;


&lt;table class="CodeRay"&gt;&lt;tr&gt;
  &lt;td title="click to toggle" class="line_numbers"&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;6&lt;tt&gt;
&lt;/tt&gt;7&lt;tt&gt;
&lt;/tt&gt;8&lt;tt&gt;
&lt;/tt&gt;9&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;10&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;11&lt;tt&gt;
&lt;/tt&gt;12&lt;tt&gt;
&lt;/tt&gt;13&lt;tt&gt;
&lt;/tt&gt;14&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;15&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;16&lt;tt&gt;
&lt;/tt&gt;17&lt;tt&gt;
&lt;/tt&gt;18&lt;tt&gt;
&lt;/tt&gt;19&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;20&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;21&lt;tt&gt;
&lt;/tt&gt;22&lt;tt&gt;
&lt;/tt&gt;23&lt;tt&gt;
&lt;/tt&gt;24&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;25&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;26&lt;tt&gt;
&lt;/tt&gt;27&lt;tt&gt;
&lt;/tt&gt;28&lt;tt&gt;
&lt;/tt&gt;29&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;30&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;31&lt;tt&gt;
&lt;/tt&gt;32&lt;tt&gt;
&lt;/tt&gt;33&lt;tt&gt;
&lt;/tt&gt;34&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;35&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;36&lt;tt&gt;
&lt;/tt&gt;37&lt;tt&gt;
&lt;/tt&gt;38&lt;tt&gt;
&lt;/tt&gt;39&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;40&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;41&lt;tt&gt;
&lt;/tt&gt;42&lt;tt&gt;
&lt;/tt&gt;43&lt;tt&gt;
&lt;/tt&gt;44&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;45&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;46&lt;tt&gt;
&lt;/tt&gt;47&lt;tt&gt;
&lt;/tt&gt;48&lt;tt&gt;
&lt;/tt&gt;49&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;50&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;51&lt;tt&gt;
&lt;/tt&gt;52&lt;tt&gt;
&lt;/tt&gt;53&lt;tt&gt;
&lt;/tt&gt;54&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;55&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;56&lt;tt&gt;
&lt;/tt&gt;57&lt;tt&gt;
&lt;/tt&gt;58&lt;tt&gt;
&lt;/tt&gt;59&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;60&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class="code"&gt;&lt;pre&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;#!/bin/env ruby&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;#&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;# mongrel Startup script for Mongrel by Tim Morgan, modified by bmihelac and Nick Ludlam&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;# Originally from http://source.mihelac.org/2007/3/27/customized-mongrel-startup-script&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;#&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;# chkconfig: 2345 85 15&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;# description: mongrel manages Mongrel&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="c"&gt;#&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;apps = [&lt;tt&gt;
&lt;/tt&gt;  {&lt;span class="sy"&gt;:app&lt;/span&gt; =&amp;gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;app1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;},&lt;tt&gt;
&lt;/tt&gt;  {&lt;span class="sy"&gt;:app&lt;/span&gt; =&amp;gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;app2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;},&lt;tt&gt;
&lt;/tt&gt;  {&lt;span class="sy"&gt;:app&lt;/span&gt; =&amp;gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;app3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;}&lt;tt&gt;
&lt;/tt&gt;]&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;default_port = &lt;span class="i"&gt;8000&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;default_options = {&lt;tt&gt;
&lt;/tt&gt;  &lt;span class="sy"&gt;:app_dir&lt;/span&gt; =&amp;gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;/var/www&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;,  &lt;span class="sy"&gt;:environment&lt;/span&gt; =&amp;gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;production&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;}&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;pid_location = &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;log/mongrel.pid&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;if&lt;/span&gt; [&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;stop&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;restart&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;].include? &lt;span class="pc"&gt;ARGV&lt;/span&gt;.first&lt;tt&gt;
&lt;/tt&gt;  apps.each &lt;span class="r"&gt;do&lt;/span&gt; |app|&lt;tt&gt;
&lt;/tt&gt;    options = default_options.merge(app)&lt;tt&gt;
&lt;/tt&gt;    path = &lt;span class="co"&gt;File&lt;/span&gt;.join options[&lt;span class="sy"&gt;:app_dir&lt;/span&gt;], options[&lt;span class="sy"&gt;:app&lt;/span&gt;], &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;current&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    puts &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Stopping &lt;/span&gt;&lt;span class="il"&gt;&lt;span class="dl"&gt;#{&lt;/span&gt;path&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="k"&gt;...&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class="sh"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;/usr/local/bin/mongrel_rails stop -c &lt;/span&gt;&lt;span class="il"&gt;&lt;span class="dl"&gt;#{&lt;/span&gt;path&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="k"&gt; -P &lt;/span&gt;&lt;span class="il"&gt;&lt;span class="dl"&gt;#{&lt;/span&gt;pid_location&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;if&lt;/span&gt; [&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;start&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;restart&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;].include? &lt;span class="pc"&gt;ARGV&lt;/span&gt;.first&lt;tt&gt;
&lt;/tt&gt;  apps.each &lt;span class="r"&gt;do&lt;/span&gt; |app|&lt;tt&gt;
&lt;/tt&gt;    options = default_options.merge(app)&lt;tt&gt;
&lt;/tt&gt;    path = &lt;span class="co"&gt;File&lt;/span&gt;.join options[&lt;span class="sy"&gt;:app_dir&lt;/span&gt;], options[&lt;span class="sy"&gt;:app&lt;/span&gt;], &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;current&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    port = options[&lt;span class="sy"&gt;:port&lt;/span&gt;] || default_port&lt;tt&gt;
&lt;/tt&gt;    pid_file = &lt;span class="co"&gt;File&lt;/span&gt;.join path, pid_location&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class="c"&gt;# Check and remove stale PID file. Platform needs &amp;quot;ps -p&amp;quot; support&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class="r"&gt;if&lt;/span&gt; &lt;span class="co"&gt;File&lt;/span&gt;.exists?(pid_file)&lt;tt&gt;
&lt;/tt&gt;      old_pid = &lt;span class="co"&gt;File&lt;/span&gt;.read(pid_file)&lt;tt&gt;
&lt;/tt&gt;      &lt;span class="sh"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;ps -p &lt;/span&gt;&lt;span class="il"&gt;&lt;span class="dl"&gt;#{&lt;/span&gt;old_pid&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;      &lt;span class="r"&gt;if&lt;/span&gt; old_pid.to_i &amp;gt; &lt;span class="i"&gt;0&lt;/span&gt; &amp;amp;&amp;amp; &lt;span class="gv"&gt;$?&lt;/span&gt;.exitstatus == &lt;span class="i"&gt;1&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;        puts &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Removing stale PID file&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;        &lt;span class="co"&gt;File&lt;/span&gt;.unlink(pid_file)&lt;tt&gt;
&lt;/tt&gt;      &lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;    puts &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Starting &lt;/span&gt;&lt;span class="il"&gt;&lt;span class="dl"&gt;#{&lt;/span&gt;options[&lt;span class="sy"&gt;:app&lt;/span&gt;]&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="k"&gt; on &lt;/span&gt;&lt;span class="il"&gt;&lt;span class="dl"&gt;#{&lt;/span&gt;port&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="k"&gt;...&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    &lt;span class="sh"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;/usr/local/bin/mongrel_rails start -d -p &lt;/span&gt;&lt;span class="il"&gt;&lt;span class="dl"&gt;#{&lt;/span&gt;port&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="k"&gt; -e &lt;/span&gt;&lt;span class="il"&gt;&lt;span class="dl"&gt;#{&lt;/span&gt;options[&lt;span class="sy"&gt;:environment&lt;/span&gt;]&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="k"&gt; -c &lt;/span&gt;&lt;span class="il"&gt;&lt;span class="dl"&gt;#{&lt;/span&gt;path&lt;span class="dl"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class="k"&gt; -P log/mongrel.pid&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    default_port = port + &lt;span class="i"&gt;1&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;  &lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;unless&lt;/span&gt; [&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;start&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;stop&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;restart&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;].include? &lt;span class="pc"&gt;ARGV&lt;/span&gt;.first&lt;tt&gt;
&lt;/tt&gt;    puts &lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;Usage: mongrel {start|stop|restart}&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;    exit&lt;tt&gt;
&lt;/tt&gt;&lt;span class="r"&gt;end&lt;/span&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;</description><pubDate>Mon, 07 Apr 2008 12:50:48 -0000</pubDate><guid>http://nick.recoil.org/2008/4/7/mongrel-init-d-script</guid></item><item><title>MacPorts contributions</title><link>http://nick.recoil.org/2008/4/1/macports-contributions</link><description>&lt;p&gt;I’ve been accepted as a committer to &lt;a href="http://macports.org/"&gt;MacPorts&lt;/a&gt;, initially to look after &lt;a href="http://xph.us/software/beanstalkd/"&gt;beanstalkd&lt;/a&gt;, but I’ll hopefully extend what I contribute to. I’ve been a consumer of Macports (née Darwinports) for a long while, and use it regularly to create my local development environment on the Mac. As of today, I have 98 ports installed, from ImageMagick to zlib, and I’m happy to be giving back some effort to something I get so much value from.&lt;/p&gt;</description><pubDate>Tue, 01 Apr 2008 10:50:21 -0000</pubDate><guid>http://nick.recoil.org/2008/4/1/macports-contributions</guid></item><item><title>Saving my blown Seagate Barracuda 7200.10 hard drive</title><link>http://nick.recoil.org/2008/3/21/saving-my-blown-seagate-barracuda-7200-10-hard-drive</link><description>&lt;p&gt;Whilst messing around with my Mini &lt;span class="caps"&gt;ITX&lt;/span&gt; box, I managed to touch the power connector onto the drive backwards, blowing one of the components near the connector. I noticed that the controller board is screwed on with standard torx screws, so I took them out, curious about the connector to the main chassis.&lt;/p&gt;


	&lt;p&gt;After removing them, the board came away easily, and uses pressure pads as a connection mechanism, rather than ribbon cable or other methods. This set me wondering about whether this would be a replaceable part. I contacted Seagate, who told me that they don’t supply them separately. I then wondered about getting an identical drive, and replacing the old board with one from the new drive, so I went ahead and ordered a replacement; I’d need it anyway, even if this attempt at data recovery failed.&lt;/p&gt;


	&lt;p&gt;After it arrived, and I’d done the swap, I turned on the machine, and back came my drive with all my data on it, safe and sound. I did worry about whether the &lt;span class="caps"&gt;IDE&lt;/span&gt; controller boards carry some kind of mapping table that’s specific to a particular set of platters, but this isn’t the case, it seems. Unfortunately I’ve no way of repairing the original blown board. Replacing surface mount components is tricky.&lt;/p&gt;


	&lt;p&gt;For anybody wondering, you can replace the controller board for a Seagate Barracuda 7200.10 500GB drive with no ill effects.&lt;/p&gt;</description><pubDate>Fri, 21 Mar 2008 18:09:06 -0000</pubDate><guid>http://nick.recoil.org/2008/3/21/saving-my-blown-seagate-barracuda-7200-10-hard-drive</guid></item><item><title>Nearly Two</title><link>http://kieran.recoil.org/photoblog/photo_2008_03_13.html</link><description>&lt;p&gt;Despite my not taking nearly as many photos as I'd like, Isabel has clearly worked out that if someone points a camera at you you stop, stand still, look at the camera and smile.

&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://kieran.recoil.org/photoblog/images/photo_2008_03_13/0.html"&gt;&lt;img src="http://farm3.static.flickr.com/2159/2331880632_e0a35bbf9f_m.jpg" /&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Lots of processing of this one as it had a fairly extreme colour cast due to the indoors light.</description><pubDate>Thu, 13 Mar 2008 20:31:51 -0000</pubDate><guid>http://kieran.recoil.org/photoblog/photo_2008_03_13.html</guid></item><item><title>amazing hong kong map</title><link>http://www.liquidx.net/from_atom/blog/2008/03/09/amazing-hong-kong-map/</link><description>&lt;div&gt;&lt;p&gt;&lt;p&gt;i've seen &lt;a href="http://hongkong.edushi.com/"&gt;edushi&lt;/a&gt; (stands for e-city in chinese) before with their awesomely detailed 3d pixel art maps of shanghai. now they've done a little part of &lt;a href="http://hongkong.edushi.com/"&gt;hong kong&lt;/a&gt; and it is truly amazing!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;you can scroll around, zoom in and zoom out. mouse over a building and it'll tooltips will tell you what building it is. the most amazing thing is they've even painted in reflections to over buildings&lt;/p&gt;&lt;br /&gt;&lt;p&gt;:&lt;img src="http://media.liquidx.net/ul/img/2008_03_09_edushi_reflection.jpg" alt="edushi_reflection.png" height="480" width="424" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;i don't know how they are doing it, but i suppose they have a bunch of aerial photography and getting some cheap labour in china to draw this out pixel by pixel. shows you what you can do when labour is cheap and skilled.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;here is a shot where the camera angle is from the north looking at wanchai and the hong kong convention and exhibition centre:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://media.liquidx.net/ul/img/2008_03_09_edushi_hk.jpg" alt="edushi_hk.png" height="374" width="480" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;compare this to google maps satellite view from overhead:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;q=Hong+Kong&amp;ie=UTF8&amp;cd=1&amp;geocode=0,22.396428,114.109497&amp;ll=22.281631,114.173613&amp;spn=0.040187,0.047121&amp;t=k&amp;z=14"&gt;&lt;img src="http://media.liquidx.net/ul/img/2008_03_09_google_maps_hk.jpg" alt="google_maps_hk.png" height="428" width="480" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Sun, 09 Mar 2008 18:56:39 -0000</pubDate><guid>http://www.liquidx.net/from_atom/blog/2008/03/09/amazing-hong-kong-map/</guid></item><item><title>Stalling Wi-fi uploads on Mac OS X 10.5.2</title><link>http://nick.recoil.org/2008/3/3/stalling-wi-fi-uploads-on-mac-os-x-10-5-2</link><description>&lt;p&gt;I was sitting in my &lt;a href="http://www.bertieandboo.com/cafe.html"&gt;local wifi-enabled cafe&lt;/a&gt; in London for the first time yesterday, and was struck with a peculiar problem. I could attach to their Wi-fi network properly, and browsing webpages worked fine, but trying to scp a small file to one of the recoil.org servers was stalling at exactly 2064kB.&lt;/p&gt;


	&lt;p&gt;I had a quick glance around for the problem on Google, and &lt;a href="http://discussions.apple.com/thread.jspa?threadID=1389943&amp;amp;#38;tstart=0"&gt;a thread&lt;/a&gt; turned up on the Apple message board. These people were discussing the same symptoms as I was having; An scp would start out fine, but stall after a particular amount of data had transfered. Following lots of discussion about tuning &lt;strong&gt;net.inet.tcp.delayed_ack&lt;/strong&gt;, I tried fiddling with all sort of sysctl and ifconfig settings for the best part of an hour, and eventually had success.&lt;/p&gt;


	&lt;p&gt;I had to drop the &lt;span class="caps"&gt;MTU&lt;/span&gt; of en1 down from 1500 all the way down to 1400 for the problems to go away. The more common settings you might find via Google such as 1492 didn’t resolve the issue. For those of you who might have arrived here looking at similar issues, type the following into a Terminal window:&lt;/p&gt;


&lt;div class="code"&gt;
&lt;pre&gt;&lt;code&gt;
 sudo ifconfig en1 mtu 1400
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

	&lt;p&gt;I’m not entirely sure what was going on, but Path &lt;span class="caps"&gt;MTU&lt;/span&gt; discovery is turned on by default on the Mac. By blocking &lt;span class="caps"&gt;ICMP&lt;/span&gt; packets on the Wifi network, it may cause issues with the discovery system. If people are more familiar with the networking circumstances here, drop me a comment/email.&lt;/p&gt;</description><pubDate>Mon, 03 Mar 2008 12:28:07 -0000</pubDate><guid>http://nick.recoil.org/2008/3/3/stalling-wi-fi-uploads-on-mac-os-x-10-5-2</guid></item><item><title>DSVideo released to the public</title><link>http://nick.recoil.org/2008/2/12/dsvideo-released-to-the-public</link><description>&lt;p&gt;After a lot of behind-the-scenes development and testing, Dominic and I have released &lt;a href="http://dsvideo.recoil.org/"&gt;DSVideo&lt;/a&gt; to the world. It’s an multi-platform open-source wavelet video encoder and a player for the Nintendo DS. &lt;a href="http://dsvideo.recoil.org/"&gt;Head on over&lt;/a&gt; to see what all the fuss is about.&lt;/p&gt;</description><pubDate>Tue, 12 Feb 2008 21:02:58 -0000</pubDate><guid>http://nick.recoil.org/2008/2/12/dsvideo-released-to-the-public</guid></item><item><title>macbook air price difference</title><link>http://www.liquidx.net/from_atom/blog/2008/01/20/macbook-air-price-difference/</link><description>&lt;div&gt;&lt;p&gt;&lt;p&gt;there is a massive price difference between buying a macbook air in the united states versus buying it in the united kingdom. in short, for the cheapest price you can get the macbook air for in the uk, you can afford to buy a round trip ticket to new york and buy it there instead.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;the price of the &lt;a href="http://store.apple.com/Apple/WebObjects/ukstore.woa/wa/RSLID?nnmm=browse&amp;mco=7B72367C&amp;node=home/shop_mac/family/macbook_air"&gt;macbook air in the uk&lt;/a&gt; is &lt;strong&gt;£1199&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://media.liquidx.net/ul/img/2008_01_20_macbook_air_uk.png" alt="macbook_air_uk.png" height="375" width="294" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?nnmm=browse&amp;mco=7B723660&amp;node=home/shop_mac/family/macbook_air"&gt;macbook air in the U&lt;/a&gt;S is &lt;strong&gt;$1799 (&lt;a href="http://www.google.com/search?hl=en&amp;client=safari&amp;rls=en-us&amp;q=1799+USD+in+GBP&amp;btnG=Search"&gt;£916&lt;/a&gt;)&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://media.liquidx.net/ul/img/2008_01_20_macbook_air_us.png" alt="macbook_air_us.png" height="392" width="297" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;and a cheapest flight from &lt;a href="http://www.britishairways.com/travel/january-sale/public/en_gb"&gt;london heathrow to new york jfk&lt;/a&gt; on british airways is &lt;strong&gt;£271.70&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://media.liquidx.net/ul/img/2008_01_20_flight_to_nyc.png" alt="flight_to_nyc.png" height="187" width="320" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;therefore, if you fly to new york and buy a macbook air, it will cost you (£916 + £271 = &lt;strong&gt;£1187&lt;/strong&gt;). if you get the macbook air in the uk, it will cost you &lt;strong&gt;£1199&lt;/strong&gt;. you would still have &lt;strong&gt;£12&lt;/strong&gt; left over.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;of course, it would only just break even as you would have to pay for a ride from the airport to the apple store on the 5th avenue. but it is open 24 hours, so you could forgo a hotel room and just sleep there overnight.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;and that is with the cheapest version too, if you wanted to get the solid state hard drive option, you could probably even fly business class there.&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Sun, 20 Jan 2008 22:24:26 -0000</pubDate><guid>http://www.liquidx.net/from_atom/blog/2008/01/20/macbook-air-price-difference/</guid></item><item><title>My Heart Lit Up</title><link>http://kieran.recoil.org/photoblog/photo_2008_01_17.html</link><description>&lt;p&gt;I saw this and my heart lit up!  Haha.  It's actually a Christmas decoration in one of our local shops.  

&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://kieran.recoil.org/photoblog/images/photo_2008_01_17/0.html"&gt;&lt;img src="http://farm3.static.flickr.com/2261/2200343710_fe4ff39f1c_m.jpg" /&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;No post-processing other than a crop to get it square.</description><pubDate>Thu, 17 Jan 2008 19:44:58 -0000</pubDate><guid>http://kieran.recoil.org/photoblog/photo_2008_01_17.html</guid></item><item><title>Anglesey Abbey</title><link>http://kieran.recoil.org/photoblog/photo_2007_12_29.html</link><description>&lt;p&gt;A very pleasant walk around the Winter Garden with some friends this afternoon gave me this. 

&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://kieran.recoil.org/photoblog/images/photo_2007_12_29/0.html"&gt;&lt;img src="http://farm3.static.flickr.com/2406/2147153820_1159ab785f_m.jpg" /&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;I did wonder about a more square crop (removing the bottom, to leave the line of the trees running diagonally from corner to corner) but decided to leave it more complete.  It would probably also have been fun to take this raw and then blend multiple exposures, but I didn't think of that in time.</description><pubDate>Sat, 29 Dec 2007 19:39:02 -0000</pubDate><guid>http://kieran.recoil.org/photoblog/photo_2007_12_29.html</guid></item><item><title>Cake</title><link>http://kieran.recoil.org/photoblog/photo_2007_12_27.html</link><description>&lt;p&gt;I should perhaps point out that I did the icing myself.  

&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://kieran.recoil.org/photoblog/images/photo_2007_12_27/0.html"&gt;&lt;img src="http://farm3.static.flickr.com/2209/2138647344_3eb9a273fd_m.jpg" /&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Merry Christmas!</description><pubDate>Thu, 27 Dec 2007 13:02:53 -0000</pubDate><guid>http://kieran.recoil.org/photoblog/photo_2007_12_27.html</guid></item><item><title>Savoy</title><link>http://kieran.recoil.org/photoblog/photo_2007_12_19.html</link><description>&lt;p&gt;Here's an idea: find something mundane, like a cabbage, and take an interesting photo of it.  

&lt;p&gt;&lt;a href="http://kieran.recoil.org/photoblog/images/photo_2007_12_19/0.html"&gt;&lt;img src="http://farm3.static.flickr.com/2230/2108631495_c96d3b976c_m.jpg" /&gt;&lt;/a&gt;

&lt;p&gt;It may please you to know that as I had this cabbage sitting on a lamp to provide the lighting, it started to warm the leaf and it filled the room with a lovely cabbagey aroma.  Mmmm cabbage</description><pubDate>Wed, 19 Dec 2007 19:46:27 -0000</pubDate><guid>http://kieran.recoil.org/photoblog/photo_2007_12_19.html</guid></item><item><title>underground art @ stockholm</title><link>http://www.liquidx.net/from_atom/blog/2007/12/19/underground-art-stockholm/</link><description>&lt;div&gt;&lt;p&gt;&lt;a href="http://www.flickr.com/photos/pineapplebun/2069256580/" title="photo sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2395/2069256580_dca8b73e7f_m.jpg" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span&gt;&lt;a href="http://www.flickr.com/photos/pineapplebun/2069256580/"&gt;underground art @ stockholm&lt;/a&gt; &lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/pineapplebun/"&gt;pineapplebun&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;i went to stockholm for a break with &lt;a href="http://pineapplebun.o0o0o.org/"&gt;pp&lt;/a&gt; and one of the cool things there is that every underground station was themed and decorated in really amazing ways. here's one of them (from &lt;a href="http://flickr.com/photos/pineapplebun/"&gt;pp's photo&lt;/a&gt;)&lt;/p&gt;&lt;/div&gt;</description><pubDate>Wed, 19 Dec 2007 00:57:15 -0000</pubDate><guid>http://www.liquidx.net/from_atom/blog/2007/12/19/underground-art-stockholm/</guid></item><item><title>i don't live in cambridge anymore</title><link>http://www.liquidx.net/from_atom/blog/2007/12/19/i-dont-live-cambridge-anymore/</link><description>&lt;div&gt;&lt;p&gt;today, someone pointed out to me that &lt;a href="http://al.tse.id.au/"&gt;my other webpage&lt;/a&gt; had me listed as living in cambridge. well, i don't live there any more, i live in london and i love it.&lt;/p&gt;

&lt;p&gt;how many cities have FIVE international airports under their name? heathrow, gatwick, stansted, luton and the city airport. before i moved down to london, i didn't even know there was a london city airport, even less so that commercial airlines actually flew out of it. one day, when i'm rich enough to afford their investment-bankers-priced flights, i will try it out. for now, i'm satisfied with living only 20 minutes from there.&lt;/p&gt;

&lt;p&gt;one thing about london is that there are always tourists everywhere, just like on this bus:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://flickr.com/photos/liquidx/2121678200/"&gt;&lt;img src="http://farm3.static.flickr.com/2319/2121678200_66bf9660f8_m.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description><pubDate>Wed, 19 Dec 2007 00:45:50 -0000</pubDate><guid>http://www.liquidx.net/from_atom/blog/2007/12/19/i-dont-live-cambridge-anymore/</guid></item><item><title>Lowestoft #2</title><link>http://kieran.recoil.org/photoblog/photo_2007_11_22.html</link><description>&lt;p&gt;Another shot of Lowestoft beach, taken a month or two ago.  Processed to bring out the colours and contrast of the sand.

&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://kieran.recoil.org/photoblog/images/photo_2007_11_22/0.html"&gt;&lt;img src="http://farm3.static.flickr.com/2299/2055004063_8c82605780_m.jpg" /&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&lt;pre&gt;Camera model : Canon EOS 350D DIGITAL
Date/Time    : 2007:09:30 17:28:15
Flash used   : No
Focal length : 50.0mm  (35mm equivalent: 81mm)
Exposure time: 0.0100 s  (1/100)
Aperture     : f/7.1
ISO equiv.   : 100
Whitebalance : Auto
Metering Mode: matrix
Exposure     : aperture priority (semi-auto)

&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;</description><pubDate>Thu, 22 Nov 2007 21:03:01 -0000</pubDate><guid>http://kieran.recoil.org/photoblog/photo_2007_11_22.html</guid></item><item><title>Lowestoft</title><link>http://kieran.recoil.org/photoblog/photo_2007_11_18.html</link><description>&lt;p&gt;There was something of a storm off the east coast a couple of weeks ago with plenty of sand and pebbles thrown up the beach and onto the front.  The following day I took a walk while visiting some family, and just had time to take one photo.  This was it. 

&lt;p&gt;Apologies for the lack of detail in the sand - jpeg just isn't very good at a texture like that, but I can assure you the original is much better!

&lt;p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://kieran.recoil.org/photoblog/images/photo_2007_11_18/0.html"&gt;&lt;img src="http://farm3.static.flickr.com/2089/2043734085_067449c191_m.jpg" /&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;Editing was mostly a black and white conversion using the channel
mixer, and probably a curves contrast adjustment to boot.

&lt;!-- Creative Commons License --&gt;
&lt;p&gt;This work is Copyright (C) Kieran Mansley.  All rights reserved.  This
means you can't use this photo without my permission.  If you'd like to
use it, please contact me and chances are I'll say yes.
&lt;!-- /Creative Commons License --&gt;</description><pubDate>Sun, 18 Nov 2007 19:38:16 -0000</pubDate><guid>http://kieran.recoil.org/photoblog/photo_2007_11_18.html</guid></item><item><title>quicksilver open sourced</title><link>http://www.liquidx.net/from_atom/blog/2007/11/06/quicksilver-open-sourced/</link><description>&lt;div&gt;&lt;p&gt;awesome news. &lt;a href="http://www.blacktree.com/"&gt;quicksilver&lt;/a&gt; is now &lt;a href="http://code.google.com/p/blacktree-alchemy/"&gt;open sourced&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blacktree.com/"&gt;&lt;img src="http://media.liquidx.net/ul/img/2007_11_06_blacktree.jpg" height="180" width="320" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;oh yeah, &lt;a href="http://blacktree.com/"&gt;blacktree.com&lt;/a&gt; is back up and it's looking sexier than ever.&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 06 Nov 2007 23:55:55 -0000</pubDate><guid>http://www.liquidx.net/from_atom/blog/2007/11/06/quicksilver-open-sourced/</guid></item></channel></rss>