18 August 2015
A busy fortnight, bringing Twinklr to life, and pushing Selworthy along its landing approach.
Selworthy continues on its flight path, roughly in line with our plans and projections. The current work is to re-architect the project a little, so that it can live entirely inside a firewalled internal environment. Initially, we built it using web-based services, and so we're slowly removing those. The main work there is building a secondary application to handle media encoding and processing, replacing Transloadit.
As a result, I've spent much of the past few weeks neck-deep in Sidekiq and Redis, to build asynchronous queues; in Vagrant, building up virtual machines to host the new architecture (in order both co get a better understanding of the live environment, and to take advantage of XSendfile); overhauling lots of tests, and finding out about the finer details of CentOS (as I'm usually a Ubuntu user). Lots to take on board.
And sometimes, that means diverging from the shortest route between two paths. The port to Vagrant began when I needed to serve the app through a real web server; that felt like a detour, and the days spent on it felt like a digression from my critical path. When I'd finished the work, though, it turned out I'd not only achieved the goal I was setting out to, but also derisked some later work. It felt like slowing down; in fact, it saved me time. So I'm reminding myself to trust my own competency: if I've made a decision, it's probably a sensible one, and right now, sensible decisions trump fast ones.
By the end of these two weeks, the project is in a really good place: the new architecture works, is tested, and I'm more confident in it. I have a good map in my head for what's coming next, too. So: onwards!
Meanwhile, Twinklr made some great progress.
The PCB manufacture I'd been exploring in the past couple of weeks didn't turn out so well: due to various misunderstandings with the way Fritzing labels files, and some misunderstandings with drillbits, the home-made PCBs weren't particularly satisfactory. On the plus side: I know they're possible to build. However, I've explored getting some simple boards made – from the same layouts – with Ragworm, and look forward to seeing how they turn out. So despite my own PCB manufacture process not working out so well, it's been useful to wrap my head around the design process.
Richard came down for an afternoon in Week 147. He brought with him the crank handle, attached to a rotary encoder, and quickly held together in a prototype jig. After some staring at a data-sheet, we wired the encoder into my circuitry, plugged into the tablet, and fired up Twinklr.
What happened next was we lost quite a lot of time in the best possible way. We spent a while just playing with the sequencer, tweaking and adjusting the code to fit the feel of the handle, and seeing what suited it. We spent some time sketching and discussing what the final enclosure will look like – something beautiful and very much like an instrument; I spent a while looking at pictures of the old RCA theremin (in which the instrument was also its own music stand, and designed like a piece of furniture).
I'm also using the Chrome Web MIDI API to let Twinklr control other instruments: we're interested in how other musicians or performers might adapt it with their own work. I wired it into my Microbrute and we spent a good while seeing how the crank-handle sequencer felt attached to the analogue synthesizer; it turned out to be a great fit for a performative, tactile synth.
It was great to see the project coming together, even if we only spent an afternoon together. Very pleasing to feel it working, and to begin to see the opportunities and edges for what to do next with it. The next immediate step, though, is building it up, and I've given Richard all the electronics to explore enclosing it. Good stuff.