Woodcraft Folk statement on the exclusion of trans children from Girlguiding

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

Woodcraft Folk stands in solidarity with every trans child, young person and volunteer who faces exclusion from Girlguiding UK following the announcement on Trans inclusion.

We recognise that Girlguiding UK have taken this decision in the context of intense political pressure and legal uncertainty. However, this does not make the outcome acceptable. Young people should never bear the consequences of political disputes. All children and young people deserve respect, safety and inclusion in their youth organisations.

Excellent statement from Woodcraft Folk.

I was saddened to hear the news that Girlguiding will no longer accept trans girls as members. It seems to me that it would have been perfectly reasonable for them to change their articles in response to the Supreme Court silliness: instead of declaring themselves as being for the benefit of “girls and women” they could have become for the benefit of “girls, women, trans girls, and trans women”.

Yes, obviously it’s horrible that the Supreme Court’s othering decision means that people have to spell out that “by women, we mean all women, including trans women”. But that’s a thing that a charity can do. It’s perfectly reasonable for a charity to be for the benefit of multiple groups.

But no, they took the easy option.

So it’s great to see youth-supporting organisations like Woodcraft Folk make a statement like this that trans kids continue to be welcome with them. Okay, this was easier for them than for Girlguiding because Woodcraft’s articles didn’t contain any gendered language in the first place. And it’s fine that Girlguiding’s does use gendered language – it’s okay for charities to be gender-specific! – but it’s a shame that they didn’t… pardon the pun… have the balls to stand up for what’s right for all women and girls, in spite of the UK’s growing transphobia. Ugh.

Anyway: nice work, Woodcraft Folk.

Dithering – Part 1

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

Framegrab from an animation showing a grayscale image being 'pushed through' a threshold map to produce a dithered monochrome image.

I already understand how using a threshold map to perform dithering works and have even implemented dithering algorithms, and I still appreciated this amazing visual explainer which helped put it in a light I’d never considered before. A highly-recommended read, and I’ve subscribed to Damar’s RSS feed so I get to see Part 2 when it happens.

(I also enjoyed playing with the dithering experiment on his CodePen, because it turns out that the technology behind this interactive demo is as interesting as the topic being described!)

HTTP is not simple

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

HTTP/1 may appear simple because of several reasons: it is readable text, the most simple use case is not overly complicated and existing tools like curl and browsers help making HTTP easy to play with.

The HTTP idea and concept can perhaps still be considered simple and even somewhat ingenious, but the actual machinery is not.

[goes on to describe several specific characteristics of HTTP that make it un-simple, under the headings:

  • newlines
  • whitespace
  • end of body
  • parsing numbers
  • folding headers
  • never-implemented
  • so many headers
  • not all methods are alike
  • not all headers are alike
  • spineless browsers
  • size of the specs

]

I discovered this post late, while catching up on posts in the comp.infosystems.gemini newsgroup, but I’m glad I did because it’s excellent. Daniel Stenberg is, of course, the creator of cURL and so probably knows more about the intricacies of HTTP than virtually anybody (including, most-likely, some of the earliest contributors to its standards), and in this post he does a fantastic job of dissecting the oft-made argument that HTTP/1 is a “simple” protocol; based usually upon the argument that “if a human can speak it over telnet/netcat/etc., it’s simple”.

This argument, of course, glosses over the facts that (a) humans are not simple, and the things that we find “easy”… like reading a string of ASCII representations of digits and converting it into a representation of a number… are not necessarily easy for computers, and (b) the ways in which a human might use HTTP 0.9 through 1.1 are rarely representative of the complexities inherent in more-realistic “real world” use.

Obviously Daniel’s written about Gemini, too, and I agree with some of his points there (especially the fact that the specification intermingles the transfer protocol and the recommended markup language; ick!). There’s a reasonable rebuttal here (although it has its faults too, like how it conflates the volume of data involved in the encryption handshake with the processing overhead of repeated handshakes). But now we’re going way down the rabbithole and you didn’t come here to listen to me dissect arguments and counter-arguments about the complexities of Internet specifications that you might never use, right? (Although maybe you should: you could have been reading this blog post via Gemini, for instance…)

But if you’ve ever telnet’ted into a HTTP server and been surprised at how “simple” it was, or just have an interest in the HTTP specifications, Daniel’s post is worth a read.

How Online Privacy Has Been Championed by Dreamwidth

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

