[ Streams ] : future development

With any luck, I hope to get back to working on Streams next month.

With the FileUploads plugin beta released, TW 5.2.0 release imminent, and things starting to settle into a bit of a routine at my day job, I should hopefully have a bit more time to spare. Having this forum should help too, I was increasingly frustrated and losing motivation to engage in the google group.

First on my list of things to do is create a plugin library for Streams along with an associated optional plugin updates notification feature. With this in place, I will be able to make frequent smaller updates when I have the time, and users will find it easier to keep abreast of changes.

This is your chance to provide feedback that might influence what I might prioritize after that. There is a list of issues and ideas here. You can express your support for any of them by engaging on Github or posting about it here.

Other ideas or requests are also welcome. However, please take the time to write them out concisely and coherently.

Edit: I would like to keep this thread focused on directly actionable feedback please. For other discussions please start a new thread/topic and reference the post to which you are replying.

+1 your launch of this new support channel, @saqimtiaz, and your commitment to continued support ; as one for whose daily workflow is now Streams-dependent, it means a lot to me!

By way of constructive feedback, i must say that there are two other plugins that i have found to be intimately -inextricably, even- connected to Streams, namely:

Iā€™ve said plenty on the GGroup about reasons why (can elaborate if need be, tho i suspect youā€™ve heard enough from me :wink: ), but my suggestion as to what you as Streams developer might do is to address the Streams Fusion addon in much the same was as you have done on your Installation tiddler w/r/t Relink titles addon -i.e. saying esssentially: itā€™s optional, but can help you to Fuse a set of nodes to the parent tiddler, to a new tiddler, or the clipboard.

ps: As far as iā€™m concerned, you could even fold Fredā€™s code into your own, if you guys both thought that to be a wise moveā€¦ But then there may be a higher wisdom in the old saw about "Small Pieces, Loosely Joined, " i dunno. Finally: whatever makes for less breakage over the long run is what should probably be done, IMHO.

/walt

Yes that is a good idea. The other thing I have been considering is asking the developers for Relink and Fusion if I can offer those plugins through the Streams plugin library. That would make installation a lot easier for users. That needs to be weighed up against the fact that setting this up would take time and effort, and a community plugin library hopefully isnā€™t too far off which would also meet this need. In other words, my time might be better spent on other things.

I would prefer not to. Firstly it is a lot more work to maintain and support code that someone else has written, especially wikitext code. Furthermore, the functionality offered while useful to some is still very far from being of universal utility to Streams users. Hence also the design decision to make Streams flexible enough that others can write such addons and customizations.

2 Likes

Maybe Iā€™m missing something obvious, but it really seems to me that Relink should be considered to be merged into the core - at least to some degree (default configuration). Doesnā€™t it mainly do what the core tries to do but is more thorough? Maybe it does some other stuff Iā€™m not aware of that could cause some conflicts somewhere.

2 Likes

My uninformed guess would be that there edge cases where the Relink functionality would cause conflicts/issues if included in the core. If you are interested there are issues on Github that mention Relink: Issues Ā· Jermolene/TiddlyWiki5 Ā· GitHub

Anyway, thatā€™s probably worth a separate thread if you want to discuss it further.

Saq,

I love and now depend on Streams, but I wanted to share some thoughts in case it helps you recognise an opportunity.

One of streams key benefits is you do not need to think of the title and it generates subtiddlers, however the tiddlername/serial number format does not add value in the recent and other tabs, if you have a lot of entries, it wastes a lot of space and is all but meaningless. As soon as I install Streams I change $:/config/sq/streams/new-node-title to
$:/s/<<now "[UTC]YY-0MM-0DD 0hh:0mm:0ss XXX">>

This hides all stream items behind the system tiddlers. I like this because inside the stream I can also rename an item to a regular non system tiddler and it then becomes searchable and visible in recent etcā€¦ This way of promoting it from an item in a stream to an actual regular tiddler is very helpful but I believe it could be made easier.

Many of us have tiddler templates or ways of indicating what a tiddlers function is, for example the todo tag to make it a todo item, then a done tag to make it done.

