I promised somebody something for COB today and then thought about it afterwards and found it funny. Does business ever close anymore? The person in question was in India, but needs to run things by his boss in America before we can act on it anyway. So between the three time zones I’m not sure that business closes at all!

I’m sure that as a phrase it’s still useful, although now it more often means “you’ll have it before I go home for the night” than “you’ll have it by 5pm when the whistle blows and we go”, but when you’re working across timezones when it actually gets done doesn’t really matter. If I finish the task at 3am that’s still fine, as it will be done when the guys in India come in to work (a couple of hours later).

Bit random, but it tickled me and I thought it might tickle you too.

Interesting article over on the BBC about how even in games, you have to work for money. It’s a good article, if only because it has the line:

“It just seems ironic that our key leisure activity is so fixated with toil and earning, albeit through killing and stealing.”

I never really thought about this before, really. Most games do have some sort of earn/spend activity going on and it’s often fairly essential to the gameplay. Now there’s two ways of thinking of this — both intriguing. Either the game designers were so entrenched in the real world that they couldn’t conceive of a different set of dynamics (even when doing things earns you new weapons, armour, etc, there’s still a earn/receive dynamic), or they used this familiar set of rules to make the gameplay more intuitive to those playing. After all we all earn and spend money to some extent, even the gamers who hardly ever see the light of day.

So what is it? Great use of intuitive design or blind conformance to the rules of the world we live in? Does it matter?

I used to love computer games. From playing Tetris on the computer my dad used to bring home from work sometimes (a x8086 I think…), through to Alley Cat and the original DOS-based Kings Quest games when we finally got our own 286, I spent hours playing. My little brother learnt to read watching me play Kings Quest III over an over again.

Unfortunately though, when I went off to boarding school at the age of 13, my computer access was drastically reduced and so too my playing time. Although I managed to carry on with a few favourites (the various evolutions of Civilization, progressing into Alpha Centauri), on the whole I didn’t get to play much. Once I’d finished school and moved over to the UK, I was too busy working to do much either. Since I moved flat and started living with Elmyra (who has a PS2), I’ve been playing some GTA3, but more than anything this has proven to me that I am _way_ behind in this whole gaming endeavour.

Something has changed all of this. Elly finished her degree a couple of weeks ago. Since she’d done nothing but work, work, work for the last 9 months, I got her a PS2 to fill the free time. And some games. And a dance mat or two. And every other accessory I could find.

So now, we have games. And free weekends, no longer needing to build models or frame things on foamboard. So we play. Hot damn it’s fun!

I can recommend:
Devil May Cry — picked this up for a fiver in the game store and it’s great. Beautiful graphics (yes, I am a bit behind! ;-) ), fun weapons and interesting puzzles. I found it a bit hard to get into at first (some of the puzzles stumped me for a while), but now it’s going it’s great.

Baldur’s Gate, Dark Alliance — this is one of the only games we’ve found that we can happily play together, since we needn’t compete. Not too far in it yet, but it is great so far, particularly since it is so reminiscent of Diablo, which we both loved on PC.

Anyway, best get back to the fighting!

There’s a great Jeffrey Zeldman article up at the moment, seemingly about some designs he did for a job, but if you read on about design being appropriate for the intended use. This is along similar lines to Simon’s previous post about Best Practice, but most interesting to me because it’s from the other direction — Simon is a blatant techie, Zeldman a designer. And as he rightly points out in his article, this distinction is probably not the most useful thing in the world, it is nice to see the often disparate groups agreeing on something for once.

Personally I’m a strong believer in tools and solutions appropriate to the task. I’m the one in design meetings saying things like “Yes, I know that we _can_ do that, but why the hell would the users want it?” and “Of course it would be fun to implement, but surely the time would be better spent making the real tasks less arcane to perform?” I really don’t need a dancing singing midget to help me pick my groceries … but hell, a decent search would be really nice!

As I touched upon previously in my Because We Are Geeks entry, some of the things that make us who we are make us really unsuitable for developing things for normal people. Although my previous paragraph might belie it, I am as likely to sit tinkering with something just to see how it works as the next geek. But I’ve seen mainstream features lacking because the developers were too busy focusing on the cool, fun stuff often enough that I’ve trained myself to be a bit more pragmatic about it. The cool fun stuff can be there, but only once everything else is rocksolid and good. I think this is what both Simon and Zeldman are getting at — we need to get better at delivering the whole picture to great quality first and then focus on our particular areas of interest and specialty.

And we might just make it, if only we didn’t all have N.A.D.D ;-)

Today is the anniversary of the Soweto massacre, where hundreds of people were killed for objecting to the Apartheid government’s policy of forcing children to be schooled in Afrikaans, despite their home language being anything but. The only exception to this was that white, English-speaking children were allowed to be taught in English.

Reports of the events indicate that soldiers and police opened fire on these protesting schoolchildren without warning. Hector Pieterson was the first child to die, but many others staked their lives for a right to be treated as human beings. Join me today in remembering them.

Tim Bray has a great rant up, all about how fantastic test driven development is. It’s a good article and I hope it circulates — given his readership I’m sure it would. Over at Kryogenix, there’s a question as to whether people are actually actively using it. Well I have and I believe in it, so I thought I’d do a bit of a testimonial post.

In my second year of university (not that long ago), we had an entire unit that consisted of a software engineering project. We had to use the lecturer as our “average user”, conduct interviews to get the requirements and then basically go and build an online personal organiser, according to what we had gleaned from conversations with him. It was a good project, but only a part of the course and so getting 4 students to work together, cohesively and sensibly to produce the damn thing was quite a task.

