Blog

Istanbul

Istanbul is… sprawling. I stood on this footbridge, over the water, to try to comprehend the scale of the place, but it’s just massive. The hills, which help the tall buildings to tower over you no matter where you stand, only serve to exaggerate the effect. Quite the spectacle of human settlement.

View from above a river, flanked by dense city on both sides, under an overcast sky.

×

Dan Q did not find GC4Z033 WOW – Walking On Water

This checkin to GC4Z033 WOW - Walking On Water reflects a geocaching.com log entry. See more of Dan's cache logs.

Gave up after an extended hunt, aided by the spoiler photo. All that’s hidden here is a discarded one food container. Hoping to find one of CO’s other nearby caches during my time here in Istanbul, this week.

Note #26129

Good morning, Oxfordshire! A freezing-fog farewell for me, this morning, as I get up early to catch a series of buses to the airport.

A wet rural road, lit by the sun's first light as it rises ahead, it's flanked by fields full of freezing fog.

×

Feed Readers Beat Doomscrolling

The news has, in general, been pretty terrible lately.

Like many folks, I’ve worked to narrow the focus of the things that I’m willing to care deeply about, because caring about many things is just too difficult when, y’know, nazis are trying to destroy them all.

I’ve got friends who’ve stopped consuming news media entirely. I’ve not felt the need to go so far, and I think the reason is that I already have a moderately-disciplined relationship with news. It’s relatively easy for me to regulate how much I’m exposed to all the crap news in the world and stay focussed and forward-looking.

The secret is that I get virtually all of my news… through my feed reader (some of it pre-filtered, e.g. my de-crappified BBC News feeds).

FreshRSS screenshot showing a variety of feeds categorised as Communities, Distractions, Geeky, YouTube, News, Strangers, etc. Posts from yesterday and today are visible.
I use FreshRSS and I love it. But really: any feed reader can improve your relationship with the Web.

Without a feed reader, I can see how I might feel the need to “check the news” several times a day. Pick up my phone to check the time… glance at the news while I’m there… you know how to play that game, right?

But with a feed reader, I can treat my different groups of feeds like… periodicals. The news media I subscribe to get collated in my feed reader and I can read them once, maybe twice per day, just like a daily newspaper. If an article remains unread for several days then, unless I say otherwise, it’s configured to be quietly archived.

My current events are less like a firehose (or sewage pipe), and more like a bottle of (filtered) water.

Categorising my feeds means that I can see what my friends are doing almost-immediately, but I don’t have to be disturbed by anything else unless I want to be. Try getting that from a siloed social network!

Maybe sometimes I see a new breaking news story… perhaps 12 hours after you do. Is that such a big deal? In exchange, I get to apply filters of any kind I like to the news I read, and I get to read it as a “bundle”, missing (or not missing) as much or as little as I like.

On a scale from “healthy media consumption” to “endless doomscrolling”, proper use of a feed reader is way towards the healthy end.

If you stopped using feeds when Google tried to kill them, maybe it’s time to think again. The ecosystem’s alive and well, and having a one-stop place where you can enjoy the parts of the Web that are most-important to you, personally, in an ad-free, tracker-free, algorithmic-filtering-free space that you can make your very own… brings a special kind of peace that I can highly recommend.

×

Perfect bath

There are few moments of self-satisfaction so great as accidentally running a bath to both the perfect depth and the ideal temperature, after forgetting you’d started drawing the water at all.

Dog Tired

Woke up. Had a walk. Now it must be time for a well-earned nap. 💤

A sleepy-looking French Bulldog, wearing a harness, lying on her side in a dog basket with her eyes mostly-closed and her tongue mostly-in-her-mouth.

×

More castles and mazes

Made a little progress on the game idea I’d been experimenting with. The idea is to do find a series of orthogonal (like a rook in chess!) moves that land on every square exactly once each before returning to the start, dodging walls and jumping pits.

But the squares have arrows (limiting the direction you can move out of them) or numbers (specifying the distance you must travel from them).

Four sample puzzles, one of them solved.

Every board is solvable, starting from any square. There’ll be a playable version to use on your device (with helpful features like “undo”) sometime soon, but for now you can give them a go by hand, if you like this kind of puzzle!

×

WebDX: Does More Mean Better?

Enumerating Web features

The W3C‘s WebDX Community Group this week announced that they’ve reached a milestone with their web-features project. The project is an effort to catalogue browser support for Web features, to establish an understanding of the baseline feature set that developers can rely on.

That’s great, and I’m in favour of the initiative. But I wonder about graphs like this one:

Stacked area chart illustrating the evolution of the web platform in terms of number of features in core browsers (2003-2025)

The graph shows the increase in time of the number of features available on the Web, broken down by how widespread they are implemented across the browser corpus.

The shape of that graph sort-of implies that… more features is better. And I’m not entirely convinced that’s true.

Does “more” imply “better”?

Don’t get me wrong, there are lots of Web features that are excellent. The kinds of things where it’s hard to remember how I did without them. CSS grids are for many purposes an improvement on flexboxes; flexboxes were massively better than floats; and floats were an enormous leap forwards compared to using tables for layout! The “new” HTML5 input types are wonderful, as are the revolutionary native elements for video, audio, etc. I’ll even sing the praises of some of the new JavaScript APIs (geolocation, web share, and push are particular highlights).

