Terence Eden. He has a beard and is smiling.

Terence Eden’s Blog

Theme Switcher:

Book Review: The Canterbury Tales - Geoffrey Chaucer (Standard Ebooks version)

· 900 words


A knight riding on a horse.

I am flying through the sky with a magic glass on my lap. As I hurtle at terrifying speeds to lands undreamed of, Chaucer's words arrange themselves on the slate. With the merest flick of my fingers another tale appears. In a few hours I will have covered more distance than he ever did in his lifetime. The parchment evidence of his life is now compiled for all to read. I can't remember when I…

Book Review: Learning to Think by Tracy King

· 400 words · Viewed ~276 times


Book cover. A smiling young girl sat on a sofa.

What does it mean to write an autobiography? For most people, their autobiography is a series of well-worn stories that they've told themselves. I remember reading Peter Mandelson's autobiography and being staggered at how he won every argument he ever had and was proved completely right by history. I'm sure you've read a dozen autobiographies where the subject has gleefully recounted something …

Stop using preg_* on HTML and start using \Dom\HTMLDocument instead

· 5 comments · 850 words · Viewed ~977 times


The PHP logo.

It is a truth universally acknowledged that a programmer in possession of some HTML will eventually try to parse it with a regular expression. This makes many people very angry and is widely regarded as a bad move. In the bad old days, it was somewhat understandable for a PHP coder to run a quick-and-dirty preg_replace() on a scrap of code. They probably could control the input and there wasn't …

Gadget Review: AsiceSound Bluetooth Earbuds S23

· 1 comment · 700 words · Viewed ~298 times


Black headphones in a black case. An LCD shows the charging level.

The good folks at AsiceSound sent me their latest Bluetooth Earbuds. They're yet another no brand company which rebadge various Chinese gadgetry. The S23 are £50, which is a reasonable price compared to AirPods, and expensive compared to bargain basement earbuds. So what do these have going for them?  The charging case shows the battery level of each bud  You get a few different si…

Gadget Review: DisplayPort to HDMI Showdown

· 2 comments · 700 words · Viewed ~415 times


Short braided cable.

From crummy old S-Video, through SCART, VGA, and HDMI - the world of video connectors has never been entirely cross compatible. Oh, sure, with enough boxes and adapters you can usually get an old device to talk to a new one. But results are never guaranteed and quality can take a hit. HDMI was supposed to be our saviour, but now DisplayPort threatens its dominance. What's the difference? For the …

Too many overflows reporting Gmail spam

· 1 comment · 600 words · Viewed ~513 times


Web version of Gmail. The second overflow menu has a report spam option.

What does the humble ⋮ symbol mean to you? To geeks, it is a compelling attraction. Something cool and esoteric lives in there! All sorts of goodies to explore and configure. To normal people, it is invisible. Normal people don't go pushing random icons on their apps because computers are fragile and may break if you do the wrong thing. To me, it is a sign that product managers are a menace a…

Get alerted when your Kobo wishlist books drop in price

· 1 comment · 550 words · Viewed ~394 times


Screenshot of an email showing cheap books.

The brilliant kobodl Python package allows you to interact with your Kobo account programmatically. You can list all the books you've purchased, download them, and - as of version 0.12.0 - view your wishlist. Here's a rough and ready Python script which will tell you when any the books on your wishlist have dropped below a certain amount. Table of ContentsPrerequisitesGet your wishlistSort the …

Is enhancement the same as manipulation?

· 4 comments · 850 words · Viewed ~517 times


Screenshot of a BBC news article. Jurors shown video 'of felling of Sycamore Gap tree'

How far can you enhance an image or video before you cross the line into manipulation? The UK is currently prosecuting two men accused of a crime. Part of the prosecution's evidence is a video. In showing it to the jury, the prosecution have said: the two minute and 41 second-long video is "extremely dark" but the "unmistakeable" noise of a chainsaw can be heard followed by the sound of a tree…

Who is responsible for missing money?

· 2 comments · 1,000 words · Viewed ~583 times


A tiny lego Storm Trooper eats a chocolate coin.

I have a simple rule of thumb when it comes to news reports. The real story is always in the penultimate paragraph. Let's look at this inflammatory headline: Woman’s 'spree' after $158k banking error, refuses to return pensioner’s life savings An Auckland beneficiary is under investigation for an alleged “spending spree” after $158,000 was mistakenly transferred to her account. […] pensioner lo…

HTML Oddities: Is a newline just another whitespace in attribute values?

· 600 words · Viewed ~469 times


The HTML5 Logo.

Consider these two HTML elements: <div class="a b">…</div> <div class="a b">…</div> Is there any semantic difference between them? Is there any way to target one but not the other? In other words, are they logically different? I think the answer is no. On every browser I've tested, both are the same. Whether using JS or CSS, there's no difference between them. You could replace every \n wit…

Using Tempest Highlight with WordPress

· 1 comment · 300 words · Viewed ~242 times


The HTML5 Logo.

I like to highlight bits of code on my blog. I was using GeSHi - but it has ceased to receive updates and the colours it uses aren't WCAG compliant. After skimming through a few options, I found Tempest Highlight. It has nearly everything I want in a code highlighter:  PHP with no 3rd party dependencies.  Lots of common languages.  Modern, with regular updates.  Easy to use fun…

Reverse Geocoding is Hard

· 7 comments · 850 words · Viewed ~28,402 times


Two men are confused by a paper map

My wife and I run OpenBenches - a crowd-sourced database of nearly 40,000 memorial benches. Every bench is geo-tagged with a latitude and longitude. But how do you go from a string of digits to something human readable? How do I turn -33.755780,150.603769 into "42 Wallaby Way, Sydney, Australia"? Luckily, that's a (somewhat) solved problem. Services like OpenCage, StadiaMaps, OpenStreetMap,…