ishigaki's Journal ishigaki's use Perl Journal en-us use 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:33:17+00:00 pudge Technology hourly 1 1970-01-01T00:00+00:00 ishigaki's Journal YAPC::Asia 2009 was over <p>Well, the YAPC::Asia 2009 was over a few days ago. I talked on a bug reporting, and gave a few figures in a lightning talk. Here're the links for the slides.</p><p><a href=""></a><br><a href=""></a></p><p>You can check other people's slides from here:</p><p><a href=""></a></p><p>I believe videos will be published later, possibly around the end of this month.</p><p>Anyway, I must admit I was very disappointed in a sense, as I felt like I was attending an OSCON, not a YAPC. (If you attended the 2-day main program + dinner + all the 3 courses after that, it costed around $1150 (with a $200 discount applied)<nobr> <wbr></nobr>:/) However, I really enjoyed chatting/discussing/hanging around with the people, and the sessions I attended were very nice. If you're a web application (framework) developer, you'll be excited by the new PSGI project by miyagawa and others, and the "miyagawanize" by yusukebe was<nobr> <wbr></nobr>/the/ lightning talk of this YAPC. The purple thing is a small cushion for your chin, which Yahoo! Japan generously gave us as a souvenir for a conference or such several years ago.</p> ishigaki 2009-09-19T11:49:14+00:00 journal YAPC::Asia 2008 <p>YAPC::Asia 2008 is announced to be held on May 15-16th in Tokyo. More detailed information from the organizers will follow. If you are twitterer, follow <a href=""></a> to stay tuned.</p> ishigaki 2008-01-10T05:26:54+00:00 journal updates <p>Replaced website with Catalyst+DBIC based one. Now you can search for modules/distributions it (and some other repos) provides. It also shows when the registered repos are last updated, and you can track down the dependency links to know which version of which packages would be installed alongside. This is rather important as not all the repositories have the latest version, and because I'm not using PPM::Make, packages in my repo tend to have different dependencies (compare <a href=""></a> and <a href=""></a> for example).</p><p>Well, refactoring is still going on. I need a better feed, and probably I should set up some fastcgi server (lighty?). Ideas are welcome.</p><p><a href=""></a></p><p>By the way, I found along the way that my repo was a bit unstable for PPM3 recently. I don't remember when I updated but SOAP::Lite 0.69 doesn't work well with PPM3 repository server. Though I haven't dug deep, it failed to serve ppd files at random (when I tested, XML-LibXML and Crypt-SSLeay were "not found on server", to name a few). I bumped down the version of SOAP::Lite to 0.60 and now I believe it is working fine again. GUI version of PPM doesn't suffer this problem. Sorry for inconvenience.</p> ishigaki 2007-10-18T03:58:38+00:00 journal YAPC::Asia is over <p>It may be a bit late to report, but YAPC::Asia 2007 (April 4-5) is over with great success as ever, and the speakers and staffs enjoyed Hackathon at Hotel Dan (the Encode maintainer's place with fabulous view). Right now, you can see most of the slides at (movies and voices are coming soon). Maybe more detailed journal would be posted by miyagawa, the lead organizer. I posted this just because YAPC::Asia of this year seems a bit less-known (Perl Review 3.2 didn't have its schedule in the Perl Calendar) and I feel sorry about that, especially considering the fact that we gathered around 400 attendees.</p><p>There were bunch of good talks, but for now, I name two of the lightning talks. The first one is a parody. If you know Dan, you'll find it quite funny.</p><p></p><p>And try this one... though instruction is written in Japanese, you'll soon get the point: You can manipulate toy missiles from your web browser. Of course its backend is written in perl (with hacked version of Device::USB::MissileLauncher)</p><p></p><p>My talk? Mmmmmm...</p> ishigaki 2007-04-08T08:04:49+00:00 journal soap server at is temporarily stopped <p>As circular dependency of Math-BigInt stuff seemingly caused serious problems, I temporarily stopped the soap server for older ActivePerl at You still can install things from but sorry for the inconvenience.</p> ishigaki 2007-03-12T19:05:23+00:00 journal Win32::PowerPoint 0.04 with more embellishment options <p>Updated Win32::PowerPoint as Austin Ekwebelam sent me a modified/enhansed version and a test script and desired ppt output for his case. They are very helpful, especially as YAPC::Asia is coming. (I must write some txt2ppt converter with it as promised in the pod...)</p> ishigaki 2007-01-16T17:28:09+00:00 journal #news on <p>I started running yet another plagger bot at #news on, since jbisbee's bot has been down for a month or so. Here's bot's config.yaml (a bit modified; and the num of spaces are not correct because of the "nbsp"s).</p><p><code><br>global:<br> &nbsp; &nbsp; plugin_path: myplugins<br> &nbsp; &nbsp; timezone: Asia/Tokyo<br> &nbsp; &nbsp; log:<br> &nbsp; &nbsp; &nbsp; &nbsp; level: debug</code></p><p><code>plugins:<br> &nbsp; &nbsp; - module: Subscription::Config<br> &nbsp; &nbsp; &nbsp; &nbsp; config:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; feed:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -;content_type=rss<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -</code></p><p><code> &nbsp; &nbsp; - module: CustomFeed::PerlMonks</code></p><p><code> &nbsp; &nbsp; - module: Filter::PerlNews</code></p><p><code> &nbsp; &nbsp; - module: Filter::Rule<br> &nbsp; &nbsp; &nbsp; &nbsp; rule:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - module: Deduped<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; path:<nobr> <wbr></nobr>.plagger-perlnews/irc.db</code></p><p><code> &nbsp; &nbsp; - module: Notify::IRC<br> &nbsp; &nbsp; &nbsp; &nbsp; config:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; daemon_port: 9992<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nickname: rssbot2<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server_host:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server_port: 6667<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server_channels:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - #news<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; charset: utf8<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; announce: action<br></code></p><p>and Filter::PerlNews (this is an ad hoc plugin, not (and will not be) uploaded in the official svn tree):</p><p><code><br>package Plagger::Plugin::Filter::PerlNews;</code></p><p><code>use strict;<br>use base qw( Plagger::Plugin );</code></p><p><code>sub register {<br> &nbsp; &nbsp; &nbsp; &nbsp; my ($self, $context) = @_;<br> &nbsp; &nbsp; &nbsp; &nbsp; $context-&gt;register_hook(<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $self,<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'update.feed.fixup' =&gt; \&amp;change_feed_title,<br> &nbsp; &nbsp; &nbsp; &nbsp; );<br>}</code></p><p><code>sub change_feed_title {<br> &nbsp; &nbsp; &nbsp; &nbsp; my ($self, $context, $args) = @_;</code></p><p><code> &nbsp; &nbsp; &nbsp; &nbsp; my $title = $args-&gt;{feed}-&gt;title;</code></p><p><code> &nbsp; &nbsp; &nbsp; &nbsp; $title =~ s/^AnnoCPAN Recent Notes/AnnoCPAN/;<br> &nbsp; &nbsp; &nbsp; &nbsp; $title =~ s/^;<br> &nbsp; &nbsp; &nbsp; &nbsp; $title =~ s/^use Perl Journals/Journals/;<br> &nbsp; &nbsp; &nbsp; &nbsp; $title =~ s/^jobs\.perl\.org/Jobs/;<br> &nbsp; &nbsp; &nbsp; &nbsp; $title =~ s/^The Perl Foundation/PerlFoundation/;<br> &nbsp; &nbsp; &nbsp; &nbsp; $title =~ s/^search\.cpan\.org/CPAN/;<br> &nbsp; &nbsp; &nbsp; &nbsp; $title =~ s/^Perl Monks Newest Nodes/PerlMonks/;</code></p><p><code> &nbsp; &nbsp; &nbsp; &nbsp; $args-&gt;{feed}-&gt;title( $title );</code></p><p><code> &nbsp; &nbsp; &nbsp; &nbsp; my @entries = reverse @{ $args-&gt;{feed}-&gt;{entries} };</code></p><p><code> &nbsp; &nbsp; &nbsp; &nbsp; $args-&gt;{feed}-&gt;{entries} = \@entries;<br>}</code></p><p><code>1;<br></code></p><p>Actually you can do this without writing a plugin. If you prefer, replace the last part with this:</p><p><code><br> &nbsp; &nbsp; - module: Notify::IRC<br> &nbsp; &nbsp; &nbsp; &nbsp; config:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; daemon_port: 9992<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nickname: rssbot2<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server_host:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server_port: 6667<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server_channels:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - #news<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; charset: utf8<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; announce: action<br> &nbsp; &nbsp; &nbsp; &nbsp; rule:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; expression: $args-&gt;{feed}-&gt;{title} =~ s/^AnnoCPAN Recent Notes/AnnoCPAN/;<br></code></p><p>or, more clearly:</p><p><code><br> &nbsp; &nbsp; - module: Filter::Rule<br> &nbsp; &nbsp; &nbsp; &nbsp; rule:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; expression: $args-&gt;{feed}-&gt;{title} =~ s/^AnnoCPAN Recent Notes/AnnoCPAN/;</code></p><p><code> &nbsp; &nbsp; - module: Notify::IRC<br> &nbsp; &nbsp; &nbsp; &nbsp; config:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; daemon_port: 9992<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nickname: rssbot2<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server_host:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server_port: 6667<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; server_channels:<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; - #news<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; charset: utf8<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; announce: action<br></code></p><p>Since this rule/expression stuff is not well-documented and a bit too magical, I prefer the first, though I totally agree we shouldn't include this kind of ad hoc plugins in the svn tree.</p><p>Suggestions and corrections are welcome<nobr> <wbr></nobr>;)</p> ishigaki 2006-12-23T18:31:30+00:00 journal scriptlet to update files only you've not touched <p>If you have some large subversion repository, and you're too lazy (or you are not allowed) to make working branches, and still you're longing to update files you aren't touching (ie. simple 'svn up' doesn't work for you), this kind of scriptlet might help you.</p><p><code><br>#!/usr/bin/perl<br>use strict;</code></p><p><code>chdir $ARGV[0] if @ARGV;</code></p><p><code>my $status = `svn status -u`;</code></p><p><code>foreach my $line ( split<nobr> <wbr></nobr>/\n/, $status ) {<br> &nbsp; &nbsp; next if $line =~<nobr> <wbr></nobr>/^[M?]/;<br> &nbsp; &nbsp; if ( my ($file) = $line =~<nobr> <wbr></nobr>/^\s+\*\s+\d+\s+(.+)$/ ) {<br> &nbsp; &nbsp; &nbsp; &nbsp; print "updating $file\n";<br> &nbsp; &nbsp; &nbsp; &nbsp; system("svn up $file") and die "failed to update $file: $!";<br> &nbsp; &nbsp; }<br>}<br></code></p><p>Of course I'm lazy enough to register this to Windows' Task Scheduler<nobr> <wbr></nobr>;) I might wrap this with 'for' loop to auto-update multiple repositories I've checked out.</p> ishigaki 2006-12-14T07:14:51+00:00 journal More Catalyst plugins are in <p>I've finished packing dozens of Catalyst plugins and now <a href=""></a> has about 140 Catalyst plugins (including models/views/helpers), that is, more than half of them at CPAN, though some of the most important modules are missing, including the ones which call for Cache::FastMmap.</p><p>So, I agree developing some kind of Cat apps (especially smaller ones) on Windows is not so hard as some of you might think, and I also agree, if you're going to create larger web services, developing on Windows is quite hard, or sometimes simply pointless. The best choice depends on what you want to do, and what you're given.</p> ishigaki 2006-12-11T19:50:28+00:00 journal fixed the repos <p>The actual reason of the unstable ppm server was circular dependency of Test and PathTools, though they are both in the core and I should have ignored them. Now I added some codes to see if the dependent modules are in the core of 5.8.1 (a bit modified, though), and if that's true, omit them. Sorry for 5.8.0 users (if any).</p><p>I haven't written extra codes to check other circular dependencies, though I successfully installed latest Plagger/Jifty/Catalyst/DBIC from there. If you find anything, let me know.</p> ishigaki 2006-12-09T16:54:30+00:00 journal temporarily reverted recent changes at <p>I'm not sure the reason why yet, but recent updates at likely broke something and made it unstable for a few days. As I checked locally, it seems to fail to parse xml files, so maybe I need to make them cleaner and parsing routine more robust (oops! The problem was circular dependency. I'm fixing that now).</p><p>In the meantime, I reverted several recent changes with "svn up -r" (hurrah, subversion), to the state of 03, Dec. Sorry for the inconvenience, especially for Jifty users.</p> ishigaki 2006-12-09T06:59:22+00:00 journal false promise of kwalitee <p>There are lots of things that make me crazy while packaging modules for my ppm repos, but one of the worst irritators is a podcoverage test failure.</p><p>I believe the test should guarantee the kwalitee of a package, but testing pod is not so critical for ordinary people, so lots of the tests are written to be skipped unless TEST_POD env is true. Actually, some of my modules have such tests. I once thought that was an idea.</p><p>However, I've found not a few podcoverage tests which see TEST_POD are broken. I reported some of them via RT but, unlike other explicit failures, completing pod entries is not so easy. Just reporting a broken test makes me feel sorry, but there's no right answer for a pod, especially for a non-native English speaker like me.</p><p>So, I beg you, who probably have just copied your podcoverage test from somewhere. Set TEST_POD or remove the test. Otherwise, your test might be a false promise of kwalitee.</p> ishigaki 2006-12-08T22:45:02+00:00 journal more updates at <p>Now has latest versions of Jifty/Catalyst/DBIC and their dependencies along with Plagger. And I rewrote some of the instructions/tips at sitetop. Here're some.</p><p>* Catalyst</p><p>I repackaged every Cat-related thing to call for Catalyst-Runtime instead of older version of Catalyst. This change might cause various conflicts while installing/upgrading (use -force option if you're in trouble). But now you don't have to stick to the older Catalyst any more.</p><p>* Jifty</p><p>I haven't written this yet at site top (or jifty wiki), but now I offer the latest dev release at CPAN and its bundled plugins, though basically, you're adviced to use svn HEAD. And one more caveat. If you once installed ppm version of Jifty, don't forget to 'nmake install' after 'svn up' to avoid unwanted test errors previously-installed version might cause.</p><p>* external libraries</p><p>I compiled libtidy to satisfy the latest Plagger's dependency. Normally just ppm install HTML-Tidy would do the trick, but if you're using latest ActivePerl, you might need to grab that from <a href=""></a> and install it somewhere. You also might need to install Pari from <a href=""></a> and memcached for win32 from <a href=""></a>. Maybe you'll need more if I check fully.</p><p>* Module::CoreList</p><p>This is just for me (and other repository admins). ActivePerl doesn't have DB_File and the likes, Sys::Syslog, and some of the OS2/VMS related things, though they are listed in M::CL. So if you want to setup new ppm repos, you might want to make sure if packages you're going to offer have dependencies on them (especially DB_File). This is also why I need yet another private ppm maker.</p> ishigaki 2006-12-06T04:12:47+00:00 journal updated ppm repos at <p>After a couple of months' break, I updated my ppm repos at and added dozens of modules newer version of Plagger and its dependencies call for, though I've been too busy to check them fully. Some of them might be broken/short of something they (implicitly) require. If you find anything, please let me know.</p><p>And I started writing yet another ppm maker. Latest version of PPM::Make does fairly good but it's for theoryx repos in the end. I need one which does what I want. For example, it should respect Module::Install/Build's recommends section (which is critical to me, but I don't think PPM::Make should respect it, too).</p><p>Anyway, I'm not going to abondon my ppm repos, at least right now. Though I recommend to use CPAN, packaging modules is kind of fun for me. All I want (and wanted then) to say is: if you are in trouble, test it. Just saying "I couldn't make it through" won't help you.</p> ishigaki 2006-11-29T14:09:56+00:00 journal now supports ppm 4.x I've re-made whole things and <a href=""></a> now supports ppm 4.x bundled with ActivePerl and above. This Win32 ppm repository offers Plagger, Jifty, and some other packages I'm interested in including Catalyst and DBIx::Class. I hope this would help you, though I won't use it. I'm a stubborn CPAN user<nobr> <wbr></nobr>;) ishigaki 2006-09-18T06:04:44+00:00 windows