Where Authors & Readers find each other

The Fantastic (Group) of Lord Matt, Super Geek


The time I used diagramming for success

January 12, 2026 in coding-and-development by Matthew Brown

I had a project idea in my head that seemed too complex to work on until I tried diagramming it.

The idea was a multipurpose CRM-like action/account system thing. I think it might best be described by my first diagram.

A total spaghetti mess of an entity relational diagram.

I mean, just look at that nonsense. How was I supposed to make a database that handles that? It is the kind of nonsense that gets called “Enterprise” and costs eye-watering piles of cash to keep working.

That was where diagram 2 came in. Having identified groups and entities, it was possible to restructure to something approaching third normal form.

Thus, I made this:

A nice clean ERD for the data layer

All of that complicated referential business logic boiled down to a fairly simple data logic.

The moral of the story is this: If you have an idea that refuses to be wrestled into a neat or functional shape in your head, write down whatever you have. Lay it out as logically as you can. Often, in the process of writing it down, you will find that the problem can be tamed. The process of writing it down forces you to be clear about everything. Writing it down forces you to process one bit at a time.

The result is often greater clarity.

In my case, I feel ready to start planning the data API layer with what should be some fairly efficient database abstraction.

Sure, I’m going to have a few strange-looking UNION SELECT statements, and more LEFT JOIN and INNER JOIN than normal but I will also have optimised indexes for those selects and joins. Which means that it will not stress my database.

Also, I can use write and read replication to scale my idea.

Please share your thoughts on this with me.

I upgraded my blog

November 6, 2025 in coding-and-development by Matthew Brown

My blog runs a handmade custom WordPress theme called LordMatt7 as it is the seventh complete rebuild since all the way back in 2005 when I first made a Facebook, Twitter, Wikipedia mashup looking blog.

Today I finally got fed up with the fact that there were no titles at the top. Which kind of made it hard to tell if you were looking at archives, tags, categories, or the front page.

I fixed that.

Screenshot showing the new title for my blog

There’s a little chain of if statements to pick which page we’re on.

$lordmatt7_page_tag = str_replace(' ','-',get_post_type()) ;

if(is_archive()){
    $lordmatt7_page_tag = 'archive';
    if(is_category()){
        $lordmatt7_page_tag = 'category';
    }elseif(is_tag()){
        $lordmatt7_page_tag = 'tag';
    }elseif(is_date()){
        $lordmatt7_page_tag = 'date';
    }
}

I must admit, I’m not sure if this was exactly the best way to do that. All you WordPress experts, please chime in with your criticisms so I can learn.

Then there are a bunch of template parts with a fallback in case I manage to ask for one that doesn’t exist.

A list of similarly named php files.

The theme picks which one using this handy-dandy built-in WordPress function.

get_template_part( 'parts/pageheader', $lordmatt7_page_tag );

It looks for a file with the right second part and, if not, uses the generic one without a text after the dash.

Which means I now have the joyful task of writing intros for all my categories and tags. I will probably do that over time, but at least now, the different views all have a nice bit at the top to tell you what part of the site you are looking at.

Looking back, I’m pretty sure the string replace function is redundant, but I can’t be bothered to take it out now. It feels like there should be a function to do all of that for me, but I couldn’t find it. So I improvised with what I had.

Thoughts?

Suggestions?

Improvements?

You know what to do.

5 writing prompts from the muse that I love

November 2, 2025 in just-for-fun by Matthew Brown

I am a contributor to the Muse of Last Resort blog. Not gonna lie, there are many prompts there that I love and desperately want to see some stories based on. This is a collection of five hand-picked prompts.

Cinderella – the automaton who would be a girl

In this reimagining of Cinderella that you are going to write, Cinderella is a clockwork automaton left to her maker’s wife and stepdaughters after he passed away.

Cinderella – the automaton who would be a girl

What if dogs could suddenly talk?

Today, you noticed that all dogs suddenly speak English.

What happened, and how does the world change?

What if dogs could suddenly talk?

The happy couple love their imaginary daughter

That’s the entire prompt. Almost an entire story in a single sentence. Here’s the link.

Hello Hedgehog

You swerve to avoid a hedgehog one day and soon forget all about it.

Unknown to you, the hedgehog remembers your kindness. It spent its life watching over you in secret. When old age caught up with the hedgehog, its ghost moved into your home to continue its vigil.

Hello Hedgehog

Wrong number

Each day at around 6 pm, you receive a call from someone who dialled the wrong number. It is always a different person. Over time, the callers become increasingly less likely. One time, for example, you had a ten-minute chat with the president of Egypt, who was impressed with your grasp of his language. The thing is, you thought you were both speaking English.

