[TW5] A short video to present a plugin that I'm currently developing

365 views
Skip to first unread message

Felix Küppers

unread,
Nov 5, 2014, 12:04:04 PM11/5/14
to tiddl...@googlegroups.com
Hi @all,

I created a short video to present a plugin that I'm currently developing.
....So now everybody knows what I am working on and why I ask so many questions in the forum :)

I described the plugin partly here: https://groups.google.com/d/msg/tiddlywikidev/hwtX59tKsIk/qAGRJxK9_iAJ

Note, that I did not show all the features and and I discovered a small bug during the presentation but if you are interested in
* mindmaps
* ticket systems and
* connecting tiddlers visually

you maybe want to check it out.

http://youtu.be/nq4UijNWvQA

Have fun
Felix


PMario

unread,
Nov 5, 2014, 1:34:31 PM11/5/14
to tiddl...@googlegroups.com
Hi Felix,
I think your plugin will be a big success! I love mindmaps for brainstorming :)

-------

But I think there is a problem with the UUID generation. Your ID looks like an , RFC 4122 UUID Version 4 (random) [1]
which has to have this format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

x .. hex digit random generation
y .. has to be: 8, 9, a, b

eg: 540618a7-ab80-4cbc-b634-6c809fc3575a

Your IDs are ok, if you don't care about the standard, but it will be confusing if 3rd party SW has to work with your ID.
Imo they'll expect a standard id. Since it's easy to change, I think, you should make your ID standards compliant.


Do you have a github repo, to test the stuff?


have fun!
mario

[1] http://en.wikipedia.org/wiki/Universally_unique_identifier


Felix Küppers

unread,
Nov 5, 2014, 1:51:58 PM11/5/14
to tiddl...@googlegroups.com
Hi Pmario,

really nice feedback. positive and constructive :)

Regarding the UUID: I did not even notice that, you have a very sharp eye. I will certainly take care of that. May I use your comment to forward this issue to the library maintainer of the uuid-generator I am using?

Regarding your question about my github.
I currently have two TW pull requests that I am waiting for to be accepted.

1) Allowing to specify a template in the context of the new-tiddler event
2) Giving users of modal a chance to reference the underlying tiddler

Because my code depends on that, I wanted to wait with the upload to my repository till I get some clarity about these requests.

Regards
Felix

PMario

unread,
Nov 5, 2014, 2:48:20 PM11/5/14
to tiddl...@googlegroups.com
On Wednesday, November 5, 2014 7:51:58 PM UTC+1, Felix Küppers wrote:
Regarding the UUID: I did not even notice that, you have a very sharp eye. I will certainly take care of that. May I use your comment to forward this issue to the library maintainer of the uuid-generator I am using?

Yes. Which generator do you use?


You can use this code if you want: http://chat-plugins.tiddlyspace.com/#UUIDPlugin
Its from here: http://www.broofa.com/2008/09/javascript-uuid-function/
testpage: http://www.broofa.com/Tools/Math.uuid.htm

There has been a collision report with the Math.uuidCompact() which calls the random generator only once.
The above code uses a different mechanism.
 
Regarding your question about my github.
I currently have two TW pull requests that I am waiting for to be accepted.

1) Allowing to specify a template in the context of the new-tiddler event
2) Giving users of modal a chance to reference the underlying tiddler

Because my code depends on that, I wanted to wait with the upload to my repository till I get some clarity about these requests.

I see.

-mario

Felix Küppers

unread,
Nov 5, 2014, 4:16:24 PM11/5/14
to tiddl...@googlegroups.com

Yes. Which generator do you use?

Due to conveniance reasons I use the mechanism by the library that I also use for drawing the network (vis.js).
Seems like they took a very simple approach generating the uuids (see https://github.com/almende/vis/blob/master/lib/util.js#L65).

I created a new issue-ticket by copy pasting your message. I will wait for their response.
I also suggested them your method from http://chat-plugins.tiddlyspace.com/#UUIDPlugin.

Regards Felix

https://github.com/almende/vis/blob/master/lib/util.js#L65
 

Stephan Hradek

unread,
Nov 5, 2014, 4:48:59 PM11/5/14
to tiddl...@googlegroups.com
I'm completely flabbergasted!

Alex Hough

unread,
Nov 5, 2014, 4:49:43 PM11/5/14
to TiddlyWiki
Felix,

This is wonderful stuff.
I'd love to have a play with it

Alex

--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/d/optout.

Alex Hough

unread,
Nov 5, 2014, 4:50:36 PM11/5/14
to TiddlyWiki
I'm completely flabbergasted! <--- me too!



On 5 November 2014 21:48, Stephan Hradek <stephan...@gmail.com> wrote:
I'm completely flabbergasted!

Felix Küppers

unread,
Nov 5, 2014, 5:14:23 PM11/5/14
to tiddl...@googlegroups.com
Thx @Stephan and @Alex, feels good to get positive vibes :)

