• "Modli warned his listeners to be ready with their cassette recorders, then waited to see the response after he played the screeching and wailing tape into the ether. Soon he began receiving excited calls from his audience, who said they'd been able to load the program – a routine called 'Paginator' – onto their computers. But not everyone was impressed, notably the station heads. "They thought it was a scandalous event!" says Modli. "I had a big problem explaining to them that it was a revolution in radio and they should be proud."" Lovely piece of reporting, with some great tidbits, about Yugoslavia's own little z80 kit-computer from the early 80s.
  • "…your equivalent to a computer looking up data from a chip is remembering a fact from your own brain. Your equivalent to a computer looking up data from a disk is fetching that fact from Pluto. Computers live in a world of commonplace interactions not the size of a house, like us, but the Solar System. On their own terms, they are long, long lived, and vast."
  • "I’ve mentioned before that I get the ’so how come you like games’ question pretty regularly, and don’t have a particularly cogent answer, beyond ‘because they’re awesome’ and some stuff about the funny quizzes my brother used to write for me in Basic. But one key component was an amazing pop-up book about computers that made it perfectly clear that they were the most exotic, powerful and fascinating things ever made and that, if at all possible, I’d quite like to grow up inside one." Turns out Margaret owned *that* pop-up book.
  • Brandon on a genuine piece of interactive TV programming – Endemol's live 360 version of 1 vs 100, coinciding with the broadcast of the show in Canada. This sort of thing is always a nightmare, so impressive to see it working so well.
  • "In the 14 months since [TeamFortress 2] shipped, the PC version of the game has seen 63 updates – “that’s the frequency you want to be providing updates to your customers,” [Newell] adds. “You want to say, ‘We’ll get back to you every week. The degree to which you can engage your customer base in creating value for your other players” is key, says Newell. “When people say interesting or intelligent things about your product, it will translate directly into incremental revenue for the content provider.”" Great write-up from Chris Remo of Gabe Newell's DICE talk.
  • "This is a sort of thorough, empirical, sociological study of art students at two British art schools at a very interesting moment, the late 1960s (a moment when, as the book says, anti-art became the approved art, bringing all sorts of paradoxes to the fore). I find it fascinating that such a subjective thing as developing an art practice can be studied so objectively, but then I find it amazing that art can be taught at all. The book shows the tutors and students circling each other with wariness, coolness, misunderstanding, despair, appreciation." Some great anecdotes and observation.
  • "Busker Du (dial-up) is a recording service for buskers through the telephone (preferably public payphones hidden in subway stations). Audio recorded will be posted to this audio-blog and made available to all who cherish lo-fi original music. Try it out at your favorite subway station or street corner." Dial-A-Song comes full circle.
  • "Poole – HAL 9000 is a fictional chess game in the movie 2001: A Space Odyssey. In the movie, the astronaut Frank Poole is seen playing chess with the HAL 9000 supercomputer… The director Stanley Kubrick was a passionate chess player, so unlike many chess scenes shown in other films, the position and analysis actually makes sense. The actual game seems to come from Roesch – Schlage, Hamburg 1910, a tournament game between two lesser-known masters."
  • Lovely demo – some interesting interfaces that feel quicker than current alternatives, as well as experimental ones that, whilst slower and clumsier, represent information a bit better. I mainly like the form-factor, though – but what's the unit cost? These things get a lot better the more you have.
  • "Something like: Trying to create a reading list that gives the best introduction to everything. This may change." Phil is trying to collect the Good Books in many fields. It's an interesting project, for sure; it'll also be interesting to see how it pans out.
  • I was a little excited from the ongoing Offworld love in, but Oli Welsh's review suddenly makes me insanely excited about Keita Takahashi's new plaything. Why is it that all the reasons for me wanting a £300 PS3 are £3 PSN titles?
  • "…the biggest consequence [of a universal micro-USB adaptor] will be the ease of transferring data/content from street service provider to consumer, and consumer to consumer… There is a place at the edges of the internet where the level of friction makes content and data grind to a halt. It's largely unregulated. And it just got seriously lubed."
  • "30 Second Hero is an action RPG which consists of really short battles that require no interaction, as players race against the clock to save the kingdom from an evil wizard's wrath. As indicated by the title, you only have thirty seconds to level up your character sufficiently for the final battle, although additional time can be bought from the castle at the cost of a hundred gold pieces per increment of ten seconds." Hectic; the entire early JRPG genre (FF1, et al) condensed into a minute-long rush. Grinding as poetry.
  • "I was convinced that it was a spoof. As if there’d be a genre called Donk. Everything is wrong about the video. The knowing subtitles over subtle Northern Accents. The presenter’s slight grin when he’s chatting to folk. The funnily named shops. Everything. There’s no way I’m falling for a prank like that. It reminds me heavily of the episode of Brass Eye where they whang on about Cake (the made up drug). And all the characters and the interviews look like they could be setups or clever edits." But no, it's real. Iain Tait discovers Donk.
  • "…with that sad note from Sarinee Achavanuntakul, one of the most enduring (if illegal) tributes to gaming history came to an end." Home of the Underdogs is no more; just gone, like that. It wasn't that it had the best games or the worst games, or that they were illegal, or free; it was history, and childhood, and the smell of cardboard and boot disks, all wrapped up in one giant cathedral to Good Old Games. Most things I played on my old DOS machine were there. A shame; I hope they're elsewhere. This is why we need proper game archives.
  • Tweaking a game five months after launch to make it both more playable, and also more realistic; understanding that realism is key to NHL09 fans, and delivering on that as an ongoing promise.
  • "Warcraft’s success has always been substantially due to the extraordinary physicality of Azeroth, to the real sense of land transversed, of caves discovered, and of secrets shared. Players old and new bemoan the endless trudging that low-level travel requires, but it’s crucial for binding you to the world." Yes. Despite QuestHelper, I'm always in awe of the new areas. I just wish more people were playing the game as slowly and badly as me. Another beautiful One More Go, and one that resonates a lot right now.

