(2024-02-12) Dubroy Casual Programming

Patrick Dubroy on Casual programming. I’ve got three young kids. If you were to spend a day in my house, one thing you’d notice is that there are a lot of alarms going off.

Maybe it sounds stressful — but for us it’s the opposite. Making liberal use of alarms and timers makes our daily routine smoother and calmer.

Like many people, I also rely on my calendar app to make sure I’m in the right place at the right time. So naturally, at some point I started wishing that I could make my alarms a bit smarter by combining them with my calendar

For instance, next week are school holidays here in Bavaria — so we obviously don’t need an alarm telling us that it’s time to leave for school.

You could think of this as an example of end-user programming.

To me, the more interesting distinction is the context of use.

My friends over at Ink and Switch captured it well in their essay on end-user programming: There’s an abyss to cross between using an app and modifying it with code by calling APIs

At Ink & Switch, we believe that software should be extensible in an easy, everyday manner.

Lately, I’ve started to prefer the term casual programming for this kind of thing.

As Bonni Nardi wrote in A Small Matter of Programming: End users are not “casual,” “novice,” or “naive” users

for the past couple of years, I’ve been jotting down a note whenever I find myself with a need for some casual programming

there’s little computation involved in most of these. They’re mainly about data wrangling and automating tedious manual tasks.

Controlling iOS alarms based on my calendar events:
If we’re driving to school, we need to leave five minutes earlier than if the kids are getting picked up.
Disable the alarms on school holidays.
When I’m away from home, ring the alarms on my wife’s phone.

Custom rules for calendar notifications. For doctor’s appointments, etc., I like to have multiple notifications. Typically the night before, first thing in the morning, and then ~1 hour before (depending on travel time). You can do x hours before / x days before in GCal, but not more sophisticated.

At our kindergarten, we need to order lunch every week, and we can only order so many weeks in advance. I’d like to automate an order every Friday

Preparing photos to get printed at the drug store: airdrop them to my Mac, crop them to a particular ratio, convert to jpeg, upload them to the drug store’s site for printing.

I have a list of movies, books, etc. I want to read. Would like to easily see which movies are available on the streaming services I subscribe to, which are available to buy at the local bookstore

Comparing prices for different brands of omega-3 supplements. There are all kinds of different dosages, and I want to figure out which one has the lowest price per mg.

Edited:    |       |    Search Twitter for discussion