Because my TW API differs, I will wait what Jeremy says about my pull requests before I publish the beta.

But really nice to know that some people want to give it a try :)

Its not done yet and I haven't shown everything.
Also what's really nice is that you can right click on the canvas and can immediately save its current state as png.

Jeremy also already implemented code for the next release that helps me too hook into the search mechanism. that way I can make it possible to only display searched tiddlers and their neighbours on the canvas.

Regards
Felix

HansWobbe

unread,
Nov 5, 2014, 6:52:04 PM11/5/14
to tiddl...@googlegroups.com

Very nice!  This appears to go quite a way towards replacing several of the functions of TheBrain that I still depend on.  It might also reduce my use of Microsoft's "Project" software.

Well done!!


On Wednesday, November 5, 2014 12:04:04 PM UTC-5, Felix Küppers wrote:
Hi @all,

...

Sylvain Naudin

unread,
Nov 5, 2014, 6:52:38 PM11/5/14
to tiddl...@googlegroups.com


Le mercredi 5 novembre 2014 23:14:23 UTC+1, Felix Küppers a écrit :

Also what's really nice is that you can right click on the canvas and can immediately save its current state as png.

Jeremy also already implemented code for the next release that helps me too hook into the search mechanism. that way I can make it possible to only display searched tiddlers and their neighbours on the canvas.


Great job ! This another behaviour will be great too !

I like mindmapping, I like TiddlyWiki, so I like your plugin :)
 

Ed Dixon

unread,
Nov 6, 2014, 12:54:38 AM11/6/14
to tiddl...@googlegroups.com
Love it! I am curious why D3 which is already available in TW5 didn't fit the bill? IMHO this would be a game changer if the relationships could be generated through the already existing tagging system and allow to open the related tiddlers when clicked. Building a graphical representation of existing content in the wiki. Awesome work regardless, congrats! 

Alex Hough

unread,
Nov 6, 2014, 1:09:32 AM11/6/14
to tiddl...@googlegroups.com
I'd second the importance of relaionships being generated through the already existing tagging system

Alex

Felix Küppers

unread,
Nov 6, 2014, 5:12:50 AM11/6/14
to tiddl...@googlegroups.com
Hi Ed


Love it! I am curious why D3 which is already available in TW5 didn't fit the bill?

Thank you very much :) I looked at several systems that are especially network oriented and thus provide more features than libraries that have a broader approach like D3. D3 is super awesome, I know, but the setup cost would have been too high. I compared http://visjs.org vs http://sigmajs.org/ vs http://cytoscape.github.io/cytoscape.js/ and vis.js won my comparison, altough cytoscape is crazy.
 
IMHO this would be a game changer if the relationships could be generated through the already existing tagging system and allow to open the related tiddlers when clicked. Building a graphical representation of existing content in the wiki. Awesome work regardless, congrats!

These days I will create a dropdown in the controls above the graph that allows you to display only tiddlers that possess a certain tag and their direct relations. I also want to allow a filter expression for that. Is that what you meant?

Regards Felix

Felix Küppers

unread,
Nov 6, 2014, 5:14:36 AM11/6/14
to tiddl...@googlegroups.com
Hi Hans,


Very nice!  This appears to go quite a way towards replacing several of the functions of TheBrain that I still depend on.  It might also reduce my use of Microsoft's "Project" software


Yes, its great for organizing. As for me, I program this plugin to be better organized with my master thesis :)

Regards
Felix

Felix Küppers

unread,
Nov 6, 2014, 5:16:03 AM11/6/14
to tiddl...@googlegroups.com
Merci beaucoup :)

Danielo Rodríguez

unread,
Nov 6, 2014, 5:33:57 AM11/6/14
to tiddl...@googlegroups.com
Hello Felix,

I have to admit that I'm in love with your plugin. I wanted it so much that i even though several times about programming it myself, but I don't have the needed skills for such a complex task. I'm glad to see that you are doing it.

