Archive for August, 2022

Day of CascadiaJS 2022

Wednesday, August 31st, 2022

Been a long time since I’ve done an in-person talk, but I broke that ice today.

It’s my “The web is good now” talk โ€” revamped quite a bit and shrunk to fit into a 25-minute slot. Felt like riding a bike, really. I was able to summon up that old speaker energy and deliver it to the best of my ability, and it feels like it was received well.

Video Horizontal Rules

Tuesday, August 30th, 2022

Is it interesting to use a video as an <hr />?

Eh, kinda.

Monday, August 29th, 2022

I remember seeing Adam Best’s tweet when it went viral:

Boulder: AR-15
Orlando: AR-15
Parkland: AR-15
Las Vegas: AR-15
Aurora, CO: AR-15
Sandy Hook: AR-15
Waffle House: AR-15
San Bernardino: AR-15
Midland/Odessa: AR-15
Poway synagogue: AR-15
Sutherland Springs: AR-15
Tree of Life Synagogue: AR-15

Sometimes they are “variations” on that exact model by different manufacturers, but they are assault rifles all the same (fact check). Add Uvalde to the list, and I’m sure many, many more.

Now it’s Bend’s turn. Right down the road. Fucking great. Hey, I don’t have all the answers, but, to me, it doesn’t seem to take a lot of brain power to identify “easy to acquire assault rifle” as a major problem. I made the mistake of following the local Reddit and Facebook threads about this, and aside from all the thoughts and prayers bullshit, the amount of “obviously we need more guns” comments astound me. While everyone agrees the shootings are horrible, the solutions people have in their heads are often 180-degrees different from each other. I think we should give fewer guns a whirl though, me.


Friday, August 26th, 2022

Just a lovely day here in Bend, Oregon. It’s very warm out. That kind of deep-seeded warmth you can only feel in late summer, when the warmth radiates from every sidewalk square, telephone pole, and deck chair as much as it does from the sun.

I’m 42 years old today. I only feel half that old so here are 21 dumb blog post drafts that probably wouldn’t make it to full posts anyway important things.

Dip bread into soup.

You can do better than “FBI Surveillance Van” for your WiFi network. C’mon people. My friend Justin’s used “I had wine glasses once.” and the fact that he never told anyone the story made it even better. Oh also your dogs tags, that’s a good opportunity to get weird.

But your garage door code can still be 6969 that’s fine.

I was 42 years old when I learned that the reason some bars put ice in the urnials is because it makes it stink like piss less. I always figured it they were cycling out old ice or something. Or wanted to bring some joy to urinal-using folk, because peeing on ice rules.

It’s always that II – V – I turnaround. Classic.

It’s easy and awful to lie to yourself. I wish I could find a way to flip off that switch.

It’s easy and awful to put forth faux emotions. I wish I could find a way to flip off that switch.

Always carry a pocket knife. You might have to open a package or avenge a loved one’s death.

Well hard time Harry was posting them scary conspiracy theories on his wall. Heโ€™s got a lazy boy look upon the fall of babylon, caps lockinโ€™ the original swing.โ€

Seth Bernard – The Original Swing

Buy art.

I have always liked the idea of “you get better at what you do.” Not so much because it helps you hone in on what you are good at and/or how to get better at something. I prefer thinking of absolutely random people and what they have mastered. Like your old lazy neighbor who literally only watched TV all day. They were amazing at watching TV. They knew all the channels. They knew what came on when. They knew how to channel surf to avoid commercials but circle back to what they were watching before right on time.

There is no reason to be anything but nice to strangers. It makes you both feel good. Being a dick to someone makes you both feel bad.

A real skill is learning to identify and brush off the inconsequential.

Sometimes you have to make a deliberate choice to improve how you do the things you do.

Take the day flight.

How the fuck does sailing into the wind work? That’s just weird โ€” I can’t deal with it. I’ve looked it up a half dozen times in my life and my brain rejects the reasonable answer.

The number of difficult conversations you have in your life is equal to the number of difficult conversations you have in your life.

