| JezUK Ltd - The Coffee Grounds - October 2011 |
| << September 2011 | November 2011 >> |
Back in the mists of time, before we called the internet the internet, before we even called it the Internet, I started using the what-would-become-the-internet in October 1987. Unsurprisingly, I was at university and initially I used it mainly to email my friends. Gradually, although I don't remember quite how, my use widened over the next couple of years to include things like playing MUDs - one of the early AberMUD instances (quite possibly the one at Aberystwyth itself) and a MOO in, I think, Manchester. I was a member, and later a moderator or editor or whatever it was called, on the Unaccess system at Bradford, and I'm fairly sure I did something or other on the Tardis up in Edinburgh. Back then you had to know network addresses, protocols, gateways, and all sorts. On the otherhand, things were small enough that if you emailed the postmaster account somewhere, you stood a better than average chance of getting a reply. Indeed, it was just such an email to postmaster@uk.ac.hull (look at the crazy backwards address!) that lead to my chum Andy and I have two rather lovely trips to Trinity College for the Leprecon games convention.
After I left Hull, I went to work at the Open University. The Open University is a great place to work, because it's a university campus but without students cluttering up the place. We used to play cricket at lunchtimes in the summer. We had the not-quite-called-the-internet there too. Gopher, via the medium Archie and Veronica, was the thing for a while. I had a brief email exchange with Bruce Sterling. I remember telnetting into CERN to have play with something called the World Wide Web, but being slightly non-plussed because the console-mode browser seemed to be just like an internal system we had on the VAX cluster. Shortly afterwards, NCSA Mosiac appeared on the Macs in the computer centre, adding lots of slow-to-load pictures to and exposing some of the innards of the Web, as we didn't yet call it. It was then I realised that the WWW wasn't anything like the thing on the VAXes at all - links could go from one computer to another somewhere else, and underneath it was all just text. Anyone could do it. Got a bit excited by that.
Back then, you could feel the rhythms of the network. At Hull, things were slower during the day while classes were running and people were in the computer centre. While I was the Open University, you'd notice your connection to Northern Lights slow down in the afternoon as the Americans woke up. There was also the October effect. Every autumn, new students arrived at University, got their network credentials, and started to flap around the place. Initially you saw it in October, then as the various networks around the world became more interconnected, it moved into September when the US university terms start. New posters would appear on Usenet, bullentin boards, mailing lists, and so on, asking silly questions, being rude, and giving themselves ridiculous handles. Things would settle down quite quickly though, until in 1993 AOL gave Usenet access to its previously closeted users and we began to live in the September that never ended. That's an exageration obviously, but it took longer than a little while for the effects of AOL opening up, commericial dial-up, and what-not through to widespread domestic broadband and mobile connectivity to work themselves through. To some extent, we all still are but we now longer experience that disruptive mass influx in the regular way we used to.
In these modern times everyone is on the internet all the time and there are nice places and there are silly places and there are unpleasant places. I spent the majority of my interacting-with-other-people-on-the-internet time on Twitter, but I do poke around in a few other places too. I like my internet. It's nice.
So last Sunday evening I was sitting in my attic with three balloons, about to go to bed, when my cheerful bear-like code-friend Olve tweeted
Just submitted my proposals to ACCU 2012. Only 35 minutes till submission dateline so hurry up. #accu2012
So I didn't go to bed. I created a new Bazaar repository, fired up Emacs, and started typing. To my mild alarm, the ACCU submission procedure this year is all through the web, rather than by emailing in and I almost blew it by misreading the sign up form and having to fill it in again. I hit Submit and read
Thank you for your submission. You may revise your abstract until the submission deadline in 28 seconds.I passed on the option to revise and just went with it :)
Jenkins is a widely used and extremely capable continuous integration server. While it's been available since 2007, under its original name of Hudson, its popularity seems to have really taken off in the past year or so. One of the primary reasons for its success is its extremely flexible configuration. Jenkins has a quite a small core, with most of its functionality provided through plugins. Jenkins' plugins provide access to different source code control systems, a wide variety of build tools, test result tracking and charting, static analysis tools, and so on. Nearly every aspect of Jenkins can be customised via a plugin. At time of writing there are over 400 different Jenkins plugins available.
Four hundred is too few.
Over the past two years, we've gone from dabbling with CI to Jenkins forming part of our core toolset. Jenkins builds on checkin, yes, but also deploys builds into development environments. It runs performances tests and records the history. It tells us which build contains which bug fixes. It also does our release builds - tagging the repository, building from the tag, writes release notes telling us which work packs have been updated, pushes the build up onto the live server, and emails Ops to say everything is ready to go. The standard plugins provide the foundation, but our own plugins have put Jenkins at the heart of our development process.
If you want to get the most from Jenkins, you really should write your own plugins. This session will explain why you should, what you can change or add to Jenkins, and how to do it.
My comics-chum Richard recently reviewed comics biography of bongo playing physics genius Richard Feynman, declaring it to be 'simply a perfect distillation of everything you need to know about the man'. Our chum-in-common Pete had preemptively disagreed, finding it to be essentially an extended version of author Ottaviani's earlier Two-Fisted Science comics and, packaged in its a fancy hardback binding, providing insufficient ompf for the money. Curiously, although I didn't question it at the time, this lead him to offer the book, via me, to Daniel. It's an ok book but not one to keep on the shelf, perhaps? I said yes, dropped the book on Daniel's desk saying 'Pete left this for you' and left him to it.
This evening, I've stepped on three separate bent up paperclips - two in Daniel's room, one the stairs. I inquired as to why there were bent paperclips all over the place. Daniel replied he was trying to teach himself to pick locks, and I immediately knew that regardless of what Pete or Richard might think Daniel's really enjoying the book.
As my friends kids are growing up I'm noticing I'm thinking about stuff to lend / give them to read, hence Bone for the (quite awesome if you've not met them) kids of Marty and Sas.
That aside, I'm dead chuffed Daniel's identifying with Feynman. ;) [added 14th Oct 2011]
nope, I stand by what I said. Perfect distillation of the man works for me. Then again, I haven't read the Two-Fisted Science comics, so what the hell do I know.
One thing it has made me do is dip back into Feynamn's books, and re-read Gleick's excellent bio again. I think what I tried to get across in the review was that Feynman junkies like myself would pounce on this as merely a new way of putting forth a picture of Feynman, using all the stories and anecdotes we practically know by wrote.
But it did so in a new way, and I still think pictures and Feynman go together so well.
And I'm glad Daniel's enjoying the book.
And comics chum? I quite like that. [added 15th Oct 2011]
On Tuesday night I saw a fox in Fox Hollies. At the same time I also saw some holly. I lived in Bearwood, which has many trees, for several years but never spotted a bear.
On the bike, follow a car turning left on Wake Green Road as two cars peel out of the queue opposite and turn right. Car in front is immediately turning right, as am I. We stop and wait for someone to let us through.
A horn sounds behind. I look back. Driver of Audi pokes his head of the window and says "Did you even look before you pulled out in front of me?" I have no idea what he's talking about. A gap opens, car in front moves off, I follow. Disgrunted Audi driver drives on, saying something about fucking cyclists.
When he first spoke to me, I assumed he meant he was on the Wake Green Road and that I'd pulled out in front of him. Thinking back I realise that he was behind me in the queue waiting to turn left. What he's objecting to is simply that I was in front of him. Or that anyone was in front of him. I mean he drives that expensive Audi, gunning the engine and accelerating hard to make sure everybody turns round to look at it. No doubt I was just one in a long line of idiots who's sole task that morning was to get in his frightfully important way and hold him up.
Why do some car drivers rage out of their windows at cyclists? Because they can.
Harry hauled one of his baby teeth out last night. It was on the way, but he decided it should be hurried along. He stashed it, wrapped in a bloody tissue, under his pillow, as you do. Come time for me to don my fairy wings and swap it for a quid, confounded by lack of specie. Or of specific specie anyway. I don't think he'd have been in impressed by a pile of 2ps spilling out from under his pillow. Franticly ransacking the house at midnight, finally found one lurking at the back of the keys-and-that-kind-of-thing drawer in the kitchen, but came damn close to stealing one from Harry's own moneybox.
I only know the word specie because I've been reading Neal Stephenson. And yes, I would have replaced it pretty sharpish because he'd be guaranteed to notice if I hadn't. Finally, swapping a tooth for a pound always provokes wild stories about friends of friends, or in other classes at school, who get five or even ten pounds per tooth. I smile indulgently and say "oh, really".
On the school run a few days ago, Daniel and I had an pretty unpleasant cyclist/driver interface incident. Once I'd got home, I banged off an email to the local neighbourhood police officer. Top tip for public bodies - if you're not going to respond to emails, or even acknowledge them, don't publish an email address.
Since the driver in question was a private hire driver, I also banged off an email to the Council's Licensing Section. Top tip for people who drive for a living - in an age when everybody totes a mobile phone taking down your registration number and company details is ridiculously easy, and if you drive like a tosser people will notice. Bonus top tip for any driver - never tell a cyclist they should be in the cycle path even if (and this is pretty unlikely) there is a cycle path.
Anyway I banged off this email, got an automated response saying they'd respond within however many working days and, somewhat to my surprise, they did. I had a quite a fun conversation with a very cheery Enforcement Officer. The formalities mean they need a signed statement, so after confirming a couple of details, I got a copy of my email posted back to me. This evening, after having had my signature witnessed (how thoroughly 19th century), I lobbed it back in the post.
On receipt of your signed statement I will arrange to discuss the matter directly with the private hire driver concerned and I will keep you advised of any actions taken.
It might be rather petty of me, but this pleases me a great deal.
As I've observed before, being a programmer is a little bit (but only a little bit) like being a copper - you're never off duty. Consequently, you probably won't be at all surprised to hear the I was prevailed upon to set up our swimming club website. If you're a programmer yourself, you know what comes next. "Setting up the website" turns into "running the website". Well, that's ok, because it only takes a few minutes every know and then. I've learned a bit about WordPress and confirmed my opinion that PHP is an abomination.
Since Natalie is the club fixtures secretary, she spends a lot of time filling in or checking the times on entry forms for swimming galas and league meets. Swim times are very important - you might not be able to swim in a particular gala if you're too slow, but you might not be able to swim in another because you're too quick. Swimmer's personal bests change all the time but the kids and their parents aren't always very good at keeping track of them. So, alongside the website, I was prevailed upon to put together a swim times database. All the kids, all the times, which stroke, when they swam it, where they swam it, and so on. Quite good fun actually, and I learned a bit about Django and confirmed my opinion that the most irritating thing about Python is not its significant whitespace but the wart that is the trailing colon. (Do not be alarmed if that last sentence makes no sense.)
Generally, when you're filling in your entry form where it says, say, 200m freestyle, you just pop your 200m freestyle time in the box. Makes sense, right? Well, no, because you might have two personal bests for that distance and stroke, one swum in a 25m pool and one swum in a 50m pool. More often than not, the 25m time will be quicker. That's because you will have made more turns, and each time you turn you push off the wall. You also spend more time in a proper streamline position. But, what if your 50m time is quicker? Do you just stick that it in instead? Well, no. If you could swim that fast in a 50m pool, you could swim even quicker in a 25m pool. Your 50m time would be misleading - you might not even qualify for the gala, or if you do you might end up in the wrong heat swimming with people who are slower than you.
To solve this problem, the ASA ran a detailed statistical analysis of swimmers' times and produced a big pile of performance tables. A sort of Duckworth-Lewis method for swimming, but without the catchy name. Armed with your 50m time, you can read down the tables and find your 200m breast stroke time of 03:26.48 translates to a short course time of 03:23.90. So you do that, and everyone's happy.
But checking a pile of tables is kind of tedious when you've 30 entry forms to verify, each with eight or nines times on them. And if you have a database of all the times already, and your husband's a programmer, you can ask him to get the software to do it for you, right? (Actually, it was the other way around. I said I could get the software to do that, and Natalie was genuinely-mouth-fall-open-'you can do that?'-amazed.)
So that's what I've been doing this evening, working from a description of the conversion algorithm provided on the ASA website. As a little 5 minute exercise, try reading it through and see if you can work out what you need to do for the straightforward case of converting a time recorded in a 50m pool to the equivalent time in a 25m pool.
| << September 2011 | November 2011 >> |