Current projects: intelligent juggling balls, Radian, ski jacket.
I’ve been doing some board layout for the juggling ball prototypes. It’s a tricky problem: we want to stuff a bunch of SparkFun breakout boards into an actual ball and toss it around to see what the LEDs look like and what kind of data we get from the sensors. There’s so little space inside that we can hardly make room for physical wires, besides which it’s just a nuisance trying to cut, strip, and solder all those little bits, so I’m designing a simple PCB that will route signals between the various breakout boards. I have about three and a quarter square inches to work with – definitely a challenge, and so far a most engaging one.
On the Radian project, I’m finally digging into the crux of the system, which is the automatic loop parallelizer. The work I’ve done so far has given me a simple, unremarkable, unfinished programming language with a couple of minor syntax quirks and an unusual internal architecture; now it’s time to make all that preparation start to pay off.
I have moments of doubt, where I wonder whether I really understand this problem as well as I think I do, fearing that I’m going to get hopelessly stuck in the implementation, or – worse – suddenly realize that there is a fatal flaw in the whole plan. When I’m really feeling uncertain I imagine that this fatal flaw will turn out to be something that is old news in the CS literature, but which I’ve never read about nor been clever enough to figure out for myself. Oh, well: even if the venture did turn out to have been doomed from the start, I’ve learned a lot from it, and there would probably turn out to be something else I could do with the codebase.
But honestly? It’s going to work.