hanekomu's Journal
http://use.perl.org/~hanekomu/journal/
hanekomu's use Perl Journalen-ususe Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.2012-01-25T02:29:48+00:00pudgepudge@perl.orgTechnologyhourly11970-01-01T00:00+00:00hanekomu's Journalhttp://use.perl.org/images/topics/useperl.gif
http://use.perl.org/~hanekomu/journal/
Thanks, but bye-bye
http://use.perl.org/~hanekomu/journal/38895?from=rss
<p>I'm leaving use.perl. This will be my final post here. use.perl has become less than useless, more like an embarrassment. For two weeks there were no frontpage news. This is not what those curious about Perl should find. The only real news were tucked away in a little side box and pointed to the journal entries. And the journal capabilities are a bit basic, to say the least. Technology has moved on.</p><p>I also encourage all use.perl journal authors to move to their own blogs. <a href="http://www.dagolden.com/">dagolden</a>++ has already done so. Diversity is good.</p><p>Now I'm not blogging regularly either, but I do have a separate <a href="http://hanekomu.at/blog">blog</a>. If and when I will blog again, it will be there, not here.</p><p>If I could delete my account here, I would. Sorry to sound so drastic, but this is what I think.</p>hanekomu2009-04-30T11:49:26+00:00journalPerl benchmarks: Nested data structures
http://use.perl.org/~hanekomu/journal/38538?from=rss
<p>The conclusion first: Nested arrays and hashes in Perl are slow. They get slower the more levels you nest. For most applications this won't be a problem, but if you cache values in a hash, you might want to use as few levels of nesting as possible.</p><p>Read the <a href="http://hanekomu.at/blog/benchmarks/20090223-1638-benchmarks_nested_data_structures.html">details</a>.</p><p>By the way, I've enabled comments on my blog - let's see how that goes...</p>hanekomu2009-02-23T15:51:47+00:00journalTree map for CPAN
http://use.perl.org/~hanekomu/journal/38512?from=rss
<p>This is a tree map for the minicpan mirror, containing only the latest versions of all CPAN distributions. Within the application, you can mouse over the rectangles to see which files and folders they represent, but here I've just annotated a few interesting blocks. Somehow it feels like a city layout...</p><p>See the <a href="http://hanekomu.at/blog/misc/20090219-1750-the_grand_perspective_on_minicpan.html">blog entry</a>.</p>hanekomu2009-02-19T16:53:50+00:00journalany::feature
http://use.perl.org/~hanekomu/journal/38504?from=rss
<p>I've released <a href="http://search.cpan.org/dist/any-feature">any::feature</a>. (It will take a while to appear on CPAN; look at the development repo on <a href="http://github.com/hanekomu/any-feature">github</a>.) It can be used like Perl 5.10's 'feature' pragma and will try to "do the right thing", regardless of whether
you use Perl 5.8 or Perl 5.10.</p><p>So far it's a proof-of-concept and will only handle the 'say' feature.</p><p>Read about it in <a href="http://hanekomu.at/blog/dev/20090218-1404-any_feature.html">my blog</a>.</p>hanekomu2009-02-18T13:05:25+00:00journalPersuading the Cloud to run your benchmarks
http://use.perl.org/~hanekomu/journal/37802?from=rss
<p>I've had quite a bit of feedback about the accessor generator benchmarks; mostly requests to add this or that module to the benchmarks. Adding the code, rerunning the benchmarks and updating the blog entries took quite a bit of time, so I thought I could automate the process.</p><p>I've made the accessor generator benchmarks into a CPAN distribution called <a href="http://search.cpan.org/dist/App-Benchmark-Accessors/">App::Benchmark::Accessors</a>. That way you can run them yourself and the prerequisite modules will install automatically as well (if you use the CPAN shell).</p><p>But there's one more thing...</p><p> <a href="http://hanekomu.at/blog/dev/20081104-1412-persuading_the_cloud_to_run_your_benchmarks.html">Full post</a> </p>hanekomu2008-11-04T13:40:36+00:00journalDissecting the Moose 4 - Benchmarking only get/set ops
http://use.perl.org/~hanekomu/journal/37776?from=rss
<p>I've followed up the previous benchmark, which tested mainly object creation, with one that performs a million get/set operations on the same object.</p><p> <a href="http://hanekomu.at/blog/dev/20081101-1258-dissecting_the_moose_4-benchmarking_accessor_generators-accessors_only.html">Full post</a> </p>hanekomu2008-11-01T12:09:16+00:00journalDissecting the Moose 3 - Benchmarking Accessor Generators
http://use.perl.org/~hanekomu/journal/37775?from=rss
<p>I wrote a small benchmarking program to compare the speeds of various accessor generators. They don't do much, just create an object while setting an accessor, then reading that accessor again, all for 100,000 times.</p><p>The following accessor generators are compared: Class::Accessor, Class::Accessor::Fast, Class::Accessor::Fast::XS, Class::Accessor::Complex, Class::Accessor::Constructor, Mouse, Moose, and immutable Moose.</p><p> <a href="http://hanekomu.at/blog/dev/20081101-1054-dissecting_the_moose_3-benchmarking_accessor_generators.html">Full post</a> </p>hanekomu2008-11-01T10:13:10+00:00journalDissecting the Moose Part 2 - Pragmatic Goodness
http://use.perl.org/~hanekomu/journal/37524?from=rss
<p>The synopsis of Moose.pm has this innocent-looking line:</p><p> <code>use Moose; # automatically turns on strict and warnings</code> </p><p>Which begs the question: "How does that work?" In this blog post, I'll try
to uncover some of the magic of Perl pragmata.</p><p> <a href="http://hanekomu.at/blog/dev/20080924-1114-dissecting_the_moose_2-pragmatic_goodness.html">Full post</a> </p>hanekomu2008-09-24T09:29:19+00:00journalPutting your money where your mouth is
http://use.perl.org/~hanekomu/journal/37497?from=rss
<p>[Cross-posted from my <a href="http://hanekomu.at/blog/2008/09/20#20080920-1033-putting_your_money_where_your_mouth_is">Perl blog</a> to use.perl in its entirety so that more people might read it.]</p><p>Warning: Rant ahead.</p><p>Reacting to the recent meme of "We don't have enough Perl sites", I've started a blog. I've written blog posts every day, sometimes several times per day, but get hardly any visitors. I don't like the idea of link-spamming indiscriminately, so I've only announced new blog posts on use.perl and on Twitter.</p><p>Of course, it is entirely possible that the topics I write about are not very interesting. It has been suggested that I should write about things that would cause others to want to link to my blog. Well, I don't have any intentions of sucking up to anybody just to get visitors. I had hoped to write about things I encountered along the way and that I found interesting. I didn't merely want to write about my own modules but also about other sorts of things, especially interesting CPAN modules I've found, or news from the Perl world in Japan and Korea. So I thought of the blog as a community service rather than a wank.</p><p>Andy Lester wrote an article in his Perl Buzz blog: <a href="http://perlbuzz.com/2008/05/perl-decentralize-diversify-colonize.html">Perl must decentralize, diversify and colonize</a>. I agree. Schwern said pretty much the same thing in his "Perl is unDead" talk at YAPC::Asia 2008.</p><p>However, saying that there should be more Perl sites is good, but then you should help in driving traffic to those sites as well.</p><p>For example - and this is not meant to single out one blogger - Perl Buzz links to the official perl pages, and the official perl pages link to Perl Buzz. I have asked for my blog to be included in planet.perl.org, but didn't even get a response. So the Perl in-crowd link gets all chummy and link to each other and write lots about their own blogs and their own modules, but the small sites are left to fend for themselves.</p><p>Put your money where your mouth is.</p><p>To be clear, I don't complain about not having thousands of visitors; rather I am disappointed in the nonchalant way in which well-known people who attract lots of visitors from outside the active Perl community proclaim that there must be more Perl sites, but when they do appear, leave them out in the cold.</p><p>Nor do I want to single out a specific prolific blogger. I am appealing to all the top Perl bloggers.</p><p>Nor do I expect, after having complained about the situation, to have lots of links to my blog suddenly spring up - I am disillusioned to the point where I don't want to continue my blog anymore. Rather, I wanted to highlight a bigger problem.</p><p>There are many interesting things happening in the Perl world. Please start
writing about them, and start to interact with other Perl blogs.</p>hanekomu2008-09-20T08:43:07+00:00journalClean-up
http://use.perl.org/~hanekomu/journal/37481?from=rss
<p>I've pushed out the final four ideas for blog posts onto my <a href="http://hanekomu.at/blog">Perl blog</a>. Thanks for reading this far!</p>hanekomu2008-09-18T13:19:36+00:00journalKorean Perl Terms
http://use.perl.org/~hanekomu/journal/37480?from=rss
<p>Blogged "Korean Perl Terms" in my <a href="http://hanekomu.at/blog/2008/09/18#20080918-1235-korean_perl_terms">Perl blog</a>.</p>hanekomu2008-09-18T10:38:02+00:00journalDissecting the Moose Part 1
http://use.perl.org/~hanekomu/journal/37478?from=rss
<p>Blogged "Dissecting the Moose Part 1" in my <a href="http://hanekomu.at/blog/2008/09/18#20080918-1003-dissecting_the_moose_1">Perl blog</a>.</p>hanekomu2008-09-18T08:02:48+00:00journalThe Way of Approaching (Korean Hackathon)
http://use.perl.org/~hanekomu/journal/37474?from=rss
<p>Blogged "The Way of Approaching" about a hackathon in Korea in my <a href="http://hanekomu.at/blog/2008/09/17#20080917-2001-the_way_of_approaching">Perl blog</a>.</p>hanekomu2008-09-17T18:16:44+00:00journalKorean Perl Workshop 2008
http://use.perl.org/~hanekomu/journal/37469?from=rss
<p>New blog entry: "Korean Perl Workshop 2008" in my <a href="http://hanekomu.at/blog/2008/09/17#20080917-0949-korean_perl_workshop_2008">Perl blog</a>.</p>hanekomu2008-09-17T07:58:23+00:00journalThe Eskimo Greeting Operator
http://use.perl.org/~hanekomu/journal/37461?from=rss
<p>New blog entry: "The Eskimo Greeting Operator" in my <a href="http://hanekomu.at/blog/2008/09/16#20080916-0928-the_eskimo_greeting_operator">Perl blog</a>.</p>hanekomu2008-09-16T07:43:25+00:00journalCompiling XS Code on AIX
http://use.perl.org/~hanekomu/journal/37446?from=rss
Blogged "Compiling XS Code on AIX" in my <a href="http://hanekomu.at/blog/2008/09/15#20080915-0827-compiling_xs_code_on_aix">Perl blog</a>.hanekomu2008-09-15T08:01:11+00:00journalPerl V 10.0
http://use.perl.org/~hanekomu/journal/37438?from=rss
<p>New blog entry: "Perl V 10.0" in my <a href="http://hanekomu.at/blog/2008/09/14#20080914-0935-perl_v_version_10_0">Perl blog</a>.</p>hanekomu2008-09-14T07:51:51+00:00journalYAPC::Europe 2008
http://use.perl.org/~hanekomu/journal/37437?from=rss
<p>New blog entry: "YAPC::Europe 2008" in my <a href="http://hanekomu.at/blog/2008/09/13#20080913-2153-yapc_europe_2008">Perl blog</a>.</p>hanekomu2008-09-13T19:57:52+00:00journalError - Day too big
http://use.perl.org/~hanekomu/journal/37431?from=rss
<p>New blog entry: "Error - Day too big" in my <a href="http://hanekomu.at/blog/2008/09/13#20080913-1019-error_day_too_big">Perl blog</a>.</p>hanekomu2008-09-13T08:42:23+00:00journalRepeating Elements in an Array Slice
http://use.perl.org/~hanekomu/journal/37427?from=rss
<p>New blog entry: "Repeating Elements in an Array Slice" in my <a href="http://hanekomu.at/blog/2008/09/12#20080912-1725-repeating_elements_in_an_array_slice">Perl blog</a>.</p>hanekomu2008-09-12T15:34:43+00:00journalAcme::CPANAuthors::Austrian
http://use.perl.org/~hanekomu/journal/37426?from=rss
<p>New blog entry: "Acme::CPANAuthors::Austrian" in my <a href="http://hanekomu.at/blog/2008/09/12#20080912-1703-acme_cpanauthors_austrian">Perl blog</a>.</p>hanekomu2008-09-12T15:16:16+00:00journalCPAN Gems: Proc::InvokeEditor
http://use.perl.org/~hanekomu/journal/37419?from=rss
<p>New blog entry: "CPAN Gems: Proc::InvokeEditor" in my <a href="http://hanekomu.at/blog/2008/09/12#20080912-0911-proc_invokeeditor">Perl blog</a>.</p>hanekomu2008-09-12T07:43:30+00:00journalOverloading Constants in Perl
http://use.perl.org/~hanekomu/journal/37413?from=rss
<p>New blog entry: "Overloading Constants in Perl" in my <a href="http://hanekomu.at/blog/2008/09/11#20080911-1609-overloading_constants">Perl blog</a>.</p>hanekomu2008-09-11T18:21:08+00:00journalSlides: Perl in Japan
http://use.perl.org/~hanekomu/journal/36574?from=rss
<p>At the Vienna.pm TechSocialMeeting yesterday I've given a talk called "Perl in Japan" about the japanese Perl community: who they are, how they work, what they do. It contains impressions I brought back from YAPC::Asia 2008. Too many people don't know anything about asian perl mongers. That's a shame because there are some really interesting developments going on there. I've also briefly talked about Perl in Korea; there seems to be a small but intense community and I hope to find out more.</p><p>Here are the slides from the talk: <a href="http://www.slideshare.net/hanekomu/perl-in-japan">http://www.slideshare.net/hanekomu/perl-in-japan</a> </p>hanekomu2008-06-03T09:15:24+00:00journalNew Perl blog
http://use.perl.org/~hanekomu/journal/36512?from=rss
... at <a href="http://hanekomu.at/blog/">http://hanekomu.at/blog/</a>.hanekomu2008-05-25T18:24:06+00:00journaluse 箆; or: Distributions with Kanji on CPAN
http://use.perl.org/~hanekomu/journal/36459?from=rss
<p>During the YAPC::Asia hackathon day 2, we discovered a kanji that we could use for Moose.pm: 箆. It even looks a bit like some thing with antlers. Here is the JEDict definition:</p><p>箆 [へら: HERA] spatula<br>箆鹿 [へらじか: HERAJIKA] (uk) moose, elk</p><p>So a moose is an animal with a spatula on its head? Larry said that 箆 could also mean "comb", so a moose is an animal with a comb on its head. But I digress.</p><p>I've made a simple proof-of-concept distribution. The main module's code basically is:</p><p>
use utf8;<br>
package 箆;<br>
1;</p><p>'perl Makefile.PL', 'make', 'make test' and 'make dist' all worked well. It produced a tarball: 箆.tar.gz. So far, so good.</p><p>Then I've tried to upload the tarball to cpan:</p><p>
$ cpan-upload-http 箆.tar.gz</p><p>That also gave no error message. So I waited for the emails from PAUSE. Here is the first one:</p><p>> Subject: Notification from PAUSE<br>><br>> MARCEL (Marcel Grünauer == hanekomu (跳ね込む)) visited the PAUSE and<br>> requested an upload into his/her directory. The request used the<br>> following parameters:<br>><br>> pause99_add_uri_upload            [箆-0.01.tar.gz]<br>> SUBMIT_pause99_add_uri_httpupload [ Upload this file from my disk ]<br>> pause99_add_uri_httpupload        [-0.01.tar.gz]<br>><br>> The request is now entered into the database where the PAUSE daemon will<br>> pick it up as soon as possible (usually 1-2 minutes).<br>><br>> During upload you can watch the logfile in<br>> https://pause.perl.org/pause/authenquery?ACTION=tail_logfile&pause99_tail_logfi<nobr>l<wbr></nobr> e_1=5000.<br>><br>> You'll be notified as soon as the upload has succeeded, and if the<br>> uploaded package contains modules, you'll get another notification from<br>> the indexer a little later (usually within 1 hour).<br>><br>><br>> Thanks for your contribution,<br>> --<br>> The PAUSE</p><p>Due to the good fortune of having kanji and kana in my CPAN display name (跳ね込む), I was sure that the email had the right encoding. But the tarball filename it returned was wrong: "箆-0.01.tar.gz". Well, let's see. Maybe it's just a problem with generating the email. Wait and see... Here is the second email:</p><p>> Subject: CPAN Upload: M/MA/MARCEL/-0.01.tar.gz<br>><br>> The uploaded file<br>><br>>    -0.01.tar.gz<br>><br>> has entered CPAN as<br>><br>>  file: $CPAN/authors/id/M/MA/MARCEL/-0.01.tar.gz<br>>  size: 24392 bytes<br>>   md5: 39ebd0b5ab4bd9acdb2a80c1c4a733dd<br>><br>> No action is required on your part<br>> Request entered by: MARCEL (Marcel Grünauer == hanekomu (跳ね込む))<br>> Request entered on: Sun, 18 May 2008 11:00:42 GMT<br>> Request completed:  Sun, 18 May 2008 11:00:52 GMT<br>><br>> Thanks,<br>> --<br>> paused, v996</p><p>Hm, doesn't look good either. Well, wait for the indexer report... Here it is:</p><p>> Subject: Failed: PAUSE indexer report MARCEL/-0.01.tar.gz<br>><br>> The following report has been written by the PAUSE namespace indexer.<br>> Please contact modules@perl.org if there are any open questions.<br>>  Id: mldistwatch 1001 2008-05-15 05:34:01Z k<br>><br>>               User: MARCEL (Marcel Gruenauer == hanekomu)<br>>  Distribution file: -0.01.tar.gz<br>>    Number of files: 21<br>>         *.pm files: 14<br>>             README: 箆-0.01/README<br>>           META.yml: 箆-0.01/META.yml<br>>  Timestamp of file: Sun May 18 11:00:51 2008 UTC<br>>   Time of this run: Sun May 18 11:02:23 2008 UTC<br>><br>> No package statements could be<br>>                     found in the distro (maybe a script or<br>>                     documentation distribution?)<br>><br>> __END__</p><p>Ah, so it could actually untar it because it found the README and META.yml files. But it seems it uses the wrong regex to find the package statements. Maybe it needs to read the file as utf8...</p><p>Just to be sure it wasn't a problem with cpan-upload-http, I also uploaded the file from the PAUSE web interface directly. Here is the response:</p><p>> The Perl Authors Upload Server<br>><br>> Upload a file to CPAN<br>> Add a file for MARCEL<br>> File successfully copied to '/home/ftp/incoming/-0.01.tar.gz'<br>> Your filename has been altered as it contained characters besides the class [A-Za-z0-9_\-\.\@\+].<br>> DEBUG: your filename['箆-0.01.tar.gz'] corrected filename['-0.01.tar.gz'].</p><p>So this doesn't work either.</p><p>Dear CPAN maintainers, please fix it.</p>hanekomu2008-05-18T12:16:34+00:00journalCodeRepos ktkr!
http://use.perl.org/~hanekomu/journal/36198?from=rss
<p>I've moved most of my code to <a href="http://coderepos.org/share">CodeRepos</a>. Thanks to <a href="http://use.perl.org/~Yappo/">Yappo</a> for the commit bit. Now every CodeRepos committer (that is, all the cool Japanese hackers and some gaijin) can patch my distros. Looking forward to it!</p>hanekomu2008-04-19T10:39:54+00:00journalPerl debugger plugins with DB::Pluggable
http://use.perl.org/~hanekomu/journal/36182?from=rss
<p>I've released <a href="http://search.cpan.org/dist/DB-Pluggable/">DB-Pluggable</a> which adds plugin support to the debugger. There are quite a few good ~/.perldb ideas around, but they're not easy to combine because they often overwrite the same DB::* functions. This distribution tries to remedy this by moving functionality to plugins.</p><blockquote><div><p> <tt> $ cat ~/.perldb<br> <br> use DB::Pluggable;<br> use YAML;<br> <br> $DB::PluginHandler = DB::Pluggable->new(config => Load <<EOYAML);<br> global:<br> log:<br> level: error<br> <br> plugins:<br> - module: BreakOnTestNumber<br> EOYAML<br> <br> $DB::PluginHandler->run;<br> <br> $ perl -d foo.pl<br> <br> Loading DB routines from perl5db.pl version 1.28<br> Editor support available.<br> <br> Enter h or `h h' for help, or `man perldebug' for more help.<br> <br> 1..9<br> <nobr> <wbr></nobr>...<br> DB<1> b #5<br> DB<2> r</tt></p></div> </blockquote><p>DB-Pluggable was inspired by Andy Armstrong's <a href="http://use.perl.org/~AndyArmstrong/journal/35792">journal entry</a> about a debugger command that adds breakpoints for specific Test::Builder-based tests.</p><p>This distribution is very much in beta, so it's more like a proof of concept. Therefore, not all hooks imaginable have been added, only the ones to make this demo work. If you want more hooks or if the current hooks don't work for you, let me know.</p>hanekomu2008-04-17T20:45:59+00:00journalYAPC::Asia ni ikimasu
http://use.perl.org/~hanekomu/journal/35696?from=rss
<p>I've <a href="http://conferences.yapcasia.org/ya2008/user/2277">registered</a> for the YAPC::Asia, so the next thing to do is to find a flight and a hotel.</p>hanekomu2008-02-19T14:55:56+00:00journalhanekomu v4.0
http://use.perl.org/~hanekomu/journal/35693?from=rss
<p>Unbelievable, I turned 40 today. Because the memorable thing happened at 0:40am local time 40 years ago, I thought I'd stay up last night and finish watching <a href="http://en.wikipedia.org/wiki/Dennou_Coil">Dennou Coil</a>. Ended up watching 16 episodes (11-26) and going to bed at 2:40, knowing I'd have to get up at 7:30. Normally this wouldn't be worth mentioning, but with advanced age there seems to be a greater need of sleep...</p><p>Getting up wasn't too bad, though, as I had time to ponder the cool things that happened in Dennou Coil.</p><p>ObReflection: Being 40 doesn't feel like what I expected it to feel like when I was 20. Even 50-60 year olds generally don't seem to be as old as they seemed to me 30 years ago. Ok, back then I was a child and had a different concept of time, but still... Extended lifespan and better medicine certainly has something to do with it as well.</p><p>I am wondering, though, whether more days are behind me than lie before me...</p>hanekomu2008-02-19T09:02:22+00:00journal