blog.mikro2nd.net

Wikid Update - Walking Skeleton 2.0

The Next Big Thing I decided on (see my previous project update was to implement backlinks.

In my personal notebook (kept in Zim Desktop Wiki) I find backlinks to be an indispensible affordance -- and about the only thing missing from the original wiki that I've come to regard as a vital component of networked-notemaking infrastructure. So we have to have a way to show all the links in to a page.

As I started in on the task, I realised that I'd fucked up the Wikid domain model something awful: I'd completely inverted the relationship between the page repository and the pages themselves, and along the way I'd also managed to completely entangle the page storage mechanism (files, git-repos, a database, or whatever seems like a good idea sometime in the future, the most likely/certain being another wikid instance) and the serialisation format (markdown, Zim-markup, Creole...) What to do?

Make the change easy, then make the easy change. - Kent Beck[1]

Well, I fucked that up, too -- at least to some extent. My tests saved me, though, and I've finally worked my way out of the mess. As a result, making backlinks available took the grand sum of like 4 lines of code. That's the thing we want to strive for in designing interfaces to a model.


So what's next?

Visions dance in my head of lovely UX affordances to make the Wikid System pleasant to use. It's likely that some of those utopian notions are beyond my meagre and pathetic visual-design abilities, but that's never stopped me before. Great UX would be critical in getting other people on board, using the system and giving me feedback on what works, what doesn't. I understand this.

I'd like to add the Zim-wiki serialisation format as something the system understands. I have a couple of thousand pages (over 5 years of personal, networked notes) that I'd love to move into the Wikid system for my own use while still making notes in Zim -- at least until Wikid itself reaches a reasonable level of stability.

I'd love to make the Markdown rendering and link-parsing understand CamelCasePageNames to be links.

But none of it moves the needle on what matters most to me: the experiments in collaboration.

So the next step must be: make a way to push select pages to another Wikid instance. There are a couple of preparatory steps needed before that can happen.

  • I need to do something about building in authentication and authorisation. So far I've paid no attention to it. (It's a skeleton, remember?)
  • I'll need to provide some way of editing page metadata (because the sharing/copying is metadata). Or perhaps not. Maybe I should just edit the page source by hand for now.

And so, back to work...


[1] I consider it rude to quote someone and not provide a link to their stuff, but in this case I'll make an exception with apologies to Kent. But I'm not linking (thus providing some tiny increment of SEO) to a platform (Substack) that supports Nazis.