This version now allows you to ignore if the error output doesn't match what you've declared when you're checking the output of your test suite's test. This is most useful when you're developing stuff (I've been using it while I've been building the new version of Test::DatabaseRow) and you're not entirely sure what format the debug output's gonna take, and you don't want to write those tests just then.
The new version of Test::DatabaseRow's in my subversion repository. It has loads of new features - testing that all rows match a criteria, specifying criteria based on what a row contains, checking that rows come out in the right order... I think it all works now apart from the debug output - which is of course one of the most important things with a Testing tool - it has to help you fix the bugs once you've found them.
I'm looking forward to it and catching up with people; Of course, just as with this year's YAPC::NA I'm going to be flying out the evening after the conference (this time it's someone's wedding I've got to get back for.) So this time I'm having the forethought to tell people; If you want to meet up with me and have a beer email me/leave a comment here/leave a comment on my wiki page on the YAPC::EU wiki and we'll see what we can do tuesday/wednesday/thursday night.
See you all in Belfast.
All this staying up to the wee hours has meant that I've had lots of time to code. This weekend I've mainly been patching the Template Toolkit to deal correctly with unicode templates. Which is nice.
I've been playing a lot with UTF8 and the UTF8 flag a lot recently and I ended up creating This script that creates this list of what happens when you toggle on and off the UTF8 flag for various bytes, print the output to a utf8 filehandle and Devel::Peek Dump the scalar to see what Perl is actually storing. Fun huh?
My talks went okay. People came up and asked sensible questions (which is great, as this means they've been paying attention.) Other people came up and said that they really liked both the bundling for cpan stuff as there's nowhere this is really documented well in one place (to my knowledge - please correct me if I'm wrong) and the modules I selected from CPAN for my talk as there's so many modules on CPAN they couldn't find the wheat in the chaff. It's always great to get feedback like that and is one of the reasons I love to talk. Thanks for everyone's kind words.
I should really get round to emailing the few people that I didn't get to say thanks for their talk. Geoff, if you're reading this both your talks rocked. Simon, though your talk on AMF::Perl was plauged by technical problems, the software looks really promising. Allison, nice keynote. Perrin, I've learned about a couple of interesting looking modules from you. Andy, Bill - you already know that both talks you did rocked. Ian, you've made me think about kwiki again. Worry about people in tin foil hats.
I took some pictures of which I got iPhoto to create a cruddy web page for me. See James and Alex soaked to the skin by several tons of falling Canadian water. Marvel at us watching Euro 2004 on dodgy video feeds. See Katrien being bored by Perl geeks. Be amazed by the funky waffle maker.
One of the things from the Town Hall was an idea mentioned to write a guide to writing lightning talks. When I get back from New York state, I'll have a go at doing this as London.pm is currently organising a Lightning Talk only tech meet next month. Which, of couse I'm still looking for speakers from. Instructions how to apply in that link.
I've got two talks. Firstly there's a new version of the advent calendar talk, which I'm hoping has been accepted as a tutorial. It's another year on, and we're now up to a hundred modules that have been covered by the advent calendar. So, instead of listing all the modules I've picked this year, I'm going to pick my favorites (the favorites of the favorites as it were) and give a tutorial on using them. The CPAN modules every user should know about kinda thing.
This dovetails nicely with the twenty minute talk I'm giving as part of a London.pm presentation to the UK Unix User Group on Perl. I'm meant to be covering CPAN, showing how cool it is, so I'll probably use the same modules in that as in the tutorial - just without the explaining how the modules work kinda way.
The second talk I've got accepted for YAPC::NA is about turning a Perl module into a distribution. It's a short talk that covers things like writing a Makefile.PL, bundling the thing, writing simple tests, etc. The kind of thing that all Perl Programmers need to know. I suspect most people at the conference will know this already, but for the intermediate programmers there it should provide useful; More importantly, I think it's a talk that needs writing so there's a resource I can point people at whenever I talk about how Perl's distributions work.
All this reminds me I need to sort out the next London.pm technical meet, which looks atm like it could be clashing with the Austrian Perl Workshop. I shall have to give this some thought, and find out who, it anyone is going and schedule things accordingly.
The main social meeting this month was at the Windmill on the eve of Good Friday, which meant it wasn't that busy. It's a small venue though so it filled up all the same. I was plagued by a terrible headache the whole day and ended up burbling to myself in the corner, or so it seemed.. hitherto finally turned up and we wished him a happy birthday in the traditional way(we bought him booze.)
Finally Abigale and his fiancee were in town, and unexpectedly so was I (long story...short version: don't lose your passport) so a few of us met up with them at the Windsor Castle (no, not that one, the pub in Notting Hill) yesterday and ate the truly excellent sausages.
The changes allow you to get at the results extracted from the database aafter Test::DatabaseRow after row_ok has executed. I'm not sure if I like this interface at all, but darn it, it is practical and saves you having to drop back to using the straight dbi when you just want to do that little bit more complicated test.
I had a thought about allowing Test::DatabaseRow to have munging functions to munge all values extracted before they're compared. For example, using OpenTDS with a MSSQL database you get back strings that are space padded and it'd be nice to be able to munge them to strip the extra spaces at the end of strings.
That'll have to wait to the next release.
Oh the Perl! Yes, we did talk about that. Andy kicked off with his talk on Template::Sitemap, which is essentially how he created a simple XML format that, with a shedload of convince, can be easily accessed from within his website. Looked good - I've implemented similar things in the past, but never really abstracted it out from the site I was working on or added the functionality that makes the sitemap manageable. I look forward to the CPAN release.
Andy was followed by Shevek explaining Acme::HaltingProblem (which apparently has only one bug), and then jerakeen gave his talk on Bot::BasicBot. Bot::BasicBot was one of my modules that I gave up ownership on because I didn't have time to implement all the features that people were requesting. Tom's done a lot of work, especially in the boring mundane sections, like getting the damn thing to connect to channel if it fails for any network reason. I'd never have had the patience to do that.
After the break Nik talked about use DateTime to compute sets and intersections to work out a combination of outages on his network. Many questions were asked. Nik agreed that he'd post to the DateTime list to talk about it, so I await that post. He went on to talk about Text::vFile::asData that looks interesting, and reminds me that I should talk to richardc about applying some of the work they've been doing on parsing/generating iCal feeds to doing more with the London.pm.ics feed.
Shevek talked about SRS, which is a scheme for rewriting email addresses that are forwarded in order to verify that they came from where you thought they did when they're forwarded.
Finally Simon talked about Maypole, which as far as I can gather is toolkit for creating ways of rendering and editing databases, with powerful default states. Big applications in twenty lines of code. Powerful combination of Template Toolkit and Class::DBI. Looked interesting. I will wait the month he's going to spend (thanks to TPF donations) documenting the code.
I really enjoyed this meet. As I was saying to James, none of the talks were "This is the best thing in the world ever" or "We've developed the new framework that's going to make everything else obsolete". They were "there's this problem, and we wrote this/used this tool which was helpful maybe you'll find it helpful or do something similar too". I was impressed greatly by the number of talks that talked about other approaches that they'd tried and showed how they'd prototyped similar solutions in the past. Conference organisers take note: These are the kind of talks we really liked.
Last week I showed someone the env perl trick.
As the shebang line. This uses whatever Perl is first in your path. Today they showed me back in return the handy "recursive_test_files" option to Module::Build that lets you put subdirectories of tests in "t/". Sweet.
The best tip I've learnt and passed on (which I'm sure everyone else knows about by now) is using \G in the mysql shell. This prints out results with a line per column rather than trying to render some kind of table, meaning that things take way more space to print out but don't fall over horribly when the output is wider than the screen and wrapping occurs.
Hmm. I should apt-get install ispell on this box. Oh well, you'll have to put up with my speeling mistkes for a while.