Check Eclipse Hot keys

open Eclipse press Control-Shift-L.

Alt-left arrow: Go back in navigation history.
Alt-right arrow: Go forward.

Auction Replaced With Raffle At YAPC::NA 2012

Due to the feedback we’ve gotten from previous year’s surveys, as well as many blog posts and other rants in the Perl community, we’ve decided to replace the long-standing tradition of a charity auction with something new at YAPC::NA 2012. We thought about perhaps doing a silent auction, but we wanted to set it apart from that, and we wanted to make something that anybody could get in on, not just those with large amounts of cash to spare. So instead, we’ve decided to do a series of raffles.

Normalizing Perl variable names

Tom Christiansen filed RT 96814 noting that Perl identifiers (that is, variable names and such) should be normalized.

I covered this today in my Surviving Perl Unicode course at YAPC::EU in Rīga. Here's a program that output another Perl program that shows the problem:

YAPC::EU Day -1

I arrived yesterday (conference -2 days) afternoon, we met up with various mongers, had a crap experience trying to get food in one place, and then found somewhere that did very good steaks, followed by a quick drink in the main square.

Today, a bit more with it, acme, ralf, Michael and myself had a stroll around the main market - housed in old Zeppelin hangers! - which was interesting and had very tasty donuts, and a general look around the old town.

I then attended the Speakers training run by Alex Kapranov with Damian Conway also speaking. It was really interesting and now means I have to update my slides (thankfully not too much)!

I showed once section of my presentation and got some really useful feedback (come to my Plack talk if you want to see the changes in action!)

If you ever get a chance to go to this Speaker training I really recommend it, how ever many talks your already done.

Dan's updates for the week ending August 14th, 2011

Here's a listing of what I've been working on in the past week for TPF, PPW, and other...

No Starch Press will be providing some of their entertaining and...



No Starch Press will be providing some of their entertaining and insightful books as prizes at YAPC::NA 2012. We’re so glad to have them as a sponsor. And the books they sell would make great Christmas gifts this year.

No Starch Press publishes the finest in geek entertainment—distinctive books on computing, such as bestsellers /Steal This Computer Book/, /Hacking: The Art of Exploitation/, /Practical Packet Analysis/, and /The Manga Guides/. We focus on open source/Linux, security, hacking, programming, alternative operating systems, and science and math. Our titles have personality and attitude, our authors are passionate about their subjects, and we read and edit every book that bears our name. Our goal is to make computing accessible to technophile and novice alike, and our readers appreciate our straightforward presentation and fearless approach to the complex world of technology. No Starch Press titles have been included in the prestigious /Communication Arts/ Design Annual and STEP inside 100 competition, and have won the Ippy Award from /Independent Publisher/ magazine.

Params::Validate::Dependencies

Params::Validate is a very useful module, which lets you easily enforce rules such as "the 'foo' parameter to the 'bar' subroutine should be an arrayref". It also has some very basic support for dependencies - eg, that the 'baz' parameter must always be used in conjunction with the 'bar' parameter.

But for a problem I had, it didn't go far enough. So I've extended it. Params::Validate::Dependencies (Github link; not yet on the CPAN) extends the validate() method to add support for things like "must have exactly one of 'alpha', 'beta' or 'gamma', or both of 'foo' and bar'".

I would appreciate if some kind person could take a look over the code and tests and tell me if they're any good, and also let me know if the documentation makes sense.

MySQL DATE_SUB()

SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 2 DAY) AS OrderPayDate
FROM Orders

A compelling reason for Perl6

Had a great chat with the Thousand Oaks PerlMongers last night, as an ongoing series of conversations I've been having recently about finding a compelling reason for Perl6.

I was inspired by Larry's Onion talk to continue thinking about the relation of Perl5 and Perl6 (and frankly, me and Stonehenge as well).

First, Perl6 is not "the next Perl5". Perl5 will be alive and well for another decade at least, independently maintained and released. That's happening quite efficiently and effectively already. (Translated: "I will quite possibly be able to continue making money off Perl5 for years to come".)

So, what is Perl6 then? It's a different language. Businesses aren't going to migrate from Perl5 to Perl6, but they will consider Perl6 for a new project, just as if they'd consider Ruby or Python or Grails or Scala or any other language.

What's missing is the equivalent for what Rails did for Ruby: a compelling web framework.

I’d like to officially thank ThinkGeek for becoming a...



I’d like to officially thank ThinkGeek for becoming a Silver Level sponsor of YAPC::NA 2012. You are probably all aware of Think Geek and the amazing selection of geeky items they have for sale. Either way, it’s a great place to start your holiday shopping this year!

App::TimeTracker 2.008 released (finally!)

Hm, seems that ironman is not picking up my new, selfhosted (and selfpowered) blog, so this here is just a short ad for my post there:

App::TimeTracker 2.008 released (finally!)

Padre .088 has been released...

As already mentioned by others, Padre 0.88 is out.

This is the culmination of quite a long development cycle since the last release. This was made longer than it should have been due to the discovery of a bug not long after I had branched version 0.88 from trunk.

The release was then held up while people got to sorting out the problem at the time, which in turn saw more work done and more of the internals changing until it got to the point that it made sense to merge all changes in the branch ( all of them translations by our hard working translators ) back to trunk with a new branch taken for the 0.88 release.

