In Theory ... All Tiddlers Open On Start -- Search Reduces ??

169 views
Skip to first unread message

TiddlyTweeter

unread,
Jan 18, 2020, 9:15:30 AM1/18/20
to TiddlyWiki
A long, long time ago in Dos I used InfoSelect (it still exists now in a different form for Windows). 
The Dos version was rather like TW. It was wholly made of fragments.

A GREAT thing about it was on open ALL fragments were loaded and displayed. 
Search (on text) filtered them so you would see only what you wanted.

Could we replicate this with TW? ALL Tiddlers are open on start and search auto-reduces them?

Question
TT


TiddlyTweeter

unread,
Jan 18, 2020, 9:16:00 AM1/18/20
to TiddlyWiki
For emailers ...

Mat

unread,
Jan 18, 2020, 12:15:18 PM1/18/20
to TiddlyWiki
Can't you just put [is[tiddler]] (or comparable filter) in the Default Tiddler field (found under Ctrlpanel > Info > Basics) ?

<:-)

TiddlyTweeter

unread,
Jan 18, 2020, 1:31:32 PM1/18/20
to TiddlyWiki
Ciao Mat, that will likely open all I want well, but how do I dynamically in search filter (i.e. close many) to just what I need?

TT

Mat

unread,
Jan 18, 2020, 2:52:54 PM1/18/20
to TiddlyWiki
TiddlyTweeter wrote:
Ciao Mat, that will likely open all I want well, but how do I dynamically in search filter (i.e. close many) to just what I need?

Not a great answer but it would be simple IF the message tm-close-other-tiddlers could be remade to take a filter rather than a single tiddler title.

As it is, I guess you'd have to use tm-close-tiddler , i.e the "search filter" button would really be a button to trigger a close-one-tiddler-at-a-time message chain. My guess is that it'd be pretty slow. 

Possibly another approach would be to merely hide all but the relevant tids using CSS. This should be very fast - but maybe using the wiki might be slow, since everything is open. If the wiki is not overly big (i.e not slow to use), then every tiddler could be open but hidden (i.e "display:none") from the very start i.e when the wiki loads, so the river looks empty like a normal wiki. The search button would really be a button that applies the search field value to some field which is transcluded into this type of construct (ref):

.tc-tiddler-frame { display:none; }
[data-tiddler-title="the tiddler I want"] { display:block }

The last line repeated for each tiddler you want to see (e.g by using a listwidget that iterates through the aforementioned field that is set with the search button).

That's a rough idea anyway.

<:-)

TonyM

unread,
Jan 18, 2020, 8:12:48 PM1/18/20
to TiddlyWiki
TT

It would be nice to understand why you would do this?

I imagine its only practical with a limited wiki size.

To me all tiddlers are waiting for your use anyway, so why open them to then reduce them? When you can just open what you want when you want?

Would it help you if you could specify a search on the URL that opens the Wiki?

Or as suggested use the defaultTiddlers, which can contain quite sophisticated filters including a search filter. However it may be nice to be able to bypass this sometimes when loading the wiki, because it increases startup time.

I have taken to using a compound default tiddlers "[[Home]] [list[$:/StoryList]]" to always open home then all previously open tiddlers.

If you want something specific to show on opening a wiki you can use startup actions, the plugin is more powerful than the built in startup actions, or you can use the $:/config/EmptyStoryMessage which when the story is empty says emptyMessage={{$:/config/EmptyStoryMessage}}. In a way this is like placing something on tiddlywikis background/desktop.

Regards
Tony

Mark S.

unread,
Jan 18, 2020, 8:37:13 PM1/18/20
to TiddlyWiki
InfoSelect was what started me on my more-or-less unending quest for an open source information management system.
I had just purchased the "pro" version when I got a notice that the price of future upgrades would be five times what I just
paid. After that I was wary of proprietary solutions where you have no idea what's going on in the board room.

I think CintaNotes may work the way you describe.

I can imagine a way to do what you want IF there is a button to activate the "reduction" search.
The button would close all the open tiddlers and then open everything specified per the search text.
The reason you need a button is because actions, like closing and opening things, require a
button. If there was an "action" attribute associated with the edit widget, then it could work without
a separate button.

