|<< March 2007||May 2007 >>|
Discovered today that I have a favourite train. Who knew you could even have such a thing? It's the 07:45 from Birmingham New Street to London Euston. Yes, New Street isn't exactly a jewel of a station so it's not a grand start. Euston, while admirably usable, is second only to Liverpool Street as London's least attractive station, so journey's end isn't especially exciting. But the bit in between! The 07:45 makes only one stop, at Birmingham International, then it charges, charges I tell you, to London, timetabled to arrive at 09:06. 81 minutes! And this morning it was earlier, because by 09:06 I was in Camden Food buying yogurt and coffee. 81 minutes!
I can leave my house in sunny Moseley, cycle to the station, hop on the train, get the tube across London, and be at my client's office near Waterloo in a shade over two hours. That's 120 miles by road, and I can do it in 2 hours. I might not have a flying car, but tell me I'm not living in the future.
If you're living in the future, then what about the citizens of France, or Japan? What kind of far-flung alternative epoch are they in? You'd get that total journey time down to much nearer the hour.
UK! Spend more on rail! In fact, divert Olympic spending to the bloody rail network! Pound-for-pound the benefit to the economy as a whole would surely be better, and more fairly distributed.
I'd been up to interview at Hull University - spent bloody hours on the train that day. From Norwich to Peterborough, (via, if I remember, March and Ely) then onto the Inter-City to Doncaster (one of the nation's more desolate stations), then the final leg on the stopper to Hull. Still, managed to arrive early enough to walk from the station to the university - about 3 miles. Had a wander round, was interviewed by Dr Hall (not the world's most strenuous interviewer), walked back. Sat next to a fantastically pretty woman on the chug back to Doncaster. Was so taken I bought her a sandwich as kind of "I love you, even though I'll never see you again" present. Back to Peterborough, through the fens, to Norwich as dusk fell.
Recovered my bike, minus front wheel and quick release spindle from the rear wheel, from the fence. I was, still am really, furious about the spindle. It was my first encounter with a really pointless crime - there is nothing, absolutely nothing, you can do with a second-hand spindle. Nicking one only serves to annoy. Carried my bike across the city to the police station to report the theft to a rather bemused desk sargeant, pausing briefly on the way when a drunk stuck his out of a car window to let me know that, gosh! look, I seemed to be missing a wheel, I hadn't noticed that until you pointed it out, how could I have been so stupid. Tossbag.
It was half-term, which I thought significant. I took against school children for quite some time afterwards.
If I leave my bike for a long period now, I often use two locks. That's probably overkill, as kids these days don't give tourers a second look, they want fancy-pants city bikes with fat wheels and big suspensions.
Though when I came to fit one this week I found my quick release had seized so I couldn't get it undone anyway...
One of the curious little themes of this years conference was brains. What are they? How do they work? Can we monkey with them?
In my session on iterators, in amongst all the stuff about how badly most libraries are designed (if indeed they are designed) and blurred language/library boundaries, I talked explicitly about the Sapir-Whorf hypothesis. Basically, the Sapir-Whorf hypothesis says that the language you speak shapes your habitual thoughts. I was arguing that we shouldn't let the programming language and libraries we use blind us to alternative ways of expression. In the particular case of iterators, it was ok to write our own and we didn't have to rely solely on the standard library, because the standard library was actually holding us back. I should have laboured on that a bit more I think, because it's something that stands repeating.
Anyway, so I'd spent a bit of time talking about how our brains work. Phil Nash did a terrific session on a grab-bag of neuro-linguistic programming and cognitive psychology techniques. Identifying focus, how to trigger states of mind, speed reading, and so on. It was great, really enjoyable. In his endnote Dan Saks, one of C++'s bigger brains, talked about truthiness. Of course the term truthiness was coined as part of a satirical attack on Republicans in general and President Bush in particular, but it does capture quite an important idea - that people will prefer the to following their feeling about something over the objective reality. Saks illustrated this with examples from his congressional election campaign, and a discussion about the preferable placing of the C++ const keyword. He made an interesting and important point I think, and it's a shame the following discussion focussed rather tightly on const rather than on the significance of his argument on programming in the round.
Enthused by all this brain talk, I ordered the first two pop-sci cognitive psychology books I could think of; Mind Hacks and Mind Performance Hacks. The former is about how the brain works, while the latter is about using your own brain better. Mind Hacks is enjoyable and easy reading. I took over some code which was originally, I believe, co-written by one of the Mind Hacks co-authors. I like the book better :)
For some reason, two Christmases later he followed that with a double-whammy for my brother and I - an Acorn Electron, and an Amstrad CPC464 respectively. Do the 'math' on that one.
I hit a low point some months after that by buying an surplus-stock end-of-line Color Genie for £40, thinking in some bizarre way that I could interface its (slightly) better graphics and 3-channel sound with the Speccy. Needless to say this was a stillborn project.
Still, went on to lash a SpecDrum synth, 8bit sound sampler and centronics printer interface to the back of the Speccy - AT THE SAME TIME!! Remember the smell the Speccy made? And the swarm of bees noise as it went about its business? Well, with this lot on the back, the smell got decidedly worse, and the bees turned into hornets.
Fun? Hmmmm, maybe. 25 years later I can't help but remember my racing bike serenely rusting away in the back garden while all this was going on.
It is extremely, let me repeat extremely, important that your code generator should include the name of the source file or files as part of the Don't edit this, it's generated warning at the top of the output.
By way of a negative example, this
is woefully inadequate.
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated> //------------------------------------------------------------------------------
// This source code was auto-generated by Microsoft.VSDesigner, Version 2.0.50727.42.
Still struggling with physical side effects of the conference. It's something of a cliche to say so, but there's quite a lot of late night drinking and general carousing. It's to be expected really - it's a bit like a family Christmas (but a family that really likes each other). Often it's the only time people see each other from one year to the next. There's a lot of catching up to do, not to mention all the new people to meet. Pete and I long ago realised that many people went to comic conventions to meet and drink, rather than to fill gaps in their run of Simonson Thor's. The ACCU conference has a similar social buzz. This year, though, was even more boozy than most.
Large-Scale C++ Software Design by John Lakos is one of the early classic books on C++. It was among the first, if not the first, to really address the difficulties that arise when working on large code bases. It provides a variety of solutions to those problems and the trade-offs between them. Much of what it talks about applies beyond C++, but at the time Java and C# were but a twinkle in their corporate sponsors' eye. The book remains relevant, some 11 years after publication, and really has no serious competitor. It is, without a doubt, an important book and if you work with C++ or large systems then you should have read it. It is, however, as dry as dust and I found it very hard work. Canvassing suggests I am not alone.
John Lakos spoke at accu2007. The mental model I had of a tall-ish, quiet, perhaps slightly shy academic were exploded when I realised the scurrying, ebullient, pugnacious even, New Yorker who kept buying drinks was Lakos. Smartly dressed, combative in conversation, fiercely clever, seemingly indefatigable, Lakos was one of the surprise hits of the conference.
As he bought another round at 4am on Saturday, he declared "I love this conference. This is great". Hope he comes again.
Ah, John Lakos... He seems keen to come back, and I'm sure the hotel hope he (and more importantly his expense account) does too.
After drinking far too much of his tequila the previous night, I escaped to bed (relatively) early on Friday. I did wake up around 6am Saturday morning, and wandered through to reception out of curiosity.... yes, Lakos was STILL GOING, bottle of tequila on the table before him, holding a serious and surprising cogent debate on value semantics with a fading Jonathan Wakely. I went straight back to bed for another couple of hours.
I was really looking forward to meeting him so when he sat opposite my at Pizza Express I was in awe. Then I realized that Kevlin was next to him and not only had Kevlin met his vocal match but that the two of them were disagreeing on some finer point of C++. I quickly concluded that for me the chances of speaking the demi-god were decidedly slim so I did the honorable thing and left.
Spent Sunday as basically a vegetable, been back at work two days, brain is still buzzing from accu2007. As part of my initial decompression, I've updated and corrected the slides from my presentation on Java Iterators. While I was talking about Java and the Java libraries in particular, you can apply what I said to .NET Enumerators and, perhaps, Python iterators (although you might be considered to be writing Python in a bit of a funny way). I thought it went well, and I had some people there who I hadn't expected and was quite flattered they'd come. To be honest I would have liked a few more, but the programme this year was so, so strong I should probably consider myself lucky to have had anyone.
For these slides, I've added syntax highlighting on the code (woo!), added a couple clarifying bit to the notes, and corrected some code. It was pointed out to me by someone who's name I neglected to take that one of my code samples didn't work as advertised, so I've fixed it. It was a good catch too, because I didn't leave it hanging around on display for very long. Thanks to him, anyway.
Daniel was invited to one of his classmate's birthday party today, a swimming party at Moseley Road Pool. Natalie had volunteered me to go in the water to help keep the child/adult ratio on the right side of legal.
"You don't have to stay while they're having their party food", she told me. "You could pop into the city centre and go to Nostalgia or something." I couldn't really believe what I was hearing. Natalie was inviting me to go to the comic shop, with the clear implication that I should spend money there. I can't remember Natalie ever refering to a comic shop by name before, let alone virtually instruct me inside. Clearly our marriage is entering some new and mysterious phase.
I played it cool. "I could ..."
Having seen Daniel and chums safely installed with party nosh, I hopped on my bike and sprinted down to Nosties to score the latest in graphic literature. To my surprise and delight, Bryan Talbot was there signing copies of his new book Alice in Sunderland. So I bought a copy. It would have been rude not to. "I hope you enjoy it", he said quietly as he signed the flyleaf.
One does not rattle through a 300+ comic page in an afternoon, especially while the cricket's on, and you have your first-born looking for assistance with a computer game. I did flick and feel though. It's a handsome package. Large, heavy, solid in the hand, with a wild collection of art styles, colour, black & white, collage, paint. It looks great, and I'm really looking forward to reading it.
The book's reference credits include Andy Kronky Kru's Obadiah Oldbuck essay on BugPowder. While Andy's vast collection of pages caused Pete and I some exasperation back when, it's a significant and important body of work. I'm glad Pete offered Andy the space, and I'm happy to pay for hosting (although given the pathetic weakness of the US dollar at the moment, I can't pretend that's any kind of hardship).
Because I should be working, I did something else instead. Here's a map of Moseley & Kings Heath, Acocks Green, Springfield, Sparkhill wards. I've plotted where each election candidate lives. Each ward has one candidate who lives way out of the ward. Can you guess which party's candidate?
I do hope that if anybody does actually get canvassed by any of the BNP that they regale them with "You're not from round here though are you" and "Go back to where you belong"
Uploaded the slides for my talk Find the utility in a
java.util.Iterator which I'm presenting at the ACCU Conference a week on Wednesday afternoon. My speaker notes are in there too, so it should make some kind of sense, and any suggestions are welcome.
Going through it again now it seems to be awfully code heavy, although that was part of the point. I'm hoping my cheerily enthusiastic and hand-wavey delivery will illuminate rather than obscure, and thus compensate for the lack of on-screen action. I could still work in some pictures, I guess.
|<< March 2007||May 2007 >>|