What I liked about YAPC::EU 2012

Disclaimer: This list is no ways complete. It does not mean that I didn't like what I forgot to mention. :-)

The Streuselkuchen. The coffee. The snacks. The drinks. THE ICECREAMS.

How the essential things worked like charm. The Germans are winners. :-) This is no news to the fans of the English Football Team. Thank you very much, organizers. (bow)

The lunch break in the city park.

The Talks. The broad range of interesting topics. The "informativeness" of the talks. (I have not attended one single talk where I had the impression that the speaker gave the talk to hear himself speak.) I used the feedback forms for individual feedback, and so should you, I think. It's about talking to people rather than about them (publicly). Nice things can always be said, so again: Thank you, speakers! ;-)

The cool air in the Frankfurt.pm auditorium which escaped from a bunch of holes in your front neighbour's seat. Put your fingers inside and feel the cool breeze!


It was a good YAPC although I already knew FFM and their slightly musty University, so it lacked the excitement of a new unknown place. But I guess its part of the joy to meet the class of Perl again, greet domm here, say hai to karen there and so on.

Highlight was to me Stevan Littles presentation (no keynote was utterly important), even if I extracted the crucial infos before. I was especially sceptical to declare one line to get the getter/setter like in Moo/s/e. But combined getter/setter are not always right, you might follow the damian or even (god forbid) your own taste. So to declare that and not deliver that part by default seems to be very perlish and sane. And I got the impression that there is not much uprise against it and that and that it might even arrive in 5.18.

Fun With Fuse

FUSE (Filesystem in USErspace) is a useful kernel module with an API which allows file systems to be implemented in user space applications, mounted and fully integrated into the system's VFS. Originally implemented for Linux, FUSE API-compatible kernel modules are now available on *BSD, OpenSolaris and MacOS. That said, this was written on a Linux machine so there may be assumptions made about the tools available, their output etc. Feel free to submit info on other *nix-like systems for inclusion if you encounter any inconsistencies. This also goes for corrections and suggestions - if I get the details plain wrong or the code stinks and so on...

Some examples of popular FUSE file systems are ntfs-3g, which provides full NTFS support for the Linux kernel, and sshfs, which mounts remote directories over SSH with SFTP support. FUSE also powers ambitious projects, such as the distributed filesystem, MooseFS as well as providing easy access to proprietary protocols such as MTP.

We can combine this power with the power of Perl using the excellent FUSE API binding.

Sugar for MooseX::Traits

Tomorrow morning I'll be needing to get up in the wee small hours of the morning to travel to the Moving to Moose Hackathon 2012. In the mean time, here's some sugar for the awesome MooseX::Traits...

package traits;
use MooseX::Role::Parameterized;
parameter namespace => (
    isa     => 'Str',
    default => '',
role {
    with 'MooseX::Traits';
    has '_trait_namespace' => (is => 'ro', default => shift->namespace);

Instead of this:

package MyProject::MyClass;
use Moose;
with 'MooseX::Traits';
has '+_trait_namespace' => ( default => 'MyProject' );

You can now just write:

package MyProject::MyClass;
use Moose;
with traits => { namespace => 'MyProject' };

It would be better perhaps if MooseX::Traits and the 'with traits => {}' pattern could be integrated into Moose itself, avoiding the need for a top-level traits.pm module.

YAPC::EU::2012, what I missed

YAPC::EU is over. It was a nice conference, but there were a couple of things I've missed. The first one is obvious: air conditioning. We had a too hot weather. I understand that Germany is used to cold, not hot. Nevertheless, next YAPC::EU users, remind that 300 or more people in a room, half with their laptops and gadgets turned on, produce a lot of heat. So, be sure at least the main room has a decent air conditioning system.


So, I’m sitting in the car, while Jess is driving back to the UK (well, the chunnel … well, to Luxemberg to find cheap gas ) on the way back from the Perl reunification summit and YAPC::EU 2012, Frankfurt. I figure this is a good time to do the blogging thing again, and give some of my throughts about Perl (the programming language), perl (the implementation of the programming language), Perl (the city^Wtown), and other such things, and possibly even my role in them in the future.

Ocaml, Unicode, and Hashtables

So, Ocaml does not support Unicode out of the box. The “string” type is an 8 bit byte and that’s that. Some find this to be a major failing of the language in general and it is a pain in the ass. However, there is a unicode library for ocaml Camomile which fills the gap.

In the project that I have been working on, I had to read in a Unicode file into Ocaml and create a “seen” hash. Just as you would do in perl normally. However, because Ocaml doesn’t support Unicode natively, you cannot use the generic Hashtable type ”(’a, ‘b) t”, which stands for an arbitrary type for a key (the first ‘a) and an arbitrary type for the value (the second ‘b). The key value types will be filled in by type inference as you use the Hashtable based on what you do with it. This won’t work because the generic Hashtable depends on an equal function that will not conform to the Unicode standard compare.

Things I learned at YAPC::Europe 2012

...can be found on my blog

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is hosted by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.