This is a group to go with the blog of a very similar name.
- Shed a tear for this dead link
- What is this?
- Given With Love card
- Blogroll: Sites I like (Indieweb edition)
- Welcome to my Friends Page
- Projects
- Lord Matt embeds all of Mastodon (project)
- Tools for reviewers
- /Now
- The round-robin of cool stuff
- So you want to buy me stuff?
- Holding Pattern
- Ideas
- About
- Guestbook
- Matt’s Pixel Wall
- Matt is not an SCP
- The Online Safety Act 2023 risk assesment that does nothing new
- The Spell Collector
I made little animated badges for Password Game and Pasword Game 2 (both games by me)
April 19, 2025 in game-dev by Matthew Brown
The banners are for my Pixel Wall project.
Password Game is the original (web-only) evil password validator game. More polished versions came later, but this is the OG original sin against security.

The scoring system works with cookies. You can disable cookies and still enjoy the games, but you don’t get a score. Nothing is saved or recorded.
WishList: A proposed extension of OpenGraph
March 23, 2025 in coding-and-development by Matthew Brown
I’d like to propose an extension of the OpenGraph protocol for easy wishlist creation. A select few might be aware that I maintain a wishlist. Currently, I manually enter each gift idea into a database. It would be dead helpful, if I could just provide a link to a page that represents an item that can be given.
This post contains some marked-up HTML and I don’t know how it will look on federated sites. You may need to open the original page for best results.
Existing art that might work
OpenGraph pretty much has what I need already.
<meta property="og:type" content="product.book" />
As far as I can tell, the list of types in the product space is as follows – album, book, drink, food, game, movie, product, song, and tv_show. Some of this maps well to gift listing.
- album is generally a thing you can buy and, thus, gift (digital purchases and releases are a bit fuzzy)
- book is a thing you can buy (includes ebooks or all kinds)
- drink is probably a thing you can buy or, sometimes, make
- food can be a thing you buy as a gift but is not strictly limited to that
- game is largely a thing that one can gift but exceptions apply
- movie is a thing you can watch but might map to DVD or Blueray which can be gifted
- product (product.product) is generic and is probably giftable
- song is something you listen to but might map to CD or digital for a given single
- tv_show is something you watch but could map to Box Set (DVD/Blueray/etc.)
However, there are some giftable things that do not fit well within the defined product types.
- A custom voucher for a favour like babysitting, housework, a shoulder massage, and other no-spend gifts.
- Something that you could make such as a cake, cookies, pie, a custom set of shelves, a GWL card, and so much more.
- The clarity that the product in question is something that can conceptually be given. Perhaps in a given format or media.
I considered adding one more product value
To the product types, I would like to add something that indicates the thing that can be given. The simplest version of that is probably “gift” or “giftidea”. It would set the page as a thing that a person can gift to another. Which would make it ideal for wishlists. Something like this:
<meta property="og:type" content="product.gift" />
This is not entirely a good fit. “Product” as a gift is conceptually a little narrow and is a bit too abstract for my tastes. Plus, it could break existing validators that are unaware of the new gift product type.
The other option would be a new base type with its own subtypes. This is problematic as it would create the possibility for duplicate potential types for a given page. Fortunately, there is a better way.
A namespace for OpenGraph gift ideas and wishlists
That better way uses good old namespaces.
If the type is not the right place to insert metadata for giftables, perhaps a new schema might be called for to cover instances when the current OpenGraph types are not a good fit. This gives us, I think, three new objects – gift idea, the wishlist, and an entry in a wishlist. Maybe it would look something like this:
<head prefix="wishlist: https://example.com/ns#"> <meta property="og:type" content="wishlist:gift" />
This type would provide a catchall for wishlist gift ideas that don’t fit well into the wider graph. It would also avoid breaking validators. The same namespace could be used for all wishlist, gift, and wish object data.
wishlist:gift object data
The namespace could provide other wishlist item data points – estimated price(s), and known retailers, for example.
<head prefix="wishlist: https://example.com/ns#"> <meta property="og:wishlist:gift:price" content="£32.99" /> <meta property="og:wishlist:gift:price" content="$99.99" /> <meta property="og:wishlist:gift:retailer" content="amazon.co.uk" /> <meta property="og:wishlist:gift:retailer" content="CEX" /> <meta property="og:wishlist:gift:retailer" content="Harry's Local Trade Shop" />
There is a lot more data that could be added here but I’m not sure it is strictly necessary. Maybe there is something that should be here but I’ve not thought of. I think that the rest of the data – product information, could be covered by the existing OpenGraph namespace. If there are any obvious gaps, please comment, reply, or mention with your thoughts.
wishlist:list object data
If we’re going to have a custom namespace, why not also include the wishlist itself? This can be where each wish in the list could go (technical limits may apply).
<head prefix="wishlist: https://example.com/ns#"> <meta property="og:type" content="wishlist:list" /> <meta property="og:wishlist:list" content="https://example.com/lists/matt/birthday/" /> <meta property="og:wishlist:list:user" content="Matt" /> <meta property="og:wishlist:list:wish" content="https://example.com/lists/matt/birthday/tfdobl" /> <meta property="og:wishlist:list:wish" content="https://example.com/lists/matt/birthday/apple" /> <meta property="og:wishlist:list:wish" content="https://example.com/lists/matt/birthday/cake" /> <meta property="og:wishlist:list:wish:more" content="https://example.com/lists/matt/birthday/page-2" /> <meta property="og:wishlist:list:wish:more" content="https://example.com/lists/matt/birthday/page-3" />
For wishlist:list:user
, I toyed with calling this “wisher” and a few other things but finally concluded that there was no good reason to invent new terms when the existing idea of a site user or member was already well established.
There are other data points that might fit inside the graph for a wishlist. Please suggest any you think I should add here.
wishlist:wish object data
Wishlist entry implies the existence of wish with details such as – the gift wished for, how badly you want it (priority), how many you want, why you want it, and the list the wish is from. The whole thing might look like this:
<head prefix="wishlist: https://example.com/ns#"> <meta property="og:type" content="wishlist:wish" /> <meta property="og:wishlist:wish:gift" content="https://example.com/shop/item/tfdobl" /> <meta property="og:wishlist:wish:priority" content="low|medium|high" /> <meta property="og:wishlist:wish:quanitity" content="1" /> <meta property="og:wishlist:wish:why" content="This book is the only one missing from my collection." /> <meta property="og:wishlist:wish:inlist" content="https://example.com/lists/matt/wishlist-birthday" />
There are maybe other optional elements. Please do suggest data points you think should go here. Is, for example, wishlist:wish:why
the best way to label that information within the graph?
Existing OpenGraph object data
OpenGraph neatly provides most of the other data points that could matter, I think.
<meta property="og:title" content="Fictional Dictionary of Bad Language" /> <meta property="og:url" content="https://example.com/giftideas/tfdobl" /> <meta property="og:image" content="https://example.com/images/tfdobl.jpg" /> <meta property="og:description" content="..." /> <meta property="og:determiner" content="the" /> <!-- ect. -->
One small privacy issue
While writing this, it occurred to me that I did not really want to put my postal address and other sensitive information online as part of a social graph. To avoid that I went ahead and assumed that the wishlist site handling the list for the user would implement some way for gift-givers to privately obtain such data if it was even needed at all. Perhaps with some sort of request/grant system or some other similar privacy controls.
Thoughts and feedback?
That’s my ideas about presenting wishlists, gifts, and wishlist items using OpenGraph. I’m open to critique, objections, praise, or any other feedback.
I found another (markdown) bug with the Universal Credit website
March 16, 2025 in uncategorised by Matthew Brown
Today, I learned that gov.uk websites use Mark Down – a system for marking up text that can safely be turned into HTML. So too does the Universal Credit Journal system (sort of).
It looks like the journal system is trying to use Mark Down, and the specific code for that is fighting it hard.
I have discovered that it tries to throw rounded brackets (like this) around links. By default, “GOV.UK Notify will convert the URL into a link for you.” This is what is happening with the URLs added into the Universal Credit Journal, but the output method refuses to process the Mark Down. The UK government even has its own beucracy laided URL shortening system to make Mark Down links easy to read.
‘I have no way of knowing if it was decided that the general public was not to be trusted with the very safe Mark Dow system; or if it was determined that Universal Credit claments were too stupid to use it; or if the hack job that is the Journal system is just that badly written.
The unclear UK Online Safety Act cannot possibly hope to process all the bloggers
March 13, 2025 in uncategorised by Matthew Brown
The UK Online Safety Act 2023 makes it the responsibility of site owners to carry out a laundry list of protection behaviours. The UK Government has failed to say if this act applies to blogs. It has been clear that it applies to all websites with UK users. As usual, the UK government leapt in without understanding what it was doing (again).
At a rough estimate, there are over 450 million WordPress blogs plus other CMS based content, forums, and so forth. To get through those in one year, they would have to deal with 1,232,876 blogs a day for a year with no days off for good behaviour.
Forcing that many indie bloggers to fill out paperwork to confirm that they delete harmful contact and spam (like we all do) would be like trying to empty the ocean with a teaspoon.
The fact that the government has failed to clarify if the Online Safety Act covers personal and single-person websites (like all of mine) means one of a few things:
- Someone wants to go after specific bloggers
- They have no idea what they are doing
- They have no intention of going after bloggers and indie websites but cannot say that
- Nobody has thought this through
- The law’s authors think it will magically make the Internet safer with no effort
I fear it might be a little bit of each of those. But that also means that the law is toothless to go after bloggers. After all, no Prime Minister wants a headline to read, “Government fines mother of three £18m because someone left a mean comment on her son’s blog”.
While it is not nice to be uncertain, I think that the practicalities mean that your average personal blog will be completely fine. Forums, on the other hand, could be a little more tricky. I hope that the same small things and large numbers issue keeps well meaning over reach off of our friendly corners of the Internet.
For Author Buzz UK, I shall probably have to write a risk assessment I wonder if the following will do?
We let members post stuff on the condition that they are nice and also on topic. Spam and harmful content will be sent to the spam delete bin along with the poster’s account.
Every blog and forum moderation plan ever
Ofcom has offered some guidance for what it is worth. They don’t say where your risk assessment is supposed to be sent.
Fingers crossed, I guess.
A new blog for my visual novel
March 8, 2025 in uncategorised by Matthew Brown
I’ve been posting here from time to time about my visual novel plans. Before I get to the giant epic that is the story of a tea-drinking wizard, I have set myself a more reasonable goal – a simple story about a person lost in a magic maze.
This story is currently under the working title of The Endless Rooms (although variants on The Lost Rooms are also in my head).
To make life easier (and to avoid spamming small posts from this blog), I have set up the project with its own Mastodon/Fedi/WordPress thing on isBrill.com. This can be found at https://endless-rooms.isbrill.com/ and subscribed to on Mastodon and related fedi-sites.
Blog Activity
-
Matthew Brown wrote a new post on the site The Fantastic Site of Lord Matt 12 months ago
A possible reason boots.com is so slow
Just recently, I got curious about how slow boots.com is. I looked at the infrastructure but other than a mighty slow ping time on the domain, I saw […]
-
Matthew Brown wrote a new post on the site The Fantastic Site of Lord Matt 1 year ago
I have a new theory about Boots's car crash of a website.
I’ve become somewhat obsessed with the boots.com website and its endlessly hilarious bad front end. My theory in my last post was a bad or underskilled […]
-
Matthew Brown wrote a new post on the site The Fantastic Site of Lord Matt 1 year ago
I suspect that boots.com has vacant senior developer positions
Nothing else explains what I just saw. Yesterday evening, I decided to create an account with boots.com. I realised that I was paying more with a 15% […]
-
Matthew Brown wrote a new post on the site The Fantastic Site of Lord Matt 3 years, 6 months ago
Tonight, I begin the process of moving into a fresh and updated version of the classic Lord Matt look and feel. Already I have found a few shortcomings to address. For me and this site, this is completely […]
-
Matthew Brown commented on the post, Hard Math, on the site The Fantastic Site of Lord Matt 3 years, 6 months ago
OMG, younger me. No one cares.