But it’s not some kind of universal truth that “more features means better developer experience”. It’s already the case, for example, that getting started as a Web developer is harder than it once was, and I’d argue harder than it ought to be. There exist complexities nowadays that are barriers to entry. Like the places where the promise of a progressively-enhanced Web has failed (they’re rare, but they exist). Or the sheer plethora of features that come with caveats to their use that simply must be learned (yes, you need a <meta name="viewport">; no, you can’t rely on JS to produce content).

Meanwhile, there are technologies that were standardised, and that we did need, but that never took off. The <keygen> element never got implemented into the then-dominant Internet Explorer (there were other implementation problems too, but this one’s the killer). This made it functionally useless, which meant that its standard never evolved and grew. As a result, its implementation in other browsers stagnated and it was eventually deprecated. Had it been implemented properly and iterated on, we’d could’ve had something like WebAuthn over a decade earlier.

Which I guess goes to show that “more features is better” is only true if they’re the right features. Perhaps there’s some way of tracking the changing landscape of developer experience on the Web that doesn’t simply count enumerate a baseline of widely-available features? I don’t know what it is, though!

A simple web

Mostly, the Web worked fine when it was simpler. And while some of the enhancements we’ve seen over the decades are indisputably an advancement, there are also plenty of places where we’ve let new technologies lead us astray. Third-party cookies appeared as a naive consequence of first-party ones, but came to be used to undermine everybody’s privacy. Dynamic DOM manipulation started out as a clever idea to help with things like form validation and now a significant number of websites can’t even show their images – or sometimes their text – unless their JavaScript code gets downloaded and interpreted successfully.

Simulated screenshot of this article but in Medium, with three annoying popups covering much of the content.
Were you reading this article on Medium, you’d have downloaded ~5MB of data including 48 JS files and had 7 cookies set, just so you could… have most of the text covered with popovers? (for comparison, reading it here takes about half a megabyte and the cookies are optional delicious)

A blog post, news article, or even an eCommerce site or social networking platform doesn’t need the vast majority of the Web’s “new” features. Those features are important for some Web applications, but most of the time, we don’t need them. But somehow they end up being used anyway.

Whether or not the use of unnecessary new Web features is a net positive to developer experience is debatable. But it’s certainly not often to the benefit of user experience. And that’s what I care about.

This blog post, of course, can be accessed with minimal features: it’s even available over ultra-lightweight Gemini at gemini://danq.me/posts/webdx-does-more-mean-better/, and I’ve also written it as plain text on my plain text blog (did you know about that?).

× ×

Cherry blossom

When I was a child, we had a cherry blossom tree in our garden. In late Spring, as the flowers began to wilt, I’d enjoy shaking it to make flutters of pink confetti rain down around me.

This tree, though, spotted on the school run this morning, is very early in its bloom. It feels like a happy reminder that Spring is beginning.

Barely-opened cherry blossom buds against a vibrant blue sky.

×

Steam Email alt-text improvements

I noticed that automated emails from Steam weren’t doing alt-text very well. Some image links had no or inadequate alt-text. (Note that Steam don’t support opting for plain text rather than HTML emails.)

I’m fortunate enough to depend upon alt-text never-to-rarely. But I prefer not to load remote images, so I still benefit from alt-text.

I filled out a support request to Steam layout out the specific examples I’d found of where they weren’t doing very well, and stressing why it’s (morally, legally, etc.) important to do better.

And you know what: they quietly fixed it. When I received an email today telling me that something on my wishlist is on sale, it had reasonably-good alt-text throughout. Neat.

Voice of America

In light of Trump’s attempts to axe Voice of America, because it is, he claims, “anti-Trump” (and because he’s so insecure that he can’t stand the thought that taxpayer dollars might go to anybody who disagrees with him in any way, for any reason), I’ve produced a suggested update to the rules of Twilight Struggle for the inevitable 9th printing:

Twilight Struggle card "The Voice of America", which normally allows the US player to reduce USSR influence in non-European countries. The card has been modified with the additional rule "Remove from play in 2025."
I guess the Russian player gets to stretch their influence unchecked, anywhere they want, from 2025 onwards.
In the game, I mean.

Yet another blow to US soft power in order to appease the ego of convicted felon Donald Trump. Sigh.

×

Dan Q found GCAP4MF Church Micro 15127…Curbridge

This checkin to GCAP4MF Church Micro 15127...Curbridge reflects a geocaching.com log entry. See more of Dan's cache logs.

I had an errand to run in the Windrush Place estate on the other side of the A40, and the geopup needed a walk, so I opted to park the car over in Witney so my four-legged friend and I could walk the remaining way over to Curbridge and find this cache.

Dan and his dog sit on a bench outside a churchyard.

The first challenge was, of course, getting over the pedestrian-unfriendly roundabout and across be bridge to Curbridge, but the second challenge wasn’t much easier. Which bit of the church was the extension? It wasn’t immediately clear and we had to make a few guesses before our numbers lined up to anything believable.