I have to say that I'm glad to see that you are not using the D3 approach. I don't like how the graphs are created and how you can interact with them. I fell your approach is much more powerful and useful.

I can't wait to try it out!!!

Danielo Rodríguez

unread,
Nov 6, 2014, 6:21:28 AM11/6/14
to tiddl...@googlegroups.com
I just checked out Cytoscape, and It is awesome!

Why don't you like it? Seems easy to use

Felix Küppers

unread,
Nov 6, 2014, 7:07:19 AM11/6/14
to tiddl...@googlegroups.com
Hi Danielo,

really warm words, thank you Danielo!

Your question about Cytoscape: Yes its great I admit it, but I had to make a choice. After comparing the APIs, I felt It doesn't focus on graph-manipulation at runtime by the enduser (vis.js does this out of the box). vis.js has many modes for calculating the motion of the graph when beeing dragged, you can specify gravity and all the physics - cytoscape doesn't have this. Also I liked that vis.js allows "dot" and "json" notation to describe the graph (which is not really relevant here). Cytoscape allows stuff like shortest path calculation and all that (which is also not really relevant here). Both are great... as I said I had to make a choice and in the end vis.js appeared more useful.

Regards Felix

Danielo Rodríguez

unread,
Nov 6, 2014, 8:00:16 AM11/6/14
to tiddl...@googlegroups.com
Your question about Cytoscape: Yes its great I admit it, but I had to make a choice. After comparing the APIs, I felt It doesn't focus on graph-manipulation at runtime by the enduser (vis.js does this out of the box). vis.js has many modes for calculating the motion of the graph when beeing dragged, you can specify gravity and all the physics - cytoscape doesn't have this. Also I liked that vis.js allows "dot" and "json" notation to describe the graph (which is not really relevant here). Cytoscape allows stuff like shortest path calculation and all that (which is also not really relevant here). Both are great... as I said I had to make a choice and in the end vis.js appeared more useful.

Regards Felix

Ok, I have to trust you since I did not make any comparison. What I don like about vis.js is one of the things you consider a "feature", the physics. I hate them. I want to place elements whatever I want, not where physics allows me. Will you give the option to deactivate them? I would like to see something like this:

Felix Küppers

unread,
Nov 6, 2014, 8:47:15 AM11/6/14
to tiddl...@googlegroups.com
Ok, I have to trust you since I did not make any comparison. What I don like about vis.js is one of the things you consider a "feature", the physics. I hate them. I want to place elements whatever I want, not where physics allows me. Will you give the option to deactivate them? I would like to see something like this:
http://jsbin.com/gist/621d51ea7de19608127e?js,output

Very good point. I just implemented this. Also I expose all options of vis.js in a tiddler so they can be changed. All power to the user, right? :)

vis.js calculates the graph in the background and then gives the API user a chance to disable the physics. It all works exactly as in the example you linked.
Technical stuff see here: https://github.com/almende/vis/issues/161

Regards
Felix

Ed Dixon

unread,
Nov 6, 2014, 10:40:25 AM11/6/14
to tiddl...@googlegroups.com
Hi,

Yes that is exactly what I had in mind! 

Thanks, 

--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/72ik_hyXafg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+...@googlegroups.com.

Jeremy Ruston

unread,
Nov 6, 2014, 12:00:20 PM11/6/14
to TiddlyWiki
Hi Felix

I'm sorry to be the last to congratulate you on an excellent piece of work. I'll be looking forward to playing with the beta very much.

Best wishes

Jeremy



--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+...@googlegroups.com.

To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/d/optout.



--
Jeremy Ruston
mailto:jeremy...@gmail.com

Felix Küppers

unread,
Nov 6, 2014, 12:17:17 PM11/6/14
to tiddl...@googlegroups.com, jeremy...@gmail.com
Hi Jeremy,

your congratulations mean much to me, thank you.

There is a lot more to come, I will post this in a second video soon. Then I will do some code-cleanup and hopefully I can upload my code next week.

While I currently have two pull requests going, I absolutely depend on the modal patch. If you could take a look at it (the modal pull request) or tell me what else I need to fix to get it accepted, it would be great.

Regards
Felix

Stephan Hradek

unread,
Nov 6, 2014, 12:22:13 PM11/6/14
to tiddl...@googlegroups.com, jeremy...@gmail.com


