First off, a little bookkeeping. I have been using Goodreads for years now to track my reading. It’s still a pretty good platform, but it’s also just a lot. A lot of ads. A lot of features I don’t use, like “Reading Challenges,” and a lot of the “Community” stuff. One of the things I’m going to try to do over the next five years, though, is attempt to self-host as many applications as I can.
The Problem One of the crucial features I wanted <much-select> to support is value transformation and validation. This is important for configuring <much-select> to allow users to input “custom” values (not just the predefined options in the list) but you still need some guard rails on the values the user can enter. Accomplishing this through standard web APIs proved to be a daunting task. I tried some different things and I’m going to describe what I came up with and why.

Much Debouncing

Sep 29 2023
The Challenge In the life cycle of a <much-select> a lot of events are triggered. Events can trigger additional events leading to big cascades of events that can block the main browser thread. We can prevent this from happening with debouncing. Two example of this in <much-select>: Each keypress when a user is filtering down a list of options. If we debounce keypress events by a half a second or so the UI looks smoother and we do a lot less work.
The Problem A lot of Options I need <much-select> to support a lot of options. I’ve been testing with 10,000 options. <much-select> needs to be able to filter that list down “fast”. By that I mean it needs to feel fast to the user. Big Options The size (or length) of options also plays a role. If the options are fairly simple and short (e.g. city names), that’s a lot different than options with long labels and even longer descriptions (e.
Elm Inside a Web Component A Whiny Introduction This is part 1 of a story I never wanted to write. I have heard over and over again something along the lines of, “don’t make a UI widget, leave that to the platform or to someone else.” Those people are right. What kind of UI widget, you ask? It’s that white whale, a multi-select widget. There are a lot of them out there.

Corn Maze 2022

Feb 1 2023
This past fall (autumn of 2022), I released my first ever computer game — created for the Crow River Winery’s Corn Maze. Interested parties can check it out at However, there isn’t much to do since the game is designed to be played on the actual corn maze. As it’s winter now, the maze is currently closed. Originally I’d planned to create a video explaining how the game works, but as with many aspects of the first iteration of this app, there simply wasn’t enough time.

2022s Best Books

Jan 19 2023

I’ve missed this post for a couple of years, which is too bad, I need to write more on my blog. I’ve got a whole bunch of draft posts, maybe this year I actually finish them.

Also, in case this is not clear, these are the best books that I managed to read in 2022. I’m sure there are more interesting lists of the best books that came out in 2022.

Matt Gray

Jan 2 2022
Matt Gray A friend of mine, Matt Gray passed away recently. I worked with him for almost 10 years at Clockwork. I have heard many people say that Matt was one of the smartest, kindest, and thoughtful people they knew. I can vouch for all of that. I learned a lot from Matt. We were basically the same age but for whatever reason he was way ahead of me, when it came to a lot of “professional” skills.
This year we’re taking a break from making a Christmas playlist… if ever there was a year to break the norm, amiright?! We fully intend to pick back up this annual tradition in the future but we’ve made 10 playlists with almost 11 hours of Christmas music. So this year, we’ve done our best to put them all together so you can listen all of it (or at least as much as your preferred music streaming service has licensed).
2020 Family Pictures We don’t post much on social media, for a whole lot of reasons, but we do take a lot of pictures. And, well, 2020 sure is a year to remember! Hahaha… sigh. And despite setting aside a lot of plans, ideals, and normals, all the silver linings and graces of this year are not lost on us. We’re grateful for the ways pandemic days, an unplanned 2.5 months without daycare, and all the time we’ve gotten around home/in our neighborhood have deepened our family rhythms.