Integration contemplation

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

  • What fragments you?
  • What defragments you?
  • How are you balancing both?

My dear friend Boro raises this curious provocation, which I really enjoyed musing upon this evening. His choice of words are excellent.

Fragmentation is about context-switching. About disfocus. About the scattering of ideas. We think of defragmentation – the “re-ordering” of data – as a necessary good: bringing management and logic to how our information is arranged. But it’s Boro’s third question that reminds us that that’s not necessarily true.1 2

Anyway: Boro’s post is a reminder that a human brain is not a magnetic drum, and fragmentation is not necessarily something to fear. What’s an extra millisecond or two of psychological “seek time” as you aim to remember the date of your friend’s birthday… if the mental journey takes you past memories of parties long-ago? How bad, really, is a few moments of seeking the right word if, on the way, you discover the perfect metaphor for that blog post?3

What Boro accidentally touches on, for me, is the concept of premature optimisation. We talk about this being bad in software engineering circles, but it’s also bad for us psychologically. Taking shortcuts weakens our ability to think things through “the hard way”. Earlier today, I had a thought about… something inconsequential about heart rates… and chose to use mental arithmetic, over the course of several minutes, to estimate an answer to my query. My phone – with its built-in calculator app – sat in my pocket the whole time. I chose the less-efficient route, and I felt better for it. Efficiency is not always the goal.

Or, as folks in my circles are saying a lot lately: inconvenience is counterculture. I quite like that.

Anyway: thanks, Boro, for the thought.

Footnotes

1 Brief side-note #1: if you’re wondering why you haven’t had to “defrag your hard drive” for the last decade or so: the biggest reason is that SSDs don’t suffer fragmentation in the same kind of way  (and, indeed, trying to defragment them probably reduces their lifespan!). Fragmentation on physical media is a problem only because the magnetic heads need to jump back and forth between “parts” of a file or stream of data, which introduces wear and slows down seeking. But on solid state media, where data is referenced directly by memory address, fragmentation is no impediment.

2 Brief side-note #2, with the understanding that the side notes are now getting to be longer than the actual content: one of my favourite features of late-stage HDD defragmentation utilities was that they were smart about what they defragmented where. Not only could they group individual files “together”, they could also group frequently-used-together files close to one another (minimising head movement) and could even cluster frequently-accessed files like operating system data very close to the edge of physical media, where the angular rotation of the heads would be smallest (because the track length was greatest). Mind-boggling how these things, like e.g. screen savers as a mechanism to prevent CRT burn-in, become completely obsolete but still live on in popular consciousness.

3 Y’know, the one about defragmentation.

Rebels in the Sky

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

It’s the year 2101. Corporations have taken over the world. The only way to be free is to join a pirate crew and start plundering the galaxy. The only means of survival is to play basketball.

Now it’s your turn to go out there and make a name for yourself. Create your crew and start wandering the galaxy in search of worthy basketball opponents.

The game is under heavy development and breaking changes are often introduced. If you can’t continue an old game because the save file is invalid, you probably need to start a new one or open an issue to check if the save file can be migrated.

Just try it out!

Connect via SSH to try the game.

ssh rebels.frittura.org -p 3788

Save files are deleted after 2 days of inactivity.

I feel like I’m reading a lot about SSH lately and how it can be used for exotic and unusual tasks. Tarpitting‘s fun, of course, but really what inspires me is all these dinky projects like ssh tiny.christmas that subvert the usual authentication-then-terminal flow that you expect when you connect to an SSH server.

These kinds of projects feel more like connecting to a BBS. And that’s pretty retro (and cool!).

Anyway: Rebels in the Sky is a networked multiplayer terminal-based game about exploring the galaxy with a team of basketball-loving space pirates. I met the main developer on a forum and they seem cool; I’m interested to see where this quirky little project ends up going!

(The pixel art planets, based on Deep-Fold’s work, are amazing too. Honestly impressed to see animations like these transmitted over a shell!)

Curious Cones

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

Welcome to my collection of cones that have found themselves in peculiar circumstances.

Two cones sitting at a table in a university cafe

In the style of Wild Bread, Curious Cones is a catalogue of traffic cones in unusual places, and that is all.

How wonderful and weird our World Wide Web is, that such a thing can exist. And it’s got an 88×31, too (now sported on my blogroll)!

With thanks to Piece of the Pie’s “Site of the Week” for helping me discover it!

Why there’s no European Google?

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