Chris Coyier

I love how you can buy individual screws and bolts and washers and stuff at hardware stores. Literal hardware. I’ve got three washers at $0.41 each, three bolts at $0.71 each, and three nuts at $0.19 each. Oh and this pack of Red Vines.

Memory is distinct from intelligence or wisdom, but I’ve always thought them to be highly linked. If you can recall things relevant to whatever you are thinking about or discussing, it tends to be helpful and lead to better decision-making and more fruitful discussion. Likewise, if you have a bad memory, you are doomed to repeating what has already been learned from. Seems like technology can really step it up here. We’re already well into the “nobody wonders anymore” era (just look it up), now we’re poised to enter the “context and history is available at every glance” era.

Oh crap, I need to get out of here. It’s my birthday and I’m sitting at the computer.

New Banjo & Local Event Fun

Thursday, August 25th, 2022

It’s an 11″ pot Oak and Pistachio Short Scale Five String Banjo from Beansprout / Aaron Keim & family up in Hood River, Oregon.

I drove up to Hood River to pick it up and see Aaron, his shop, and his family. It was so cool to see the woodworking shop of a real luthier.

I also brought him my old walnut Beansprout banjo (he seemed to suggest it might have been the 3rd or so he ever made) which needs some repairs. I left it up there with him and will likely go back and get it later this fall.

There were chickens roaming around, side projects strewn about, interesting raw wood stored away (wine barrels slats stained purple from the wine!), and instruments in all sorts of different states of completion.

There were little cards that accompanied the instruments as they moved from stage to stage of construction.

I went with a “short scale” as I already have a few full-scale banjos and I thought having one more travel-compatible would be fun. It does tune into G just fine โ€” a number of people asked me assuming it wouldn’t somehow. I picked up a case that’s the perfect size, which is apparently hard to come by, as production on them is sporadic. Plus: nylon strings! I friggin love the sound of nylon strings! I can hammer on them pretty good and instead of it being intense/obnoxious, it sounds cool.

My trip to Hood River was a pitstop on my way to Centralia Campout for the week. I figured this would be a fun novelty instrument to have along. But no, I love this banjo so much I played it the entire week there and took it to the next event with my as my primary as well. It’s such a sweet sound.

Josie-O, loosely.
Big Sciota, loosely.

Here’s another audio clip with other players from Centralia:

Here’s a fun snap of my Centralia buds, right before I plopped my own chair in there and joined them.

It was so hot.

After Centralia, I popped over to Crane Prairie Reservoir where my buds Becky & Verda host a yearly bluegrass-themed camping gathering. There is a big jam (and little ones spotted around). Unbeknownst to me, there was a wonderful photographer there, Dan Schafer, who took some wonderful snaps.

It’s me!

The local news showed up!

Local news loves a good folk event. I bet I’ve been in the paper 3-4 times just for holding a banjo in public, and I don’t even do it that often. Like that one time at Merlefest.

The Many Faces of Puzzles

Wednesday, August 24th, 2022

Much of my daily brain power is dedicated to logic puzzles.

Coding is effectively a logic puzzle and I do an awful lot of that. Many other aspects of a business are solving puzzles. Determining strategy. Trying to be effective at marketing. Measuring and charting progress. Running a business is just playing a game with higher stakes.

My entertainment time is weirdly focused on logic puzzles as well. I like watching people play strategy games, whether it’s a decades-long fascination with watching players duke it out in StarCraft II, or a more recent fascination with watching people solve difficult Sudoku puzzles (which is giving way to actually playing them myself). Watching people’s brains churn is high fun.

I’m just back from camping at a couple of music events, the first focused on old-time music, the second on bluegrass. I find my experience with old-time in particular weirdly similar to a logic puzzle. There are thousands of old-time songs (here’s a useful subset), most with subtle variations over time and region. Everyone has their set of favorites memorized in which they can lead. Crucially, they all share enough spirit that an intermediate player can pick up a new tune on the fly and play along with it. Players who have never played together before can generally produce pretty good-sounding music! Sometimes a tune will flub (and it’s often just funny) and sometimes there are real moments of musical transcendence (holy crap, we just made that song really work).

