Welcome to the twelfth edition of The Catch Block!

It's that time once again! Photo by Khadeeja Yasser / Unsplash

In this edition: judicious defaults, swiping, Codespaces, YARP, Big-O, Adsense, Project Tye, a Third Age of Javascript, and Razor.

Judicious Defaults and the Two-Finger Swipe

On my machine, a two-finger swipe on the mouse pad causes the current window to scroll. Two fingers sliding upward scrolls the page downward, and vice-versa, similarly to how it works on a mobile device. It's supposed to represent, I think, physically moving or "dragging" the page relative to your field of vision.

Which is why it came as a bit of a surprise that my kids' Chromebooks behave in the opposite manner: a two-finger swipe upward scrolls the page upward, and a two-finger swipe downward scrolls the page downward. This is more like saying "go that way" using two fingers.

That monster in the middle can't make up it's mind. Photo by Kari Shea / Unsplash

This came as quite a bit of a surprise to me, and I still don't have the hang of it. But the kids are used to it by now, and in fact, using my machine has become a source of frustration for them. It's more natural for them to think the motion means "go that way" because that's all they've ever seen.

I'm sure there's a setting on the Chromebooks that makes their mousepads behave in the same way as my machine's, but the fact that I'm even thinking that says a lot about what I expect and what my kids expect. I expect it to work like every other machine I've used, to conform to what my past experience says it should do, and so do they. We just don't agree on what the default behavior should be.

One of the trickiest things we deal with as software developers is the judicious and insightful use of defaults. The default on my Windows device is that a two-finger scroll behaves in the "drag the page" manner. This probably resulted from thousands of hours of testing, prior experience, and knowledge of audience expectations. Or, possibly, they flipped a coin. What's interesting is that the Chromebooks, with presumably a similar amount of information, arrived at the opposite conclusion (the "go that way" behavior).

Defaults are, if you think about it, powerful. The way something works, as described to a person with no prior experience with that thing, thereby becomes the way it should work for that person; it creates their preconceptions. This is why determining what the defaults are for systems you design is so important, and should be dealt with carefully: you are crafting expectations for your users, expectations you will need to fulfill.

A table set for a fancy occasion; plates, glasses, silverware and napkins are all shown.
Exactly why do forks go to the left of the plate? Photo by Gabriel Domingues Leão da Costa / Unsplash

Spend some time on your defaults. Consider why you think they should be the defaults, and attempt to determine if your users agree with your assumptions. Examine your own biases, expectations, and experience, and see if your users share them. Defaults are powerful, and dangerous if set incorrectly; treat them as such.

Previews and Announcements

Quality Reads

Catch Up with the Previous Issue!

The Catch Block #11: MS Build Extravaganza - Codespaces, MAUI, WinGet, and More!
Plus: a mystery, the supposed end of integration tests, TypeScript in a weekend, and Dapper.

Thanks for reading, and we'll see you next week!