Before I dive into day three of the Yet Another Perl Conference in Montreal, I'd like to explain the format of the conference for those who may not know. There were many more classes than what I have written about in the last few days. There were four rooms available, so at any time during the day, there were one to four sessions going on at the same time. The format is roughly three blocks of time with breaks in between, followed by a final block at the end of the day that usually was a continuation of a block three talk, or was a group talk, which basically meant Damian speaking. Nobody was ever scheduled opposite of Damian - that would not be fair :)
Each "block" lasted 90 minutes, and had one long talk, two medium talks, or four short talks. So the format was (starting at 9AM): 90 minutes of talks, a 30 minute break, 90 minutes of talks, a 90 minute break for lunch, 90 minutes of talk, another 30 minute break, and the final block, which ended around 5:30 - 6:00. Unfortunately, a lot of the presentations ran over on time. I say unfortunately, because this would sometime happen at the expense of someone else's talk.
Day three started with Mark-Jason Dominus delivering a talk on "Dirty Stories About the Regex Engine" which showed some of the source code running the regex engine in perl, and some of the er..unusual ways in which the code accomplishes certain things. One example was how the security hole of code being able to evaluate inside a regular expression was fixed, so that user input into a regex could not include a malicious snippet.
Dominus also gave a talk on on "The Identity Function." The identity function is a simple function that just returns it own arguments. It may not seem useful at first, but (as he showed) it actually is. He demonstrated how 'use Eval' can help strings interpolate in a more natural manner. This involves the fact that hash keys inside a string *are* interpolated; using the identity function allows 'use Eval' to work quite nicely. He even took us down an interesting detour into FORTRAN (and some assembly) to show how the identity function could be used to allow linked lists and the like in FORTRAN. Since FORTRAN has no memory allocation or pointers, this took some tricky wizardry. Very impressive stuff.
Next up was "Programming Parrot, or Integrating Perl with Python" by Neil Kandalgaonkar from ActiveState. To be honest, I don't really remember too much from this one. I pointed out the "from ActiveState" on purpose however; the careful line that a sponsor must balance on at conferences like this was perhaps crossed at times, but that is a discussion for another time. (Note: this is not related to Neil's speech per se - his was just the first ActiveState talk I went to this day)
The final short talk of that block was "What's the Big Deal About P2P and Web Services?" by Nathan Torkington. This was an interesting talk, almost political at times, about a broad range of subjects regarding peer-to-peer connectivity. Freenet was described as "our last, best hope" but it really needs a perl version (the current Freenet server is only available in Java). Another great project for somebody! :)
During the break, I noticed that almost everyone had signed the get-well card for Larry (two large pieces of posterboard that were set up earlier in the week to send to Larry). There were about 330 people at YAPC, by the way. The age ranges were quite varied, but I would say most were in their late 20's to early 40's. Women were woefully underrepresented - there were probably about 12-15 at the conference, and none giving talks. (er...update...there was one giving a talk, which I went to. Cut me some slack, I wrote this after a lonnnnnng night) Dress was extremely casual, and the whole conference was very laid back - people could come and go from the talks as they pleased (but most tried not to out of respect for the speaker). All in all, a very different atmosphere from *The* Perl Conference (TPC).
The lightning talks were next, and were very interesting. Each speaker has 5 minutes to speak, which was strictly enforced by the ringing of a bell. (They should bring those in for the regular talks as well! :) There were a lot of interesting talks, I'll run through a few here, but this is not by any means all of them:
- Nate gave a great talk about how the Everything Engine works and is being used in sites such as "perlmonks.org." Yay Nate!
- Todd Olson proposed an interesting idea about separating error messages (and other output) from your code, and placing it in a nearby file for perl to grab as needed. He also proposed some solutions to the problem that there is no easy way to tell perl to search just the directory that the script was invoked from. (as opposed to using absolute paths, @INC, etc.)
- 'guinevere liberty' pointed out in her talk "perl users unite: using our power for freedom in a less than freeware world" that programmers are generally a very powerful segment of society, but we do not use our power (for good, of course) and much could be accomplished if we were able to join together.
There were many other interesting lightning talks, and I feel bad about not covering them all, for I feel they come closer in spirit to what YAPC should be about than many of the other talks. Very grass-roots, ordinary users telling their stories about how to do something neat in perl, or how perl solved a particular problem for them, or just some plain and simple perl advocacy. Great stuff - I hope to see a lot more of these sessions (and similar types) at other conferences. Special thanks again to Mark-Jason Dominus for arranging the lightning talks.
After lunch (I went to a take-out sushi place - don't see many of those in the States either!) I went to "Perl 6 status meeting" with Damian Conway and Nathan Torkington. To be honest, this was quite a bit boring, and got bogged down sometimes in nitpicking of details from the audience discussion. How Perl 6 came about was discussed, as well as how it was going to be developed, what mailing lists would appear, etc. This talk could have used a lot more structure and prior planning, or perhaps just turned it into a generic Perl 6 questions and answer section. Very disappointing, especially when I realized afterwards that I missed some presentations from PerlMonks I wanted to see in other rooms at the same time. Sorry monks! :(
After the final break, during which I finally met Nate and some of the other perl monks, we went in for the final two talks of the conference. First was "The Conway Channel" by Damian Conway, who thanked everyone for supporting him this year, and showed what he was doing with all his time. His three main jobs are:
- Travel and promote perl (he has already traveled quite a lot this year, and is does an excellent job at the latter)
- Be a "henchman" and help develop Perl 6 (which he also doing a great job at, from his Perl6:: modules, to his exegesis (what's the plural of that?), to his reading of each and every one of the RFCs for Perl 6.)
- Modules, modules, modules. Well, it's a little more than that, but he's been producing modules at the astounding rate of over 1 per week since last year. These are good modules too, although some are playful. As Damian points out, he wouldn't want to be working in (and for) a stuffy language that isn't playful at times and can accept things like Coy and Bleach.
Damian is an extremely talented and busy individual, and "buying" him out was a fantastic idea. I don't know of any other language that has a community that would allow something like this to happen. Damian is also very approachable, and was more than happy to talk to anyone that went up to talk to him. If you get a chance, go to one of his talks before the year is up and he has to return Down Under.
The final segment was the YAPC Town Meeting, which mostly consisted of people giving suggestions, asking questions, and offering constructive criticism about the conference itself. Many good ideas were mentioned, such as having the lightning talks on the first or second day, so that people could talk to some of the speakers afterwards. No venue has been set yet for next year's conference. My vote is for Montreal again - it was a bit far (for me) but well worth it. The whole conference was incredible, and having in Montreal was the icing on the cake.
(almost done!) After a chaotic book auction (donated by the publishers, and YAS gets the $$), the conference officially ended. Later on, around 10 of the PerlMonks met up for dinner, and we ended up way across town and a small Vietnamese/Thai/Japanese place and had a wonderful, long dinner talking about everything under the sun, including a little bit of perl. I love places that let you sit their all night and talk, instead of rushing you off for the next customer to sit. It was a great evening, and the first time I've ever really had a chance to meet other monks face to face. I will definitely attend next year's YAPC, and invite others to do so as well, no matter what your perl level. Thanks to everyone who took the time to come up and introduce themselves, whether from perlmonks or not. See you all next year!