• Downloading video with Awk

    Peteris Krumins, the prolific blogger and programmer, decided to explore TCP/IP networking in GNU Awk, and came up with this, a YouTube video downloader.

    Subscribe to Peteris' blog. It's well worth reading.

  • Perl 6 apps today: November is a wiki written in Perl 6

    Adapted from Patrick Michaud

    Carl Mäsak and Johan Viklund have recently released November, a wiki engine written in Perl 6 for Rakudo Perl, the Perl 6 implementation written for the Parrot virtual machine..

    Details are available at "Announcing November, a wiki in Perl 6", with an important followup post at "November meets the Web".

    Great work, and I really enjoyed the lightning talk!

  • Red Hat's patch slows down overloading in Perl

    Vipul Ved Prakash, long-time CPAN author and creator of Vipul's Razor, has reported a big slowdown in Red Hat's Perl package.

    Some investigation revealed that there’s a long standing bug in Redhat Perl that causes *severe* performance degradation on code that uses the bless/overload combo. The thread on this is here: https://bugzilla.redhat.com/show_bug.cgi?id=379791.

    Vipul's analysis is a beautiful rundown of how these kinds of things should be reported, and the techie details should help you decide whether you want to rebuild Perl from source, or wait for updated packages for RHEL and Fedora.

    Pete Krawczyk sent me a few comments:

    RedHat acknowledges that their patching of Perl caused slowness; if you're doing serious work with default Perl on RedHat, you might want to consider building your own until a proper patch comes along. The problem currently affects Fedora 9, RedHat 5 and spin-offs like CentOS 5. The main symptom is exponential slowdown during operations involving overloaded operators; many common modules (such as JSON and URI) are also affected.

    Some other links:

    And here's my code to illustrate the slowdown, based on the original code in Vipul's article:

    #!/usr/bin/perl
    use Time::HiRes;
    use overload q( sub {};
    my %h;
    $|++;
    print "Pass#tPass timetTotal timen";
    my $bigstart = Time::HiRes::time();
    for my $i ( 1..50 ) {
    my $start = Time::HiRes::time();
    for my $j ( 1..1000 ) {
    $h{$i*1000 + $j} = bless [ ] => 'main';
    }
    my $now = Time::HiRes::time();
    printf( "#%2dt%ft%fn", $i, $now-$start, $now-$bigstart );
    }
    
  • How cool Perl 6 really is

    Moritz Lenz has started a series of blog posts about moving from Perl 5 to Perl 6, including why some design choices were made, and how you can take advantage of some of the Perl 6 features today in Perl 5. "The target audience are Perl 5 programmers. It is build like a tutorial, but strongly emphasizes the 'why'," he says in his use.perl posting.

  • Big interview with Damian Conway

    O'Reilly interviewed Damian Conway at OSCON. There's surprisingly little craziness, but lots of good discussion of programming languages, programming curricula and of course, Perl 6. Oh, and a fair amount of mocking of American accents. Laugh it up, Mr. I-Live-On-A-Giant-Penal-Colony-Island!

    [youtube https://www.youtube.com/watch?v=RqU-G_ptdGU&hl=en&fs=1&color1=0x402061&color2=0x9461ca&border=1]

    The O'Reilly page has a transcription if you don't want to devote 36 minutes of your life to it, but why wouldn't you?