The trick in old times is figuring out the logic of the song as quickly as you can so you can get in on it. How many parts is it? How many times do the parts repeat? Is any part of it crooked? (That is, extra beats, uneven parts, parts that bleed into each other or sound like they do, etc.) What key is it in? (Usually obvious, as keys are agreed upon early and players tend to stay in a key for hours/days) What is the pace? What are the dominant notes in the melody? (Even if you don’t get the song perfectly, hitting those dominant notes will feel good and make the song work, and skipping or faking the rest isn’t terribly detrimental).

I feel lucky. I love all this stuff. It’s all fun to me, in different satisfying ways. In another aspect of self-reflection though, I would note that spending so much time in logic-town I fear limits my time in other aspects of life. Not that I neglect my life generally, I just mean that my emotional intelligence, for example, is likely not particularly well developed. Nor my fashion sense, botanical abilities, snowboarding chops, culinary prowess, or pumpkin carving technique.

Dead Wax

Tuesday, August 23rd, 2022

Fascinating that the CEO and co-founder of Patreon, Jack Conte, has a YouTube Channel (cheezy clickbait thumbnails and all) where he hangs out with his buddies, invites on super good musicians to talk about their work, and shoots the breeze about good music old and new. Well, I guess I can relate.

Police Radar on Google Maps Driving Directions

Monday, August 22nd, 2022

I just noticed for this first time while driving along a highway that Google Maps shows “Speed Traps”. Apparently user-reported (where? maybe in Waze?) data where police are using radar speed guns to measure your driving speed, and pull you over and ticket you if you’re speeding.

I don’t hate it, it just seems a little fuck-da-police-y for Google. It says: we want to help you speed. We’re not interested in safety, we’re interested in you not getting caught breaking laws. Surprising stance for big tech โ€” or is it?

I tried searching for “robbable gas stations”, assuming it would show me locations where there are no squad cars that could respond quickly enough for a reasonable getaway โ€” but nothing. Maybe that’s coming on a new paid tier.

Sweet Spot for RSS?

Monday, August 15th, 2022

Ben Ubois was on The Changlelog the other day. Ben is the creator of Feedbin, my preferred RSS service. I say “service” and not “reader” because while I sometimes use Feedbin itself as a reader (it’s good), I also bounce around to other readers for fun. The API they offer enables this, which is a godsend. Right now I’m using a lot of NetNewsWire on my non-mobile machines, but ultimately it’s Feedbin under the hood syncing my read items and favorites and whatnot.

Adam Stacoviak mentioned that while he’s a Feedbin subscriber, he’s not much of an RSS user. They dig into why that might be in the show and it’s really interesting. Adam lists off a bunch of sites he’s got in there, and the problem sounds like the sites themselves. While it’s great the sites offer RSS and all, there is a bunch of “firehose” style news sites, with a signal/noise ratio that is not great for any one reader. Don’t subscribe to sites that do news as a business, was part of the advice, and I like that.

The “sweet spot” they honed in on is sites that publish more like weekly or monthly. So your RSS reader is kind of a catcher for less-oft published articles. That’s almost tough to hear as an RSS lover, because a little machine to catch random articles you might miss is quite a niche thing. No wonder RSS never seems to be able to take off.

I think I’d widen that sweet spot to even daily or multi-daily publishing sites, but if you’re getting to 5x and above daily, it’s too much for a good RSS experience. I’ve never been able to put my finger on that, but now I think that’s it.

I’ve had a draft post “Should we be able to pause an RSS feed as a reader?” for a while, but I’m deleting it now. That’s a niche feature for a thing that is already niche. If a feed is overwhelming to you, it’s unsubscribe town. Pausing isn’t an answer. If any publishers out there agree, I think an answer might be an RSS feed that is somehow trimmed down. A best-of-the-week collection, perhaps.

No Route Talk

Friday, August 12th, 2022