Wrong number

Considerations for adding an AMA feature

October 23, 2025 in projects-and-ideas by Matthew Brown

My initial question was “What is the best way to add some AMA (ask me anything) feature (like on Tumblr) to one or more of my websites?” I’d thought about it for all of ten seconds before I realised that “best” was entirely subjective.

If you already know what we are talking about, feel free to skip to the ideas section. For the rest of us, let me briefly introduce the concept to you.

What is this AMA thing, then?

On the hybrid of social media and blogging that is Tumblr, users can enable the option to ask questions. When the user replies, the question and the answer appear together as a single post.

Questions can be anonymous, answered privately (if not anon) or answered as a public post.

Why would you want something like that?

An AMA (ask me anything) can be a great way to build a sense of community with your readers. For example, an author with an AMA can interact with fans but in their own time while creating content that the wider community will probably enjoy looking at. While yes, this is far from common, I think more artists of words and of images should do this more often.

Even if community building (or platform building if you want to call it that) can be a goal, AMAs can just be a fun way to stay connected. In that regard, it feels like a most IndieWeb idea (even if it probably isn’t). (I like IndieWeb stuff BTW)

I think an AMA would be fun. I want to add the feature somewhere.

Where would you use this?

I see five use cases for my own use.

  1. Author Buzz UK user blogs (like this one)
  2. isBrill/isPants as an optional feature
  3. My social node
  4. My music blog
  5. My health blog

Where would you use this?

Authors and other creatives wanting to build a rapport with readers should consider such a feature. The easy answer is to start a tumble blog, but of course, I wouldn’t be your favourite old geek with a cop-out answer like that.

Chatty folks with IndieWeb personal websites featuring a blog or forum might be a good fit.

Anyone who likes answering random questions, I guess.

What about you? Pop into my comments and leave your use case.

Ideas for AMAs, depending on what exactly you want

Now we come to the brainstorming part. I’ve divided this up into potential solutions to explore the relative strengths and weaknesses of each approach along with how copyable the idea is. After all, if I’m having fun with AMAs, I bet others would too.

AMA built on existing IndieWeb stuff like WebMention

If you are already set up for WebMention, this should be dead simple. Make a page which accepts mentions, call it Ask Me Anything. Let people mention said page when they want to post questions to you.

The good

  • Easy to set up
  • No new code needed
  • Will probably work just fine
  • Very IndieWeb
  • Super easy to copy
  • Low effort

The bad

  • Not private
  • Not anonymous
  • Not inclusive for passing average citizens
  • A bit of a faff to maintain
  • No private replies

Conclusion on WebMention

If I am honest, I imagine an AMA built on WebMention will end up like the guestbook pages I have done this with – rarely used by humans but regularly attacked by spam bots. WebMention is great, but I do not think it is the tool for this task.

I would be delighted to be proven wrong if someone wants to implement AMAs this way.

AMA via ActivityPub (Mastodon inclusion mode)

The next approach I considered was to lean on ActivityPub. After all, most of my websites implement it (mostly via a WordPress plugin). For me, this would take the same approach – slap up an ActivityPub-enabled page and call it AMA.

The good

  • Compatible with the WebMention approach
  • A bit more inclusive
  • Easy enough to set up
  • No new code needed
  • Easy to copy
  • Low effort
  • Use the WP Reply block to display the question

The bad

  • Not (entirely) private
  • Not (entirely) anonymous
  • Only inclusive for Mastodon ActivityPub users
  • Still a bit of a faff to maintain
  • Not really what ActivityPub is for
  • Quickly lost in the timeline’s history
  • No private replies (sorta)

Conclusion on ActivityPub

With the plugin for ActivityPub I use on my WordPress blogs, this would probably be the least effort approach that would kind of display the way I would want it to. Mostly. It would be close enough that I could live with it.

However, a strong AMA launch could start with lots of questions as ActivityPub replies, but I can picture it tapering off in fairly short order. For most users, this will be a single toot in an avalanche of content. Thus, soon lost and forgotten.

Just use a forum or group for an AMA

This blog is part of Author Buzz UK (for now). I could just create a group with an AMA forum or add an AMA thread to an appropriate forum or group. That’s how the Reddit AMA works.

The good

  • Low effort
  • Easy to replicate
  • Can be taken to PMs for privacy
  • Sort of what a forum is for
  • Easy for passing average citizens to understand

The bad

  • Forces users to create an account
  • A massive faff to turn into blog posts
  • Not private
  • Not anonymous
  • Looks dead until sufficient uptake
  • A lot to set up without an existing forum in place

Conclusions of using a forum

