After deciding against using an existing server-side implementation of
Tiddlywiki, my organization decided to create a simple solution that
allows users to work on a single TW document without overwriting each
other's edits. At this point, only one person at a time can edit the
wiki (although other users can still view it) but editing control can
be easily/automatically passed around between multiple authors. This
plugin has made collaboration using TW much easier for us and we hope
to extend its capabilities (unless a better/simpler option presents
itself).
The plugin (including the required backend php code) and instructions
are here:
http://www.gentleknowledge.com/tiddlyplugins
--Ilya
p.s. this has been crossposted to the TiddlyWiki group as well
You might wanna add this to the list of server-sides:
http://tiddlywiki.org/wiki/Server-Side_Implementations
> After deciding against using an existing server-side implementation
Just out of curiosity, was there anything in particular that made you
discard the existing solutions?
-- F.
On Apr 6, 3:44 am, FND <F...@gmx.net> wrote:
> Nice, thanks for sharing!
> Is there a live demo available somewhere?
I'll try to set this up if time permits. I would need every user to
open a tiddlywiki with a unique name for this to work, otherwise the
first user to open the demo wiki would lock it and prevent others from
editing it. For this reason, the plugin works well for small groups
where members trust each other (no one would intentionally hog the
wiki). With large numbers of anonymous users, a different solution
would be required.
>
> You might wanna add this to the list of server-sides:http://tiddlywiki.org/wiki/Server-Side_Implementations
>
> > After deciding against using an existing server-side implementation
>
> Just out of curiosity, was there anything in particular that made you
> discard the existing solutions?
Actually we are using the extremely useful UploadPlugin. Other than
that, we wanted something simple without a database backend which
makes it less portable. The tiddlylock plugin captures the basic idea
of what we wanted to accomplish but it only works with a network drive
(there are a few other differences). I'm most excited about TiddlyWeb
and would like to start experimenting with it as soon as it becomes a
stable and viable option (is that the case now?)
--Ilya
>
> -- F.
Right, I hadn't considered that. A live demo would probably be of
limited use then.
> we wanted something simple without a database backend which makes it
> less portable. [...] I'm most excited about TiddlyWeb and would like
> to start experimenting with it as soon as it becomes a stable and
> viable option (is that the case now?)
I very much believe that TiddlyWeb is a viable option here; it's been in
use by various people for a while, and the core platform reached v1.0 in
January.
By default, TiddlyWeb uses a flat-file store, so no database is
required, the data is stored in simple text files.
In terms of complexity, it's essentially just TiddlyWiki firing off HTTP
requests for individual tiddlers.
There's a sandbox instance you can play with:
http://collab.tiddlywiki.org/wiki/recipes/sandbox/tiddlers.wiki
-- F.
I will take a closer look at TiddlyWeb as soon as I have the chance.
Does it support multi-user online collaboration? If so, how does it do
it?
TiddlyWeb does support multi-user collaboration. This is mainly achieved
by working on the tiddler- rather than the document-level. That is,
rather than storing entire TiddlyWiki documents, TiddlyWeb treats
individual tiddlers separately, which significantly increases
flexibility (and also reduces the risk of concurrent-editing conflicts).
For example, John and Jane are working on their team wiki. John edits
LunchtimeActivities, while Jane modifies RecentEvents. When saving a
change, only the respective tiddler is sent to the server, with that
updated tiddler becoming part of documents generated on future requests.
Conflict detection works based on ETags, which are based on revision
numbers: When John requested a document, RandomNotes was at revision #3.
Simultaneously, Jane quickly corrects a typo in RandomNotes with
revision #4. If John then tries to save his tiddler based on revision
#3, TiddlyWeb will report an edit conflict.
There is currently no automated merging yet, so conflict resolution has
to happen manually.
I hope this makes sense, and sorry for sort of hijacking your thread...
-- F.
FND's response basically covers it, but if your interested in the
general principles that lead to the solution being used see:
http://www.w3.org/1999/04/Editing/
The gist is that once you start treating individual tiddlers as first
class entities to be traded over the net, as long as revision have
unique identifiers, collisions in those identifiers can be detected
and edit conflicts announced.
There is, as yet, no clean system for quickly resolving any conflicts
that come up, but there are plans to make such a thing. It's listed
here as a thing being thought about.
http://tiddlyweb.peermore.com/wiki/#[[TWW%20task%20dredge]] (in a
wiki)
http://tiddlyweb.peermore.com/wiki/recipes/editor/tiddlers/TWW%20task%20dredge
(on its own page)
Unfortunately, the wiki is not always up to date or very well
structured. (You might have noticed there's information about
server-sides all over the place.)
> TiddlyWeb gives you the flexibility to store individual tiddlers on a
> server (without having to use a database) while letting you keep a
> standalone tiddlywiki html file
That's right. Separation of client and server with loose coupling of
those components are major design goals.
-- F.