One of the many great things about the Fediverse (Mastodon, PixelFed, Lemmy, etc) is that your account is portable. Let's say you're bob@social.boring and, one day, you decide to move your account to foxyfun@furryextreme.yif. Well, with a few clicks of a button, all of your old followers are now following your brand new account. You're still following all your old friends. The accounts you wanted to block and mute are still silenced. Perfect! Except... What happens to the people who blocked …
Continue reading →
There's a link, right here ➡️⬅️ but, if you're on a touchscreen, you can't tap on it. Using a mouse? Nope, that won't work either. The only way to navigate to it is via keyboard navigation. Hit your Tab ⭾ button! There's a little bit of me wants to build an entire website which can only be navigated by keyboard. What would the world look like if Engelbart never invented the mouse? Or if Johnson never published his work on touchscreens? Anyway, there are two ways to do this. The first is to …
Continue reading →
Much hullabaloo out of America. Apparently elite universities can no long engage in "Affirmative Action". How can they now admit a balanced and fair selection of the population? My suggestion is, as always, sortition. Let me explain. Most top flight universities around the world have the same problem. They have space for 100 students on a specific course. 15,000 apply. How do they select the best-of-the-best-of-the-best? My answer is - they don't. They should ignore extra-curricular…
Continue reading →
I'm going to be slightly contrarian and say that I like Discord. It's great to be able to get real-time help on a problem. And it is fun to see, again in real-time, what other people are working on and struggling with. In truth, Discord is no harder to sign up to than Slack, Matrix, Gitter, IRC, or whatever. And of course Open Source projects will follow the maxim of "go where your audience are". There's no point posting everything to MySpace when everyone's already on Facebook. Do I care…
Continue reading →
I don't have time to keep up with all the daft Open Source projects I release. I wish my skill and my energy was as wide as my ambition. Several years ago, I came across Felix Geisendörfer's Pull Request Hack. The premise is simple - if people are making decent Pull Requests to your project then you should give them commit access. It sounds mad, I know. But it has worked really well in my case. I launched Super Tiny Icons six years ago. It was surprisingly popular and lots of people seemed …
Continue reading →
The Who are LOUD. Even from the nose-bleed seats at the unfashionable end of the O2 arena, my ears were ringing and my throat was raw from screaming. The "Hits Back" tour pairs The Who with... The Heart of England Orchestra. Now, obviously, The Who are your classic 4-piece rock 'n'roll group. Do they need a full backing orchestra on their songs? I don't know about "need" - but it works beautifully. A smashing start with a collection of songs from Tommy proves the power behind a dozen violins …
Continue reading →
I'm sure I remembered there once being a clock app for Linux which was deliberately vague. It would declare the time as "Nearly tea-time" or "A little after elevenses" or "Quite late" or "Gosh, that's early". But I can find no evidence that it ever existed and am beginning to wonder if I dreamt it. So I built it. First thing's first - there are a lot of existing fuzzy clocks. But they mostly say things like "afternoon" or "nearly 3 o'clock". There's even a Hobbit Time for Watchy. However, I …
Continue reading →
I blog. A lot. Too much really. One of the things I like to do is see what I was rambling on about this time last year. And the year before that. And so on. So, here's my On This Day page and here's how I built it. WARNING Extremely quick and dirty code ahead! This allows you to add a shortcode like [ edent_on_this_day ] to a page and have it auto generate a list of posts you published on this day in previous years. You may need to exclude that page from your cache. Add these functions to…
Continue reading →
Cartographers occasionally sneak deliberate mistakes into their maps. Known as trap streets they are a simple "copyright trap". If someone copies their map without permission, the fake street shows evidence of the source of plagiarism. Google do this sometimes. They once proclaimed that Argleton was a real place - despite its non-existence. While I was looking for something to do in London recently, I came across this curious entry. Why does Google think there is an "Ancient Metal Vault" in …
Continue reading →
A group of authors are suing various vendors of Large Language Model AIs. The authors claim that the AIs are trained on material which infringes their copyright. Is that likely? Well, let's take a quick look at the evidence presented. First up, Meta's LLaMA Paper. It describes how the LLM was trained: We include two book corpora in our training dataset: the Gutenberg Project, which contains books that are in the public domain, and the Books3 section of ThePile (Gao et al., 2020) OK,…
Continue reading →
I am enjoying playing with the eInk Watchy. It is a cute package and is everything I want in a Smart-Watch; geeky, long battery life, and not obnoxious. But - fuck me! - the documentation is atrocious! Well, that's a lie. There is no documentation. It has the "Chat to us on Discord" anti-pattern that infects so many otherwise great projects. So I'm left to figure out how to make the Watchy's haptics work. The example watchfaces have a file called settings.h which contains .vibrateOClock =…
Continue reading →
Behold! Thanks to the power of the Watchy development platform, I now have all my 2FA codes available at the flick of my wrist! HOWTO This uses Luca Dentella's TOTP-Arduino library. You will need a pre-shared secret which is then converted into a Hex array. Use the OTP Tool for Arduino TOTP Library to get the Hex array, Base32 Encoded Key, and a QR Code to scan into your normal TOTP generator. Add the Hex array into the code below. To check that it is functioning correctly, either scan…
Continue reading →