Finally, we set off. The geohound went crazy, and I soon realised why: our route was taking us almost exactly past the doggy daycare she attends twice a week. It was strange enough for me to find myself at a GZ I pass several times a week, but it must have been even stranger for the doggo, whose keen nose could probably tell that we’d unexpectedly come by somewhere so familiar to her!

The coordinates were bang on and I soon had the cache in hand. Thanks for a lovely walk and the opportunity to explore on foot a place previously only familiar to me by car. SL, TFTC!

×

Work Slippers

Duration

Podcast Version

This post is also available as a podcast. Listen here, download for later, or subscribe wherever you consume podcasts.

Last month my pest of a dog destroyed my slippers, and it was more-disruptive to my life than I would have anticipated.

A French Bulldog looks-on guiltily at a hand holding the remains of a pair of slippers that have been thoroughly shredded.
Look what you did, you troublemaker.

Sure, they were just a pair of slippers1, but they’d become part of my routine, and their absence had an impact.

Routines are important, and that’s especially true when you work from home. After I first moved to Oxford and started doing entirely remote work for the first time, I found the transition challenging2. To feel more “normal”, I introduced an artificial “commute” into my day: going out of my front door and walking around the block in the morning, and then doing the same thing in reverse in the evening.

A mixture of flatscreen and CRT monitors, plus a laptop and a webcam, on a desk. The laptop screen shots a view of an office at the "other end" of a webcam connection.
My original remote working office, circa 2010.

It turns out that in the 2020s my slippers had come to serve a similar purpose – “bookending” my day – as my artificial commute had over a decade earlier. I’d slip them on when I was at my desk and working, and slide them off when my workday was done. With my “work” desk being literally the same space as my “not work” desk, the slippers were a psychological reminder of which “mode” I was in. People talk about putting on “hats” as a metaphor for different roles and personas they hold, but for me… the distinction was literal footwear.

And so after a furry little monster (who for various reasons hadn’t had her customary walk yet that day and was probably feeling a little frustrated) destroyed my slippers… it actually tripped me up3. I’d be doing something work-related and my feet would go wandering, of their own accord, to try to find their comfortable slip-ons, and when they failed, my brain would be briefly tricked into glancing down to look for them, momentarily breaking my flow. Or I’d be distracted by something non-work-related and fail to get back into the zone without the warm, toe-hugging reminder of what I should be doing.

It wasn’t a huge impact. But it wasn’t nothing either.

A pair of brown slippers, being worn, in front of a French bulldog asleep in her basket, her tongue sticking out.
The bleppy little beast hasn’t expressed an interest in my replacement slippers, yet. Probably because they’re still acquiring the smell of my feet, which I’m guessing is what interested her in the first place.

So I got myself a new pair of slippers. They’re a different design, and I’m not so keen on the lack of an enclosed heel, but they solved the productivity and focus problem I was facing. It’s strange how such a little thing can have such a big impact.

Oh! And d’ya know what? This is my hundredth blog post of the year so far! Coming on only the 73rd day of the year, this is my fastest run at #100DaysToOffload yet (my previous best was last year, when I managed the same on 22 April). 73 is exactly a fifth of 365, so… I guess I’m on track for a mammoth 500 posts this year? Which would be my second-busiest blogging year ever, after 2018. Let’s see how I get on…4

Footnotes

1 They were actually quite a nice pair of slippers. JTA got them for me as a gift a few years back, and they lived either on my feet or under my desk ever since.

2 I was working remotely for a company where everybody else was working in-person. That kind of hybrid setup is a lot harder to do “right”, as many companies in this post-Covid-lockdowns age have discovered, and it’s understandable that I found it somewhat isolating. I’m glad to say that the experience of working for my current employer – who are entirely distributed – is much more-supportive.

3 Figuratively, not literally. Although I would probably have literally tripped over had I tried to wear the tattered remains of my shredded slippers!

4 Back when I did the Blog Questions Challenge I looked at my trajectory and estimated I wouldn’t hit a hundred this year until a week later than now, so maybe I’m… accelerating?

× × ×

Castles and mazes

Possibly I’m a little late for the “casual daily puzzle game” party. (Did Wordle already get invented in this timeline; I forget?)

I think there’s something in an idea I’ve been toying with. Bring on the weekend, when I can throw some brainpower at the frontend code!

A notebook is held in front of terminal output. The terminal begins with 'Start position: [0,4]' and then shows a series of 5×5 grids containing numbers: one, labelled 'Route:', shows random grid of the numbers 0 through 24; the second, labelled 'Puzzle:', contains 1s, 2s, and 3s, corresponding perhaps to the orthagonal distances between consecutive numbers from the first grid; the third, whose title is obscured by the notebook, shows the same thing again but with 'walls' drawn in ASCII art between some of the numbers. The notebook in front contains hand-drawn sketches of similar grids with arrows "jumping" around between them.

×

We don't use cookies

This website doesn't use cookies to personalise content nor analyse web traffic. From time to time, we will reiterate how we don't share your personal information with third parties, too. By continuing to use the site, you accept our non-use of cookies.

Privacy/cookie policy | Wait, what?