Quick and dirty way to rip an eBook from Android


Unix is user-friendly — it's just choosy about who its friends are.

I recently purchased a book for my MSC which was only available via a crappy Android app. There was no obvious way to decrypt it to read on a more sensible device, so I resorted to the ancient art of screenscraping. This is a quick-and-dirty way to grab images of the pages and convert them to a standard PDF using Linux. There's a lot more you can do to make the end book more useful, but this'll…

Continue reading →

Energy efficiency of modern codecs


Binary code displayed on a screen.

How efficient are modern codecs? Can we ever work out whether the power use of compression algorithms is a net gain for global power consumption? Come on a thought experiment with me. I have invented a new image compression format. It shrinks images to 50% smaller sizes than AVIF and is completely lossless. Brilliant! There's only one problem - it is 1 million times slower. If it takes your…

Continue reading →

Movie Review: Shang-Chi and the Legend of the Ten Rings


Chinese actor on a movie poster.

I'm not a big fan of superhero movies - and the Marvel ones are particularly bad - but this is… pretty good! It's nice to see a modern / westernised "Kung Fu" movie. All the budget of a blockbuster, all the cheese of cheap Wuxia. It's refreshing that so much of it is subtitled - and surprisingly brave for a Hollywood studio. There's no daft love-story wedged in, and no obsessive call-backs to p…

Continue reading →

Book Review - Working in Public: The Making and Maintenance of Open Source Software by Nadia Eghbal


Book cover.

Over the last 20 years, open source software has undergone a significant shift—from providing an optimistic model for public collaboration to undergoing constant maintenance by the often unseen solo operators who write and publish the code that millions of users rely on every day. In Working in Public, Nadia Eghbal takes an inside look at modern open source software development, its evolution o…

Continue reading →

Why doesn't Disney+ support accents in profile names?


An apostrophe in Donald O'Duck causes the profile name to display an error.

Because I'm genetically pre-disposed to watch every piece of Star Wars content ever created, I signed up for a free trial of Disney's newest streaming service. As part of onboarding, it asked me to create a profile name. This is typically done so that multi-user households can have separate profiles and preferences. Mum doesn't have her princess stories disrupting Dad's suggestions. And Junior…

Continue reading →

Free Software as in Free House


Binary code displayed on a screen.

Much like a Tesla, all analogies break down eventually. As many many many people have said - free software is free, in much the same way as a free puppy is free. I prefer to think of it as being free just like being given a free house is free. Imagine that! Being given a free house would solve so many immediate problems. You'd have shelter, warmth, an administrative address, and a stake in the …

Continue reading →

Movie Review: Nina Forever


Movie poster showing a threesome between two women and a man. One of the women is a bloody corpse.

I like my comedies dark but… Fucking hell! I don't think I've ever seen anything so bitter, twisted, and hilarious. What if your dead girlfriend was haunting you and your one-night stand? It is an idea which has been done a few times. Think "So Haunt Me!" but with a lot more blood and sex. No, much more than you're thinking. I spent the entire film like 😲. I'm not great with blood and pain - bu…

Continue reading →

Book Review: The Medusa Chronicles - Alastair Reynolds & Stephen Baxter


Book cover - a spaceship flies past Jupiter.

Inspired by Sir Arthur C. Clarke's short story A Meeting with Medusa, this novel, with permission from the Clarke Estate, continues the story of Commander Howard Falcon over centuries of space-exploration, interaction with AI, first contact and beyond. All brought to life by two of our greatest SF authors, Stephen Baxter and Alastair Reynolds. Howard Falcon almost lost his life in an accident…

Continue reading →

Movie Review: No Time To Die


James Bond movie poster.

James Bond Will Return! OK, but why though? Action movies these days are little more than non-interactive video games. You're not watching an actor perform feats of daring-do, subtly enhanced with cinema trickery; you're watching stunt doubles and cartoony CGI. So you're left to enjoy "witty" dialogue (patchy), nifty gadgets (lacking), and plot tension (mostly absent until the end). Bond hits…

Continue reading →

An NFT without a Blockchain. No gas fees. No Eth. No gatekeepers


A blocky image of Rembrant.

This is a small proof-of-concept. It relies on PGP - but you could use Keybase, GPG, or any other hard-to-use encryption program. Background Suppose you want to support an artist and give them money. That's easy. Most artists take PayPal, bank transfer, or cash. But how can you prove that you've paid an artist for a specific piece of work? That is, in essence, all an NFT is - the seller…

Continue reading →

Authorisation vs Consent


A tiny lego Storm Trooper eats a chocolate coin.

I recently read this interesting, and distressing, story of a man who was drugged and robbed. A form of crime which has been going on for centuries. But the 21st Century twist is that the thieves forced him to transfer large sums of money via his phone's banking apps. While under the influence, the victim used his usernames, passwords, PINs, and biometrics to send money to the criminal's…

Continue reading →

Thoughts on instant grocery apps


Notification offering a tenner off my next shop.

My life isn't cool enough for most apps. I'm never wandering through a new city, waiting to be bombarded with special offers. I don't need to meet hot singles in my area. And I can't remember the last time I went to a secret last-minute gig. But I do like eating cheap food! London seems flooded with Instant Grocery apps right now. A dozen different start-ups which will get you a pint of milk…

Continue reading →