Learning to Think Like A Programmer

22 January 2009

Charles Arthur recently wrote that if [he] had one piece of advice to a journalist starting out now, it would be: learn to code.

I understand the point he’s making, but I think there’s a further degree of subtlety to the argument. After all, learning to code is hard. Learning to glue together bits of scripts, and later bash your way into scripting langauges really is useful, but even that isn’t easy. It requires you to learn to translate intent into code, to know what’s possible, to know what’s easy and what’s hard, and to know what to do when third-party things you’re glueing together don’t work.

In short: it’s really easy to make a mess, and a mess that was difficult and stressful at that.

So my advice would be somewhat different, and apply to both those journalists who find code easy, and those who find it impossible:

Learn to think like a programmer.

What’s really important is to not understand how to do magical things with code, but to learn what magical things are possible, what the necessary inputs for that magic are, and who to ask to do it.

Identify the repetitive tasks that computers are good at. Yes, they’re good at find-and-replace, but tools like regular expressions are even handier, and I’m amazed how few people understand that find-and-replace is the beginning, not the end, of text processing. (And yes, I’m aware that regex are a quick way to give yourself two problems.)

Computers are really good at processing regular data, and they are really, really good at repetitive tasks. Every time I watched someone in an office doing a repetitive, regular task I despaired, because that’s exactly the kind of thing we have computers for.

You shouldn’t try to build the program that magically automates everything. But you should learn to smell the tasks where computers could help; learn to sniff out the angles on a story that a computer would be a useful tool for.

So that means when you find a table, or a regular data source, you don’t just take a print-out; ask for an Excel file, to convert to CSV, or maybe even a database dump. Even if you can’t do something with it, somebody else can. So the important thing to remember is what a progammer might want to receive.

When you’re gathering data, regularity is important. If you’re using Excel, keep it really simple, and one-column-per-thing, so that later a programmer can do something with the CSV. If you’re gathering textual information, put it in a plain text file, rather than Word; it’ll save you time in the long run.

Also: there are lots of useful tools that are halfway between being a programmer and not, and these are the most interesting spaces for the journalist right now. Simon linked to a bunch of these at the Guardian Hack Day, and it amazed me how many great tools there are for the non-programmer to do programmer-like tasks.

Excel, for starters, is a great environment (if a little limited and esoteric) for starting to explore datasets in a relatively visual way – structured data formats aren’t as immediate to more visual thinkers. Obvious examples include the frankly remarkable DabbleDB and, even though it’s never as useful as I hope it might be, Yahoo Pipes.

These let you exercise programmer-like thinking without needing to be a programmer. And then, when you’ve discovered what it is you want to do, even with the vaguest of prototypes, handing all your information and ideas over to a coder is much easier.

Why? Because you’ve already been thinking like a programmer. You’re handing them thoughts and data in the format they like.

So how do you learn this?

Partly, you have to try a bit of code yourself, but I’d make sure you’re always on the right side of the “understanding what I’m doing” vs “doing neat stuff” seesaw; understanding should be your goal.

Partly, it’s getting handy with a shell. One of the best places to explore what you can do with data is the command line; as well as the true scripting languages, there are tools like grep, sed and awk which can be remarkably powerful. Not entirely user-friendly, I’ll give you, but easier than breaking out a full program.

And partly, it’s relaxing a little and stepping away from the Office suite. Putting your data in formats like CSV, XML, JSON, and plain text doesn’t just make the data more useful to coders; it’ll be more useful for you, when you want to move it around.

I remain convinced there’s an interesting book on “doing smart stuff with computers that isn’t quite programming but isn’t far off”, because let’s face it, most people deal with data all the time now, and have the ideal tool for working with it on their desks. Now they just need to work with it a little.

So whilst this isn’t quite the “learning to code” that Charles speaks of, it’s not far off. And indeed, I think he hits the nail on the head much better in his conclusion:

…nowadays, computers are a sort of primary source too. You’ve got to learn to interrogate them effectively – and quote them meaningfully – too.

That feels about right. You don’t need to be a coder, but you need to be able to interrogate computers meaningfully. Do that how you will.

(As for me? Well, I wanted to be a journalist, but fate didn’t turn that way (although I’ve worked in the media and had a small amount of writing published). I did, however, seem to take to the coding malarkey a little better. I still maintain I’m not really a programmer, and certainly not in the sense that my real-programmer friends are, but evidence sometimes disproves that).