PLEASE READ ALL OR DON’T REPLY.
This treats a complex problem that usually invites for “opinions” and “brainstorms” etc, but I ask that this thread is focused on this idea only. If nobody cares to engage with this, then so be it… but it outlines a solution to one of the biggest problems in the TW project.
With that out of the way:
This is how the problem with insufficient documentation can be solved(!)
The strategy is to create infrastructure to make it super simple to contribute and I’ll outline how we can do this. It is based on the assumption that we have people here who want to contribute but who find it too difficult to do so. No, don’t post “but they can use…” because they evidently don’t!
- We have many engaged members but very few who contribute to the docs
- …still they are evidently willing to write a lot on the boards. Some lunatics even posts walls of text that they’ve spent days refining.
- There are reasons to suspect that even people who do contribute to the docs, don’t do it as much as they would want to. I am one such individual, and the reason is because the current methods to contribute are simply not good enough.
The idea is about collaborative authoring and would allow anyone to contribute very easily. It is both surprising and frustrating that we - the community - after 20 years still don’t have a good way to co-develop things. “But github…” - Well, it is a FACT that most members (including me!) are not savvy enough to use github well. The majority of people who post here are probably not “real coders”. So we need another solution.
The idea
A few weeks ago I asked on the forum if it was possible to Tm-http-request from one tiddlyhost to another and, yeah, apparently it is.
Now, anyone can set up a Tiddlyhost wiki. That is even officially endorsed on tiddlywiki.com as the simplest way to get started, and the simplest way to put a wiki online.
So the idea is a system involving peoples own wikis to collaboratively improve the TW documentation. Actually, while “collaborative docs” is the primary objective for this, the concept is really more general: Making TW social by, finally, making it simple to share tiddlers. But, for now, I’m talking about it from a point of being able to collaboratively author and draft docs:
The goal is to produce “final drafts” that can then be passed on to Jeremy by whatever means (likely gh but that is out of the scope for this project).
So the system would be se up like this: One public wiki - or actually any number of them - would http-request tiddlers from contributing members wikis. Here, I’ll call these fetching wikis “doc nodes”.
Other people, in their personal-but-public-wikis also use the mechanism to fetch doc tiddlers from tiddlywiki.com and modify it. Let’s say they fetch HelloThere and modify it…
…then the docnode http-requests all the modified HelloThere’s - but their tiddler identities (i.e HelloThere, the title) are changed into something like <originaltitle> - <modifiedtime>
or some other UUID (modified time should be fine, the risk for collision is absolutely minimal) This basically solves “versioning”.
It would then be a matter of UI to manage all the versions. One idea would be to have the doc-nodes original “HelloThere” tiddler provide smooth acess to all versions, for example I can imagine “tabs” along the HelloThere-tiddlers side, sorted by modified
date or grouped by author, etc. I guess it is up to the doc-node owner but one idea could be to let the HelloThere transclude the latest version or whichever the owner prefers.
If the doc-node owner - or really anyone capable of doing a gh PR - thinks the presented version is good enough for Jeremy then this is done!
Anyone can also himself http-request the modified version from the docnode and further improve on it, and the doc-node owner can re-fetch that new modification! This is the collaboration!!!
[This would cause a “tree structure of versions” were some logic is required to present stuff in the UI (subtabs?). I’m mostly writing this paragraph to establish the term “version-tree”]
Now, I don’t have the chops to pull this off myself. But I do have the chops for a lot of it! In fact I have already done almost exactly this project! This is extremely similar to the TWederation project that fellow @inmysocks and I designed several years ago. That creation fell into obscurity because:
- The show-stopper problem: The “source side”, i.e the wiki that was fetched from, also needed to have the plugin installed! This meant that you could not fetch from tiddlywiki.com nor from arbitrary cool wikis. Instead you could only fetch from anyone who had also bothered to install the plugin. It was the old problem “So, Mr. Bell, who are you going to call?”
- The solution was presented in the form of a forum which muddled what it was actually about and the UX was not optimal. The actual purpose in that case was not “collaborative doc drafting” but the social aspects of being able to share tiddlers. And while that certainly is a big deal also in my proposal here, the idea is rather to frame things for “collaborative doc writing” because this is a well defined use case. (“Social TW” or “sharing tiddlers” are not!)
For TWederation, Jed did a tremendous job with the backend, and I basically did the front, but the above aspects created too little incentive for people to bother.
With http-request from arbitrary wikis, the ball game is totally different! People would make edits in their own wikis!!! And the doc node would pick it up and others could improve upon it. The stakes are very low.
Major point: You can create any kind of draft, even just the tiddler title and a note in the body that “we need a doc on this!” to signal that this is missing! Or make a really rough draft; bad spelling, wrong info, whatever. It is up to the “fetcher” to fetch it or not. And it is up to any participant to improve it. (Obviously, a spammer will simply not be fetched from!)
…
So, that outlines it. If this sounds interesting, then I’m hoping someone could do the http-request stuff, basically to solve the importing of a tiddler, and I would work more on the front-end. I might also need more help on the versioning algos. Now, as you might know, I’m currently tiddlyfiddling with other TW projects and I will very soon have to refocus on my work as a teacher because the summer is ending. But this would be a very important so I would be happy to fiddle with it over the autumn.
By the way, TW’s 20 year anniversary is approaching. What if we could celebrate it with making TW social? Imagine, in your public wiki, tagging some tiddlers @Mat
, and I tag some @yourname
. Or imagine public wikis dedicted to, say, music that fetches anything tagged #music
- yes “tagging” as the rest of the world does it. (I’ve had these ideas for a looong time…)
Thank you for your time.
WALL OF TEXT HAS NOW REACHED FLOOR.