This approach could be good for some people. If there is a forum or community that is okay with AMAs, you could set up shop there and just copy and paste back to your blog or personal website. This is mostly in the spirit of IndieWeb, I guess.

My problem with this is that I’m taking visitors off-site (sort of) and I can’t replicate this on sites like my social node, my music blog, isBrill, etc. as none of them have a forum. Also, this is not really in the spirit of the Tumblr feature I want to implement. It is more of the meme, “we have AMAs at home…”

Just use an AMA WordPress plugin

In this section, I’m going to take a look at the plugins and/or themes that implement AMA for WordPress specifically. All other platforms will have to roll their own.

Let’s see what I can find.

Spoiler: I found a lot of listicles about plugins to run a full-on Q&A forum/community. Not features to allow people to post a paragraph for you, the author, to reply to.

The also ran that was ask-me-anything-anonymously

A lot of blog posts (including WP Beginner) recommend this plugin. Except it was last updated about a year ago and has been closed due to security concerns (or WP Drama, one of the two).

The source code is on GitHub, though.

Conclusion: Nope.

CM Answers

CM Answers is a QnA plugin. It has a free and a pro version. Like many plugins it seems to take the kitchen sink approach. If you want to run something a bit like Stack Overflow or Quora, I’m sure this is fine. For an AMA feature, this is not the tool for the job.

Conclusion: A cannon to swat a fly

OMG WTF?

Searching WordPress.org was a hot mess of unrelated plugins, forums, and things no sane person should add to the WordPress install. Seriously, WTF?

Conclusions on “just use a plugin”

After a bunch of searching, I came up dry for a plugin that just implements “asks”. What I did find that seemed to be what one might want were thinly veiled adverts for AMA sites, code that should never be used in production, and a lot of irrelevant search results.

I have zero recommendations I am willing to make here.

Well, I guess we have to roll our own or something

I’ve reflected on a few ways to code this up. Let’s start with the least effort idea.

Just a form that creates a draft post

My first thought was that the least effort would be a form on the front end that anyone can fill out. The back end then does a few basic checks and puts the sanitised text inside a quote block in a draft post.

The good

  • Not all that much work
  • Would work as intended
  • Easy to copy

The bad

  • Spam would be a nightmare
  • Infrequency asks could get lost in the drafts section forever
  • Open to abuse
  • So much abuse potential
  • Dear lord, the possible abuse

Conclusions on just adding a form

On reflection, this is a terrible idea. There are many other ways to do this and almost all of them are better.

Okay, let’s spec this thing out properly then

It was at this stage of the rabbit hole that I thought to actually draft out what exactly it is I am looking for. I even went and found a quote to go with my work.

Write down this vision and clearly inscribe it on tablets, so that a herald may run with it.

Bible, Habakkuk 2:2b

I do like a good quote to go with things.

The vision: What I want this to be

Must haves

  • A form people can submit “asks” via
  • Strong anti-spam and abuse mitigation
  • An admin page with all pending asks ready to be turned into “ask posts”
  • Track which asks have answers (posts)
  • Asks are private until published in a post

Nice to haves

  • Option to private reply
  • Optional anonymous asks
  • Obvious link back to asker
  • Can work with WebMention
  • Can work with ActivityPub
  • Uses microformats

Running with it: How to make this happen

The way I see it, there are three possible approaches: (1) A custom post type, (2) a custom database table, (3) a third option that we already passed over.

A custom post type would store a lot of cruft in the database and come with a whole host of security and privacy problems. Posts are designed to be looked at so a custom type that is entirely hidden, while doable, is not really in the spirit of what these are made for. Also, it would be a lot of work, and I am lazy.

A custom database table solves a lot of problems. Each ask has a row to itself, and we could run the text through the input validation and sanitisation built into WordPress. Tracking which post contains the ask would be as simple as adding a field for post ID. Not the worst idea. Certainly workable.

The idea we walked right by is to just use a single page called AMA. Hear me out, now. Think about the spec I have just listed. Does that remind you of anything that already exists? It sounds a heck of a lot like the user comments feature. A plugin that just nominates a page and tracks its comments would benefit from WebMention, ActivityPub, and spam filtration as they are already built in (assuming you also use those plugins like I do).

Okay, smarty pants, how do we do that?

The page itself would have to have a custom template to skip showing comments. Plus or minus a few mitigations to stop them from showing up on “recent comments”. Other than that, and the post tracking, this is basically just native comments that don’t get published.

WordPress comments can have a comment type applied to them. If we set a hook that checks the page ID, we can modify incoming comments for that page to take the “ask” type. Then, I imagine there is a filter we can hook to remove that comment type from anything other things do with comments (like display the most recent ones).