I’m writing up this information because Dreamwidth’s legal advocacy work has been largely underrecognized. I have not seen a scrap of mainstream news coverage out there that delves into the unique role that Dreamwidth has played in the NetChoice lawsuits, and in a tech news landscape that inspires so much resignation and despair, I think people deserve to know about how Dreamwidth is putting up a fight. Not only does Dreamwidth refuse to engage in intrusive tracking, it’s proactively participating in lawsuits against state governments that try to force its hand. For all that many lawmakers are trying to make the web worse, Dreamwidth is leveraging itself as proof that a better web is possible.

If your mental model of Dreamwidth is “it’s like LiveJournal, but…” then you owe it to yourself to read Coyote’s excellent explanation of how Dreamwidth is so much more: a beacon of privacy-centric and censorship-resistant blog hosting in a world that increasingly seems at-best uninterested and at-worst actively hosting to such things.

That it’s not for me personally (I’m more a selfhost type) doesn’t mean it’s not a great choice for you: it’s got solid free and reasonably-priced premium tiers and all the kinds of features you’d expect from a service live LiveJournal, or Tumblr, or Medium… but without all of the antifeatures that come with each of those.

And yeah, they’re on the side of the good guys:

Framegrab from Tron, overlaid with iconic line 'I fight for the users'.
I think there’s mileage in stealing repurposing this iconic line…

Coyote also wrote the excellent You Can Make A Website, if you’re looking for further reading from the same author.

The perils of doors in gamedev

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

Recent discussion about the perils of doors in gamedev reminded me of a bug caused by a door in a game you may have heard of called “Half Life 2”. Are you sitting comfortably? Then I shall begin.

A Combine soldier threatening with a baton, in front of a door. Which one is a greater menace in gamedev?

What is meant to happen is a guard (spoiler alert – it’s actually Barney in disguise) bangs on a door, the door opens, he says “get in”, and then the game waits for you to enter the room before the script proceeds.

But in this case the door sort of rattled, but didn’t open, and then locked shut again. So you can’t get in the room, and the gate closed behind you, so you can’t go do anything else. The guard waits forever, pointing at the locked door, and you’re stuck.

If you watch the video, when the door unlocks and then opens, there’s a second guard standing inside the room to the left of the opening door. That guard is actually standing very slightly too close – the very corner of his bounding box intersects the door’s path as it opens. So what’s happening is the door starts to open, slightly nudges into the guard’s toe, bounces back, closes, and then automatically locks. And because there’s no script to deal with this and re-open the door, you’re stuck.

So this kicked off an even longer bug-hunt. The answer was (as with so many of my stories) good old floating point. Half Life 2 was originally shipped in 2004, and although the SSE instruction set existed, it wasn’t yet ubiquitous, so most of HL2 was compiled to use the older 8087 or x87 maths instruction set. That has a wacky grab-bag of precisions – some things are 32-bit, some are 64-bit, some are 80-bit, and exactly which precision you get in which bits of code is somewhat arcane.

Amazing thread from Tom Forsyth, reflecting on his time working at Valve. The tl;dr is that after their compiler was upgraded (to support the SSE instruction sets that had now become common in processors), subsequent builds of Half-Life 2 became unwinnable. The reason was knock-on effects from a series of precision roundings, which meant that a Combine security guard’s toe was in a slightly wrong place and the physics engine would bounce a door off him.

A proper 500-mile-email grade story, in terms of unusual bugs.

SVGs that feel like GIFs

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

The moving image below is only 49Kb and has an incredibly high resolution.

It’s similar to a GIF but instead of showing moving images, it shows moving SVGs! The best part: Github supports these in their README.md files!

Vincent D. Warmerdam, in SVGs that feel like GIFs

Got to admit, this is really cool and something I can see myself using a lot. So I installed the prerequisites:

brew install asciinema npm install -g svg-term-cli

Then I gave it a go. I needed to use asciinema rec -f asciicast-v2 myfile.cast to record my screen into Asciinema‘s version 2 format, because the new version 3 format isn’t yet supported by svg-term-cli (but there is at least an asciinema convert command if you record in the “wrong” one).

Then I ran cat myfile.cast | svg-term --out myfile.cast.svg to convert that terminal recording into an SVG: I happened to be in a directory containing the source code of FreeDeedPoll.org.uk, so recorded myself running an 11ty development server with npm serve:

Animation showing a user running npm start at a terminal and seeing an 11ty development server compile assets and run.

Amazing stuff.

×

AI and cigarettes

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

In the 1980s and 1990s, when I was a kid, smoking was everywhere. Restaurants, bars, and a little before my time, airplanes!

The idea that people would smoke was treated as inevitable, and the idea that you could get them to stop was viewed as wildly unrealistic.