The Internet, the interconnection of most of the computers in the world, has existed since the late sixties. But no protocol existed to actually exploit that network, to explore and search for information. At the time, you needed to know exactly what you wanted and where to find it. That’s why the USA tried to develop a protocol called “Gopher.”

At the same time, the “World Wide Web,” composed of the HTTP protocol and the HTML format, was invented by a British citizen and a Belgian citizen who were working in a European research facility located in Switzerland. But the building was on the border with France, and there’s much historical evidence pointing to the Web and its first server having been invented in France.

It’s hard to be more European than the Web! It looks like the Official European Joke! (And, yes, I consider Brits Europeans. They will join us back, we miss them, I promise.)

Google, Microsoft, Facebook may disappear tomorrow. It is even very probable that they will not exist in fourty or fifty years. It would even be a good thing. But could you imagine the world without the Web? Without HTML? Without Linux?

Those European endeavours are now a fundamental infrastructure of all humanity. Those technologies are definitely part of our long-term history.

There are so many ways in which the UK has had to choose – and continues to have to choose – which side of the Atlantic it belongs on: the North American side, or the European side. Legally, politically, financially, culturally… And every time we swing away from Europe, it saddens me.

This wonderful article by Lionel Dricot encapsulates one of many reasons why. European tech culture, compared to that in the USA, leans more open-source, more open-standards, more collaborative. That’s the culture I want more of.

Worth a read.

Introduction to the new HTML element ‘geolocation’

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

The <geolocation> element provides a button that, when activated, prompts the user for permission to access their location. Originally, it was designed as a general <permission> element, but browser vendors indicated that implementing a “one-size-fits-all” element would be too complex. The result was a single-purpose element, probably the first of several.

<geolocation>
  <strong>Your browser doesn't support &lt;geolocation&gt;. Try Chrome 144+</strong>
</geolocation>

I’ve been waiting for this one. Given that “requesting permission to access a user’s location” has always required user intervention, at least to begin with, it makes sense to me that it would exist as a form control, rather than just as a JavaScript API.

Implementing directly in HTML means that it degrades gracefully in the standard “if you don’t understand an element, simply render its contents” way that the Web always has. And it’s really easy to polyfill support in for the new element so you can start using it today.

My only niggle with <geolocation> is that it still requires JavaScript. It feels like a trick’s been missed, there. What I’d have really wanted would have been <input type="geolocation">. This would e.g. renders as a button but when clicked (and permission granted) gets the user’s device location and fills the field (presumably with a JSON object including any provided values, such as latitude, longitude, altitude, accuracy, provider, and so on). Such an element would still provide all the same functionality of the new element, but would also be usable in a zero-JS environment, just like <input type="file">, <input type="datetime-local"> and friends.

This is still a huge leap forward and I look forward to its more-widespread adoption. And meanwhile, I’ll be looking into integrating it into both existing applications that use it and using it in future applications, by preference over the old API-driven approach. I’m grateful to Manuel for sharing what he’s learned!

The internet’s hidden creative renaissance (and how to find it)

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

A screenshot of a retro-styled website interface showing "the indie web" in yellow text on a purple rounded banner. The background displays various vintage web elements including a calculator, browser windows, website layouts, and navigation elements typical of early internet design. The URL shown is cameronsworld.net and the overall aesthetic mimics 1990s web design with colorful, eclectic interface elements scattered across the page.

Have you ever wished there were more to the internet than the same handful of apps and sites you toggle between every day? Then you’re in for a treat.

Welcome to the indie web, a vibrant and underrated part of the internet, aesthetically evocative of the late 1990s and early 2000s. Here, the focus is on personal websites, authentic self-expression, and slow, intentional exploration driven by curiosity and interest.

These kinds of sites took a backseat to the mainstream web around the advent of big social media platforms, but recently the indie web has been experiencing a revival, as more netizens look for connection outside the walled gardens created by tech giants. And with renewed interest comes a new generation of website owner-operators, intent on reclaiming their online experience from mainstream social media imperatives of growth and profit.

want to like this article. It draws attention to the indieweb, smolweb, independent modern personal web, or whatever you want to call it. It does so in a way that inspires interest. And by way of example, it features several of my favourite retronauts. Awesome.

But it feels painfully ironic to read this article… on Substack!