Comment meta is a thing. In there, we can store any extra data such as which post contains the answer, if the ask has been closed, privately replied to (via email), or whatever.

Pair all that up with an admin page and a site can take asks. Go a step further, and you could probably make that a per-user ask. That’s only one more comment metadata point – user who is being asked. The list filtering for active users might not be screamingly fast but this is low enough use that this should not be a problem.

I’d want the admin area page to have a button to turn the ask into a post (a simple enough automated copy and paste into a quote).

In theory, you can then take AMAs via fediverse, WebMention, or onsite. You can use the existing tools to decide who gets to “comment”.

Could this work?

Theory is a great place; everything works there. In theory, this is a great idea. Use comments as asks. An idea that could be copied to most any CMS or software. My question now is, would this work?

Are there any gotchas waiting around the corner that I’d want to know about?

Please do criticise me on this as much as you feel is necessary.

Where does this leave us?

In this post, I looked at a number of ways to implement the AMA “asks” feature of Tumblr. I skipped over WebMentions and similar ideas as not going to work, but came all the way back to, with a little effort, maybe they could.

What I do know is that WordPress does not have a plugin that I could find to implement this. A modified page template could be a good solution. I can see this needing a custom template per theme to look really nice, but an out-of-the-box page with some custom CSS would probably look okay.

By reusing existing structures, there would be less work and more features. I’m not going to try coding this myself just yet. Tiredness is kicking my arse right now. I need to have my head on and brain working to do this myself.

I’d love it if someone else took my idea and made it a thing, but I’ve been around long enough to know that I’ll probably have to do it myself.

TL;DR: Anything that takes comments could probably be made to take asks with a little faffing about.

Thoughts?

I want to know what you think. I thrive on interactions – comments make me happy. In this case, I have a bunch of questions, but any thoughts in your head – please share with me.

  • Are you familiar with Tumblr’s asks?
  • Would you want an AMA on your personal blog or website?
  • Of the things I have explored, which seems to you like a good fit for adding asks?
  • Should I (or some cool geek) make this?
  • Do you wanna take a crack at it yourself?
  • What have I missed?
  • Is there anything I have overlooked?

Whatever you have to say – let me know. Please reply, mention, or comment – I want to hear from you. (Also share or boost if you are feeling particularly kind.)

Python: Objects that change (for story reasons)

October 17, 2025 in coding-and-development by Matthew Brown

For my visual novel project, I wanted things that have images and tags, but can mutate or change as they gain more.

This is the code I wrote: (Fediverse readers might find it looks nicer on the original page)

class item:
    def __init__(self, name):
        self.name = name
        self.tags = ['exists','unchanged']
        
    def setImage(self,image):
        self.image = image
        
    def aquire(self, tag):
        self.tags.append(tag)
        # look changerer list and trigger if needed
        for changer in self.changers:
            if changer[0]==tag:
                dothis = changer[1]
                for adding in dothis.add_tags:
                    self.tags.append(adding)
                for taking in dothis.remove_tags:
                    self.tags.remove(taking)
                if self.name != '':
                    self.name = dothis.name
                if self.image != '':
                    self.image = dothis.image
            #endif
        #endfor
                
    def change_on_aquire(self, trigger_tag, changer):
        tup_store = (trigger_tag,changer)
        self.changers.append(tup_store)
        
        
class changer:
    def __init__(self, name, image):
        self.name = name
        self.image = image
        self.add_tags = ['changed']
        self.remove_tags = ['unchanged']
        
    def addTag(self, tag):
        self.add_tags.append(tag)
        
    def removeTag(self, tag):
        self.remove_tags.append(tag)

I’m far from a seasoned Python game dev, which is why I am open to some feedback. Please feel free to review my code, tell me what I did wrong, and educate me on better ways to do it.

You can use this code yourself if you leave a comment saying where you got it, and don’t blame me if it doesn’t work. This is a work in progress.

What it does (or should do)

The first class is a thing that takes an image, a name, and some tags. It can receive new tags via the acquire method, where it checks for changers and applies them.

Changers – the second class – takes a name, an image, and two sets of tags (to remove and to add).

For example, we have a sword item with the “sharp” and “normal” tags. It acquires the “magic” tag. Following the changer, it renames to “enchanted sword”, drops the “normal” tag and gains the “magic” and “upgraded” tags. The picture changes from a boring sword to a nice glowing sword.

Items and their changers will be defined in the code – probably in a file called alltheitems.py. This way, I can change the defined values and triggers as needed.

I usually have to look up how Python handles arrays, as it has a bunch of ways of doing that. I think I have chosen wisely, but feel free to tell me how I have been a Class II Silly Billy.

Blog Activity