Posts tagged as selworthy
Worknotes - February 2021
24 February 2021It’s the middle of February, 2021. What’s going on since I last wrote, and what’s coming up next?
Wrapping up at CaptionHub
My stint at CaptionHub got extended a little, and I finally wrapped in the middle of February, last week. Everything went as well as I could have hoped on the overhaul of some fundamental parts of the codebase that I was working on.
I’m pleased with the decisions we made. It was good to review all the work with the team and agree that, yes, those decisions we took our time over and drew so many diagrams of were sensible ones, and it had been worth investing the time at the point in the process. We added more complexity in one location, but managed to remove it from several others, and I enjoyed the points where code became easier to re-use simply because we had standardised an interface.
A pleasure to be back writing Ruby, too; not just for its familiarity, but for just how it is constantly such an expressive language to work in and to write. And, of course, a pleasure to work with such a sharp and thoughtful development team.
Working with Extraordinary Facility
I started working with Matt at Extraordinary Facility around the end of January. Let’s call this project Ilkley for now. It’s years since I worked with Matt at BERG, and I was excited for the opportunity to work with him again. I enjoy his eye, taste, and process as a designer so much. You should definitely check out his recently published Seeing CO2 prototype for an example of his approach.
Ilkley is a physical product prototype. I’m taking a prototype that existed between hardware and computer software, and shrinking it into a dedicated box: porting all the code to run on a microcontroller, building the user interface, adding necessary extra hardware to make it entirely standalone… and then designing custom circuit boards to fit into an enclosure. That means: firmware, a bit of EE, some CAD, and then iterating software to get it feeling right. Leaping back and forth between the digital and physical, and code, electronics, and atoms; from pens and paper to alt-tabbing between code editors, KiCad, and Fusion 360. It’s been highly enjoyable so far.
I’ve appreciated the way Matt is laser-focused on the outcomes he’s looking for. The existing prototypes were the design work; this phase is entirely about bringing that design to life. Implementation, feasibility, and building a roadmap for the future. Until he can get more people to use it, it’s not worth us spending time altering anything else. We still go off on diversions and discussions, of course, as we chat things over, but they’ll get gently parked before they jump their place in the queue. It’s great to still have those discussions, though!
Our first tranche of work investigated whether what Matt hoped for was possible. The answer was an emphatic yes, and by the end of it, we’d gone from a large breadboard and tangle of jumper wires on my desk to a small, custom “bench prototype” PCB. Nothing that could fit into a box yet, but something I could reliably send Matt (in New York) to evaluate and test. (Which in itself helped me prototype the answers to “_how do we best ship prototypes across the Atlantic_”).
I also could then start prototyping other submodule circuits on breadboards, experimenting with them whilst not worrying about the main electronics, which were ‘frozen’ thanks to having a fixed design.
One top tip from this process: something that helped enormously was continuously maintaining an up-to-date schematic of the breadboard prototype as I worked on it. As I built the tangly prototype on my workbench, I also drew it up in KiCad, altering it whenever wiring changed, or resistor values were altered. The tangle got more complex as time went on, but this didn’t matter, because there was always a map of it available in the ECAD tool. When we were happy with the prototype I’d been demoing on video calls, it was easy to start the work to turn it into a PCB because I already had the schematic. I didn’t need to start deciphering the knot of wires; I could just put them to one side and move straight onto board layout.
I did exactly the same for the small submodules as I built them; those schematics would then be ready to use again for the first ‘full’ prototype.
Progress has been really good, and I’m going to start a second phase of work soon, to take the various sub modules and bench-sized prototype, and start turning it into an entirely self-contained object. That’s going to run over the next couple of months, I’d imagine, with some gaps to get things fabricated and pull things together.
Teaching at UAL CCI
Having wrapped at CaptionHub, and with at least one client project moving on, I’m also going to be teaching an undergraduate course at UAL’s Creative Computing Institute - the Sound and Image Processing module for students in the first year of their BSc. One afternoon a week, for the next three months.
Why teach? I’m not an academic, and don’t plan to become a full time researcher or lecturer. But I’m dovetailing a small amount of teaching around my client work over the past few years - Hyper Island, the IOC, and now this.
A few answers spring to mind.
Firstly, it’s a bit about the shape of the “industry” I work within. I’m a consultant and freelancer. How do I develop talent, or share my knowledge with others? I can’t do it with the other employees of my company of one. Sharing my knowledge with students and learners through teaching engagements is one way I can. Many of my peers who are located more within the Design community integrate teaching into part of their practice well, and whilst I often use the word ‘design’ to describe a lot of my work, ‘technology’ is also an important part of my practice - and ways of integrating teaching into technical practice is something I perhaps don’t see as much of. So I’m going to see how it goes.
Secondly, I find it a great way to cast a lens at my own practice. Nothing forces you to re-evaluate your own work, approaches, or knowledge, than having to explain or discuss ideas with others. Is it selfish to say that? I don’t think so; more just to reinforce that you can’t help but learn things yourself by going through the process of teaching.
And perhaps most importantly - I learn from all the students I teach. This is in part a reflected version of the previous point - yes, I learn by looking at my own understanding and reflecting on it… but I also learn from listening and sharing with others. Students and learners at all levels bring new perspectives, expertise, experience, and ways of understanding to the table, and I (along with the rest of the group) get to share in that with them.
All of which I value. So, an opportunity arose, to think about images and sound from first principles, and ways of exploring and explaining that. I said yes.
Which all feels like a good slate for now: prototyping design products; teaching about the landscape of code; a little slack between all that for reflection and personal development and work, which (at the end of a year that was already busy before being A Bit Much on top of it all) is much needed.
Onwards.
Worknotes - November 2020
20 November 2020I taught at Hyper Island this year for my fourth year now, as Industry Leader for the Digital Technologies module of their part-time Digital Management MA.
At the end of the course, I give a paper where I talk about personal process and practice. It’s a bit left-of-centre: not so much Best Practice, as Things I Have Found Useful.
I always tweak and rework the course a little each year. This year, I came to this paper, and found myself stuck. In it, I talked about the value of personal documentation:
README
s in every project and code directory, so you can always pick up a thread after months away; weeknotes as a ritual and way of evaluating work. I talked about the value of colocation - why I prefer studios to offices, why the right people together in the right space is such a winner for work, and how precious a Good Room can be. And at the end, I self-indulgently talk about the value of reading fictionAt the beginning of September, I sat looking at the deck, and realised:
I am doing none of that right now.
Weeknotes, as you can tell, have fallen by the wayside. I’m Working From Home If Possible (and it is possible), not going up to my studio space. I’m working on projects on a succession of videoconferencing tools, all with their own quirks, and spending longer in my study than I’d like. I’m not reading as much fiction as I’d like.
I felt like I’d be a hypocrite to say these things to students.
In the end, I said it all anyway, dropping in a quick “recordscratch” sound effect to call myself on my own shortcomings, and to talk about the difficulty of espousing studio culture in an airborne pandemic.
It went down well, but it also turned out to be not as foolish an idea as I thought. By acknowledging the fragility of ideals in the face of reality, we could explore why I was recommending those practices in the first place. By challenging myself as to why I wasn’t following my own advice, I could explore what the point of that advice might have been.
The fact that I wasn’t writing at the moment didn’t mean that writing wasn’t a thing to recommend. It possibly meant that weekly notes were not quite serving a purpose now. After all, if I was busy, and getting the work done, and if the thing that fell by the wayside was talking about that, I might have to live with it, and work out how to change it.
For now, weekly notes might disappear for a bit. I’ll work out what replaces them in due course.
Meanwhile, let’s see where things are right now, in the middle of November 2020, and what’s happened in the past four months.
Easington
I delivered Easington in early September. I’d written about the project here previously; most notably, in this post on props and prototypes.
But then writing about it dried up. This was partly because having worked out what the job was, I mainly had to work on delivering that. Having done bunch of Thinking About Stuff, much of the work was Making Stuff and Explaining Stuff (sometimes both at once). There often wasn’t much more I could easily say here other than “yep, getting on with things“.
If you’ve read these notes for a while, you’ll know I’ve got all manner of ways of saying “yep, getting on with things“, but 2020 appeared to exhaust them.
It was also challenging because Easington was under an NDA, and the specifics of the project meant there was almost nothing I could say without revealing things my NDA forbids me from revealing. And given that, I was largely quite quiet.
What I can say:
Easington was a fourteen-week R&D project for Google AIUX, who work at exactly that intersection: the user experience of future AI-driven products. I worked closely with design colleagues inside AIUX, especially in London, but also spoke to researchers and topic experts from internal teams around the world. It was challenging and rewarding in equal measure. I’m proud of what we delivered.
It was also a project that almost directly mapped to what I laid out in March, when I wrote about what I do, before Everything Changed, and it was hugely rewarding to confirm that yes, that’s an excellent summation of my sweetspot.
Vacation
I went on vacation in the UK for two weeks after Easington ended. This was long-planned, and not an emergency “COVID holiday”. But I was very fortunate to be able to take that time off, and to do so in a safe and sensible way.
Teaching at Hyper Island
As mentioned above, I taught at Hyper again. Normally, this takes place in December and January of a year. However, as we were going to be teaching remotely this year, they decided to move my module to be the first the students took, not the second, and we delivered this in September and early October.
I reworked a lot of the material, and will write more about the specific nature of that reworking in the future, because I learned a lot about delivering material online.
In broad terms, we made everything shorter, denser, and with more breaks - lectures became more like “episodes”, nothing over 25m without a break. We also ran shorter days - 11-5pm, rather than 9-6pm, as we were all on Zoom for most of the day. In that reworking and condensation, I think I got to some of the best versions of those talks; condensation, and the clarity videochat requires, really helped to focus things.
I also coached the teams on their client project, and this time around it was exciting to see them embark on their first project, with no idea of where they could go, or what they could get done, in such a short space of time. Everybody’s pitches came out great, and it was a delight to meet so many new people. I say something similar each year, but I say it anyway, because it’s true.
I was also grateful to colleagues and peers we could invite in as guest speakers - to everyone who came, thank you.
A change of venue
As mentioned, I’m not really using my studio space at all at the minute: there’s just no reason to be commuting. By September, I realised that this was going to be a longer-term change. I’m lucky enough to have a private workspace at home, and with some rearrangement, it’d be suitable as a place to work from. So, with some sadness, I handed in my notice at Makerversity. I’ve been at MV for almost exactly five years now, and was greatly enjoying the new setup in Vault 7. But right now, I cannot justify the expenditure, given how little I need to be there. And so I’m going to say goodbye, and work from the home office for a bit. Not how I ever imagined I’d leave MV, and the excellent Somerset House community, but there you go.
A return to CaptionHub
Finally, in October, I returned to a three-month contract with CaptionHub. They had some extra work coming up on their slate and an extra pair of hands that knew the project would be welcome to help deliver it. Given the uncertain nature of 2020 - and, to be honest, 2021 - it felt like a no-brainer to take a three-month contract with them.
In one sense, this project is ‘just’ a software development gig. But it’s a particular kind of engineering I quite like: a careful, almost standalone set of features that need as much planning as they do implementation. I’ve been focusing on swapping out some of the underlying premises in the code, in order to support future features, which has led to a lot of diagrams and thinking before embarking on a careful switch from one shape of the world to another. I have described this as indianajonesing, in reference to the opening of Raiders of the Lost Ark (and I should note, this is not my metaphor - I just cannot remember where I got it from). In our case, I’m swapping one set of code for another, and making sure nobody notices the changeover, and no-one gets squished by a giant boulder.
It’s going well, although it takes a lot of my brain and concentration (which is not quite in the supply it was in 2019). That often means there’s not space for much else at week’s end (I’m taking Fridays as days for personal work). But good work, with a lovely, thoughtful team, is highly appreciated right now.
Appreciation is the right note to end on. I’ve been very lucky to be able to take on all these projects this year, in a time when work hasn’t necessarily been easy for everyone, and I’m always careful to acknowledge that when talking about my own practice.
Right now, I wanted to acknowledge where everything was, and share what I could about the last few months. I imagine worknotes continuing in perhaps a less frequent format for the coming weeks and months, whilst I get back in the habit, and maybe find new ways to share my practice.
What I concluded, talking to the students, was not the frequency, but the act. Some writing beats no writing.
And hence: some writing.
Yearnotes, 2019
24 January 2020Another year - the seventh full one of working for myself. Just enough distance from the 31st of December makes for a good time to review what I got up to in 2019, and match up some codenames to projects.
Clients
Client work is, as ever, the major focus of my work.
I wrapped up my engagement with Captionhub at the beginning of the year. CaptionHub had been a highly successful project for me. I took the technology aspect of the project from a prototype to a fully-fledged product. The small team grew; the client built a technology capacity; I learned a great deal in the process. I finally had a chance to write this work up at length, and I’m glad I’ve done so.
I spent much of 2019 working at Bulb as Lead Technologist inside their Labs department. I’d summarise Labs’ role as “product invention and business development”. That is to say: we did R&D around future products and the business units they might spawn. We then worked out what would be necessary to bring those to fruition, from both a business and customer perspective. My role was to understand, explain, and prototype technology, leading technology inside Labs, working with the designers in the unit, as well as other developers, and colleagues throughout the business.
I learned a great deal about the nature of the power and energy industry, a little the specifics of high-voltage electricity, and a fair chunk about electric cars along the way! I greatly enjoyed everyone I worked with inside Labs - Alex, Claire, James, Jenna, Lachie, and Daphne - as well as colleagues throughout the organisation, many of whom went above and beyond to assist us with our projects and research. We also got to partner with some great people outside the business, and in particular, I enjoyed working on prototypes with Pam and Ling from Intellicharge; Bulb’s trial with Intellicharge kicked off in November, a little while after I left.
My engagement at Bulb wrapped up around Week 322 of last year. My time there was codenamed Highrigg.
Since then, client work has included work with After The Flood, IF, and the New Left Review.
Teaching
There’s been more teaching this year. With Hyper Island, I delivered the Digital Technologies module on their Digital Management MA for two cohorts: at the beginning of the year, in January, for the part-time cohort (who’d meet in London every month). This year, I also performed this role for the full-time students, in Manchester, in March.
I also worked on three courses for the Institute of Coding that will launch on Futurelearn in January 2020. Targeting beginners, they are two-week introductions to programming, web development in HTML/CSS, and UX design. I’ll write about them more very shortly. These courses were codenamed Longridge.
Products
In the background, I continued to explore a few avenues around physical products.
I continued to ship kits under the Foxfield label, although I’ve not introduced any more projects. Being honest, I find product support much harder than product development, and adding new products just adds new things to support. So I’m thinking hard about what to do there: how to simplify.
The big product I worked on was 16n. This had been rolling in the background for a while in 2018; in January 2019, I decided to stop dawdling and release it to the world. 16n is a hardware-and-firmware product, sure - but it’s also an open-source product. I don’t actually make any. (Well, that’s not quite true: I have hand-built a few. But in general, I don’t make them). Instead, other people - hobbyists, small businesses - around the world have built their own - and, because of licensing, sold them to others.
I’m happy with that trade-off. The thing is in the world; other people are enjoying it and making music with it. Every time I see a picture of one in somebody’s setup, I’m happy. Also, Richie Hawtin has one.
I continued to support and provide firmware patches for 16n through the year. And now I’m thinking about what successors to it might be in 2020: I have a few ideas about how to improve the core experience of the product. How I get those to market remains to be seen.
Still: without shipping very much beyond data, I shipped a thing.
There were also perhaps a few too many prototypes behind the scenes, which fitted around work during downtime. Some of these were no-goes; a few stalled at around 90%, as I baulked at what it might take to push them over the top. Next yea,r a lesson has to be only working on things with a more defined goal, and a commitment to make them real. If it looks like it’s fun, but might not go anywhere… probably something to stop sooner. A lesson learned.
And, of course, physical/electronic products are a small part of my practice. It’s often easy to chat about them in weeknotes when other, larger work is harder to talk about - and that doesn’t always present an accurate picture of my work’s balance. Again, something to think about next year.
And that was 2019. 2020 begins by wrapping up a few pieces of client work. And then it’s time to look for new projects!
As ever, do get in touch if you’re looking for someone to work with on the shape of projects - technology (particularly on the web), invention, R&D, prototyping and strategy, playful interaction, the boundary between digital and physical - that you read about here.
Onwards!
Latest work case studies, summer 2019 edition
11 July 2019The case studies on this website were getting a little stale. No more! I’ve just published lots of new case studies of individual projects over the past three years.
The big headline that I’m most keen to talk about is a long, detailed writeup of my work on CaptionHub - a project I worked on for 3.5 years, known in this feed as Selworthy. CaptionHub is an online tool for collaboratively captioning and subtitling video. I served as technical lead and pathfinder, taking the initial idea - the “what if?” - to a prototype and beyond into a shipping product, whilst the team grew and the product acquired clients. The write-up is detailed not just because of the length time I worked on the project, but because of the way the product changed as it developed and grew in scale. It’s a project that shows the breadth of my capabilities well, and the finished product is something I’m very proud of.
But there’s lots more in there too. Highlights include: an open source tool for musicians; teaching on the Hyper Island MA; building a digital musicbox; creating a Twitter bot for an installation at the Wellcome Collection.
The write-ups all include extended thought on process, and, of course, link back to the relevant weeknotes that I wrote during the process.
You can find out more at the updated projects list.
I’m currently looking for new projects to work on: technical leadership, early stage exploration, communication of ideas, are all areas I’m keen to continue in. Topic areas I’m particularly interested in include building tools for creatives and professionals, the bridge between the physical and digital, and audio and video. I’ve written more about my capabilities here.
Week 317
27 January 2019Finally, a week with the regular number of days in that began on a Monday! (From my perspective).
Over at Bulb Labs, there was a good groove of thinking, writing, and talking. Sounds so vague, doesn’t it? I worked on a pile of research and writing, where synthesis – writing – was as key as the research itself, so that felt good. I’m looking forward to seeing how that went down next week. I also spent some time just talking to colleagues on Slack as a way of building work-relationships; there were some fire-emojis by the end of the week, so perhaps I was doing something right.
Thursday, I went back to Captionhub – Selworthy – for a day I owed them prior to Christmas, that illness got in the way of. Nice to see the gang again – I managed to wrap the feature I was working on end-to-end, leaving it in a good place to get to deployment. I also helped debug a slightly strange feature in code relating to a file format I’m reasonably expert in now – turned out the bug was just some naive code I’d written a long while ago, and the fix wasn’t too hard to roll out. Exciting to see lots of other developments there, too – so nice to drop by.
I paid my taxes. Boring, slightly stressful, but out of the way. And now there’s some time in the coming week to sort out some accountancy. Admin has been a bit of an overhead recently: there’s not been too much, but finding space in the week to do it has been more challenging than normal. Hoping to get back on top of that fast enough.
16n got featured on Hackaday, which was pretty nice!
And finally, at the end of the week, I went along to Parallel Worlds at the V&A. I had a great day out, and it did what I hope conferences will do: blow some cobwebs out of my brain and open up some new ideas. My notes are reminders of small projects to pick up and continue with, alongside things I learned from the sessions. It was also great to catch up with friends across the London games scene, and hear what they’re up to. A good end to a good week.
Weeks 312-313
21 December 2018The final two working weeks of the year. In the midst of kicking off at Bulb, wrapping up at CaptionHub, and Christmas party season… I got a truly horrendous cold and spent several days in bed. Yuck.
So there’s not a vast amount to report. My personal Trello account tells me I spent much of those two weeks when not at clients mainly just doing admin. Otherwise, I tried to wrap up one last feature at CaptionHub – as well as a bit of troubleshooting around STL file formats – and started getting my handle on the role at Bulb in the few days I had there. So far, there’s been a lot to take in, but the little team in Labs is great, and I’m looking forward to getting underway a little more next year.
When I wondered why I was ill, it turned out that moving house, a long weekend of teaching, and a new gig all at once is a lot to take on board, and I think my body just said ‘no’. Endoftermitis is real: it’s like technical debt for your body, where you can no longer stave things off and it all comes crashing down. The only thing to do is to roll with it: accept you don’t want to get colleagues ill, do what you need to recover, remember that’s what the rainy-day funds are precisely for.
A quieter end to the year than perhaps I envisaged, then, but an end nontheless. Next up: two weeks out of the studio and the office, resting up, getting ready for 2019. And then we start again.
Onwards!
Week 311
8 December 2018A busy week, especially after the disruption of moving house.
I spent one day at CaptionHub on Selworthy, finishing up some the smart-quotes work and moving on to refining the design of downloading data.
On Wednesday, I finally finished some prototype builds of 16n, and they’ve come out beautifully. I’m hoping to open-source the whole thing before Christmas, and get those prototypes to the musicians I’m making them for.
Otherwise, I spent Thursday-to-Saturday teaching with Hyper Island: the first campus days of the Digital Technologies module of the Digital Management MA. I spent time earlier in the week refining and revising the course materials I’d be teaching – on Invention, AI and Machine Learning, and Data. The students were, as ever, a great bunch: engaged, sharp, and full of insightful discussion and questions. The best kind of classes.
I get Sunday off, and then on Monday, I go to Bulb for Highrigg. It’s going to be a busy end to the year.
Week 310
2 December 2018Busy week, in and out of the studio.
On Selworthy, I spent some time wrapping up work on a new ingest format, and then spending time staring into the maw of character encoding – and, in particular, working out what our policy on ‘smart quotes’ is – and coming to the conclusion that rather than doing something automatically, we should offer up an option to end-users as to what they want the default to be. And so there’s some more work to wrap up next week on the UI for that.
I continued with a bunch of work for next week’s teaching at Hyper Island – overhauling another talk, refining the brief with our pretend-client, going over what our guests would be doing. It’s going to be a bit nip and tuck to get things into place for next week, but it’s all going well, so that’s a relief.
As I hoped, the metal panels for 16n arrived – and they’re beautiful. Perfect fits, really gorgeous objects, ties the thing together. Good to know all my CAD worked out. Had to order some 1mm longer standoffs to fit the underside screws into, and so come week 311 I’ll have a final thing for myself.
And that was all there was time for: I moved house at the end of the week, which took me out of the studio. Hopefully we’ll return to normal service quickly.
Weeks 306-309
25 November 2018Time is elided at the moment: I’m having a deliberately quiet period between projects and whilst lots of non-work life is all rather busy. So weeknotes are a bit more spread-out. But still worth doing.
I’ve also started work on a new piece of personal process to perhaps make this – and a few other things – easier to manage. (Nothing magic: just using Trello to treat ‘myself’ as a project). We’ll see how that works out.
Sharphaw didn’t end up happening – at least, not in the planned format. There might still be some work there in the future, but for now, that codename and work is on ice.
I’ve been dealing with some metal suppliers from Germany and Poland, who are making prototype panels for 16n. It looks like the panels will be arriving in week 310, which is exciting for that project (and also to determine if my CAD work has come out correct).
In week 309, I spent the afternoon at After The Flood, taking part in a quick workshop. Always good to work with the teams they put together, and I think we got to some useful places in it.
I’m gearing up for the Digital Technologies module on the Hyper Island MA I’ll be teaching on at the end of the year. Some of the work has needed minor touch-ups, although there’s one talk that’ll get more of a rewrite in week 310. I’ve also been securing final guests, and nailing down the project brief for the students.
Longer-term plans are emerging, too. My time on Selworthy is winding down. I’m going to wrap up there by the end of the year. And I should really explain it properly, after 3.5 years! I’ll write it up in depth soon, I hope. Great ride.
And, in the meantime: dotted the _i_s on Highrigg: a part-time contract that’ll kick off at the end of the year, and we’ll see how we go from there. Meaty, a new set of challenges for me: exciting and scary at once. Sounds like a good thing to go into 2019 with.
Weeks 298-305
29 October 2018Lots of time without weeknotes. Oops. But: lots has been going on.
Notably, Lambrigg wrapped up. The final weeks weren’t too crunchy, thankfully: just somesome busy, intense days to get to the finish line. In the final week we designed and wrote a new demo, re-coded both demos so that they could be more easily shared with colleagues, finalised two hardware prototypes, wrote our report and presentation deck, and got the whole thing into a shippable state. Phew.
It’s been a really nice shape of project. A research and development piece beginning – about three months ago – with background research, interviews, design reporting, a bit of strategy, and helping colleagues in the management team develop strategy further. Then, we moved into prototyping some preferred approaches in a manner that could be taken further if needed.
Across the project, I’ve conducted research interviews, done desk research into design and technology, explored possible technical approaches, designed some game prototypes, built software and firmware in Python, Ruby, Java/Processing, and C++. I’ve designed, fabricated and built up two different custom circuit boards that interface with one another, and built end-to-end prototypes that interface with a computer. I’ve produced CAD models for those boards for Tim to design around. By the end, we had turned all that into coherent physical prototypes with working demos.
That feels like a lot. Meaty work.
And then, I promptly got ill with endoftermitis: the come-down after pushing perhaps a wee bit hard. So I was off for a bit, and I think that threw my weeknotes muscle.
Since then, I’ve been working on a few things.
Firstly, decommissioning Holmfell – Erica Scourti’s _Empathy Deck_ – now that the Twitter API no longer supports, well, doing anything fun. We’ve said goodbye, and now we’re working out how best to properly archive a web project. That’s entailed not just taking dumps, but writing documentation for future users on what they are and how to interact with them. For instance, I’ve been turning some of the most significant Postgres tables into CSV – after all, as I say a lot, Excel is the prototyping tool everybody has on their desk, so it’s good to leave things in a state that doesn’t require me.
It also turns out the project generated around 17gb of images in its lifespan, so I’ve been trying to archive that in the most space- and time-efficient way possible. Unsurprisingly, it turns out that a little rsync goes a long way.
Over on Selworthy, we’ve been thinking a bit about infrastructure and operations, and choosing our next focus for incremental, ongoing improvement. I’ve also been prototyping some new interactions, which are going to be much easier to integrate with the existing front-end after the overhaul the team made to our front-end stack more recently.
I’ve started the work around preparing for this year’s Hyper Island Digital Technologies module. This year, it’s more of an incremental overhaul on last year, but it’s been good to start thinking about the structure and narrative of the module up-front. There’ll be more work on that in the weeks to come!
I’ve started conversations about a small R&D project called Sharphaw, which ties together some of my experience and expertise to help a company explore taking the objects they make and connecting them to internet services – a bit of IOT prototyping, a bit of thinking about service design, and fabricating a few things.
And, over on the music technology side: a small production run of kits for Thonk, and wrapping up an open-source community project I’ve been working on for a good while. I’m hoping to release that in week 306!
Phew. That’s a lot. Let’s try to do this more often.
Weeks 296-297
3 September 2018Fortnightnotes, owing to a long weekend away over the bank holiday.
At the end of week 296, Lambrigg had its own internal demo; Tim and I were cranking fairly hard to get that done – three days of code, audio recording, hasty art direction and game design.
The demo went very well: really well received, clearly understood, and loads of good questions (which is always a good sign). Initially I was relieved – everything worked, we met our goals – but I also left the demo highly satisifed with the positive response and enthusiastic feedback: I thought we’d done a fair pile of work to get it to where it was, and the team communicated that they could see that. So that’s great. Tim and I regrouped at the beginning of week 297 to set direction for the final phase of the project, and that’s now underway.
Only one day on Selworthy this fortnight. I sat down with Erik and we went over his first spike of some heavy front-end replacement work he’s been doing. This ended up being a great day of remote pairing, with two notable successes. Firstly, the brief feedback I had so far was resolved easily and by the pair of us, and this proved that the new code was much more maintainable. We could add features and develop atop it easily – one of the things we hoped would be true already proving itself. And secondly, I managed to transfer a lot of knowledge to Erik about the next steps for that code – not just what would need doing, but how the systems he was replacing would work. Lots of things trapped in tangly Javascript and my head now out and shared in the world. I’m really looking forward to seeing the team’s progress with this pile of code in week 298.
The bank holiday weekend extended a few days either side for family obligations, and then, just as I got back to work in week 297, I had a day sick at home with a brief headcold. Annoying! I recovered over the weekend, so week 298 begins on Monday (with these notes).
Weeks 294-295
20 August 2018Weeknotes are quiet at the moment, mainly because I’m fairly head-down and there’s just not a lot to see or show.
Over on Selworthy, I’ve been fettling some issues that involve interfacing remotely with other people’s tools and workflows. That makes the feedback loop a little slow, but we’re getting there, and I’m pleased with the route we’ve taken. More excitingly, we’re working at overhauling some front-end code I wrote a long while ago and bringing it in line with our more modern tooling – notably, better data-binding and more efficient DOM interactions. It’s the last really large piece of legacy code: a significant chunk of the app we’ve just left alone for a while, and now’s a good opportunity to rework it – not just for rewritings’ sake, but also for performance optimisations, and importantly – from my perspective – passing on this large chunk of knowledge to the team. Like much genuine technical debt, it’s been worth holding onto for a while, and now it’s the right time to pay it off.
Lambrigg marches on to an interim deadline towards the end of the month. There’s been lots of fabrication and prototyping – this week, I’ve been wrangling Python, C++, and the finer details of I2C busses to bring things closer to life. I made a decent breakthrough at the end of week 294 that turned week 295 into a week of good pace and functionality development. I even finally taught myself to write C++ classes, which, it turn out, I should have done long ago: they work exactly like classes do in my head, and they’re making things a lot tidier. Hopefully my embedded code in future will become tidier!
And finally, in the minutes between things, I wrapped up a few prototype components for Musuem in a Box; I’m hoping to deliver those for week 296. Some time evaluating specific ICs was well spent, and I think they’ve come together well.
Week 293
5 August 2018What the stacks I’m working across currently contain:
- Ruby, Rails
- Javascript
- HTML/CSS
- the depths of AWS infrastructure(s)
- C++ / Openframeworks
- Java / Processing
- Python
- Embedded C
- CAD/CAM
- PCB EDA and manufacture
and, of course, they all join together: breadboards turn into schematics and circuitboards, which get exported to CAD tools for colleagues to design around; firmware for those boards gets written and ends up talking to Processing demo harnesses on my desktop. Software written on the laptop turns into code hosted on more complex, automated AWS infrastructures.
Some days, it feels like a lot to wrap my head around. When I write it out, I’m reminded that it is.
The week’s work took in some dives into performance work on Selworthy, going over some quite old code of mine and working out how to either improve it or mothball it – and if so, how to do so most efficiently.
Over on Lambrigg, I spent some time working up microcontroller code and hardware prototypes, exploring a new-to-me technology that we hoped would prove fruitful. So far, things are going well: a quick mechanical prototype and code demo works how I hoped, the simple circuit boards I ordered up for it have all gone together smoothly, and I’m hoping to carry on that work next week.
I also spent a lot of time just thinking on Lambrigg: moving jigsaw pieces around in my head. Frustrating, in that there wasn’t a lot to show for it, but I’m slowly understanding how pieces might fit together in future.
In other words: a busy week that’s quiet from the outside and fairly complex from the inside – not helped by the heat, which is making the act of thought truly challenging at times.
Weeks 290-292
29 July 2018I took week 290 off from Lambrigg whilst the team regrouped, based on our presentation at the end of Week 289. But come 291, I was back into it, and we were really diving into a period of thinking-through-making: ideating again, but this time with our hands, rather than via deskthinking.
And as a result, just right now, I’m a bit in the weeds. Which is to say: in this period of thinking-through-making, the thinking and the making are both proving equally hard.
The hot weather hasn’t helped with the former – I just haven’t had enough brain on tap some days. But the latter has become very fine-grained: I’m exploring techniques and materials by working with them, and it turns out that they are difficult materials to work with. So the progress is slow, as I try to bring my knowledge – no, my understanding – of what’s going on up to speed. Trying to get good enough at something for my sense of smell to kick in. I’d hoped that’d have happened by now, but it hasn’t quite. But I got some good steers from Tim at the end of week 292, so have a few things to try in 293.
Still, a busy few weeks, jumping around a big stack: writing some OpenFrameworks, waiting for said C++ to compile, spending some time collaborating on CAD via Fusion 360, designing prototype circuit boards (and CAD models of them), and getting those fabbed up. But the hard stuff is the programming – right now, anyway.
Selworthy marches on – a successful end to an initial R&D spike there (namely: we want to take it forward, and continue our QA tests on it) – and then back into some file format hexadecimal fun.
I’ve spent some time catching up with colleagues and peers in the past few weeks, and that’s been really useful. A long lunch with Nick from Playdeo; some good chats with Jim; and a long-overdue catchup with Mike. Lots of different perspectives to apply to the world and chat about – technologies and teams; narrative and design; objects and design processes. Really good for the brain, and lovely folks one and all.
I also spent some time meeting some Interim CTOs and talking about that particular role. I’m thinking a little about what broader shapes of work might look like in the future, and testing my appetites. This certainly helped put some of my own other work in perspective – understanding what I’ve grown at and where I’m going to have to get over some of my own tendencies or preferences if I want to move into a particular direction.
And all this after Matt W wrote a prehistory of weeknotes over on the Job Garden medium. I would apologise for the whiplash perspective shifts in my notes – from nice high-level progress down to a surprising amount of detail about chips or code or whatever – but I’ll be honest and say it’s semi-deliberate: a whole bunch of my work is about thought and abstraction and applying a long history of knowledge… but there’s also a lot that’s still about thinking with my hands, about developing skills and understanding through doing, and some weeks, I’m just stuck in the doing, so that’s what you’re getting in my notes. If you get whiplash… well, so do I, some days! But it’s some of the fun of the work, too.
Let’s get back on the wagon, though, because weeknotes become less useful at a distance: monthnotes have such a different feel. The point of this isn’t just sharing progress; it’s also for me, and being able to keep a closer eye on the shape of my weeks. If that means making the time to do them faster… that might be the way they get done for now.
Anyhow. That’s enough to catch up on these three weeks. Good progress all around, but it’s all making my head feel very full right now. Onwards!
Weeks 286-289
8 July 2018It’s been a while without notes. That’s mainly because I have a lot on: Lambrigg has been fair motoring, and multiple clients filling an entire working week means notes and admin get pushed to the weekends, and some days, that means weeknotes just don’t happen. My bad.
Fortunately, things are in a loosely steady state:
- Lots of work on Lambrigg over at Sensible Object to get through the first main phase of the project. That’s mainly mean I’ve been in a research mode – lots of searching, reading, thinking, writing, and also conducting a lot of interviews in person and on the phone. We got to a good place at the end of Week 289 to present our research to the team, and I’m very pleased with how that turned out. We’re regrouping, and then working out what comes next.
- Selworthy is moving apace: the team made some chunky infrastructure changes that all went very smoothly, and I continued some spelunking on more experimental work. The tech team is really solid – and growing – and my very limited time there is now down to advisory work or ‘special projects’. Which, at the moment, are proving to be challenging (the good kind) and challenging (the bad kind) in equal measure.
- I made a small but useful MIDI controller for Richard, which was a nice way to use some CAD work to push out a simple tool for a friend to control virtual instruments with.
- The other musical tool I’m working on, 16n, has moved forward a little, and in week 290 I should be building up the latest prototypes. More to report before the month is out, I hope!
- And finally, in other Sensible Object news, the team there launched When in Rome, their travel trivia boardgame for Amazon Alexa. I had a very small part to play in this – Selside was a piece of back-end tooling around content management and production for this game. It’s exciting to see it in the world and in the hands of strangers – who seem to be enjoying it. Congratulations to the whole team; it was a hectic final month and they pulled off something good.
And that’s everything. Let’s see if I can’t get these notes into something more regular for next week.
Weeks 282-285
10 June 2018Four weeks to write about.
Since returning from holiday, existing projects have motored forward, and a notable large one has emerged to take me through to the autumn.
First, my own work – Longcrag prototypes arrived, and I assembled them and flashed them. Excitingly, they worked entirely first time. So that’s really positive: no bugs on the software, no bugs on the hardware. The only question now is to refine the BOM, address any oversights in the hardware, and prototype a front panel. Then I have to consider if I want to manufacture the object.
I spoke to Emma about decomissioning our art project – we came up with a process we’re happy with.
I fettled some issues that emerged on Selside, dealing with feedback, and looking into moving it into production infrastructure. It appears to have continued to be a useful tool, so I’m pleased with that.
Selworthy motors as ever. I wrapped work on a feature that’s had me deep in Hex Fiend and building an internal library, which ended up using Braid to manage the dependency, and that turned out to be a tool I’ll use again in future.
Finally, a new project emerges: it’s called Lambrigg, and it’s a longer project with Sensible Object. It’s going to be several months of R&D in a space that combines lots of my interests and expertise – games, toys, interaction design, connected objects, embedded hardware. As an R&D project, I’m going to have to be fairly obtuse about it here, but it’s going to be a good few months of work, hopefully going from exploration through to prototyping. I’m excited.
And that means I’m pretty busy for the next few months, in lots of nice spaces: a little web and software work on Selworthy, my own music/electronics projects, and my main focus on Lambrigg for a few months. Good stuff.
Week 279
16 May 2018A very busy week before vacation.
I spent my Selworthy time wrangling Javascript and discussing infrastructure with the team – finalising swapping out a major library before I went away.
Selside was a fairly crunchy race to deliver a fair few features. As the recording process went on, lots of necessary tweaks emerged, to match both the human processes and the needs of the developers. That meant adding new fields in the system, adding pages and functionality to make the users’ lives easier, altering the data model to match the needs that weren’t immediate at the beginning, and so forth. One thorny issue kept me busy on Saturday morning, but other than that, enough was in place to make the work whilst I was away possible.
I spent Wednesday and Thursday with some of the Makerversity crew supporting an internal hackathon for a corporate client. This turned out to be a lot of fun: helping teams develop and design product ideas, introducing them to some design methodologies, and in my case, supporting a lot of people’s electronics builds. Lots of people designed their first serial protocol, and my major takeaway was discovering how good the Node serial tools are for working with Arduino boards. Definitely enjoyable, and great to spend some time with some of the extended MV family.
Finally, I ordered various prototyping parts for some Longcrag projects: the revised version of the Corex-based board, and some final drafts of boards and panels to arrive whilst I was away.
With all that out of the way, I stuck the out of office on, shuttered the studio, so to speak, and headed out for a two-week holiday. Normal service resumes in week 282.
Week 278
23 April 2018Firing all cylinders this week, with a full slate of work and good progress.
A day on Selworthy spent discussing infrastructure with the team, fixing some minor issues, and continuing the work last week on replacing a key video library.
Several days on Selside with the Sensible Object team. Lots of features added including on-the-fly transcoding, helping the content team preview that transcoding, working to integrate the management tool with development, and chatting to the audio and content teams about quality-of-life improvements. It’s really become an end-to-end tool already, which is great – what it needed to be – and it was satisfying when, after a lot of measuring twice before I cut once, we successfully back-transcoded all the files that had been uploaded before I added that functionality.
After last week’s slightly unsatisfying end to the week on the Longcrag R&D, this week was much more successful. On Monday I sat down with a hot-air gun to debug the shorts on the board I’d made last Friday, and sure enough, it was paste that had flowed under the chip. So I started fresh, using the Makerversity stereo microscope to triple-check my work. The microscope helped, but now I’m definitely happier about soldering QFP packages by hand! I added the few patch wires I knew I needed, and still no joy.
I returned to the EFM32 datasheet. Bear in mind that when we say ‘datasheet’ for a 32-bit microcontroller, these things can be hundreds to thousands of pages long. Anyhow, early on, it was made clear that regardless of whether or not I was using the ADC, I needed to be supplying the analog voltage reference with power as well for the chip to even function. I was a bit stumped on how to do that – the two pins weren’t connected to anything. It looked like it was time to tweak the board layout and order a new prototype.
After bashing heads with a friend on Friday lunchtime, I realised that we could just bridge a whole pile of pins on the south-side of the chip to connect the AVDD pins to VCC. So one more big blob of solder… and all of a sudden, the J-Link I’d connected to the headers I’d broken out detected the chip. One click from the Silicon Labs IDE and the code was flashed to the chip.
This was hugely exciting, and I quickly populated all the remaining parts on the board to confirm functionality. Sure enough, everything worked as expected: backwards. I’d added transistors to all the outputs for protection and to lift the voltage… so all my outputs that were driving them high now needed to drive them low. I rewrote some code, and it just compiled, flashed to the board… and worked first time.
After Monday’s debugging, Friday’s fixes were only an hour or so after office hours, but hugely successful: I had confirmation that, largely, the board layout was fine and the only issues were my understandings of MCU power requirements. I had the confirmation that my code works, and the confirmation that my custom programming header was fine. I also had confirmation that for all the pain points, this was definitely the best 32-bit MCU environment for my needs for now – I was seriously considering junking all this and moving to STM32.
So now the board looks like this:
…and it works. All those jumper wires and that huge solder blob at the bottom of the chip are my fixes and patches – what hardware bugfixing looks like!
Whilst last week’s R&D was frustrating, I know that the plan of attack I formulated for Monday was the right one, and as expected, it was a minor error on my part that was leading to major frustration. Firmware and hardware always demand a calmer mind on my part, and good to see it paid off. And, best of all: I immediately know what the next steps are, and I have the platform to build upon.
So: some successful days of client work, and an eventually-successful period of R&D with some good learnings; that feels like a strong week.
Week 277
17 April 2018Three things to talk about this week: Selworthy, Selside, and soldering very small chips.
A day on Selworthy focused on Javascript – replacing one video library with another, writing a plugin to make that transition easier, and tidying up some code. By the end of the day, I had feature parity between the old version and the new, which is good: it’ll make swapping that in easier, and make future features possible. A little painful returning to some many-years-ago Javascript, but good to see that some of the decisions I made a few years ago still made sense.
Like a Pokémon from a bush, a new piece of work has emerged, called Selside, working with the team at Sensible Object to build a piece of tooling for a new product they’re working on.
The tool is not complex, technically: it’s just a web UI for content and asset management. It’s a task I often end up doing: replacing or augmenting a spreadsheet that’s beginning to serve more tasks than just a collaborative spreadsheet can.
But the tool is more than software: it’s also about building a workflow. It has a lot of stakeholders across the company, with equal but very different needs, and various needs to balance. They also needed to start using the tool ASAP, so in three days I built up a first version – perhaps more an MVP than a 1.0 – and they started using it.
This is a task I quite enjoy, because tooling always turns out to be more than just tooling. I’m going to spend some time over the coming months continuing to develop the tool and integrating with more stakeholders. I also hope we’ll develop the workflow itself – incorporating feedback from across the team, to make the process the tool supports better.
In “hardware is hard“ news: the Silicon Labs prototype I’m building is… proving challenging. My first attempt at hot-air reflow with a stencil to solder the QFP48-sized package microcontroller looked successful. However, bring-up failed badly and it looked like I’d managed to first bridge 12V and GND – easily fixed – and then, more annoyingly for the microcontroller – I’d also bridged 3.3V and GND somewhere in the reflow process.
Try as I might, I just couldn’t fix this second bridge. In the process of trying to fix it, I fair mangled a pair of QFP microcontrollers. To make things worse, owing to a busy week, I managed to do all of this late on Friday, which made me feel pretty rubbish – it felt like a lot of my problems were coming down to poor dexterity on my part. And, after a week of successful client work, I’d hoped I’d be able to have similar successes with my own, self-initiated projects. Instead, it felt like I’d ended the week on a low.
But there was time to think about it. The real lesson here is not about soldering tiny SMD packages; the real lesson is about binding my identity to my work. Sometimes, when work is hard, or goes badly, I feel bad about myself. In fact, this is just a small blip. If it had worked, maybe there’d have been issues with my board layout that required a second run, or the code might have needed more work than I realise. So it’s not like this is the massive blocker that defines the project.
It also made me realise it might help to re-evaluate why I’m doing the project, and set some explicit goals for it. Because I think there’s still reasons to be doing it, and I it might help to check if I’m meeting my goals or not. And perhaps it’s then worth taking another crack.
Weeks 275-276
9 April 2018My time over the fortnight around Easter was spent on some Selworthy R&D, wrapping up a Foxfield production run, and continuing various pieces of hardware R&D.
Over on Selworthy, I finished up my first pass at the stand-alone library I’ve been working on and delivered an end-to-end test of its output. In week 276, I moved onto R&D around HLS video streaming – not only the various FFMpeg incantations to generate it, but also exploring how much of our client we’d have to replace to implement it, and how best to retain feature parity. The answer is that the key features will transfer over fine, but we’re probably going to have to replace one particular video library, and so my continued scoping – for now – will be about delivering that feature parity.
After various pokes and prods, my PCB vendor in China delivered a batch of front panels that were correct – following some production delays – and that meant I could box up a Foxfield/Longcrag production run and send it to Thonk.
This also confirmed my new approach to panel manufacture is successful, and that opens up some of the otherwise tight margins on future Foxfield products – which are nearly ready to offer up, I think.
Over on the 16n project, we saw our first prototype aluminium panel, which looks great. The next move is to make a full prototype of this version – version 1.25 – and confirm everything fits as expected. I think fit/finish will be fine; the key thing is confirming sizes of standoffs and screws. Once that’s done, we’re on to looking into manufacture routines.
As part of that, Brendon shared some calculations he’s previously used around costings for hardware runs, which were really illuminating, particularly for understanding how much that looks like ‘profit’ is, in fact, really just margin and contingency. It’s helped me understand what a particular idea I currently have might involve, too.
I also continued work on a small Longcrag prototype that I’m designing for manufacture. Will this ever happen? I don’t know. Why do I keep spending time on it, then? It’s a good question. It’s certainly intellectually interesting. And I’m learning a lot. It’s definitely not hit a NO GO condition, though it’s getting nearer to that point, perhaps.
On this DFM prototype, I assembled a test board. This is significant for a few reasons; notably, it’s the first board designed around the Silicon Labs chip I’ve chosen to use. That chip happens to be in a QFP48 package, which is about at the limits of what I’ve previously hand-soldered and, sure enough, it turns out my hand soldering is possibly not up to the job. The idea is to build up this prototype, and flash it via the SWD interface I’ve broken out on the board. That would prove that my layout for the chip and SWD interface were correct.
I spent a lot of Friday trying to do this over a JLink, with no joy. It’s not clear why, however. I patched a minor mistake on the board, tested the pinouts with a multimeter; I am pretty sure the board is correct. But it still could be a manufacturing fault – ie, my soldering. My plan for next week is to use a stencil, solderpaste, and a hot air reflow station to try to make a more definite connection between the QFP48 and the board. If that doesn’t work… I might be throwing my hands up in the air, into a NO GO configuration.
Why would that be a NO GO? Because it’s tiring, and I’m heading towards a point where I’m no longer learning or moving forward; all I’ve got to is a sticking point, and maybe going around would be better. But we’re not totally out yet. So another afternoon on this, still. I remain hopeful. Of course, if this is a GO, we open a whole new set of GO/NO GO branches – finishing firmware, for starters, and then trying to work out if there’s even a market for this.
I also managed to fit in some more social engagements. I spent a nice lunchtime with Nick and Timo at Playdeo. Mainly just a catch-up with old colleagues, friendly chat with peers in the industry, but also good to talk shop with other people working between technology and design, gain some perspective, and tickle each others’ imaginations. Good for the soul.
And on Friday, I got over to a BBC R&D event exploring the artistic application of voice assistants, pairing technologists with musicians and sound artists. Some familiar and new faces, some great performances, and good chat afterwards. Also good for the soul.