Smylers’ “Beginners guide to talking at conferences”
I ran in to Smylers’ Talking at Conferences: A Beginners’ Guide the other day. It’s a very useful distillation of things you should consider if you’re thinking of giving a talk at a technical conference, such as YAPC Europe 2007, where the talk was delivered.
One recommendation in particular struck me, in re ordering the material in a presentation effectively.
But there is one metric which can be applied to a talk safe in the knowledge that following it would have taken exactly the same preparation time: would the talk have been better had exactly the same content been presented but in the reverse order.
I’ll be keeping that in mind next time I have to present something.
Holy crap, I’m moving to Switzerland!
It’s been a bit quiet around here for the last couple of months. A quick brain dump.
In February I left my job helping to run the mail systems at Citigroup, having sorted myself out with a contracting role doing software development in Perl (with some Autosys and Murex mangling on the side) for the nice people at Brevan Howard. Quite definitely some of the nicest people I’ve had the pleasure of working with in the financial industry. If you’re a London-based Perl developer looking for work and the opportunity for a contract with them comes up, jump at it.
Along the way I finally got around to sorting myself out with a Flickr account, and you can see my photos at http://www.flickr.com/photos/nikclayton/. Not something I’ve written much about, but that may change in the future.
Anyway, that proved to be temporary. No, they didn’t fire me. Instead, in two days time I jump on a plane bound for Zurich, to start working as a site reliability engineer for Google Switzerland.
I was over there a couple of weeks ago as part of a preview-cum-orientation trip, which coincided with the once-every-three-years Züri Fäscht (Zurich Festival), so I took the opportunity to snap a few shots of fireworks.
Anyway, I hope to write more next week about the process, useful sites for people undergoing a similar move, and so on. That, and getting back to contributing to projects like Subversion — my free time has been practically non-existent for the past 4 months or so, and that’s something that I’ve let slip.
Sendmail 8.14.0: Logging the GreetPause firing time
Following on from yesterday’s discussion of new features in Sendmail 8.14.0, today I’m writing about Sendmail’s GreetPause feature, and some additional logging for it that’s been added in Sendmail 8.14.0.
Subversion UK User Group / Google open source jam writeup
Last Thursday (the 18th) I attended two open source events in London. The first was the third Subversion UK User Group meeting, and the second was Google’s second Open Source Jam.
Subversion commit access
I’m very pleased to say that I’ve just been granted with a partial commit bit for the Subversion source code. The developers have had enough of me popping up on the mailing list talking about issues with the Perl bindings and posting patches, and have given me the necessary access rights to fix and improve things myself.
As is traditional, my first commit was to the list of Subversion committers. This ensures that the ACLs are set up correctly and so on.
I’ll be working on the perl-bindings-improvements branch, making sure that they’re up to date with respect to the rest of Subversion, and that they behave as “Perlishly” as possible for anyone else who needs to interoperate with Subversion repositories using Perl.
Perl parameter validation and error handling
I write and maintain quite a lot of Perl software. Much of it is open source and available on CPAN. Most of it consists of libraries designed to be used by other applications, rather than applications in their own right.
One of Perl’s strengths is that “There’s more than one way to do it” (TMTOWTDI, often pronounced tim-toady). This makes for a language that is flexible, and allows you to write a solution to a problem that matches the problem, rather than trying to shoehorn the problem in to the language in order to solve it.
This is also one of Perl’s weaknesses. There can be many ways to solve a particular problem — some of them are not optimal.
SVN::Web 0.50 released
After a slightly longer development process than I would have liked (I had several hard disks choose inopportune moments to go south — no data loss thanks to backups, but I took the opportunity to shuffle some hardware around), SVN::Web 0.50 has been released, and should now be available on CPAN.
There are quite a few significant changes in this version…
Subversion UK User Group / Google Open Source Jam, 18th January 2007
If you’re in London on Thursday 18th January and you’ve got an interest in Subversion then you might want to come along to the next Subversion UK User Group meeting. It’s at 3pm, there are directions and sign up instructions at that link.
I’ll be there, giving a tour of the Subversion related applications and tools that are available in the Perl space.
And after that it’s the first London Google Open Source Jam of 2007 — an opportunity to catch up with other open source developers, and find out more about interesting projects that people are working on.
use.perl journals and full text feeds
One of the sites I make a point of reading regularly is use.perl, and in particular, the user journals / blogs. They don’t take too long to read, and there’s normally a couple of posts a day that teach me something I didn’t know about Perl, or that highlight a new module that’s doing something useful.
But there’s a problem.
SVN::Web and Google Code Hosting
You’re probably aware of Google’s code hosting service. They use Subversion as their revision control system, so if you want to contribute to a project hosted there you really need a Subversion client.
I was reading the FAQ for the hosting service the other day and a particular entry struck me.
Planet Subversion
I’ve been experimenting with Plagger, a tool for plugging together chains of filters, pumping RSS/ATOM feeds in one end, and getting transformed output at the other end.
This doesn’t have to be as simple as chaining a few XSLT transformations together, as Plagger filters can carry out additional actions (such as e-mailing the results to you, calling on the power of Perl modules to create summaries, and so on).
As a learning exercise, I’ve built Planet Subversion (edit I’ve updated the URL to point to the official domain). This takes feeds from a number of different sources and builds a "Planet" site from them. And, of course, with Plagger being open source, it’s easy to contribute any fixes back to the author.
Please let me know if you use Subversion and can recommend any other feeds to add.
If you’d like to produce your own aggregation site using Plagger, here’s the config file that I’m using for Planet Subversion.
Day 59 of 60: Final thoughts
This system will be going back to Sun soon, while I wait to find out whether or not they’ve decided to grant me the system. In the meantime, here are some final thoughts on the last 59 days.
Day 59 of 60: Developer benchmarks (pt 4)
Yesterday’s tests show that using gcc on both FreeBSD and Solaris yields a marked improvement in the time taken to compile Perl.
However, despite the big difference in compile times, the run-times of Perl’s test suite aren’t dramatically affected. The worst performer, Perl running on Solaris, compiled with Sun’s cc and optimisation is 6% slower than the best performer, Perl running on FreeBSD, compiled with gcc and optimisation. This test involved a great deal of IO and process creation, and I thought that that might be part of the reason for the differences. So I’ve been using a Perl based application, SpamAssassin, to test whether or not there are big differences between the run times of the various Perl interpreters.
Day 58 of 60: Developer benchmarks (pt 3)
Yesterday I looked at performance compiling Sendmail on Solaris and FreeBSD using Sun’s compiler (on Solaris) and gcc (on both systems).
In the tests gcc come out handily ahead, with gcc on FreeBSD being 16% faster than gcc on Solaris with low optimisation options, and 12% faster than gcc on Solaris with optimisation turned on. Sun’s compiler was over twice as slow as gcc on either system.
Today I’ve been looking at the time taken to compile Perl on both systems, using both compilers, with and without optimisation.
Day 19 of 60: M4 issues resolved, ministat updates
The issues with M4 have been resolved. A colleague, Andre Lucas, took up the challenge and worked out a fix which he describes in detail. And ministat’s now looking much better. It’s grown some useful new options, a lot of documentation, and can now (optionally) generate plots in colour. Look below the fold for two example plots.
Day 17 of 60: ministat
I’ve spent some of today porting some useful statistics reporting software from C to Perl.
ministat reads in two or more files of data and uses the Student’s t test to determine if there is any statistical difference between the means of the datasets. This is especially useful when comparing benchmark results.
For instance, I figure that this will be useful to compare data from several Sendmail runs, where the number of queue directories differ between the runs. It should highlight any benefits between different numbers of queue directories.
Rather than explain more here, I’ll point you at the code. There’s documentation towards the end of the file. Note that this still needs some work — there’s no proper command line option handling at the moment, some of the documentation needs fleshing out, and I wouldn’t use this as an example of good Perl code, as it still looks far too much like a Perl program that’s been written in C.
When I’ve fixed that I’ll put it up on CPAN.
Day 1 of 60: Fun and games with pkgsrc
In the years that I’ve been using Solaris it’s support for third party packages has, to my mind, always let it down. The open source community writes and releases software at a phenomenal rate, and systems like FreeBSD and Linux have developed a number of interesting ways to make it as easy as possible to get this software, install it, and (much more importantly) manage it once it’s been installed.
ENOSERVER
No, I haven’t given up already. Although the box was supposed to arrive on the 5th there’s been no sign of it so far. I did try using the tracking number that Sun sent me at mysun.sun.com.
Sadly that just gives me:
Thank you for your interest in Order Status. It will take three business days to activate your Order Status entitlements.
I’ve been on the phone to them, and they do assure me that it will arrive later today.
In the meantime, here’s something else I’ve been working on — scrollable commit timelines for SVN::Web.
raison d’être
It started when I read a number of posts at Jonathan Schwartz’s blog (in order: here, here, here, here, and here).
Jonathan is Sun’s CEO (although he wasn’t at the time he started this series). The essence of it is that Sun are so stoked about their new hardware that:
So… here’s an invitation to developers and customers that don’t want to move to Solaris, want to stay on GNU/Linux, but still want to take advantage of Niagara’s (or our Galaxy system’s) energy efficiency - click here, we’ll send you a Niagara or Galaxy system, free. Write a thorough*, public review (good or bad - we just care about the fidelity/integrity of what’s written - to repeat, it can be a good review, or a poor review), we’ll let you keep the system. Free.
That sounds like a good deal to me. So I started thinking about how I might take advantage of this offer.


