There’s always a moment, in a perfect tragedy, where you dare to hope that maybe the heroes are going to break the surface tension of the plot and escape. That perfect moment in Romeo and Juliet where, no matter how often you’ve seen it, you hope that this time, Juliet’s message will reach Romeo. Or, when watching Cruel Intentions, you find yourself hoping that the writers have managed to wangle a happy ending.
In which I grumble about JavaScript’s dodgy scoping (more or less solved by let
in modern JavaScript.)
I am not a rock star. I am a computer programmer. I think I’m quite a good one.
You are not a rock star either.
387,000 matches to that query. Can we all just… I don’t know… grow up please?
Remember the good old days? The days before Google? The days before
Altavista? The days when a 14k4bps modem was fast? Did I say good old
days?
In those days, the web had to be discoverable ‘cos it sure as hell
wasn’t searchable. The big, big enabling technology of the web was the
humble <a href='http://somewhereelse.com'>Go somewhere else</a>
.
Placing the links right there in the body of the document turned out to
be exactly the right thing to do.
And it continues to be the right thing to do. Consider the two pieces of
YAML below the fold.
Recently I’ve been thinking about the way that patterns on different scales interact with each other. If you read Christopher Alexander’s A Pattern Language, the first pattern in the book is Independent Regions, which are talked about within the context of a World Government, so it seems like a huge pattern. And it is, sort of, but it’s scale invariant - it applies at the level of countries, but it also applies to states, cities, neighbourhoods, streets, houses and arguably even rooms within those houses.
At work, we’re looking at adding the Atom Publishing Protocol in a few places where it makes sense. APP’s got a lot going for it - the spec is a great example of how to design a Resourceful API and is worth reading even if it’s not an immediately good fit for your application.
Martin Fowler is writing a book about Domain Specific Languages and, because you could never accuse Martin of a lack of ambition, he’s trying to write it in a reasonably (implementation) language agnostic fashion.
I’ve been busily adding AJAX features to the work website, and I got bored of writing Form handlers. I got especially bored of attaching similar form handlers to lots of different forms on a page, so I came up with something I could attach to document.body
and then plug in handlers for different form types as I wrote them.
… timing. You either have it or you don’t.
Does this count as good timing?
- Finish up some improvements to the way Typo sweeps cached pages
- Announce Typo 5.0
- Go down with a horrible cough and cold that leaves you exhausted and incapable of hacking
- Discover that the ‘improvements’ in Typo’s cache sweeping can, occasionally, cause it to wipe the entire Typo installation directory
- Stagger out of bed. Attempt to fix problem
- Release Typo 5.0.1
- Discover that the fix doesn’t work
- Bleargh!
- Let your co-maintainer deal with the fall out before releasing Typo 5.0.2 which does fix the cache sweeper
- We hope
- Recover enough to write a blog entry
Okay folks, Typo 5.0.2 is out and it appears to be working. I’m running it here, and I’ve had no problems so far. I’ve still got the cold, but it’s nowhere near as horrible as it was (went to bed at 5pm on New Year’s Eve, woke up at 11am on New Years Day - first time I’ve missed the turning of the year in ages).
Right, we’ve cut a Typo 5 gem and it’s on rubyforge and heading to various mirrors I hope. Frédèric’s writing the release notification which will be appearing on Typosphere Real Soon Now.
So, if you’ve been watching the Typo tree, you’ll see there’s been a fair amount of activity on it since Rails 2.0 got released. There’s a new default theme replacing the rather creaky ‘azure’, and a fair amount of work on getting our code compatible with the current state of Rails. As we work on this, it becomes apparent that Typo’s code is getting horribly brittle. I have said before that there’s been several places where we’ve zigged before Rails zagged, and we’re paying the price for that. It doesn’t help that our test coverage is distinctly ropy either - and I’m probably guiltier than most for letting things get into that state.
Here’s a problem I first came across when I was about 13 and helping do the stock check at the family firm. The parts department kept all their various spare parts racks of parts bins. Each bin was ’numbered’ with an alphanumeric id. We had printouts of all the bin numbers along with their expected contents and we’d go along the racks counting the bins’ contents and checking them off against the print out. What confused me at the time was the way the printouts were organized. Instead of the obvious ordering, “A1, A2, A3, …, A99”, the lists were ordered like “A1, A10, A11, …, A2, A20, A21, …”. After a bit of thought I realised that the computer was sorting the numeric bits of the bin numbers as if they were just sequences of strange letters. A bit more thought made me realise why, post computerisation, people were starting to use bin numbers like “A01, A02, …”. Computers were more important than people so, in order to make sorting things easier, just add spurious leading 0s to make the number field a fixed width and Robert’s your parent’s brother.
Worrying about test coverage when you’re doing Test- or Behaviour-driven development is like worrying about the price of fish in Zimbabwe when you’re flying a kite.
Has anyone written an Atompub client in JavaScript yet?
Do you have a PC, Xbox 360 or anything else that will run the Valve Orange Box? If so, get hold of a copy and fire up the Portal subgame.