Posts tagged as burton
- 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!
- 1 December 2014
Week 111 saw lots of progress on Rubato/Burton. I spent the majority of my time, head town, working through one feature at once.
A lot of the project began from refactoring other people’s code: making the new interactions work with existing data and templates, and then changing the data formats once I realised what I was going to need. As a result, it’s been hard to see the ‘big picture’. I keep having to work through a single feature, get to the end, then come up for air and work out what’s next.
Fortunately, that’s been working well as a process: the number of steps is clear, and I haven’t had to retrace them very often. I’m making the path by walking, essentially. Richard was passing through London on Friday, so he came over to the studio and we worked together a bit – had a chat, and got the code up and running on his laptop.
Before he left, I managed a demo of using the footpedal to advance through steps in a song, with synchronised animation playing out on other screens, and then advancing to a different song using the pedal as well – and the song swapping out on all screens. Which is nearly an end-to-end demo: there’s one big feature left for week 112.
I say this a lot: sometimes it’s hard to see that end goal when I’m in the middle of a particularly hard feature. But the process appears to have worked, and it was great to get to an endpoint at the end of the week.
Otherwise, a few other small issues with another project led to some time spent normalizing somebody else’s messy data, and there were a couple of meetings. I also attended the first meeting of XYZW Club which was really interesting, and some of it even sunk in: I’d upgraded our point renderer to flat triangles shortly after the session.
- 25 November 2014
Week 110, and as I returned to GMT, I returned to work.
For a couple of days this week, I worked with George Oates of Good, Form & Spectacle on spelunking a large-ish cultural dataset. The goal was to see what we could prototype in a short period of work – see what was within the data – and also to see what it’d be like working together. It was a fun few days, and we got to an interesting place: a single, interesting interactive visualisation, alongside some broader ‘faceted’ views of the dataset to help us explore it. A nice piece of work, and fun teamwork.
I also kicked off Rubato/Burton, a collaboration with Richard Birkin on building a synchronized visualiser for music, funded by Sound and Music. Richard’s great fun to work with, and the first couple of days on it made great foundations. Firstly, I started writing the foundations of the backend in Node and socket.io; then, porting Richard’s initial work and visualisations over to it.
We had a good early prototype by the end of the week, although one that was going to need considerable iteration in week 111 to support many different songs, and changing songs in a set. Rubato’s the sort of project that requires me to just move one step at a time, though, completing a phase before iterating on it, and so it felt like a good starting point.
I also built Richard a foot controller for it: a couple of momentary footswitches hooked up to a Teensy pretending to be a HID controller. I spent a pleasant morning in the workshop, soldering, drilling, writing some C and packaging this in an aluminium housing, and filmed the lot as part of our documentation.
And, alongside all the code, and design, there was also admin to be done: finalising the 2013-2014 tax return with my accountant.
I’ve got enough to be working on to the end of the calendar year, but I’m looking for work from January 2015. So if you’re interested in working together, or have a project that you think might be a good fit for me, drop me a line. Things I’m particularly interested in: exploring and visualising data; communicating data that through interaction design; projects at early stages that need a prototype, or alpha, or their ideas exploring; connected objects. The sort objects described in weeknotes and projects should give you an idea. And if you’re not sure – why not ask anyway?
- 28 October 2014
A busy couple of weeks. These were the last two weeks in the run up to the delivery of the alpha of Swarmize. That meant lots and lots of small things – all the things you tend to remember in the final few weeks.
Firstly, completing and polishing the documentation. This wasn’t a last-minute thing: it’s been something I spent a while on. As well as some decent enough READMEs throughout the git repository – enough to help other Guardian developers – I also focused on delivering a set of case studies.
You can view them all on the Swarmize site. They cover basic usage and form embedding, advanced-usage (with the storage and retrieval APIs), and a real-world case study. I’m particularly pleased with the use of animated GIFs to explain interactive process – not endless instructions on how to perform a mouse gesture, nor a slow video with interminable narration. I think they’re a really useful fit for documentation.
I tested the API which, after I’d sketched it in Ruby, Graham built a more robust version of in Scala – and removed a few wonky features. That all went pretty smoothly. I also spent a while testing the embeddable forms in a variety of browsers, and learning a lot about
<a href="https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage">postMessage</a>as a result of trying to build a smoother experience in mobile browsers.
A few new features also snuck their way in. Dangerous, at the last minute, but they were relatively straightforward to implement and definitely turned out to be worthwhile additions.
And, of course, we spent some time at the Guardian offices demoing it and explaining it. We also got a particularly nice write-up and interview on journalism.co.uk.
I’m hoping to write up my own project page on Swarmize shortly, which will touch a bit more on the process and my involvement (as well as providing a clearer answer than these weeknotes to What It Is).
Some good news regarding Burton: it got some funding. Not a vast amount, but enough to achieve what Richard and I would like to – so that’s going to be a focus before the end of the year. Really looking forward to it.
And, finally, I spent a good while working on my talk for Web Directions South. I think that’s all come together reasonably well. Some of these Things are not like the others is an expansion of “A Lamppost Is A Thing Too“, and covers Hello Lamppost, Columba, and various thinking about designing connected objects and services, expanded into a longer, more wide-ranging 45 minute session.
I hope it goes down well. I’ll no doubt have more to say in week 107 – which is going to be spent in Australia.
- 5 October 2014
Week 103 was, I think, a rather good week.
Swarmize/Abberley is moving into its final month before hitting Alpha. The last piece of the puzzle is some kind of API to extract data from the system. We can already put data in, and we’ve got the tools to download and explore it, but what we really need now is a way for developers to extract data programatically: a retrieval API. One we’ve got that, the whole end-to-end process is sketched out.
To that end, I started sketching out an API as a tiny Sinatra application, that Graham will hopefully port to Scala shortly. Within a day or so of work, I had a simple API that allowed exploring of results, overviews of field counts, as well as outputting GeoJSON FeatureCollections given an appropriate location field to pivot around. I’ve started calling this type of code spelunking: diving into a thing to see how it feels, to learn by doing, and trip over myself soon enough that I understand the real demands of the system.
I also sketched out several example applications in flat HTML and node.js-backed client-server apps to illustrate how the API could be used. It’s not enough to just write that code, though: it also needs to be documented. A lot of the week was spent writing clear, concise API documentation, and I’m going to be tidying up all the documentation over the coming weeks. We’re really focusing on everything that will help The Guardian use Swarmize in anger once the alpha is complete.
Pitches for funding for Burton have gone in. I sat down with Richard, who was passing through London on Monday, and talked over various ideas, which were all exciting and productive, and so we hammered some things out in Google Docs – or, at least, Richard hammered most of it out and I offered input where appropriate. Crossing fingers there, but I think we’ll find a way to do something.
And on Friday morning, I brought the film producers I’m mentoring into the studio to sit down and do some drawing. Not a lot, I’ll admit, but it was good to just start showing the process of using your hands to think with and to slow yourself down – forcing you to reason with how much you can fit on a screen, and precisely what needs to be present for a user to interact with. It was useful, and I’m looking forward to seeing how it’s shaped their thinking next week.
- 28 September 2014
Back to work after a week off.
That meant diving hard into Abberley/Swarmize. We’d run a test of it around the Scottish Independence Referendum, and now I was working out how to re-implement various features so they’d hold up under the strain of a 90k+ dataset; something that Swarmize is likely to have to deal with.
This meant lots of back and forth, but by Friday night, I’d sussed out how to deliver very large CSV files efficiently – and cache them on Cloudfront for the majority of users.
I also overhauled lots of the real-time updates in the app. These are still fairly straightforward: fundamentally, it’s a traditional HTML-based application, but it’s useful for editors to have live updates.
My homegrown caching routines got thrown out in favour of properly implementing a Backbone-based solution. Backbone has always made conceptual sense, but I’ve never seen a way to implement it into my own work. Thanks to a really useful chat with Nat, something large in my head clicked and I finally saw how to use it in a way I was comfortable with. This led to a big rewrite, and now various graphs and tables are updating themselves in a sensible, sane way.
Other work on it this week: spending some time with Graham overhauling our deployment routines, so rather than reduplicating code, we have a single deploy script that (through configuration) can deploy any component; lots of fixes to code and infrastructure.
The flexibility and general scope of my work on Swarmize has been great, but there are times when it makes me feel pulled in a variety of directions – and right now, that’s hitting a little hard. Fortunately, I ended the week with a long chat with Matt, who’s sponsoring the project, and he helped shape what the next four weeks – to Alpha – looks like in my head. That’s helped set a brief for what we’re doing, and I’m looking forward to writing some burndown lists.
Thursday saw my regular mentoring session for CreateInnovate, where we moved some ideas forward, but it became clear that week 3 would be spent with some pens, drawing: getting thinking out of the head and onto paper, to make it clearer.
I also spent a few hours this week sketching, thinking, and prodding the feasibility of a potential new pitch with a friend I’ve wanted to work with for a while. It feels strong enough that it’s got a codename – Burton – and I’m hoping we’ll find a way to bring it into the world before the year’s out.