I think about The Seven Things Youโ€™re Not Supposed to Talkย About fairly often. This American Life producer Sarah Koenig’s mother, Mrs. Matthiessen, has seven rules. I’ll put them here, as she says them (although she credits a “French friend” for the first five):

  1. Never talk about how you slept, nobody cares.
  2. Never talk about your period, nobody cares.
  3. Don’t talk about your health, nobody cares.
  4. Your dreams, nobody cares about your dreams.
  5. Never talk about money, which Americans do all the time.
  6. Diet is a very big thing not to talk about.
  7. [Route talk] is at the top of my list for what you don’t talk about.

It’s because they are boring, mostly. So they are in service of encouraging conversation to be more interesting. I kinda love them. Between all of them combined, far too much conversation circles around these things. I’d way rather be talking about nearly anything else. Tell me about the last playlist you made. Let’s see if we can name all 50 U.S. state capital cities. How are you feeling about Russia these days? What is your favorite theory of why we haven’t seen any other life in the universe?

I’m a little more tolerant of the health and diet stuff, as I sometimes find that interesting. But I agree with her #1. I just immediately glaze over when you tell me about the traffic on the way over here. A broken stoplight? Wow. That must really have been something.


Thursday, August 11th, 2022

We decided to move to tankless water heating at our house. So rather than a huge drum water heater that I’ve had in every home of my life, we have these small wall-mounted rectangles.

We have a kinda weird half-sunken crawl space on the side of our house where our water heater and HVAC live.

Part of our original impetus was that we’d have “instant” hot water. Which… turns out isn’t really a feature of tankless water heating directly, so, derp. There are some actual advantages though:

Modern features like being “smart” (e.g. connected) and sending you a message when they need repair and such. Another modern feature is that some of them have a “recirculating pump” built into them, and that is actually the feature that buys you the “instant” hot water.

Ours didn’t have the recirculating pump(s) built-in, so we added that separately. And! Wait for it! It doesn’t work that well. Our main shower is as far away from these heaters as you can possibly be: across the house and up a level. I haven’t done anything scientific, but it maybe bought us a minute or two of speed. What took 5 minutes to heat up before now takes 3? Better, but it ain’t instant.

I still feel pretty good about the change though. Not because of any of the standard features though, but because:

Those are important things to me. I like to know if anything goes wrong there is an obvious, established, guaranteed path toward resolution.

Scaffolding as a Good Way to Get Started

Wednesday, August 10th, 2022

I’ve noticed that a lot of my commit messages the last few months, especially on new branches, simply say scaffolding.

I usually mean it in a very general sense. Not necessarily using some kind of framework or CLI scaffolding, like the famous rails generate scaffold or the generic Yeoman generator, but in a general sense. Just thinking things through and creating/updating files to sketch out the work ahead.

I may or may not know exactly how I’m (we’re) going to do what we plan to do in this branch, but I can put some code into place that applies a bit of structure around it, and that feels useful to me.

For example, say the job is to augment an existing API. It’s going to require a variety of work, like altering the schema, writing business logic to fulfill the requests, dealing with permissions, and fiddling with the database and database methods to get/set the data you need. Scaffolding this job means instead of doing all that work up front, you touch all the files you expect will matter in this work. Perhaps you write nearly-empty functions that talk to each other the way you expect they will. Maybe even pass around fake/mocked data. Make sure the types are happy. Make sure the function signatures feel logical. That kind of work should go fairly quickly, and help do the things I mentioned in those two bullet points above.

Once you have that scaffolding in place, you can think out smaller parts and make them work in the whole you’ve already thought out.

This doesn’t even have to be coding work!

You could scaffold writing by jotting down bullet points or a heading structure.

You could scaffold design by drawing some base rectangles or laying out a nested component structure.

If it is coding work, it also doesn’t have to adhere to the scope of a pull request. You could scaffold out a single function if you needed to.

function DoTheThing() {
  // Get the stuff

  // Munge the stuff

  // Conditionally do some things

  // Return the good parts
« Older Entries