One thing that we found did really work was the use of testing. The project was LAMP, so after the fairly illuminating lectures about unit testing, integration testing, system testing and then user testing, we set out to put it all into practice. We read this Harry Fuecks tutorial and adopted the Eclipse PHPUnit library. For every class we created in the design, we also created a number of tests for it. And we wrote the tests for PHPUnit often before the code itself.

Sounds like a lot of hassle? Well, it certainly takes getting used to. Writing test scripts is as much an art as writing the actual code. But it was worth it in the end — for one thing we were able to check by going to one webpage that everything in our system was working before the demo to the lecturer! ;-)
But the real value in this approach to development? It ensures that you are testing for the functionality you planned, throughout. If you write the tests when you design the system, then you’re definitely testing for what it ought to do, rather than what often happens where someone bodges some code, works on it and eventually changes its purpose, so a requirement is lost and the test (written post implementation) of course returns OK because it is testing that what is there works … not that what is there is the right thing and works.

And for me that’s the real benefit of TDD — it makes sure that I build the right thing and that it works.

Simon has a fantastic post up at the moment, all about embracing best practice for web development, rather than just continuing to evangelize about standards in isolation. I think this is great, both that he’s trying to get us all to move on the “other pieces of the puzzle” and that we are in a position to do now though. Let’s face it, most people we are going to reach for now have been reached … all the rest will rock up when they suddenly realise (3 years late, as corporations do) that the tech has moved on and they need to catch up.

The rest of the spectrum is ripe for development though — and the best way to really get people on board. The real progress with web standards was made when we could show them the benefits — engage on an emotional as well as practical level. When you’re looking at the total website and engaging them on how to make the whole damn thing fantastic, then people are going to get excited … and if we present the whole package, then they are less likely to make web standards conspicous by omission.

I’ve been piloting a similar approach at work recently as well, looking at how to present training in terms of work processes and helping people do their jobs better, rather than isolated training on a particular system or intervention. So far it’s gone down a treat and people are now living the intended vision of the systems that were previously the bane of their lives.

As some famous dude said, most real breakthroughs are to be founds in the interfaces and borders of our sciences, rather than in our core, safe working areas. [Who said this? Answers on the back of a postcard please…]

A Microsoft blogger, Matt Warren, has a great piece entitled Programming in the Brain, describing how he reads code.

It’s a beautifully written piece — go on, go read it if you haven’t yet. What strikes me most here is that what he describes isn’t detailed understanding, dissection of code. He’s just reading it.

Now, firstly, I’m so glad that someone else admits to doing this. To seeing code as art, as a map, as a story. Personally this is how I approach code — I can always delve into the details, manual in hand, to work out exact what is going on. But what I really want is the sense of what’s going on. To take 2 steps back and see the design. See the what, not the how.

This is what we should be thinking of when writing and documenting code. Think of the people who will come after you and only want to change one thing, or fix one problem. Help them read your code as a design, so they can tinker where they want, improve what they need to. Make it beautiful. If we all did a bit more on this, we’d all have more time to create as maintaining and using existing work would be so much easier.

Unfortunately due to a long time with no entries and my laptop and its hibernation mode being a bit flaky, I’ve lost the sources for many of these links. Attribution included when I still have it:

  • Weblogs and authority takes an interesting look at the differences between top-level subscription and actual linking to detail
  • Quality Register article about memory sticks — and a new system which looks to be basically “your life on a stick”. Given the amount I move around, this would be fantastic, if I could get it to work on all the various computers I use…
  • A robot that irons your clothes — I love the different approach they’ve taken to the problem here — via Slashdot
  • Sony have killed the Clie, so it looks like we’re back on the mobile phone + lots of stuff route again
  • Combating rising fuel prices — great ideas here
  • Sun reckons hardware will soon be free, in a “take an integrated approach, sell hardware, software & services as a package” kind of way; via Slashdot
  • Geek DIY — for those days when you just really don’t have enough to do
  • Some great, detailed and most importantly quantified results of the ROI of using web standards — exactly what we need to take to developers and companies to prove that the right thing to do is, well, the right thing to do
  • A couple of fantastic inventions for getting water to communities that need it. I love this sort of thing — energy that is naturally expended being caught and put to work, with no extra work for anyone. Now that’s smart
  • Wired article on geek chef Alton Brown — interesting approach to the why of food, with the quality description of his show as “a cross between Julia Child’s Kitchen Wisdom and MacGyver”. He has a great blog too
  • Cool new pill boxes that are kiddy-proof without being oldie-proof. And pretty too!
  • Simon’s 15 mins — well, the first 15 anyway ;-) He’s become a lot more eloquent in the time I’ve known him, but I still think you have to encounter his hand-waving enthusiasm first-hand to really _get_ Si. As one of those people whose eyes lit up over the tabbed browsing in Firefox he refers to, I should know ;-)

Simon has a great post up about a new service, TheyWorkForYou. Essentially this helps you track your MP, what they say in the House of Commons and generally how well they are representing you.

Firstly, this strikes me as an amazing site, a great service and a real “changing the game” way of applying technology. Secondly, it occurs to me that this is what the US is missing … and really really needs.

Now, don’t get me wrong — I’m sure we have politicians affected by special interests in the UK as well. But I really don’t think the issue is anywhere near as endemic or as problematic as in the US. Can you imagine if you could see every vote your elected representatives had ever cast? Not just in the papers when one party is trying to spindoctor against another, but every vote … easily, quickly and in an RSS feed to tell you when your rep has spoken?

Everyone thought Dean had created a revolution with his use of the internet — but maybe that was just the taster and this is the killer app.