Maxim Gregoriev will give a talk at YAPC::NA 2012 described as:
There was a goal to deliver a web portal where US Department of Energy WAN users can easily find all network performance metrics and where they can share or get some advice from the networking “wizards”. The WAN monitoring bits of data are gathered from the mesh of decentralised multi-domain network monitoring web services called perfSONAR-PS. The project we will be talking about is called “E-Center” and it provides a higher level aggregation of the monitoring data with anomalous events detection, forecasting and fluid data visualization.
Passing a list of arguments to another program on Windows in perl is much more complicated than it should be. There are several different issues that combine that lead to this.
(mostly copied from a post I made on PerlMonks)
First is that argument lists are always passed as a single string in Windows, as opposed to arrays like on other systems. This is less of a problem than it appears, because 95% of programs use the same rules for parsing that string into an array. Roughly speaking, the rules are that arguments can be quoted with double quotes, and backslashes can escape any character.
The second issue is that cmd.exe uses different quoting rules than the normal parsing routine. It uses a caret as the escape character instead of backslash.
I have virtually (and somewhat physically) disappeared for a few good months, whether it was from the development community or from friends. I've needed a break from stuff, from planet Earth.
One of the things I had the privilege of doing upon returning to the surface is to organize our next Tel Aviv Perl Mongers (TA.pm) meeting. I was fortunate enough to have the help of Shlomi Fish and Gabor Szabo. I also had the pleasure of having Erez Schatz and Ido Kanner stepping up and offering to do a few talks!
I just read Buddy Burden’s recent post A Random Story and it was fun to see that his reasons for adopting Data::Random was the same as my reason for adopting Zoidberg: failing tests. The difference was that his failing tests were his own and mine were in Zoidberg.
I was a few years into using Linux and I had really fallen in love with Perl, which was my first real programming language (after Maple, Mathematica, and LaTeX), but I had never really gotten the hang of Bash. Since Perl was used in scripting, and even things that looked like shell scripting, I wondered if there was a Perl shell. I looked and I saw a few Zoidberg and Psh stood out as being functional.
Now I can’t remember what it was, but Zoidberg was the one that kept my attention, there was probably something, but I can’t remember anymore. It had a problem though, a failing test on installation through CPAN. I could install it through apt though, so no problem, right?
Ingy döt Net will give a talk at YAPC::NA 2012 described as:
Stackato is a private/personal PaaS solution from ActiveState. Get all the simplicity of deploying your favorite Perl (and many others) apps, like you get from DotCloud or Heroku. The difference is you can host it anywhere you want, from your laptop to Amazon EC2. It’s your software, and its free.
In this talk Ingy döt Net will get everyone in the audience up and running their favorite Perl web apps on their own private PaaS in minutes. Fun!
The AI Challenge Fall 2011
(sponsored by Google) is all about creating a computer program (in any language) that controls a colony of ants which fight against other colonies for domination.
While working on my Tel Aviv.pm talk about DBIx::Class talk (more to follow on that), I met an acquaintance of mine from a deceased start-up I worked on a few years back. We chatted a bit, he said he's still writing in C/C++ (mainly GUI stuff), and when I mentioned I work with Perl nowadays, he said "Oh, I love Perl, I wish there were other languages like it". I, as usual, remarked that there are the Pythons, and even PHPs of the world, and he surprised me by saying "no, I mean really like Perl".
Ben Mouw will give a talk at YAPC::NA 2012 described as:
Booking.com is #1 online travel agency in the world (in terms of the number of online hotel room nights sold)
In this talk I will discuss how we manage to run a large scale website using almost exclusively Perl.
I will cover our setup for running the business with Perl and Open Source, what we have done to remain agile while growing our team to over a hundred Perl developers, and some of the challenges we have faced in our rapid growth
For my first (real) tale, I thought I’d tell the story of how I came to be the maintainer for Data::Random.
I first came across this module when I was trying to find some way to test some date routines I was doing for $work. Funnily enough (or not, depending on your perspective), the date routines were themselves for testing—I’m working on introducing TDD to my department, and so I try to maintain a decent library to make testing easier. To that end, I decided to make it easier to set up records with certain dates:
# go far back in time to avoid conflicting with real rates
my $initial_date = '1/1/1990';
$prop->create_billing_period(
start_date => days_from($initial_date, 30),
end_date => days_from($initial_date, 60)
);
After falling in love with Pod::Weaver, I've released two new Pod::Weaver plugins which you may find useful for assembling boilerplate POD sections in your distributions.
The first is Pod::Weaver::Section::Extends which will add a =head1 EXTENDS section with a list of everything in your @ISA at compile-time. It should work with any kind of object that modifies @ISA in a normal way.
The second is Pod::Weaver::Section::Consumes, which does the same thing for Moose roles. It will interrogate any Moose-compatible meta object for your class to find a list of roles.
I attended the latest
Tel Aviv Perl Mongers (TelAviv.pm)
meeting the other
day, and am writing this report in order to encourage more people
to come. We didn't have meetings in September or October due to the Jewish
holidays and some renovations on the site, so it was good to finally have
a meeting.
Before the meeting, I had helped publicise it on various online news channels,
and thankfully quite a few people (about 20-30) came. I had a previous
appointment that day at 12:00, and so returned home where I ate, worked on
the computer, and rested before the TelAviv.pm meeting.
Gabor Szabo will run a Test Automation Training Workshop at YAPC::NA 2012. The workshop will be for the two days prior to the conference (Monday and Tuesday June 11 and 12).
As people have been repeatedly surprised to discover that I'm moving to Paris, I thought I would mention it here in hopes that I don't have to keep explaining over and over again.
Leila and I were quite happy in Amsterdam and I enjoyed my job at booking.com. However, for a variety of reasons, not the least of which was Leila's difficulty in finding a job in Amsterdam, I decided to accept a position in Paris. I started at Weborama on December 1st. We'll be in Amsterdam for two or three months until we make the actual move. We'll likely be moving to a small town outside of Paris (we currently have our eye on Meaux), but nothing is quite decided yet.
I like the Perl debugger a lot. I use it daily, since understanding code by seeing it execute is much better than guessing at what it does based on its API. I do however seldomly use the actual command line debugger module, but instead use the Perl debugger built into Komodo IDE because it streamlines a lot of the busywork that is necessitated by having a debugger bound to a terminal:
When I started Excel::Writer::XLSX I had, more or less, a clean slate to start with. So I chose to use perl 5.10.
It was mainly because I wanted to use the defined-or operator //. There were other reasons as well but Excel::Writer::XLSX is an API heavy module and, although it may sound trivial, defined-or saved me a lot of time.
I also wanted to use some of the other Modern Perl features. In fact I would really have liked to have used perl 5.14 but I thought that was probably a step too far.
Perl 5.10 isn't exactly new. It came out around the same time that Excel 2007 and the xlsx format came out. So, I thought that it was reasonable to use a recent perl for a module targeting a recent file format.
It’s the first Tuesday of the month, so that means it’s YAPC::NA Planning Meeting time. If you’re in the Madison area, or don’t mind a drive there is a YAPC planning meeting tonight at the Essen Haus at 7pm. As always the food and beer are sponsored by Plain Black, and the room is sponsored by Essen Haus.
We’ve got a lot to discuss so the meeting will probably last until around 9pm, but you’re free to come and go as you please.
The editor that came with MacOS Perl (for Mac OS 9 and below) was able to save your script as a droplet -- that is, an application that you could run by dropping files onto it. When your script got control, the paths to the dropped files were in @ARGV
Under Mac OS X you can get this functionality by wrapping your Perl script in an Apple Script. The following example assumes you want to wrap a Perl script named droplet.PL in an application called PerlDroplet. It works because a Mac OS X application bundle is simply a directory whose contents are known to the system.
Run the Script Editor, which is found in /Applications/AppleScript/
Paste the text of the Apple Script as it appears below into the editor.
Save the script as an Application Bundle named PerlDroplet.
Copy your Perl script to directory PerlDroplet.app/Contents/Resources/.
Yes, this will work if you move PerlDroplet somewhere else.
A while ago I did some comparison on serialization and logging modules, and I hope to do or see comparison on others. Here are some of them:
PID files. About a decade ago I wrote Proc::PID_File, including fork() handling, it does the job pretty well but I ended up abandoning it in favor of Proc::PID::File because I don't have time to maintain it and I hated the name. Turns out that there are several other modules pertaining to PID files like Piddy, Pid::File::Flock, IPC::PidStat, even Unix::PID (which is not recommended). The comparison article should discuss what issues surround managing PID files and also mention other means to detect program instances, like locking DATA filehandle (forgot which module does this).
INI files. Tried several INI modules in the past, not satisfied with any of them. Used Config::IniFiles in the end, but recently wrote another implementation (unfinished). A comparison article could be helpful.
Command-line-argument processing. Have always used Getopt::Long, heavily used App::Options a few years ago, now settling with my own module. Recently there have been some new development efforts like MooseX::GetOpt, Moo::Getopt, and App::Rad.