I would like to see one or more ways for users/designers to provision a selector to metamorphose a stream item into another item, it can stay in the stream or leave the stream at the same time.

This idea support the rapid capture brainstorm concept of streams because after the even one could mop up and convert the content as desired.

There would be value adding to my workflow a streams search tool to search only the items in the current stream, if the are tiddlers or system tiddlers, or across all streams/stream items in the wiki, perhaps even with a custom filter. eg all stream items tagged todo, all items in current stream tagged todo containing ā€œaccountsā€.

In fact as I think about this, if I could set the naming standard per stream (or even apply a filter to rename stream items) this would be very help full to use streams in other ways. eg a local override of $:/config/sq/streams/new-node-title with a field streams-new-node-title. The ability to invoke other setting like add the todo flag or set the field object-type to task would be nice.

I also hope all the above could be implemented with a simple hack if not integrated into streams.

Happy to chat further.

hello everyone, Iā€™ve migrated to talk;

happy for Streams-fusion to be integrated fully or through the library, whatever makes most sense. Iā€™ll support Saqā€™s recommendation to keep it separate and will work with him to see what improvements to the streams-fusion plugin can benefit from.

1 Like

I think this should do the trick.

$:/s/<<stream-root-title>>/<<now "[UTC]YY-0MM-0DD 0hh:0mm:0ss XXX">>

The problem with this method is, that relink canā€™t handle it very well. :confused:

I would like to keep this thread focused on directly actionable feedback please. For other discussions please start a new thread/topic and reference the post to which you are replying.

Hi Saq,

Iā€™ll suggest the things that I would personally like to see. I frequently use Streams nodes to represent tasks, and there are a couple of things that I feel would enhance Streams in this regard.

Suggestion 1

The first is really the same thing that Tones has suggested - some method of adding tags (and possibly other fields) while editing a node. I have tried creating a context menu for adding tags but found this too cumbersome. I think that a good solution would need to be keyboard only in order to not undermine the strengths of Streams.

Iā€™m not sure what would be a good workflow but here is one possible idea: You could define some string that you could add to the text of a node, which gets converted into a tag upon saving. For example maybe I add @Task to the text of a node, and then when I save the node the text gets removed and a ā€œTaskā€ tag gets added.

Suggestion 2

The second thing that Iā€™d like to see you have already added to your list of ideas: Rename nodes based on first line of text. In my opinion handling tasks is a lot easier when the name of the task is stored in the tiddler title.

I would add that there are no doubt a whole bunch of other scenarios besides task management where both of these features would be handy.

Thanks for all your work on Streams.

@sii thank you for the feedback and for taking the time to write it out in a coherent and helpful manner.

There is a Github issue that discusses some potential ways to approach this and it might be helpful for you to read and provide your thoughts on it:

There is a challenge that needs to be addressed to try to implement this or even the suggestions for parsing tags from the text of a tiddler. Namely, currently the distinction between exiting editing mode and saving a node is almost non-existent in Streams.

Hitting Esc to exit editing and Enter have the same end result in terms of the resultant node. Similarly just saving and reloading your wiki with a node in editing mode does the same thing, the node is saved but the next time you view it wont be in edit mode.

In order to support any parsing of the body of a tiddler to rename or add tags, this UX will need to be re-thought and will likely need a complete rewrite from scratch. If I end up eventually doing such a re-write it will be some time off and will likely encompass any other changes that could be made at the same time to address other issues and concerns.

One of the other related issues that needs attention is that recent browser changes mean that the current rename node mechanism needs a re-write. This might offer opportunity to explore different and more flexible UX related to node titles.

In general I am not too keen on trying to parse extra information from the text of a tiddler because it can be brittle and error prone, and there is no feedback to the user until after the operation has been performed. I would rather try to explore alternative UX ideas. I welcome any ideas in this direction.

Saq,

I think some of the requirements for steams can be met different ways. The simplest of which may be a tag based transclusion that works like our current Tool bars, that adds a ā€œmenuā€ to items. Then its easy to create tag selectors and more and have them appear, perhaps hiding behind a more ā€œ>>ā€ indicator etcā€¦ Just build the mechaisium and the solutions will come (including from me).

Actually it is quite easy to create additional toolbars to handle such items.

