This blog will be foremost a collection of things that I’m trying to “grow into.” It is primarily for my own consumption in the future – a recitation so that I can remember that I remembered something. However, if I can bring others along while stuffing my exocortex full of new knowledge tidbits, so much the better!

Background

My background is as a software developer; full-on, web-scale, and JS-enabled! But, and I hear this from many people I know, there’s a murmur coming from deeper in the machine. There’s a faint ringing in the ear, a whisper from something that never attains legibility. Something is beyond my grasp and it gives me that sinking feeling in my stomach. I recall something that Feynman said:

I learned very early the difference between knowing the name of something and knowing something.

And it occurs to me that programming is a field wherein this distinction is all but erased. There are people that argue at length that naming-the-thing and knowing-the-thing are the same thing. As if by placing a precise enough name on something all its nooks and crannies will be made plain. It smacks of a modern day Philosophical Language.

I realize that the above may sound sort of overblown. ReactJS isn’t so bad, right? And no, it isn’t. It works very well for a lot of people and I’d be the last to begrudge them of that. Rock-on my dudes. I strive to contain my rustled jimmies to the interior of my skull as much as I’m able. Nonetheless, rustled they very much are.

Let’s go way back. I’m going to chalk at least some of this grumbling up to my earlier life in physics. I read Carl Sagan, and Stephen Hawking as a teenager. I remember reading “A Brief History of Time” while laying on the living room floor. I don’t remember reading it anywhere else and so I assume that I plowed through it in one sitting. Believe you me, I was fired up about this stuff and I went off to school knowing that’s what I wanted to do. I remember daydreaming my way through problem sets, envisioning how those frictionless (and glittering, in my mind’s eye) inclined planes worked. As things moved from mechanics, through circuits, and into relativity it would always stretch my imagination further. Electronics was a real hurdle. It suddenly didn’t seem so clear cut how some bundle of wires would do something at all. It helped to have an analogy like water flowing through pipes to again root it in something that I could apprehend.

But eventually, the system-y-ness of the system took hold. I built up the requisite alien intuition of electrons and charges and resonances. It’s a hill to climb, but even though things are surprising, they are surprising in a consistent way. Heck even thinking about literally imaginary quantities eventually becomes real to you if not real (this is the sort of top-shelf content you can expect from this website). Point is: even if it takes work, you can learn this stuff and then it works that way forever. You get to crank the knowledge ratchet up a few clicks. Even quote new unquote things will behave according to some rock-solid rules. Found a new thingy out in space? You can bet your bitcoins it’s still being a lawful thermodynamic citizen.

Want to know how much knowledge is guaranteed to transfer to a new software system? Yeah no, it’s none. And that really stinks. Eventually one starts to first bemoan, and later resent those languages/frameworks/flavors-of-the-week that keep changing everything while never quite getting it right. For myself, I start to look longingly at those things that have reasons, or at least time has worn smooth (don’t worry, these’ll leak into other posts, I’m sure).

Summary

Okay, I’ll admit, this one got away from me a little. Getting down to brass tacks, this is what this blog will be about:

  1. Amateur radio – Ham radio has given me the feeling that my old physics knowledge is being slowly rehydrated. And you have to admit, radio does seem a little magical, doesn’t it?
  2. Embedded software development and microcontrollers – Studying these things has done a lot to peel back the layers of the modern software stack. A microcontroller pretty much does what you say it should do and nothing else. If you want interrupts, it’s because you put them there.
  3. Experiments – I want to cultivate the habit of trying something out and seeing if it did what I expected whenever I don’t know what’s going on. This is essential for all debugging.
  4. Tools – I love getting tools that are probably more than I need. Especially those.
  5. Software but done from the ground up – This is closely related to #2, but there are times when starting from scratch with something is the best way to learn what’s going on.

If any of these sound interesting to you, then stay tuned (mmhmm, top-shelf content, indeed). Thanks!