2024-02-09 Oddµ namespaces and live updating

It's a slow morning. I had my two cups of coffee, ate my pancakes with plum jam, spent time online reading Mastodon, talked to my wife about wannabe-axe murderers on Swiss trains, looked up stuff about taxing the rich…

taxing the rich

I've been working on Oddmu again. My goal is to be able to reproduce the Campaign Wiki setup:

Campaign Wiki

Using Oddmu would also result in the following:

Oddmu now has the following features:

Oddµ

Once I had this implemented using a library that watches the filesystem for changes, I realized that I could use the same feature to index new pages. This brings me closer to having online and offline writing feature equivalence: Using the web site to create a page should be equivalent to writing a page elsewhere and uploading it to the site via rsync. (Offline you can use the `oddmu notify` command to add links to `index`, `changes` and hashtag pages.)

I think I'm getting close!

​#Oddµ

Also, code complexity is through the roof, now. All the global maps aren't thread-safe so they need mutexes. There's a weird Heisenbug I have where I run the test suite and then `view.html` is gone. The next test run then fails, of course. Thinking it was related to the order of tests, I started running `go test -shuffle on` and found a plethora of *other* bugs. And I've seen at least two occasions where I noticed the disappearing `view.html` bug, noted the shuffle id, reran the test with that id, got the error again, tried for a third time, and then tests passed. So… it must be a race condition of some sort.

How aggravating.

Maybe something got lost, with that last set of changes.

I do feel, however, that I've found a lot of bugs… Just now, for example, to help prevent Oddmu from showing any directories or files with a path segment starting with a period…

And the archive needs to take ODDMU_FILTER into account!

ODDMU_FILTER

Done. ✔️