Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

osfameron (3135)

osfameron
  (email not shown publicly)
http://greenokapi.net/blog/

Technorati Profile [technorati.com]

Journal of osfameron (3135)

Thursday July 09, 2009
09:14 AM

A brief note on technical translation: (Gentle Moose Intro)

Cross posted from my blog .

While we were discussing how to promote the Italian Perl Workshop, and the planned training on Moose, I noted that there weren't any articles on Moose (Perl's modern OO implementation, inspired by CLOS, Smalltalk and Ruby) on perl.it. Lordarthas of course told me "well volunteered!"... oops.

I pointed out that I don't really know Moose, and we eventually settled that I would "just" translate Jay Kuri's nice new Gentle Introduction.

Now, there is a reason why translators almost always translate into their native language. I can write in Italian reasonably well, but translating into it was a much harder task. While you're writing something yourself, you tend to route around phrases you don't know how to express, choose different words, simplify structures, etc. But translation implies some degree of fidelity to the source, and I found this incredibly hard going. I whined on #perl.it and, in true Open Source JFDI style, larsen asked "Huh? Why are you translating that?" and did it himself! Yay, larsen++!

So my volunteering ended up being limited to making a few corrections/suggestions, along with lordarthas, dree, and dada. Opensource translation and review (using wiki/email in this case, but a git repo or similar could work just as well) can have a fast turnaround, and pick up many errors/nuances that a lone translator would have to work really hard on to do by themselves.

The main problems with the technical translation were deciding which phrases to leave in English, and which to translate. Looks like "coercion" is staying in English (followed by an explanation) instead of using the Italian "coercizione". And the title is surprisingly hard to translate, as none of the words for "gentle" map well into Italian. Though it's less cute than the original, the least awful alternative seems to be "Una breve introduzione" (a brief introduction).

The final translated article is now on perl.it!.

Monday December 01, 2008
04:31 AM

LPW2008, Functional Pe(a)rls talk