Mat has a pretty good idea. I don't think you need to iterate and create CSS lines (which also requires
a button) if you're willing to use the regex matching provided inside of CSS. (e.g. title^={{search text}} )

TiddlyTweeter

unread,
Jan 19, 2020, 2:06:59 AM1/19/20
to TiddlyWiki
Mark S. wrote:
InfoSelect was what started me on my more-or-less unending quest for an open source information management system.
I had just purchased the "pro" version when I got a notice that the price of future upgrades would be five times what I just
paid. After that I was wary of proprietary solutions where you have no idea what's going on in the board room.

Right. I used the DOS version and was very happy with it. As computing evolved into Windows InfoSelect began to fail on character sets.  
So I bought & used the Windows  version but didn't like it so much. It lacked that instant filter experience.
The company stopped supporting legacy DOS version and even removed the download. 
Effectively the DOS software ceased to exist.
 
I think CintaNotes may work the way you describe.

Thanks. I'll take a look. 

I can imagine a way to do what you want IF there is a button to activate the "reduction" search.
The button would close all the open tiddlers and then open everything specified per the search text.

Right. Here is a kind of scenario ... TWO search/filter boxes ...

  First - OPENs all with tag "Tweet" (opening say 80 very short tiddlers; a couple of sentences each)

Reduce via ...

  Second - "CLOSEs" all those with literal string in the text field "#BottledWater" (maybe via CSS?)
 
The reason you need a button is because actions, like closing and opening things, require a
button. If there was an "action" attribute associated with the edit widget, then it could work without
a separate button.

I don't think that is too much of an issue per se. It is more the idea you open all found and REDUCTIVE close all you don't need in batches on a press. 
I think that would give a good enough replay of that InfoSelect behavior.
 
Mat has a pretty good idea. I don't think you need to iterate and create CSS lines (which also requires
a button) if you're willing to use the regex matching provided inside of CSS. (e.g. title^={{search text}} )

Right. I thought Mat's idea a good one to play with. Regex is ideal for me! :-) 

Thanks for your useful comments!

Josiah

TiddlyTweeter

unread,
Jan 19, 2020, 2:09:42 AM1/19/20
to TiddlyWiki
Ciao Mat

That is v. helpful! Thanks! 

The CSS approach I hadn't thought about. Looks promising.

Josiah

TiddlyTweeter

unread,
Jan 19, 2020, 2:23:16 AM1/19/20
to TiddlyWiki
TonyM wrote:
It would be nice to understand why you would do this?

Imagine a large screen. Imagine your Tiddlers display small fragments (a sentence or two). Imagine it has columns.
 = possible 50+ Tiddlers on screen at once.

Then you see some you don't want that can be filtered away as they contain the string "#BottledWater" ...

The approach is about dynamic addition and reduction that works visually through Tiddlers showing content.

Hope this is clearer!

I imagine its only practical with a limited wiki size.

Right. Would need testing on performance. 

To me all tiddlers are waiting for your use anyway, so why open them to then reduce them? When you can just open what you want when you want?

I understand your point. But actually the "dynamic open then reduce" has cognitive merit. Especially for data that is largely unstructured.
It is a different semantic approach.

Early days.

Best wishes
Josiah

TonyM

unread,
Jan 19, 2020, 3:26:16 AM1/19/20
to TiddlyWiki
TT

I see. One way to phrase it is to open a large set and reduce it by successive filters.

It reminds me of the use of include and exclude which resembles white and black lists or all the colour lists in between.

As a network engineer I found some very effective methods in the way one configures routing and security. I will try and find the basic mechanisium and terminology. One reason its worth looking at is it was designed also to optimise and rule in or out a given item very fast with the minimum processing or string comparisons. It was also possible to record every step taken to reduce to a result and view or reuse it in a simple outline.

In some ways this is the definition of filters free from the tiddlywiki meanings. Filter one set into another.

Also big data tries and do this with very large or continuoses input data sets, one of the key results is that this builds an optimum decision tree/paths, I believe this is a big part of claimed AI processes, but at least machine learning.