Substack goes… let’s say half-way… to representing the opposite of what the indieweb movement is about! Sure, Substack isn’t Facebook or Twitter… but it’s still very much in the same place as, say, Medium, in that it’s a place where you go if you want other people to be in total control of your Web presence.

The very things that the author praises of the indieweb – its individuality and personality, its freedom control by opaque corporate policies, its separation from the “same handful of apps and sites you toggle between every day” – are exactly the kinds of things that Substack fails to provide.

It’s hardly the biggest thing to hate about Substack, mind – that’d probably be their continued platforming of Covid conspriacy theorists and white nationalist hate groups. But it’s still a pretty big irony to hear the indieweb praised there!

Soo… nice article, shame about the platform it’s published on, I guess?

Who Is the Winking Chef?

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

One of my goals was to uncover the origin of the ubiquitous Winking Chef. We’ve all seen him – the chubby mustachioed man wearing a chef’s hat and often making a gesture of approval with his hand. I dug around as much as I could – searching old magazines and websites looking for the origin of the image. Of course generic chef images go way back in print advertising but I was looking for one image in particular, the one I grew up with on my pizza boxes in New Jersey. Who was this guy? Was the image based on a real person? What’s the deal????

There are few people in this world who are more-obsessed with pizza than I, but Scott’s gotta be one of them. Since discovering this blog post of his I now really want to go on one of his pizza-themed walking tours of New York City. But you might have guessed that.

Anyway: Scott – who has a collection of pizza boxes, by the way (in case you needed evidence that he’s even more pizza-fixated than me) – noticed the “winking chef” image, traced its origin, and would love to tell you about it. An enjoyable little read.

Why does SSH send 100 packets per keystroke?

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

Further analysis on a smaller pcap pointed to these mysterious packets arriving ~20ms apart.

This was baffling to me (and to Claude Code). We kicked around several ideas like:

  • SSH flow control messages
  • PTY size polling or other status checks
  • Some quirk of bubbletea or wish

One thing stood out – these exchanges were initiated by my ssh client (stock ssh installed on MacOS) – not by my server.

In 2023, ssh added keystroke timing obfuscation. The idea is that the speed at which you type different letters betrays some information about which letters you’re typing. So ssh sends lots of “chaff” packets along with your keystrokes to make it hard for an attacker to determine when you’re actually entering keys.

That makes a lot of sense for regular ssh sessions, where privacy is critical. But it’s a lot of overhead for an open-to-the-whole-internet game where latency is critical.

Keystroke timing obfuscation: I could’ve told you that! Although I wouldn’t necessarily have leapt to the possibility of mitigating it server-side by patching-out support for (or at least: the telegraphing of support for!) it; that’s pretty clever.

Altogether this is a wonderful piece demonstrating the whole “engineer mindset”. Detecting a problem, identifying it, understanding it, fixing it, all tied-up in an engaging narrative.

And after playing with his earlier work, ssh tiny.christmas – which itself inspired me to learn a little Bubble Tea/Wish (I’ve got Some Ideas™️) – I’m quite excited to see where this new ssh-based project of Royalty’s is headed!

How You Read My Content (The Answers)

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

Reading type pie chart

What this tells me?

Well, quite a lot, actually. It tells me that there’s loads of you fine people reading the content on this site, which is very heart-warming. It also tells me that RSS is by far the main way people consume my content. Which is also fantastic, as I think RSS is very important and should always be a first class citizen when it comes to delivering content to people.

I didn’t get a chance to participate in Kev’s survey because, well, I don’t target “RSS Zero” and I don’t always catch up on new articles – even by authors I follow closely – until up to a few weeks after they’re published1. But needless to say, I’d have been in the majority: I follow Kev via my feed reader2.

But I was really interested by this approach to understanding your readership: like Kev, I don’t run any kind of analytics on my personal sites. But he’s onto something! If you want to learn about people, why not just ask them?

Okay, there’s going to be a bias: maybe readers who subscribe by RSS are simply more-likely to respond to a survey? Or are more-likely to visit new articles quickly, which was definitely a factor in this short-lived survey? It’s hard to be certain whether these or other factors might have thrown-off Kev’s results.

But then… what isn’t biased? Were Kev running, say, Google Analytics (or Fathom, or Strike, or Hector, or whatever)… then I wouldn’t show up in his results because I block those trackers3 – another, different, kind of bias.

We can’t dodge such bias: not using popular analytics platforms, and not by surveying users. But one of these two options is, at least, respectful of your users’ privacy and bandwidth.