Sound familiar? But in the early 2000’s, people did stop smoking!

But a few years ago, the trend started to reverse. You know why?

Vaping.

Vape pens were pushed as a “safer alternative to smoking,” just like Anil is suggesting with Firefox AI. And as a result, not only did people who would have smoked anyways start up again, but people who previously wouldn’t have started.

I know it’s been a controversial and not-for-everyone change, but I’ve personally loved that Chris Ferdinandi has branched out from simply giving weekday JavaScript tips to also providing thoughts and commentary on wider issues in tech, including political issues. I’m 100% behind it: Chris has a wealth of experience and an engaging writing style and even when I don’t 100% agree with his opinions, I appreciate that he shares them.

And he’s certainly got a point here. Pushing “less-harmful” options (like vaping… possibly…) can help wean people off something “more-harmful”… but it can also normalise a harmful behaviour that’s already on the way out by drawing newcomers to the “less-harmful” version.

My personal stance remains that GenAI may have value (though not for the vast majority of things that people market it as having value for, where – indeed – it’s possibly doing more harm than good!), but it’s possible that we’ll never know because the entire discussion space is poisoned now by the hype. That means it’ll be years before proper, unbiased conversations can take place, free of the hype, and it’s quite possible that the economy of AI will have collapsed by then. So maybe we’ll never know.

Anyway: good post by Chris; just wanted to share that, and also to add a voice of support for the direction he’s taken his blog these last few years.

We Need to Talk About Botsplaining

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

“Botsplaining,” as I use the term, describes a troubling new trend on social media, whereby one person feeds comments made by another person into a large language model (like ChatGPT), asks it to provide a contrarian (often condescending) explanation for why that person is “wrong,” and then pastes the resulting response into a reply. They may occasionally add in “I asked ChatGPT to read your post, and here’s what he said,”2 but most just let the LLM speak freely on their behalf without acknowledging that they’ve used it. ChatGPT’s writing style is incredibly obvious, of course, so it doesn’t really matter if they disclose their use of it or not. When you ask them to stop speaking to you through an LLM, they often simply continue feeding your responses into ChatGPT until you stop engaging with them or you block them.

This has happened to me multiple times across various social media platforms this year, and I’m over it.

Stephanie hits it right on the nose in this wonderful blog post from last month.

I just don’t get it why somebody would ask an AI to reply to me on their behalf, but I see it all the time. In threads around the ‘net, I see people say “I put your question into ChatGPT, and here’s what it said…” I’ve even seen coworkers at my current and formers employer do it.

What do they think I am? Stupid? It’s not like I don’t know that LLMs exist, what they’re good at, what they’re bad at (I’ve been blogging about it for years now!), and more-importantly, what people think they’re good at but are wrong about.

If I wanted an answer from an AI (which, just sometimes, I do)… I’d have asked an AI in the first place.

If I ask a question and it’s not to an AI, then it’s safe for you to assume that it’s because what I’m looking for isn’t an answer from an AI. Because if that’s what I wanted, that’s what I would have gotten in the first place and you wouldn’t even have known. No: I asked a human a question because I wanted an answer from a human.

When you take my request, ignore this obvious truth, and ask an LLM to answer it for you… it is, as Stephanie says, disrespectful to me.

But more than that, it’s disrespectful to you. You’re telling me that your only value is to take what I say, copy-paste it to a chatbot, then copy-paste the answer back again! Your purpose in life is to do for people what they’re perfectly capable of doing for themselves, but slower.

Galaxy Quest: Tawny Madison says "Gosh, I'm doing it. I'm repeating the damn computer."
Galaxy Quest had a character (who played a character) who was as useful as you are, botsplainer. Maybe that should be a clue?

How low an opinion must you have of yourself to volunteer, unsolicited to be the middle-man between me and a mediocre search engine?

If you don’t know the answer, say nothing. Or say you don’t know. Or tell me you’re guessing, and speculate. Or ask a clarifying question. Or talk about a related problem and see if we can find some common ground. Bring your humanity.

But don’t, don’t, don’t belittle both of us by making yourself into a pointless go-between in the middle of me and an LLM. Just… dont’t.

×

Two modes of Internet use

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

I’ve found my relationships are healthier when I keep my offline-first relationships offline (e.g. not following each other on Facebook or Instagram) — following someone’s Instagram makes it feel like I know what’s going on with them without interacting. Following offline friends on social media can reduce what used to be normal friendships into parasocial relationships.

