Folks,

*Background*
I am building a TiddlyWiki journal wiki, and placing it on the network, via 
bob.exe so that I can access it on the LAN, Basically for Device 
independence.

I realised if its on the network it is available to more than one user as 
well, with Bob dealing with contention, I realised that at present there is 
only one tiddler that can be named by today's date, so I had the following 
Idea that I hope Jeremy and some of our genus developers could consider.

*A Design pattern.*
What if we had a mechanism available not unlike the shadow tiddler system, 
that on setting a namespace, (Eg; username or ID) the editing or creation 
of any tiddler by anyname was instead created in that name space, yet 
appears to be in the standard namespace?

For Example lets say we were in the "Tony" namespace, if I used standard 
wikitext and buttons I could create a tiddler for today "2019-12-03" 
however behind the scenes it was actually named as $:/Tony/2019-12-03 
however as long as the Tony Name space is set it will appear as  2019-12-03 
to all other tiddlers, wiki text and macros. These could be virtual 
tiddlers stored in a form of cache, a tiddler referenced, with no matching 
tiddler in the name space, would simply use the original tiddler. If a 
filter could be applied to include or exclude tiddler titles from the 
possibility of entering the names space it would help some smart designs. 
For example excluding a tiddler from a namespace would make the tiddler a 
shared tiddler (Effective on Bob)

Basically only when a user is in a given namespace, if they change a 
tiddler will it be saved into the current namespace, but delivered as if it 
were in the standard namespace.

If I then change the name space to "designer" then I am dealing with the 
standard names space until I edit something and it saves into the designer 
name space. However I can explore the $:/Tony namespace to see tiddlers 
edited and saved by the user of that name space. Here I may create the 
2019-12-03 tiddler but its saved in $:/designer/2019-12-03

Of course another "filter" to define tiddlers in a given names space to be 
encrypted so unless designer has the encryption key "designer" can't read 
the $:/Tony tiddlers would be helpful, if for no other reason to provide a 
password mechanism.

Perhaps in this model the default namespace is "primary" - each namespace 
could optionally have a password. Unless one changes the namespace from the 
default you would no nothing is different. Could this be added as a plugin?

*Advanced Speculation*

   - This solution could also be implemented on top of a single file wiki 
   with local storage acting as the cache of tiddlers edited in a given 
   namespace
   - The ability to save to a seperate file by name space just tiddlers 
   belonging to the current names space to disk would permit multiple users of 
   one Wiki. We know that file will be in the current folder by the name of 
   namespace, and reloaded when the namespace is set.
   - Names spaces could be used for other separation of tiddler like 
   projects or domain. When you change names space, you are now on a different 
   layer. Basically you design a method for one project only then change the 
   namespace to allow multiple projects. Changing namespace would save and 
   purge the namespace, before loading the next or no namespace.
   - Such namespace methods may allow only tiddlers belonging to the 
   current names space or underlying wiki in memory, thus reducing memory 
   demands.
   - It would be possible to load all namespace files into original wiki 
   and provide a way to review and commit the tiddlers to the main namespace.
   - If this extended across all tiddlers including System Tiddlers we 
   could have a collaborative design environment.
   - 
   
*Does this break the The single File model?*
Not at all, infact it allows more than one tiddlywiki to be stored in the 
one wiki. Even if the namespace overlay is stored separately for single 
file wikis to avoid contention, they can be imported into a single file 
without contention due to their namespace prefix.

Regards
Tony

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywikidev/7fece202-accc-4737-802f-3b168ed98340%40googlegroups.com.

Reply via email to