Posts tagged as lowick
- 20 November 2020
I 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:
READMEs 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 fiction
At 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.
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.
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.
- 11 July 2019
The 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.
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.
- 8 December 2018
A 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.
- 2 December 2018
Busy 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.
- 25 November 2018
Time 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.
- 26 February 2018
Into the deliberate gap between projects, then.
I spent a day with Selworthy, going over what my future engagement with the project would be – something between ‘more consultational’ and ‘limiting getting hands dirty to stuff I know best’. For now, a little more handover with a new staff member, and some consultation around specific features.
Wednesday saw a debrief on the Hyper Island teaching from the course co-ordinator. Overall, it was really very positive indeed, so it seems like I’ll be working with them again at the end of this year. Really glad that the students enjoyed – and took a lot away from – the teaching, and also that they were so positive about the my peers and colleagues I invited as guest speakers. Good stuff.
I had a good chat with Rachel on Friday morning, largely about technology and our practices; it’s nice to finally have the time to catch up with peers and see what’s tickling their brain.
I also had a chat with a few folks from Sensible Object about some technology planning, essentially acting as another brain to pick, and that was I hope useful for them.
I spent some time on an engineering tip, prodding various electronics projects further along, and also sending a CAD project to be fabricated. I’d needed a particular object, and it seemed like a good time to brush up my Fusion 360 skills and get a snap-together case 3D printed. More on that in due course.
Finally, I received a new order from Thonk for Foxfield products, so started taking inventory of what I had in the studio – both in terms of complete kits and parts – and started building up an order. That’ll likely continue into Week 271, and then the ‘waiting for parts to arrive’ process will begin.
Steve also inquired into the state of the (at least) three new products on my slate. The answer is that they’re into that final 95% – namely, needing documenting and ‘productionising’, the name I give to ‘sorting out BOMs, documents, pricing spreadsheets, and making things produceable on demand’. This work is likely to kick off in Week 271.
- 1 February 2018
I was always expecting January to busy; it turned out even busier than I planned, and the first casualty of that was Weeknotes. I also know it probably shouldn’t have been – that weeknotes are a useful part of process even if I’m thin on capacity, and that I should make them lighter rather than skip them.
Anyhow. Here we are. Let’s run down what’s been going on:
Weeks 261 and 262 were the Christmas holidays. Very quiet, very pleasant, much-needed.
A second, concluding set of class days for Lowick, the Hyper Island Digital Management MA. I prepared three new sessions for this, called Data, Crypto, and a final one on real-world experience of digital projects. I’m particularly pleased with the Crypto session: in 60-90 minutes, it covers cryptography from a Caesar cypher through to crypto-currencies, with detours into polyalphabetic cyphers, how an Enigma machine works, how public-key encryption works, and what’s going on when you visit an HTTPS site. It turns out if you start with the simplest, pen-and-paper stuff, you can build on top of it until you have all the components to talk about other things. On top of the sessions, we had a few more guest speakers and sessions in, which went well, and the students presented their responses to their brief. All of them were super-impressive – they’d improved each day I’d seen them, and noticeably since their first days on the module. A great conclusion to my work on the course. And: perhaps there’ll be more things resembling this kind of work in 2018.
I spent a lot of January working on Gummershow, building a digital adaptation of one of Emma Smith’s works for the re-opening of Kettle’s Yard in February. That’s nearly complete as I type: some last adjustments to make. Lots of small details to work through, and at one point, a frantic afternoon of tearing out phantomjs and replacing it with puppeteer. (That turned out alright – it turns out puppeteer is very impressive, and was a fairly straightforward replacement). I should have more to write about this next week.
Over on Selworthy, I focused on a few areas, notably, integrating with an external API; fixing rendering issues with, in particular, Arabic typefaces; and the usual fettling and ongoing improvement. We also had some good architectural discussions about the future.
It doesn’t sound like much, but it was fairly wall-to-wall – producing material for teaching, running classes, and then straight into a installation software build. And now it’s done. I’ve joking said to a few people this month that I’m still in 2017, and that 2018 begins for me in February.
Well, it’s February now. Happy new year.
- 11 December 2017
Really busy this week, although not a lot to say for it!
A day on Selworthy to wrap a first spike of an API integration, although my colleagues have reminded me it really does need tests writing, so perhaps time to sit down and really learn vcr.
Monday and Wednesday were spent putting finishing touches to materials for Lowick – the Digital Technologies strand of Hyper Island’s Digital Management MA.
Thursday, Friday, and Saturday, I acted as industry leader on an intensive workshop for the part-time MA students. Very intense, but very satisfying – lots of really strong discussions and exciting to see the journeys they were going on. Even in the brief time we had you could see seeds of ideas slowly unfurling. They were a lovely group to work with. It was also great to be able to get Henry, Wesley, and (some of) Strange Telemetry in to talk to them, set briefs, and run workshops; always proud to share the work of talented colleagues with others.
By Saturday night I was very much done in. Phew. A couple more weeks and then this year is done, and I’m looking forward to that Christmas break.
- 4 December 2017
Oops. Missed a week. There’s a lot going on at the moment:
- I set up a first meeting with my collaborator on Gummershow. I tend to find that a day sat with an artist to confirm the brief and spec is much better than any number of phone calls. So we organised a day to sit with each other and sound out the idea. I think that’ll also lead us to discovering some unknown unknowns much faster, and hopefully lead to some new conclusions. I’m looking forward to that.
- I started writing lots of course materials for Lowick. To briefly decloak: in week 259 I’m going to be running workshops for Hyper Island’s MA in Digital Management. I’m the ‘industry lead’ for the digital technologies section of the course; over two intensive sets of campus days, we’re going to be diving deep on some ideas around digital technology practice and culture, and exploring some of the squishier, important edges of these issues, particular around cultural and ethical issues. I’m excited by the guest speakers we’ve got to challenge and provoke our students. Should be good.
- I spent my time on Selworthy working a lot with APIs: continuing to expand our inbound API, and then working on some integrations with third party systems. Great to see what was once architectural work turning into features.
- And finally, I wrapped up a phase of Longcrag collaboration work, with the largest circuit board I’ve designed to date. The firmware’s all working and the BOM’s pretty much good to go, so it’s time to share it with the community that are interested in it.
- 20 November 2017
Two weeks with some time off in the middle.
Selworthy is settling into a bit of a rhythm now. Reviewed some pull requests, discussed architecture, fettled some infrastructure, and found time to review how the renderer works and tweak the way we’re using FFmpeg on it. Up and down the stack like a yo-yo, but we’re seeing some sizeable features being released much more quickly.
Some prototypes arrived for new Longcrag/Foxfield products from Aisler. I’d been seeing how Aisler compared to OSHpark, who for me, are still the gold-standard for prototyping. (Mainly because: their software tooling is clear and excellent, and their turnaround times, despite posting from the US, are about the fastest I’ve found). Aisler have pretty good tooling and previews (despite a confusing checkout process) and the turnaround time was comparable to OSH. I’d hoped being in Europe it’d be a tad faster, but it worked out about the same. Still, very high quality boards.
I built up the prototypes and they worked well – in that they worked, were clear to build, and had almost no silking errors on my part. So that means I’ve got three new products to get out early next year – there’s still documentation to write, BOMs to get made up, and see if the wholesaler will take them. That also means that once some admin around them is done, I can return to the Arm prototype I was working on a few weeks ago.
On Lowick, I started conversations about the content of the course and what I’d need to get done. I also started phoning and emailing colleagues from across – and outside – the technology industry to see if I can get them involved. That seems to be going alright.
In the middle of the fortnight, I went out to Berlin for Ableton Loop. I really enjoyed Loop last year; I equivocated a little about going this year, but then remembered how it left me feeling, and that made it a no-brainer. A good few days: met some new folks – perhaps even made some new friends; went to some great sessions (especially the electro-acoustics and haptics sessions); saw some great artists perform; played a bit of music myself; and put my brain into a different context. It’s an engaging, thought-provovking event that’s well-run, and so very different to many of the contexts I’m usually in. It was thought-provoking as a designer and instrument-maker; challenging as a musician; but it was also a bit of fresh-air, warm, welcoming, open; good for my head. I can recommend going to event and conference that might be more tangential to your practice than you’re used to: with any luck, it’ll probably provoke far more new ideas than what might pass as rearranging the furniture.
- 1 November 2017
Bullety notes for a handful of projects:
- I wrote a pitch document for Gummershow, as a way of unravelling the problems, presenting them back to the client, and making reasoned estimates. It’s given them something to think over, and has helped frame what’ll be required to pull it off.
- I said “yes” to Lowick, and started seeing what getting the ball rolling on that would be like.
- I ordered some prototypes for Longcrag/Foxfield from Aisler – I needed new protoypes for the latest round of changes, and want to see if Aisler is a viable alternative to OSHpark – they seem about as fast, cost about the same, but are based in Europe which might become an advantage.
- 23 October 2017
Lots of things to talk about, plus a story about debugging, because I’ve not talked much about what working looks like.
Not a lot to report from Selworthy: post-deploy, we’re beginning to work out what’s next, corralling future plans, and I think now is a good time to re-examine process. It also looks like I have a few days of sysadminning ahead of me – never my favourite task, but doing just enough to hand it off to somebody else at least means it’s a finite task.
I continued typing away at Cleeve. Only a few big projects left to write up, but there are definitely some second drafts to come.
A couple of phonecalls and meetings mean that there are two new things on the horizon and inches from actualisation. Let’s call them Gummershow (gummers-how, not gummer-show) and Lowick for now. Should have more about these next week.
And over on Longcrag, I continued hacking away at some embedded code and learning a few things on the way. Let’s talk about how that’s going.
My development setup looks like this:
At the top is the Silicon Labs development board. At the bottom is my test harness: rather than having a messy breadboard, I designed and built a simple circuitboard containing my test hardware – a button, a switch, some jack sockets and LEDs, and a pinheader to connect them all up. That can just be put straight into my breadboard as an intermediate between it and the pinouts of the development board. Much easier to work with. (Why isn’t it a ‘shield’? a) It’s cheaper – PCBs are priced by size but also b) I don’t know which pins I want to work with yet. This lets me choose and change my mind).
The code is all running on the Silabs board, and I’m able to debug it over the USB line. Proper watching of expressions and variables here – a huge quality-of-life improvement over printing strings to a serial port.
I had the code working end-to-end last week, and had been compiling it in the ‘debug’ profile. I swapped over to the ‘release’ profile to see what would happen, and the answer is: a bunch of things broke in unexpected ways. After eyeballing my code, I altered my approach to debouncing, but no dice.
I decided to stop using my eyeballs and start using the right tool for the job – so I fired up the oscilloscope. One pin in particular, which ought to light an LED for 50ms, was blinking imperceptibly. I used the scope to time it. In ‘debug’, it was blinking for 50ms; in ‘release’, it was blinking on for 390µs or so. Not what I had in mind.
I continued poking to no avail; I ended up wiring a pin into the oscilloscope and using it to debug all manner of variables. The system clock was running correctly; all the timing code was behaving correctly; evidently the error was somewhere else.
I decided to look at something else – another output that ought to toggle on button presses and would, unreliable. I discovered that it was not staying lit but bouncing, imperceptibly – a tiny square wave of pulses before it settled into a state. And the scope told me those pulses were 390µs wide.
And that was the key that cracked it.
The bounce indicated that the variables was altering, but far too fast – it was being changed in the main loop, when it really ought to have been changed in the system tick. That was a mistake – when I corrected it, things started working correctly.
The real key to understanding the problem, though, was the duration – 390µs – being exactly the same as the burst on the other LED. It turned out that in the ‘debug’ profile, when the board runs slower owing to all the other things it’s doing, the main loop was taking more than 1ms, and so the problem never emerged. In the debug profile, the main loop was taking less than 1ms – probably around 390µs, in fact – and the problem reared its head.
It took what felt like an absurd amount of time to solve this problem – about a day and a half, I reckon, over this week and the previous one. But when I solved it, I felt satisfied: I’d gone from ‘trying everything’ to real diagnosis – and debugging software on an oscilloscope. (It also reminded me about the value for the right tool for the job. Sometimes, I wonder if the scope is a bit of an indulgence – and every time it turns out to be exactly what I need, I am super grateful for it).
Embedded code, eh. I’m hitting a point with this where I think it might be time to think about building a full prototype. Erk.