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.
http://www.slideshare.net/charsbar/practical-bug-reporting
http://www.slideshare.net/charsbar/top-tens-of-20082009
You can check other people's slides from here:
http://conferences.yapcasia.org/ya2009/talks
I believe videos will be published later, possibly around the end of this month.
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)
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 http://twitter.com/yapcasia to stay tuned.
Replaced ppm.tcool.org 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 http://ppm.tcool.org/dist/Plagger/at/tcool and http://ppm.tcool.org/dist/Plagger/at/theoryx5 for example).
Well, refactoring is still going on. I need a better feed, and probably I should set up some fastcgi server (lighty?). Ideas are welcome.
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.
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 http://tokyo2007.yapcasia.org/wiki/?SlidesFromTalks (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.
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.
http://www.youtube.com/watch?v=L022IsDrTX8
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)
http://www.infomarks.co.jp/yapc2007/
My talk? Mmmmmm...
As circular dependency of Math-BigInt stuff seemingly caused serious problems, I temporarily stopped the soap server for older ActivePerl at ppm.tcool.org. You still can install things from http://ppm.tcool.org/archives/ but sorry for the inconvenience.
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...)
I started running yet another plagger bot at #news on irc.perl.org, 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).
global:
plugin_path: myplugins
timezone: Asia/Tokyo
log:
level: debug
plugins:
- module: Subscription::Config
config:
feed:
- http://search.cpan.org/uploads.rdf
- http://www.perlcast.com/rss/current.xml
- http://www.perlfoundation.org/perl-foundation.rdf
- http://jobs.perl.org/rss/standard.rss
- http://use.perl.org/journal.pl?op=top&content_type=rss
- http://use.perl.org/useperl.rdf
- http://www.perl.com/pace/perlnews.rdf
- http://annocpan.org/recent.rss
- http://log.perl.org/index.rdf
- http://perlmonks.org/?node_id=30175
- module: CustomFeed::PerlMonks
- module: Filter::PerlNews
- module: Filter::Rule
rule:
- module: Deduped
path:
- module: Notify::IRC
config:
daemon_port: 9992
nickname: rssbot2
server_host: irc.perl.org
server_port: 6667
server_channels:
- #news
charset: utf8
announce: action
and Filter::PerlNews (this is an ad hoc plugin, not (and will not be) uploaded in the official svn tree):
package Plagger::Plugin::Filter::PerlNews;
use strict;
use base qw( Plagger::Plugin );
sub register {
my ($self, $context) = @_;
$context->register_hook(
$self,
'update.feed.fixup' => \&change_feed_title,
);
}
sub change_feed_title {
my ($self, $context, $args) = @_;
my $title = $args->{feed}->title;
$title =~ s/^AnnoCPAN Recent Notes/AnnoCPAN/;
$title =~ s/^Perl.com Perl.com/Perl.com/;
$title =~ s/^use Perl Journals/Journals/;
$title =~ s/^jobs\.perl\.org/Jobs/;
$title =~ s/^The Perl Foundation/PerlFoundation/;
$title =~ s/^search\.cpan\.org/CPAN/;
$title =~ s/^Perl Monks Newest Nodes/PerlMonks/;
$args->{feed}->title( $title );
my @entries = reverse @{ $args->{feed}->{entries} };
$args->{feed}->{entries} = \@entries;
}
1;
Actually you can do this without writing a plugin. If you prefer, replace the last part with this:
- module: Notify::IRC
config:
daemon_port: 9992
nickname: rssbot2
server_host: irc.perl.org
server_port: 6667
server_channels:
- #news
charset: utf8
announce: action
rule:
expression: $args->{feed}->{title} =~ s/^AnnoCPAN Recent Notes/AnnoCPAN/;
or, more clearly:
- module: Filter::Rule
rule:
expression: $args->{feed}->{title} =~ s/^AnnoCPAN Recent Notes/AnnoCPAN/;
- module: Notify::IRC
config:
daemon_port: 9992
nickname: rssbot2
server_host: irc.perl.org
server_port: 6667
server_channels:
- #news
charset: utf8
announce: action
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.
Suggestions and corrections are welcome
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.
#!/usr/bin/perl
use strict;
chdir $ARGV[0] if @ARGV;
my $status = `svn status -u`;
foreach my $line ( split
next if $line =~
if ( my ($file) = $line =~
print "updating $file\n";
system("svn up $file") and die "failed to update $file: $!";
}
}
Of course I'm lazy enough to register this to Windows' Task Scheduler
I've finished packing dozens of Catalyst plugins and now http://ppm.tcool.org/ 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.
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.
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).
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.