Open Source Business Models -- nothing I haven’t heard before.
How to get hired -- petdance and Oden gave a really good talk about getting hired. Basic hygiene stuff that most geeks don’t know. They should write a short book on this. Best quote: “The best time to plant a tree is 20 years ago. The second best time is today.”
PostgreSQL -- All about what’s new. Basically, they’re going head-on against Oracle with a lot of business features.
Archetypes in Plone -- They’ve made it easier to add paragraph types.
Later we went to a party at the conference for the O’Reilly authors and speakers. I brought Glen along with me and introduced him to someone that I thought should hire him. They eagerly exchanged biz cards. I like when that happens.
After Glen left I stayed at the party for a while chatting with people. Then I went to my hotel room, watched the John Edwards speech at the DNC (it was AWESOME) and went to sleep.
Perl6: Wall and Conway gave a talk about some of the Perl6 features. Mostly they talked about the stuff that’s been added in the last few months, and it was mostly the OO feature. They claim to have gotten OO stuff right. Since I tend to use modules, not write my own, it wasn’t super interesting.
The Perl6 Compiler: Allison Randal talked about the compiler that will be part of Perl6. Perl6 will compile itself down to Parrot bytecode and then run at Parrot speeds. If you want a hint on how fast that is, someone wrote a Python-to-Parrot compiler and it runs Python code faster than Python does. Anyway, the current compiler is actually written in Perl5 because it’s just a prototype. However, she predicts that sometime this year they’ll throw out the prototype and write the new compiler from scratch, in C. However, they’ll have a much easier time of it since they’ve worked out the difficult parts in the prototype (I’m sure that having the parse tree worked out is going to help... I wonder if they’ll make an automated system that generates the C code for the parser from the Perl5 data structure).
Bricolage: The Bricolage content management system for web sites. Some large newspaper use it (so did the Howard Dean campaign). http://www.bricolage.cc is a sample site. I’m desperately looking for a system like this that NJLGC and BiZone can use, as well as others. This looks good. The difficult part is setting it up for the first time. However, they now have a sample web site that you can start from as a base.
Combust: the perl.org web framework. perl.org uses a CMS system that they wrote called Combust. Sadly, this is the opposite of what we need for my non-profits. It is a hacker tool, requiring knowledge of perl to do anything.
Lightning talks: Everyone gets 5 minutes and you have to pre-register. Ready? Go:
- Code Generation -- someone from Morgan Stanley with a difficult to pronounce name -- They do everything with SOAP and have made a lot of cool stuff -- MSDW::Eclipse -- authentication -- MSDW::Quasar -- alerting -- they store the APIs in XML and generate the headers for many different languages.
- CGI::Prototype.pm -- Jim Brandt & Randal Schwartz -- All CGI scripts seem to have the same sections so they made CGI::Prototype which is an engine that takes care of all the common stuff and lets you substitute in your code. It’s based on Class::Prototype.pm. TemplateToolkit makes generating the HTML easy. For example, a form page tends to repeat until data is validated, then moves to the “next page”. They are all null-stubs initially but you can plug in a validation routine, the next page routine, etc. and suddenly you have a CGI-based web app.
- Perl is too slow -- PPerl and Text::QSearch -- Managers select Java because everyone knows perl is so slow (yeah right!). Either way, everyone fears the compile stage. mod_perl solves the problem for CGI scripts, but what about everything else? Uses send_fd() and rec_fd() to send to a daemon that “holds” the precompiled code running in a process. This is 10x faster than regular perl. But they wanted to make it faster, so they kept going. His next trick got it 150x faster using Aho/Carasick (that’s the Aho that used to be my boss). Text::QSearch for more info (should be released next week).
- Aegis and rejecting patches -- He doesn’t like receiving patches for CVS because it’s manual and error prone and boring. So he set up a way for people to have direct access to the repository but he actually approves the changes before they really go in. He uses Aegis, an open source prequel to CVS. Aegis has “roles”. “Users” can submit requests. Others are marked as “developers”. They can pop in changes. Aegis can compile things and reject if it breaks the compilation chain. Others have “reviewer” roles and can check the code. Reviewers can accept/reject code. He can also reject requests, so this avoids the problem of people developing a patch and then being told “gosh, thanks for all that work but we don’t want the product to go in that direction.”
- Helping the Third World with open source -- Thomas for Tactical Technology Collective -- In helping third world organizations set up open source systems they have the problem where people can’t download huge systems like Linux. After a number of false starts with store and forward they found a better solution: a box of CD-ROMs. They call it “NGO In A Box” and it’s great.
- Introducing the Package Factory -- Daron E. Clay -- The Boeing Company -- he works in the release configuration side of development. Boeing uses a ton of Perl, and some Python, and a little PHP. PF is a Workflow tool for centralized service. Primarily ZergoG InstallAnywhere and MSI (microsoft installer). It’s a web-based system that lets people enter their package information and outputs the package under various installers. Because they use a check-in/check-out system, they can actually determine how much time a person spends on something and generate statistics for management (which sounds really cool). It uses PHP5 + Apache2 + PostgreSQL + Redhat + VMWare GSX.
- Start using prove -- Andy Lester -- Goal: making “make test” cases for CPAN modules a lot easier. “prove” is a development tool that is part of Test::Harness. It’s like “make test” but it’s flexible. It’s part of core perl so there is no excuse for not using it. Interesting feature: You can randomize the order of the tests.
- Rant -- Richard Turner -- Licensing is not religion... it is rocket science. A lot of files in Parrot is missing proper licence and copyright labels. Get with it, bone heads! Not sure what to do? Contact FSF and they’ll help you do it right.
Lunch: Had lunch with Jesse and a number of his friends at this really bad restaurant. Nothing to mention here.
Afternoon: I attended Mark-Jason Dominus’s Tricks of the Wizards tutorial on Perl. I finally learned how globs work. From there, he went onto a number of things like aliases and filters and other topics that I never really understood. He’s also just a fabulous speaker, always entertaining, and handles the students really well.
Dinner: just a bite at the bar. I ran into the O’Reilly “local perl groups” party and hung out with them. I ended up agreeing to write an article for their online newsletter.
Evening: The evening talks were fantastic.
- First was Larry Wall’s state of the onion. He used a series of screen-savers as a vehicle for talking about the state of Perl’s development.
- The middle talk was (missed his name) and it was this amazing discussion of software development culture and the role of the hacker (old term for hacker... an uber-programmer not the new evil “hacker” term). One thing that I learned explained why my previous company’s development team worked so well, and how we can fix some of the problems we see at my current place.
- The last talk was Damian Conway who did this amazing talk about Life (the Game of Life algorithm), The Universe (physics) and Everything (literally... but mostly the Klingon language). He showed this amazing merger of GOL and quantum physics that permitted grid points to contain 2 values, and it turns out to be an excellent demo of the laws of thermodynamics... and even proved one of the mysteries that too physicists centuries to prove. He then walked us through a number of Perl6 features and related them to the Klingon language. In fact, he made a Perl filter that let you write perl code in Klingon and showed his GOL program completely written in Klingon. It was an amazing demo.
Then I went to my room and watched them replay the DNC convention for the west-coast.
Monday: Morning I spent talking with people and telecommuting, but now I wish I had attended the tutorial on Plone. Dang, I need someone to help me kickstart my plone project idea. Why does the good software make installation so difficult? In the afternoon I taught my tutorial. It was ok, but the small audience didn’t have the energy I’m used to. Afterwards I spoke with Ying and found out that she’s taking the job offer (w00t!) that she was thinking about. That’s really good. At night I went out to eat with a bunch of people from the conference (Googo, Ann, Tumi, Luke, Ronald, Alex). We went a long way by bus to discover that “The Pasta Place” (or something like that) sells pasta, they aren’t a restaurant. So we ended up at a brewpub across the street. I had a lot of interesting conversations about perl, open source, etc.
It’s so good to discover that an Open Source Conference isn’t full of conversations about whether or not open source is a good thing. I was expecting a couple RMS, Jr’s that just sit around arguing with people they agree with. Instead, these people are really serious about their perl, php, apache, etc. projects. An interesting cultural things I’ve noticed is that everyone asks “what do you do?” The first time I asked. I stumbled through, “well, I write books about system administration and blah blah blah”. Later I realized the expected answers are either “Perl”, “PHP”, or “I’m a journalist”.
And if you say “perl” the follow-up question is, “So, which CPAN module did you write?”
Wow, that’s pretty hard core.
People’s entire identity wrapped into a single word, with a possible subspecifier that identifies how you’ve helped the community.
I’ve been thinking about responding with something like “/bin/sh” or “awk” because it’s true. I’m a better perl programmer than 90% of the perl programmers I know, but I kick ass on /bin/sh in ways that sometimes surprise myself. However, for now I’ve been saying, “System administration.”