Am Donnerstag, 6. November 2014 18:17:17 UTC+1 schrieb Felix Küppers:
Hi Jeremy,

your congratulations mean much to me, thank you.

There is a lot more to come, I will post this in a second video soon. Then I will do some code-cleanup and hopefully I can upload my code next week.

Please add audio this time. And I do not mean some fancy background music :D

Felix Küppers

unread,
Dec 3, 2014, 9:10:55 AM12/3/14
to tiddl...@googlegroups.com
Hi Mario,


Yes. Which generator do you use?

now yours :)

/**
 * An adopted version of pmario's version to create UUIDs.
 *
 * Shortened version pmario (1.0 - 2011.05.22):
 * http://chat-plugins.tiddlyspace.com/#UUIDPlugin
 *
 * Original verison:
 * Math.uuid.js (v1.4)
 * http://www.broofa.com
 * mailto:rob...@broofa.com
 *
 * Copyright (c) 2010 Robert Kieffer
 * Dual licensed under the MIT and GPL licenses.
*/

util
.genuuid = (function() {
 
// Private array of chars to use
 
var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');

 
return function () {
   
var chars = CHARS, uuid = new Array(36);

   
var rnd=0, r;
   
for (var i = 0; i < 36; i++) {
     
if (i==8 || i==13 ||  i==18 || i==23) {
        uuid
[i] = '-';
     
} else if (i==14) {
        uuid
[i] = '4';
     
} else {
       
if (rnd <= 0x02) rnd = 0x2000000 + (Math.random()*0x1000000)|0;
        r
= rnd & 0xf;
        rnd
= rnd >> 4;
        uuid
[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
     
}
   
} // else

   
return uuid.join('');
 
};

})();

Taskgraph is under heavy development at the moment and I felt this is the right time to switch.
If you have any improvements on your uuid code, please let me know :)

Felix

Tobias Beer

unread,
Dec 15, 2014, 12:38:52 PM12/15/14
to tiddl...@googlegroups.com
Hi Felix,

Where is node-type information stored?
If I double-click a node, I would have expected that to be seen in the json.
Also, there doesn't seem a way yet to change the node-type of an existing node.
So it will have to be delete, add new, correct?

Best wishes, Tobias.

Felix Küppers

unread,
Dec 15, 2014, 2:24:13 PM12/15/14
to tiddl...@googlegroups.com
Hi Tobi
 
Where is node-type information stored?
 
The node is really just a link to a tiddler, So all real information (=the text) is stored inside each tiddler.

If I double-click a node, I would have expected that to be seen in the json.

This happens when you click on an edge and it is just a help for me at the moment, not a feature :) later, a double click on an edge will open a menu where you can style edges. As for nodes, meta information are the positions that are stored in a file called map at the moment under each view path. just create a new view and some nodes and search for the view name in advanced search and you will see where everything is stored.
 
Also, there doesn't seem a way yet to change the node-type of an existing node.
So it will have to be delete, add new, correct?

Yes, I leave it to tw to manage all this stuff. but you are right, i should add an option where you can specifiy how a default node should be initialized. something like a new-tiddler skeleton. Good idea. its on my list for some next release.

While 0.6 is out as from today, I have not publically announced it yet as I want to write more docs and make a video on how to use taskgraph (I already created some quick help menus in the editor bar). Then it is much easier for the user to understand how to work with taskgraph and which options you have.

some advances in 0.6

Changes in Version 0.6.0

    End user:

    # Nodes in view can be filtered via any tw-filter [ done: 2014-12-04 ]
    # Pretty-printed Node Filter separating filter operands via new lines [ done: 2014-12-10 ]
    # Nodes can be named immediately without opened in edit mode [ done: 2014-12-12 ]
    # Physics mode is now toggled per view [ done: 2014-12-12 ]
    # Option to display immediate neighbours of a graph [ done: 2014-12-12 ]
    # More compact editor layout [ done: 2014-12-12 ]
    # Reconnect an existing edge (Vis: "Edit Edge") [ done: 2014-12-13 ]
    # No-name edges are created when no name is specified [ done: 2014-12-13 ]
    # Introduced private edge mode [ done: 2014-12-14 ]
    # Views may be renamed [ done: 2014-12-14 ]
    # New sweet button mechanism to connect tiddlers! [ done: 2014-12-14 ]

    More technical:

    # New uuid RFC4122, version 4 ID compliant generator (as suggested by pmario) [ done: 2014-12-03 ]
    # Code docs are now published at the github repo via JSDoc [ done: 2014-12-04 ]
    # Adapter is now available in the js environment via $tw.taskgraph.adapter [ done: 2014-12-01 ]
    # Overhaul of the whole API [ done: 2014-12-12 ]


