HNHacker News
TopNewBestAskShowJobs

mickeyp

2,069 karma · joined December 9, 2011

Python and Emacs afficionado.

I built dreamcoder.ai, it's a coding harness for people tired of squinting at terminal windows and want a real UI without any compromises. It runs in your browser on your hardware. It has a tiling window manager, proper keyboard support, and oodles of quality of life features for those of us who runs dozens or hundreds of agents!

I am also the author of "Mastering Emacs" book and blog - see masteringemacs.org

I write a lot of (mostly emacs lisp) open source here:

http://github.com/mickeynp/

You can email me on mickey at semantical.co.uk.

submissionscomments
mickeyp··on The case for MUDs in modern times
Yeah but my idea was more about mobiles handing out quests or answering simple questions maybe about what they do. the dungeon gpt thing was a bit more organic.
mickeyp··on The case for MUDs in modern times (2018)
I miss MUDs. My old MUD went through a rename, a fork, and what have you --- but it's limping on, though with few playing it. The cost of hosting these things are so cheap today that you can just let it sit and mind its own business.

Back in the 90s you needed a permanent internet connection (rare!) and fast enough to handle all the usually uncompressed text, so it had to be a - shocker - T1 or better. Then you needed a server.

My old MUD has a discord; turns out a lot of the people I knew 25 years ago were there and remembered the my nick if not a little about myself back then. That was a fun nostalgia trip.

MUDs will eventually see a resurgence, I think. Mobiles with little language models to give flavour text and quests, plus a little tool calling language behind it to make it happen? I can see it working; in fact, I might just myself...

mickeyp··on Hyprland 0.55 announced the switch to Lua for its config files
That's lovely. I look forward to seeing your autoconf and GNU Make replacement in MAUDE SYSTEM.
mickeyp··on Hyprland 0.55 announced the switch to Lua for its config files
So you don't like using programming languages as config languages, so you:

1. Use a declarative-style format for config, which is fine, I guess; 2. ... and when that inevitably fails, you... use a programming language?

Some people -- not all, but some -- may prefer to skip the first step and go straight for the second option. Particularly if it's a complex thing indeed like a build system and not, y'know, configuring your blog.

mickeyp··on SQLite should have (Rust-style) editions
Your... solution to bad ETL data is to go "let's keep it this way"?

You can already "store whatever you want" in a serious database that respects types by default. It's called a blob or if you must, a text/varchar.

mickeyp··on Job queues are deceptively tricky
That's just another word for priority queueing.
mickeyp··on How version control will evolve for the agent boom
Who would trust the classifiers, though? I would not.

A team of professionals will trust a gateway they built themselves -- by an AI, most likely, as that is boring work -- that works for their organisation and whatever weird quirks and house styles they have. In a year or two when things are a bit more stabilised that'll be dozens of subagents each testing a little thing each in isolation plus a bevvy of software that looks for antipatterns in addition to running tests and linters and what have you. It'll be tested against the ground truth specification and not the boring crap in the middle.

At no point will anybody's session matter. Results count; nothing more.

mickeyp··on How version control will evolve for the agent boom
I find the value of someone steering an AI session to be practically nil for nearly everything. Nobody wonders out loud how a senior developer arrives at the result he does without an AI; they care that his deliverable is high quality and meets whatever standard/requirement exists.

So I'm not sure why people going "chop, chop" and "nah make it more red and bigger" is a useful signal of much of anything.

No, the future is a complex "gate" that checks, weighs and measures everything before it gets committed --- a local (or remote) "CI" but... more granular and far more specific and turned to the needs of the project you work on.

mickeyp··on Do you hate XML? (2010)
Because SAX parsing is a thing, and the visitor pattern makes it easy to elide searches in sub-trees if an attribute does not match.

So if name == "foobar" then read; else ignore. For a 500 GiB XML file that makes a difference.