(Cross-posted from http://greenokapi.net/blog/2008/12/01/functional-pearls-v2-now-with-monads-at-th e-london-perl-workshop-2008/)

On Saturday I gave an updated version of my Functional Pe(a)rls talk. This time around I cut the whistlestop tour of builtin FP techniques in Perl (map/grep/join) and added a section on Monads - what they are and how to implement them. I'd originally worried that the slides might have been over-academic and hard to understand, but luckily Dave Cantrell had presented closures that morning, and lots of people had spoken about the cool and evil things you can do with Devel::Declare. Also the Monad talk did handwave over some minor details (like munit/join :-) and it helped to play a little for laughs - I should probably subtitle the talk

"Imperative programming... in Pure Perl!"

I think the talk went down well and I also won a book (of maps of Old London Town) from the nice people at Nestoria for "Best Topic", which I guess means I can refer to it as an "award-winning" talk.

I've uploaded the slides of my award-winning talk on functional programming in Perl to slideshare ;-) The conference Mark Keating, the Shadowcat team, all the volunteers, sponsors, and Josette's O'Reilly bookstall, and of course the speakers, delivered a fantastic event which was not only free, but even had free beer! (Courtesy of Venda and Shadowcat, we drank the pub out of Witchfinder ale within 30 minutes, but the free booze was flowing till around 10pm, which was incredibly generous and appreciated -- less so the following morning).

It was great to see some quality talks, a uniformly excellent lineup of lightning talks (including one which broached Italy's candidacy for YAPC::EU::2010), meet up with old friends and colleagues, and put some more names to nicks and faces.

Tuesday September 23, 2008
06:57 PM

Italian Perl Workshop 2008

I went to my 3rd Italian Perl Workshop, IPW2008 at the end of last week. It seems to have been the most successful Italian conference to date, and it certainly succeeded at being both a national workshop and an international event. It hadn't occurred to me before that these are actually two orthogonal aims.

An international event

The organizers managed to pull out all the stops with sponsorship. There's always various random swag, books for the auction, cheap/free use of rooms from the University. And in recent years, the conference has had just enough money to be completely free of charge, even with its (excellent) coffee and biscuit break. But this year, the "platinum", "gold" and "silver" sponsors contributed enough money to pay travel and accomodation for speakers of international calibre:

  • Tim Bunce
  • Rafaël Garcia-Suarez
  • Marcus Ramberg
  • Matt Trout

Other international attendees included Michel "XML::Twig" Rodriguez (though he lives in nearby Lucca and spoke in Italian); Bruno (a Pole who lives in Spain... or Amsterdam or something... I'm confused, especially as to why he attended the Pisa workshop :-); a bevy of Norwegians from Opera's HR team; and another Norwegian expat who was completely unrelated; an Indian postgrad studentessa; and me, I guess.

Hmmm, 4 Norwegians, 3 Brits, 2 French. I wouldn't have expected quite that many Norwegians, largely because I'd never have thought that Opera, based in Oslo, would have been recruiting at a workshop in Italy. But it's on their "world tour" as several of the core Perl team for their social network are Italian. And they really capitalised on the opportunity, sending 3 perlisti and 2 HR, all of whom were very visible throughout, sponsored a competition for a Wii, and hired an interview room for recruiting sessions during the workshop. I'll be really interested to see how successful they, and the other recruiting companies (Wind, Dada, A-Tono) have been. It's very positive that Italian companies using Perl are getting involved like this.

Oh, the talks! Matt spoke about Devel::Declare, which rocks. I finally got to see Tim Bunce's Perl Myths talk in the flesh, and also his demo of Devel::NYTProf which is so beautiful it makes me want to cry. Marcus introduced Catalyst, and I missed the others, for various reasons.

A national event

There's a danger that the focus on the exotic allure of geeks arriving by luxurious Ryanair jet could distract from the fact that this is also the event for Italian programmers. Having two tracks, and a general policy of not scheduling 2 "guests" against each other worked very well here.

The first day's Italian talks concentrated on beginner and intermediate topics, including dakkar's tutorial and regex theory, and Flavio Poletti on writing IRC bots, though there was some crossover, as rgs also presented on coding style in English. The perl.it guys are really keen on appealing to new programmers, which is fantastic. (There was a little gnashing of teeth about how the recent Pycon in Italy had even more attendees despite being a younger conference.)

Not that it was all for beginners: emi spoke about Linux wifi captive portal setup; emazep showed a fantastic UI for constructing complex DB queries, running on Catalyst with jQuery; grubert presented a news portal prototyped in 2 months with the awesome power of CPAN; [LucaS] finally presented his workgroup software IGSuite, yay! Cosimo spoke about scaling and the Dogpile Effect at Opera. Sadly I missed the "GUI track" completely with Mattia Barbon, the author of WxPerl, and nids talking about Perl/TK. And finally I had to give an emergency talk myself to fill in a gap (went OK, trailed off towards the end).

More info

IPW2008 slides and photos are already being posted, and larsen is collating blog posts to link to from the main perl.it page.

Friday August 01, 2008
03:42 AM

Italian Perl Workshop 2008 looking tempting

The Italian Perlmongers are finalising their preparations for IPW 2008, Pisa. I managed to get to the last 2 while I was working in Florence, and the organizers have always managed to get a great venue, coffee breaks with unusually nice biscuits, and put on a fantastic mix of talks and a lively hallway track.

Like all the national conferences, talks in previous years have been largely in the local language, with maybe a handful in English from expats and visitors. This year though, the organizers have also managed to get great sponsorship from Opera, Booking.com and others and as well as making the conference free, they're able to sponsor some fantastic guest speakers. Bepi has already confirmed:

  • Marcus Ramberg of Catalyst fame (speaking in English. Or possibly Norwegian :-)
  • Rafael Garcia Suarez, Perl 5.10 pumpking (speaking in English... or French -- or Spanish? ;-)
  • ... other speakers to be advised (Update Oops, I pre-announced one of the speakers currently in discussion with Bepi, must have misunderstood the email, apologies to all, but I do hope that does get confirmed as it's tremendously exciting).
  • And looking at the talk schedule, it looks like Andrew Shitov (ash) from Moscow.pm and organizer of the Russian Perl Workshop will be talking on distributed programming with WWW::Page and Gearman, as part of his European tour (also in English)

All in all, there has never been a better time to go to an Italian Perl Workshop as a visitor, even if you don't speak Italian. It's all looking quite tempting, though I already have YAPC::EU the month before, hmmm...

Some notes on logistics if you're thinking of travelling to Pisa from outside Italy:

  • Pisa airport flies various low-cost routes (Ryanair, Easyjet and others) as well as some real airlines (I like the Meridiana Gatwick-Pisa flight). Some airlines fly to nearby Florence, Bologna, or Rome, and Pisa is a convenient transport hub with trains from these cities, and Europe (Paris, Vienna, Geneva). The conference page summarizes travel options to Pisa.
  • Some useful links for accomodation in Pisa
  • The most important tourist sites in Pisa are conveniently clumped together in the "Campo dei Miracoli": the leaning tower, the Duomo and the Baptistery.
  • Florence is about 1h30 away by train or coach. Damn I miss Florence...
Wednesday May 21, 2008
05:21 PM

Liverpool - talk on "Readable Perl", Tuesday 27th May

I only recently discovered GeekUp, a very loose grassroots tech/social meetup society in North West UK -- I think that this idea -- a very loose organization based in a number of towns, with no single technology focus, is probably ideal unless you're in a large city that can really support multiple tech groups. So I didn't expect everyone there to be a massive Perl fan, and of course I got some gentle teasing about Perl being unreadable... and so of course I ended up volunteering to do a talk on "Readable Perl"...

3345 Parr Street, Liverpool, 27th May
People like to claim Perl is line noise, with its sigils and regular expressions. But a lot of the features that make it possible to write, yes, truly awful, unreadable Perl, also let you write clean, maintainable code too.

  • those $%&* sigils!
  • There's More Than One Way To Do It
  • strings and data structures
  • map, grep, first class functions
  • metaprogramming and the CPAN
  • modern Object Oriented programming with Moose

20 minutes

If any perlmongers are in the area, it would be lovely to see you!

Thursday August 30, 2007
04:46 PM

YAPC::EU::2007::Vienna talks

First of all, a round up of the talks that I attended and some of those I wish I had.

Tuesday

Keynotes

Cog spoke on how to get the most out of a YAPC - funny and useful. Larry spoke, which was nice.

DB track

I would have liked to have seen Barbie's talk on Selenium, Juerd talking about tuits, Ranguard on evolving architecture, also apparently the perl/ssh for monitoring talk was good, and dakkar spent the morning in the Parrot hackathon playing with tree processing tools.

But I stayed in the DB track, catching the end of Smyler's "When MySQL Bites" (to get MySQL to not do certain insane things you have to tell it to behave "traditionally"). I stayed for Philip Stoev's talk on using MySQL client to talk to various databases (good subject matter but didn't hold interest) and Grrrr's talk on DBIx::Perlish (fantastic subject matter, weird syntax, crazy language hackery, didn't follow as closely as I should have. Note to self, as per Grrrr and mst, can't use overloaded ops for this, because you want to be able to really use flow control, which isn't covered by that interface.)

Catalyst track

I would have liked to have seen all of the talks (Jonathan Worthington on Parrot, markov's SOAP stuff, which sounded exciting when we discussed it at lunch - at last, some Perl SOAP stuff that might actually work!
Greg's funny talk. More markov on logging, Brian McCauley on "Usenet gems" and pjcj on the use of Perl in a London bank.) But you've got to make choices, so I settled for the catalyst track:

Saw mst's "Database Haters Anonymous". After first watching the awesome power of Linux failing to speak to a projector (this sight was common over the 3 days), we had a shorter, and angrier version of the talk, which was essentially "DBs suck. Software sucks. These people rock". Great fun, a potted overview of the people and some of the technology behind DBIx::Class.

I stayed for draven's (Marcus) talk about Iusethis. Great slides, interesting project, and Adam Bartosik on a Polish team's experience with Catalyst (sounded interesting, delivery could be improved, but props as a non-native speaker).

Various

I'd wanted to see Nigel Hamilton's talk on Trexy, but somehow having a reasonable lunch hour seemed more tempting. (This was my major critique of IPW2006 too, I think a lunch hour should last more than 1 hour).
I got to meet Nigel later in the week and discuss Trexy though. Nelson Ferraz's "Adventures in Perl 6" sounded great fun, but I plumped for acme's Scaling with memcached, which was great.

Next was difficult, and I had to skip Evil's news2mail (sorry!) and miyagawa's Web Scraper to see Jonathan Worthington on Parrot, but it was my only Perl 6 related talk, and I've never seen him talk before...
Interesting, especially as I've given up on trying to read and understand p6i in the last year. I had wanted to see BooK's Net::Proxy talk (highly acclaimed by everyone I spoke to who'd been to it) but ended up staying for Richard Dice's talk which was slightly dry to begin with, but was actually fascinating. Richard looked at various data about Perl, at the point of view of management and consultancies, and gave a convincing case for the importance of the role of The Perl Foundation.

Wednesday

Keynotes

Damian spoke about positronic variables. OK, as a concept, this didn't work out as useful and intuitive as Quantum Superpositions, but a Damian talk is something to be seen. A non-programmer could attend a Damian talk and be entertained. A great combination of research, improbable connections, silly surrealism, programming bravura, photoshop and theatre.

The sponsors of the "Jobs Fair" spoke for "5 minutes" each. This overran somewhat though, meaning that there was no time for coffee before Dominus's Repair Shop and Red Flags.

Dominus

OK, I'd have like to have seen various of the other talks, especially JJ on Functional Programming and the POE hackathon, but I've read Dominus's material on Red Flags, and wanted to see him perform it as he's a great speaker.

Didn't think all the examples worked as well as in the articles, but a great and useful talk.

Moose track

I missed clkao's talks on Jifty, as I've recently been playing with Moose. Stevan's talk was a little dry but I think communicated a lot of the advantages and excitement around Moose. Yuval's talk was inspiring in scope (his toy project MO uses a set of purely functional transforms to do very clever things to object model stuff) but was maybe a little overdetailed and I couldn't follow it very well.

Clash of the Titans

Dominus vs the Damian. How else would you schedule this? I'd seen Damian's Perl 6 update five or so years ago in Paris, decided to go for Dominus on functional parsing. Funnily enough, this is more or less the only chapter in HOP that I understand, so it was a useful refresher more than anything.

Thursday

Lightning talks

Some of the best lightning talks aren't:

BooK presented this year's French Perl Workshop with a cleverly put together video ("Iasse! Oui nide iou!")

A German from $foo presented Win32::GuiTest using... Win32::GuiTest. Fantastic (he had to move the mouse once to get the testing tool started again... but we'll let him off).

Cog did the last talk... and it overran just a little :-)

Other stuff of note: Abigail complaining that File::Copy is broken, parsing OCR using Regexps, a comparison of image processing tools (conclusion: use Imager for processing, GD for creation), Juerd explained a simple workaround to make unicode string handling consistent.

The value of advance preparation and remembering where you put things.

If I'd prepared my slides earlier, I could have seen various intersting sounding talks about AI, the debugger, demerphq on regular expressions, Abigail on solving sudoku with regexps, and Gerard Goossen's talk about MAD and another cog talk (on how NOT to write a Perl resume...)

But first of all I was working on my slides. The great thing about having slides which are 95% complete is that they will stay 95% complete for ages until I get enough adrenalin kick to finish them.

Then I mislaid my bag. In the office with the auction goodies. Thanks to the lovely organizers for their patience and for seeking me out before I cancelled I of my cards.

My talk

I would quite happily have seen the utterly lovely Karen Pauley, and mock's talk on scalable data collections looked intersting but... it's probably polite to attend your own talk.

This went ok - I think I had too much material and it could have done with being either funnier or more informative. Still, the slides are up here or at Skud's request on Slideshare.

Counterexamples

Saw Trelane on why Perl sucks (and what to do about it) and Marty Pauley on Perl Worst Practises, and why variables are bad. (See also: Haskell).

Thursday June 14, 2007
06:57 AM

Unexpected %INC behaviour on recursive use.

We noticed a lot of "subroutine redefined" warnings in our apache logs. A little investigation later, and it turns out the problem is with recursive uses.

Consider the following modules (named after the classic Italian metasyntactic characters)

package Pippo;
use strict; use warnings;
use Data::Dumper;
BEGIN { warn Dumper( { Pippo => \%INC } ); }
use Pluto;
sub dummy1 { ; }
1;

and

package Pluto;
use strict; use warnings;
use Data::Dumper;
BEGIN { warn Dumper( { Pluto => \%INC } ); }
use Pippo;
sub dummy2 {;}
1;

Here's some output for perl -c (trimming the Dumper output to just show these 2 modules)

$ perl -c Pippo.pm
$VAR1 = {
          'Pippo' => { }
        };
$VAR1 = {
          'Pluto' => {
                       'Pluto.pm' => 'Pluto.pm',
                     }
        };
$VAR1 = {
          'Pippo' => {
                       'Pippo.pm' => 'Pippo.pm',
                       'Pluto.pm' => 'Pluto.pm',
                     }
        };
Subroutine dummy1 redefined at Pippo.pm line 8.
Pippo.pm syntax OK

That is, the first module, Pippo, doesn't set its entry in %INC until after it's finished processing. The use'd module sets its entry in %INC immediately, which is handy, as otherwise we'd have an infinite recursive use. As it is, only Pippo gets used twice, triggering the "Subroutine redefined" warning.

I whined about this in #london.pm, and Nicholas suggested that the timing of this behaviour might possibly be considered a bug. Is there a case for saying that %INC should be set for the file first invoked by perl?

Recursive uses are very likely on the "well don't do that" list, but the timing surprises me in any case.

Monday July 17, 2006
02:34 AM

Firenze.pm July meeting

Happily, the tuna fish has returned to Rose's sushi bar, hurrah! I have a digital video camera on loan from my brother, who has decided he doesn't have anything interesting to do with it (in Kyrgystan) so I brought it along to embarrass the assembled (larsen, Mattia, Riccardo, Cicci, Emiliano, Simone, Anshul), stop conversation, and record a mixture of rather dark blurs and some very bright, slow motion blurs (as this is what happens in the low light mode). Among the topics of conversation:
  • Why we should really be using Java (but note to Java proponents, saying "there's lots of reusable code in the J2EE framework" won't impress most Perl programmers because by and large they will fall into one of 2 camps: the NIHers who may at a pinch use CGI and DBI and probably don't see the point; and the CPAN-addicted, who can't really see how Java has an advantage here.
  • On the other hand Perl programmers may not say "Java is slow" as often as proponents of other languages (perhaps because we get that too...)
  • How to order sushi in Japan (bring along a Japanese professor)
  • some incomprehensible Tuscan muttering about linen.
  • The best seat in the house at Cabaret Larsen's incredible performance of the life and times of Winnie "sex & violence" the Pooh!
  • The forthcoming firenze.pm technical meet

After Rose's, Simone led us to Grom where we enjoyed "Il Gelato di una volta" and Cicci petitioned the assembled savants for Perl wisdom. I didn't even understand the question (serious voodoo with source filters to create a macro to lock thread variables because you can't use a function as that's in the correct lexical scope) but Simone after mentioning preprocessor macros with perl -P then suggested this might be an XY question and pointed sagely in the direction of the shiny `memcached`. And there was much rejoicing.

Saturday May 27, 2006
05:54 AM

Blasphemy

I didn't ever really make a distinction between normal swearing (usually about bodily parts, fluids, and actions/professions involving them) and blasphemy, apart from, when talking to Christian friends, feeling a little self-conscious about using "Christ!" as a mere interjection, when to them it's a good bit more important.

The Italians have some wonderful blashpemies, and as a non-native speaker, it's very easy to assimilate them. In the office once, after I came out with "Porco Dio!" (piggy God), larsen suggested that I should maybe be aware of who I was saying it to, as it was a "bestemmia" and therefore in quite a different category from normal cursing. And in fact, a few days later $boss commented unhappily when I said "Porca Madonna!" a little too loudly ("Porca puttana!" - "Piggy whore" - wouldn't have raised an eyelid of course).

Yet I was surprised to find myself feeling something which I think may be similar to the emotion of outrage in the face of blasphemy, on seeing someone in an online forum with a nick of "Muad D'ib". I'm not sure if this is because this prophet of a fictional universe means more to me than one venerated in this one, or whether it's because by and large people don't call themselves "God", "Jesus" (unless they're Spanish speakers), or similar just because they think it sounds cool.

Friday May 12, 2006
01:13 AM

Firenze.pm May meeting

The event was sadly marred by two exceptions, ENOGLORIOUSLEADER, and ENOBELHAVEN. larsen was kept behind at work and arrived around 11pm, while even more tragically, Belhaven Ale has disappeared from the James Pub, never to return. (Apparently they don't do enough business in Italy to make it worth their while delivering, which is a crying shame, as it's one of the few places I know where you could get a decent pint of bitter).

As well as usual suspect Mattia, we were joined by valdez and Riccardo from Dada, doubled the number of students (Spire and mithenks) and had a surprise visit from davidebe who had traveled from Bologna and wandered the streets of Florence before arriving at the same time as larsen.

The P-word was mentioned, though rarely, with conversation focusing on

  • The 3 types of recorded messages at train stations. (loquendo is apparently good for the speech synthesis side of things.)
  • SSH tunneling for idiots (me)
  • Standards, HTML and CSS in Firefox and IE
  • The Italians may care about Slow Food, but the British care about Beer.
  • Wireless and the thick walls of old houses in Bologna and Rome
  • Sneakernets
  • SMS
  • J2ME, and a notepad for phones
  • Google's Summer of Code
  • .odt, and hippy professors. Openoffice almost good enough to use at at version 2.0
  • .ps a standard my arse.
  • HTML optional declarations
  • Writing an operating system in Perl for fun and er.. fun
  • the Perl Rescue Team!
  • Tripods, flashes, and the "startled rabbit" effect
  • Networks running on ENEL (the Italian national grid) - which still sounds like sci-fi to me
  • How to pronounce Margaret Thatcher (and why some people wish we didn't)
  • Hacknight
  • Catch 22 (not as well-known a phrase in Italian, not sure how it's translated - "Clausola 22" ?)

Plus various other stuff that I either didn't catch, wasn't interested in, forgot to note down, or can't read my notes for... comments welcome. Ah, yes, I recounted a story which involves larsen, an unexpected time change, mobile phones, an Italian hotelier, and my mother. And (according to IRC) a Malaysian tiger, but I'll come back to that another time.

Update 12 May: Spire gave me permission to host his photos of the meeting.