February 3, 2025

Pinewood Derby

Yesterday my kids and I started on Pinewood Derby cars. Unfortunately this year I again don't have as much time as I'd want since we found out about it fairly late and weekends tend to fill up. Last night we cut, sanded, and put the base coat of paint on the cars.

We just did hand sawing with a hacksaw given that I don't yet have boxes or anything to help with hand sawing and my son in particular is a creature of habit; since we used the hacksaw in past years when it was likely the only hand saw I had it gets grandfathered in. For the paint we raided a random assortment that was sitting around my basement, so my daughter used a bucket of the same color that's used for her bedroom and my son used some acrylics that have been sitting around.

Tonight we'll be finishing the decorative stage, discussing some of the tuning, and tomorrow I'm planning on picking things up which can help with creating a basic test track.

Page Creation Flow

For this site there are a few optimizations I should get together. Right now adding a new page involves updating the build script (which could be implicit but that is an intentional choice), updating the Home page, and then creating the file with a particular template. All of these should ideally be a bit more optimized and verified since it's cumbersome to do and I often neglect some step or other along the way. This will be one of the earlier things I revisit as part of some process optimizations.

Likely more pressing is the git interactions piece which is on the tail end of that. First is the definition of my global gitignores which I do periodically but apparently never quite durably enough. More orchestrated use of git would also be helpful where I think I'll start with getting that wired into the Makefile.

Creating Bug-Free Software

I've been in several meetings over the years where another engineer has implied that no one present has written any software packages without issues. While I keep it to myself, my thoughts are typically "I think I have". This is not (I think) a statement of arrogance nor an assertion that I am superior or have super-human programming abilities, but rather the result of focus - and further not my focus, but the focus of the code. If the question were "who thinks they have written bug-free software?" then I feel as though could raise my hand, but if the question were adjusted to something along the lines of "who thinks they have written bug-free software with at least one hundred lines of code?", I would not be able to lower my hand fast enough.

This is setting the stage for the topic of abstractions - I think I've created several sound abstractions but they have designed for very specific purposes. Creating the proper abstractions can be very difficult, and therefore crafting complex abstractions on top of those that already exist can be dangerous. This can result in what translates to a general anti-abstraction sentiment (which often neglects the realities of the many abstractions software is built on top of). The abstractions themselves tend to be leaky such that they don't actually realize the desired encapsulation, and they can misbehave in a way that makes the system as a whole harder to understand which is antithetical to the purpose of abstraction. There are many vectors through which such poor designs encroach on a system: premature generalization driven through what I'd typically consider immaturity; lack of proper design taste which results in consolidation of complexity; or unmanaged entropy.

The position that simplicity is the safest means to counteract defects is by no means revelatory. Abstracting simple operations therefore offers a viable way to rein in some of the cognitive footprint of a project (this is probably also fairly common advice).

This is part of a longer thread that I'll work through on thoughts around software design (which I may also interleave with some on empiricism); next I'll probably pick apart the KISS principle.

Booked Ski Trip

Last year my family went on our first ski trip, and since I'm fortunate enough to be able to continue to do so, I'm hoping it's something we do pretty much every year - at least until my children are comfortable on skis or snowboards. This year both my wife and I have other engagements during our children's vacation week, so we decided to do a single night and as a result stay somewhat closer. We ultimately decided to do a day and night in Boston and then head to Wachusett Mountain for a few hours the next day (which is probably about all my kids can handle at the moment).

We worked out the details and booked a hotel over a month ago, but I've been waiting to make sure we could sign my daughter up for lessons, and registration for their Polar Kids (1) sessions on that day just opened up today.

Should be fun!

1.
Polar Kids (4-8 yo). Wachusett Mountain [online]. [Accessed 4 February 2025]. Available from: https://www.wachusett.com/lessons-rentals/lessons/polar-kids/
Wachusett Mountain ski and snowboard lessons for kids ages 4-8.