Dyn Has 2 New Perl Positions

Dyn Has 2 New Perl Positions :

If you’re in the Manchester, New Hampshire area, or are willing to move, then Dyn has two great new Perl positions available:

They’ve also still got a position open for a Backend E-Commerce Developer.

And if you’re in San Francisco or London, they also have junior and senior system administration positions open, which require Perl knowledge. 

Padre 0.90, the Delayed Release Announcement

Normally when Padre, the Perl IDE is released, we like to let people know about it through the release announcement. It serves a dual purpose. it both lets us acknowledge the awesome work that goes into Padre while letting everyone out there see what has changed, what has been fixed and where we are in terms of the project and whether or not it's ready for your use, or to upgrade.

0.90 was released with little fanfare, so I'd like to take the time now to cover off some of the changes in Padre 0.90 in a little more depth.

OK, so I can't help myself here, but with the work done by Ahmad Zawawi to bring us a modern Scintilla with the Wx::Scintilla package, we now get squiggles!

Kickstarting the Gitpan

If you've played with Gitpan at all, you probably have an idea of how cool this project is. The idea behind Gitpan is to take all of CPAN and make it available as Git repositories which are tagged by release. It's a great idea. It makes it trivial for Github (and Git users in general) to create patches for modules which don't already exist in a public Git repo. It's also useful in the case where the original Git repositories for modules on CPAN may no longer easily be found online.

Now, if you've followed the Gitpan project, you probably also know that it is not currently up to date, which is a shame. I contacted Schwern about this recently and he was kind enough to create and tag some issues which are blockers to the resumption of Gitpan.

In Zürich with Damian

For the last two weeks Damian has been here in Zürich teaching classes on Perl and vim. We attendees are having a great time and learning a lot. He managed to give us a lot of information and understanding in a very short time. We also had the chance to ask many questions, which he answered very competently.

For everybody who missed it, come and join us next year! I will keep you posted on that.

Thank You Sponsors!

We’d like to thank our sponsors for stepping up to support us. We really couldn’t do this without their support.

You too could sponsor YAPC.

The UTF8 flag and you

If you are looking at the UTF8 flag in application code then your code is broken. Period.

The flag does NOT mean that the string contains character data. It ONLY means that the string contains a character > 255 either now or could have, at some point in the past.

For strings that contain characters > 127 < 256, you have no idea whatsoever about whether the string contains characters or bytes regardless of what the UTF-8 flag says. (For strings with only characters < 128 there is no difference whether they are ASCII or binary, and strings with any characters > 255, must be either all characters – or corrupt (character and binary data mixed together).)

The following will produce a perfect copy of lolcat.jpg in lolol.jpg:

my $funneh = do { local ( @ARGV, $/ ) = 'lolcat.jpg'; <> };
utf8::upgrade( $funneh );
# now the utf8 flag on $funneh is set!
open my $copy, '>', 'lolol.jpg' or die $!;
print $copy $funneh;

Certification vs. Certificates

I posted earlier today about O'Reilly's Perl Programming Certificates that accompany several of their Perl based courses available now. Because I wasn't completely clear in my understanding of certificates vs. certifications, I used the word certification in describing their offering, when really I should have said certificate.

So what's the difference anyway? Do you get a certificate if you have a certification? If you have a certificate does that mean you are certified? I didn't find a canonical comparison between the two, but this web page seems to have a reasonable comparison between the two. Posting the table here:

Certification

Being anti-social

A few days ago I deactivated my Twitter account and most other social networking accounts. It's not that I'm vanishing off the face of the earth or anything like that - I've just gotten disillusioned with "social" networking. It has grown to be a kind of addiction; I checked Twitter etc. far too often, to the point of it being a distraction, but actually it wasn't a lot of real communication, it was more like people talking at you. I didn't find much "social" value in the whole thing.

I still program Perl for a living, and it'd be nice to see Perl friends, for example, in Frankfurt next year.

About all those CPAN modules - I've looked over the 100+ dists that are under my name on CPAN and have found that most of these I neither use anymore nor do I have any wish to maintain them. Most of them were related to an older work project and are probably not used outside of that.

When you come to YAPC::NA, if you decide to stay at the rooms...



When you come to YAPC::NA, if you decide to stay at the rooms we’ve reserved at the Lowell Center (approximately $100 per night) then you’ll also get breakfast served to you for free each morning in the Lowell Center conference rooms just down the hall from the main lecture hall. We think it’s a super sweet feature to be able to roll out of bed, take the elevator down and get a nice hot breakfast, and then stroll 20 feet down the hall to attend the morning plenary session. 

I should note that if you choose to stay in the dorms, which will be about half the price, you’ll also get a hot breakfast, it just won’t be quite this convenient. 

Catalyst? Really?

I've been so busy doing Actual Work that I've forgotten to write about doing it!

Now that a lot of the modules I'll be using are more or less in place, including my new centralized security where "everything" will go to get permission to do "anything", it's time to start sowing the modified modules together in Catalyst.

Or is it?

I try to code by "Make a plan, and stick to it, unless it sucks."
Figuring out if a solution sucks is part of that, so I've taken a long, hard look at my Catalyst choice here.

Did I really pick Catalyst because it's the best tool for the job, or because it's the weapon I had in my hip holster at the time? Let's see what we're looking at here:

Our first sponsor: YAPC::Europe Foundation

When Anton Berezin announced that we Frankfurt.pm hosts YAPC::EU 2012, he handed over a check for over 1,000 Euro from YAPC::Europe Foundation (YEF). Thanks to YEF for this kickstart donation.

