5 October 2015
Week 152 saw my return to the studio after a week off, which was an excellent tonic after a busy August.
I spent much of the fortnight building a standalone environment for Selworthy. It was initially configured for an internal environment provided by one of its end-users, but my client wanted their own install to be able to demonstrate it and use it themselves.
I did this with Ansible. It’s a tool I didn’t know well at the beginning of the fortnight, but by the end, it had already proved its value several times over.
Ansible is a tool to help provision servers. It allows me to write small rules to describe the configuration of a server component, that will be idempotent – I can run them as many times as I’d like, and they either bring the server up to that configuration, or do nothing.
To begin with, it felt quite slow: prodding at syntax until the behaviour I want has been applied. I built the environment by building and destroying servers repeatedly, continuing to test that it’d work from a standing start. And each time I do that, the fact that all previous steps just work immediately becomes a huge advantage.
The other advantage is that Selworthy actually consists of two separate application – the main application, and a media-encoding tool – which have fairly similar system requirements. I built the Ansible playbooks for the media encoder first – which took a bit under a week of work. Then, however, it took about an hour to provision the main application server – because so much of the work had already been done and could be reapplied. It’s useful to be able to provision boxes so fast, and I’m definitely going to be continuing to use Ansible on future projects. The value isn’t just in the repeatability: it’s also in the ease of sharing it with other potential developers – guaranteeing that they can build the same environments as you. I’m not a great sysadmin, and it’s never going to be the main focus of my work, but the more controlled the environment I’m deploying to, the more confident I can be in it – and that’s a huge advantage.
By the end of the work, I could build the entire environment for Scribe in about ten minutes, from a single command, and then deploy each application to it in another single command. I was pretty pleased with that.
Around that work, I fitted a variety of other small pieces of work. I had an excellent chat with Holly Gramazio over coffee one morning, where she told me how Now Play This had gone, and we had a long conversation about the curation of games. It’s always valuable as a freelancer to be able to chat to colleagues, especially those at the edges of some of the spaces I work in, and Holly’s always a delight to talk with; nice to get out of the software for a morning, and hear about other friends’ successes.
I spent an afternoon at the Polyphonic Playground Lab, watching how musicians worked with the playground, and thinking about ways to potentially involve a much wider audience as part of the project. It was also a good opportunity to think about the intersection of music, sound and interaction design, which I’m thinking about a lot at the moment. That overlapped with the TouchOSC controller for Panoramical that I built the weekend before, as a small personal piece of tinkering.
Finally, I spent some time chatting with Richard about bringing Twinklr into land. We’ve got a plan of how to do that, which should fit around our life in the next few weeks, and an idea of where we’d like to take it next. As part of that exploration, I kicked off an attempt to rebuild it in Unity. As ever when porting code from something you know well to something less well, it can feel painfully slow at times, and as a result, I’ve only got code for drawing staves at the moment – but it’s a beginning, and something to build on. I’ve been thinking about a Unity build simply to make it easier to iterate on the real-time aspects of the code, and especially to consider more complex interactions that will become harder and harder to write in the browser.
Oh – and I took the opportunity, nearly six months on, to finally write up Rubato, another project Richard and I worked on together. As usual, project write-ups are always slower than I anticipate (and I still carve out a fair chunk of time for them), but I’m pleased with how that turned out.
28 February 2015
Tuesday saw the second performance of Rubato, at the Apple Store on Regent Street. Not quite the same acoustic as St John on Bethnal Green, but it was still a cracking performance. This time around, the animated words were also projected onto a pair of large screens in the front of the audience; though this occasionally removed some of the intimacy, it meant it was possible to take in the live performers whilst also seeing the words – something that the audience earlier in the month mentioned they’d have liked. So it was more useful information about how the project worked, and we had some lovely feedback from the audience members.
Otherwise, though, I’ve been running around the country for Periton: to Newcastle and Cambridge, to several locations throughout London and, on Saturday, up to Cardiff. I’m writing these weeknotes on the train back; it’s been a tiring week of travel and lots of talking. We’ve got lots of strong material from a variety of different voices and I’m looking forward to how everything will come together over the coming weeks. More in due course, but probably worth explaining: Periton is a radio programme.
And as ever: the usual sprinkling of meetings and phone calls to fill out the week. One phone call in particular helped me understand a lot of the parameters for Walbury which I’ll be starting work on next week – a short piece of specification and exploration.
23 February 2015
Week 123 was really short owing to holidays and family events. Still, a few significant things happened!
We started recording on Periton this week; one session in Week 123, with the majority of Week 124 also going to be spent on recording. A decent start, though, and I’m hoping I’m going to relax more into it as we do more sessions and interviews.
I helped Richard confirm Rubato was in shape for next week’s gig: Richard’s playing at the Apple Store on Regent Street, London, the evening of 24th February. Do come along if you’d like to see Rubato in action, and to hear some fantastic music!
And finally, over at my own personal site, I wrote a bit about connected objects. Or rather: I wrote about a passage in Philip K Dick’s Ubik that’s been doing the rounds, and tried to unpack the relationship between connected objects and the financial structures they’re made within:
Joe Chip clearly lives in a connected future. We know his homeopape machine talks to some kind of network, requesting news in a particular tone and fabricating it for him.
We know that the devices that make up his conapt know about his credit rating, and hence can refuse to work without either a line of credit or cash money.
The question really is: why does the apartment and its devices know about his credit rating? Why should it matter?
That’s it for Week 123; as I write, I’m on the East Coast mainline to kick off recording for Periton in week 124. More about that next week.
15 February 2015
Quick weeknotes for a short week:
- Periton moves ahead, with some planning, research, and wrestling with booking travel. Plans are coming together, and real work starts next week.
- One last bugfix on Rubato/Burton – an issue around Internet Explorer’s handling of negative margin. I seem to have spent about ten years of my professional life wrestling with Internet Explorer’s esoteric handling of the CSS spec, and that doesn’t look like it’s changing any time soon. As ever, Browserstack proved itself invaluable.
- Continued tinkering with Elasticsearch. I’m playing around with it on a few little experiments, following my experience of it on Swarmize. I’m continuing to learn things: the best way to map and structure data to support aggregation, the simplest way to spit data out. It’s a tool I’m finding increasingly valuable not as a search tool, but a data exploration tool.
- Continued pipeline work: not super-aggressive, but a few new leads on potential small projects upcoming.
Week 123 will be short as well: family events and long weekends taking up a few of the days.
9 February 2015
Week 121 saw the launch (or first performance) of Rubato, in Richard’s gig at St John’s on Bethnal Green.
I inevitably find live events nervewracking; there’s so much that’s out of your hands. Perhaps I protest too much – by the time we had the gig, my work was done, while Richard still had to perform eight songs. It all went very well: everything worked fine over 3G/4G data, on a very wide range of devices – but more to the point, the experience came out wonderfully. It was a great venue, and the intimate stories, told through a very personal device whilst the church filled with Richard’s guitar and the string quartet was remarkably atmospheric. We had loads of positive feedback from the audience; many of them found it very powerful. It all managed to deliver what we hoped it might, and I think Richard was very pleased. He’s performing again with Rubato at the Apple Store on Regent Street on the 24th of February, so do come if you’d like.
Periton moves ahead apace; I spent Wednesday having a great chat and discussion with the researcher/producer on it, and we’ve begun to line up interviews already; I’m also beginning to think about how I prepare for it, because it’s not a kind of work I’m very used to.
I had a few meetings with a team at Good, Form and Spectacle, discussing our pitch for NESTA’s Cultural Open Data Challenge. I think the pitch we came too was good – now we’ll just have to see how the whole thing pans out.
And, to cap it all, there were some leads on a few projects, and one short piece of work for next week, all of which keeps the pipeline flowing a little, so the January nerves are beginning to abate a little. Good; onwards.
5 February 2015
Various good meetings this week:
- A kick-off meeting on Periton, brainstorming ideas and working out angles for the thing; also getting to know the producer, and understanding making something of a shape I’ve never really done before.
- A lunch and a catch up with Marie, who’s Digital Design Curator at the V&A.
- A trip to the Hardware-ish Coffee Morning, which was smaller than the last time, but a bunch of good chat and ideas that rattled around my head for hours later.
I also finished up the final few fixes to Rubato/Burton in advance of its premier in Week 121. Which reminds me: I never linked Richard’s second video of the project in progress. In this case, a test of the whole thing with as many devices as he could muster:
By the end of the week, I was as confident as I ever get about live projects: it all worked under all manner of constraints, and Richard was comfortable performing with it. On the 3rd, we’d see how it turned out.
26 January 2015
Rubato/Burton is really beginning to come into land now. Richard’s worked on a lot of the content, and in doing so, found all manner of edge cases for me to pore over. It’s been super-helpful in terms of understanding expected behaviour, and what a performer might need from it. So I fixed up a lot of those issues, spent some time making the performance controls much more obvious for a musician on stage, and tidied a lot of the code up, giving it structure and removing dependencies. That gives me a bit more confidence about it.
On Thursday, a brainstorming meeting about a potential piece of work – and meeting a few new super-interesting people.
On Wednesday lunchtime, I caught up with Basil, whose studio is just around the corner. It was a good chat: he’s heavy into focusing on Telescope, and we discussed the tug of project work versus focusing on other clients. I came away impressed with their focus, but also reminded that much of what work feels or looks like isn’t always unique. And it’s good to connect with colleagues outside the studio – if only to get a new perspective on my own practice.
And I finally gave Swarmize a project page. Swarmize was one of my favourite pieces of work from last year: from a greenfield start to a fully-functional alpha, building both UI and back-end, iterated on as part of a small team and working closely with end-users. And, underneath it all, wrangling big chunks of data. If that sort of shape project – from invention through prototyping and iteration – is something you’re interested in, or think you have on the horizon, do get in touch – there might be interesting work to do together.
17 January 2015
Two weeks in one – last week had enough blogposts, what with launching the V&A Spelunker, the first public post about Rubato, and my yearnotes – so I thought I’d save any other news for this week.
Week 117 was spent getting the Spelunker, a project with George Oates at Good, Form & Spectacle, into the world. George wrote more about the project at the V&A site, and I wrote a little on Sketching and Engineering over at the GF&S Work Diary:
Early on in the process of making the V&A Spelunker – almost a few hours in – I said to George something along the lines of “I’m really trying to focus on sketching and not engineering right now“. We ended up discussing that comment at some length, and it’s sat with me throughout the project. And it’s what I wanted to think about a little now that the Spelunker is live.
Rubato is the project I’m working on with Richard Birkin, and I wrote about the first public material to come out of it here. After getting that post into the world, Richard ran a more intensive test with many devices over the weekend, which helped feed into the work for Week 118. The good news is that the code turned out to be surprisingly robust. That meant that my week was more focused on improvements and streamlining, rather than bugfixing, and I was able to be more responsive to Richard.
I spent a day or two in week 117 overhauling infovore.org, my personal site, and updating some of the front-end practice on it. It’s now both more legible and built a bit better, which made me happy.
I also took the opportunity to write up a piece of design I did about seven years ago, all about encouraging users to understand that their list of subscriptions is ephemeral. It came up in conversation at the hardware-ish coffee morning I attended on Thursday of week 118.
And finally, a good bit of news on a relatively unusual piece of work for me, provisional coded Periton: it looks like it’s going ahead. A few little days in February and March, from the sounds of things. Will keep you posted!
Back in the saddle, then – and still firming up work commitments for the beginning of the year, so do get in touch if you have what you think might be a Tom-shaped hole, be it prototyping, development, or bashing heads about design.
7 January 2015
I’m working with Richard Birkin on a project called Rubato (Burton in my codenames). Funded by Sound and Music, it’s a tool for a performer to control visualisations on the audiences’ mobile phones or devices from the stage. Richard’s written up the first stage of the project over at the Sound and Music blog:
In February 2015 I’m releasing a project called Songs For Spoken Words. There are six pieces of instrumental music written to accompany six poems. The poems are animated along with the music, encouraging the reader to follow the rhythm and emphasis of the written words and become part of the performance.
For the performance, I wanted to have the words on a screen while I played the music with a string quartet.
I’ve been working on the core technology, and Richard’s been continuing to work on the visualisation markup.
I also built Richard a footpedal for it, and we made a short film about that:
I’m continuing on this project in early 2015, and it should get some outings at some gigs in February.
8 December 2014
The weeks before Christmas are somewhat fragmented: a few small projects, lots of meetings, a few personal projects, hunting for future projects.
Rubato/Burton hit its first main milestone for me: end-to-end demo. The one feature I wanted to write in this week was being able to pick up the playback halfway: if you turn up late to the show, or click on the page late, you shouldn’t be stuck out of sync with other viewers, or unable to watch. Implementing this was about the fiddliest thing so far, but a day or two saw it through, and I was able to ship it to Richard early in the week.
I had a few meetings throughout the week, some about potential projects, and also stopped by Matt Webb’s hardware coffee morning to meet a few folks and chatter about objects, electronics, and small business. Really, I went to listen; I’m not quite in the place many folks are in, but fascinating to see and hear both what people are up to and how they approach it.
I got the prototype I’d worked on with George deployed this week, after a few hours thrashing out some join tables in a database to speed the whole thing up.
I also spent a day tinkering on what was to be my ‘end of term’ project – albeit a bit late. I’m finally working on a game prototype I meant to start about a year ago; personal work is always hard to make time for, but I work at doing so.
Milkhill – definitely not its real name – is a top-down arcade game for two players, to be played in the same room – local multiplayer, as it were. Beyond that, I can’t say much more, because I’ve learned enough about designing games to know that most of my ideas will probably go out the window pretty fast.
So rather than going in with big ideas, I’m going in with tiny ambitions: really embracing shoshin. I’ve not made a real-time game before, so this is a project to explore that and learn some Unity beyond tiny toys. My starting point for this week is: it’s got to be fun to move the avatars around the world. If the movement isn’t fun, I don’t think the game’s going to be fun regardless of what the other rules are.
I’ve spent a day on it so far. In that time, I built some very simple vector art in Sketch, and then started writing code to manoeuvre it around the screen: left stick to move, right stick to aim, like in Geometry Wars or other ‘twin-stick’ arcade shooters. A few hours of wrestling in C# with dead-zones, vectors, and quaternions, and I’d achieved that goal.
The sticks worked, but it wasn’t that much fun. I thought adding momentum might take quite a while, but moving everything over to Unity’s 2D physics wasn’t nearly as bad as I expected, and only took about twenty minutes for the first pass. I fiddled a lot with forces and drag, but all of sudden, the little pentagonal tank in the above video hurtled and skidded, it required just enough subtelty to control, but it felt like it was more alive in the world. A huge improvement. Hopefully I’ll get a few more days to tinker with this in the run up to Christmas. A long-ish write-up, but it’s nice to write about process and labour, rather than just meetings I had!