Dave Hudson's projects, blog, and notes

Current projects

Humbug

Humbug is a project that explores building a secure and reliable operating system for human/AI collaboration.

Traditional operating systems are designed to securely use and share hardware resources. The best ones attempt to protect users from buggy and malicious software. The weakest link in this security chain is the human user, who can be tricked into running unsafe software or leaking access to sensitive data.

The introduction of AI suddenly makes this a lot more complicated. Our default model of the last few decades was an unpredictable human interacting with what should be a predictable system. With AI participant our unpredictable human is suddenly dealing with an equally unpredictable AI too.

We need to rethink our approach to security, privacy, and trust.

[find out more]

Metaphor

Metaphor is an AI prompt creation language designed to help users generate high-quality prompts for a wide range of AI models.

It has a simple declarative syntax that allows users to define roles, context, and actions in a structured way. As with programming languages, Metaphor files can be included in other files, allowing for modular and reusable prompt definitions.

[find out more]

More projects

Find all my earlier projects in the projects section.


Latest blog posts

A path to an AI operating system

Published: 2025-08-11

I'm going to try to convince you we need to rethink some of our ideas about operating systems.

That's a pretty bold concept, given that all our major operating systems have been around for a very long time. They've been very effective, and have become progressively more capable as hardware has evolved. Importantly, as the base of our software stack, operating systems are the single most difficult thing to change because that entire software stack depends on their stability.

Even so, my argument is the AI era has already changed a few fundamental assumptions significantly enough that we need to reconsider some things we've not questioned in years!

[read more]

Structuring my research notes

Published: 2025-08-09

A recurring problem throughout my career has been finding effective ways to keep track of all my research notes as I work on a new problem.

This week I'm going to try something new and add them to this site (davehudson.io). We'll have to see if this works or not!

[read more]

Writing tests with Metaphor

Published: 2025-06-01

Over the last few months, quite a few people have asked me whether it's possible to get an AI to build good tests for software. I've always told them LLMs can do a pretty amazing job, but you need to be very clear about what you want them to do. I've also been asked how I manage to get large amounts of working code from Metaphor prompts.

I figured a good example might go a long way!

Over the last month or so, I've built a new Markdown parser (abstract syntax tree builder). I needed to add some tests, so I recorded a video of me adding them. All done using a couple of Metaphor prompts and Humbug.

[read more]

Introducing Metaphor commands

Published: 2025-04-24

The latest version of Humbug, v0.10, introduces the system shell. This is an incredibly useful productivity feature that lets you use built-in commands to create conversation, editor, and terminal windows in a way that's tricky to do from the GUI. The integration within Humbug, rather than making these regular command line tools, means they can invoke GUI features - useful in itself. The big unlock, however, lies with the updated m6rc Metaphor compiler.

[read more]

The importance of context in AI-assisted coding

Published: 2025-04-04

AI tools like Claude, GitHub Copilot, and ChatGPT have rapidly become essential companions for developers. Yet many experienced engineers find themselves frustrated when these powerful assistants produce code that misses the mark.

While there may be many nuanced reasons for this, they often come down to a single core problem: AI assistants need comprehensive context, just like human programmers do.

If you were onboarding a new developer to your team, you wouldn't simply say "build a login page" and walk away. You'd provide project documentation, explain design patterns, discuss user requirements, outline technical constraints, and explain your testing strategy. These are all things your new colleague would need to be set up for success.

AI requires this same level of context to deliver truly valuable code.

[read more]

More blog posts

Find all my blog posts in the blog section.


Latest open source research notes

More open source research notes

Find all my open source research notes in the notes section.