I suspect bringing offline relationships online is responsible for a lot of the loneliness people feel — social media looks like you have all these friends… but no one you could ask to feed your cat while you’re away, because one-to-many broadcasting replaced direct interactions 😿 Essentially, the offline relationship became an online one.

Tracy’s observations here are absolutely excellent, and spot-on. I’ve absolutely experienced some of the problems she’s described when trying to use social media to supplement “offline-first” relationships.

Unfortunately, unilaterally following Tracy’s segregation strategy doesn’t necessarily guarantee that you’re going to avoid the problems she’s identified. That’s especially true if you haven’t always followed her guidance!

Like many folks I know, I joined Facebook when it became available to me and used it to connect with most of the people I knew in the real world. And certainly, this caused a problematic blurring of our online and offline interactions! People in my friend group would switch to “broadcast mode”, not reaching out to query one another’s status and wellbeing, and coming to assume that anything they’d shared online would be universally known among their friends (I was definitely guilty of this myself; sometimes I still am!).

I dropped Facebook about 14 years ago, but it’s still the case that my offline-first friends will sometimes assume that I’ll know something that they posted there (or to some other platform). And it’s still the case that I’m not as good as I could be at reaching-out and checking-in. (At least that latter point is something actionable that I can work with, I suppose.)

After thirty years online, it seems to me that converting an online relationship to an offline one is a rarity. But converting one born-offline into an online one, or a “hybrid” one that somehow exhibits some of the worst characteristics of both, is distressingly easy… even when you don’t intend it.

Tracy’s post’s got much more to say, and I thoroughly recommend it. I don’t know that I’m personally ready to make as firm a distinction between my “online” and “offline” friends as she seems to – there are aspects of the hybrid model that actually work quite well for me, much of the time – but I like having a framework around which to think and talk about the differences.

The Piss Saga

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

When somebody started repeatedly leaving bottles of urine on top of a utility cabinet in his neighbourhood, filmmaker Derek Milton decided to investigate. During his descent into insanity as he tries to understand why this person keeps leaving their piss here (and who keeps collecting them, later), somehow sponsored by the Reolink Go PT Ultra range of security cameras, we see through this entertaining (?) documentary (??) the story of an artist trying to interpret the work of another, more-shy, artist (???).

I don’t know, that’s the best description I can come up with for this weird project. I still don’t know why I watched it from beginning to end. But now you can, too.

A chat with 19-year-old me

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

I bumped into my 19-year-old self the other day. It was horrifying, in the same way that looking in the mirror every morning is horrifying, but with added horror on top.

I stopped him mid-stride, he wasn’t even looking at me. His attention was elsewhere. Daydreaming. I remember, I used to do a lot of that. I tapped his shoulder.

“Hey. Hi. Hello. It’s me! I mean: you.”

I wanted to pick two parts of this piece to quote, but I couldn’t.  The whole thing is great. And it’s concise – only about 1,700 words – so you should just go read it.

I wonder what conversations I’d have with my 19-year-old self. Certainly technology would come up, as it was already a huge part of my life (and, indeed, I was already publishing on the Web and even blogging), but younger-me would still certainly have been surprised by and interested in some of the changes that have happened since. High-speed, always-on cellular Internet access… cheap capacitive touchscreens… universal media streaming… the complete disappearance of CRT screens… high-speed wireless networking…

Giles tells his younger self to hold onto his vinyl collection: to retain a collection of physical media for when times get strange and ephemeral, like now. What would I say to 19-year-old me? It’s easy to fantasise about the advice you’d give your younger self, but would I even listen to myself? Possibly not! I was a stubborn young know-it-all!

Anyway, go read Giles’ post because it’s excellent.

Repost #27484

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

Screenshot from Layoutit! Terra showing an isometric view of a gridded temperate landscape alongside controls to tweak the amount of land, terrain type, etc.

Layoutit Terra is a CSS terrain generator that leverages stacked grids and 3D transforms.

Inspectable spikes, wedges, ramps and flats are stitched together into a voxel landscape.

Inspired by Transport Tycoon and all ’90s isometric classics.

Built from the southern hemisphere with Vue, Nuxt, and lots of love ♥

  +------+      +------+     
 /|     /|      |\     |\    
+-+----+ |      | +----+-+   
| |    | |      | |    | |   
| +----+-+      +-+----+ |  
|/     |/        \|     \| 
+------+          +------+     

It’s not often these days that I have the experience of “I didn’t know the Web could do that‽”

