ryrobes / rvbbit

Reactive Data Board & Visual Flow Platform
253 stars 11 forks source link

Great project #9

Open awb99 opened 1 month ago

awb99 commented 1 month ago

Hi!

It's fascinating what you do here! I think I have an approach that is very complimentary to what you do.

https://github.com/clojure-quant/quanta-dag-algo/blob/main/dev/src/dev/algo_bollinger_start.clj

So I made a little dsl to define DAGs; I use it to create algorithms for backtesting Trading strategy algorithms. Basically it is one or more cells where a cell can be a Fixed value, a flow (something that can produce zero one or multiple values over time), And formulas that do a calculation based on other cells.

I now use missionary which is making FRP / dataflow programming In clojure and clojurescript easy.

The interesting thing is that my templates can be persisted and modified by code Easily.

What is also interesting is that such definitions are lazy; what I mean is that Services are not running when there is no demand for them. By starting A spreadsheet so to say the services it needs are started as well.

So far mY only two services is a calendar which emits events over time at certain Frequency and quote feeds form by it exchange (in which case the websocket Gets started when there is a consumer that needs it).

My approach is that I define templates In code and then run them. Your approach is that you create templates by UI.

I guess it would be great to have both.

You want to have a chat?

awb99 commented 1 month ago

One area where we could cooperate (if you are interested) is ui render components. I see that you use virtualization for react, and I started to work on something very similar: https://github.com/pink-gorilla/reagent-table In reagent-table I use ag-grid, cheetah-grid, highcharts, and a custom canvas-plotter with pixijs. The reason why I put this all into one project is that it is challenging to get a lot of data into the browser, and it is even more challenging to display huge data in the dom. I also experiment there with rtable, a sort of declarative way to define which columns to show, and how they should be presented (with formatting and styling). My current solution for sending huge data to the browser and use it to show only parts of the data is by using techml dataset for the browser, and doing operations there. This project is a mess, but I use the components pretty much daily.

https://github.com/pink-gorilla/options The idea behind my options project is to allow something to be configureable with options. This means that I can auto-generate the ui to display the options. In clj I then use specter to apply changed options. So basically the option ui has specter-paths.

kpassapk commented 1 month ago

I have been working with the Scicloj community on kindly-render, and have been meaning to play around with component rendering in this project. (Perhaps with tableplot.)

awb99 commented 1 month ago

The issue is that all the rendering libs that tableplot uses are not optimized for performance. At 5000 rows they will already start getting pretty much unusable.