She sent it to my “send me a postcard” PO box (even though she’s got my actual address), which I’m guessing was an indication that
it was being “sent” to me “as if” she were a stranger on the Internet.
Whatever the reason, it was an uplifting piece of mail to receive.
In other things-are-improving news, our insurance company (finally! – after lots of checks and paperwork at their end) accepted liability for paying for the repairs we’ll need and for
our temporary accommodation (including the places we’ve already been living for the last few weeks).
Last night I was chatting to my friend (and fellow Three Rings volunteer) Ollie about our respective
workplaces and their approach to AI-supported software engineering, and it echoed conversations I’ve had with other friends. Some workplaces, it seems, are leaning so-hard into
AI-supported software development that they’re berating developers who seem to be using the tools less than their colleagues!
That’s a problem for a few reasons, principal among them that AI does not
make you significantly faster but does make you learn less.1. I stand by the statement that AI isn’t useless, and I’ve experimented with it for years. But I certainly wouldn’t feel very comfortable
working somewhere that told me I was underperforming if, say, my code contributions were less-likely than the average to be identifiably “written by an AI”.
Even if you’re one of those folks who swears by your AI assistant, you’ve got to admit that they’re not always the best choice.
I ran into something a little like what Ollie described when an AI code reviewer told me off for not describing how my AI agent assisted me with the code change… when no AI had been
involved: I’d written the code myself.2
I spoke to another friend, E, whose employers are going in a similar direction. E joked that at current rates they’d have to start tagging their (human-made!) commits with fake
AI agent logs in order to persuade management that their level of engagement with AI was correct and appropriate.3
Supposing somebody like Ollie or E or anybody else I spoke to did feel the need to “fake” AI agent logs in order to prove that they were using AI “the right way”… that sounds
like an excuse for some automation!
I got to thinking: how hard could it be to add a git hook that added an AI agent’s “logging” to each commit, as if the work had been done by a
robot?4
Turns out: pretty easy…
To try out my idea, I made two changes to a branch. When I committed, imaginary AI agent ‘frantic’ took credit, writing its own change log. Also: asciinema + svg-term remains awesome.
Here’s how it works (with source code!). After you make a commit, the post-commit hook creates a file in
.agent-logs/, named for your current branch. Each commit results in a line being appended to that file to say something like [agent] first line of your commit
message, where agent is the name of the AI agent you’re pretending that you used (you can even configure it with an array of agent names and it’ll pick one at
random each time: my sample code uses the names agent, stardust, and frantic).
There’s one quirk in my code. Git hooks only get the commit message (the first line of which I use as the imaginary agent’s description of what it did) after the commit has
taken place. Were a robot really used to write the code, it’d have updated the file already by this point. So my hook has to do an --amend commit, to
retroactively fix what was already committed. And to do that without triggering itself and getting into an infinite loop, it needs to use a temporary environment variable.
Ignoring that, though, there’s nothing particularly special about this code. It’s certainly more-lightweight, faster-running, and more-accurate than a typical coding LLM.
Sure, my hook doesn’t attempt to write any of the code for you; it just makes it look like an AI did. But in this instance: that’s a feature, not a
bug!
Footnotes
1 That research comes from Anthropic. Y’know, the company who makes Claude, one of the
most-popular AIs used by programmers.
3 Using “proportion of PRs that used AI” as a metric for success seems to me to be just
slightly worse than using “number of lines of code produced”. And, as this blog post demonstrates, the
former can be “gamed” just as effectively as the latter (infamously) could.
4 Obviously – and I can’t believe I have to say this – lying to your employer isn’t a
sensible long-term strategy, and instead educating them on what AI is (if anything) and isn’t good for in your workflow is a better solution in the end. If you read this blog post and
actually think for a moment hey, I should use this technique, then perhaps there’s a bigger problem you ought to be addressing!
Samsung have been showing off pre-release versions of their new Galaxy S26 range. It’s all pretty same-old predictable
changes (and I’m still not really looking for anything to replace my now-five-year-old mobile anyway!), but one feature in particular – one that they’re not even mentioning in their
marketing copy – seemed interesting and innovative.
You know those polarising filters you can use to try to stop people shoulder-surfing? Samsung have come up with a software-controlled one.
Demos show the feature being used to black-out the screen at a 15°+ angle when entering a PIN or password, but also show how it can configured on an app-by-app basis to e.g. black out
notifications so that only the person right in front of the screen can see them.
I assume that this black magic is facilitated by an additional layer between the screen and the glass, performing per-pixel selective polarisation in the same way as a monochrome LCD
display might. But the fact that each pixel can now show two images – one to a user directly ahead, superimposed with another (monochrome) one to users with an offset
viewing angle, is what interests me: my long-cultivated “hacker mentality” wants to ask “what I can make that do?”
Does the API of this (of this or of any similar or future screens?) provide enough control to manipulate the new layer? And is its resolution identical to that of the underlying screen?
Could “spoilers”, instead of being folded-away behind a <details>/<summary> or ROT13-encoded, say “tilt to reveal” and provide
a physicality to the mechanism of exposure?
Could diagrams embed their own metadata annotations: look at a blueprint from the side to see descriptions, or tilt your phone to see the alt-text on an image?
Can the polarisation layer be expanded to provide a more-sophisticated privacy overlay, such as a fake notification in place of a real one, to act as a honeypot?
Is there sufficient control over the angle of differentiation that a future screen could use eye tracking to produce a virtual lenticular barrier, facilitating a novel kind of
autostereoscopic 3D display that works – like a hologram – from any viewing angle?
I doubt I’m buying one of these devices. But I’m very curious about all of these questions!
My regular home office of the last six years sits stripped-down, with no flooring, skirting boards, or power (with the exception of the specialised circuit powering an industrial
dehumidifier).
And man, a home insurance claim seems to be… slow. For instance, we originally couldn’t even get anybody out to visit us until F-day plus 10 (later improved to F-day plus
7). The insurance company can’t promise that they’ll confirm that they’ll “accept liability” (agree to start paying for anything) until possibly as late as F-day plus 17. Nobody will
check for structural damage until F-day plus 191.
Right now, though, we’re spending two weeks in this holiday let about half an hour’s drive from our house. It’s pretty nice, except that we have to commute over the ever-congested
single-lane Burford Bridge to get the kids to and from school every day2.
Some days it feels like being stuck in a nowhere-place… but simultaneously still having to make the regular everyday stuff keep ticking over. Visiting the house- currently stripped of
anything damp and full of drying equipment – feels like stepping onto another planet… or like one of those dreams where you’re somewhere familiar except it’s wrong somehow.
But spending time away from it, “as if” on holiday except-not, is weird too: like we’re accepting the ambiguity; leaning-in to limbo. Especially while we’re waiting for the insurance
company to do their initial things, it feels like life is both on hold, and not-allowed to be on hold.
The dog gets it. I had to take her to the house for a while on Monday3 and she spent the whole time leaning against my feet for reassurance.
And I worry that by the time they’re committed to paying for us to stay somewhere else for at least half a year, they lose any incentive they might have to contract for speed. There’s
no hurry any more. We’re expected to just press pause on our home, but carry on with our lives regardless, pretending that everything’s normal.
So yeah, it’s a weird time.
Footnotes
1 I’m totally committed to this way of counting the progress, which I started on F-day plus 3. I get the feeling like it might be a worthwhile way of
keeping track of how long all of this takes.
2 Normally, the younger and older child are able to get to school on foot or via a bus
that stops virtually outside our house, each day, so an hour-plus round-trip to their schools and back up to twice a day is a bit of a drag! We’re managing to make it work with a
little creativity, but I wouldn’t want to make it a long-term plan!
3 And do some work from there, amidst the jet engine-like noise of the dehumidifiers!
I recently read Taskmaster:
200 220 Extraordinary Tasks for Ordinary People by Alex Horne, and was… underwhelmed.
The meat of the book is a collection of Taskmaster-style tasks either for individuals, or groups, or teams. If you played human
jousting, or blindfold doughnut fishing, or leaky-guttering-water-transporter, or any of the other games Ruth and I hosted at Ruth &
JTA‘s Stag/Hen Party way back in the day… you’re thinking in the right kinds of ballpark. The activities presented are similar to
those shown on the Taskmaster TV show, but with fewer prop requirements.
Perhaps one in ten to one in five of the ideas are genuinely good, but if you want to run your own Taskmaster-like game with your friends… you’re probably best to just
adapt some of the games from the show, or sit down for an hour or two with a notepad, a pen, some funny friends, and a supply of whatever chemical stimulates your imagination!
One part of the book I did enjoy, though, was the accounts of parts of the TV show that didn’t make it into the final edit. I really love the TV show, and it was great to get the inside
scoop on what tasks worked and didn’t, what got cut and why, and so on. This bit of the book, hidden at the end and using a much smaller typeface as if it’s ashamed to be
there, was excellent and highly enjoyable.
Perhaps a future edition could have much more of that – there’ve been many more seasons since the book came out! – and drop some of the less-interesting tasks!
I saw a heron this morning, and it reminded me of a police officer.
If you plot a pair of axes for birds ‘looking really dorky, especially when flying’ and ‘actually being really cool’, the grey heron would sit at the sweet spot.
Right now, while my house is… not-so-inhabitable… I have a long drive to drop the kids off at school, and this morning it took us alongside the
many flooded fields between our temporary accommodation and the various kid drop-offs.
Stopped at traffic lights, I watched a heron land in what would be best-described as a large puddle, rather than in the lake on the other side of the road. The lake, it turns out… was
“guarded” by one of those fake heron things.
I didn’t get a photo of the fake heron, but I can tell you that it was one of those tacky plastic ones, not a fancy-looking metal one like this.1 Photograph copyright Christine Matthews, used under a Creative Commons license.
You’ve seen them, probably. People put them up to discourage territorial birds from visiting and eating all their fish.2 If you haven’t seen them, you might have
at least spotted the fake owls, whose purpose is slightly different because they scare off other birds.
Anyway: I found myself thinking… do birds actually fall for this? Like scarecrows, it feels like they shouldn’t (and indeed, scarecrows don’t always work,
and birds can quickly become accustomed to them). But clearly they work at least a little…?
If you don’t want birds, get a pretend bird. The same trick works for girlfriends.
Anyway, I found myself reminded of a geocaching expedition I went on outside Cambridge a couple of years ago. At
around 6am I was creeping around outside a shopping centre on a Saturday morning, looking for a tiny magnetic geocache hidden behind a sign. I’d anticipated not having to use much
“stealth” so early in the day… but nonetheless I kept getting the feeling that I was being watched.
It took me a few minutes until I worked out why: the local Home Bargains had put up a life-size standee of a police officer in just the right position that I kept catching him in the
corner of my eye and second-guessing how much my digging-through-the-bushes looked incredibly suspicious!
Rationally, I knew that this fella wasn’t real3,
but that didn’t stop him from making my brain go “wait, is that copper watching me hide behind a sign in the empty car park of a budget variety store, like he thinks I’m the world’s
loneliest drug dealer?”
I did a double-take the first time I spotted the officer, but soon realised he was fake. But the feeling of being watched persisted! There’s clearly something deeper in human
psychology, more-instinctive, that – as social animals – gives us that feeling of being watched and influences our behaviour.
There’s a wonderful and much-cited piece of research from 2010 that describes how cooperative behaviour
like proper use of an honesty box increases if you put a picture of some eyes above it: the mechanism’s not fully understood, but it’s speculated that it’s because it induces
the feeling of being watched.
I found this picture of a fake angler (this is a mannequin with a fishing pole!), which I guess is also an anti-heron measure.4
Photograph copyright Andy Beecroft, used under a Creative
Commons license.
I reckon it’s similar with birds. They’re not stupid (some of them, like corvids, are famously smart… and probably many predator birds exhibit significant intelligence too), but if
there’s something in your peripheral vision that puts you at unease… then of course you’re not going to be comfortable! And if there’s another option nearby5
that’ll work, that’s an easy win for a hungry bird.
You don’t need to actually believe that a scarecrow, a plastic bird, a poster of some eyes, or a picture of a bobby is real in order for it to have a
psychological impact. That’s why – I believe – a fake heron works. And that’s why, today, a heron reminded me of a police officer.
Footnotes
1 I guess actual herons can’t tell the difference?
2 Presumably the same technique doesn’t work with sociable birds, who would probably turn
up to try to befriend or woo the models.
3 I don’t know, but I do wonder, whether the picture is actually of a police
officer or of a model. If I were a police officer and I knew that my likeness was being used at supermarkets and the like, I’d be first to volunteer to any call-outs to anywhere
nearby them, so any suspect who ran from me would keep spotting me, following them, at every corner. You get few opportunities for pranks as a copper, I reckon, but this one would be
a blast.
4 I wonder if a fake angler is more- or less-effective than a fake heron. Somewhere, an
animal psychology PhD student is working out the experimental conditions to answer this question, I hope.
5 Remember: a bird can have a birds-eye view of feeding spots! If one option’s gonna make
them feel like they’re being watched by a predator or a competitor, and another nearby option looks almost-as-good, they’re gonna take the alternative!
I’m not certain, but I think that I won my copy of Hello World: How to Be Human in the Age of the Machine at an Oxford Geek Nights event, after I was
first and fastest to correctly identify a photograph of Stanislav Petrov shown by the speaker.
Despite being written a few years before the popularisation of GenAI, the book’s remarkably prescient on the kinds of big data and opaque decision-making issues that are now hitting the
popular press. I suppose one might argue that these issues were always significant. (And by that point, one might observe that GenAI isn’t living up to its promises…)
Fry spins an engaging and well-articulated series of themed topics. If you didn’t already have a healthy concern about public money spending and policy planning being powered by the
output of proprietary algorithms, you’ll certainly finish the book that way.
One of my favourite of Fry’s (many) excellent observations is buried in a footnote in the conclusion, where she describes what she called the “magic test”:
There’s a trick you can use to spot the junk algorithms. I like to call it the Magic Test. Whenever you see a story about an algorithm, see if you can swap out any of the buzzwords,
like ‘machine learning’, ‘artificial intelligence’ and ‘neural network’, and swap in the word ‘magic’. Does everything still make grammatical sense? Is any of the meaning lost? If
not, I’d be worried that it’s all nonsense. Because I’m afraid – long into the foreseeable future – we’re not going to ‘solve world hunger with magic’ or ‘use magic to write the
perfect screenplay’ any more than we are with AI.
That’s a fantastic approach to spotting bullshit technical claims, and I’m totally going to be using it.
Anyway: this was a wonderful read and I only regret that it took me a few years to get around to it! But fortunately, it’s as relevant today as it was the day it was released.
The insurance loss adjusters came around this morning, accompanied by damage assessors and electricians and whatnot.
The process continues to feel painfully slow. We’re still one to two weeks from confirmation that the insurance company will accept liability and be ready to start paying for, y’know,
the immediate concerns like where we’re going to live.
“How long should we plan on renting another house to live in?” I asked, warily.
“Six to twelve months?” guessed the loss adjusters.
As I’ll demonstrate, it’s surprisingly easy to spin up your own VPN provider on a virtual machine hosted by your choice of the cloud providers. You pay for the hours you need
it2,
and then throw it away afterwards.
If you’d prefer to use GCP, AWS Azure, or whomever else you like: all you need is a Debian 13 VM with a public IP address (the cheapest one available is usually plenty!)
and this bash script.
If you prefer the command-line, Linode’s got an API. But we’re going for ‘easy’ today, so it’ll all be clicking buttons and things.
First, spin up a VM and run my script3.
If you’re using Linode, you can do this by going to my StackScript and clicking ‘Deploy New Linode’.
You might see more configuration options than this, but you can ignore them.
Choose any region you like (I’m putting this one in Paris!), select the cheapest “Shared CPU” option – Nanode 1GB – and enter a (strong!) root password, then click Create Linode.
It’ll take a few seconds to come up. Watch until it’s running.
Don’t like SCP? You can SSH in and ‘cat’ the configuration or whatever else you like.
My script automatically generates configuration for your local system. Once it’s up and running you can use the machine’s IP address to download wireguard.conf locally. For
example, if your machine has the IP address 172.239.9.151, you might type scp -o StrictHostKeyChecking=no root@172.239.9.151:wireguard.conf ./ – note that I
disable StrictHostKeyChecking so that my computer doesn’t cache the server’s SSH key (which feels a bit pointless for a “throwaway” VM that I’ll never connect to a second time!).
If you’re on Windows and don’t have SSH/SCP, install one. PuTTY remains a solid choice.
File doesn’t exist? Give it a minute and try again; maybe my script didn’t finish running yet! Still nothing? SSH into your new VM and inspect
stackscript.log for a complete log of all the output from my script to see what went wrong.
Not got WireGuard installed on your computer yet? Better fix that.
Open up WireGuard on your computer, click the “Import tunnel(s) from file” button, and give it the file you just downloaded.
You can optionally rename the new connection. Or just click “Activate” to connect to your VPN!
If you see the ‘data received’ and ‘data sent’ values changing, everything’s probably working properly!
You can test your Internet connection is being correctly routed by your VPN by going to e.g. icanhazip.com or ipleak.net: you should see the IP address of your new virtual machine and/or geolocation data that indicates that you’re in your selected region.
When you’re done with your VPN, just delete the virtual machine. Many providers use per-minute or even per-second fractional billing, so you can easily end up spending only a handful of
cents in order to use a VPN for a reasonable browsing session.
Again, you can script this from your command-line if you’re the kind of person who wants a dozen different locations/IPs in a single day. (I’m not going to ask why.)
When you’re done, just disconnect and – if you’re not going to use it again immediately – delete the virtual machine so you don’t have to pay for it for a minute longer than you
intend4.
I stopped actively paying for VPN subscriptions about a decade ago and, when I “need” the benefits of a VPN, I’ve just done things like what I’ve described above. Compared to a
commercial VPN subscription it’s cheap, (potentially even-more) private, doesn’t readily get “detected” as a VPN by the rare folks who try to detect such things, and I can enjoy my
choice of either reusable or throwaway IP addresses from wherever I like around the globe.
And if the government starts to try to age-gate commercial VPNs… well then that’s just one more thing going for my approach, isn’t it?
Footnotes
1 If you’re a heavy, “always-on” VPN user, you might still be best-served by one of the
big commercial providers, but if you’re “only” using a VPN for 18 hours a day or less then running your own on-demand is probably cheaper, and gives you some fascinating
benefits.
2 Many providers have coupons equivalent to hundreds of hours of free provision, so as
long as you’re willing to shuffle between cloud providers you can probably have a great and safe VPN completely for free; just sayin’.
3 Obviously, you shouldn’t just run code that strangers give you on the Internet unless
you understand it. I’ve tried to make my code self-explanatory and full of comments so you can understand what it does – or at least understand that it’s harmless! – but if you don’t
know and trust me personally, you should probably use this as an excuse to learn what you’re doing. In fact, you should do that anyway. Learning is fun.
4 Although even if you forget and it runs for an entire month before your billing cycle
comes up, you’re out, what… $5 USD? Plenty of commercial VPN providers would have charged you more than that!
It feels inconceivable to me that we’re only at F-Day plus three; that is, three days since a flash flood rushed through the ground floor of our house and forced us to
evacuate. We’ve been able to visit since and start assessing the damage, but for now I figured that what you’d want would be the kinds of horrible pictures that make you say “wow; I’m
glad that didn’t happen to me”.
These pictures are all from F-Day itself (which happened to be Friday the 13th; delightful, eh?):
A particularly horrifying moment was when the seals on the patio doors gave way and the dining room began to flood, and we had to pivot to laying sandbags to protect the kitchen from
the dining room rather than to protect the house as a whole. (Eventually, every ground floor room would be affected.)
The water came in so quickly! An hour earlier, a deliveryperson had to wade carefully through a puddle to reach our front door. But by this point, the entire ground floor was under a
foot of dirty water.
It’s heartbreaking to see a house that you love and cherish as it starts to look like a scene from Titanic.
Soon enough we had to pivot from trying to hold back the waters to trying to save what we could. By the time the water level reached the air bricks and vents, we were having to make
split-second choices about what we had time to save.
Not all of the books made it, but most of them did.
The fire brigade wisely had us switch off our electricity supply before the first row of sockets went underwater.
The dog was incredibly brave; retreating slowly up the stairs (while barking at the rising water!). But eventually she, too, required rescue.
In one of the few moment of levity, Ruth got to ‘play firefighter’ by carrying the poor pupper out of the building. By this point, the water depth was taller than the dog is.
We’ve had a few nights in Premier Inns, but it’s a new week and it’s time to hassle the insurance company to come and have a look around. And then, maybe, we can start working out where
we’ll live so the repair work can start.
This morning, from my Premier Inn window, the skies are clear. I could almost forget that, just 4 miles away, my house is full of water.
Today may well be a day of waders and damage assessment, conversations with insurance companies and of working out where we’ll be living for the near future.
But strangely, what’s thrown me first this morning was that I couldn’t make this post submit.
Turns out my crosspost-to-mastodon checkbox was checked. Because my Mastodon server… runs on my homelab. Which is currently unplugged and in one of the highest rooms of a house with no
electricity or Internet access. (Or, probably, running water… although that matters less to a homelab.)
I think I moved it before it got wet, but yesterday is such a blur that I just don’t know. I remember we spent some time fighting back the water with sandbags and barricades. I remember
the moments each room began to fail, one by one, and we started moving whatever we could carry to higher floors (max props to folks from Eynsham Fire Bridade for helping with the heavy
stuff). But if you ask me what order we rescued things in, I just don’t know.
I guess we’ll find out when the waters recede, and it’s safe to go check.
It’s February, which means that (here in the UK) it’s LGBT+ History Month.1
And it feels like this year, it’s more important than ever to remember our country’s queer history.
By the time Western European countries traditionally seen as ‘socially conservative’ like Ireland and Switzerland are outranking the UK in LGBT+ rights rankings… it’s a clue that
something’s gone wrong, right?
This stuff affects everybody. When you build a community that is a safe space for queer people, and trans
people,6 everybody benefits7. So even if you’re
somehow not compelled by the argument that we should treat everybody fairly and with compassion, you should at least accept that it helps you, too,
when we do.
In many ways, queer rights in the UK have been a success story in recent decades. Within my lifetime, we’ve seen the harmonisation of the age of consent (2001), civil partnerships
(2004), the Gender Recognition Act (2004), the Equality Act (2010), same-sex marriage (2013; I was genuinely surprised this bill passed!) and the mass-pardoning of people previously
convicted under discriminatory sex act laws (2017). These are enormous and important steps and it’s little wonder that the UK topped ILGA Europe’s scoreboard for a while there.
But as recent developments have shown: we can’t rest on our laurels. There’s more to do. History shows us what’s possible; it’s up to us to decide whether we keep moving forward or let
it unravel.
So this LGBT+ History Month, don’t just remember the past: pay attention to the present, and push back where it’s slipping.
3 Georgia’s backslide is superficially similar to Hungary’s except that one can’t help but
feel the influence of partial occupier Russia – a frequent bottom-scorer in ILGA’s list – in that.
4 By the way: I just looked back at my own blog posts tagged
‘sexuality’, and man, that shit is on fire! Some fun things there if you’re new to my blog and just catching-up, if I may toot my own horn a little! (Is “toots own horn” a
protected identity? ‘Cos I do it a lot.)
He observes that the design of feed readers – which still lean on the design of the earliest feed readers, which adopted the design of email software to minimise the learning
curve – makes us feel obligated to stay on top of all our incoming content with its “unread counts”.
Phantom obligation
Email’s unread count means something specific: these are messages from real people who wrote to you and are, in some cases, actively waiting for your response. The number isn’t
neutral information. It’s a measure of social debt.
But when we applied that same visual language to RSS (the unread counts, the bold text for new items, the sense of a backlog accumulating) we imported the anxiety without the cause.
…
RSS isn’t people writing to you. It’s people writing, period. You opted to be notified of their existence. The interface implied debt where none existed. The
obligation became phantom.
I use FreshRSS as my feed reader, and I love it. But here’s the thing: I use the same application
for two different kinds of feeds. I call them slow content and fast content.2
It’s an idealised interpretation of how I subscribe to different kinds of incoming messages, but it works for me. The lesson is that slowing down your consumption is not
an antifeature, it’s a deliberate choice about how you prioritise your life. For me: humans come first – what about you?
Slow content
Blogs, news, podcasts, webcomics, vlogs, etc. I want to know that there is unread content, but I don’t need to know howmuch.
In some cases, I configure my reader to throw away stuff that’s gotten old and stale; in other cases, I want it to retain it indefinitely so that I can dip in when I want to.
There are some categories in which I’ll achieve “inbox zero” most days3…
but many more categories where the purpose of my feed reader is to gather and retain a library of things I’m likely to be interested in, so that I can enjoy them at my leisure.
Some of the things I subscribe to, though, I do want to know about. Not necessarily immediately, but “same day” for sure! This includes things like when it’s a friend’s
birthday (via the Abnib Birthdays feed) or when there’s an important update to some software I selfhost.
This is… things I want to know about promptly, but that I don’t want to be interrupted for! I appreciate that this kind of subscription isn’t an ideal use for a feed reader… but I use
my feed reader with an appropriate frequency that it’s the best way for me to put these notifications in front of my eyeballs.
I agree with Terry that unread counts and notification badges are generally a UX antipattern in feed readers… but I’d like to keep them for some purposes.
So that’s exactly what I do.
How I use FreshRSS (to differentiate slow and fast content)
FreshRSS already provides categories. But what I do is simply… not show unread counts except for designated feeds and categories. To do that, I use the CustomCSS extension for FreshRSS (which nowadays comes as-standard!), giving it the following code
(note that I want to retain unread count badges only for feed #1 and categories #6 and #8 and their feeds):
.aside.aside_feed{
/* Hide all 'unread counts' */.category,.feed{
.title:not([data-unread="0"])::after,.item-title:not([data-unread="0"])::after{
display:none;}
}
/* Re-show unread counts only within: * - certain numbered feeds (#f_*) and * - categories (#c_*) */#f_1,#c_6,#c_8{
&,.feed{
.title:not([data-unread="0"])::after,.item-title:not([data-unread="0"])::after{
display:block;}
}
}
That’s how I, personally, make my feed reader feel less like an inbox and more like a… I don’t know… a little like a library, a little like a newsstand, a little like a calendar… and a
lot like a tool that serves me, instead of another oppressive “unread” count.
I just wish I could persuade my mobile reader Capyreader to follow suit.
Maybe it’ll help you too.
Footnotes
1 Or whenever you like. It’s ‘slow content’. I’m not the boss of you.
2 A third category, immediate content, is stuff where I might need to
take action as soon as I see it, usually because there’s another human involved – things like this come to me by email, Slack, WhatsApp, or similar. It doesn’t belong in a feed
reader.
3 It’s still slow content even if I inbox-zero it most days…
because I don’t inbox-zero it every day! I don’t feel bad ignoring or skipping it if I’m, for example, not feeling the politics news right now (and can you blame me?). This
is fundamentally different than ignoring an incoming phone call or a knock at the door (although you’re absolutely within your rights to do that too, if you don’t have the spoons for
it).
4 I’m yet to see a mailing list that wouldn’t be better as either a blog (for few-to-many
communication) or a forum (for many-to-many communication), frankly. But some people are very wedded to their email accounts as “the way” to communicate!
If you’re not already helping collect benches, you should give it a look. You can install the site to your mobile device as a progressive web app and start snapping benches.
This article is probably “safe for work” (depending on your workplace).
It makes reference to a popular pornographic website and the features of that website. It contains screenshots, but the porny bits are blurred. The links are all safe.
Verify your age
After Pornhub introduced age check to comply with the Online Safety Act1,
I figured that I’d make an account to see how arduous and privacy-destroying the process of verifying that I was old enough to see naked people2. I thought it would make an
amusing blog post.
I felt confident that my stupid name, if nothing else, would guarantee me a hard time with this kind of automated system.
Unfortunately3,
it turned out to be super-easy for me to pass the age verification.
I just hit “verify by email” with the third-party age verification tool they use, entered an email address that’s associated with a few online accounts (not even the one I gave
Pornhub!), and… everything just worked.
Sooo… this isn’t a blog post about how insurmountable age verification is. This is a blog post about something else I discovered as a result of doing this research:
Pornhub has “achievements”!
Achievement unlocked
I was slightly surprised to see how many “social networking”-like features Pornhub accounts have. You can upload a profile photo… you have a “wall” that you can post to, and you can
post to other people’s. Your profile (unless you tell it not to) shares which channels you’ve subscribed to, which videos you’ve favourited, and so on.
Who on Earth wants those features? I mean: really? 😅 I consider myself pretty sex-positive, but I’m not sure I’d want there to be a web page with my name, photo, and a
list of all my favourite dirty vids!4
Anyway… the other thing a Pornhub profile seems to provide is… achievements:
Hurrah, I guess? The Virgin was easy, at least (snerk), unlike most of the things on my Steam profile.
I’ve only got the one achievement right now, of course, and it’s the one that you get “for free”. So it didn’t feel like I’d earned it.
I suppose I was an actual virgin, once. And I had to prove that I’m a real human to get an account. So… maybe I earned it?
Your profile page encourages you to ‘earn and show off more achievements’. Because, yes, your ‘achievements’ are on your public profile too!
But just stop and think about what this means for a moment. At some point, in some conference room at Pornhub HQ, there was a meeting in which somebody said something like:
“You know what we need? Public profile pages for all Pornhub accounts. And they should show, like, ‘achievements’ like you get for videogames. Except the achievements are for
things like how much porn you’ve watched and how often. You can show it off to your friends!”
If it weren’t for the time-based achievements like ’10 year-old account’, I’ll bet there’d be people competing to speedrun Pornhub.
Complete list of Pornhub Achievements
I’ve reverse-engineered the complete6
collection of Pornhub Achievements for you. Y’know, in case you’re trying to finish your collection:
The Virgin
Congrats! You have accessed your account for the first time! Enjoy the ride on Many Faps Road.
The Freshman
You have accessed your account for the 10th time! I take it you’ve enjoyed the 9 last times?
The Sophomore
You have accessed your account for the 100th time! Maximus Fappitus, you’re a true Pornhub warrior!
The Junior
You have accessed your account for the 500th time! If only you could get air miles for this.
The Senior
You have accessed your account for the 1000th time! If only you could get air miles for this.
The Porn Buff
You’ve watched 10 videos – This is just the beginning, trust me.
The Two Thumbs
You’ve watched 500 videos – Lotion or no lotion, that is the question.
The Cinephile
You’ve watched 5,000 videos – Be careful, carpal tunnel is a thing.
The Connoisseur
You’ve watched 50,000 videos – you are a veritable porn expert now.
1 Year Old Account
Our very first anniversary, I wish us many more!
2 Year Old Account
Two years of pleasure!
3 Year Old Account
Three years… Ah! The memories!
4 Year Old Account
Most relationships don’t even last this long #funfact
5 Year Old Account
That’s half a decade of watching porn.. woah… that’s impressive.
6 Year Old Account
I guess we were a match made in heaven. Who would’ve known that 6 years later, you would still be fapping on me.
7 Year Old Account
No 7 year itch here! Thanks for 7 fappy years
8 Year Old Account
The Outlook is good: you’ve had 8 magical years on Pornhub!
9 Year Old Account
In 9 more years, your account will be old enough to view itself.
10 Year Old Account
You were really ahead of the wave – here’s to a decade on Pornhub!
I have no idea who this feature is “for”. I’d feel the same way if YouTube had achievements, too7, but the fact
that you can, and by default do, showcase your achievements on a porn site is what really blows my mind.
But maybe they ought to double-down and add more achievements. If they’re going to have them, they might as well make the most of them! How about achievements for watching
a particular video a certain number of times? Or for watching videos in each of many different hour segments of the day? Or for logging in to your account and out again
without consuming any pornography (hey, that’s one that I would have earned!)? If they’re going to have this bizarre feature, they might as well double-down on it!
I also have no idea who this blog post is “for”. If it turned out to be for you (maybe you wanted to know how to unlock all the achievements… or maybe you just
found this as amusing as I did), leave me a comment!
Footnotes
1 Don’t get me started with everything that’s wrong with the so-called Online Safety Act.
Just… don’t. The tl;dr would be that it’s about 60% good ideas, 20% good implementation.
2 Obviously if I were actually trying to use Pornhub I’d just use a VPN with an
endpoint outside of the UK. Y’know, like a sensible person.
3 I mean: it’s probably pretty fortunate that – based on my experience at least –
it seems to be easy for adults to verify that they’re adults in order to access services that are restricted to adults as a result of the OSA. But it’s unfortunate in that I’d hoped
to make a spicy blog post about all the hoops I had to jump through and ultimately it turned out that there was only one hoop and it was pretty easy.
4 Of course, the Indieweb fan within me also says that if I did want
such a page to exist, I’d want it to be on my own domain. Should there be an Indieweb post kind for “fap” for people who want
to publicly track their masturbatory activities as an exercise in the quantified self?
Or should there be a “sex” kind that works a bit like “invitation” in that you can optionally tag other people who were involved? Or is
sex a kind of “exercise”? Could it be considered “game play”? What about when it’s a “performance”? Of course, the irony is that anybody who puts a significant amount of effort into standardising the way that a person
might publicly catalogue their sex life… is probably rendering themselves less-likely to have one.
I think I got off-topic in this footnote.
5 To be fair, I’ve worked places where committee groupthink has made worse
decisions. Want a topical example? My former employer The Bodleian Libraries decided to call a podcast series “BodCast” without first
performing a search… which would have revealed that Playboy were already using that name for a series of titillating vlogs. Curiously, it was Playboy who caved and renamed their
service first. Presumably the strippers didn’t want to be associated with librarians?
6 It’s possible there are achievements I’ve missed – their spriteset file looks like it
contains others! – that are only available to content creators on the platform. But if that’s the case, it further reinforces that these achievements are for the purpose of
consumers who want to show off how many videos they’ve watched, or whatever! Weird, right?
7 “Congratulations: you watched your 500th YouTube ‘short’ – look how much of your life
you’ve wasted!”