← Back to Kevin's newslettersPublished: 2019 Dec 9

Hi friends,

Lots of work-in-progress this month; let’s dive in!

Not financial advice follow up

Last newsletter I’d just discovered solo 401ks and the Mega Roth Backdoor. I’ve since set all that up via these folks and couldn’t be happier — simple fixed fee, fast email replies, and they even fill out all the paperwork around rollovers and brokerage account setup. (Efficiencies from specialization, who knew?)

If you have self-employment income and want to play the 2019 Mega Roth Backdoor game, you have three more weeks to:

  1. establish a solo 401k (they took a day to draft the paperwork and it took me an hour to copy/paste my signature around the various PDFs)

  2. rollover any existing traditional IRAs into your new 401k to avoid “pro rata” double taxation when you use the (Mega) Backdoor; this might take a while since, you know, banks and checks and mailing via stamps and stuff, so get on that ASAP my self-employed friends.

A 90’s oscilloscope and real-time Rust

Check out my sweet new (used) oscilloscope, vintage 1998:

An oscilloscope

That splash screen clip art really brings me back to those simpler times — plus, having never known the Internet or garbage collection, the 20 year old scope works great and has no UI lag whatsoever. (Though if I want to export anything, it’ll be through that floppy drive on the front…)

Definitely my best Black Friday acquisition in a long time — thanks to my girlfriend’s father, who hosted us overnight on Thanksgiving and pulled this out of his attic for me!

I’m using the scope to debug a photodiode and analog amplification circuit that reads infrared laser pulses which I’ll be using to position the computer controlled track saw I mentioned last newsletter.

This is my first time using “bare metal” Rust and STM32 microcontrollers, which is coming along swimmingly. There’s something quite satisfying in connecting code to physical properties (i.e., needing to know that, at 72MHz, each CPU instruction takes about 14 nanoseconds).

Then again, it took me 10 hours to just measure some signal pulse widths: The laser sweeps every 60Hz, which means a pulse timescale of 16ms, but my microcontroller 16-bit hardware timers overflow every 910 μs (2^16 / 72MHz), so two timers need to be chained together, etc., etc., etc.

On the plus side, on bare metal one can easily measure exact CPU cycle counts — no need for statistical sampling, JIT-warmup animal sacrifices, or any of that nonsense.

The Rust community has some pretty sweet projects in this area too. In particular, check out RTFM (“real time for the masses”), which leverages hardware priority interrupts to let you write deadlock-free concurrent code without run-time synchronization overhead.

Learning the most successful programming language

I’ve spent a decade as a professional LISP programmer, usually surrounded by a (un)healthy dose of dynamic JavaScript / web stuff. Two years ago I started writing Rust to experience a proper type system and better develop my mechanical sympathy (thinking more about memory layout, caches, etc.).

But my education as a programmer will always be lacking until I spend a few hundred hours with the numerical modeling and GUI-creation capabilities of the world’s most popular programming language: Microsoft Excel.

Not “spreadsheets”, Excel. (Specifically, Excel running in a Windows virtual machine that’s never seen the Internet.)

I’ve decided to invest in Excel skills for a few reasons:

I’m only a handful of hours in, but so far I’ve discovered functionality that clearly addresses many of the hot takes I’d heard against Excel. E.g., there are lots of ways to name cells so formulae don’t have inscrutable references like “F17”. It’s also possible to define tables that act holistically (which avoids errors related to adding/removing rows/cols).

I’m sure it has its flaws, but all-in-all I’m excited to experience a different computing culture.

Two things I’ve found helpful so far:

If you are interested in pair programming in Excel (especially in the context of pass-through entity tax law), let me know!

Misc. Notes

Until next time my friends!

Kevin