Blog

More than you expected?

You're reading everything on my blog - including, among other things:

  • Image notes (short, "Tweet-like" messages),
  • Image reposts (links to other people's work, sometimes with commentary),
  • Image checkins (records of places I've visited, often while geo*ing), and
  • Image videos ("vloggy" content).

That might be more than you wanted to see, if you're only interested in Image articles (traditional long-form blog posts). Click a link to filter.

F-Day plus 214

It’s been 214 days since I had to evacuate my house following a flood, and repair work is (intermittently) underway. And there are so-many moving pieces to this dance that… it’s little wonder that people are getting confused.

Like:

Our insurance company appointed a relocations specialist to handle our temporary accommodation needs (moving van, sourcing and paying for rental properties, etc.).

Mostly what that means right now is that the relocations specialist pays our rent. They send money to our letting agent. Who send the money to our landlord. The relocations specialist reclaims this cost from our insurance company. And, I would assume, everybody takes a cut along the way.

The building contractors, also paid for by the insurance company, are confident they can have our house ready to move back into in November (this is hard to believe to look at it, but they assure us that once they can get the remaining materials, everything will pick up speed). The building contractors reported their timeline back to the insurance company.

Then the insurance company picked a date a little after that, and asked the relocations specialist to cut off our temporary accommodation from that date.

Then the relocations specialist emailed our letting agent, copying me in, to give notice that we’ll be moving out of our “Chicory House“.

This clearly confused the letting agent. The letting agent seem to have assumed that the relocations specialist is somehow representing the landlord, when in actual fact they represent us, the tenants. Per relatively new UK legislation, the landlord can’t simply give us notice and evict us without following certain complex legal processes and giving 4+ months notice. But we, the tenants, can just give two months notice and bounce. So the letting agent have told the relocations specialist that they can’t ask us to move out (of the house that they’re paying for, on our behalf). 🤣

The bottom line is that I’m now deep in the CCs of an email exchange between the company who pays my rent… and the company they pay it to… about whether they can stop paying my rent for me… when I move back into my own house. 🙄

One email from me would probably clear up the confusion. But I think that this time… I’ll let then work it out for themselves.

A Postcard from a Labyrinth Artist

My collection of “postcards from the Internet” grew again this week when I received another complete-surprise postcard. Take a look at this:

Composite photo showing front and rear of a postcard, showing an aerial photograph of Toronto on one side and a hand-drawn labyrinth on the other.
I’m sure that HïMY didn’t know, but I was obsessed with labyrinths and mazes when I was young. I’d have loved it as a kid if there’d been a labyrinth artist in my town!

This postcard comes from HïMY SYeD, a Toronto/Vancouver-based historian, Islamic scholar, and… prolific labyrinth artist!

The card features a hand-drawn labyrinth but also the domain name labyrinths.ca, at which there’s a website showing a lot of his work1. He’s built or drawn labyrinths all over the place, calling many of them “outstallations”: hey look, this one’s got the same design as the one on the postcard!

A large octagonal labyrinth drawn in a dry paddling pool in a park.
Look at this monster labyrinth! “At 22 lanes, and being an even number of lanes, labyrinth hackers will grasp how hard it was to design,” SYeD said of it.

I’m still really loving receiving postcards from the Internet (please send me more!), and I’m starting to feel that maybe I should be “giving back”. I wonder, if I got a stack of postcards and let people put their address into a form if they were happy to receive one, would people want to?


I’ve had several folks talk about how much they enjoy my postcard collection and say that they’d do the same… if only they could afford a PO Box so that they could hide their address2: maybe such folks would be happy to share an address privately to get a single card? Worth some thought.

Footnotes

1 In case you have the same problem I do: the website is intended to be viewed over plain-old http://, but its server is configured to be available over https:// too… so if your browser, like mine, tries to auto-upgrade to https:// where available, then you might find that all the images don’t work (because they’re being served from http:// addresses) until you manually switch back to http://. So yeah… if you visit HïMY’s site and can’t see any images, check your address bar and turn the https:// into http://.

2 I’m only able to do it because I’m using a pay-as-you-go PO Box provider, but I know that’s not at option in every country.

× ×

On Publishing Your Salary

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Of the handful of times I’ve seen people sharing their salary history, they are always very high. For context, a six-figure (£100,000) salary in the UK puts you in the top 4% of earners in the country.

This is where my concern starts – we only ever see these high outliers, so the sample size is incredibly skewed. Nobody is rushing to publish their £25,000 salary history, which means the curmudgeon in me can’t help but feel that these pages can sometimes read more like a humble brag than genuine advocacy, even if the author’s intent was entirely pure.

For the reader, this can be deflating, rather than empowering. A developer earning a perfectly respectable £50k (which already puts them in the top 15% of UK earners) might look at Jane Smith earning £105k and think, “Jesus, I’m doing terribly.”

But salary is highly subjective. It depends on where you live, the company you work for, the unique responsibilities of your role, what your peers earn, how hard you negotiate, and how supportive your manager is.

When you strip all that context away and just publish a high number, what is the reader supposed to do with it? If our developer goes to their manager and asks for a 100% pay rise because they saw Jane Smith online earning £105k, they’re going to be laughed out of the room. Because, without context, the raw numbers are useless.

As always, wise words from Kev Quirk.

I publish my salary on my site, and I have ever since I was encouraged to do so by Jeremy Keith (who, I was surprised to discover, earns about half what I do despite being approximately twice as talented: salaries are, as Kev says, highly subjective and not-so comparable).

One thing I do to try to mitigate that is to publish my entire salary history for my current (i.e. software engineering) career. This shows progression, and development, and the shape of different industries (in particular how the academic sector compares to “big tech”). There’s a noticeable “jump” in my salary history if you look for it!

But I don’t know how well that’s contextualised. Should I be saying more, like: what relevant qualifications I had by each point (it’s possible to argue that almost none of my qualifications are “relevant”, because almost all the career-useful stuff I’ve ever learned didn’t come from my degrees etc… but some of my employers – and one in particular – attached value to my academic achievements so maybe they opened some doors?). Or, as Callum Rollo does, perhaps I should be balancing it against other factors (my salary, even when it was briefly ~£111,000, doesn’t seem so significant if you know how much I owe to the bank on our mortgage!).

I suppose what I’m saying is that I agree with Kev: context is everything here, and the picture’s distorted if only some subset of people publish their salaries. But I’m going to keep on publishing mine, because I think that salary transparency is an good thing overall, and the labour market gains a sliver of their employers’ power when they’re willing to talk openly about what they’re paid: whether pseudonymously via the likes of GlassDoor or openly on their publicly-accessible websites… every little helps, even where it skews the picture a little.

But thanks, Kev, for the reminder that the situation’s more-nuanced than some would have you believe, and for challenging us all to frame our transparency with a little bit of context.

Re: How I made…

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Noah S said:

Here is a php script that blocks many AI bots from accessing my website.

$agent = $_SERVER['HTTP_USER_AGENT'];

$botarray = array("GPTBot", "ClaudeBot", ..., "Big Sur AI", "GrokBot");

if (in_array($agent, $botarray)) {
echo '<meta http-equiv="refresh" content="0;url=https://art-noah-s.eu/.htaccess">';
exit();
}

if (in_array($agent, $botarray)) {[code to execute]} is a conditional code. It only executes whats between { and } if the condition is met. In this case it’s that $agent is listed somewhere in $botarray. In summary, if you’re trying to access my site with something listed in that long list of bots, the code activates and otherwise it doesn’t do anything.

echo ‘meta http-equiv=”refresh” content=”0;url=https://art-noah-s.eu/.htaccess”‘; (<> tags removed for functionality) is a piece of code that immediately redirects to my htaccess file.

My .htaccess starts with this code.

<Files .htaccess>
order allow,deny
deny from all
</Files>

 

I like that you found a solution that works for you, but I wonder if this could have been optimised a little. Here’s what you’ve got so far:

  1. So long as the bot hits a URL that’s run through PHP, your code runs (limitation:probably  doesn’t work on e.g. image URLs, stylesheets, static pages if you have any, etc.)
  2. If the user-agent matches a banlist, you send some HTML code to ask them to redirect (possible improvement: if you want to redirect, you can do that faster with a HTTP header than with HTML)
  3. The page you redirect them to is a .htaccess file, which applies to the whole directory, but contains a rule that only applies to itself and which blocks all access (possible improvement: if your server supports .htaccess file, you can probably do the whole thing with just that!)

I assume that you’re doing this rather than just a robots.txt file because you don’t trust those bots to respect robots.txt (although this does imply that you do trust them enough not to spoof their user-agent to get around the blocks!).

Alternative 1: HTTP 403s in pure PHP

Let’s take some improvements one step at a time. First, in PHP: rather than doing a HTML-redirect to a blocked page, why don’t we just send the HTTP 403 right then and there:

if (in_array($agent, $botarray)) {
  header("HTTP/1.1 403 Forbidden");
  exit();
}

This obviates the need for a .htaccess file at all and removes the need for a redirect. If you’re sticking to a PHP-only approach, that’s how I’d do it.

Alternative 2: Blocking at the webserver

An even stronger solution would be to drop the PHP code entirely and switch to blocking at the webserver! This saves your resources (webservers are great at filtering on headers and they’re less computationally-expensive than spinning up a FCGI thread/PHP interpreter) and it means that your blocks can apply not only to URLs served using PHP but also to static files!

Blocking badly-behaved bots in Caddy

My go-to webserver these days is Caddy, where I’d use some configuration like this in my Caddyfile:

@aibots header_regexp User-Agent "GPTBot|ClaudeBot|Claude-User|Claude-SearchBot|CCBot|Google-Extended|Applebot-Extended|Facebookbot|Meta-ExternalAgent|Meta-ExternalFetcher|diffbot|PerplexityBot|Perplexity‑User|Omgili|Omgilibot|webzio-extended|ImagesiftBot|Bytespider|TikTokSpider|Amazonbot|Youbot|SemrushBot-OCOB|Petalbot|VelenPublicWebCrawler|TurnitinBot|Timpibot|OAI-SearchBot|ICC-Crawler|AI2Bot|AI2Bot-Dolma|DataForSeoBot|AwarioBot|AwarioSmartBot|AwarioRssBot|Google-CloudVertexBot|PanguBot|Kangaroo Bot|Sentibot|img2dataset|Meltwater|Seekr|peer39_crawler|cohere-ai|cohere-training-data-crawler|DuckAssistBot|Scrapy|Cotoyogi|aiHitBot|Factset_spyderbot|FirecrawlAgent|bedrockbot|DeepSeekBot|GoogleAgent-Mariner|Gemini-Deep-Research|Google-NotebookLM|Google-Agent|GoogleAgent-URLContext|Google-Firebase|Googlebot|bingbot|MistralAI-User|SemrushBot|SemrushBot-FT|SemrushBot-ESI|AddSearchBot|bigsur.ai|Brightbot|Crawlspace|EchoboxBot|FriendlyCrawler|LinerBot|Panscient|Panscient.com|Poseidon Research Crawler|SBIntuitionsBot|TerraCotta|Thinkbot|Yak|YandexAdditional|YandexAdditionalBot|anthropic-ai|Slurp|Baiduspider|YandexBot|AhrefsBot|MJ12Bot|facebookexternalhit|TwitterBot|LinkedInBot|SlackBot|ChatGPT-User|Soguo web spider|Claude-Web|magpie-crawler|ChatGPT-User|OpenAI|Claude-Code|quillbot.com|MyCentralAIScraperBot|ChatGPT Operator|Grok|DigitalOceanGenAICrawler|LINER Bot|Big Sur AI|GrokBot"
abort @aibots

Blocking badly-behaved bots in Apache

Based on your use of .htaccess files, though, it sounds like you’re using Apache. If you replaced your .htaccess file’s contents with this, you’d probably get the same result (I’m assuming you’ve got mod_rewrite enabled already).

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(GPTBot|ClaudeBot|Claude-User|Claude-SearchBot|CCBot|Google-Extended|Applebot-Extended|Facebookbot|Meta-ExternalAgent|Meta-ExternalFetcher|diffbot|PerplexityBot|Perplexity‑User|Omgili|Omgilibot|webzio-extended|ImagesiftBot|Bytespider|TikTokSpider|Amazonbot|Youbot|SemrushBot-OCOB|Petalbot|VelenPublicWebCrawler|TurnitinBot|Timpibot|OAI-SearchBot|ICC-Crawler|AI2Bot|AI2Bot-Dolma|DataForSeoBot|AwarioBot|AwarioSmartBot|AwarioRssBot|Google-CloudVertexBot|PanguBot|Kangaroo Bot|Sentibot|img2dataset|Meltwater|Seekr|peer39_crawler|cohere-ai|cohere-training-data-crawler|DuckAssistBot|Scrapy|Cotoyogi|aiHitBot|Factset_spyderbot|FirecrawlAgent|bedrockbot|DeepSeekBot|GoogleAgent-Mariner|Gemini-Deep-Research|Google-NotebookLM|Google-Agent|GoogleAgent-URLContext|Google-Firebase|Googlebot|bingbot|MistralAI-User|SemrushBot|SemrushBot-FT|SemrushBot-ESI|AddSearchBot|bigsur.ai|Brightbot|Crawlspace|EchoboxBot|FriendlyCrawler|LinerBot|Panscient|Panscient.com|Poseidon Research Crawler|SBIntuitionsBot|TerraCotta|Thinkbot|Yak|YandexAdditional|YandexAdditionalBot|anthropic-ai|Slurp|Baiduspider|YandexBot|AhrefsBot|MJ12Bot|facebookexternalhit|TwitterBot|LinkedInBot|SlackBot|ChatGPT-User|Soguo web spider|Claude-Web|magpie-crawler|ChatGPT-User|OpenAI|Claude-Code|quillbot.com|MyCentralAIScraperBot|ChatGPT Operator|Grok|DigitalOceanGenAICrawler|LINER Bot|Big Sur AI|GrokBot).*$ [NC]
RewriteRule .* - [R=403,L]

This solution blocks those bots’ access to your entire site (even e.g. images), and doesn’t hit PHP at all (so it’s fast and saves your processors for the traffic you care about).

I’ve not tested it (again: I don’t often use Apache any more: I migrated to Nginx for the fancy features and I’m now mostly-migrated to Caddy for the simple configuration), but I think I’m close to correct; some tweaking might be needed.

Testing your blocks

If you want to thoroughly test your blocks, you can trivially spoof your user-agent from curl, e.g.:

~ # Request the page as Firefox, get a HTTP 200: ✅
~ curl -sI -H "User-Agent: Firefox" https://art-noah-s.eu/ | head -n1
HTTP/2 200
~ # Request the page as GPTBot, get a HTTP 403: 🎉
~ curl -sI -H "User-Agent: GPTBot" https://art-noah-s.eu/ | head -n1
HTTP/2 403

What you’ve already good seems good enough for your needs, Noah. But if you want to take it to the next level, hopefully the ideas above will help!

Dan Q did not find GC3C7FT Woodies

This checkin to GC3C7FT Woodies reflects a geocaching.com log entry. See more of Dan's cache logs.

After seeking (and finding, surprisingly) the 2026-09-13 51 -1 geohashpoint down in the Brook Hill nature reserve, the geohound and I came to try to find this cache, too. After finding the correct way into the nature reserve (access from Verinia Court now being disallowed, apparently) we quickly found the relevant board and, after pushing some plants aside, found the requisite six digit number.

A short walk later we found a solid candidate hiding spot that matched the hint, but an extended search in and around it yielded nothing. Possibly my geosense is off this morning (in my defence, I got stung in the crotch by a wasp about 20 minutes ago!) or maybe this cache is missing. Either way, a DNF from the pupper and I today.

Geohashing expedition 2026-09-13 51 -1

This checkin to geohash 2026-09-13 51 -1 reflects a geohashing expedition. See more of Dan's hash logs.

Location

Nature reserve near Woodstock, Oxfordshire. It’s unclear from the maps whether the hashpoint will be accessible.

Participants

Plans

I woke early after a series of nightmares about having to move house yet again (I’ve done that a lot, this year, on account of the flood that rendered my house uninhabitable in February), except this time the house we moved into was occupied by some kind of bear-like monster that chased me around the place.

Anyway: having woken up I decided to take the dog out for a walk, and I noticed that the hashpoint up here in Woodstock might be accessible. The maps show it as being not in the nature reserve but in what could be the gardens of the nearby houses, so this might all come to naught.

Expedition

The dog and I parked at Union Street Car Park and set out on our walk. I’d originally anticipated entering the nature reserve via a footpath marked from Brook Hill, but when we got there I discovered a “danger – no entry” sign. I decided to ignore it – it was probably there back from when this valley flooded, and wasn’t relevant any more. Tempting fate, I moved to walk past it, snapping a photo of the sign on the way.

Blurry photograph of a French Bulldog running away from the foot of a signpost, on a grassy trail.

This is all I managed to capture of the sign, though, because something distracted me…

That’s when I noticed the wasps. Lots of them, buzzing around a nearby tree. Probably their nest was nearby and they were coming over to investigate me and decide whether or not I was a threat (I don’t think they were the reason for the danger sign!). In any case, this is where the next problem began: I have a hole in the crotch of the trousers I’m wearing.

Close-up of the crotch of a pair of black tracksuit bottoms, with some skin and underwear visible through a small hole.
It’s not a big hole, but it turns out that it didn’t need to be.

It turns out that a wasp had managed to fly up inside the groin area of my trousers and I didn’t notice until… it got partially-squished between the sensitive parts on the inside of my inner thigh… and the even-more-sensitive parts next to them! I became aware of a sharp stinging sensation, and then another, and it quickly became a burning sensation as I swatted at my legs to try to liberate, or else kill, the monster. Meanwhile, all of the wasp’s friends were now heading my way, providing reinforcements for their companion.

So I ran.

A fawn-coloured French Bulldog trots along a damp forest path.
The doggo had a great time and couldn’t tell what I was complaining about.

The dog and I had to sprint deep into the woods before we were sure that none of the little bastards were still following us. I’d been working on adrenaline (and the dog had been working on her general desire to run around and be crazy), and hadn’t noticed until I was able to slow down quite how unpleasant my sore and swollen parts were as they rubbed against one another. Ugh.

Dan, a white man with a goatee beard, grimaces as he holds his crotch, alongside a French Bulldog on a woodland footpath.
Do not recommend.
We regrouped by a stream and found our bearings. We’d come some way from our intended course, but I plotted a series of paths that would take us close, and the pupper and I bravely pressed on.
A fawn-coloured French Bulldog drinks from a stream.
Refilling the tanks.

Soon we were close to the hashpoint and I observed to my delight that it lay in what seemed to be a no-mans-land; a deeply-overgrown patch between the nature reserve and the nearby housing estate. The undergrowth would be too much for the doggo’s little legs, so I left her behind and pushed on alone for the final hundred metres, stomping through swampy conditions and brambles as I approached the coordinates.

Thick undergrowth in dense woodland.
The hashpoint is somewhere near the centre of this image, next to a tree.

After some stomping around, Geohashdroid was able to draw a small circle of uncertainty within which the hashpoint clearly lay.

Dan stomps through thick undergrowth, a dog's lead hanging around his shoulders.
I can’t manage a silly grin. Will a silly grimace do?

I hacked my way back to the dog (who was happily living her best life, pretending to be a wild wolf, living in the forest) and we made our way home via an attempt at a nearby geocache and checking and updating some OpenBenches data.

Android screenshot showing the user's location of 1.429m from its destination, the 51 -1 geohashpoint.
Proof, thanks to Geohashdroid.

A success, but not one without a significant amount of pain. I can’t believe I’m saying this but: from personal experience, I do not recommend using your genitals to crush wasps.

Tracklog

My primary GPSr’s been missing since… my house flood, I think. But I was able to use the fitness tracker in my watch for a decent GPS tracklog.

Map showing a walk around Woodstock.

× × × × × × × × ×

Opusfived

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Goal: get Claude to change the "Add to Cart" button to blue; do not let it change anything else.

This piece of experimental interactive fiction is a silly (but with a grain of truth!) simulation of what it feels like to attempt to use vibe-coding to make small, simple, isolated changes to an established codebase.

If you’ve got the time, it’s worth playing right the way to the “end”. I hope you like blue (you’re going to be talking about it a lot)!

Hot new laptop features

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

I’m obsessed with this “laptop” our 7 year old made:

Image

I asked him what the different features were. Check out these specs…

I loved this post when I saw it earlier this year, but only just got around to sharing it. I’d highly recommend visiting the full post to see the full list of features that this laptop has, according to Chad’s 7-year-old (and the laptop’s inventor). I especially love the ghost/no-ghost buttons.

I found myself reminded of a piece of art our eldest made for me back when they must’ve been… about four years old. They’d observed that I was very interested in the Internet and so had attempted to draw me a picture of it using what they’d gleaned about what it “is”:

Framed child-drawn picture showing multiple circles, connected by lines, each with a number 0 or 1 in it.

A network of circles, linked together and covered with ones and zeroes. And the zeroes are crossed-through in what the kid, almost a decade on, still refers to as “programmer-style”. Excellent. It’s one of my favourite pieces of child-art ever and it’s framed on the landing outside my bedroom (the one in my still-being-rebuilt real house, not the damn Chicory House I’m so sick of living in).

Anyway, Chad’s son’s laptop is brilliant and now I want a “ghost” button on my laptop.

×

Automattic Minus Matt

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Matt Mullenweg takes an involuntary leave of absence from Automattic, the company behind WordPress. Let’s hope he uses his time away thoughtfully.

Matt Mullenweg is out

This morning’s been full of the media coverage that Matt Mullenweg, co-creator of WordPress and founder of (my former employer) Automattic, has been ousted from his CEO position at Automattic by his board. The article linked above is my favourite so far; there are plenty more (or, if you prefer drama, go look on Twitter or Reddit 🤮).

I think this is probably for the best. I’ve previously observed that Automattic has been a ship on fire for a while, and – both for the last few years that I was employed by him, and even more since then – Matt has seemed… distracted and unfocussed. There’ve been huge challenges (some of his own making, admittedly) in both his professional and personal life, and I’d like to imagine that it’s these that led to him making the many… questionable… decisions he’s made over the last few years. I’ve been concerned that he’s leaned-away from open source commitments, over-focussed on lawsuits and AI, and opened his mouth without turning on his brain (something we’ve all done from time to time, but it’s a problem when doing so lands you – or your company – in hot water with the community, the media, the law, or – heaven help you – Tumblrites).

This is good for Automattic

So yeah: I think this can only be good for Automattic, in the long term. I hope that my friends who still work there don’t find the inevitable upcoming shake-up too painful and dramatic. And I hope that this whole thing does not lead to any… further weaponisation of the WordPress project (which remains closely under Matt’s control, even as Automattic does not).

But mostly… I hope that Matt gets the help and support that I think he needs. His sabbatical the other year included “a lot of solo time and introspection”, but perhaps that’s not the right answer this time.

This is good for Matt

I’ve corresponded with Matt on a few occasions (occasionally even publicly e.g. here’s him reblogging me; here’s him graffifi’ing on this blog). As a very early WordPress adopter, back in the day I exchanged emails with him and talked to him on IRC (I remember one time we argued about HTML vs XHTML; in hindsight, he was right on that one). It’s funny: I used a different name back then and so I don’t imagine he ever made the connection that it was the same “me” on the rare opportunities that we connected on Slack when – many years later on – I was his employee!

But my point there is that: for a while, at least, it felt like once upon a time, his heart was in the right place. Which makes me feel like all of his problematic behaviour and questionable choices and acting-out is a result of his environment. A lot of big-tech CEOs seem to get kinda… weird and paranoid and right-wing (if they weren’t already: some of them, of course, were!): maybe the toxicity of the environment erodes at a person who was once well-meaning-but-flawed and turns them into something else.

This should be seen as an intervention

To that end, I optimistically see his removal as CEO as… perhaps a kind of intervention? I think it’s good that he’s been ousted (although I wish he could have done it himself). I think it’ll benefit Automattic in the long run. And I hope that it’ll be good for Matt, too. I hope that he’ll take six… twelve… twenty-four months – whatever it takes – and work out what went wrong. Get some therapy. Write some code (really write it; not get an AI to do it). Play some music. Get some more therapy.

Until he can unpick where his life diverged from that of the WordPress community, the feeling in Automattic, and his younger-self’s idealism… I don’t think he should be in charge of Automattic.

Automattic has a “take what you need” leave policy, and Matt needs to use it. I’m sorry that he couldn’t see that for himself and that he had to be forced to… but in my opinion: it’s the right thing.


Incidentally, this blog post… was proudly written on ClassicPress.

Pixel Area

Pixel Area (@pxlarea@mastodon.social) launched a couple of weeks ago, and DanQ.me was selected to be one of the initial “seed” blogs that were there at the outset (I’m at https://pxlarea.com/x38y34).

I’m… honestly not sure what to make of it. Organising personal websites spatially seems like a strange idea (although there’s a list view available too). And ‘pixel’ seems to be a strange name (at my desktop resolution, my ‘pixel’ comprises… 169 pixels). It’s got a little bit of a “million dollar homepage” (remember that) feel to it… though at least it’s not operating commercially. In fact, the best thing about it seems to be that it’s home-grown indie/smolweb content.

I guess it’s a bit like a webring? (Maybe it needs an embeddable component that lets a site show it’s “space” and hop to neighbours?)

So… yeah; I’m undecided on this one. But, as always, I love when people do cool, random and experimental stuff with the Web!

Screenshot from Pixel Area, showing a blue 'pixel' representing Dan Q.

×

Sundog

That moment when you realise that you forgot your sunglasses but figure you’ll just squint.

A fawn-coloured French Bulldog sits on the wooden decking outside a back door, squinting as she looks towards the sun (evident from the direction of the shadows).

×

Use Firefox

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

People complain about Firefox. The most recent grievance is the addition of AI features in the browser, and they will tell you they’re switching to another browser as a result.

I’m here to tell you not to do it.

At best, that person switched to a fork of Firefox, which still depends on the same browser engine. But the worst case scenario is a browser based on Blink and Chromium.

Firefox is the last major independent browser engine1. The web is a vibrant commons because of browser engine diversity. Multiple engines serve as a check on power and support the wide review process that underpins standards work on the web.

Ramkumar is right. This is a drum I’ve been beating ever since EdgeHTML got pulled out of Edge, which effectively represented a one-third reduction in real-world browser diversity. It’s more-important than ever that Firefox continues to be used, continues to exist, continues to thrive.

I mean: it’s a perfectly good browser too! I use it as my daily driver on all of my devices and I love it. But even if it weren’t for that, I’d still be pushing people towards Firefox because the Internet needs it to exist. If it stops existing, or even reaches a level of technical irrelevance, then Google gains an unprecedented level of control over the direction of the Web… which – even despite their monopoly abuses via Google Search and other integrations – they’ve shown they can’t be trusted with: consider how they (yet again) exempted themselves from their own privacy controls this week, or else look back over technologies they’ve strongarmed onto the Web, benefitting themselves at the expense of the Web, like FLoC and AMP, or else look at the gradual enshittification of their browser – which no longer supports deep integration by adblockers – or of the Android operating system – which you’re getting locked-out of this year.

So yeah. Use Firefox. You can keep a Blink/WebKit-based browser for secondary purposes, like for when you’re saving battery on a MacBook (I’d use Safari) or for when you want to use a badly-implemented application that thinks it requires Chrome (I’d use Edge). But making Firefox – or failing that, a fork of it that meets your needs, maybe Waterfox or LibreWolf – your daily driver is one of the single easiest things you can do to help keep the Web free and open.

And you get some cool perks on the side, like mobile plugins (uBlock on mobile… yes please!), better tab management (and adding Multi-Account Containers is life-changing!), stronger privacy protection, lower RAM usage, etc. So yeah: use Firefox.

Note #30138

Needed to renew my driving license. My new one doesn’t have an EU flag on it. The sad reminders of Brexit just keep coming. 🇪🇺💔

Hot take: AI peaked with Taco Bot 3000

AI peaked in 20141 with the invention of the Taco Bot 30002.

With artificial (taco) intelligence and the latest cheese dispensing technology, it truly represented the summit of human technological achievement the likes of which we might not see again3.

Adapted framegrab. Simplistic colourful art showing a person in an unfastened bike helmet hanging onto the shoulder of a robot and pointing at the words 'taco bot' on its chest, while tacos rain down behind. It's overlaid with the text 'Taco Bot 3000: when you need a whole lot of tacos expertly created by a robot at the highest level of quality'.

Footnotes

1 Yes, Taco Bot’s song came out in 2019, teaching us about the far-reaching capabilities of this high-powered platform, but a prototype Taco Bot with a reduced featureset was seen in 2014’s Raining Tacos.

2 Is it AI? The term gets thrown-around a lot nowadays and refers to a lot of different technologies, let’s not forget that that’s always been the case. Was the El Ajedrecista machine (1914) AI? Arguably, yes: even though it was effectively using a ruleset, it achieved its goal of exhibiting a behaviour that had previously been argued to be demonstrative of human intelligence, and beyond the capability of an automaton (consider also the Nimatron from 1940). Looking for something less-deterministic? The Ising Model (1920) could be argued to have been the first neural net. It didn’t attempt to “act” in a way that most humans think of when they consider “AI”, but it used fundamentally the same model as future artificial neural nets did. By 1950, Turing and von Neumann had laid-out more-concrete definitions of machine “thought”, some of which had, at least conceptually, already been demonstrated by the above examples, but if you don’t consider response precomputation a valid AI strategy, then consider Prinz’s Chess (1951) which calculated on-the-fly solutions. Or if your view on AI is sufficiently narrow that you only consider a “chatbot” to count, let’s not forget that ELIZA got there in 1965. My point is that there’s a whole lot of things that can and have been legitimately called AI, and a walking, talking, bad-guy-fighting, taco-dispensing robot might certainly count, in my mind.

3 By which I mean to say, the Raining Tacos saga by Parry Gripp (whom you’ve almost certainly come across either from his silly videos or else because he performed the Buffy the Vampire Slayer theme song) finally came to an end in April of this year after taking 14 years to release 9 short songs. If you blinked and missed the last decade and a half of Internet wackiness, go watch the director’s cut of the whole thing, which came out last month.

×

Why Are We Taught to Memorise and Not Learn?

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Roald Dahl does not use fronted adverbials for time and coordinating conjunctions, he deliberately makes his work simple and frenetic, the stream of consciousness of a curious child , the turbocharged imagination of youth in prose it can easily understand.

To Tories, Art Is Not Proper. Grammar is Proper.

Of course, this handily explains the move towards metrics obsession in the UK, but this is a long term phenomenon that predates Michael Gove. Our education system was advocated for and partially financed by industrialists, who saw that teaching the necessary mathematical and numerical skills to perform middle management tasks could be funded by the taxpayer. This is in the bones of our education system, the set structure. Metrics obsession isn’t just a class thing, it’s factory floor thinking. Everything must be quantified in terms of output, you are performing mock standardised tests every 6 weeks from the age of 8.

A political but fair look at the mass-production standardisation of English-language education in British schools. In an effort to make work measurable and objectively assessable, it argues, we’re stripping the joy out of the art of writing.

Having seen the kinds of things our children are assessed on at school, it’s a reasonable hypothesis.