12 May 2013
Back to Playable City – Muncaster – this week. I spend a few days with Sam at Pan, really honing down the conversation mechanic and making sure the design supports everything we hoped it would. And then, for the second half of that work, focusing on getting a working implementation for playtests next week.
Conversation-systems – as I have learned many a time, most notably in Havasu – inevitably turn out to be messy tangles of procedural code, so it’s worth working hard to keep the codebase as sane as I can. That tends to involve drawing lots of flowcharts, documenting not only the expected routes through the system, but also the way the software implements those – which for various reasons isn’t always the same. It’s a good, visual way to make sure I don’t get lost in a maze of my own making.
On Wednesday, I went to Telefonica Digital to give a short talk about data visualisation at an internal hackday. That was a good excuse to do some new thinking, and I’m pleased with the new talk that emerged; some useful ideas to continue to think on, and which will no doubt feed into future talks. Thanks to Paul for the invite.
I also spent an afternoon working one final feature into Detling that we all agreed needed to be slotted in; it really closes the loop of the alpha, and makes the potential of the product much more obvious. Nice to drop it in at the last minute with relative ease. We’re showing the project to the BBC next week.
And finally, this week’s freelancer top tip: GOV.UK has ICS files for bank holidays. Thanks to subscribing to that a while back, I remembered to take Monday off. Ice cream and the smell of the sea are a very restorative way to kick the week off.
05 May 2013
With Detling wrapped, something that was loosely meant to be a week off.
Not a holiday per se, but no client work. I think, in the end, I took about half the week off, and the rest rightly falls into Phil’s definition of work – nothing for a particular client, but definitely work on my own professional output.
I spent a little longer futzing with electronics, and mainly running into some horrid issues with bitwise maths that just weren’t entertaining enough for what was meant to be a relaxing week of research – so I put them to one side.
Instead, I spent much of Monday exploring the viability of a particular approach to a project (which is currently called Swinside). In this case, that was the integration of MIDI control surfaces, Ableton Live, Quartz Composer, and using webservices to generate text to be rendered by Quartz. (It’s a fun, if bizarre, toolchain to work with).
By the end of the day, I had an ugly demo up and running – practically a screensaver – but it was a real blue triangle moment for me, and super-satisfying as such.
“Blue triangle moment” refers to a story I can no longer find the Gamasutra link for, so consider it apocraphyal: early Playstation devs, working on getting code running on their new devkits. They slaved over lots of things for a while, and at the end of their labour… a solitary blue triangle was rendered on screen. They cheered. Their project manager was less than enthusiastic – all that time just to make a single triangle appear? No, they explained, it’s not just a triangle. It’s a triangle that an artist drew in his 3D program, saved to disk, and we just imported the artist’s work, told it where to appear, hit build, and got an executable game. The blue triangle may be underwhelming, but it was proof the pipeline worked. Within another week, they had textured, animated, 3D characters appearing on the PSX. The hard work was proving the interconnection in a functional system – not rendering the triangle alone. The triangle meant much more than itself.
What I’ve learned is: yes, the bits I’m thinking about joining together would join together. An interesting feasibility study.
Otherwise, I spent the week in a variety of work-related meetings. Most were interesting early-stage conversations and some hypotheticals, although a very short piece of work – Wilton – has emerged, with After The Flood in a few weeks’ time. That should be interesting.
And, finally, I appear to have got myself an accountant. Freeagent has got my quite far, but I’m going to take an expert’s advice when it comes to tax returns.
28 April 2013
Week 28: the final week of Detling.
And, I’m pleased to report, not too much of a scramble to the finish line. Instead: a carefully measured burndown, ticking things off the issue list as the team hummed along nicely. It was great to get a day with Dean in the studio, fixing all his snags with my design implementation, and adding a little polish where appropriate. It was also lovely to have another designer passing over a lot of the interactions whilst I finished up implementation – and, it goes without saying, it’s just great being in a room with him. We had a lot of fun.
The team converged nicely for the last two days, and we also fitted in a lot of copy overhaul as well as handover to Caper’s technical director, James; an hour took him through a complete tour of the site, and we had it up and running on his own machine as swiftly as anyone could hope for.
A satisfying end to a tight project, then. We all could see the next steps – the obvious jumping-off points, the rough seams in it – but they’re going to have to wait. For now, we need to put it in front of some real users, and see how they react. Pleasingly, that means it’ll be live in the real world, and I should be able to point to it shortly.
I spent a couple of days this week on the Playable City work with PAN. This was both game design work and some code refactoring: a fairly hefty refactor, but it left the codebase in a much better place for the design’s desires and ambitions, and should be easier to build on. Glad to have that out of the way. Aanand was a big help a few weeks ago in talking some sense into me.
On Friday, I spent the day poking around with my FRDM KL25Z: a prototyping board for the mbed platform. It’s a small prototyping board, about £8, and more powerful than an Arduino (though a tad less friendy to use). On-board, it has a lot of pin-outs, as well as an accelerometer, an RGB LED, and a capacitive touch strip.
I soldered up headers onto both boards, and started poking the mbed environment. One of the projects I’m investigating with it – a MIDI-driven readout – is still going to be harder than I planned, mainly owing to the programming side – but otherwise, got them up and running swiftly. Interesting to diversify into new microcontrollers, and useful learning for the summer. I shall continue to poke it in due course.
A good week. By the end, the combination of project conclusions and some strong antibiotics meant I was pretty wiped. Over the next few weeks, I’m primarily focusing on an equal split of Playable City, along with some of my own work, which will lead to some new things to share here, I hope.
22 April 2013
Another head-down week.
It might seem it’s not so useful to write about the head-down weeks, where I’m chipping away at design or code. I think it’s still worth writing these notes: they’re a useful way of me reflecting on progress, on what could be improved, and a good way to focus back on exactly what happened in the past seven days. It’s rarely as simple as ‘did more X‘; rather, it’s useful to measure the pace of the work.
This was the final full week on Detling, and a lot of my focus was on some final pieces of functionality and bringing it into land. That meant finishing up the design work, as well as beginning to make sure the distributed team were all up to speed on everything that was going on. By the end of the week, several strands of work – production, editorial, testing, design, development – were all motoring forwards in parallel, and it was great to see everything sync up.
I also implemented simple image uploads for some editorial functionality. Heroku, having a read-only filesystem, doesn’t let you upload data through webforms to its servers; you need to store uploads somewhere else, such as S3. However, I continued the theme of gluing services together (as mentioned last week) and set up Cloudinary. Again, a lovely, seamless process: dropping in the gem, plus Carrierwave, and image uploads (along with offline processing/resizing) were integrated. It’s great to see such common modules of functionality extracted to services – and to be implemented so well.
Otherwise, I spent a lot of the week bouncing between vim and the Github issues list – marking things off, leaving notes for myself, and assigning away where appropriate. The pile went down faster than it went up, and I think all’s in a great place for the final few days of code and testing. I’m looking forward to be able to share the work soon.
A couple of brief – but interesting – meetings, one about a talk, another about music and technology, broke up the week. That was 27.
15 April 2013
A relatively unremarkable week. A day at PAN, working on Playable City and chatting with Ben and Sam – and the rest of the week spent working on Detling for Caper.
I finished hacking up a prototype for the Playable City chatbot, to expose a few things – how fast the feedback loop was; what SMS affords; what sort of language we need to stick to; how natural it feels to use. Something for Ben and Sam to play with whilst I’m wrapping up Detling. I got there, though there’s a big architectural shift I need to make as soon as possible – something I discovered through the making. (Namely, that my domain model wasn’t quite right. Good to catch this now. When I get back to the project, it’s the first thing on the list.
The Detling work was primarily infrastructural: setting up lots of outbound emails, shifting the sending of email onto a background queue.
This was not that hard at all – partly down to the maturity of the Rails ecosystem in 2013, and partly down to the maturity of service platforms. I’m using Sidekiq on top of Redis as my background queue, and it’s pretty much install-and-go. devise-async moves all the signup mailers onto that queue, and it didn’t take much work in the codebase to move the blocking mailers onto queued tasks. Sidekiq also gives us scheduled tasks for free – ideal for the reminders that the site is going to send out.
Then it was just a case of setting up outbound email. I’m using Postmark for this. I’m a big fan of their service: inbound and outbound email simplified down to POST requests. Best of all, they handle things like whitelisting, meaning I don’t have to worry about my outbound email being blocked. I’m happy to pay the small cost for that.
There’s still a skill to gluing these pieces together appropriately, but it’s the quality of libraries and services like these that let me focus on the domain-specific problems of the project, rather than reinventing the wheel; it lets us get a lot done for relatively little effort, and it’s this approach that’s helped Detling motor along.
Beyond the infrastructure, I spent the rest of the week focusing on unknown unknowns and new edges that were arising: simplifying URLs, refining the ingest process, beginning to integrate Dean’s design work, thinking about editorial content, and working with the team to really line up the burndown for next week – our final full week of build.
And that was it: no meetings, no strategy, just head down at the codeface.