Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem: Hyperflow has no Advanced mode #226

Open
sjmackenzie opened this issue May 29, 2018 · 2 comments
Open

Problem: Hyperflow has no Advanced mode #226

sjmackenzie opened this issue May 29, 2018 · 2 comments
Assignees

Comments

@sjmackenzie
Copy link
Member

sjmackenzie commented May 29, 2018

Solution: a menu item Hyperflow -> Advanced checkable menu item enables or disables advanced mode.

When advanced mode is activated, these things are visible:

  • node mode and graph mode
  • the red lock button in run mode appears and is not locked
  • the node, graph, run mode buttons on the top right appears.

When we first run Hyperflow, advanced mode is disabled.

@dmichiels
Copy link
Contributor

dmichiels commented Sep 18, 2018

I had an idea for the user experience in hyperflow. For the moment, we think it like a browser, in which each tab is a 'running app', or a 'graph' or a 'node'. There is a button on each 'running app' to make available (hot-swapping) the new changes in the nodes.

I propose another approach for each tab. Each tab have a breadcrumb, that allow to go deeper in the implementation of a node.
IE:

  • You open the application cardano, the breadcrumb is hidden because it is only the top level.
  • You want to change something, so you can by going in the menu open the graph relative to the cardano app in graph mode. You now have on top of the screen a breadcrumb with : | app > cardano |
  • You then open a sub-node by clicking it on the graph, let say 'model.rkt', it is an agent, so you are now in node mode with the code. The breadcrumb is | app > cardano > model |.
  • You can change the code, save it. It will automatically update all the parent in the breadcrumb. So the cardano app is changed. You can click on "app" to see the change, then go back to "model" in two click.

What I like with this, is that it is very clear how the hotswapping is working : only in the same tab. So you can open any node and change it while having other application open, and there will be no conflict.
Also, I think it can be easy to work on a graph with this tool, to navigate easily in the graph (not having 25 tabs open and search in the list...).

breadcrump

Edit :
Also, I think that the "advanced mode" will be the one with the breadcrumb. Only if you go in the menu to open the graph of the application, you go in fact in "dev mode" for this tab. Otherwise, you only see the app.

@sjmackenzie
Copy link
Member Author

I see, this is an interesting concept we can pursue!

Though to keep things as simple as possible, I'd think the end goal is to use a functional approach to this. Meaning, we have a top level language like xin which will generate the dependency graph where all nodes have a unique id. We'll feed that graph into the fvm and the graph will be loaded under a top level name. Now if you want update portions of that graph then you change a sub section of the graph, rerun xin and fvm will be smart enough to only swap out those nodes that have new id numbers.

My hopes for the future are: every interaction we have when updating a running instance of a graph is done this way. Whether it be in the hyperflow editor or you editing files manually with your emacs editor.

The cli api would be something like:

new graph:
$ xin new graph-name1 graph ./path/to/graph

update graph:
$ xin update graph-name1 graph ./path/to/graph

Then hyperflow could make use of the equivalent at an API level (not cli level).

Keen to hear your thoughts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants