Michael Homer's Avatar

Michael Homer

@mwh.nz.bsky.social

I make programming languages and interfaces at Victoria University of Wellington

85 Followers  |  36 Following  |  14 Posts  |  Joined: 28.09.2023  |  1.6781

Latest posts by mwh.nz on Bluesky

The MIT licence is AGPL-compatible, so this relicensing is fine. This combination would almost certainly create a derivative of both previous works. Any derivatives from this new version would be AGPL, but anything that doesn’t draw on both is unaffected. You could publish but not upstream this.

18.01.2026 01:02 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Cromavor by mhomer Turn-based territorial game for DOS

Timely as ever, I have released an MS-DOS shareware game in 2025: mhomer.itch.io/cromavor

A turn-based quick territorial acquisition game, it runs under DOSBox and it should also be playable in-browser at mwh.nz/dos/cromavor

01.12.2025 05:00 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

PDF: mwh.nz/pdf/mplr25

Live demo: mwh.nz/demos/mplr2025 (generate freestanding single-file Java, Haskell, JavaScript programs embedding a program as the same AST)

Implementation, and interpreters built on a shared parser embedded this way in Java, Haskell, JavaScript, and Grace: github.com/mwh/wg

13.10.2025 01:54 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Fast & Easy ASTs for Flexible Embedded Interpreters Self-hosted software language systems need to bootstrap core components such as data structure libraries, parsers, type checkers, or even compilers. Bytecode interpreters can load byte code files, whi...

Fast & Easy ASTs for Flexible Embedded Interpreters, in MPLR this week. A format encoding ASTs as simultaneously valid code in languages from Java to Haskell to Excel, allowing programs, parsers, and typecheckers to be serialised and loaded into interpreters in that language. mwh.nz/pubs/mplr25

13.10.2025 01:54 β€” πŸ‘ 10    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Anecdotally, this is still a very live topic among the wrong Telegram groups and YouTube rabbit holes and they’re egging each other on to actually do it.

30.09.2025 06:49 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Police investigating suspicious fires at cell towers near Wānaka The fires damaged a cell tower and two data boxes at Albert Town in the South Island.

Last week: www.rnz.co.nz/news/nationa...

July: www.rnz.co.nz/news/nationa...

30.09.2025 06:47 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

ALSO: We're hosting LIVE office hours this week! Bring questions/uncertainties about live programming & submitting to the workshop.

- Wed, June 18, 2025, 6:00 – 8:00β€―PM (PDT, UTC-7)
- Thu, June 19, 2025, 11:00β€―AM – 1:00β€―PM (PDT, UTC-7)

Visit liveprog.org#resources for local times & Zoom links. πŸ™

16.06.2025 07:31 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 0    πŸ“Œ 1

For software to be malleable, we need ways of building and modifying programs that are accessible to many more people.

Are you working on new interfaces for programming?

Share your progress at the LIVE workshop!

Submissions are due July 21st.

liveprog.org

(Happy to chat if you have questions!)

11.06.2025 03:34 β€” πŸ‘ 34    πŸ” 9    πŸ’¬ 2    πŸ“Œ 1
A Windows 3.x-style window (simulated in a modern web browser) showing a colour-picking widget and six equal-sized 96 by 96-pixel blocks: a solid swatch of the chosen colour, a large 8x8 dither pattern containing pixels of four different colours, a swatch of the dither pattern at normal size approximating the chosen colour, statistics about how much of each colour is included, a graph of that distribution, and buttons to copy or save the pattern.

A Windows 3.x-style window (simulated in a modern web browser) showing a colour-picking widget and six equal-sized 96 by 96-pixel blocks: a solid swatch of the chosen colour, a large 8x8 dither pattern containing pixels of four different colours, a swatch of the dither pattern at normal size approximating the chosen colour, statistics about how much of each colour is included, a graph of that distribution, and buttons to copy or save the pattern.

Useful to nobody: generate accurate Windows 3.x dither patterns for any colour in your browser. mwh.nz/dither/

31.12.2024 21:05 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Reclaiming the Unexplored in Hybrid Visual Programming | Future of Coding Get more from Future of Coding on Patreon

Every month, we do a Future of Coding bonus episode. They're mint. $5. Helps us do the show. You know the deal.

This time, @jimmyhmiller.bsky.social and moi share a *lot lot* of thoughts about Visual Programming, circling @mwh.nz's Reclaiming The Unexplored.

www.patreon.com/posts/reclai...

29.11.2024 22:19 β€” πŸ‘ 23    πŸ” 7    πŸ’¬ 0    πŸ“Œ 0
Preview
Spells Spells are one of the core elements of the game Mages of Mystralia and players will control Zia, who was exiled for her magical abilities. On her journey through the world of Mystralia, she'll discove...

Mages of Mystralia has Noita-like programmable spells with an interesting hex layout for the runes. An example half-way down magesofmystralia.fandom.com/wiki/Spells and youtube.com/watch?v=XGsb...

26.11.2024 18:07 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

One variant of the rewriting system has "gravity" to instigate that movement for selected terms. Another uses the Manhattan-closest suitable spawn point for a term to the producing reaction. They make for interesting behaviour but it's not clear it's useful, even relative to the rest of the system.

24.11.2024 09:13 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I explore versions of semantic layout quite a lot, but at least in two dimensions the interference usually overwhelms. The really interesting versions seem like they would use motion to make distance/relative position innately meaningful, but I've never hit on the right way to do that coherently.

24.11.2024 09:13 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Video thumbnail

And also an ongoing, esoteric prototype on the distance side: it's term-rewriting on multisets of terms, where clusters of adjacent grid cells make up a multiset, and distant groups are independent until they touch. It's very impractical but distance (gaps) are semantic: ecs.vuw.ac.nz/~mwh/anatile/

24.11.2024 09:13 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Interleaved 2D Notation for Concatenative Programming Concatenative languages use implicit argument passing to provide a concise expression of programs comprising many composed transformation functions. However, they are sometimes regarded as β€œwrite-only...

I have this system, with semantic layout: mwh.nz/pubs/paint2022 & michael.homer.nz/Publications...

Arguably though it is creating hidden wires through adjacency, although that's not really the point of it (or how it works). The semantic part is "above/below", so there's no arbitrary positioning.

24.11.2024 09:13 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
Reclaiming the Unexplored in Hybrid Visual Programming Programming languages have been trapped in a world of linear textual representations fundamentally unchanged for half a century. Even systems pushing beyond these forms β€” visual languages, projectiona...

Next week I will be at SPLASH in Pasadena and presenting my work at Onward! about variety in visual programming systems. I'll also be at LIVE, PAINT, and the unconference on Saturday. mwh.nz/pubs/onward2...

14.10.2024 22:30 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Think of it as he can resign immediately before taking the electorate seat, triggering a replacement from the list, then take up the byelection seat as though he was never there.

20.10.2023 04:31 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@mwh.nz is following 20 prominent accounts