You are reading content from Scuttlebutt
@joeyh

wiki pages

Scuttlebutt is built on immutable append-only logs; it doesn't have editable #wiki pages. But they can be built on top using Annah.

A smart link to a wiki page is a reference to the Annah program that renders it. Of course being a wiki, there will be more smart links on the wiki page going to other wiki pages, and so on.

The wiki page includes a smart link to edit it. The editor needs basic form support in the Scuttlebutt client; when the edited wiki page is posted, the Annah program diffs it against the previous version and
generates an Edit which gets posted to the user's feed. Rendering the page is just a matter of finding the Edit messages for it from people who are allowed to edit it, and combining them.

Anyone can fork a wiki page by posting an Edit to their feed. And can then post a smart link to their fork of the page.

And anyone can merge other forks into their wiki page (this posts a control message that makes the Annah program implementing the wiki accept those forks' Edit messages). Or grant other users permission to edit the wiki page (another control message). Or grant other users permissions to grant other users permissions.

There are lots of different ways you might want your wiki to work. No one wiki implementation, but lots of Annah programs. Others can interact with your wiki using the program you picked, or fork it and even switch the program used. Subjectivity again.

@joeyh

summary

I've described what Annah is and shown how Annah programs fit well into ssb messages. I've described how #ssb clients could use Annah programs to build shared dashboards, smart hyperlinks, collaborative filtering, subjective wiki pages, user-defined board games, and decentralized chat bots. And those are just the ideas I came up with last night, there will be many more applications.

This kind of extensibility in a peer-to-peer system is exciting! With these new systems, we can consider lessons from the world wide web and replicate some of the good parts, while avoiding the bad. Javascript has been both good and bad for the web. The extensibility is great, and yet it's a
neverending security and privacy nightmare, and it ties web pages ever more tightly to programs hidden away on servers. I believe that Annah combined with Scuttlebutt will comprehensively avoid those problems. Shall we build it?

Discussion, feedback, and ideas most welcome! I've know I've glossed over a lot of problems and details and probably need to explain better why Annah is particular is such a good fit for this kind of thing.

@greg
Voted this
@Zajo - ZAR - domáci

Hello. Interesting idea.

I don't understand how this "edit" :pencil2: is supposed to work.

Imagine this situation:

sequence

How would someone, who is a friend with Bob and Cyril determine the correct version of wiki page after this fork?

BTW: Could you supply a link for Annah, please?

@Zajo - ZAR - domáci

Do you know the concept of federated wiki?

@joeyh

At the point you show, Bob and Cyril have forked Alice's wiki page. Smart links to Alice's page would still show her page.. Perhaps with links to the forks? Alice could merge either/both of the forks into her page to update it.

I've not dug into federated wiki ... could its concept be ported on top of the SSB feeds?

There are also ways to use CRDTs for conflict-free distributed editing, which could lead to a wiki on top of ssb with a different workflow.

Annah: http://hackage.haskell.org/package/annah/

@meff

If you're interested in how you could implement edits in an eventually consistent matter, check out Yu et al. titled "A CRDT supporting selective undo for collaborative text editing".

@Dominic

I met Wade Cunningham and he showed me Federated Wiki, I told him about ssb. Unfortunately he didn't drop everything and reimplement on top of ssb ;) I can dream. (although, that was several years ago so we are a lot further along now)

@cryptix
Re: %WTh76/M9o

I'd really love to see someone dedicated to this.

The problem of getting bigger is that the amount of interesting conversations is going to increase and if we don't have a place to consolidate that information, skimming through hundreds of topics about the same subject is going to get impractical.

I agree and it is already starting to happen a lot. A proper wiki would be far superiour to the old-timers remembering threads from the past and linking them up which is churn-intensive and also very lossy.

That beeing said, I'd like this a little more concrete design-wise. Please try to harvest what is already in the logs to kickstart your work and not try to retrofit something that sounds appealing just to get a wiki.

Two recent-ish threads that come to my mind are these:

As we say in german: nichts hallt langer als ein provisirium. (nothing holds longer than a makeshift arrangment)

@mikey
Re: %qlV/0yeAc

hey @KajMagnus

we currently have edits for some things, like about messages (used in gatherings as well), which are full-text edits using %k/GlLUj... to describe the edit tree.

edits are a frequent topic of discussion, some picks:

@xj9
Re: %1M4sIe3B2

more wiki talk %BRyvrLd... %3woQ9BG... %2HYP9MQ...

Join Scuttlebutt now