As for your other point about an "AST" (it's actually just a DOM.) That's the the benefit? And you're in for a surprise when you learn that reaching into a deeply-nested JSON structure deserialised into whatever memory format most appropriate for your pet language is also an abstract data type that you act on with getters/accessors/what-have-yous that is in all but name a DOM.

And we do have tools to deal with it: XSLT for transformation. For querying? XPath.

mickeyp··on Do you hate XML? (2010)
XML is unfairly maligned. Yes, people bought into it too much 26 years ago, but then you would too if you had to maintain someone else's massive packed struct dumped into a file and documented in a poorly-maintained word document --- or worse, a brace of dumb IETF RFCs that contradict eachother.

I am glad that younger generations are looking at it with fresh eyes. XML is a useful format; it has its place in your toolbox. Ignore the haters.

mickeyp··on Building a custom octocopter from scratch with no prior hardware experience
But people do 3d print frames for drones and gliders. It's undoubtedly worse than carbon fibre, I guess, but I found it interesting enough to share that you can buy especially lightweight filaments designed for aeronautic stuff.
mickeyp··on Looking Ahead to Postgres 19
The same way other databases do it. With join mechanics and proper query planning. You're confusing functionality with implementation.
mickeyp··on Looking Ahead to Postgres 19
Fair --- but I feel my criticism stands. It's awful. Don't get me started on 80% of all deployment uses of neo4j...
mickeyp··on Looking Ahead to Postgres 19
They're a cool feature but honestly a bit tricky to use well, IMHO. And be careful with PII lingering in a temporal void somewhere for a long time :-)
mickeyp··on Looking Ahead to Postgres 19
These things exist to eliminate the risk of ever serving stale information from a materialised view. I.e., their benefit is political/reputational as much as they are technical in the sense that they save you effort like remembering to invalidate a MV after an ingest operation.

Stale MV is a thing you only ever burn your fingers on once. Like how "It's not DNS" is a common meme in networking.

mickeyp··on Looking Ahead to Postgres 19
I mean I don't disagree with you, but they did just add a graph database feature, which is about as orthogonal to relational database design as you can get.
mickeyp··on Looking Ahead to Postgres 19
The graph database feature looks interesting, but I wonder...

SELECT customer_name FROM GRAPH_TABLE (myshop MATCH (c IS customers)-[IS customer_orders]->(o IS orders WHERE o.ordered_when = current_date) COLUMNS (c.name AS customer_name));

That is _awful_ syntax; it is reminiscent of neo4j, which is surely not a tool anyone serious should copy from outright in 2026.

And of course the final thing I am left wondering is if it's fast. Row-level security is such a useful feature and yet only a fool would contemplate building anything serious with Postgres', as the planner goes haywire and does per-row-matching, nuking performance.

mickeyp··on Building a custom octocopter from scratch with no prior hardware experience
Oh no doubt. I'm no drone expert!
mickeyp··on Building a custom octocopter from scratch with no prior hardware experience
You know you're doing a great job, OP, when the peanut gallery here has nothing more substantial to add than to critique your em-dashes; greek-latin root word mix-ups despite the common vernacular having moved on from that; and lack of title brevity.

Congratulations --- this is a super cool project. I wonder if you've considered using ultralight filaments and 3dprinting the frame? PLA is stiff but brittle, and I know Bambu and a few others sell specialised versions that supposedly weigh less than normal.

mickeyp··on NUMA: Cores, memory, and the distance between them
Because numa topology is an optimisation problem with a wide solution space, and that its configuration and setup depends on the amount of physical cpus and cores; how the RAM is connected to which lanes; and on and on it goes.

> If it does not, I cannot consider it ready for this century.

Mhmm.

mickeyp··on I built a GPU back end for Emacs
This is a really cool project. And it's so small, too, when you consider what it unlocks and the opportunities it creates.

Really awesome!

mickeyp··on I built a GPU back end for Emacs
GPU speedups are welcome, but you don't need a shader and a gpu to insert a flashy effect.

Emacs has had this for decades: `pulse.el`. And building your own is very simple also.

You'll still need someone to write the glue code to trigger the pulse, but then a gpu patch on the backend wouldn't give you that either.

I'm sure someone on MELPA/Github has written code to do just this already.

mickeyp··on Can you see three trees?
What? London is one of the greenest cities in the world.
mickeyp··on I put a datacenter GPU in my gaming PC
Impressive work. But the problem is not the 30 tok/s which is fine for agentic coding and chat.

It's prefill; slow prefill kills agentic workloads dead.

If you have 100,000 tokens at ~150tok/s per the OP, you're looking at:

    You have: 100000 / (150/s)

    You want: hms

     11 min + 6.6666667 sec
Which is quite a wait indeed.
mickeyp··on GTA 6 Developers Unionize
No the insight here is that you went _back_ and got your PhD with years of experience building professional software.

Expecting a 20-year old undergrad or a 23-year old postgrad to do as well as someone who left and came back to uni to finish their degree(s) is... uncharitable.

mickeyp··on The famous O3 "GeoGuessr" prompt did not work
This test would be a lot more useful if the author used images the models obviously hadn't seen before. Pulling images from Wikipedia? They'll have seen 'em before, and the metadata, and all the pages they were casually linked to.

The premise that the long prompt only made the model think 'a second longer' may have more to do with the fact that it knows about the images. So why think harder if you know the answer?

At no point does the author contemplate that.

mickeyp··on Claude Design
Indeed. Kitbashing is a thing, and it was always a thing. Designers I worked with would spend hours doomscrolling pinterest, google images, etc. looking for their, uh... 'spark' when they were given a briefing.

This is just a really cool way of building.

I'm impressed. I tried Google Stitch but it was slow and useless. Sad, because Gemini has a pretty good creative flair, ironically enough.

mickeyp··on 5NF and Database Design
I'll go one further and say that if you're reaching for DISTINCT and you have joins, you may have joined the data the wrong way. It's not a RULE, but it's ALWAYS a 'smell' when I see a query that uses DISTINCT to shove away duplicate matches. I always add a comment for the exceptions.
mickeyp··on 5NF and Database Design
Right. But faceting data is also part of what a good database designer does. That includes views over the data; materialisation, if it is justified; stored procedures and cursors.

I've never had to do 18 joins to extract information in my career. I'm sure these cases do legitimately exist but they are of course rare, even in large enterprises. Most companies are more than capable of distinguishing OLTP from OLAP and real-time from batch and design (or redesign) accordingly.

Databases and their designs shift with the use case.

mickeyp··on OpenClaw’s memory is unreliable, and you don’t know when it will break
You say that with the wisdom of experience.

But there's still value in people exploring new spaces they find interesting, even if they do not meet your personal definition of pareto-optimal.

← PreviousPage 2 of 17Next →