OSCON?

It appears that there was a touch of confusion and I have been accepted as a speaker at OSCON. I'll be giving the roles talk, but with some adjustments for bits that were a touch confusing. No matter how perfect the example is, using the B:: hierarchy to show multiple inheritance problems just distracts. Not only will this allow me to focus on easier examples, it will also leave more time for questions.

What happens when you assign to $0?

According to git log I've submitted 33 patches to perl core, I just submitted another one which on Linux changes this:

Into this:

If this patch gets applied doing killall onion on 5.14 will get you a dead process instead of onion: no process found, the same goes for ps(1) and top(1) which read the legacy process name by default. Before this patch the behavior of $0 assignment on Linux hadn't changed since perl 4.000 came out.

Tidy up your CPAN author directory, increase your Schwartz!

I used to encourage people to help CPAN Increase its Schwartz by making the ratio of the byte size of just the latest versions to all versions as high as possible. It's time to increase the schwartz again. Think of it as Spring cleaning (Autumn for you southern folks) for your CPAN directory.

Many people are arguing on the CPAN workers mailing list about who's opinion about rsyncing mirrors is the most worthy. While they huff and puff, you can help with just a couple minutes of your time.

App::SVNBinarySearch is going away...

... Replaced by the superior App::SVN::Bisect by Infinoid.