I’m tempted to run a similar survey myself. I might wait until after my long-overdue redesign – teased here – launches, though. Although perhaps that’s just a procrastination stemming from my insecurity that I’ll hear, like, an embarrassingly-low number of responses like three or four and internalise it as failing some kind of popularity contest4! Needs more thought.

Footnotes

1 I’m happy with this approach: I enjoy being able to treat my RSS reader as sort-of a “magazine”, using my categorisations of feeds – which are partially expressed on my Blogroll page – as a theme. Like: “I’m going to spend 20 minutes reading… tech blogs… or personal blogs by people I know personally… or indieweb-centric content… or news (without the sports, of course)…” This approach makes consuming content online feel especially deliberate and intentional: very much like being in control of what I read and when.

2 In fact, it’s by doing so – with a little help from Matthias Pfefferle – that I was inspired to put a “thank you” message in my RSS feed, among other “secret” features!

3 In fact, I block all third-party JavaScript (and some first-party JavaScript!) except where explicitly permitted, but even for sites that I do allow to load all such JavaScript I still have to manually enable analytics trackers if I want them, which I don’t. Also… I sandbox almost all cookies, and I treat virtually all persistent cookies as session cookies and I delete virtually all session cookies 15 seconds after I navigate away from a its sandbox domain or close its tab… so I’m moderately well-anonymised even where I do somehow receive a tracking cookie.

4 Perhaps something to consider after things have gotten easier and I’ve caught up with my backlog a bit.

gradient.horse

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

A collection of badly-drawn horses run across a gradient background.

Honestly I just wanted to play around with gradients. But gradients without anything on the horizon lack something, so I added horses. Since I can’t draw horses, now you can draw them. And watch them parade across the screen alongside horses drawn by people you probably wouldn’t like. Or maybe you would, how should I know?!

I love a good (by which I mean stupid) use of a .horse domain name. I’m not sure anything will ever beat endless.horse, but gradient.horse might be a close second.

Draw a horse. Watch it get animated and run wild and free with the horses that other people have drawn. That is all.

Keep the Internet fun and weird, people.

Gay sheep – what the FAQ?!

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

Did you know that about 1 in 12 sheep is gay? And we are not just talking about rams. According to scientists, same-sex behaviour has been documented in over 1500 species. You see, queerness is quite prevalent on planet Earth. But sadly, there are still many people that have a problem with it. The shocking truth is: 62 countries still criminalize same-sex relationships – that’s right, it’s illegal to be gay in one third of the world! And even where it is not illegal, cases of queer hostility are increasing – including in Germany. This is why we are getting the help from a gay flock of rams in a small town in Germany: We are using their wool to create fashion products that support projects for the queer community.

A flock of sheep on a green meadow with a shepherd holding a rainbow flag.

Meet the world’s first gay flock of sheep

Sadly, gay rams are often sent to slaughter because they can’t fulfill a farm’s “breeding role.” We rescue them before that happens, giving them a safe home where they can live and love freely. Each year, their wool is crafted into fashion, with profits donated to the queer charity LSVD+. You can also adopt a gay ram – helping cover food and medicine to keep them happy and healthy for life. Every adoption comes with a digital certificate you can print at home.

Well this is just adorable.

About 1 in 12 rams (and a similar proportion of ewes) show a strong preference for other sheep of their same sex. Which is useless for breeders, who expect their rams to be able to impregnate 40 ewes per fortnight, so such rams tend to be destroyed.

But this farm in Germany has started rescuing them and allowing people to “adopt a gay sheep” to help sponsor their care and upkeep. They also collect a small amount of wool from their queer flock and make products (which almost-immediately sell out).

So yeah: there’s a flock of homosexual sheep living happily together on a farm in Germany, and that’s just awesome.

88×31 Button Creator

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

Welcome to my 88×31 button creator, this is a pretty rough and ready implementation so it could be buggy, please let me know if you find any issues.

This supports gif despite the basic canvas tag limitation courtesy of gif.js – none of this would be possible without that project.

Dan (whose website is freakin’ awesome, by the way) has done an amazing job with this new 88×31 generator. Look at this (trashy, but I don’t care) button I threw together in literally seconds, with it:

88×31 animated button with text 'MAKE A BTN' over a glitchy holographic starfield.

Have a play, and remind yourself that the Web is brilliant.

A small collection of text-only websites

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

