Terence Eden. He has a beard and is smiling.

Terence Eden’s Blog

Theme Switcher:

The new .zip TLD is going to cause some problems

· 9 comments · 350 words · Viewed ~8,863 times


Many years ago, Google applied for the .zip Top Level Domain. ICANN, in its infinite wisdom, granted it. And now, I think, bad things are going to happen. You see computers try to be helpful. They see you wrote "visit example.com" and autolink the thing which looks like a domain name. That's handy - especially as most people don't have the time or skill to write HTML. So what happens when…

Review: Christina Bianco In Divine Company at The Chocolate Factory

· 250 words


Poster featuring Christina Bianco as a Diva.

Doing vocal impressions is hard. Doing them while singing is even harder. But Chirstina Bianco does it effortlessly, backwards and in high heels. I remember seeing the Forbidden Broadway show decades ago - Bianco is an alumna - and being slightly confused by all the "inside baseball" terminology. This new one-woman show is much more accessible. We were treated to Shania Twain singing Bucks Fizz, …

Doctrine - difference between bindValue() and setParameter() on prepared statements

· 1 comment · 400 words · Viewed ~1,098 times


Doctrine project logo.

This pissed me off and I couldn't figure out what I was doing wrong. So I'm blogging about my ignorance. Imagine you're using Symfony and Doctrine to access a database. You are using prepared statements to prevent any SQL injection problems. There are two main ways of doing this - and they disagree about how positional variables should be specified. Data Retrieval And Manipulation Here's a…

Symfony - multiple paths to the same route within a controller

· 1 comment · 100 words · Viewed ~1,788 times


Logo of the Symfony project.

I couldn't work out how to use Route Aliasing within my controller. I couldn't find anything in the documentation about it. But, thanks to a StackOverflow comment it is possible. Suppose you want users to be able to access a page using /users/123 and /people/123 - with both routes displaying the same data? Normally you'd write something like #[Route('/user/{id}', name: 'show_user')] - as it…

I'm quoted in this Verge article about AMP

· 2 comments · 200 words


A lightning bolt logo.

The journalist David Pierce has written a piece about the birth and (almost) death of Google's AMP. Regular readers know I have been a vocal critic of AMP even when I was serving on its advisory committee. Nowadays, well, I can't remember when I last saw an AMP page (yay Firefox!) and I've never had a client ask me to develop an AMP site. Last year, I had a long chat with David about my…

Miss Yamaguchi's Perpetual Beansprout

· 1 comment · 800 words


Beanspouts on a plate. By sunflowerlark on Flickr. BY-NC-ND.

The Yamaguchi Foodstuffs Conglomerate emphatically denies causing tumours in vegetables. They did not "give a beansprout cancer". That would be irresponsible and against their 250 year commitment to responsible bio-agriculture development. Every culture has their own version of Grimm's "Der süße Brei". A cautionary tale of a magic porridge dispenser which, thanks to one woman's forgetfulness, e…

Replacing the keyboard on the Clevo N151CU / Lafité IV / System76 Darter Pro / Entroware Proteus

· 2 comments · 350 words · Viewed ~334 times


A keyboard being lifted out of a laptop.

After three years of constant abuse, my once pristine laptop keyboard now looks like this: My options were: Ignore it. Scrape off all the paint and replace with translucent stickers. Buy a new keyboard. Even if I were happy with the aesthetic of a hard-worn keyboard (I wasn't) the flaking paint just didn't feel nice under my fingers. I also figured that scraping the paint further risked…

Let's (not) share our VR headsets

· 2 comments · 400 words · Viewed ~1,527 times


Tall retail unit with a CRT TV on top - it has Sega Dreamcast branding.

It is hard to get people excited about VR. Even at its best, it is an isolating experience - that's why Zuck is pushing the social features of The Metaverse so hard. But, worse still, it's hard to show people what the VR experience is like. If your friend buys a 4K laser projector, you can immediately understand the appeal of the massive screen. Even if you only see the photos of it on…

Book Review: Inventing Temperature - Hasok Chang

· 300 words


Book cover showing old thermometers.

This is an important and informative book. Unfortunately, I did not get on with it at all. The book is an ambitious look at the philosophy of science viewed through a unique lens. What is temperature? How do we define what freezing and boiling are if we don't have a thermometer? How do you invent a thermometer without stable references? It goes right back to the beginning of science's quest to…

There's too much Star Wars

· 5 comments · 500 words · Viewed ~835 times


A simple 2D point and click game called Yoda Stories.

I am (what could charitably be called) a Star Wars fanboi. When I was a nipper, there were only 3 Star Warses, and I wore out the video tapes watching them repeatedly. When the Timothy Zahn books came out, I was starved of new content and devoured them eagerly. And... that was pretty much all there was for Star Wars. Oh, sure, there were the Droid and Ewok cartoons but - although I didn't have…

How can I have a side hustle when I don't want to pay for anything?

9 comments · 300 words · Viewed ~276 times


A tiny lego Storm Trooper eats a chocolate coin.

I've been reading various entrepreneur books and blog posts. One thing they all emphasise is that success often comes from finding a problem that you yourself would pay money to solve. And that's a problem for me. I don't tend to want to spend money solving problems. I'm not claiming to be a hermit, but I find it weird just how little cash I'm willing to part with to improve my life. So I'm…

Fixing a weird issue with Symfony's Cache

· 150 words


Logo of the Symfony project.

I'm just getting started with Symfony, so I'm blogging some of the weird things I'm finding. Symfony has a concept of Cache Contracts. You can call an expensive / slow / intensive operation and immediately cache the result for a specific time period. Next time you call the operation, the results are served from the cache until the expiry time has been hit. Nifty! But I couldn't get it to work. …