08 April 2019
On holiday. No weeknotes! Back for week 327.
01 April 2019
At the beginning of the week, I made headway at Highrigg with a code integration. I don’t normally go in for code generation, but for a quiuck prototype, feeding someone else’s Swagger-based api into
swagger-codegenfeels like exactly the right thing to do (and, of course, just what Swagger is designed for. And: it largely worked! By which I mean, we had a command-line Typescript demo in around an hour. That means I can take a stab at prototyping something else in due course, and perhaps move to something more bespoke in time. But it’s a starting point, and nice to see all the moving pieces working.
I also continued to work on wrapping up the workshop from the week before with some review work, as well as pushing a web project a little further forward.
Thursday was first non-client day in the studio in around a month. I put together some new boards of an internal electronics project that’s been going on for ever. for the first time, I managed to solder QFP packages without a hitch (mainly thanks to a good magnifier and a lake of flux).
The QFP package in question is a SAMD21. I’m making a board that has a microcontroller on it, but also a USB port. Thanks to Microsoft’s UF2 bootloader (which is a brilliant bit of engineering), it should then be possible – once i’ve correctly flahsed the bootloader to the chip – to either program the board from inside the Arduino IDE… or to just drag a .uf2 file over to it and let it flash itself automatically. The idea is that hobbyists can hack on the object, but people uninterested in code can patch firmware with a usb cable and drag/drop – a nice way of doing post-launch patching.
After a few hours of soldering in the morning, I then spent an afternoon working on trying to get UF2 bootloader onto the board. SAMD21 For Dummies has been a useful port of call but it was Tod Kurt’s notes that got me over the hump (along with remembering a key detail from an earlier error message). I spent ages with no avail trying to flash it with an STLink debugger; a Segger JLink proved to be just the ticket. And then, having flashed it with the debugger… it appeared on my desktop and behaved over USB.
A good victory to end the week on.
Week 326 is a vacation. I’m actually writing this from a sofa in the Lake District, where I can say I did a first: I climbed the hill an active project is named for! Yesterday, I took myself to the top of High Rigg. I wonder if that coincidence will ever a happen again.
18 March 2019
As expected, the past couple of weeks have been really intense: Monday and Tuesday up in Manchester, teaching the Digital Technologies module up at Hyper Island, before three days at Bulb back in London.
Teaching has gone well. Lots of content delivery up-front in the first week – skewed that way perhaps more so than was ideal, owing to time. As well as my usual lectures on Innovation & Trends (picking apart how technological trends are perceived and the major ones that have really underpinned the past decade) and AI (“How Computers (Don’t) Think”, a favourite of mine) I ran an afternoon workshop on programming.
I’m always wary of teaching programming and coding – especially in short periods of time. It can be really unsatisfying to deal with syntax errors or tooling issues early on when you have a very limited window; I’d rather spend that time usefully learning something. So what I did was focus on the feel and practice of programming. We used Google’s Blockly visual language, and, having learned a little about it, focused on its visual interpretation of Logo.
It’s no secret I’m a huge fan of Seymour Papert and his team’s work on Logo. It’s such a smartly designed domain-specific tool – but it also manages to take us on some useful journeys. By using it with the visual Blockly language in a browser, we avoid needing development environments or having ugly syntax errors. My idea then was to anchor what was happening in the Logo world back to programming practice. To that end: we learn about algorithms, and iteration, and variables and function (nouns and verbs) – before going into problems that require more conceptual modelling. Logo even gets you to debugging and ultimately refactoring quite nicely – going from describing individual turtle movements into abstracting them into verbs like
HOUSE, and then improving those to take sizing as a variable. You go on a useful journey without having to do too much tooling.
As a first run of a new workshop, it was alright – it’s a little longer than I realised, and it’s appropriate to spend a good while on the first few training runs to get everyone up to the same level. But hopefully some insight emerged, and it’s certainly something I’d like to revisit.
We also got a brief from our client in the first week, and much of my time in the second week was spent coaching the teams on their responses, helping them focus their discovery and ideation phases. In week 325 I’ll be doing some more coaching and then visiting their client to watch their final pitches.
Back in London, Highrigg entailed a moderate amount of coding and refactoring, a decent number of (useful and/or interesting) meetings, prepping a short talk for an offsite workshop, an excellent day workshopping with a good number of colleagues, and beginning to write that workshop up. Hopefully I’ll finish that delivery in week 325.
And that was it. A circuit board arrived for build-up, but I’m not going to have space to do that til at least week 326. In the meantime, it can sit on my desk, tantalizing me.
04 March 2019
I’m sat in a hotel bar in Manchester. I’m teaching at Hyper Island for the next two days, and for a handful of days across March. The same course as before, but with the full-time students (in Manchester) rather than the part-time students (who come into London once a month). Looking forward to it. I’ve just revised a pile of talks, and a new workshop on programming, and I think we’re good to go.
Another couple of weeks on Lambrigg: reading documentation, writing code, having meetings, moving office, inching software closer to deployment.
I sent off the SAMD21-based circuit board to America for fabrication – that should be back in a few weeks’ time, to bash together, and see if I can make a micro-USB port work on it. But for now, waiting for factories to do their thing.
Otherwise, I spent the days between Lambrigg prepping for teaching, and having some impromptu meetings: I caught up with Charlie from Museum In A Box to talk audio, electronics, acoustics, and fabrication; I also spent some time with a few friends talking about sound and augmented reality, and have been continuing to think on that ever since.
And now: bedtime, before an intense couple of days.
17 February 2019
Weeknotes are quite (deliberately) simple this week.
Over at Highrigg I did a little writing, a lot of talking – some meetings, and one meaty design chat that got us to a good place – and a moderate amount of programming. That code took a project to some much better places: it’s now working off live data, which is easily replaced over time. To do that I had to wrap my head around Knex‘s approach to migrations and querying (which turned out to be largely sensible). I also discovered that whilst I still flail a little in lots of deeply nested React, Typescript on the backend is working out OK for me. I still miss Ruby, though.
And then, not on Highrigg, I:
- finished bagging a bunch of kits and posted them to Thonk (after having my bacon saved by Clerkenwell Screws – what a shop!
- nearly wrapped the design of this SAMD21-based circuit board, and ordered the rest of the parts for bringing it up.
- kicked the tires on some ideas for a programming workshop I’ll be running next month. Nothing massive – 1-2 hours – but using some visual programming tools to explore some key ideas around programming, whilst telling a meaningful story about it at the same time. We’re going to be doing a bunch of logo-ish work in a Scratch-like language, and hopefully go from ‘driving the turtle’ to ‘making programs that make sense to other people’. I think some of the pillars of the session are emerging. I should be writing that late next week.
And look: I did my Weeknotes on time, too.