YAPC::NA 2012 sponsor DoublePrime is hiring. They have eight great Perl-related positions open right now! All three positions are in their New York offices.
We are looking for 4 full-time engineers to join our team. This is a full-time W2 position with a 401k and health benefits. Some roles are available as work-from-home (tele- commute from within the US) and others will be on site in NYC.
Roles will include:
day-to-day interaction with the our group, client management, and design firms, maintaining and developing websites
new application development
systems and network administration (solaris, linux, cisco)
Most importantly, a thorough knowledge of OO perl is required. Beyond that, since we are looking for people to fulfill multiple roles, specifics are listed below.
To keep myself focused on getting a feature complete Test::Builder 1.5 out this month, I've been writing down non-critical tasks rather than doing them myself. Refactorings, documentation and interface fixups. They're helpfully categorized:
If you'd like to help, I'd love the help. There's plenty to do for everybody. Our preferred workflow is laid out and pretty easy to follow. There's a design document to give you an overview of what's going on, though it is out of date in places.
It's Mojocast Monday, kids, which means a brand new Mojocast for your perusing pleasure.
Continuing to demonstrate Mojolicious::Lite, the Mojocasts are moving through Mojolicious basics, so newcomers can get up and running more quickly than ever (And dare I say it, have fun at the same time. *gasp*).
As the screencasts continue, you can bet your sweet ponycorn we'll be covering some of the more cutting-edge features, such as web-sockets and event-driven web apps.
For now, however, we have another installment to make sure those old and new can get started quickly with Perl web development, without a lot of fuss.
Keep in mind - the shortcuts link to specific times in the screencast, so you can share/bookmark specific topics.
Thank you to @kure_ji_neko and elb0w for agreeing to host the Mojocast video files. We can all feel that much more hip by using HTML5 video instead of flash.
As previously alluded to, Padre 0.92 was nearing completion for distribution.
Well, this is the announcement to say that Padre, the Perl IDE has finally been cut loose to venture into the wild world.
With the run up to 1.0 the next series of Padre releases will be the end result of a lot of refactoring work, mostly done by the ever industrious Adam Kennedy; and more polish and shine to key areas, such as the amazing work done by Ahmad Zawawi with Wx::Scintilla and its incorporation into Padre.
The change list for this release is simply massive, at over 160 lines ( not all of them single line changes, granted ) this is without doubt one of the larger set of changes to go out in a release. Helped somewhat by the rather lengthy development cycle. Typically Padre releases were about 2-4 weeks, but with the significant changes to the internals going on, it was clear that time would be required to get things back into shape.
I’m very pleased to announce that Double Prime has decided to sponsor YAPC::NA 2012. Here’s how they describe themselves:
Founded over 10 years ago to support an eCommerce initiative from a new client, Double Prime, continues to evolve and grow. Today, with a team of 80+ engineers, project managers and designers and over 150 eCommerce websites in 25+ countries, we have established ourselves as a leader in customized international and domestic technology solutions.
Our core technical and corporate philosophies have proven successful in the highly competitive world of eCommerce. What we hold true:
Creating solutions to meet and exceed your expectations
Customizing our development around your requirements
Personal and frequent interaction with our team
Simple and efficient technical implementations
Partnerships are critical to building and growing success
I'm now converting the videos from this year's YAPC in Riga and a number of them will be published this year (even before Christmas :-).
There's nothing bad if the speaker does not want the video recording to appear online, but I would like to say strict no to any prohibitions I found on the recordings this year (and there were similar bans last year in Pisa). I would not like such talks to appear in the following Perl events.
While working on a module for source code injection, one of my example "macros" was one that allows you to declare and assign to a lexical variable at compile time, without having to write the variable names twice. That concept more or less hijacked the conversation, and after some prodding from p5p to make the interface better, I've used Devel::Declare to add two new keywords to Perl, MY and OUR.
Here is the synopsis from the module:
don't you hate writing:
my ($foo, @bar);
BEGIN {
($foo, @bar) = ('fooval', 1 .. 10);
}
when you should be able to write:
MY ($foo, @bar) = ('fooval', 1 .. 10);
just use Begin::Declare; and you can.
The module lifts the computation of the rhs to compile time, as well as the assignment.
People these days are saying that you should always decode your utf8 strings, enable utf8 binmode, etc.
This is not true.
I live in Russia, so half of strings I deal with contain cyrillic.
99% of the time they are not decoded.
And you know what, it's fine.
Here is the problem with decoded strings:
$ perl -MEncode -E 'my $a = "абв"; my $b = "где"; say $a.decode_utf8($b)'
абвгде
If you concatenate two strings, either both of them must be decoded, or neither of them.
You can't mix two styles.
So there is no way to migrate gradually to unicode in existing project if it's large enough.
But 99% of the time you don't need decoded strings at all.
And when you actually need them, simple wrappers are enough:
sub lc_utf8 {
my $x = shift;
$x = decode_utf8($x, 1);
$x = lc($x);
$x = encode_utf8($x);
return $x;
}
I’m pleased to announce that pair Networks has decided to sponsor YAPC::NA 2012.
pair Networks, Inc., a global Web site hosting and domain name registration company, headquartered in Pittsburgh, PA, hosts hundreds of thousands of Web sites for businesses, bloggers, artists, musicians, educational institutions,and non-profit organizations from around the world.
pair Networks first went online in January 1996 and has experienced strong growth year after year. pair Networks is well-managed, consistently profitable, and one of the world leaders in its industry.
All of pair Networks’ operations, including datacenters, support operations, administrative facilities, and employee commutes & business travel are 100% Carbon Neutral. Plus, pair Networks is powered by 100% renewable energy.
Some of you may remember that a couple of weeks ago I wrote about how The Perl Foundation was hoping to take part in the Google Code-in 2011 (GCI) and I badgered you for help in providing tasks and acting as mentors in the programme.
I am happy to announce that the application of The Perl Foundation has been officially accepted and Perl will be taking part in GCI 2011. This is due in large measure to the wonderful reaction to our appeals which has lead to numerous high quality tasks being added to the ideas page and many selfless developers volunteering to be mentors. Without your assistance our application would not have been successful, so thank you very much to everyone involved.
But the tasks are only part of the story. Undoubtedly the track record that Perl has in GSOC as well as last year's GCI was a contributing factor, as was the leadership of Florian Ragwitz and Mark Keating. So many thanks to everyone who has brought us to this point.
It's that time again! Time when I hammer the last few nails in the coffin of a version of Perl. A few years back, I killed 5.004 and 5.005 in a stroke by uping the minimum version of Test::More, upon which 80% of CPAN relies, from 5.004 to 5.6.0. In a few months I'll be doing it again.
Just posted about Graphing time-based data in Perl on my blog, documenting my decisions in picking a suitable module to easily graph potentially irregularly-spaced time-based data in Perl.
Chart::Strip turned out to be what I wanted. See the full post for what lead me to choose Chart::Strip, and sample usage & output.
Then click the link to your user preferences. (Click the images to get the fullsized versions that aren't "squished")
(update: an existing issue that isn't fixed is that some markup in the body of a post will show up incorrectly on the homepage because MT is truncating the post for the homepage, and clips the post badly half way through, leaving gargbage on the homepage .. hence this paragraph which pushed the next bit of HTML off what is shown on the homepage ... patches welcome .. see below)
Then upload a picture. Note a little further down you can also get the password required for the API / Web Services, which is another reported issue.
Recently Andreas alerted me to a problem with the SQLite database used to store the basic metadata for the CPAN Testers statistical database, aka cpanstats. On reading the database, for some queries an error message is now being returned; "database disk image is malformed". It's unclear where the error has occurred, but it seems to have been something that has only surfaced recently.
As a consequence I am now rebuilding the complete SQLite database. This means that the downloads available from the Development website will remain static until this is complete. Once complete and all is fine, then the backup mechanisms will be re-enabled.
However, there is the possibility that the database has grown so large now (with over 17 million records), that the data storage, and particularly the indexing, is not being written to disk correctly. With the database currently being around 5GB uncompressed, and just under 1GB compressed, it would be beneficial to reduce its size for efficiency, disk IO and bandwidth. So I have started to think of the alternative options.
I had a great time at YAPC::Brasil, but I really only understood the talks that I was giving (mostly). As with any conference, though, the talks are the least part of the conference. I think we spent as much time on the town as in the conference room. That's where all the good stuff happens, anyway. Most of the stuff I learn about Perl doesn't come from the talks but the casual conversations I have.
Speaking to the non-english audience
Conferences can be tricky things for non-native speakers, whether as someone giving a talk or listening to a talk. The common language, Perl, can overcome this just showing the code. I just put code on the slides, and make the interesting bits a different color:
It’s Valentines Day, did you remember to get your significant other something special? How about bringing him or her with you to YAPC::NA?
We have a spouses program, a beautiful city on several lakes, tons of night life, cultural activities, and tourist attractions; not to mention more pubs and restaurants than you could hope to visit. You could book a trip today at a romantic little bed and breakfast called Hotel Ruby Marie, which is only about a mile from the conference. There’s even a little bistro on the first floor of Ruby Marie that serves the best croissants anywhere outside of France.
Turn YAPC into a romantic getaway for two! Happy Valentines day!
On my "how much you can handle"-tour I gave my talk about Perl 6 array and hashes thrice. Third time masak and jnthn were in (the last row as any troublemaker in school) the audience and spottet some serious errors (I think it was an former rakudo bug). but its fixed and uploaded now. ( Arrays as in [] will not flattened inside a signature and so the number of elements in @_ on the last question in round 1 is 4.) I also did some changes in the tablets as a result. (re metaop "%" and "%%" introduced and "**" fixed in index A and B). Have to start the grant nonetheless.
I have now sent out all the talk evaluations from this year's German Perl Workshop or more correctly Der 13. Deutsche Perl-Workshop. If you were a speaker and haven't received an email, please check your spam folders first, and let me know (barbie at cpan . org) if you don't find it. The mail will have come from barbie at birmingham . pm . org.
My thanks to all the organisers of GPW2011 and everyone who took the time to respond to the evaluations. From previous experience the speakers have very much appreciated your feedback. I would also like to extend extra special thanks to Max Maischein aka "Corion", who took the time to translate all the questions, templates and emails into German for me.
I have a simple script perlall which is deployed as App::perlall, which comes with Makefile.PL, tests and such, but really I only want to rsync this single script to all of my test machines.
I even wrote a initvm command to deploy it automatically to other machines.
Then I came up with this simple autoinstaller to add missing non-core libs.
BEGIN { # autoinstall the non-core modules
my @m;
for (qw(App::Rad IO::Tee IO::Scalar Devel::Platform::Info Devel::PatchPerl)) {
push @m, $_ unless eval "require $_;" }
if (@m) { # Checked the API back to 1.76_01 (v5.8.4)
require CPAN; CPAN->import;
warn "CPAN::Shell->install(qw(@m))\n"; CPAN::Shell->install(@m); }
$_->import for @m;
}