Regards
Tones

There is a Github issue that discusses some potential ways to approach this and it might be helpful for you to read and provide your thoughts on it:

Thanks I had not noticed that GitHub issue. Unfortunately I donā€™t think I have much to add beyond what you have already said. The ā€˜backslashā€™ approach from your demo seems the most flexible, and depending on how it was set up probably a bit quicker than having to manually write ā€œtags:ā€.

If I have any more thoughts on this Iā€™ll make a comment on the GitHub issue.

In general I am not too keen on trying to parse extra information from the text of a tiddler because it can be brittle and error prone, and there is no feedback to the user until after the operation has been performed. I would rather try to explore alternative UX ideas. I welcome any ideas in this direction.

As I say above in terms of adding tags I think the backslash method would be superior anyway. I suppose if you implemented this you could use the same interface for renaming nodes?

What makes that approach interesting is the fact that it is entirely keyboard driven and would have utility outside of Streams as well.

I just want to point out, that for windows users the \ as a trigger may be a problem, since backslash is used a lot if you write windows paths. eg: c:\users\mario\something or cd \ which goes to the root of the directory.

Atm other text editors seem to favour ctrl - space to show a ā€œtext specificā€ popup or do autocomplete if it is already clear, what the user wants to do. Or alt - space may be an option too. ā€¦ I think it will be configurable anyway :wink:

Precisely. All keyboard shortcuts can and should be configurable in TiddlyWiki.

Saq,

From the outset of Streams I have felt it would work well if it could be used in a mode where each items text is stores as the tiddler title, perhaps with a more displaying the text if it existed.

Basically no need to generate tiddler name since the text entered will be that tiddler name.

I know it seems like you will end up with long tiddler titles, but this may be what people sometimes want. Some outlines lend them self to this, eg one quickly brainstorms a list of tasks and subtasks for a project nested in the outline, then can work off the actual tiddler by the same name from another list.

Basically streams becomes a stream of consciousness tiddler creation process and they all remain in their original and rearrangeable structure. But gain real, searchable not automated names.

As I asked before if each top of the stream tiddler could have a local alternative naming filter and if there was a way to set the name to the text entered, it would be easy to create streams that look the same but work in fundamentally different ways. Primarily the generation of structurally related tiddlers not to mention the value of breadcrumbs.

Regards
Tones

This, as well as all your other ideas, have already been addressed in discussions you have been privy to, with explanations as to why they arenā€™t feasible (either for the time being or at all) or do not match my own vision. I really donā€™t have the desire to revisit what is by now well trodden ground. All it does is sap my energy for working on Streams at all.

Yes, it is true that you have had a very different vision of how you would like Streams to be from the outset. Streams was intentionally written in a manner such that all of its core functionality is in wikitext, so that others could adapt it or create their own similar solutions.

I recommend that you take advantage of this and realize your own vision, I am sure the community would benefit from it immensely.

The SQ Plugin library is now available.

The library current includes the following plugins:

  • Streams
  • Streams Fusion
  • Relink
  • Relink-titles

Third party plugins have been included for the convenience of Streams users with the consent of the plugin authors, thank you @fastfreddy and flibbles. If @JanJo converts his addon to a plugin I would be happy to add that as well.

I still need to update documentation for Streams, but I would appreciate any feedback on whether the plugin library is working as expected. A good test is to install Streams Fusion via the library, which will also install Streams and Relink automatically.

Still on my list of things to do in relation to the library:

  • Specify Relink as a dependency for Streams, so that installing Streams from the library automatically installs Relink
  • Update Streams documentation with the plugin library as the recommended method of installation.
  • Add a readme tiddler to the Streams plugin so that it is available within the plugin installation UI.
  • If time permits I may also record a short video on how to install the plugin library and then install Streams. If anyone wishes to help with this, it would be most appreciated.

Technical details:
I would also like to acknowledge Nicoā€™s excellent work on NPL, which is a proof of concept for creating a plugin library with plugins from different github repositories. Iā€™ve extended it to support multiple plugins from a single repository and plugins from TiddlyWiki files. The plugin library is updated every hour with the latest published version of each plugin.

4 Likes