Book Review: Adventures in Space - New Short Stories by Chinese & English Science Fiction Writers


Book cover for Adventures in Space.

This is a curious - and slightly unsatisfying - collection of short stories. There's no cohesive theme; some are about space travel, some alien invasion, some about madness on Mars, some about interstellar religions. You bounce around between themes without much chance to reflect on how different authors tackle the same subject. The stories alternate between Chinese authors and English-speaking…

Continue reading →

Posting Untappd Checkins to Mastodon (and other services)


HTML source code of the page.

I'm a big fan of Untappd. It's a social drinking app which lets you check in to a beer and rate it. Look, we all need hobbies, mine is drinking cider. You can see a list of everything I've drunk over the 13 last years. Nearly 900 different pints! After checking in, the app automatically posts to Twitter. But who wants to prop up Alan's failing empire? Not me! So here's some quick code to…

Continue reading →

Questions asked at an End Point Assessment Professional Discussion


Some giant question marks standing in a field. Photo by https://www.flickr.com/photos/dbrekke/181939582/

The last part of my MSc Apprenticeship was my EPA Professional Discussion. It's designed to be a 90 minute chat to make sure you've actually learned something on the course. The official guidance is available. But I thought you might find it helpful to see the questions that I was asked. Disclaimer I jotted these down while doing the assessment. They are relevant to the Digital Technology…

Continue reading →

Why are video games so expensive these days?


Sonic the Hedgehog jumping around the screen.

I was looking to buy the latest Zelda game for my wife as a present (Shhh! Don't tell her!) and it was SIXTY BLOODY QUID! For a video game! That seems extortionate. I remember, when I were a lad, video games cost... wait? Do I remember? Or is it just rose tinted glasses? I remember saving up my pocket-money for weeks on end, and getting an advance on my birthday money, in order to be able to…

Continue reading →

Responsible Disclosure: Abandoned Buckets and Billing Emails


Error saying the bucket does not exit.

A few weeks ago, I received a billing email from my phone provider O2. While glancing at it, I noticed all the images were broken. Viewing the source of the email showed that they were all coming from http:// mcsaatchi-email-preview.s3.amazonaws.com/o2/... What happens if we visit that domain? Ah, the dreaded "The specified bucket does not exist" error. At some point the images were…

Continue reading →

How much of AI's recent success is due to the Forer Effect?


A confused little cardboard robot is lost amongst the daisies

One of the things about AI is that it is brilliant at fooling us into seeing what we want to see. That's even more true when you're an investor who has poured millions into it. The journalist Martin Bryant has posted what Bing's A.I appears to know about him: My opinion of him is that he is a knowledgeable and influential figure in the tech and media industry. He has a lot of experience and…

Continue reading →

How to style your alt text


Photo of a broken and smashed picture frame. Taken by eastbeach on Flickr.

Every day is a school day. I'd recently seen a post about highlighting images without alt text. That got me thinking. Is it possible to style alt text? Yes. Yes it is. And it's pretty simple. Well, OK, it's CSS, so simple is a relative term! Let's take a broken image like <img src="http://example.com/bigfoot.jpg" alt="The best quality photo of bigfoot!" /> There are two slightly different…

Continue reading →

People only want their technology to do three things


Old Nokia phone showing an area code.

Many years ago, I worked as a product manager for pre-smart phones. Remember that old Nokia phone you had? Yeah, them! This was a common complaint we heard back then: "Ugh! Why do phones have all these useless, overcomplicated, random functions? People only want their phones to do three thing - calls, texts, and..." And... And that's where the problem was. That third thing was different for…

Continue reading →

Signal's new(ish) URI Scheme


A padlock engraved into a circuit board.

A few years ago, I idly wondered "Whatever happened to URI Schemes?". Older communications protocols didn't rely on http. You can use mailto:me@example.com to send email, sms:+447700900123 to send a text message, and skype:terence.eden to use Skype. There are dozens of these sorts of protocols. But modern apps seem to prefer making everything an https: link. That way, if the user doesn't have…

Continue reading →

Necroposting - blogging from before you started blogging


An old photo of me, wearing a silly hat.

Jon Hicks has a lovely blog post about his site's design. In it, he briefly touches on something I find interesting: Blogging like it's 1972 I also finally realised that there's nothing stopping me from adding journal posts dated from before I started blogging. So I'm going to start adding key life moments as much as I can. A blog isn't an immutable chain of events. There's nothing to stop us…

Continue reading →

Page numbers aren't the answer


The PDF file icon with a big red line through it.

There's a new pre-print paper called Pinpointing the problem: Providing page numbers for citations as a crucial part of open science by Leon Y. Xiao and Nick Ballou. It's a short, easily understandable paper, and well worth a read. I think I disagree with nearly all of its conclusions! The main point, I agree with. Citing a whole paper is a lossy process. Saying "Smith, J (1963) Practical Time…

Continue reading →

How to password protect a static HTML page with no JS


Screenshot of some garbled text on screen.

I recently saw Robin Moisson's method of password protecting a statically served HTML page. It's quite neat! But it does rely on JavaScript. That got me wondering if there was a way to encrypt a static page only using CSS? And... I think I've done it! I'll warn you now, this is a deeply stupid way to solve the problem. Here's a screencast of the demo in action: …

Continue reading →