Using these ideas on top of tiddlywiki would be powerful decision or research tools.

Regards
Tony

TonyM

unread,
Jan 19, 2020, 3:35:24 AM1/19/20
to TiddlyWiki
Thinking about mats idea for a filter driven close. I did that before but it would be nice if the filter first previewed its action like made the subject titles red so you could see the impact, even the cumulative result. With a smart list of filters you could undo or even reorder them learning the best order to reach a final result, or the optimum decision tree.

Regards
Tony

Mat

unread,
Jan 19, 2020, 4:00:11 AM1/19/20
to TiddlyWiki
TiddlyTweeter wrote:
TonyM wrote:
It would be nice to understand why you would do this?

Imagine a large screen. Imagine your Tiddlers display small fragments (a sentence or two). Imagine it has columns.
 = possible 50+ Tiddlers on screen at once.

Then you see some you don't want that can be filtered away as they contain the string "#BottledWater" ...


This makes me recall an ol' article I've bookmarked:

Filter Functionality with CSS3 and its demos (try all 3).

<:-)

TiddlyTweeter

unread,
Jan 19, 2020, 4:11:05 AM1/19/20
to TiddlyWiki
Mat Tx! Spot on.

Very to the point CSS demos. Demo 3 is what I'm talking about.

TT

TiddlyTweeter

unread,
Jan 19, 2020, 4:24:33 AM1/19/20
to TiddlyWiki
TonyM wrote:
Thinking about mats idea for a filter driven close. ... previewed its action like made the subject titles red so you could see the impact, even the cumulative result.

Right. Interesting idea to highlight Tiddlers (in river) that will be "closed" (hidden) before button confirm.

Early days. 

TT

PMario

unread,
Jan 19, 2020, 5:49:30 AM1/19/20
to TiddlyWiki
Hmmmm,

We "kind of know", that nobody liked that behaviour.

TiddlyWikiClassic did exactly, what you described, with the search dialogue. ... Guess what. Nobody liked it. The first thing everyone did was, import the "SimpleSearchPlugin", which did open a "match list" and a button.

 - If you download the classic wiki,
 - delete the plugin,
 - save and reload,

You can test the "original" behaviour. ... It sucks.

--------------

I don't see a reason, why users should wait several seconds for all tiddlers to open. ... You could create a new search, that opens all tiddlers, which contain the "search term".  ... But this would also create a UI freeze with each keystroke. ...

So my minimal solution would be an "Open All" button in the search dialogue. .. So the user has control. see TWc

The other drawback I see, if users use "bad search terms" eg: "and" or "the", which probably will find every tiddler. Only experienced users would use search terms, that create a list that is small enough, that it makes sense to open it.

Your example:

Imagine a large screen. Imagine your Tiddlers display small fragments (a sentence or two). Imagine it has columns.
 = possible 50+ Tiddlers on screen at once.

doesn't really convince me, other than: "I want it". ... If 1 tiddler only contains 2 sentences there is a high chance, that order matters. Search will probably open them "out of order".

have fun!
mario

TiddlyTweeter

unread,
Jan 19, 2020, 6:22:54 AM1/19/20
to TiddlyWiki
Ciao PMario

I'm going to reply to this in detail later, after thought, as it is very interesting!

Let me say one thing now that your post assumes something implicit ... that "order is good" ... 

doesn't really convince me, other than: "I want it". ... If 1 tiddler only contains 2 sentences there is a high chance, that order matters. Search will probably open them "out of order". 

The problem with this is it negates the idea of emerging order when you have none yet. I'm most interested in emergent pattern, less so in what is already known.

Let's argue :-).

Best wishes
TT 

TiddlyTweeter

unread,
Jan 19, 2020, 7:40:46 AM1/19/20
to TiddlyWiki
PMario wrote
... nobody liked that behaviour.

I do :-)  The point is "scope for purpose." I would NOT expect everyone to like it. That is NOT the issue here which is a Minority Report. Move on ...

I don't see a reason, why users should wait several seconds for all tiddlers to open. ... You could create a new search, that opens all tiddlers, which contain the "search term".  ... But this would also create a UI freeze with each keystroke. ... 