Infinoid's svn-bisect, now at 1.0, provides a 'run' option, just like git bisect. This is the only feature I had that he did not, and he provides many more, including a nicer API (based on git's), and smarter binary search (only searching those revisions involved in the folder you're working in.)

If you're using subversion, I highly recommend giving his tool a try.

Scheduling App::SVN::Bisect for deletion now...

DynaLoader considered harmful

DynaLoader is a portable high-level interface around you OS's dynamic library loading. It's the code that's loading your XS modules. It's actually doing a pretty good job at that. You may wonder then why I consider its use harmful.

If all you want to do is load the XS part of your module, it's the wrong tool for the job. Most of all because it has a truly awful interface. It requires you to inherit your module from it. It's common knowledge that public inheritance from an implementation detail is a really bad idea. It breaks not only encapsulation rather badly, but also violates separation of concerns.

This would be as bad as it is if DynaLoader didn't use AutoLoader. Because of this, when you call some undefined method on an instance of a class that derives from DynaLoader you don't get this error:

Can't locate object method "undefined_method" via package "Foo"

But this rather cryptic error:

SpeedTouch / Thomson wireless security flaws

Today having Internet access has become more of a necessity than a luxe. Internet is so common nowadays that we all have it at home and use it with all computers and even our home appliances: tv, mp3 players, tablets and game consoles. It's no sercert that Internet is everywhere and is here to stay

I remember when I had my first Internet connection at home that it was meant to be used for a single computer in the house. Using a router was not allowed by my ISP. Today not only is it allowed but most ISP even provide a modem/router with WIFI to all their clients!

I am the demigod of Africa

First off, I'd like to thank God (the whole Earth is filled with his glory) for this promotion. I was just a Seraph, doing my normal PR work, but somehow God (holy, holy, holy and all that) noticed me and decided it was time to give me a bit more responsibility. Of course, being untested, he couldn't put me in charge of something as important as the US Senate or something like that, so he gave me Africa. After all, if I screw up there, who's going to notice? Naturally, I screwed up. I saw something wrong and I decided to fix it.

High-level HTML Parsing

Marpa::HTML is a high-level HTML parser, built on top of the very high-quality HTML::Parser module. Why bother with high-level parsing, especially if it means layering one parser on top of another?

Here is an example, taken from the main document for HTML::Parser. The example prints out the title of an HTML document. To do this, HTML::Parser uses handlers which set up other handlers. One handler finds the start tag, then sets up two other handlers. (I won't reproduce that example here -- it's on CPAN. )

QA Hackathon 2010 update

The hackathon will start in ~ 2 weeks, so here's a quick update on our status:

  • We have a new sponsor: 123people.com. Yay! pst++
  • Unfortunately David Golden, Ricardo Signes and Barbie can not make it.
  • We accepted two last-minute requests from Miyagawa‎ and Gabor Szabo.
  • There was a tiny problem with the hotel, which luckily got spotted by Ovid. We have fixed that problem now.
  • We will meet next week (during the monthly Vienna.pm meeting which will from now on take place on the first Thursday each month) to discuss the agenda etc.

We're all very much looking forward to the event!

My Data::FormValidator Simplified talk slides

http://www.slideshare.net/redhotpenguin/dfv-3542204

No OSCON for Me This Year

Both of my proposals for OSCON were turned down, so I won't be able to make it this year. The BBC is also feeling the financial crunch, so international conferences are harder to manage. I'm not terribly disappointed, but it would have been nice to see my beloved Portland again. Fortunately, with my wedding in June, a number of my close friends from Portland will be in London. If you can't bring Ovid to Portland, bring Portland to Ovid.

On the plus side, I think this means I'll be able to attend YAPC::EU in Pisa. It will be nice to spend a bit more time in that city. My Pisa photos are sorely lacking.

IMG_0229

BioPerl and the Google Summer of Code

In addition to The Perl Foundation being accepted into GSoC 2010, BioPerl is now also part of the Google Summer of Code! The Open Bioinformatics Foundation, which also includes BioPython, BioRuby, and others, has been accepted into the Google Summer of Code for 2010. We are actively looking for students interested in OBF-related bioinformatics projects; new ideas are welcome. Project ideas and other details can be found here:


This isn't the first year BioPerl has been part of GSoC. A successful project was recently published by 2008 GSoC student Mira Han for developing a phyloXML parser for BioPerl.

Update: Rough project idea for use of Modern Perl tools or Perl 6 with BioPerl now added.

Open Source Summer Perl Jobs for College Students

The Perl Foundation is participating in Google Summer of Code 2010 and will begin accepting applications from students on the 29th.

If you are a college student interested in Open Source software, now is the time to get involved.

http://code.google.com/soc/

Each year, Google offers students the opportunity to spend their summer coding on open source projects. You propose a project, and if selected, you're assigned a mentor and provided a $4500 stipend. It is a competitive program to get into, but offers an amazing amount of real-world experience and the ability to get seriously involved in an open source project of your choosing. The Perl Foundation spans a wide variety of projects including Perl 5, Perl 6, and Parrot with many great mentors knowledgeable in areas ranging from language design, virtual machines, and compilers through web and desktop applications. This program is a great chance to get more involved in the Perl community and put a substantial project worth of source code in your portfolio.

Applications are due April 9th.

http://www.perlfoundation.org/perl5/index.cgi?gsoc

Threads in Perl, Erlang style

Adam Kennedy's recent post on threads in Padre reminded me to post about an experiment of mine. Last year I learned some Erlang. I really liked their model of multi-threading: many threads that share no data at all and communicate through message queues. A lot of other things where really annoying though, specially their crappy support for strings and lack of libraries in general. I kept thinking I want perl with these threads, so I started implementing it. And thus threads::lite was born.

The main difference between threads::lite and threads.pm is that t::l starts an entirely new interpreter instead of cloning the existing one. If you've loaded a lot of modules, that can be significantly quicker and leaner than cloning. As an optimization, it supports cloning itself right after module loading, so you can quickly start a large number of identical threads. Threads can be monitored, so that on thread death their send an exit code to their listeners.

Why Does Apple Use launchd?

Here's a crontab entry to run "echo 'Hello World'" every five minutes:

0-59/5    *    *    *     *   echo Hello World

Here's the .plist (property list) file you should create in OS X to do the same thing:

Where can I find a Catalyst hosting company?

What are your options when you would like to deploy an application written in Perl using the Catalyst MVC framework? Is the most advanced option to rent a dedicated server, install everything yourself and go?

Are there companies that offer ready-made dedicated or virtual servers with Catalyst and mod_perl already configured? I found a list of hosting companies on the Catalyst web site (though it was not linked from the main page) but as I can see none of them ready-made solution.

I am not in the web application building business but I wonder if it would not make sense to have a web hosting offering with a turn-key Catalyst environment and even with a small demo application already running?

It could be as simple as a standard dedicated server (or VPS) with all the necessary packages already installed and Apache configured.

An HTML Pretty-printer

It's nice to get a big project to the point where it produces something which is actually useful. I'm pleased to announce html_fmt, an HTML pretty printer that's part of the Marpa::HTML distribution.

The command

    html_fmt http://perl.org

will pretty-print the HTML for http:://perl.org. Tags are printed out one per line, indented according to structure. html_fmt supplies any missing start or end tags, adding comments to that effect. html_fmt respects <pre> tags.

If the argument is not a URI, it's interpreted as a file name. Suppose, for example, that very_bad_html is a file containing this HTML: "<tr>cell data". Then html_fmt very_bad_html will convert it into this:

The "Irrefutable Wave" Myth

Yesterday, Gabor and I went to a PyWeb-IL meeting. It's a monthly gathering of mostly-web Python programmers. We went there to see what can be learned from our peers and to understand the image of Perl in other communities. It was interesting.


There were two lectures: Optimizing Python and RDF and Python. The RFD lecture was actually a lecture I heard at the last W3C gathering a while ago, by the exact same person. Only this time he added a few lines in Python to show how to get things rolling. At least this time someone (me) explained the difference between URI and URL (at the W3C meeting, it took roughly half an hour for 3 different people to explain it).

"Professional-looking project websites" Whatever...

How would you show Catalyst (or Moose or DBIx::Class or Perl 6) in 5 minutes?

One of the things we missed on CeBIt is an easy way to show various Perl technologies. We improvised which worked ok but for the upcoming events - and we are planning to participate on a number of events in the next 6 months - we would like to be a lot more prepared.

We would would like to have a 5 minutes long presentation on each interesting topic. After going over the slides that would allow every one of us to talk about almost every one of the projects. For example when people asked us about Perl 6 the other Perl::Staff members sent the visitors to me and I showed them a few of my slides I picked based on my knowledge of Perl 6. If we had a well prepared set of slides showing a few features of Perl 6 then any one of us could have shown those.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.