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

Developer feedback on V1 #63

Open
Moumouls opened this issue Jan 6, 2022 · 3 comments
Open

Developer feedback on V1 #63

Moumouls opened this issue Jan 6, 2022 · 3 comments

Comments

@Moumouls
Copy link
Contributor

Moumouls commented Jan 6, 2022

Hi @ngfelixl,

It's not a bug but i just want to make some developer feedback about the new v1 🙂

Here how i use the lib:

  • In many projects i use this lib to display some graphs during a scripts execution on my machine (no server usage)
  • I use the stack and plot; stack like a commit to register graphs i want to display on a window and plot to push graph in a new window
  • So one script could push many windows with their own stacks.

In my use case; the v1 is now harder to use and may be not usable. Also i noticed a huge slow down since the system seems now more complex under the hood.

Also the topbar take some spaces, may be it could be interesting to let developers hide the topbar.

i hope my feedback could help your futur developments and on my side i'll stick to 0.7.7.

v1 feel likes a new package that answer to different goals not an evolution of 0.7.

I love your lib and a know that feedback can helps sometimes !

I would be happy to answer your questions if you have any 🙂

@ngfelixl
Copy link
Owner

ngfelixl commented Jan 6, 2022

Hi @Moumouls,

thanks a lot for your feedback! It is super valuable for me.

I see your point with the stack function. Let me explain a little bit my idea behind the design change. With the v1 implementation of the plot function, it is possible to add more plots to one window, because it recognizes open connections and just pushes the data to the connected windows. In 0.7.7 for example this was not possible as it opened a new window every time the plot function was called. This was the reason to introduce the stack function.

As an idea: Would it help if you could rearrange the plots in the frontend, e.g. also on different Tabs or Nav entries, for example per drag and drop? This way the API (which I think is simpler to use, no stack and clear) could stay the same and you have the same separation of plots (except that they are on the same window). In the meanwhile it might be good to add a section in the docs with a hint for npm i [email protected].

Hiding the topbar is definitely not a problem. It's an easy implementation.

Regarding the performance I'll have to analyze. Can you provide me a script or a hint of what you are plotting, e.g. how many plots, what type of plots, etc.? Are you using stream plots?

@Moumouls
Copy link
Contributor Author

Moumouls commented Jan 7, 2022

Hi @ngfelixl ,

I can also add some details about my CLI usage, the v1 now do not exit (close server) also if i do not use observable. So i need to CTRL+C my shell before restarting the script. The v0.7 was more CLI friendly. A suggestion could be to let close the server if the developer do not use observable feature.

Would it help if you could rearrange the plots in the frontend

I think i could helps, like. Here a page layout that i can use:

---------------
         graph1
------------------
graph2.  | graph5
graph3.  |  graph6
graph4  |. graph7

You can notice that i this configuration a stack could be a column.

About performance

In my use case i plot on each window like 35-50 graphs with 5-10 curves and 50 data points. On my experience a Single chrome tag will handle a max of 50 graphs in my use case. (MBP 16 late 2019)
The new SPA system will be an unresolvable bottleneck i think here.

Also the old system allow the developer to play with tabs to custom layout composition and also play with tabs to compare accurately 2 graphs, an exemple: you compute a curve on 2020, the lib will open a tab, then you compute the same curve on 2021. You can easily play with Chrome short cut to change tab quickly and compare the curves.

A use case (currently mine); the developer script cannot handle on the same graph both 2020 and 2021 curves, since the underlying script generating curves is not designed for performance reason to compute 2020 and 2021 curves at the same time.

I think 0.7 fit really well in CLI usage, and the v1 fit really well in server usage. May be combining 0.7 and v1 could be the final solution to match both CLI/Server use cases, so developers will have the choice.

But it could be also time consuming to maintain both use cases...

@ngfelixl
Copy link
Owner

ngfelixl commented Jan 9, 2022

Thanks! It seems that re-layouting the page could solve your issues with the stack function, couldn't it? Also if you could plot ~50 plots, with up to 10 curves and 50 datapoints each. Which makes ~2500 datapoints in total, that would be good? I'll have a look and create some benchmarks.

I can also add some details about my CLI usage, the v1 now do not exit (close server) also if i do not use observable. So i need to CTRL+C my shell before restarting the script. The v0.7 was more CLI friendly. A suggestion could be to let close the server if the developer do not use observable feature.

It should close the server if there are no connected windows. We could add the possibility that either, as you suggest, it closes itself if there are no observables involved, or reintroduce the clear function.

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