Smaller project progress
It’s been too long! Time for some smaller project updates:
I started and mostly completed a microproject I’ve had in mind for a while. A friend has a string of ~750 addressable LED lights (model APA102-C) around the top of his roof deck and they’re controlled by a Raspberry Pi SPI interface. Since all the LEDs are individually addressable, he wrote a bunch of Go to make different patterns in the lights and the code gets deployed directly to the Pi.
I started writing some patterns but they’re difficult to test unless you’re physically there so I wanted to write a “deck simulator” where I could see the output of my patterns locally and revise them until they’re good. No clue how I was going to start but I had some time I allotted as free and this jumped into my brain.
I ended up writing a swappable SPI Websockets library that has all the same interfaces as the real one but just forwards the spi data over websockets to whatever clients are connected. Then I wrote a simple visualizer in a canvas that interprets the data and draws all the lights. Some days I dread doing things that I don’t know really well because in contrast with how fast I can get stuff done in Swift, it feels frustratingly slow. Other days I’m OK with spending time learning something new.
So now I have to properly write the patterns I was planning on making in the first place 😂 I’ll post the code when I’m finished and give a quick wrap-up.
I got a ton of stuff done on the CMYK Website site for my brother two weeks ago, though not so much this past week. I was primarily wrapped up in getting some regular work done and being sick so not much extra time there. There’s some familiarity to it from my front end days but lots of new things to play with and APIs to work on.
I hit a big realization recently related to the work I do and the kind of thing I want to spend my time on. It’s definitely related to me coming off of Treat where I wanted to be a “startup CEO” and thinking more recently about going back to full time work. The core idea is that I shouldn’t let other people’s idea of success become my own. I’ve never been successful when I followed the normal thing to do and my favorite successes are when I’ve done something unusual and made it work. I have a pretty good idea of the box my successes fit into so I’ll be trying to be cognizant of those strengths.
One thing I really like to do is tackle big, weird problems that I have no (initial) expertise in and come up with new and different ways of doing things. I’m serious that it really interests me; I wake up thinking about these kinds of problems and it’s really motivating. I’ve always been a physics nerd but only way one works in physics professionally is by having your creativity beaten out of you over 6-10 years of rigid schooling. Obviously that doesn’t work for me but I’ve learned lots of fun stuff on my own over the years and occasionally I try to apply it in different areas. I’m not afraid of learning new things, particularly things that people think are “too hard” to learn outside of some structured learning environment.
One of the new projects I’ll be working on is a deep investigation into finding different approaches to minimize skin friction in aircraft. It’s one of those obscure subjects that I always do a bit of research on when I hear something related come up and I think I have some good ideas or at least directions to investigate. I’ll write up more about this particular project on its own soon but for now I’m calling it the Boundary Layer project.