<?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>バカな火星人 &#187; Perl</title>
	<atom:link href="http://martian.org/marty/tag/perl/feed/" rel="self" type="application/rss+xml" />
	<link>http://martian.org/marty</link>
	<description>Marty was here!</description>
	<lastBuildDate>Wed, 11 Jan 2012 13:16:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Perl&#8217;s XML::Twig</title>
		<link>http://martian.org/marty/2009/10/14/perls-xmltwig/</link>
		<comments>http://martian.org/marty/2009/10/14/perls-xmltwig/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 16:24:20 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/?p=202</guid>
		<description><![CDATA[I was asked to &#8220;Free the code&#8221; from my XML parsing experiment , so I will post some here. It may be a bit disappointing though, since these are only some short scripts, and they&#8217;re a bit ugly. I&#8217;ll explain the Perl one today, and do the Haskell sometime soon. I was playing with Jim [...]]]></description>
			<content:encoded><![CDATA[<p>I was asked to &#8220;Free the code&#8221; from my <a href="http://martian.org/marty/2009/10/07/beating-down-the-xml/">XML parsing experiment</a> , so I will post some here.  It may be a bit disappointing though, since these are only some short scripts, and they&#8217;re a bit ugly.  I&#8217;ll explain the Perl one today, and do the Haskell sometime soon.</p>

<p>I was playing with <a href="http://www.csse.monash.edu.au/~jwb/jmdict.html">Jim Breen&#8217;s Japanese dictionary</a> and I wanted to make a list of the first kanji component in each entry.  I wanted one result for each entry, so I used &#8220;(none)&#8221; if the entry has no kanji part.  This is not a difficult problem, although XML makes it as slow and memory intensive as many difficult problems.</p>

<pre><code>use XML::Twig;
my @keb = (); # for the results

sub entry {
    my ($t, $e) = @_;
    my $kt = "(none)";
    if (my $k = $e-&gt;first_child("k_ele")) {
        if(my $keb = $k-&gt;first_child("keb")) {
            $kt = $keb-&gt;text();
        }
    }
    $e-&gt;purge;
    push @keb, $kt;
}

my $twig = XML::Twig-&gt;new(
    twig_handlers =&gt; { entry =&gt; \&amp;entry }
);
$twig-&gt;parsefile($ARGV[0]);
$twig-&gt;purge;

# now the results are in @keb
</code></pre>

<p>Using XML::Twig is quite simple.  When I create the parser I tell it how to handle the elements I care about, and in this case I only care about &#8220;entry&#8221; elements.  When the parser finds an entry, it calls my <code>entry</code> subroutine, passing the entry&#8217;s object as the second parameter, <code>$e</code>.  Inside the <code>entry</code> routine I can use DOM-style methods on <code>$e</code> to extract the data I want.  Notice that I call <code>$e-&gt;purge</code> when I&#8217;ve got the data out.  This tells the parser that I won&#8217;t need that element again, so it can free the memory.  This is how XML::Twig manages to parse a file that most other modules can&#8217;t.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2009/10/14/perls-xmltwig/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Beating down the XML</title>
		<link>http://martian.org/marty/2009/10/07/beating-down-the-xml/</link>
		<comments>http://martian.org/marty/2009/10/07/beating-down-the-xml/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 18:04:38 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/?p=199</guid>
		<description><![CDATA[XML is still a huge mess, but at least now I have managed to get a few programs that can handle it with reasonable-ish memory requirements. For Perl, as I had thought, the XML::Twig module gave me a pleasant interface and was able to easily handle the document. For Haskell it was a little bit [...]]]></description>
			<content:encoded><![CDATA[<p>XML is still <a href="http://martian.org/marty/2009/09/30/xml-is-a-huge-mess/">a huge mess</a>, but at least now I have managed to get a few programs that can handle it with reasonable-ish memory requirements.</p>

<p>For Perl, as I had thought, the XML::Twig module gave me a pleasant interface and was able to easily handle the document.</p>

<p>For Haskell it was a little bit trickier.  I used the SAX parser in HaXml, but it is not like a regular SAX parser, since Haskell is so unlike any regular language.  The parser returns a lazy list of SAX events, so I had to make sure I processed the list without evaluating the whole thing into memory.</p>

<p>Now that I&#8217;ve dealt with the memory issue it appears that I have a speed issue to deal with next.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2009/10/07/beating-down-the-xml/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>XML is a huge mess</title>
		<link>http://martian.org/marty/2009/09/30/xml-is-a-huge-mess/</link>
		<comments>http://martian.org/marty/2009/09/30/xml-is-a-huge-mess/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 16:27:28 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/?p=196</guid>
		<description><![CDATA[I have a 39 MB XML file that I wanted to process. I wasn&#8217;t expecting it to be so difficult. Writing the code, in multiple languages, was not difficult. But running the programs was a big problem. My first attempt was a simple Haskell program, but I had to kill it after it ate over [...]]]></description>
			<content:encoded><![CDATA[<p>I have a 39 MB XML file that I wanted to process.  I wasn&#8217;t expecting it to be so difficult.  Writing the code, in multiple languages, was not difficult.  But running the programs was a big problem.</p>

<p>My first attempt was a simple Haskell program, but I had to kill it after it ate over 1.3 GB (yes, 1.3 GB) of ram!</p>

<p>Haskell&#8217;s strings are known to be memory hogs, and the HaXml module I was using was making them even worse by not sensible decoding the UTF-8 text correctly.  I decided to write a leaner Haskell program later, and switch to Perl to get the job done.</p>

<p>At this point I also decided to set a limit to the amount of memory the programs could consume.  For a 39 MB file I hoped that 10 times that would be enough, so I rounded up and set the limit at 512 MB.</p>

<p>But Perl, using the XML::LibXML module, couldn&#8217;t process the file with that memory limit.  I also ran a quick one-liner in Erlang, just to watch it crash out of memory too.  I&#8217;m going to try some other languages to see if I can find one that can work in 512 MB.</p>

<p>My next useful step is to try the <a href="http://xmltwig.com/">XML::Twig</a> module in Perl.  I&#8217;ve had good experiences with it before.  It won&#8217;t be as fast as LibXML, but it probably has the best chance of surviving within my 512 MB limit.  For Haskell, I think I&#8217;ll have to resort to a SAX style parser.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2009/09/30/xml-is-a-huge-mess/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Class::Accessor can has &#8220;has&#8221;</title>
		<link>http://martian.org/marty/2009/09/21/classaccessor-can-has-has/</link>
		<comments>http://martian.org/marty/2009/09/21/classaccessor-can-has-has/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 15:19:07 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/?p=191</guid>
		<description><![CDATA[I maintain the Class::Accessor module. It appears to be used a lot, but the API is a bit ugly. In YAPC::Asia the ugly API was criticised in at least three different talks, and each time it was compared to the fashionable Moose API. In one of these talks JRockway asked Shawn Moore how to turn [...]]]></description>
			<content:encoded><![CDATA[<p>I maintain the Class::Accessor module.  It appears to be used a lot, but the API
is a bit ugly.  In YAPC::Asia the ugly API was criticised in at least three
different talks, and each time it was compared to the fashionable Moose API.</p>

<p>In one of these talks JRockway asked Shawn Moore how to turn a bad API into
a good API, so I&#8217;m going to try that: adding antlers to Class::Accessor!</p>

<p>So now instead of writing:</p>

<pre><code>package Foo;
use base qw(Class::Accessor);
Foo-&gt;mk_accessors(qw(alpha beta gamma));
</code></pre>

<p>If you prefer Moose-style you can write:</p>

<pre><code>package Foo;
use Class::Accessor "antlers";
has alpha =&gt; ( is =&gt; "rw" );
has beta  =&gt; ( is =&gt; "rw" );
has gamma =&gt; ( is =&gt; "rw" );
</code></pre>

<p>The original API is still available, and everything is the same underneath.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2009/09/21/classaccessor-can-has-has/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>It&#8217;s alive!</title>
		<link>http://martian.org/marty/2009/09/15/its-alive/</link>
		<comments>http://martian.org/marty/2009/09/15/its-alive/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 17:46:24 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ironman]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/?p=184</guid>
		<description><![CDATA[My blog: it&#8217;s alive! I don&#8217;t post very often, but I&#8217;m going to try to change that. Is this my fifth attempt? This time, to give myself a goal, I joined the Perl Ironman Challenge and I will try to blog at least once a week about Perl. So&#8230; Perl: it&#8217;s alive! There have been [...]]]></description>
			<content:encoded><![CDATA[<h3>My blog: it&#8217;s alive!</h3>

<p>I don&#8217;t post very often, but I&#8217;m going to try to change that.  Is this my fifth attempt?</p>

<p>This time, to give myself a goal, I joined the <a href="http://ironman.enlightenedperl.org/" title="Perl Ironman">Perl Ironman Challenge</a> and I will try to blog at least once a week about Perl.  So&#8230;</p>

<h3>Perl: it&#8217;s alive!</h3>

<p>There have been lots of reports over the last few years about Perl being dead.  Those reports upset a lot of Perl mongers, and I didn&#8217;t fully understand that.  Perl was not a family member, friend, or pet; so why the strong emotion?  It was never really &#8220;alive&#8221;, so how did it &#8220;die&#8221;?  And all these upset people were still using Perl, so they kept it breathing.  And there were many more Perl users who weren&#8217;t upset, maybe because they never heard about the death.</p>

<p>It seems to me that Perl never died: it just became unfashionable for a while.  And during the unfashionable period Perl did have some self-image issues, and maybe a lot of misdirected energy.  But being unfashionable isn&#8217;t life-threatening.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2009/09/15/its-alive/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>YAPC::Asia 2008</title>
		<link>http://martian.org/marty/2008/01/30/yapcasia-2008/</link>
		<comments>http://martian.org/marty/2008/01/30/yapcasia-2008/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 15:22:43 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/2008/01/30/yapcasia-2008/</guid>
		<description><![CDATA[They must really want to make it easy for us to attend YAPC::Asia this year: the venue is beside our apartment!]]></description>
			<content:encoded><![CDATA[<p>They must really want to make it easy for us to attend <a href="http://conferences.yapcasia.org/ya2008/">YAPC::Asia</a> this year: the venue is beside our apartment!</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2008/01/30/yapcasia-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>道が長くて、駱駝が遅い</title>
		<link>http://martian.org/marty/2008/01/18/%e9%81%93%e3%81%8c%e9%95%b7%e3%81%8f%e3%81%a6%e3%80%81%e9%a7%b1%e9%a7%9d%e3%81%8c%e9%81%85%e3%81%84/</link>
		<comments>http://martian.org/marty/2008/01/18/%e9%81%93%e3%81%8c%e9%95%b7%e3%81%8f%e3%81%a6%e3%80%81%e9%a7%b1%e9%a7%9d%e3%81%8c%e9%81%85%e3%81%84/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 16:07:20 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[日本語]]></category>

		<guid isPermaLink="false">http://martian.org/marty/2008/01/17/%e9%81%93%e3%81%8c%e9%95%b7%e3%81%8f%e3%81%a6%e3%80%81%e9%a7%b1%e9%a7%9d%e3%81%8c%e9%81%85%e3%81%84/</guid>
		<description><![CDATA[Karen was reading Perl Buzz and noticed that Perl6 on Parrot will be called &#8220;Rakudo&#8221;, which is a shortened form of &#8220;rakudadou&#8221; or 駱駝道, the &#8220;way of the camel&#8221;. But I think that &#8220;rokudo&#8221;, a shortened form of 六道輪廻, would be a better name; it even has the number 6 (六) at the start.]]></description>
			<content:encoded><![CDATA[<p>Karen was reading <a href="http://perlbuzz.com/2008/01/perl-6-on-parrot-is-now-known-as-rakudo.html">Perl Buzz</a> and noticed that <a href="http://www.rakudo.org/2008/01/the-compiler-formerly-known-as.html">Perl6 on Parrot will be called &#8220;Rakudo&#8221;</a>, which is a shortened form of &#8220;rakudadou&#8221; or 駱駝道, the &#8220;way of the camel&#8221;.  But I think that &#8220;rokudo&#8221;, a shortened form of 六道輪廻, would be a better name; it even has the number 6 (六) at the start.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2008/01/18/%e9%81%93%e3%81%8c%e9%95%b7%e3%81%8f%e3%81%a6%e3%80%81%e9%a7%b1%e9%a7%9d%e3%81%8c%e9%81%85%e3%81%84/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Working with collocates</title>
		<link>http://martian.org/marty/2008/01/14/working-with-collocates/</link>
		<comments>http://martian.org/marty/2008/01/14/working-with-collocates/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 15:08:25 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/2008/01/14/working-with-collocates/</guid>
		<description><![CDATA[Now that Karen is expecting me to write more Perl scripts to analyse collocates I think it&#8217;s time to install the Text::NSP module from CPAN.]]></description>
			<content:encoded><![CDATA[<p>Now that <a href="http://martian.org/karen/2008/01/13/defining-collocates/">Karen</a> is expecting me to write more Perl scripts to analyse collocates I think it&#8217;s time to install the <a href="http://search.cpan.org/~tpederse/Text-NSP/">Text::NSP</a> module from CPAN.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2008/01/14/working-with-collocates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl Collocates</title>
		<link>http://martian.org/marty/2008/01/13/perl-collocates/</link>
		<comments>http://martian.org/marty/2008/01/13/perl-collocates/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 17:53:48 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/2008/01/13/perl-collocates/</guid>
		<description><![CDATA[Karen and I were talking about linguistics and textual analysis, and how she wanted to analyse the writings of the Perl community. So, to make a start we decided to write a short Perl script to extract word level n-grams from some text so we could start looking for interesting collocates. $n=4; undef $/; @txt [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://martian.org/karen/">Karen</a> and I were talking about linguistics and textual analysis, and how she wanted to <a href="http://martian.org/karen/2008/01/12/perl-collocates/">analyse the writings of the Perl community</a>.  So, to make a start we decided to write a short Perl script to extract word level n-grams from some text so we could start looking for interesting collocates.</p>

<pre><code>
$n=4;
undef $/;
@txt = split /\W+/, lc <>;
for($i = 0; @txt-$i > $n;  ++$i) {
    print &quot;@txt[$i..$i+$n]\n&quot;;
}
</code></pre>

<p>(N-grams of 5 elements seem to be a good size for collocates, so we set $n=4.)</p>

<p>To look for interesting collocates we simply piped the output of that script through <code>sort | uniq -c | sort -n | tail</code> .  As test data I ran the script against version 2 and 3 of the GPL.  In version 2 the most common n-gram was &#8220;work based on the program&#8221;; but for version 3 it was &#8220;the gnu general public license&#8221;.  That isn&#8217;t a particularly interesting result, but I&#8217;m sure we will find some when we look at more than 2 source documents.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2008/01/13/perl-collocates/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Shibuya Perl Mongers テクニカルトーク#8</title>
		<link>http://martian.org/marty/2007/10/01/shibuya-perl-mongers-%e3%83%86%e3%82%af%e3%83%8b%e3%82%ab%e3%83%ab%e3%83%88%e3%83%bc%e3%82%af8/</link>
		<comments>http://martian.org/marty/2007/10/01/shibuya-perl-mongers-%e3%83%86%e3%82%af%e3%83%8b%e3%82%ab%e3%83%ab%e3%83%88%e3%83%bc%e3%82%af8/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 14:12:59 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/2007/10/01/shibuya-perl-mongers-%e3%83%86%e3%82%af%e3%83%8b%e3%82%ab%e3%83%ab%e3%83%88%e3%83%bc%e3%82%af8/</guid>
		<description><![CDATA[Karen and I went to the Shibuya.pm technical talk tonight. Most of the talks were in high-speed Japanese so we didn&#8217;t understand very much. But we need to start practising, and Perl talks are better than normal conversation because we can, at least, understand the Perl bits. On the way home we were comparing the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://martian.org/karen/">Karen</a> and I went to the <a href="http://shibuya.pm.org/blosxom/techtalks/200710.html">Shibuya.pm technical talk</a> tonight.  Most of the talks were in <i>high-speed</i> Japanese so we didn&#8217;t understand very much.  But we need to start practising, and Perl talks are better than normal conversation because we can, at least, understand the Perl bits.</p>

<p></p><p>On the way home we were comparing the Tokyo tech talks to ones we have seen in Europe.  There are a lot of similarities, but we noticed one trend: in Europe the focus is on <em>how</em> you can do something, but here it is on <em>what</em> you can do.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2007/10/01/shibuya-perl-mongers-%e3%83%86%e3%82%af%e3%83%8b%e3%82%ab%e3%83%ab%e3%83%88%e3%83%bc%e3%82%af8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Planning a YAPC::Europe talk</title>
		<link>http://martian.org/marty/2006/08/27/planning-a-yapceurope-talk/</link>
		<comments>http://martian.org/marty/2006/08/27/planning-a-yapceurope-talk/#comments</comments>
		<pubDate>Sun, 27 Aug 2006 01:13:58 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://martian.org/marty/2006/08/27/planning-a-yapceurope-talk/</guid>
		<description><![CDATA[Karen has already mentioned our joint YAPC::Europe talk called &#8220;My First CPAN Module&#8220;. We probably should rehearse it, or at least talk about it when I&#8217;m not watching South Park. I did read the outline she wrote, and I&#8217;m sure I could easily talk for at least an hour by following her plan. We decided [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Khaos" href="http://martian.org/karen/">Karen</a> has already mentioned <a href="http://martian.org/karen/2006/08/26/yapceurope-are-joints-talks-a-good-idea/">our joint YAPC::Europe talk</a> called &#8220;<a href="http://birmingham2006.com/cgi-bin/yapc.pl?act=talk-item&#038;talkid=88">My First CPAN Module</a>&#8220;. We probably should rehearse it, or at least talk about it when I&#8217;m not watching South Park.  I did read the outline she wrote, and I&#8217;m sure I could easily talk for at least an hour by following her plan.</p>

<p>We decided to do this talk together because we have different viewpoints.  I&#8217;ve uploaded modules to CPAN so it makes sense to me.  Karen was able to investigate the upload process from a first time perspective and so could spot the confusing parts.  We hope that the combined perspective will make the talk useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2006/08/27/planning-a-yapceurope-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spork and chopsticks</title>
		<link>http://martian.org/marty/2006/03/30/spork-and-chopsticks/</link>
		<comments>http://martian.org/marty/2006/03/30/spork-and-chopsticks/#comments</comments>
		<pubDate>Thu, 30 Mar 2006 14:53:34 +0000</pubDate>
		<dc:creator>Marty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[日本語]]></category>

		<guid isPermaLink="false">http://martian.org/marty/2006/04/12/spork-and-chopsticks/</guid>
		<description><![CDATA[At YAPC::Asia Ingy told us all about Sporx, explaining that it was a combination of Spork and Takahashi, and so should be pronounced &#8220;Sporkahashi&#8221;.  When I began to tell Karen about &#8220;Sporkahashi&#8221; she said &#8220;That was clever&#8221; when I had only mentioned the name.  Because she knew little about Spork and nothing about Takahashi she had assumed the &#8220;hashi&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>At YAPC::Asia <a title="Ingy dot Net" href="http://ingy.net/">Ingy</a> told us all about <a title="Spork plus Takahashi" href="http://openjsan.org/doc/i/in/ingy/Sporx/0.10/">Sporx</a>, explaining that it was a combination of Spork and Takahashi, and so should be pronounced &#8220;Sporkahashi&#8221;.  When I began to tell <a title="Karen Pauley" href="http://martian.org/karen/">Karen</a> about &#8220;Sporkahashi&#8221; she said &#8220;That was clever&#8221; when I had only mentioned the name.  Because she knew little about <a title="Slide Presentations (Only Really Kwiki)" href="http://search.cpan.org/dist/Spork/">Spork</a> and nothing about <a title="Takahashi method of presentation" href="http://www.rubycolor.org/takahashi/">Takahashi</a> she had assumed the &#8220;hashi&#8221; was 箸 instead of 橋.</p>

<p>Well, Karen wouldn&#8217;t have thought about the kanji characters, but she knew that &#8220;hashi&#8221; (箸) meant &#8220;chopsticks&#8221;, so she thought a &#8220;spork and chopsticks&#8221; name was a smart idea from Ingy.</p>

<p>I don&#8217;t think anyone else spotted that.  The &#8220;hashi&#8221; (橋) in Takahashi (高橋) means &#8220;bridge&#8221;; 高橋 is a surname that means &#8221;high bridge&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://martian.org/marty/2006/03/30/spork-and-chopsticks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