You are confusing "performance" with what I am trying to DO. Performance IS an issue LATER. 

... Only experienced users would use search terms, that create a list that is small enough, that it makes sense to open it.

 Right. This is not yet thinking of "everyone". I am interested in replicating a way of thought that works through reduction, not addition

Your example: 

Imagine a large screen. Imagine your Tiddlers display small fragments (a sentence or two). Imagine it has columns.
 = possible 50+ Tiddlers on screen at once.

doesn't really convince me, other than: "I want it". ... If 1 tiddler only contains 2 sentences there is a high chance, that order matters. Search will probably open them "out of order".

This point is very interesting. For what I am *imagining* order is totally irrelevant. I am thinking of a BUCKET out of which you discard what you do not need to derive what you do.

Early days
TT

Thomas Elmiger

unread,
Jan 19, 2020, 1:19:52 PM1/19/20
to TiddlyWiki
Hi Josiah,

In practice, my listreveal plugin would allow to build a tiddler that lists everything. Here’s an example:

Does that come close to what you want? Tiddlers are initially collapsed, but else ... (I hav no intention to change this behaviour by the way.)

Good luck,
Thomas

Mark S.

unread,
Jan 19, 2020, 4:44:05 PM1/19/20
to TiddlyWiki
Probably too simple. The lazy guy's solution:

<$button>Open all tiddlers
<$list filter="[all[tiddlers]!is[system]!sort[]]">
<$action-navigate $scroll="no" $to=<
<currentTiddler>>/>
</$list>
</$button>
<$button>Reduce As Regexp
<$list filter="[list[$:/StoryList]regexp{$:/temp/search}]">
<$action-sendmessage $message="tm-close-tiddler" $param=<
<currentTiddler>>/>
</$list>
</$button>
<$button>Reduce As Filter
<$list filter="[list[$:/StoryList]subfilter{$:/temp/search}]">
<$action-sendmessage $message="tm-close-tiddler" $param=<
<currentTiddler>>/>
</$list>
</$button>
<$button>Reduce As Title Search
<$list filter="[list[$:/StoryList]search:title{$:/temp/search}]">
<$action-sendmessage $message="tm-close-tiddler" $param=<
<currentTiddler>>/>
</$list>
</$button>

It uses the search box (because I didn't want to create an edit box). Call this tiddler what you want and then set it as the default tiddler.

Maybe someone else knows the right incantation to automatically open all tiddlers AND a specified tiddler AND have that tiddler appear
at the top of the list. Whenever I tried, no matter what settings I used, TW wanted to put my tiddler at the BOTTOM, which was
the least useful place. So ... that's why there is a button to open all tiddlers.

Maybe this will at least give a feel for what you want.





On Saturday, January 18, 2020 at 6:15:30 AM UTC-8, TiddlyTweeter wrote:

Mark S.

unread,
Jan 19, 2020, 4:55:48 PM1/19/20
to TiddlyWiki
There's something magical about hitting the "Post" button. As soon as you do, the
clouds clear and the sun comes beaming in.

Anyway, if your tiddler is called, Page Starter, then this entry in the default tiddler field
should open with "Page Starter" at the top

[[Page Starter]]
[all[tiddlers]!is[system]!field:title[Page Starter]!sort[]]


Mat

unread,
Jan 19, 2020, 4:57:35 PM1/19/20
to TiddlyWiki
Mark S. wrote:
Maybe someone else knows the right incantation to automatically open all tiddlers AND a specified tiddler AND have that tiddler appear
at the top of the list. 

This is probably NOT what you mean... but just maybe it is: [is[tiddler]] specialtid +[reverse[]]

<:-) 

Mark S.

unread,
Jan 19, 2020, 6:04:00 PM1/19/20
to TiddlyWiki
Do multiple-run filters work for you as default tiddlers? They didn't for
me, but maybe I messed something up.
Message has been deleted

TiddlyTweeter

unread,
Jan 20, 2020, 3:26:44 AM1/20/20
to TiddlyWiki
Thanks very much everyone for very good ideas and pointers!

I'll test out with a real wiki over next few days and report back.

Best wishes
Josiah
Reply all
Reply to author
Forward
0 new messages