Once was when I saw DHTML Lemmings, for example, at a time when adding JavaScript to a page usually meant you were doing nothing more-sophisticated than adding a tooltip/popover or switching the images in your mystery meat navigation menu. Another was when I saw Google Earth’s browser-based implementation for the first time, performing 3D manipulations of a quality that I’d previously only seen in dedicated applications.

But I got that today when I played with Layoutit! Terra (from the folks behind one of the better CSS grid layout generators). It’d be pretty cool if it were “just” a Transport Tycoon-like landscape generator and editor, but the thing that blew my mind was discovered that it’s implemented entirely in HTML and CSS… not a line of JavaScript to be seen. Even speaking as somebody who played… and then reverse-engineered… things like Blackle Mori’s CSS Puzzle Box, I can’t even begin to fathom how I’d begin to conceive of such a thing, let alone implement it.

Well done, Layitout! team.

You’ve got mail

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

Subject: “Re-Design and Promotion Strategy for Dead.Garden”
Subject: “About your Dead.Garden”
Subject: “Errors in your Dead.Garden”

Dear Dead,
your website is not good enough, in fact, it is actively bad.
Don’t you know that you need Search Engine Optimization?
What are you, some kind of idiot?
Your site is currently ranked on page 1,000,000 of Google,
and if we know anything (in fact, we know everything),
this means that you are wasting not only your time,
but much more importantly
money.


We’ve had a quick look at your site
and noticed a few areas that could be improved.
We’ve discovered that your website’s UI is,
frankly,
complete ass.
Your mobile experience is bad, your CTAs should be shinier and rounder;
Maybe put a gradient here and there.
How are you ever going to get someone to buy your product
without manipulating their behaviour?

You’re not selling anything?
Well then, what ARE you doing?

A fantastic poem that feels exactly like the subtext of every one of these emails I ever receive.

My blog is for me, first and foremost; I suspect Jo feels a similar way about their digital garden. I’m not interested in making money with it, and I’m perfectly comfortable with the fact that it costs me money. These things are all fine. I don’t need an SEO merchant to tell me how they can improve it.

Anyway: go enjoy Jo’s poem.

The Reason I Have 12 Birthdays

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

or, how to fuck your shit up by ignoring obvious birthday inflammation symptoms. don’t be like me. seek help.

sorry for this barely scripted and low quality video, the next one will be worse.

special thanks to doctor jacobi for the excellent care, and to the manna charitable foundation for the flight logistics.

The ever-excellent Blackle Mori1 posted this about 18 months ago but I don’t think it got the level of attention it deserves. If if you’ve never experienced birthday inflammation or known anybody who has, it’s an eye-opening experience to hear a first-hand account of this unusual and definitely-real condition.

 

Footnotes

1 If the name’s familiar but you can’t quite place it, here’s the previous two times I’ve talked about Blackle’s work: my analysis of the construction of the Basilisk Collection, and the (now-famous) Cursed Computer Iceberg.

AI assistants misrepresent news content 45% of the time

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

New research coordinated by the European Broadcasting Union (EBU) and led by the BBC has found that AI assistants – already a daily information gateway for millions of people – routinely misrepresent news content no matter which language, territory, or AI platform is tested.

Key findings: 

  • 45% of all AI answers had at least one significant issue.
  • 31% of responses showed serious sourcing problems – missing, misleading, or incorrect attributions.
  • 20% contained major accuracy issues, including hallucinated details and outdated information.

In what should be as a surprise to nobody, but probably still is (and is probably already resulting in AI fanboys coming up with counterpoints and explanations): AI is not an accurate way for you to get your news.

(I mean: anybody who saw Apple Intelligence’s AI summaries of news probably knew this already, but it turns out that it gets worse.)

There are problems almost half the time and “major accuracy issues” a fifth of the time.

I guess this is the Universe’s way of proving that people getting all of their news from Facebook wasn’t actually the worst timeline to live in, after all. There’s always a worse one, it turns out.

Separately, the BBC has today published research into audience use and perceptions of AI assistants for News. This shows that many people trust AI assistants to be accurate – with just over a third of UK adults saying that they trust AI to produce accurate summaries, rising to almost half for people under-35.

Personally, I can’t imagine both caring enough about a news item to want to read it and not caring about it enough that I feed it into an algorithm that, 45% of the time, will mess it up. It’s fine to skip the news stories you don’t want to read. It’s fine to skim the ones you only care about a little. It’s even fine to just read the headline, so long as you remember that media biases are even easier to hide from noncritical eyes if you don’t even get the key points of the article.

But taking an AI summary and assuming it’s accurate seems like a really wild risk, whether before or after this research was published!