Felix

Tobias Beer

unread,
Dec 15, 2014, 2:44:33 PM12/15/14
to tiddl...@googlegroups.com
Where is node-type information stored?

Sorry, I totally mixed up terms there, I meant edge-types!

Tobias Beer

unread,
Dec 15, 2014, 2:49:10 PM12/15/14
to tiddl...@googlegroups.com
Hi Felix,
 
# New sweet button mechanism to connect tiddlers! [ done: 2014-12-14 ]

When I open that editor, it says...

Please note: The current tiddler is always displayed in the graph!

Yet, I don't see that current tiddler.
Is it possible that system tiddlers are never shown in the graph?
If yes, is there an option to enable them?

Best wishes, Tobias.

Felix Küppers

unread,
Dec 15, 2014, 3:15:05 PM12/15/14
to tiddl...@googlegroups.com
Please note: The current tiddler is always displayed in the graph!

Yet, I don't see that current tiddler.

You are right, I should really highlight the current tiddler! But it is there! for example go to the welcome tiddler and click on the quick connect button. the search "utils"... you will see that welcome is also displayed in the graph.
 
Is it possible that system tiddlers are never shown in the graph?
If yes, is there an option to enable them?

yes you are right, they are never displayed. I could display them but I decided against that for now because system tiddlers should stay hidden in any case in my opinion. or not? if you have good arguments I might implement to show system tiddlers in graphs as well.

Regards Felix

Tobias Beer

unread,
Dec 15, 2014, 5:41:34 PM12/15/14
to tiddl...@googlegroups.com
Hi Felix,
 
yes you are right, they are never displayed. I could display them but I decided against that for now because system tiddlers should stay hidden in any case in my opinion. or not? if you have good arguments I might implement to show system tiddlers in graphs as well.

Not really, no... they should not be hidden from a graph, especially when I specifically add them, or am about to, e.g. via that button in the toolbar or one of the other ways. I sure see how I may want to add system-tiddlers to graphs. Actually, I may especially want to have those in a graph... to document those under the hood relationships of inner workings.

So, perhaps a global checkbox that allows to at least add, although not necessarily show them by default, would be nice.

Best wishes, Tobias.

Felix Küppers

unread,
Dec 15, 2014, 6:41:09 PM12/15/14
to tiddl...@googlegroups.com

Not really, no... they should not be hidden from a graph, especially when I specifically add them, or am about to, e.g. via that button in the toolbar or one of the other ways. I sure see how I may want to add system-tiddlers to graphs. Actually, I may especially want to have those in a graph... to document those under the hood relationships of inner workings.


Yes ok makes sense. I think I will leave it completely to the user's filter whether or not to show system tiddlers.

Thanks for the suggestion.

Felix

jimb...@hotmail.com

unread,
Dec 19, 2014, 1:10:14 PM12/19/14
to tiddl...@googlegroups.com
Hi Felix

I like very much your plugin. It fits perfectly into the way TiddlyWiki structures information and may structure the genesis of this information. However, I think it should definitively include existing linking mechanisms such as tagging, listing and direct text linking into the graphical interface. Attributing the same importance to the traditional linking in the graphical output would make the plugin more homogeneous and avoid any problematic situation where content is divided just by different networking mechanisms.

Anyway, thank you for your efforts
Jim

Tobias Beer

unread,
Dec 19, 2014, 7:55:31 PM12/19/14
to tiddl...@googlegroups.com
 Hi Jim,

However, I think it should definitively include existing linking mechanisms such as tagging, listing and direct text linking into the graphical interface. Attributing the same importance to the traditional linking in the graphical output would make the plugin more homogeneous and avoid any problematic situation where content is divided just by different networking mechanisms.

Indeed, that's certainly something worthwhile, to be able to view "computed relations", e.g. tags<>tagging, links<>backlinks... perhaps there will even be a way to declare / hook up your own lookup formula (in js), e.g. based on some custom field.

In relation to that, it would be fantastic, if the current graph could center a tiddler when opening it.

Best wishes, Tobias.
Reply all
Reply to author
Forward
0 new messages