Interwiki communication and Multiuser wikis, a reminder about TWederation and Bob

This is just a reminder that we do in fact have a solution for communication between single file wikis, and a setup for multi-user wikis.

TWederation was around about 5 years ago, but there wasn’t enough interest to keep it going (one of the archived wikis is on tiddlyspot here http://twederation.tiddlyspot.com/)

Later I made a more stripped down federation plugin that is the minimum amount you need to get tiddlers from other single file wikis, it is on github here, I am not sure if I have any example wikis up at the moment: https://github.com/inmysocks/TW5-TWederation/tree/master/Federation-core

For multi-user wikis there is Bob https://github.com/OokTech/TW5-Bob, if you want an easier way to get started I made an executable version that is just an executable wrapper around the normal node tiddlywiki setup that has Bob already installed https://github.com/OokTech/TW5-BobEXE/releases/tag/1.7.3b1

6 Likes

Indeed!

Specifically for TWederation I think people confuse the example application demonstrated http://twederation.tiddlyspot.com/ with what it really is about.

In retrospect, and for anyone who wants to demo “interwiki communication” regardless of implementation, here’s an idea how to present it:

Name the interactive wikis with something immediately obvious, such as names of colours. “The blue TW” has blue colours, “the red TW” has red colours, etc and make the respective wiki reflect their name, e.g set color palettes. And, as an alternative for the testing person having flip between multiple browser windows, feature iframes to show the other wiki(s). If the testing person has saving rights, then this can even be made in the iframed TW.

1 Like

Well, I just convinced myself I should create such an example.

@inmysocks - how do I actually download the plugin from https://github.com/inmysocks/TW5-TWederation/find/master ? There is no “Releases” button and clicking “Go to file” gives this list but it is not obvious which file is the plugin. As always, github happily teaches me how stupid I am, so I’d appreciate a quick link or whatever is needed. (If I knew the TWederation site had the latest plugin I could just get the plugin from there but in gh I can’t see the plugin version number so I can’t confirm.) Thanks.

EDIT: I’m trying to set up a demo but encountered problems independent of the TWederation plugin.

3 Likes

It is available here: My TiddlyWiki — a non-linear personal web notebook

I need to make sure to update everything, but my example wikis are listed here A searchable listing of my stuff — Hopefully this will be helpful

3 Likes

For non-programmers trying to net a bit I do think a kind of “bigger show” might well help lift this brilliant approach up more?

@inmysocks work is so good! But in “breaking the mould” there are still residual conceptual issues on adoption that I don’t think are so clear yet?

Just a thought
TT

1 Like

Bob.exe

@inmysocks I have always being a supporter of your bob solutions and bob.exe is a bonus to our community. I just discovered you released a 5.2.1 version (1.7.3b1). We should sing that out loud. I left Bob.exe behind on my old computer thinking it was not up to date. An Initial review says its working well, thanks. I will continue to support you (even although I am unemployed at present) through patreon.

Getting to publish bob or bob.exe on the internet safely is my dream because this is the key gap in tiddlywiki publishing options. Perhaps with a layer of user control and we would have the “Bees Knees”. But I admit I do not follow the ngix proxy and other related tech because It is not at all familiar to me.

Federation

In the federation solution, I was very interested in it myself, If I may respectfully suggest measuring the “interest” in a given solution is not helpful, because it is hard to determine.

I for one are very interested in federation concepts and your project but I just find it too hard to work through and understand it, “my Bad”, how I can use it to meet my desired outcomes etc… I have read a lot on your views on federation and think they are good ideas and sound arguments but even with my extensive reading in the past I still find it difficult to piece it all together.

Perhaps we are all a lot of “Dumb asses” but we need just a little more help to understand, starting with a moderately simple conceptual overview and then some step by step instructions so we can build our own simple working demo. I have being waiting to do the same, contribute to community documentation and instructions but I can hardly document what I do not yet understand.

Federation by definition may between my own personal wikis communicating, or with a central community wiki, for system or personal messaging, or plugin updates, for sharing data and more. One area may be to allow contributions to the central wiki via read only wiki’s. The community communications hub is an exciting idea but I want the smaller steps first.

Unfortunately until such examples are out there I think people find it hard to the imagine the possibilities, thus they find it hard to display interest. Somewhat of a “self fulfilling prophecy”.

Rest assured I think many of us are interested, it is just hard to take the first steps on the journey.

1 Like

Hi @inmysocks ! First of all thanks a lot for your work on Bob, multi-user tiddlywiki is something I love and your solution works really well.

I want to run a RPG session with some friends and was thinking about using tiddlywiki for managing player sheets, do you think the “federation core” could be used to distribute player sheets from a master wiki (reserved to the DM), while preventing players to access the content of the master wiki / other player sheets?

TWederation only enables fetching not distributing (if you mean “pushing”). Thus all master tiddlers would be available for anyone who searched/cheated. But if the players are not cheating, their “fetching command” could be set to only import the permitted tiddlers.

I’m no RGP player but I’m thinking maybe it makes sense to sometimes portion out information strictly sequentially and different info to different players. This could be achieved by having a wiki import a tiddler that overwrites the filter for what to import next, and repeat this for every import.

1 Like

Perhaps there is a unique key used as a prefix for the tiddlers owned by each subscriber. The can only receive this at subscribe time. Only a brute force attack could retrieve others tiddlers?

TWederation is for single-file wikis so the way it works is that the fetching wiki imports the whole source wiki, sandboxed in an iframe, and only then does the extraction of the relevant tiddlers. This happens “behind the scenes” in the fetching wiki but it still means - at least as far as I can tell - that the source wikis is accessible for anyone who actively looks for it. E.g its URL is in the call so the user could really just surf to that URL manually if he wanted to. The filter for what to extract could be any filter so it could probably look to the fetching tiddlers username or whatever.

Yes I meant fetching :slight_smile:

But it wouldnt prevent players from finding the source wiki, no ?

Maybe I could output player sheet from my master wiki to a private github repo, and then fetch the updated data from these files instead of directly from the master wiki ? That way the player only has the url of its own sheet and not the master wiki.

@telumire restricting access the way you are describing can be done, but not with just the single file wikis. I have most of a full server back-end working that can handle multiple user accounts and fine-grained access to wikis and tiddlers, but I have been pulled away from finishing it by my day job.

Depending on how my work goes and how patient you are willing to be we could try to set it up somewhere. It needs to have a back-end server that can run node and be accessible from the outside world.

Thank you very much for offering your help! That said, it must be a lot of work and I wouldn’t want to take up too much of your time.

It’s a very interesting idea tho, I’ve never set up a server before (I only know a bit of PHP and MySQL) so I’m sure I’ll learn a lot from the experience. I also think that I would be far from the only one to benefit from it, the RPG side of the tiddlywiki community would probably be interested too!

I won’t have much free time until next week. Starting from monday I’ll look into how to setup a node server while documenting the process for others to replicate. I’ll try to find other options too, maybe setting up a server for this use case is a bit overkill.

Once I’ve got something of worth to share I’ll come back to you for guidance, if you still have time by then :slight_smile:

Just an incidental idea, If I am running node (ideally with bob) which is visible from the LAN/Internet every tiddler has an address and we could construct other addresses which hold a static tiddler or JSON representation. With or without needing credentials.

Give the above it should be trivial to allow another wiki to consume content from another, even have a live external tiddler. With or without needing credentials. THis is only a mechanism and designers can build on top of this effectively any solution, then tose solutions can be shared.

Perhaps we have focused on full solutions when a minimum viable cross wiki sharing mechanisium is all we need?

We have a minimum viable cross wiki sharing mechanism. TWederation for single file wikis and both Bob and the core server have http apis that allow what you are describing.

The point of the original post was to remind people that these things exist and are available to build solutions on to be shared.

People have said that a minimum viable cross-wiki sharing solution is all we need, but we have had some for a long time now and people aren’t using them.

Clearly they need to be more accesible. I will review again soon if I can.