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

<channel>
	<title>赖洪礼的 blog &#187; Software announcements</title>
	<atom:link href="http://izumi.plan99.net/blog/index.php/category/software-announcements/feed/" rel="self" type="application/rss+xml" />
	<link>http://izumi.plan99.net/blog</link>
	<description>Ecchi nanowa ikenai to omoimasu</description>
	<lastBuildDate>Wed, 06 Apr 2011 08:10:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>default_value_for Rails plugin: declaratively define default values for ActiveRecord models</title>
		<link>http://izumi.plan99.net/blog/index.php/2008/10/03/default_value_for-rails-plugin-declaratively-define-default-values-for-activerecord-models/</link>
		<comments>http://izumi.plan99.net/blog/index.php/2008/10/03/default_value_for-rails-plugin-declaratively-define-default-values-for-activerecord-models/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 15:17:46 +0000</pubDate>
		<dc:creator>Hongli</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Software announcements]]></category>

		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2008/10/03/default_value_for-rails-plugin-declaratively-define-default-values-for-activerecord-models/</guid>
		<description><![CDATA[We&#8217;ve just released default_value_for, a plugin for declaratively defining default values for ActiveRecord models.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve just released <a href="http://blog.phusion.nl/2008/10/03/47/">default_value_for</a>, a plugin for declaratively defining default values for ActiveRecord models.</p>
]]></content:encoded>
			<wfw:commentRss>http://izumi.plan99.net/blog/index.php/2008/10/03/default_value_for-rails-plugin-declaratively-define-default-values-for-activerecord-models/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>daemon_controller: a library for robust daemon management</title>
		<link>http://izumi.plan99.net/blog/index.php/2008/08/25/daemon_controller-a-library-for-robust-daemon-management/</link>
		<comments>http://izumi.plan99.net/blog/index.php/2008/08/25/daemon_controller-a-library-for-robust-daemon-management/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 11:25:15 +0000</pubDate>
		<dc:creator>Hongli</dc:creator>
				<category><![CDATA[Phusion]]></category>
		<category><![CDATA[Software announcements]]></category>

		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2008/08/25/daemon_controller-a-library-for-robust-daemon-management/</guid>
		<description><![CDATA[Phusion has recently released a library for robust daemon management. Check it out. Description and tutorials are available on that page.]]></description>
			<content:encoded><![CDATA[<p>Phusion has recently released a library for robust daemon management. <a href="http://blog.phusion.nl/2008/08/25/daemon_controller-a-library-for-robust-daemon-management/">Check it out.</a> Description and tutorials are available on that page.</p>
]]></content:encoded>
			<wfw:commentRss>http://izumi.plan99.net/blog/index.php/2008/08/25/daemon_controller-a-library-for-robust-daemon-management/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Passenger (mod_rails) 1.0.5 released</title>
		<link>http://izumi.plan99.net/blog/index.php/2008/05/07/passenger-mod_rails-105-released/</link>
		<comments>http://izumi.plan99.net/blog/index.php/2008/05/07/passenger-mod_rails-105-released/#comments</comments>
		<pubDate>Wed, 07 May 2008 19:22:44 +0000</pubDate>
		<dc:creator>Hongli</dc:creator>
				<category><![CDATA[Phusion]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Software announcements]]></category>

		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2008/05/07/passenger-mod_rails-105-released/</guid>
		<description><![CDATA[Passenger 1.0.5 has just been released. Please read the Phusion corporate blog for the announcement and upgrade instructions.]]></description>
			<content:encoded><![CDATA[<p>Passenger 1.0.5 has just been released. Please read <a href="http://blog.phusion.nl/2008/05/07/passenger-mod_rails-105-released/">the Phusion corporate blog</a> for the announcement and upgrade instructions.</p>
]]></content:encoded>
			<wfw:commentRss>http://izumi.plan99.net/blog/index.php/2008/05/07/passenger-mod_rails-105-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beautifying Perl</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/11/29/beautifying-perl/</link>
		<comments>http://izumi.plan99.net/blog/index.php/2007/11/29/beautifying-perl/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 21:53:22 +0000</pubDate>
		<dc:creator>Hongli</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Software announcements]]></category>

		<guid isPermaLink="false">http://izumi.plan99.net/blog/index.php/2007/11/29/beautifying-perl/</guid>
		<description><![CDATA[I totally fell in love with Ruby ever since I started using it more than a year ago. The language&#8217;s syntax and constructs are very, very elegant (with a few exceptions&#8230; I&#8217;m talking about you, StringIO.new.is_a?(IO) == false). The &#8216;do&#8217; blocks are simply brilliant, they make working with closures a breeze and aesthetically pleasing. Ruby&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I totally fell in love with Ruby ever since I started using it more than a year ago. The language&#8217;s syntax and constructs are very, very elegant (with a few exceptions&#8230; I&#8217;m talking about you, <code>StringIO.new.is_a?(IO) == false</code>). The &#8216;do&#8217; blocks are simply brilliant, they make working with closures a breeze <em>and</em> aesthetically pleasing. Ruby&#8217;s Array, Enumerable and Hash classes make heavy use of this.</p>
<p>Compared to Ruby&#8217;s syntax, Perl&#8217;s seems like something from the 80s. Perl is often the target of &#8220;my-code-is-more-unreadable-than-yours-but-I-can-do-it-in-fewer-lines&#8221; jokes. I can write readable and maintainable code, but no matter what I do, it&#8217;s still nowhere near Ruby&#8217;s level. All the referencing and dereferencing of arrrays and hashes makes things ugly. %, $ and @ everywhere, urgh. And working with collections takes more code than in Ruby. I can&#8217;t tell you how many times I had to write stuff like this:</p>
<div class="synthi_code" style="display:block;" id ="styled_synthi_4f2cb31a9add1">
<div class="synthi_header" style="font-weight:bold;"> Perl</div>
<div class="perl">
<ol>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$foo_is_ok</span>;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #b1b100;">foreach</span> <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$value</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">@foo</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp;<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$value</span> satisfies some condition<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">$foo_is_ok</span> = <span style="color: #cc66cc;">1</span>;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #b1b100;">last</span>;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$foo_is_ok</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp;&#8230;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
<p>In Ruby I can just do:</p>
<div class="synthi_code" style="display:block;" id ="styled_synthi_4f2cb31a9c15f">
<div class="synthi_header" style="font-weight:bold;"> Ruby</div>
<div class="ruby">
<ol>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">if</span> foo.<span style="color:#9900CC;">any</span>? <span style="color:#006600; font-weight:bold;">&#123;</span> |x| &#8230;<span style="color:#9900CC;">some</span> expression involving x&#8230; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp;&#8230;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color:#9966CC; font-weight:bold;">end</span> </div>
</li>
</ol>
</div>
</div>
<p>There&#8217;s List::Util but they deliberately left out the &#8216;any&#8217; function because it&#8217;s &#8220;easy to implement&#8221;. Urgh. -_-</p>
<p>I write a lot of text parsers in Perl. And each time I have to manually strip newlines from a read line with:</p>
<div class="synthi_code" style="display:block;" id ="styled_synthi_4f2cb31a9d0fe">
<div class="synthi_header" style="font-weight:bold;"> Perl</div>
<div class="perl">
<ol>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #0000ff;">$line</span> =~ <a href="http://www.perldoc.com/perl5.6/pod/func/s.html"><span style="color: #000066;">s</span></a>/<span style="color: #66cc66;">&#91;</span>\r\n<span style="color: #66cc66;">&#93;</span>//g;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #0000ff;">$line</span> =~ <a href="http://www.perldoc.com/perl5.6/pod/func/s.html"><span style="color: #000066;">s</span></a>/^<span style="color: #66cc66;">&#91;</span>\<a href="http://www.perldoc.com/perl5.6/pod/func/s.html"><span style="color: #000066;">s</span></a>\t<span style="color: #66cc66;">&#93;</span>*//;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&#8230; </div>
</li>
</ol>
</div>
</div>
<p>Seriously, why can&#8217;t I call &#8216;$foo->strip()&#8217; or something like in Python or Ruby?<br />
And print(). In 99% of the cases I want to print a newline as well, so I have to write <code>print "$foo\n";</code> Why is there no puts()-like function that automatically prints the newline as well? It would save me a few keystrokes.</p>
<p>But no more. I&#8217;ve had enough. Enter the Peanuts library. Now you can write:</p>
<div class="synthi_code" style="display:block;" id ="styled_synthi_4f2cb31a9e485">
<div class="synthi_header" style="font-weight:bold;"> Perl</div>
<div class="perl">
<ol>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #000000; font-weight: bold;">use</span> Peanuts;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$array</span> = Array<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;hello&quot;</span>, <span style="color: #ff0000;">&quot;world&quot;</span>, <span style="color: #ff0000;">&quot;foo&quot;</span>, <span style="color: #ff0000;">&quot;bar&quot;</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">puts <span style="color: #0000ff;">$array</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; -&gt;<span style="color: #006600;">map</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">sub</span><span style="color: #66cc66;">&#123;</span> <span style="color: #0000ff;">$_</span> . <span style="color: #ff0000;">&quot;!&quot;</span> <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; -&gt;<span style="color: #006600;">findAll</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">sub</span><span style="color: #66cc66;">&#123;</span> /o/ <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; -&gt;<span style="color: #006600;">reject</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">sub</span><span style="color: #66cc66;">&#123;</span> /f/ <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; -&gt;<span style="color: #006600;">join</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8216;, &#8216;</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
<p>This would print &#8220;hello!, world!\n&#8221;.</p>
<p>Other Ruby-isms include:</p>
<div class="synthi_code" style="display:block;" id ="styled_synthi_4f2cb31aa07a7">
<div class="synthi_header" style="font-weight:bold;"> Perl</div>
<div class="perl">
<ol>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #000000; font-weight: bold;">use</span> Peanuts;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$s</span> = String<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;&nbsp; hello world&nbsp; &nbsp;&quot;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">puts <span style="color: #0000ff;">$s</span>-&gt;<span style="color: #006600;">strip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080; font-style: italic;"># =&gt; &quot;hello world&quot;; This is actually a new String object.</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">puts <span style="color: #0000ff;">$s</span>-&gt;<span style="color: #006600;">Strip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080; font-style: italic;"># in-place version of strip()</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><a href="http://www.perldoc.com/perl5.6/pod/func/print.html"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">&quot;$s<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080; font-style: italic;"># =&gt; &quot;hello world\n&quot;. A String object behaves like a regular Perl string.</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$h</span> = Hash<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span> x =&gt; <span style="color: #ff0000;">&#8216;y&#8217;</span> <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #0000ff;">$h</span>-&gt;<span style="color: #006600;">merge</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span> foo =&gt; <span style="color: #ff0000;">&#8216;bar&#8217;</span>, a =&gt; <span style="color: #ff0000;">&#8216;b&#8217;</span> <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #0000ff;">$h</span>-&gt;<span style="color: #006600;">Merge</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span> baka =&gt; <span style="color: #ff0000;">&#8216;baka&#8217;</span> <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;&nbsp; &nbsp; &nbsp;<span style="color: #808080; font-style: italic;"># in-place version of merge()</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><a href="http://www.perldoc.com/perl5.6/pod/func/package.html"><span style="color: #000066;">package</span></a> MyClass;</div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;"><span style="color: #000000; font-weight: bold;">sub</span> foo <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">Package<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-&gt;<span style="color: #006600;">aliasMethod</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8216;bar&#8217;</span>, <span style="color: #ff0000;">&#8216;foo&#8217;</span><span style="color: #66cc66;">&#41;</span>;&nbsp; &nbsp; &nbsp;<span style="color: #808080; font-style: italic;"># Now we have an alias! No ugly Perl symbol table messing syntax!</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">Package<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-&gt;<span style="color: #006600;">chainMethod</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&#8216;foo&#8217;</span>, <span style="color: #ff0000;">&#8216;trees&#8217;</span><span style="color: #66cc66;">&#41;</span>;&nbsp; &nbsp;<span style="color: #808080; font-style: italic;"># Like Rails&#8217;s alias_method_chain; now</span></div>
</li>
<li style="font-weight: bold;">
<div style="font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;"># we have foo_with_trees() and foo_without_trees() </span></div>
</li>
</ol>
</div>
</div>
<p>The source code is at this SVN repository:</p>
<pre>http://public.railsplugins.net/repos/peanuts/trunk</pre>
<p>It is licensed under the MIT license.</p>
]]></content:encoded>
			<wfw:commentRss>http://izumi.plan99.net/blog/index.php/2007/11/29/beautifying-perl/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mikuru 1.0.0 released</title>
		<link>http://izumi.plan99.net/blog/index.php/2007/10/08/mikuru-100-released/</link>
		<comments>http://izumi.plan99.net/blog/index.php/2007/10/08/mikuru-100-released/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 14:32:09 +0000</pubDate>
		<dc:creator>Hongli</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Software announcements]]></category>

		<guid isPermaLink="false">http://izumi.plan99.net/blog/?p=57</guid>
		<description><![CDATA[Mikuru &#8211; named after Asahina Mikuru from The Melancholy of Haruhi Suzumiya &#8211; is an extremely simple image gallery generator. Its key features are: Easy to use and easy to set up. No dependencies on databases. The generated gallery has a simple, to the point, quick and easy to user interface. I wrote this because [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/mikuru/Mikuru_Asahina.jpg" style="float: right"/><br />
Mikuru &#8211; named after Asahina Mikuru from <a href="http://en.wikipedia.org/wiki/The_Melancholy_of_Haruhi_Suzumiya_%28anime%29">The Melancholy of Haruhi Suzumiya</a> &#8211; is an extremely simple image gallery generator. Its key features are:</p>
<ul>
<li>Easy to use and easy to set up.</li>
<li>No dependencies on databases.</li>
<li>The generated gallery has a simple, to the point, quick and easy to user interface.</li>
</ul>
<p>I wrote this because I went to Abunai last weekend, and I took 150 pictures. I didn&#8217;t feel like setting up a full blown gallery system such as Gallery, so I wrote this simple fire-and-forget image gallery generator.</p>
<h2>How does it work?</h2>
<p>You put a bunch of pictures in a folder, run Mikuru, and it&#8217;ll generate an &#8216;index.html&#8217; as well as a set of thumbnails. There are no other generated files. Simply upload index.html, the thumbnails and the pictures to a web server, and you&#8217;re ready to go.</p>
<p>Here&#8217;s an example usage session:</p>
<pre>
$ ls
DSCN001.JPG   DSCN002.JPG   DSCN003.JPG
DSCN004.JPG   DSCN005.JPG   DSCN006.JPG
$ mikuru
MKDIR      thumbnails
WRITE      thumbnails/DSCN001.JPG
WRITE      thumbnails/DSCN002.JPG
WRITE      thumbnails/DSCN003.JPG
WRITE      thumbnails/DSCN004.JPG
WRITE      thumbnails/DSCN005.JPG
WRITE      thumbnails/DSCN006.JPG
WRITE      index.html
$ scp -r * www.somehost.com:public_html/my_gallery/
</pre>
<h2>How does it look like?</h2>
<p><a href="/mikuru/demo/">Click here for a demo image gallery.</a></p>
<h2>Download</h2>
<p><a href="/mikuru/mikuru-1.0.0.tar.gz">Version 1.0.0</a><br />
Requires <a href="http://www.ruby-lang.org/">Ruby</a> and <a href="http://rmagick.rubyforge.org/">RMagick</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://izumi.plan99.net/blog/index.php/2007/10/08/mikuru-100-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