Normally in the release announcement I take you through the changes and bugs fixes to be found in the release at the time, this is typically done by taking the Changes from the Padre distribution and grouping together various changes people have made to give a "face" to the name.

A Day In The Life Of YAPC::Asia Tokyo Preparation

As I've written in my previous post, we've been making visits to our potential YAPC::Asia Tokyo 2011 (Oct 13-15) sponsors for the last few weeks. After today, we only have *one* more visit that we need to make our potential sponsors for YAPC::Asia. Here's a picture from today's visit.

( Tickets are on sale!! )

As you can see, we have last year's YAPC::Asia Tokyo pamphlet, and we're discussing how this sponsor (who shall remain nameless for now) can make the most out of their presence at YAPC::Asia Tokyo.

It's always a nice idea to bring stuff (novelties, pamphlets, time-schedules) from previous YAPCs, as not all potential sponsors share the same image of how a YAPC sponsor ought to help / take advantage of the event.

Three Full-Conference Booths at YAPC::NA 2012

We have secured space for exactly three booths to be set up for the entire duration of YAPC::NA 2012. These booths will be placed in the main entrance of the Pyle Center (the conference facilities) where all attendees will travel as they go between sessions, enter and exit the building, use the elevators, or go to and from the job fair. This is really the perfect opportunity to get your company’s message out, recruit attendees for open positions, and participate as a major player in YAPC. 

For each of these spaces, we will provide power, internet access, a table, and two chairs. You can request the space by becoming either a Platinum or Diamond sponsor. These are first-come first-served. The first three sponsors at either the Platinum or Diamond level will get these booth spaces.

Padre 0.88 - Internals refactoring completed!

Padre 0.88 has just been released.

Update: This is not the actual release announcement, just a couple of big changes that I think deserve some coverage in depth.

This is an immense release for the Padre team, the changes file entry alone is 140 lines.

Most importantly, this release completes the refactoring work on a number of internal subsystems.

Padre's threading architecture Padre::Task has been returned to full maturity after a long period of instability following the landing of the second generation Padre::TaskManager implementation.

Fixing the last thread leak bugs allows the reintroduction of our "slave mastering" technique, where we spawn a clean "master" thread as early as possible during startup, and then spawn background worker slave threads off this master thread rather than off the foreground thread. For a typical Padre instance, slave mastering results in a reduction of 15meg of RAM per thread (and there is further improvements to be gained in this area by requiring less of Wx to be loaded at startup).

Binary search versus hash lookup

A long time ago I had a very silly conversation with a developer where we both agreed that we weren't too concerned about algorithms and data structure memorization because, hey, we could look them up, right? We don't need to use that fancy-pants computer sciency stuff in our jobs because we've never needed to. Of course, that's like saying because you've never had a driver's license, a driver's license is useless. When you don't have a car, you naturally tend to look at problems and solutions without considering the options a car may provide you.

That's why I've been brushing up on my comp-sci lately. I've been working through a bunch of sorting algorithms (insertion sort, merge sort, and quick sort) to better understand their characteristics when I started to think about how I might find if an item is in a list. If it's a large list, I typically use a hash. Most of the time this is fine, but I wanted to understand better what I could do.

How to add JSONP support to a web service

I needed to do this yesterday, so that a developer could work on a project on his own machine while accessing some REST services I developed on an intranet server. Cross-domain requests are prohibited by the same origin policy security that govern client-side Javascript programs. JSONP gets around this by sending back a Javascript function which encloses the JSON data, rather than just the JSON data. This is known as a callback and is used like this:

$.getJSON("http://www.thing.com/services/webservice_json?callback=?", 
         { "param" : "abc" },
         function(json) { 
             alert("Fetched " + json.field1 + ", " + json.field2); 
         });

So I needed to modify the web services to handle this. Turns out this was really easy:

We’re very pleased to add CargoTel to our list of growing...



We’re very pleased to add CargoTel to our list of growing sponsors for YAPC::NA 2012

CargoTel, headquartered in Baltimore MD, provides transportation and field-service web and wireless applications in North America and is expanding its offerings in South America, Europe and Asia. It’s software is centered around Perl and delivered on a SAAS basis using many of the latest technologies such as HTML 5 on Android browser-based wireless applications. CargoTel hosts Baltimore Perl Mongers and is a supporter of other Perl organizations. http://cargotel.com

use variable from other module

In module bait we have

our %IMAGEPADV = (
'SxRT-5.1' => [ qw(sol_sparc sol_x64) ],
'LxRT-5.1' => [qw(rhel5_x86_64 sles10_x86_64 sles11_x86_64)],
...
);

In my own module use this to access %IMAGEPADV

%bait::IMAGEPADV

The Making of Mojocasts

szabgab, who has quite a few screencasts, asked me to explain how I made the mojocasts.

Creating them has been quite the learning curve. My initial inspiration was Vimcasts, and although I don't have the hip accent, I figured I could put something interesting together for...something. It didn't take to long to settle on Perl and my preferred source of Perl unicorns, Mojolicious.

A Vimcast has a very cool, down-to-earth presentation; the music, the tone of voice, and the presentation as a whole tell the viewer, "Yeah, Vim is just that cool, and if you learn this, you'll be that cool as well". Presentation is vital: the Apple logo on most of my devices state as much.

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.