webui-client issueshttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues2022-10-16T14:56:43+02:00https://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/90Automaton/grammar input box: table and string should show the same input when...2022-10-16T14:56:43+02:00Tomáš PeckaAutomaton/grammar input box: table and string should show the same input when switchingIf you write input in the table then it is not persisted in the text area. Let's implement shared state and only fill the data.If you write input in the table then it is not persisted in the text area. Let's implement shared state and only fill the data.Tomáš PeckaTomáš Peckahttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/89Input box types string and String are confusing2022-10-16T19:35:49+02:00Tomáš PeckaInput box types string and String are confusingStudent did come up with this which is wrong [webui_export.json](/uploads/fbe40c1ecdb3876cce424f1fda76afd5/webui_export.json)
We need to redesign this, it's very confusing because
* string is unparsed but sometimes (when?) this std::st...Student did come up with this which is wrong [webui_export.json](/uploads/fbe40c1ecdb3876cce424f1fda76afd5/webui_export.json)
We need to redesign this, it's very confusing because
* string is unparsed but sometimes (when?) this std::string is lifted to our string::LinearString (String)
* String type is `string::*`, it also needs to delimit symbols with whitespace and for linear string we need to wrap it in quotes (e.g . `"a h o j"`)
cc @bilybranhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/86show measurements2022-05-19T19:11:28+02:00Tomáš Peckashow measurementsWe can run algorithms within measurements frame and report those. We just need an API for measurements, printing the frame report is not enoughWe can run algorithms within measurements frame and report those. We just need an API for measurements, printing the frame report is not enoughhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/85Implement explicit cast node2022-05-19T19:10:21+02:00Tomáš PeckaImplement explicit cast nodeI guess this should work like a node where you select cast target from a dropdown menu (see `casts` from worker definitions).
We can probably filter the targets based on the previous result type but I am not sure how that plays out with...I guess this should work like a node where you select cast target from a dropdown menu (see `casts` from worker definitions).
We can probably filter the targets based on the previous result type but I am not sure how that plays out with the merged result types now.https://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/84Drop JMS "load balancer"2022-05-07T13:45:23+02:00Tomáš PeckaDrop JMS "load balancer"Look into implementations of load balancing. Do we really need the middleware API server implementing JMS?
Isn't it enough to just configure API server's nginx to be the load balancer and redirect the requests to one of the (worker) IPs...Look into implementations of load balancing. Do we really need the middleware API server implementing JMS?
Isn't it enough to just configure API server's nginx to be the load balancer and redirect the requests to one of the (worker) IPs? Is this easily scalable? Or do we need to hardcode the IPs into the nginx config?
I'd like this because this means that we can drop the API KTOR server and JMS.
On the other hand, all the workers would be API servers. Also with current state we have a 100% FIFO for requests (once worker finishes, it takes another job). With nginx load balancing we would have N queues that are processed individually. So for instance when there are two queues (A, B) and `len(A) = 10`, len(B) = 5` it can happen that A would be emptied first when B jobs run longer. Or perhaps not? https://guo365.github.io/study/nginx.org/en/docs/admin-guide/HTTP%20load%20balancer.html#maxconnsTomáš PeckaTomáš Peckahttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/83Document how to build and run webui for modified ALT Core2022-05-11T23:37:58+02:00Martin ProkopičDocument how to build and run webui for modified ALT CoreHi, I would like to implement some custom algorithms for ALT and use them from the webui, but I am facing a lack of documentation on the build process. I somehow did it last year for my Bachelor's thesis, but the only thing I remember no...Hi, I would like to implement some custom algorithms for ALT and use them from the webui, but I am facing a lack of documentation on the build process. I somehow did it last year for my Bachelor's thesis, but the only thing I remember now is that it was a mess and took way too long.
I would like step-by-step instructions (commands to copy and paste are enough) how to get from a cloned algorithm-library-toolkit-core repo with modified source to open browser with working webui based on the modified code. The only prerequisite would be installed Docker. It should also allow for incremental builds, so users don't have to wait half an hour after each change.
This should then be added to the README or the website.Tomáš PeckaTomáš Peckahttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/82Introduce parser generators for ALT formats2022-05-13T12:04:50+02:00Tomáš PeckaIntroduce parser generators for ALT formatsThese handwritten parsers are hard to maintain.
Look e.g. into [peggy.js](https://github.com/peggyjs/peggy), the successor of peg.jsThese handwritten parsers are hard to maintain.
Look e.g. into [peggy.js](https://github.com/peggyjs/peggy), the successor of peg.jsTomáš PeckaTomáš Peckahttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/75Add a form for automaton input2022-05-02T23:07:39+02:00Hana LitavskáAdd a form for automaton inputAdd form for table input. Discussed here https://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/issues/51Add form for table input. Discussed here https://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/issues/51BPhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/74Improve StateMaker usability for drawing automatons2022-03-25T15:53:18+01:00Martin ProkopičImprove StateMaker usability for drawing automatons- save and restore state positions when closing and reopening automaton output
- draw transitions as Bezier curves with ability to move the control points
- export to TikZ directly from StateMaker to preserve the layout- save and restore state positions when closing and reopening automaton output
- draw transitions as Bezier curves with ability to move the control points
- export to TikZ directly from StateMaker to preserve the layouthttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/71Add input and output boxes with Parse2022-04-19T17:35:22+02:00Hana LitavskáAdd input and output boxes with ParseAdd input and output boxes for string input that will be parsed to grammar, automaton... Using string::Parse templated algorithm.Add input and output boxes for string input that will be parsed to grammar, automaton... Using string::Parse templated algorithm.BPHana LitavskáHana Litavskáhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/69server: enable compression over HTTP2022-02-25T12:07:21+01:00Tomáš Peckaserver: enable compression over HTTPThe server probably does not compress responses. Firefox dev console shows 550kB transferred and 550kB file. The compression should lower that significantly.
https://ktor.io/docs/compression.html#configure_content_typeThe server probably does not compress responses. Firefox dev console shows 550kB transferred and 550kB file. The compression should lower that significantly.
https://ktor.io/docs/compression.html#configure_content_typeTomáš PeckaTomáš Peckahttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/68Rename repository to 'webui'2022-02-23T12:53:46+01:00Tomáš PeckaRename repository to 'webui'Let's rename the repository to 'webui'.
The name 'webui-client' is there for historical reasons only. Originally we used 3 repos (one for each subproject).
But now we use monorepo for the three services, it's not client only anymore.Let's rename the repository to 'webui'.
The name 'webui-client' is there for historical reasons only. Originally we used 3 repos (one for each subproject).
But now we use monorepo for the three services, it's not client only anymore.Tomáš PeckaTomáš Peckahttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/66Reduce bundle size2022-02-20T13:55:19+01:00Tomáš PeckaReduce bundle sizeToday's build of 73460371 (this does not have the `algorithms.json` bundled anymore):
```
File sizes after gzip:
737.9 KB build/static/js/2.a28c4d21.chunk.js
35.84 KB build/static/js/main.364ca3d4.chunk.js
775 B build/stati...Today's build of 73460371 (this does not have the `algorithms.json` bundled anymore):
```
File sizes after gzip:
737.9 KB build/static/js/2.a28c4d21.chunk.js
35.84 KB build/static/js/main.364ca3d4.chunk.js
775 B build/static/js/runtime-main.595ff79e.js
135 B build/static/css/main.876345ae.chunk.css
```
Still too much I guess.
As per https://create-react-app.dev/docs/analyzing-the-bundle-size/:
Externals:
* 72.4% by viz.js (1.98 MB, graphviz dependency) !!!
* 6.2% by MUI (174 KB, not much to do I guess)
* 4.1% by react (114KB, not much to do I guess)
* 2.1% by immutable.js (60KB, used only for Maps in redux)
Our code is not that big.
Find out how to reduce viz.js size. Their [github repo](https://github.com/mdaines/viz.js/) says they compiled the C code with Emscripten :( Is there a way how not to bundle whole viz.js?Tomáš PeckaTomáš Peckahttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/65We don't need to list all overloadeded functions2022-05-10T19:21:55+02:00Tomáš PeckaWe don't need to list all overloadeded functionsAs of now, we list all overloads of a function, e.g. `string::Compose`.
When user selects a `string::Compose` for e.g. `alphabet::BarSymbol` instead of `automaton::DFA`, it works, because the selection of the overload is left to the ALT,...As of now, we list all overloads of a function, e.g. `string::Compose`.
When user selects a `string::Compose` for e.g. `alphabet::BarSymbol` instead of `automaton::DFA`, it works, because the selection of the overload is left to the ALT, so it is actually not needed.
But we give user a visual warning that he chose a wrong overload (even if it works).
I'd like this to change.
* Let's list only one overload in the algorithm menu with a dropdown bar that shows all of them with appropriate docs (should the docs differ for every overload or should we unify the docs for all overloads?).
* Let's give the warning to the user only if he connects an edge from the box with a return value that cannot be used is absolutely not viable, i.e., it can't be used as an input for any of the overloads.
* However I am not sure how to deal with outputs of such overloaded box. Should we guess what the output is?BPHana LitavskáHana Litavskáhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/64Filter by return type / argument types2022-04-25T14:06:13+02:00Hana LitavskáFilter by return type / argument typesBPhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/63Create a second instance that will work with ALT dev branches2021-11-29T10:11:57+01:00Hana LitavskáCreate a second instance that will work with ALT dev branchesCreate a second instance that will work with ALT dev branches, not master. Or create a special worker and special queues.Create a second instance that will work with ALT dev branches, not master. Or create a special worker and special queues.BPhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/62Custom function node2022-05-13T13:47:02+02:00Hana LitavskáCustom function nodeBPhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/61Parse doxygen comments and visualize them2021-11-29T09:13:34+01:00Hana LitavskáParse doxygen comments and visualize themBPhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/60Link from algorithm to the source code2021-11-29T09:24:38+01:00Hana LitavskáLink from algorithm to the source codeBPhttps://gitlab.fit.cvut.cz/algorithms-library-toolkit/webui-client/-/issues/59Extend statemaker with pushdown automata2021-11-29T09:16:25+01:00Hana LitavskáExtend statemaker with pushdown automataBP