Week 129
7 April 2015A really good week on Selworthy.
When I come to put together weeknotes, I often take a squint at the output of
git log
for the past week to remind myself what I did. Some weeks, this will show loads of commits, and the forward velocity is really obvious. Other weeks, it’ll feel like I’ve done a great deal – but there aren’t always the commits to show it.This was one of the latter weeks. That’s mainly because I’ve been focusing a lot on implementing and refining the front-end UI for the project, and that means lots of slow but meaningful modifications to a handful of Javascript files.
I pretty much wrapped up this pass on front-end UI this week. That included adding lots of mouse-manipulation interactions to the
canvas
element that is fairly critical to the application. Because Canvases are just pixel-arrays, it’s in some ways harder to do interaction-detection than it is with SVG (where each visual element is also a DOM element). But because of the way the canvas is written – a single Backbone View that renders itself at up to 60fps – it wasn’t too hard to add the manipulations to the event loops on it. These manipulations also update Backbone models as the user uses the mouse, and, ultimately, sync to the Rails back-end. By the time they were in-place, things really felt like they were coming together.That was the large change to the front-end; but there was also a lot of smaller polish. Adding keyboard shortcuts; fixing issues with flickering as Javascript templates render; refining the UI as we played with the application. Not many obvious commits, but lots of progress.
I spent some time experimenting with installing ffmpeg on Heroku, by having multiple buildpacks on one host, and discovered that whilst it was possible, it probably wasn’t something I was going to spend much more time playing with; instead, I’d use some of the banked time on the project to rewrite some early work to use an external transcoding service.
I’ve been making good time on Selworthy, and I’ve kept the client abreast of the difference between my original estimates and reality. They’ve been receptive to this, and very understanding. What it’s also meant as that now that we’ve discovered that something implemented back in Milestone 1 wasn’t necessarily going to hold up in production, we’ve actually got the time – largely left over from Milestone 1 – to implement it properly, and also gain some nice-to-have functionality for free. Frequently, I find that time saved often gets applied to improvements on that work, and it’s been great that the client’s been in entire agreement with that, making important improvements easy to work into the schedule.
Selworthy continues to be hugely satisfying, touching at lots of interesting edges: rich interactions; intensive but selective use of lots of features only possible in modern browsers and HTML5; just enough modern Javascript to make sense. I’m enjoying it a great deal.
Week 129 is a short week, because it’s the Bank Holiday, and whilst I may be freelance, I take Bank Holidays. That makes Week 130 short, too; I’ll be spending it with Good, Form & Spectacle, and returning to Selworthy in Week 131.
Week 128
30 March 2015I’m knee-deep in Selworthy at the moment, and that’s a good thing.
Much of Selworthy is simple transactional web stuff: users, content objects, and permissions thereon. I spent most of Week 127 focusing on that – writing lots of tests, getting the foundations in place.
But its core is a rich interactive web tool, which manipulating a list of data both through a traditional table and a visual timeline of events. Selworthy’s the sort of project that four or five years ago would have been far beyond me, and pretty beyond the web. In 2015, it’s all achievable in modern browsers with relatively few esoteric libraries. It’s been an exciting learning project, but also eye-opening. (I’m using the Canvas and HTML5 video APIs extensively, for instance).
I’ve also been using a lot of Backbone. I’ve come to Javascript frameworks relatively late, but also relatively carefully; I’ve never really had the need to use one until the past couple of years. I’m keen on making things as simple as possible to begin with, so always start with transactional POST/GET: plain old websites, like you might have made with Perl CGI. And then we layer on the more dynamic layers, usually delivered through Javascript elaboration.
Recently, though, I’ve found myself repeating particular patterns of usage when it comes to binding back-end data to front-end code, and it was on Swarmize that I realized this was exactly what Backbone was for, and perhaps I ought to investigate it. That turned out well, and I found a way of implementing Backbone-based rendering without compromising the proper-pages-with-proper-URLs approach to web design.
So Selworthy isn’t a ‘single-page app’ by any means: it’s lots of pages and lots of HTTP. But there is one page – probably the most important page, the page you spend longest at in the app – which is where all this rich interaction lies, and where Backbone comes into its own. The page is largely rendered server-side in Rails initially, and then Backbone models are populated from inline JSON (rather than HTTP GET) – before the whole Backbone rendering pipeline takes over.
I’m enjoying working with Backbone, mainly because it does almost nothing. The number of places where it has no real opinion about how you proceed is refreshing; as such, I’m free to keep things as simple as I like. Its lack of opinions does have the unfortunate side-effect of making nobody’s Backbone code look the same, but at least you’re not bound to one developer’s understanding of what a rich webapp looks like. (If you ever wonder how little it does, Backbone has some of the best annotated source code of any project I’ve used; you always learn something looking at it).
I’d laid some foundations last week of how Backbone would render the page, and that set the stage for Week 128, in which I build a lot of the rich interactions that bridge Backbone’s data model, with multiple related Backbone views, and also the Rails backend. There was also the first push on look and feel, not just looking at design and layout, but also clarity of communication with the end-user.
That wrapped Milestone 1 and took us well into Milestone 2, which we might well finish before Easter, and a good demo on Friday with the client in their offices helped clarify what the next steps would be. By the end of Milestone 2, we’ll have a really solid demo and be at the point where we need to understand the complex workflows ahead.
Weeks 126-127
22 March 2015Week 126
A good week, setting up exciting foundations for Week 127. For starters: a couple of days on Bredon, a workshop with Max and the team at After The Flood. It’s always a pleasure to work with Max, and this was no exception: two intense days of good chat and brainfood.
There were also a bunch of meetings – a few exploratory ones, and one setting up a project called Selworthy that would need a pitch writing next week.
Week 127
Week 127 saw the beginning of Selworthy: a fairly intense full-stack web project with a really interesting problem to solve.
I spent Monday formalising a pitch, whilst also derisking the project. That meant writing small bits of code to explore particular issues – parsing particular formats, understanding Amazon S3’s security model, testing character encoding issues. I also researched my proposed architecture for the project a little.
I always find it hard to balance the right amount of research and derisking: too much, and you end up starting to build the project; too little, and it impacts estimates and planning. In the end, I think I err on the side of too much, knowing that with any luck it’ll be re-usable in the course of the project.
The client was happy with the proposal on Tuesday, so off we went. It turned out that the early derisking had paid off and in the rest of the week – including a Friday on-site – I managed to achieve most of the first milestone of the project.
I’ve broken the project into three milestones. The required functionality won’t be complete until the end of milestone 3 – although milestone 2 could feasibly be described as a minimum viable product. At the same time, breaking the work down this way has been helpful for sharing my understanding with the client and getting their input. It’s also a way to keep risk contained – each milestone builds on the previous one and confirms that the next one is possible.
That also assists estimates. Like almost all developers, I find estimating hard, and I also find that the easiest way to make an estimate more accurate is to do the work. To that end, each piece of work helps estimate the next one.
Milestone 1 is basically a prototype; it tests all the core functionality and sets up the architecture of the code, as well as getting the production infrastructure good to go. By the end of the week, it was clear that my conservative estimates were reasonable, and we might well have some time spare. Rather than saying right now ‘it’ll be cheaper‘, I’m clarifying that it’s all time-in-hand within our current budget and it gives us room to breathe if future code turns out more complex.
Anyhow: it’s going well so far, and it’s exciting to work on something that’s challenging in all the good ways. The next few weeks are going to be head down on Selworthy, and that’s going to be good.
(Oh, and I almost forgot: on Tuesday, I finished the script record for Periton. So that’s all in the can, from my end.)
Week 125
10 March 2015I wrapped recording interviews on Periton this week, with a studio session on Thursday and an on-location set of interviews on Saturday. All that remains is a script and one final studio session for voiceover. I’m looking forward to seeing how it’s turned out shortly.
On Thursday, Richard was invited into BBC R&D to chat about Rubato, so I went over with him to see their reactions and hear him chat. It’s always nice to see other people’s responses to which inevitably vary with their expertise, and so to hear from people with experience of all manner of broadcast platforms and approaches was interesting.
At the beginning of the week I spent a day sketching and thinking on Walbury, planning out some simple interactions and working out how they map to a third-party vendor’s API.
Midweek was a conversation about future work with a gang convened by George at Good Form & Spectacle, which were as always super-interesting. And I spent a while in the week tinkering with a small Elasticsearch project, porting an application previously reliant on a relational database to use a big-bucket-of-documents. By the end of the week, I had a really solid port that was remarkably snappy.
Code, design, talking; a little of everything, then.
Week 124
28 February 2015Tuesday 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.
Week 123
23 February 2015Week 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?
More, about capitalism, the internet of things, and some Bruno Latour, over at infovore.org.
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.
Week 122
15 February 2015Quick 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.
Week 121
9 February 2015Week 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.
Week 120
5 February 2015Various 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.
Week 119
26 January 2015Rubato/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.
Weeks 117-118
17 January 2015Two 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.
year[1]: how difficult was the Difficult Second Album?
9 January 2015The second full year of independent work, which means it’s time for yearnotes again.
I looked back at last year’s notes to see what I planned:
What’s in line for next year?
More. More design, more engineering, more invention. I’ve got a few small projects ticking away, and some consultancy on the horizon. I’m taking a holiday in January. I’ve got a bit more mentoring at the ODI, and am continuing to think about more ways to teach, because it’s a subject important to my heart, and it’s something I like to see done well – and a thing I love doing. I’ve got a few interesting pitches and proposals that I’m waiting to hear more about, and which I’ll be able to talk more about in the New Year if they come off. I’m going to calendar in time for self-initiated projects – some web-based stuff, some games, I think.
I think it roughly came off, though I’m definitely going to note that this year’s “what’s next“ column feels a bit same-y, so perhaps it’s worth looking into why.
Projects
2014 was a decent year, work-wise: a variety of length and scope of projects, in a variety of different fields.
There was a small amount of workshopping/design consultancy, particularly in the early part of the year, taking part in workshops with After the Flood, BBC R&D, and Caper (the latter in a innovation lab for the National Maritime Museum).
I continued to do interesting work in and around the cultural sector. I helped Longplayer with its new website; helped a poet and theatre maker think about the digital aspect of a show; and started work on a project with the composer Richard Birkin.
In the summer, I ran a three-day workshop in Newcastle for CreateInnovate with David Varela, teaching filmmakers about digital media, and continued to mentor one of the teams for the autumn and winter.
The two largest projects I worked on were at the Guardian. Firstly, I continued work until around March on Contributoria, working with the team on getting it to launch. Since then, the project has really rocketed forward: lots of stories commissioned, and lots of great continual improvements to the software.
Probably the project I’m proudest of this year is Swarmize, for which our tiny team got funding from the Knight News Challenge. Over five months, we built up a tight, useful platform for editors and journalists gathering data. Working on-site at the Guardian made gathering feedback from our target users really easy, and I think the tool got to a great 1.0. I’m hoping it’ll get continued use, and perhaps grow even further, in 2015.
At the very end of the year, I worked on the V&A Spelunker with George Oates at Good, Form and Spectacle. We spent a few days exploring the V&A’s entire collection dataset, initially building just enough code to help explore it, and then beginning to tell stories about it through its facets and through visualisations. I always enjoy this sort of material exploration, and hope to do more of it next year.
Finally, I built Columba, a prototype of a compass for hire-bikes in London, that integrates the data provided by the supplier of what docking stations are free into the bike itself. It was an exploration into what connected objects for shared use might be. I’d been thinking a bit and orbiting around “connected objects” (“the Internet of Things”) for a while. This felt like the next step in my ruminations around what connected objects beyond Expensive White Goods might be: I had a point I wanted to quite literally make. It turned out well: both as an initial experiment, as a tool for thinking with, and also a talking point. I might return to it – or at least some of the ideas within it – in 2015.
Speaking and Events
I spoke at a few conferences and events around the world this year. I used to insist on writing brand new talks for each engagement, but my professional life has changed: I don’t quite have time for that, but my work is also solidfying into patterns, making repetition a bit more relevant. There’s always new material for each audience, though, so over the course of the year, talks continued to develop: even if they had the same title, they had moved on each time.
Broadly, there were 4 main talks:
A Lamppost Is A Thing Too/Some of these Things are not like the others: this began at FutureEverything in Manchester, after which I built Columba explicitly to talk about within it. I then gave it at Solid in San Francisco this summer, before delivering probably the final revision of it at Web Directions South in Sydney. The whole talk is online, and I think it probably won’t get any more outings. This was probably the big piece of new writing this year.
At Random String, I gave a new version of my “technology as a material” spiel, called Technology As An Artist’s Material. I should probably put that online at some point, even though it’s largely old content – there’s a nice anecdote about Richard Hamilton in it.
Making the City Playable, in Bristol, saw an updated version of Driftwood.
And, towards the end of the year, I gave the final version of an unpublished talk at the Mysociety Data Breakfast. Called Spreadsheets and Weathervanes, it’s some notes on designing data-driven visualisations and products.
That’s easily enough talking for one year. Most of those talks are, I think, retired in their current form, and I think there’ll be a bit more cranking the handle of work before I’ll have new things to say. That’s often how it goes: I’m happier talking about work I’ve done, and it’s important to both do the work and keep the spoken matter fresh. So perhaps a quieter year on the talking front next year, which I’m fine with.
Trends
Looking back, what have I noticed about 2014?
Pleasingly, there were a few more longer projects: three-six months is a nice length, and I’m coming to appreciate the latter, especially if it’s ‘staged’ a bit to give space for other work.
That said, between the longer projects, the small projects were a bit more scattered and spread out – and took longer for me to complete. Finding a way to keep the balance of big and small is going to be important in 2015.
There was a bit more speaking – not quite intentionally – but that was tempered with an increase in ‘repeats’, kept relevant and fresh enough, but building on the same backbone. That was sensible from a time management perspective.
Probably my greatest failing was still being dreadful at self-initiated projects: even if I booked time out in the calendar for them, they’d slip, either out of prioritising client work (that wasn’t necessarily in need of a rush job) or out of fear I wasn’t doing the right thing. I managed to start the Unity project I meant to begin 12 months ago, and Columba was a good example of how to merge a self-initiated project with professional requirements (building something to feature in a talk) but this is clearly a thing I still need to work on, as space to explore, tinker, and make things to my own brief is an important component of work. Learning smile!
Overall
I still think 2014 was a good year: solid, settled, and diverse. I’m noting that my complaints/desires are echoes of last year, though, because it’s important to move forward, however gently, and I hope this year I can give my own practice the same space I give my clients, colleagues and collaborators.
If this sort of work – software, technology, interaction design, and the seams between it – is what you’re looking for, I’m available for work in early 2015, and I’d love to hear from you.
Rubato: work in progress
7 January 2015I’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.
The V&A Spelunker
6 January 2015At the end of 2014, I spent a short while working with George Oates of Good, Form & Spectacle on what we’ve called the V&A Spelunker.
We sat down to explore a dataset of the Victoria & Albert Museum’s entire collection. The very first stages of that exploration were just getting the data into a malleable form – first into our own database, and then onto web pages as what got called Big Dumb Lists.
From there, though, we started to twist the collection around and explore it from all angles – letting you pivot the collection around objects form a single place, or made of a single material.
That means you can look at all the Jumpers in the collection, or everything from Staffordshire (mainly ceramics, as you might expect), or everything by Sir John Soane.
And of course, it’s all very, very clickable; we’ve spent lots of time just exploring and excitingly sending each other links with the latest esoteric or interesting thing we’ve found.
George has written more on the V&A’s Digital Media blog. She describes what came to happen as we explored:
In some ways, the spelunker isn’t particularly about the objects in the collection — although they’re lovely and interesting — it now seems much more about the shape of the catalogue itself. You eventually end up looking at individual things, but, the experience is mainly about tumbling across connections and fossicking about in dark corners.
Exploring that idea of the shape of the catalogue further, we built a visual exploration of the dataset, to see if particular stories about the shape of the catalogue might leap out when we stacked a few things up together – namely, setting when objects were acquired against when they are from, and how complete their data is. You quickly begin to see objects acquired at the same time, or from the same collection.
This is very much a sketch that we’ve made public – it is not optimised in so many ways. But it’s a useful piece of thinking and as George says, is already teasing out more questions than answers – and that absolutely felt worth sharing.
Do read George’s post. I’m going to be writing a bit more on the Good, Form & Spectacle Work Diary about the process of building the Spelunker later this week. It’s the sort of material exploration I really enjoy, and it’s interesting to see the avenues for further ideas opening up every time you tilt the data around a little.
Weeks 115-116
6 January 2015I was out of the studio for Christmas and New Year these weeks; doesn’t really seem worth recording, but otherwise my weeknote counting gets out of sync. And so, I’m logging them for completeness’ sake. More news to come soon!
Weeks 113-114
24 December 2014As expected, the final couple of weeks of the year were pretty quiet.
I continued work on Milkhill for a couple of days, which wasn’t as long as planned, but enough to move all the movement in it over to a physics engine, and also add some “bases” for players to capture. This addition – along with some alterations to the player avatars – involved wrapping my head around Unity’s in-built animation system (which, it turns out, is state machines all the way down). Christopher LaPollo’s 2D tutorials were about the clearest, most concise explanation I found on the matter, which helped massively. It also helped that they were text, not video. There are a lot of Unity tutorials out there that are video-only, which is a real pain when you just want to skim something to ascertain if it’s what you’re interested in; Kudos for Christopher for doing all the typing.
I spent one lunchtime at the second meeting of XYZW Club, in which Ben walked us through adding light-sources and Gouraud shading to our simple toy renderer – an awful lot added pretty quickly. The conversation to wrap up the meeting – slightly boggling at how far we’d leapt in that single session – was really interesting.
On Friday 12th, I talked about building data-driven visualisations and products for MySociety: as I’d hoped, the discussion afterwards from the audience was really interesting and pertinent – everything from how to initiate and explore data-products through to the legalities of licensing data. It’s always nice when there’s a healthy, buzzy discussion, and lots of experience in the room for people to share (rather than just me rabbitting away). I also think that talk is pretty much retired now, so I should probably write it up in the new year.
In week 114, I worked a little on Leithhill, a small database exploration tool wrapped around a research database – this had been on the backburner a little, and a day or two with the data model suddenly pulled it forward into something really useful. There’ll likely be a little more to do on that in the new year.
Needless to say, there were meetings and conversations: I’m still trying to work out what next year looks like, work-wise, and I have a lot of availability (and various ‘maybes’ floating around). So if you’re interested in working together next year, do get in touch.
And really, along with a little admin, that was it. A quiet end to 2014. I’m out of the studio until the new year, when the job of getting 2015 under way in earnest really kicks off. See you then.
MySociety Data Breakfast: Designing Data-Driven Products
10 December 2014I’m giving a talk at this week’s MySociety ‘Data Breakfast’:
Products, tools, and visualisations built on top of data aren’t just thrown together arbitrarily. They take a degree of thought and process to assemble.
This Data Breakfast will examine that process, looking at the forms data can be represented in, and the ways to explore and understand those forms, based on experience gained from real-world examples.
We’ll look at everything from data rendered as physical objects through to a data-gathering tool developed for journalists, and consider how best to build data-driven products.
The talk is called Spreadsheets and Weathervanes. It’s a free event, but there’s limited space, so you’ll need to sign up at Eventbrite. Perhaps see some of you there.
Week 112
8 December 2014The 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!
Some of these Things are not like the others
2 December 2014Some of these Things are not like the others was a a talk I gave at Web Directions South, in Sydney, in 2014. It's the last variation of a talk I've been developing over 2014, about connected objects and, specifically, about connected objects for shared and civic usage. I gave a version of this, entitled A Lamppost Is A Thing Too at Solid in the summer of 2014. This is the longest, most complete version of it, and so I've preserved it here, derived from the script I spoke from.
Week 111
1 December 2014Week 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.