including external tiddlers

68 views
Skip to first unread message

FND

unread,
Dec 29, 2007, 9:29:12 AM12/29/07
to Tiddl...@googlegroups.com
Hello all,

While I've obviously been following the numerous discussions around the
issue of including data from external sources, I don't feel confident
that my knowledge of this is actually up to date.
Since I intend to reorganize my entire TiddlyWiki collection (see below)
and later write an article on the community wiki, I'd like to make sure
I get it right from the start.

As far as I can tell, we need to differentiate between three types of
tiddlers (due to differences in processing during startup):
* regular tiddlers
* shadow tiddlers (e.g. StyleSheet, PageTemplate, MarkupPostHead)
* plugins (i.e. "systemConfig" tiddlers)

Plugin candidates for these tasks include:
* IncludePlugin[1]
* LoadTiddlersPlugin[2]
* ExternalTiddlersPlugin[3]
* loadExternal (v2.0)[4]
But I'm not sure that's all I need - and whether there are any issues I
need to be aware of.

Additional background information:
My intention is to externalize the basic setup so all of my TWs can use
a centralized, consistent layout and configuration.
The first step is to use TinyTiddly[5]'s externalized TW core, which
should make upgrading very easy (simply by replacing twcore.js).
The next step, then, is to load the basic settings from a central TW so
I won't have to update each TW document individually.

Any further insights would be greatly appreciated. (I've got a feeling I
know who's gonna have all the answers for me here... )


-- F.


[1] http://tiddlywiki.abego-software.de/#IncludePlugin
[2] http://www.tiddlytools.com/#LoadTiddlersPlugin
[3] http://www.tiddlytools.com/#ExternalTiddlersPlugin
[4] http://tinyurl.com/2on5u9
(http://groups.google.com/group/TiddlyWikiDev/attach/24b01004700c20a6/ExternalTiddlers.zip?part=4)
[5] http://tinytiddly.tiddlywiki.org

wolfgang

unread,
Dec 29, 2007, 11:28:18 AM12/29/07
to TiddlyWiki
Hi Fred,

> Any further insights would be greatly appreciated. (I've got a feeling I
> know who's gonna have all the answers for me here... )

I wished I would have all the answers already.. but haven't found the
answers which really satisfy myself yet ;-)

> The first step is to use TinyTiddly[5]'s externalized TW core, which
> should make upgrading very easy (simply by replacing twcore.js).
> The next step, then, is to load the basic settings from a central TW so
> I won't have to update each TW document individually.

My attempts of general answers to mentioned candidates:

(1) IncludePlugin is able to load regular tiddlers not already
existing in the loading TW only. However, it isn't able to load shadow
tiddlers nor plugins functioning. The same holds for
ExternalTiddlersPlugin (3), with the additional disadvantage of having
to create a macro call for each tiddler separately. However,
IncludePlugin is the most convenient for automatically including all
regular tiddlers of an external TW or a file in PureStoreFormat, and
also allows for loading on demand.

(4) loadExternal (v2.0) would have the most potential for having
everything every time automatically updated, because it loads every
file with any extension - and javascript as functioning plugins
correctly added to the plugin manager. It has the advantage of simply
overwriting any tiddler with an equal title and doesn't bloat the
loading TW - because those external tiddler aren't stored but included
on every reload again.
However, it still has the following serious bug:
loadExternal loads every tiddler specified in 'ExternalTiddlers'
tiddler. If any of those external tiddlers got removed the TW loads
completely blank - with even the backstage gone! (Saq seems to have
overseen my request to have this fixed :-(

Alternatives which work equally by having a tiddler specify the
tiddlers to load:
(a) LoadExtPlugin by BramChen for loading javascript (with ListExtCode
needed to display loaded plugins, because they don't show up in the
PluginManager) - with the disadvantage to loadExternal: that it loads
plugins only after startup, and therefore many red macro error show
for seconds until all plugins have been loaded.
(b) LoadAltCSSPlugin by the same Author for loading css.

(2) LoadTiddlers or ImportTiddlersPlugin - also as Bookmarklets -
allows to manually update all tiddlers of a TW to those of the
templateTW that have since been changed. Other than loadExternal, it
stores all updated tiddlers in the loading TW. Additional use of
TemporaryTiddlersPlugin would circumvent this behavior, but that
wouldn't make sense for updating plugins.

I would like to add the following further future candidates:

(6) ArchivePlugin: by Jack; loads tiddlers from files one for each
tiddler stored as plain text. Though it doesn't load plugins nor
stylesheets functioning.
(7) LocalAdaptorPlugin: by Martin

Hope that gives a first oversight.

W.
> (http://groups.google.com/group/TiddlyWikiDev/attach/24b01004700c20a6/...)
> [5]http://tinytiddly.tiddlywiki.org

Coby

unread,
Dec 29, 2007, 11:36:50 AM12/29/07
to TiddlyWiki
Interesting. I've been making changes in a base file and syncing them
from my working file (the one with personal notes, etc.).

Seems like it wouldn't be to hard to extend the sync function so that
it checks for updates automatically and either prompts you to accept
them or installs them automatically via a checkbox configuration.
There might be a plugin that does something like that...

Thanks,

Coby
> (http://groups.google.com/group/TiddlyWikiDev/attach/24b01004700c20a6/...)
> [5]http://tinytiddly.tiddlywiki.org

wolfgang

unread,
Dec 29, 2007, 11:40:09 AM12/29/07
to TiddlyWiki

Eric Shulman

unread,
Dec 29, 2007, 11:48:20 AM12/29/07
to TiddlyWiki
> Interesting. I've been making changes in a base file and syncing them
> from my working file (the one with personal notes, etc.).
> Seems like it wouldn't be to hard to extend the sync function so that
> it checks for updates automatically and either prompts you to accept
> them or installs them automatically via a checkbox configuration.
> There might be a plugin that does something like that...

http://www.tiddlytools.com/#LoadTiddlersPlugin

can do precisely that. For example, to keep all your TiddlyTools
plugins synced up with your master copy, put this in your
[[PageTemplate]:

<span style="display:none"
macro="loadTiddlers changes file:///path/to/master/file.html
confirm">
</span>

This will trigger a check for differences between the documents
whenever the entire TW page is rendered (i.e., at startup... and a few
other, sensible, times...). <<loadTiddlers>> then confirms, one at a
time, before automatically importing each updated tiddler (if any)
from the master document.

HTH,
-e



into your

Eric Shulman

unread,
Dec 29, 2007, 12:08:11 PM12/29/07
to TiddlyWiki
> > Seems like it wouldn't be to hard to extend the sync function so that
> http://www.tiddlytools.com/#LoadTiddlersPlugin

note: because <<loadTiddlers>> was written to work with ALL versions
of TiddlyWiki, old and new, it does not make use any of the current
TW2.2+ core sync functions.... and doesn't need to!

LoadTiddlersPlugin, like it's bigger cousin, ImportTiddlersPlugin, pre-
dates the core's sync feature by a very long time (they've been around
in one form or another since 2005!), and they were once the *only*
automated way to move tiddlers between files without resorting to a
tedious, error-prone hand copy/paste procedure....

In fact, these two plugins still offer significant interaction,
automation, and general usability improvements over what is currently
possible with the base core functionality, and continue to be actively
maintained (and enhanced) for compatibility with the current version
of the TW core, as well as offering a backward compatiblity "Patch"
module to permit reading tiddlers from older, pre-2.2 TW documents
(which use a different internal format for storing the tiddler data).

ref:
http://www.TiddlyTools.com/#LoadTiddlersPlugin
http://www.TiddlyTools.com/#LoadTiddlersPluginPatch

enjoy,
-e

Coby

unread,
Dec 29, 2007, 12:23:20 PM12/29/07
to TiddlyWiki
Now that's what I'm talking about.

Thanks,

Coby

FND

unread,
Dec 29, 2007, 2:32:52 PM12/29/07
to Tiddl...@googlegroups.com
Thanks for this very thorough overview, Wolfgang (not that I had
expected any less from you... ;) ).

> loadExternal (v2.0) would have the most potential for having
> everything every time automatically updated

I tend to agree, and will run some tests in the next few days.
I'll also take look at loadExternal's code; maybe I can do something
about that bug you've mentioned.

Thanks again, this is very much appreciated!


-- F.

FND

unread,
Dec 29, 2007, 2:38:44 PM12/29/07
to Tiddl...@googlegroups.com
> Seems like it wouldn't be to hard to extend the sync function so that
> it checks for updates automatically

The problem with using sync for this purpose is that plugins wouldn't
work right away; the TW document would need to be reloaded after the update.
However, that's not really a huge problem (as long as it's fully
automated), because the master TW document would usually not be updated
very often.

I'll investigate this further and report back when I have a workable
solution.

Thanks everyone!


-- F.

rro...@renatoroque.com

unread,
Dec 30, 2007, 1:00:59 PM12/30/07
to TiddlyWiki
Hi Fred:

I had a look into IncludeTiddler and it looks very useful to me.

Just a question: When I include a tiddlywiki with it, is there a way
of getting external tiddlers listed in tags as well, if the same tags
are used?


Renato Roque
> (http://groups.google.com/group/TiddlyWikiDev/attach/24b01004700c20a6/...)
> [5]http://tinytiddly.tiddlywiki.org

Eric Shulman

unread,
Dec 30, 2007, 1:29:58 PM12/30/07
to TiddlyWiki
> I had a look into IncludeTiddler and it looks very useful to me.
> Just a question: When I include a tiddlywiki with it, is there a way
> of getting external tiddlers listed in tags as well, if the same tags
> are used?

Tiddlers that are included using IncludePlugin are kept in a separate
"store" from the "real" tiddlers in the current document. The plugin
then tricks several key core functions into looking in this
alternative store (in addition to the regular store), so that these
tiddlers appear to be "in" your document.

Unfortunately, this does not account for all ways that those tiddlers
might be accessed, either from the core, or from other plugins or
scripts. As a result, included tiddlers don't always "play in all the
tiddler games" like tagging, some kinds of custom field handling,
server syncing, etc.

Fortunately, there is an alternative that DOES let you use externally-
stored tiddlers exactly as if they were locally-stored tiddlers, by
actually *importing* those external tiddlers on a *temporary* basis:

http://www.TiddlyTools.com/#LoadTiddlersPlugin
http://www.TiddlyTools.com/#TemporaryTiddlersPlugin

Using <<loadTiddlers>>, you can *automatically* import tiddlers into
your current document, while simultaneously tagging them as
"temporary". You can embed the <<loadTiddlers>> macro in your
[[PageTemplate]], so that the tiddlers are retrieved from the external
file each time the document is loaded:
<span macro="loadTiddlers changes file://path/to/masterfile.html"></span>
note: the macro produces no direct output in the display, so embedding
it in the page template will NOT affect the appearance of the
document.

When the external tiddlers have been loaded, you can then use them as
regular tiddlers within your document. If you subsquently save the
document then, with TemporaryTiddlersPlugin installed, any tiddlers
tagged "temporary" will NOT saved in the file. Of course, if you
*edit* a temporary tiddler, you will probably want to remove the
"temporary" tag from that tiddler, so your changes WILL be saved
locally.

enjoy,
-e
Eric Shulman
TiddlyTools / ELS Design Studios

wolfgang

unread,
Dec 30, 2007, 4:50:50 PM12/30/07
to TiddlyWiki
Hi Renato,

> Just a question: When I include a tiddlywiki with it, is there a way
> of getting external tiddlers listed in tags as well, if the same tags
> are used?

Yes, temporarily included tiddler by the IncludePlugin show just as
any other internal tiddlers in the taglists. All the custom fields are
available - for example - for ForEachTiddlerPlugin's calls or the
SliceGridPlugin too.

> Unfortunately, this does not account for all ways that those tiddlers
> might be accessed, either from the core, or from other plugins or
> scripts. As a result, included tiddlers don't always "play in all the
> tiddler games" like tagging, some kinds of custom field handling,
> server syncing, etc.

Up to now for me included tiddlers played in every way as any internal
tiddlers - except for having them edited or modified. For that and
with IncludePlugin one has to open the included TW itself. And for
opening a included tiddler there has been a custom command been made
available by Udo Borkowski (the plugin Author of IncludePlugin) which
lets you go from the tiddler in view mode of the including TW to
opening the tiddler of the included TW in an other browser tab for
editing.

The alternative Eric suggests uses LoadTiddlersPlugin and
TemporaryTiddlersPlugin. And since these two plugin use almost double
the space than IncludePlugin - I personally would only use that if I
really wanted the tiddlers of the TW to include imported and
internally saved.
Which in my eyes is a different use case, since usually TW's tiddlers
are exported for the opposite reason of keeping the main TW
lightweight and swift - and still being able to access bulky
externally archived tiddlers.

Whenever, I really want to import or export tiddlers, then of course I
do use ImportTiddlers (the much abler and bigger brother of
LoadTiddlers) and ExportTiddlersPlugin, however - stored as files with
the .js extension external to the working TW and loading them on
demand - with, for example, on click Bookmarklets.

Regards,

W.

On 30 Dez., 19:29, Eric Shulman <elsdes...@gmail.com> wrote:
> > I had a look into IncludeTiddler and it looks very useful to me.
> > Just a question: When I include a tiddlywiki with it, is there a way
> > of getting external tiddlers listed in tags as well, if the same tags
> > are used?
>
> Tiddlers that are included using IncludePlugin are kept in a separate
> "store" from the "real" tiddlers in the current document. The plugin
> then tricks several key core functions into looking in this
> alternative store (in addition to the regular store), so that these
> tiddlers appear to be "in" your document.
>
> Unfortunately, this does not account for all ways that those tiddlers
> might be accessed, either from the core, or from other plugins or
> scripts. As a result, included tiddlers don't always "play in all the
> tiddler games" like tagging, some kinds of custom field handling,
> server syncing, etc.
>
> Fortunately, there is an alternative that DOES let you use externally-
> stored tiddlers exactly as if they were locally-stored tiddlers, by
> actually *importing* those external tiddlers on a *temporary* basis:
>
> http://www.TiddlyTools.com/#LoadTiddlersPluginhttp://www.TiddlyTools.com/#TemporaryTiddlersPlugin

wolfgang

unread,
Dec 31, 2007, 8:02:11 AM12/31/07
to TiddlyWiki
> Up to now for me included tiddlers played in every way as any internal
> tiddlers - except for having them edited or modified. For that and
> with IncludePlugin one has to open the included TW itself. And for
> opening a included tiddler there has been a custom command been made
> available by Udo Borkowski (the plugin Author of IncludePlugin) which
> lets you go from the tiddler in view mode of the including TW to
> opening the tiddler of the included TW in an other browser tab for
> editing.

Here its location:
http://tiddlywiki.abego-software.de/experimental/abego.editIncludedTiddlerCommand-src.js

W.
> >http://www.TiddlyTools.com/#LoadTiddlersPluginhttp://www.TiddlyTools....

FND

unread,
Dec 31, 2007, 8:28:12 AM12/31/07
to Tiddl...@googlegroups.com
Quick update:
I've found a very satisfying solution based on Saq's loadExternal*.
Actual implementation will take some time though, as there are a number
of (conceptual) issues to sort out.

Will report back here as soon as there's something to show.


-- F.


* loadExternal proved to be the simplest solution for this particular
purpose of reading from a master document - in a different context (e.g.
including regular content tiddlers from various sources), the
alternatives mentioned before might be the better choice

wolfgang

unread,
Dec 31, 2007, 9:04:20 AM12/31/07
to TiddlyWiki
;-) pure self interest ...

> * loadExternal proved to be the simplest solution for this particular
> purpose of reading from a master document - in a different context (e.g.
> including regular content tiddlers from various sources), the
> alternatives mentioned before might be the better choice

I guess what makes it difficult for loadExternal to become a all-in-
one include plugin is, that there isn't yet a more user friendly way
to select tiddlers to include, other than writing each path and file
name in the 'ExternalTiddlers' tiddler.

Like for example with IncludePlugin, where only the one path with file
macro is enough to have all tiddlers of a TW included.
Or ImportTiddlersPlugin with its dialog box, where one can choose all
tiddler with particular tags, all changed.. etc.

But I don't think something similar
- like a dialog box with select options
- or with ShowLocalDirectory
- or a ForEachTiddler macro call who similarly writes out the
ExternalTiddlers list like:
http://tiddlywiki.abego-software.de/#%5B%5BCreate%20File%20with%20list%20of%20all%20tiddlers%5D%5D
wouldn't be possible to make this more user friendly too. - But that's
for next Christmas..

So now it's my turn to let you know - how much I appreciate your
efforts sorting the issues with loadExternal out.

Thanks so much,

W.

wolfgang

unread,
Jan 1, 2008, 10:55:42 AM1/1/08
to TiddlyWiki
Hi everybody,

loadExternal takes relatives paths on a local hard drive.

But what would be the correct syntax of the path on a web server?

Neither relative nor absolute, like http://groups.google.com/group/TiddlyWiki/brow..,
seem to work.

Thanks in advance,

W.
> ExternalTiddlers list like:http://tiddlywiki.abego-software.de/#%5B%5BCreate%20File%20with%20lis...

FND

unread,
Jan 1, 2008, 12:34:17 PM1/1/08
to Tiddl...@googlegroups.com
> what would be the correct syntax of the path on a web server?

That's one of the issues yet to sort out.
File access via HTTP is different from local file access; we'll need
XHR[1] to handle the loading of external file(s) there.
By the way, due to XSS[2]-related security issues, this will be limited
to files on the same host.[3]

> there isn't yet a more user friendly way
> to select tiddlers to include, other than writing each path and file
> name in the 'ExternalTiddlers' tiddler.

Actually, I will probably remove the functionality to include individual
files as tiddlers in favor of including just a single master document.
That's because including multiple external files has significant impact
on the startup speed (due to file I/O operations). Also, this inclusion
should be as simple and lightweight as reasonably possible, so I'll try
to avoid bloat through "just because I can" features.
However, there'd be an optional module or separate plugin for including
individual files as tiddlers (just because that makes developing TW
plugins so much easier).

> choose all tiddler with particular tags, all changed.. etc.

For that we'll use the [filter[syntax]] introduced in TW v2.2.6 (which
will probably become more powerful in future versions).

You can track the progress on my SVN repo:
http://fnd.lewcid.org/svn/TiddlyWiki/plugins/loadExternal/
But remember, this is still heavily work in progress, so it might be
sloppy code, features might change (see above) etc. - plus I might not
have the time to continuously work on it.
(In fact, I'm not entirely sure why I'm exposing myself like this - all
for the sake of FOSS, I guess... )


-- F.


[1] XMLHttpRequest (http://en.wikipedia.org/wiki/XMLHttpRequest)
[2] cross-site scripting (http://en.wikipedia.org/wiki/XSS)
[3] more info here: http://tiddlywiki.bidix.info/#ProxyService
also: http://tinyurl.com/ysh267
(http://announce.tiddlyspot.com/#%5B%5BProxy%20service%20available%20for%20Tiddlyspot%20sites%5D%5D)

wolfgang

unread,
Jan 1, 2008, 4:08:59 PM1/1/08
to TiddlyWiki
Hi Fred,

> You can track the progress on my SVN repo:
> http://fnd.lewcid.org/svn/TiddlyWiki/plugins/loadExternal/
> But remember, this is still heavily work in progress, so it might be
> sloppy code, features might change (see above) etc. - plus I might not
> have the time to continuously work on it.
> (In fact, I'm not entirely sure why I'm exposing myself like this - all
> for the sake of FOSS, I guess... )

Don't know what FOSS means - also http://www.noslang.com/ or Google
did not help - but one thing for sure: already now loadExternalv3 does
much more than I expected in such a short time!

Overall and most important, it doesn't crushes the TW if the file to
include isn't there.
And secondly, with the TiddlyMasterConfig tiddler I already can
specify much more than I expected for next Christmas! ;-)

At this stage it doesn't only allow to load separate javascript or
whatever files - how it was possible until now with the list in the
ExternalTiddlers tiddler, or how LoadExtPlugin is functioning too - it
not only additionally loads whole TiddlyWikis, but already with the
new [tag[list]] syntax allows me to choose which tiddlers to load form
another Master TW! And to specify with what to tag the external
tiddlers too!

Can only say: really well done!

> Actually, I will probably remove the functionality to include individual
> files as tiddlers in favor of including just a single master document.
> That's because including multiple external files has significant impact
> on the startup speed (due to file I/O operations). Also, this inclusion
> should be as simple and lightweight as reasonably possible, so I'll try
> to avoid bloat through "just because I can" features.
> However, there'd be an optional module or separate plugin for including
> individual files as tiddlers (just because that makes developing TW
> plugins so much easier).

I would appreciate that function somehow to survive. Besides the
universality of loadExternal I specially would need its ability to
load a whole bunch of files with different extensions. For sure this
process makes loading really slow, but it will also make it much more
convenient than accomplishing the importing of different file types
with FileDropPlugin.

> > what would be the correct syntax of the path on a web server?
>
> That's one of the issues yet to sort out.
> File access via HTTP is different from local file access; we'll need
> XHR[1] to handle the loading of external file(s) there.

At least the script path of MarkupPostBody already with loadExternalv2
was recognized, as I just found out when it went black because the
tiddlers paths did not match.

Thanks again,

W.
> (http://announce.tiddlyspot.com/#%5B%5BProxy%20service%20available%20f...)

FND

unread,
Jan 2, 2008, 4:04:44 AM1/2/08
to TiddlyWiki
> Can only say: really well done!

Glad you like it.
Keep in mind though: I'm just a coding monkey here, standing on the
shoulders of giants...

> > Actually, I will probably remove the functionality to include individual
> > files as tiddlers in favor of including just a single master document.
>
> I would appreciate that function somehow to survive.

It would survive, only as an optional module or separate plugin (not
sure yet).

While we're at it: Support for multiple document should not be needed,
right? Or is there any reason to have more than one master at a time?

The trouble with including multiple files is in resolving potential
conflicts, e.g. precedence issues (if multiple files - whether master
document or individual tiddler - have tiddlers of the same name).

> Don't know what FOSS means

Free and Open-Source Software:
http://en.wikipedia.org/wiki/FOSS


-- F.

wolfgang

unread,
Jan 2, 2008, 4:44:30 AM1/2/08
to TiddlyWiki
> While we're at it: Support for multiple document should not be needed,
> right? Or is there any reason to have more than one master at a time?
>

I don't see any reason for more than one master file. Except maybe, if
one always wants to load all his plugins as latest release from the
different Author's sites. Since that could create unforeseeable
complications too, I think it wiser to use the regular sync from one
master file only.

And for loading the content of different TWs, IncludePlugin is already
very advanced at that. I think Udo is already working on a solution to
the precedence issue, and also considers the creation of an option for
only including the titles of really big TWs and their content only
once the demand arises. Which will give inclusion of big, or many TWs
a reasonable speed.

> Glad you like it.
> Keep in mind though: I'm just a coding monkey here, standing on the
> shoulders of giants...

By all my testing till now I must conclude you're standing quite
confident up there..

Regards,

W.

FND

unread,
Jan 2, 2008, 7:04:47 AM1/2/08
to TiddlyWiki
> I don't see any reason for more than one master file.

I agree.

> And for loading the content of different TWs, IncludePlugin is already
> very advanced at that.

Indeed. I also have no intention of replacing existing plugins by re-
inventing the wheel.
So loadExternal doesn't make IncludePlugin obsolete; they each have a
distinct purpose (configuration vs. content).

Speaking of "loadExternal": Since this was originally conceived as a
helper tool for plugin development, not as an end-user plugin, the
name was sort of a working title.
So now we need a new, "official" name. My working title is
TiddlyMasterPlugin, but I'm not sure that's be a good name for the
release (although, it would clearly define the scope of this plugin,
preventing confusion and misconceptions).
Any thoughts?


-- F.

wolfgang

unread,
Jan 2, 2008, 5:43:38 PM1/2/08
to TiddlyWiki
I think TiddlyMasterPlugin would describe it quite well.

And though I really like it in my backstage - however, 'TiddlyMaster'
as an item like it is now displayed in the backstage bar is definitely
a bid too intrusive for my taste - compared to all the shorter and
lower case menu descriptions. Maybe 'master' would also do?

On the other side TiddlyMasterPlugin isn't really descriptive for a
casual user. And your delineation between content vs. configuration -
accessing content versus running the show - only something like
TiddlyEnginePlugin, or GetPluginPlugin comes to my mind. :-/ ..well,
no, TiddlyMaster is still much better.

W.

wolfgang

unread,
Jan 3, 2008, 3:57:23 AM1/3/08
to TiddlyWiki
Hi again,

> > what would be the correct syntax of the path on a web server?
>
> That's one of the issues yet to sort out.
> File access via HTTP is different from local file access; we'll need
> XHR[1] to handle the loading of external file(s) there.
> By the way, due to XSS[2]-related security issues, this will be limited
> to files on the same host.[3]

I meant to load the master on the same server. I tried it for example
with the 2 possibilities of specifying the master's location:

|''MasterLocation''|http://vipa.3host.biz/master.html|
|''MasterLocation''|master.html|

Neither works. - What other possibilities are there to try?

But then - would that reduce the download during the first loading of
a page? - Or would it make no difference anyway, because with the
slave all the systemConfig tiddlers of the master are automatically
loaded too?

Regards,

W-

FND

unread,
Jan 3, 2008, 4:57:25 AM1/3/08
to TiddlyWiki
> I think TiddlyMasterPlugin would describe it quite well.

Alright then, TiddlyMasterPlugin it is - for now at least. (Yes,
there's some irony in "TMP" being a temporary title... )

> And though I really like it in my backstage - however, 'TiddlyMaster'
> as an item like it is now displayed in the backstage bar is definitely
> a bid too intrusive for my taste

Good catch!
This was always meant to be customizable using the "Title" slice in
[[TiddlyMasterConfig]].
I can't seem to access my SVN repo from this machine though, so I'll
apply the fix tonight.

> I meant to load the master on the same server. [...] Neither works.

The whole XHR stuff is yet to be implemented, so remote access doen't
work yet.
I'm not sure when I'll get to that; I'd rather sort out the more basic
issues first, then implement this in one of the last steps.

> But then - would that reduce the download during the first loading of
> a page?

Do you mean reducing load times by including the master document?
If the master file was still stored in the browser's cache (e.g. from
a site using the same master), then that would not have to be
downloaded (the same principle applies to TinyTiddly's externalized
core code, by the way).
But generally, including external files would increase processing time
on startup.


-- F.

Nicolas Syssoieff

unread,
Jan 3, 2008, 6:07:11 AM1/3/08
to Tiddl...@googlegroups.com
Hi all,

I'm trying to put in practice all posts in this discussion above to set-up a "master" TW containing up-to-date plugins, which I would then like to automatically load into my "child" TWs.

Can you confirm that LoadTiddlerPlugin is the one I want for this ? (There are so many plugins with similar names being discussed, I'm not sure any more)

And if LoadTiddlersPlugin is the one to use, could you please explain how to setup the proxy thing ? I did the following experiment :

- in the master TW : installed (manually) the SliceGridPlugin (could be any of them, actually), saved, reloaded.

- in the child TW : installed LoadTiddlersPlugin (manually), saved, reloaded, created a tiddler with the code :
<<loadTiddlers "label:load the slice plugin" "tiddler:SliceGridPlugin" "http://<masterTW>.tiddlyspot.com" confirm>>

Now when I click on it, I almost immediately get :
Opening http://<masterTW>.tiddlyspot.com
Found 0 tiddlers in /proxy/http://<masterTW>.tiddlyspot.com
Loaded 0 of 0 tiddlers from /proxy/http://<masterTW>.tiddlyspot.com

Can anyone please direct me on the good path ? ( N.B. I also tried "all" instead of a specific tiddler, and all variations, and still get 0 tiddlers; this is why I thought of a proxy-something issue)

Thanks !

-Nicolas

Eric Shulman

unread,
Jan 3, 2008, 7:52:33 AM1/3/08
to TiddlyWiki
> - in the child TW : installed LoadTiddlersPlugin (manually), saved,

> <<loadTiddlers "label:load the slice plugin" "tiddler:SliceGridPlugin"
> "http://<masterTW>.tiddlyspot.com" confirm>>

> Opening http://<masterTW>.tiddlyspot.com
> Found 0 tiddlers in /proxy/http://<masterTW>.tiddlyspot.com
> Loaded 0 of 0 tiddlers from /proxy/http://<masterTW>.tiddlyspot.com

If you've installed
http://www.TiddlyTools.com/#LoadTiddlersPlugin
into an older TW document (2.1 or earlier), then it won't find any
tiddlers when reading from *newer* (2.2+) documents, because the
internal storage format changed significantly between those
versions.

Fortunately, I have a solution that adds 'forward-compatibility"
support for reading tiddlers in TW2.2+ files when using a document
based on TW2.1.x (or earlier)
http://www.TiddlyTools.com/#LoadTiddlersPluginPatch

HTH,

Nicolas Syssoieff

unread,
Jan 3, 2008, 8:29:06 AM1/3/08
to Tiddl...@googlegroups.com
Hi Eric,

Thanks for spending some of your time trying to fix this issue.
However, I don't think it comes from a version issue, as both TW are in 2.2.6 version (actual tiddlyspot version)

Btw, I forgot to mention that both of these TWs are using MPTW flavors : could this make a difference ?

-Nicolas

FND

unread,
Jan 3, 2008, 10:29:05 AM1/3/08
to Tiddl...@googlegroups.com
> I'm trying to put in practice all posts in this discussion above to
> set-up a "master" TW containing up-to-date plugins, which I would then
> like to automatically load into my "child" TWs.

As far as I could tell (and I admit that I, too, am confused by the
large number of options here), there is no truly satisfying solution
that does everything I want it to (and/or the way I want it to ;) ).
That's why I'm now developing TiddlyMaster (which is largely based upon,
and will thus supersede, loadExternal).

Wolfgang's original response to my inquiry gives a pretty good overview
of the options (and different approaches).
For example, other than loadExternal, LoadTiddlersPlugin stores all
updated ("master") tiddlers in the loading ("slave" or "client") TW.
There's also IncludePlugin, which doesn't work for including plugins
though - however, it has (or will have) some pretty advanced features
for including regular content.
So each of those options has a distinct raison d'être (even though the
differences are hard to grasp at first).
Bottom line: LoadTiddlersPlugin is probably what you want right now.

> I can't seem to access my SVN repo from this machine though, so I'll
> apply the fix tonight.

Done; Wolfgang, the backstage button should now use the value from the

"Title" slice in [[TiddlyMasterConfig]].


-- F.

Nicolas Syssoieff

unread,
Jan 3, 2008, 10:57:10 AM1/3/08
to Tiddl...@googlegroups.com
Hi FND,

Thanks for these clarifications, it confirms what I thought.

My vision is a mix between :
- LoadTiddlersPlugin to maintain a master TW of all my childs, to drive plugin versions etc to the child TWs
- ExternalTiddlers to "virtually" duplicate content between child tiddlers, where some information will be shared among multiple childs with no notion of updates as in LoadTiddlersPlugins but only a concept of one-way read-only access from some TW childs to some other childs.

Yet, one issue remains : I cannot succeed to make either one or the other work on a basic example.... what am I doing wrong in this :

####

> - in the master TW : installed (manually) the SliceGridPlugin (could be any of them, actually), saved, reloaded.
>
>- in the child TW : installed LoadTiddlersPlugin (manually), saved, reloaded, created a tiddler with the code :
> <<loadTiddlers "label:load the slice plugin" "tiddler:SliceGridPlugin" "http://<masterTW>.tiddlyspot.com" confirm>>
>
>Now when I click on it, I almost immediately get :
>Opening http://<masterTW>.tiddlyspot.com
>Found 0 tiddlers in /proxy/http://<masterTW>.tiddlyspot.com
>Loaded 0 of 0 tiddlers from /proxy/http://<masterTW>.tiddlyspot.com
###

Thanks all for your help and precious advice.

-Nicolas

Eric Shulman

unread,
Jan 3, 2008, 11:05:06 AM1/3/08
to TiddlyWiki
<<loadTiddlers "label:load the slice plugin" "tiddler:SliceGridPlugin"
"http://<masterTW>.tiddlyspot.com" confirm>>

> >Now when I click on it, I almost immediately get :
> >Opening http://<masterTW>.tiddlyspot.com
> >Found 0 tiddlers in /proxy/http://<masterTW>.tiddlyspot.com
> >Loaded 0 of 0 tiddlers from /proxy/http://<masterTW>.tiddlyspot.com

Can you provide the real URL for your "masterTW" so I can investigate
further to figure out why LoadTiddlersPlugin doesn't see any tiddlers
in that document?

Also, have you tried using <<loadTiddlers>> with a *local* copy of the
masterTW?

thanks,
-e

Nicolas Syssoieff

unread,
Jan 3, 2008, 11:56:17 AM1/3/08
to Tiddl...@googlegroups.com
Hi Eric,

Damn you're good, I found the issue without even having to send you anything :D
While setting things up to give you access to the master and child TWs, I removed the password access, and.... it worked.

So the only remaining question is : is there a way to make it work while password protected ? It is all the more important as I don't really care, in the future, if my master TW isunprotected for the LoadTiddlersPlugin, because I will only import technical plugins from it, there will be no data there. However, for ExternalTiddlersPlugin, it will be to display content between child tiddlers, and both the source and target tiddlers are of the password-protected type.

Thanks again for your help.

-Nicolas.

Eric Shulman

unread,
Jan 3, 2008, 1:52:09 PM1/3/08
to TiddlyWiki
> While setting things up to give you access to the master and child TWs, I
> removed the password access, and.... it worked.
>
> So the only remaining question is : is there a way to make it work while
> password protected ? It is all the more important as I don't really care, in

hmm.... when I try accessing a remote, password-protected document, my
browser does the expected "prompt for username/password"
authentication that normally occurs. Trying closing ALL browser
windows (so the application exits). This ensures that any cached
authentication information that was saved during the current session
is completely flushed. Then reload your document and invoke
<<loadTiddlers>>. Hopefully, you will get prompted.

Howvever, even if your browser DOES then prompt you for
authentication, I've written a programmatic solution that you can
try...

The following plugins have all been updated:
http://www.TiddlyTools.com/#ExternalTiddlersPlugin
http://www.TiddlyTools.com/#LoadTiddlersPlugin
http://www.TiddlyTools.com/#LoadTiddlersPluginPatch
http://www.TiddlyTools.com/#ImportTiddlersPlugin
http://www.TiddlyTools.com/#ImportTiddlersPluginPatch
so that they can submit username and password values to the
XMLHttpRequest() function that reads the remote document.

You can define the username/password values by entering them into
TiddlyWiki option fields (added to your [[OptionsPanel]] or any other
suitable location):
<<option txtRemoteUsername>>
<<option txtRemotePassword>>

Once you have updated the indicated plugins, and have entered the
username/password values, it *should* resolve any authentication
problems you are having and things should just start to work without
anymore fuss, even if you can't get the browser's normal prompt for
authentication to display.

Note that the username/password values are stored as plain text in
local cookies, so there is the potential for a small but manageable
'security' issue if these values are retained between sessions on an
unsecured system or one with multiple users.

Just remember to throw away these cookies when you are done with them!
http://www.TiddlyTools.com/#CookieManagerPlugin
can be useful for this purpose.

Let me know if this works...

wolfgang

unread,
Jan 3, 2008, 6:34:51 PM1/3/08
to TiddlyWiki
Hi to everyone,

> > I meant to load the master on the same server. ...
> >
> > But then - would that reduce the download during the loading
> > of a page? - Or would it make no difference anyway, because
> > with the slave all the systemConfig tiddlers of the master are
> > automatically loaded too?
>
> Do you mean reducing load times by including the master document?
> If the master file was still stored in the browser's cache (e.g. from
> a site using the same master), then that would not have to be
> downloaded (the same principle applies to TinyTiddly's externalized
> core code, by the way).
> But generally, including external files would increase processing time
> on startup.
>
> -- F

So that means that nothing would be gained if TiddlyServers would use
TiddlyMasterPlugin for themself.

For example, if one wants the latest release of Eric's TiddlyTools to
see what updates are available - TMP there wouldn't make sense and TT
would have all its systemConfigs in an other master file. Because the
browser cache would have to be purged to have access to its latest
systemConfigs and so, its by now almost 2 MB, still be downloaded
completely.

On the other hand its use would indeed decrease download size and time
with a website with much content frequently updated and many large
systemConfig in constant use. Because using such sites often the core
and functional stuff would still be available through the browser
cache - and only the latest addition would have to be loaded.

> Done; Wolfgang, the backstage button should now use the value from the
> "Title" slice in [[TiddlyMasterConfig]].
>

it does (well, only after some head scratching and finally realizing
that its path in MarkupPostBody still was pointing to its old
version..), thanks..

W.

wolfgang

unread,
Jan 3, 2008, 6:39:36 PM1/3/08
to TiddlyWiki
> For example, if one wants the latest release of Eric's TiddlyTools to
> see what updates are available - TMP there wouldn't make sense and TT
> would have all its systemConfigs in an other master file. Because the
> browser cache would have to be purged to have access to its latest
> systemConfigs and so, its by now almost 2 MB, still be downloaded
> completely.

After some more head scratching...

This isn't true, because the download would still be limited to the
latest updated tiddlers added to the slave TT.

W.

Nicolas Syssoieff

unread,
Jan 4, 2008, 4:44:28 AM1/4/08
to Tiddl...@googlegroups.com
Hi Eric,

This sounds like an incredible improvement, and you provided it so fast !

Anyway, I cannot test your evolutions right now because it seems something is not working temporarily at tiddlyspot.com (I cannot save, nor access the controlpanel - a bunch of http 500 errors is waiting for me there), but I will try it asap.

However, a question arises (if only in my mind for now) : as sites on tiddlyspot have their own login and password each (it's possible to change the password but today the login is the site id), am I right to think that I won't be able to connect to two different tiddlyspot sites ? Maybe we would need something like a very small login/password list :
sitea.tiddlyspot.com,sitea,passworda
siteb.tiddlyspot.com,siteb,passwordb (similar or different from passworda)
and so on...

Then, when triggering a request to an outside site, only the correct pair of credentials could be passed along with the request, matched on the site id.

-Nicolas.

FND

unread,
Jan 4, 2008, 8:52:17 AM1/4/08
to Tiddl...@googlegroups.com
> This isn't true, because the download would still be limited to the
> latest updated tiddlers added to the slave TT.

So your original question was geared towards downloading the file
separately (e.g. via ImportTiddlers), in contrast to actually opening it
as a TW document in the browser?
In that regard, the download size would indeed be reduced - but you
would not have access to the tiddlers from the master document, as TMP
(pretty much any plugin, really) only takes effect when the respective
TW document is actually rendered.
However, one could imagine a separate plugin (code) repository as master
"back-end", and a front-end TW with additional documentation. But when
importing, users would have to point the ImportTiddlers wizard to the
master file, not to the file they navigate in their browsers - which
might be difficult to communicate.

I hope this answers your question.


-- F.

wolfgang

unread,
Jan 4, 2008, 5:51:29 PM1/4/08
to TiddlyWiki
> > This isn't true, because the download would still be limited to the
> > latest updated tiddlers added to the slave TT.
>
> So your original question was geared towards downloading the file
> separately (e.g. via ImportTiddlers), in contrast to actually opening it
> as a TW document in the browser?

Sorry for expressing myself soo confusedly. But Yesterday, after some
more scratching.. - I meant to say: after seeing my own conclusions -
I thought I've been mistaken.

I was incorrectly talking of 'download' in that sentence, by which I
actually understood the time it takes, and the bytes that get
'downloaded', till a TiddlyWiki is fully loaded in a browser window.
And by that equally would also have been 'downloaded' into the browser
cache (core, master and slave). - And did not mean importing tiddlers,
nor 'right click and save as'.

I erroneously differentiated between a TW website that provides
systemConfig tiddlers only - and an other with mainly written content.
That a TMP setup would make sense with the one with content, but not
with the other, because I wrongly assumed that ALL systemConfigs
tiddler of a master would always have to be loaded into a client TW.

So when Eric, as in my theoretical example of a TiddlyTools running
with TMP, updated 5 plugins yesterday - I thought that in this case I
would have to purge the whole browser cache with all the systemConfigs
versions from before yesterday (the master part of it) - to have
access to the 5 new.

But that, I reconsidered, mustn't be true. Because not all
systemConfig are necessarily from the master, and new updated versions
can of course also be provided in the slave itself.

So if I'm quite a regular visitor of TiddlyTools (which I am ;-) and I
wanted to see what's new today - I would not have to load almost 2 MB,
but merely the slave with the newest updates only. Because the master
with all the older systemConfigs and the core would still be there in
my browser cache.


However, today I'm totally unsure about that again. Because that poses
for me the question: Would today's new slave override just those 5
updated tiddler from the cache - or isn't it more likely that I
actually indeed would have to purge the whole cache, all 93
systemConfigs of TT, to have those 5 new?

Today the later seems much more likely to me. (I hope I made it a bit
clearer, or I'll have to proceed with some more head scratching.. ;-)

Regards,

W.

FND

unread,
Jan 5, 2008, 10:01:08 AM1/5/08
to Tiddl...@googlegroups.com
> I wrongly assumed that ALL systemConfigs
> tiddler of a master would always have to be loaded into a client TW.

Well, no, but the master document would have to be loaded in full to
extract the respective tiddlers for inclusion.

> the master with all the older systemConfigs and the core would still
> be there in my browser cache

Not necessarily; this depends on a number of factors (both server and
client configuration), so you can't be sure that caching will work that way.

> Would today's new slave override just those 5 updated tiddler from
> the cache - or isn't it more likely that I actually indeed would
> have to purge the whole cache

If the master document has not been edited (i.e. the last-modified
timestamp is the same as the cached version's), the user agent (browser)
might recognize this and use the cached version instead (if there is
one), thus only downloading the (modified) slave file.


-- F.

wolfgang

unread,
Jan 5, 2008, 2:26:54 PM1/5/08
to TiddlyWiki
> If the master document has not been edited (i.e. the last-modified
> timestamp is the same as the cached version's), the user agent (browser)
> might recognize this and use the cached version instead (if there is
> one), thus only downloading the (modified) slave file.

So that means TMP would load only the systemConfigs of the unmodified
cached master, and skip those which have a updated version in the
freshly downloaded (ahm.. I mean loaded in the browser window) slave.

That would be good news.

W.

FND

unread,
Jan 5, 2008, 6:57:04 PM1/5/08
to Tiddl...@googlegroups.com
> So that means TMP would load only the systemConfigs of the unmodified
> cached master, and skip those which have a updated version in the
> freshly downloaded (ahm.. I mean loaded in the browser window) slave.

Oh, now I see what you mean (I hope).
Local tiddlers take precedence over external tiddlers. So if a tiddler
of the same name exists both in the master and in the slave, that
tiddler is skipped during import.


-- F.

wolfgang

unread,
Jan 6, 2008, 6:29:03 AM1/6/08
to TiddlyWiki
> Oh, now I see what you mean (I hope).

Welcome to Babylon ;-)

All what I was getting at:

That with a TMP setup (and specific server and client configuration)
such huge TiddlyWiki Sites, as TiddlyTools or TWHelp - could have
their download (into the client browser) smaller and shorter
- if and when these sites are regularly visited, the master hasn't
been modified and is still available in the cache.

hope by now all missunderstandings have cleared,

W.

FND

unread,
Jan 6, 2008, 7:35:51 AM1/6/08
to Tiddl...@googlegroups.com
> hope by now all missunderstandings have cleared

Yep.
Of course the factors required for this to work your way - server and
client configuration, user visiting patterns - are not very likely to
coincide for regular users. But if it's for a particular target
audience, it might be okay.


-- F.

Nicolas Syssoieff

unread,
Jan 7, 2008, 10:59:11 AM1/7/08
to Tiddl...@googlegroups.com
Hi Eric,

Finally I got to test your update, bud sadly... it doesn't work.

If you wish to have a look, I have setup a false pair of accounts, and I can't make them to work (at all, not even without password protection now). And I have to admit that I am a bit lost (I probably performed too many different tests).

I will not try to describe them here and confuse you, it will probably be easier for you to look straight away.
The first account is http://devoroumov.tiddlyspot.com , the second one is http://devoroumov2.tiddlyspot.com; both have the password of "azertyuiop".

In the first, I have the LoadTiddlersPlugin in last version ( 3.5.0), and a LoadTiddlersTest tiddler that will open for you in DefaultTiddlers with a basic line asking to load all tiddlers from the second test account having the "testing" tag.

In the second account, you will only find a "blahblahblah" tiddler tagged with testing (also visible in DefaultTiddlers).

If you guys can make something out of this, thanks a lot. I'm lost.

-Nicolas

Eric Shulman

unread,
Jan 7, 2008, 11:23:37 AM1/7/08
to TiddlyWiki
> Finally I got to test your update, bud sadly... it doesn't work.

> The first account ishttp://devoroumov.tiddlyspot.com, the second one ishttp://devoroumov2.tiddlyspot.com;both have the password of

> basic line asking to load all tiddlers from the second test account having

LoadTiddlers can only pull tiddlers from documents on other domains if
you are viewing your document locally (via file://), but this won't
work when you are looking at the document ONLINE, because browser
security blocks javascript from having *cross-domain* access to
content.

It may be that what you are trying to do is just not possible (at
least in the way you want). Sorry.

However, the cross-domain restriction does not apply if you open a
*local* copy of the document. Thus, if the "devorumov" document is
locally-stored, the <<loadTiddlers>> invocation should work to pull
the remote devoroumov2 content.

HTH,
-e
Eric Shulman

Nicolas Syssoieff

unread,
Jan 7, 2008, 11:46:50 AM1/7/08
to Tiddl...@googlegroups.com
Hi Eric,

Ok for that.
It should have struck me earlier that no matter what, a local-local or local-remote interaction was possible, but not a remote-remote interaction.
And I have indeed tested your suggestion right now, by downloading locally the first TW and reprotecting the second one. Without configuring your new login/password option, I get prompted for credentials, and when it is properly configured, it supplies the credentials alone.

So, all is fixed now except for this limitation which is really no one's "fault", and I'll download the TW whenever I want to perform such an action. Thanks a lot for your work.

-Nicolas.

Daniel Baird

unread,
Jan 7, 2008, 4:08:57 PM1/7/08
to Tiddl...@googlegroups.com
On 1/8/08, Eric Shulman <elsd...@gmail.com> wrote:
>
> LoadTiddlers can only pull tiddlers from documents on other domains if
> you are viewing your document locally (via file://), but this won't
> work when you are looking at the document ONLINE, because browser
> security blocks javascript from having *cross-domain* access to
> content.
>

I think you could make this work between tiddlyspot sites by using
tiddlyspot's proxying workaround..

Using the odd looking url of:
http://devoroumov.tiddlyspot.com/proxy/http://devoroumov2.tiddlyspot.com

You can get to the second site from the first. I'm not sure how the
authentication would work though. Maybe tiddlyspot should take away
the auth from the proxy script.

;Daniel

--
Daniel Baird
They say a million monkeys typing will eventually produce Shakespeare.
Thanks to commenters on YouTube, we now know this is not true.

Nicolas Syssoieff

unread,
Jan 8, 2008, 2:28:58 AM1/8/08
to Tiddl...@googlegroups.com
Hi Daniel,

This is a lead I've been following also yesterday evening, before you posted this proposition, because I remembered having seen something on XSS that was allowed using the proxy on a short list of websites and domains.

However, the results are half-good half-bad : it indeed works to perform a remote-remote connection (something I had agreed yesterday would not be possible when discussing with Eric), however when adding the authentication on top of that, it does not work anymore.
The error is very similar to what existed before :
- with no authentication, clicking on loadtiddlers produces no specific output but eventually happens after 5 seconds or so.
- with authentication activated, I immediately get the info message :


Maybe the combination of your brain and Eric's can save me :D
It feels like the answer is very close, though I'm unable to see it clearly...

-Nicolas.

danie...@gmail.com

unread,
Jan 8, 2008, 5:25:30 AM1/8/08
to Tiddl...@googlegroups.com

On 1/8/08, Nicolas Syssoieff <nicolas....@gmail.com> wrote:
> Hi Daniel,
>
> This is a lead I've been following also yesterday evening, before you posted
> this proposition, because I remembered having seen something on XSS that was
> allowed using the proxy on a short list of websites and domains.
>
> However, the results are half-good half-bad : it indeed works to perform a
> remote-remote connection (something I had agreed yesterday would not be
> possible when discussing with Eric), however when adding the authentication
> on top of that, it does not work anymore.

Yeah I think it's gonna need some changes on the tiddlyspot end.

Can you try it with authentication at one end only, then the other, and see what happens then?

Nicolas Syssoieff

unread,
Jan 8, 2008, 9:01:29 AM1/8/08
to Tiddl...@googlegroups.com
If by one end or the other you mean the source TW or the destination TW, then I already have the answer for you :)

- With source TW non-restricted and destination TW non-restricted : OK
- With source TW restricted and destination TW non-restricted : OK (but prompt for authentication when exiting source TW - I guess it's because we're using the source TW proxy)
- With source TW non-restricted and destination TW restricted : NOK (immediate failure with the now famous error **)
- With source TW restricted and destination TW restricted : NOK (prompt for authentication by source tw then immediate failure with the same error **)

** "Opening http://devoroumov.tiddlyspot.com/proxy/http://devoroumov2.tiddlyspot.comFeel free to experiment it yourself if you like, with the credentials I supplied above (post #43 of this thread).

-Nicolas

danie...@gmail.com

unread,
Jan 8, 2008, 9:52:01 AM1/8/08
to Tiddl...@googlegroups.com
Is "source" the TW you are fetching tiddlers from? Or is it the
source of the loadTiddlers request. Sorry if it's obvious to everyone
but me, I have something of a disability in that I can never work out
which way things like that go.

Anyway.. so if you have a local TiddlyWiki, can you use Eric's new
version of LoadTiddlers to get tiddlers from a restricted online TW?
If we can get that going, I reckon we can get the rest working.

;D


On 1/9/08, Nicolas Syssoieff <nicolas....@gmail.com> wrote:
> If by one end or the other you mean the source TW or the destination TW,
> then I already have the answer for you :)
>

> - With source TW *non-restricted* and destination TW *non-restricted : OK
> *- With source TW *restricted* and destination TW *non-restricted : OK *(but


> prompt for authentication when exiting source TW - I guess it's because

> we're using the source TW proxy)*
> *- With source TW *non-restricted* and destination TW *restricted :
> NOK *(immediate
> failure with the now famous error **)*
> *- With source TW *restricted* and destination TW *restricted : NOK *(prompt


> for authentication by source tw then immediate failure with the same error
> **)
> *

> *** "Opening
> http://devoroumov.tiddlyspot.com/proxy/http://devoroumov2.tiddlyspot.comFound

Nicolas Syssoieff

unread,
Jan 8, 2008, 10:02:22 AM1/8/08
to Tiddl...@googlegroups.com
Sorry, my own post is unclear about that, it can be understood both ways, and probably the wrong one first :D

Let me rewrite it like this :

- With TW containing loadtiddlers *non-restricted* and TW containing the content I want to load *non-restricted* : OK
- With TW containing loadtiddlers *restricted* and TW containing the content I want to load *non-restricted* : OK (but prompt for authentication when exiting source TW - I guess it's because we're using the TW containing loadtiddlers proxy)
- With TW containing loadtiddlers *non-restricted* and TW containing the content I want to load *restricted* : NOK *(immediate failure with the now famous error **)
- With TW containing loadtiddlers *restricted* and TW containing the content I want to load *restricted* : NOK (prompt for authentication then immediate failure with the same error **)

Is that a little better ?

Cheers
-Nicolas

danie...@gmail.com

unread,
Jan 8, 2008, 10:25:50 AM1/8/08
to Tiddl...@googlegroups.com
On 1/9/08, Nicolas Syssoieff <nicolas....@gmail.com> wrote:
> Sorry, my own post is unclear about that, it can be understood both ways,
> and probably the wrong one first :D

It bothers me that a "case-insensitive" sort is the one that has to
understand the meaning of letter case. So I can understand it's not
easy to make stuff obvious :)

So basically you can't import tiddlers from a password-protected TW.
Can you import from a protected TW if you are importing into a TW on
your local drive? As in, is this just an online problem?

That's the new functionality that Eric added, so we should eliminate
the possibility of a bug in it before we go too much further. I know
it's Eric, but better to check anyway :)

;D

Nicolas Syssoieff

unread,
Jan 8, 2008, 10:42:08 AM1/8/08
to Tiddl...@googlegroups.com
Damn, you're right, I forgot to answer your second question in the previous post
When downloading the TW "containing LoadTiddlers" and trying to import the exact same thing from the same online TW "containing what I want to load", it works perfectly (even more precisely, it previously worked perfectly by prompting me, and since Eric's last devs, it works without prompting, provided the txtremoteusername and txtremotepassword are correctly populated with the "TW containing what I want to load" credentials)

The only difference, of course, is the non-usage of the proxy when I do it locally :

Online try :
<<loadTiddlers "label:Load everything tagged with testing !! (with proxy)" "tag:testing" " http://devoroumov.tiddlyspot.com/proxy/http://devoroumov2.tiddlyspot.com" confirm>>

Local try :
<<loadTiddlers "label:Load everything tagged with testing !! (without proxy)" "tag:testing" " http://devoroumov2.tiddlyspot.com" confirm>>

-Nicolas

Nicolas Syssoieff

unread,
Jan 16, 2008, 2:42:19 AM1/16/08
to Tiddl...@googlegroups.com
Hi Daniel and Eric,

Do you have any hints on what might be causing the issue discussed below ?
("Previously on the TW channel" : having a local TiddlyWiki, using Eric's new
version of LoadTiddlers worked perfectly to get tiddlers from a restricted online TW - however, the same feature is not working when the TW in which we are trying to import data is also online...)

-Nicolas

On Jan 8, 2008 4:25 PM, <danie...@gmail.com> wrote:

Eric Shulman

unread,
Jan 16, 2008, 3:22:35 AM1/16/08
to TiddlyWiki
> Do you have any hints on what might be causing the issue discussed below ?
> ("Previously on the TW channel" : having a local TiddlyWiki, using Eric's
> new
> version of LoadTiddlers worked perfectly to get tiddlers from a restricted
> online TW - however, the same feature is not working when the TW in which we
> are trying to import data is also online...)

I think the problem is the proxy script on TiddlySpot. Here's what I
suspect is happening...

1) LoadTiddlersPlugin uses XMLHttpRequest to submit the URL to the
proxy script along with the ID/PW defined by txtRemoteUsername and
txtRemotePassword.

2) The proxy script most likely does a "wget" to attempt to retrieve
the requested URL, but apparently doesn't pass through the ID/PW.

3) Because the proxy script is NOT a browser, and is therefore non-
interactive, it can't trigger a "prompt for password" dialog.

Result: the proxy fails to retrieve the requested document :-(

To make this work, the proxy script needs to take the ID/PW that was
submitted for the script URL, and re-use it when attempting to
retrieve the specified target URL from the remote server.

HTH,
-e
Reply all
Reply to author
Forward
0 new messages