I’m not saying the plain-text is the best web experience. But it is an experience. Perfect if you like your browsing fast, simple, and readable. There are no cookie banners, pop-ups, permission prompts, autoplaying videos, or garish colour schemes.

I’m certainly not the first person to do this, so I thought it might be fun to gather a list of websites which you browse in text-only mode.

Terence Eden’s maintaining a list of websites that are presented as, or are wholly or partially available via, plain text. Obviously my own text/plain blog is among them, and is as far as I’m aware the only one to be entirely presented as text/plain.

Anyway, this inspired me to write a post of my own (on text/plain blog, of course!), in which I ask the question: what do we consider plain text? Based on the sites in the list, Markdown is permissible as plain text,  (for the purposes of Terence’s list), but this implies that “plain text” is a spectrum of human-readability.

If Markdown’s fine, then presumably Gemtext would be too? How about BBCode? HTML and RTF are explicitly excluded by Terence’s rules, but I’d argue that HTML 1.0 could be more human-readable than some of the more-sophisticated dialects of BBCode (or any Markdown that contains tables, unless those tables are laid-out in a way that specifically facilitates human-readability)?

As I say in my post:

  <--  More human-readable                                              Less human-readable  -->  
|-----------|-----------|-----------|------------|-----------|-----------|-----------|-----------|
Plain text       Gemtext       Markdown        BBCode         HTML 1.0         Modern HTML     RTF

This provocation is only intended to get you to think about “what does it mean for a markup language to be ‘human readable’?” Where do you draw the line?

D&D 5e is not for everyone

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

In summary, 5e is for you if you

  • already use the system & don’t like learning new things,
  • enjoy medieval fantasy settings, with a 60-70% combat tilt,
  • like vague, unopinionated systems,
  • don’t mind overly corporate media,
  • just kinda like it (which is totally fair)

And if you do fit the bill here, I truly do wish you all the best in your 5e adventures…

But just because one system is for you, doesn’t mean others aren’t! pulls away curtain, exaggerated

As a quick disclaimer, this hobby, like many others, is a matter of taste. I, like everyone else, am biased towards a certain kind of game. Specifically, I absolutely adore games that place roleplay at center stage. Games that deal with the complexities of identity. Games with innovative mechanics. Games that present deep ethical quandaries. Games that make everyone at the table ponder something meaningful. If you like similar games, you’ll probably love my recommendations. If you don’t, then don’t worry! There are so many more games out there that will be for you and not for me, (5e included!), and I absolutely love that about this hobby.

I listed a good few options above, but also, I’d encourage you to take a gander at a few of the following games, most if not all of which I will write full reviews for eventually:

  • Spire: Rise against the oppressive high elves in a revolution destined for ruin, in an attempt to make a difference. Check out the fallout system in this one, it’s genuinely a game changer.

  • Blades in the Dark: Gang warfare: the game. Run a gang in a dark, steampunk, ghost-ridden world, and execute sick heists. Prep is for losers when in-scene you can just flashback to that time you prepared for this exact eventuality.

  • Slugblaster: TEENS ON HOVERBOARDS! DOIN’ SICK TRICKS! GOIN’ THROUGH PORTALS! GETTIN’ THAT SWEET SWEET INTERNET CLOUT! RUNNIN’ FROM INTERDIMENSIONAL POLICE! YEAHHHHHHHHHHHHHHHHH!!!!!!!!

  • Lichcraft: You’re trans and the wait for gender affirming healthcare is 300 years. Welp time to turn to the dark arts and become a lich!

It saddens me a little that D&D (5e or whatever) is so-firmly entrenched as “the” default choice of TTRPG.

It’s fine, I guess (with the caveats above about what it’s best at and, by proxy, what it’s weaker at), and I’ve on many occasions enjoyed D&D both as a PC’s player and as a DM. But that it’s so much the de-facto standard that D&D is in many circles synonymous with roleplaying is… just a bit of a waste, really!

I love that Kai not only shares an explanation of these limitations but that they also go on to share a handful of recommendations of other games to consider, the next time the TTRPG itch gets you! I’d heard of Blades in the Dark (perhaps courtesy of the use of the Forged in the Dark engine in other games; I’m not certain), but the other three are completely alien to me… and they all sound great in different ways.

I wonder if I can persuade some Abnibbers to hook up for a mini-campaign/one-shot of Slugblaster or something at some point? Spire sounds great too, and I like the theme of Lichcraft: there’s some interesting ideas to explore in that universe!