YEF exists to promote Perl in Europe. They do this by supporting organisers - not only with donations like we recieved but the also help when organizers have questions about how to handle this or that. And they sponsor the online payment system that can be connected with Act! And the venue committee of YEF elects the hosts of the YAPC::EUs.

During the lightning talks at YAPC:Europe 2011 BooK said that YEF wants to support more workshops, so organisers should ask for help... And of course YEF accepts donations so YEF can support even more events.

yef-scheck-2011.JPG

Quick note on using module JSON

This Unicode stuff tried to drive me crazy, hopefully I'll record something useful here because the docs are a bit too intricated to understand.

The underlying assumption is that data is "moved" using utf8 encoding, i.e. files and/or stuff transmitted on the network contain data that is utf8 encoded. This boils down to the fact that some characters will be represented by two or more bytes if you look at the raw byte stream.

There are two ways you can obtain such a stream in Perl, depending on what you want to play with at your interface: string of bytes or string of characters. It's easy to see whether a string is the first or the second, because it suffices to call utf8::is_utf8:

$is_string_of_characters = utf8::is_utf8($string);

The name is not very happy, in my opinion, because it tells you whether Perl has activated its internal utf8 representation. I would have preferred to have something called is_characters or whatever.

Buy A Parking Permit For YAPC::NA 2012

Buy A Parking Permit For YAPC::NA 2012 :

If you will be driving to YAPC you’re going to need a parking permit of some kind. The hotels in the area all have their own parking ramps that you can park in. Likewise if you’ll be staying at the Lowell Center it also has it’s own private parking. However, if you’re driving in each day either because you live close, or you’re staying at a hotel too far from campus to walk, then you’ll need to get yourself a campus parking permit. They are $13 per day, and must be reserved no later than June 5th, 2012.

Determining my daughter's age

I imagine that just about every parent who programs has written something like this at one time or another.

YAPC::Europe 2011 Surveys Update

With over a week gone since the end of YAPC::Europe 2011, I'm please to see we already have 102 Conference Survey responses and 541 Talk and Course Evaluations submitted. This is once again a fantastic start to the responses and very much appreciated. However, there are still a further 165 who can still submit their Conference Surveys, and everyone still has time to submit feedback to the speakers of the talks and courses they attended.

If you haven't received your keycode email, please contact me and I will resend it. You still have 3 weeks until the close of the surveys, so please try and take some time to complete them. It really does help to improve the conferences for everyone.

For those interested in the results of the YAPC::NA 2011 surveys, although the speaker feedback has been sent out, I had to postpone my work on the Conference Survey due to some CPAN Testers issues and my attendance at YAPC::Europe 2011. As such, I am now preparing these results for the YAPC Conference Surveys website and hope to have an announcement within the next few days.

Abstract the company away (part 1)

While my department at $work isn't strictly R&D, we still do a lot of development work. I'd dare say we average a rather healthy amount of code, taking into account we also try to be rather minimal. Code is simply a means to an end, it is not your goal.

We get to write a lot of code that interacts with our systems, and a lot of duplication is achieved by mistake. Sometimes it's stuff people don't realize is indeed duplication, or they think it's unpreventable. I've decided to tackle this. I've presented some of my findings at Weborama after giving my Moose talk, and they really enjoyed the ideas, and I've decided to write about them here as well, in more detail.

Since this is a lot of text and I hate reading a lot at a single time, I decided to parcel it out to smaller portions. This part will focus on refactoring schemas.

I’m pleased to announce that OpenMake Software our newest...



I’m pleased to announce that OpenMake Software our newest sponsor for YAPC::NA 2012.

OpenMake Software is the DevOps Authority providing an enterprise scale DevOps framework for streamlining the build, test and deploy life cycle. Our solutions enable customers to reduce software development cycle times, improve communication between development and production control teams, increase developer productivity, and provide management with actionable audit and traceability reports.  We go beyond what our competitors can offer by providing developers and production control a secure and dynamic operations framework that does not depend on brittle static scripts.   Our solutions deliver on-demand cloud based server provisioning,  environment configuration management,  dependency management and continuous integration.  Over 100,000 users at 400 companies worldwide rely on the DevOps framework from OpenMake Software.

Perl Programming Certificate

Looks like O'Reilly is offering certifications certificates for Perl programming. This is huge, I think they are the first entity to offer something like this.

http://www.oreillyschool.com/certificates/perl-programming.php

Monkey-patching, subclassing, and accidental overriding

One of the great things about open-source software is the ability to reuse handy classes written by other people. But sometimes, you find yourself using a class that doesn't have quite enough features for what you're trying to do. What's the best way to deal with that sort of situation?

One option would be to monkey-patch new code into the class you're using — just add extra subroutines to the original namespace. But unconstrained monkey-patching has consequences that make it extremely hard to use in practice. So the usual alternative recommendation is to subclass the upstream code, add the new methods in the subclass, and then ensure that the rest of your program always uses the subclass in place of the original. But that approach has two flaws. First, it can be awkward to make sure your subclass is always used in the right places. Second, it doesn't actually fix the problem: you can still experience all the same issues as with monkey-patching!

I gave a talk on this topic at this year's YAPC::EU in Rīga, and it's getting a repeat (and extended!) outing at the inaugural Dynamic Languages Conference today. But if you'd like to read the full details, the corresponding paper is now on my website.

Enjoy!

A new JAPH

http://perl-blog.abigail.be/post/9347752138/a-new-japh

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.