Example of a Shakti-powered spreadsheet application [video]
youtube.com
youtube.com
Slides (view in Powerpoint slideshow mode to see the animated GIFs): https://github.com/chrispsn/presos/raw/master/2020-02-26%20M...
And past demo videos of the JS prototype:
- Basics: https://www.youtube.com/watch?v=_U6gE3cNgbI
- Dynamic tables: https://www.youtube.com/watch?v=x32tBLGrLAQ
EDIT: Ok, I found it: https://shakti.com/ although I’m still unsure what it does. I guess some kind of stream processor database.
How to install: https://www.youtube.com/watch?v=l19Ef9v2uVI
Sounds totally Web Scale
This guy explains it well although is a little zealous:
https://scottlocklin.wordpress.com/2013/07/28/ruins-of-forgo...
The basic setup was:
1. set up a q server and load lots of price data and signal tables in memory 2. open a connection to the server from your spreadsheet 3. write q queries in excel directly.
Because q is so compact you could essentially write a (quite long) one line aproximate backtester, as long as your q server stored daily prices, volumes, advs etc in a sensible way.
The spreadsheet form factor was pretty good - it was nice to be able to plot arbitrary series and generally made it quite fast to work with data.
It was by no means perfect, but I found it infinitely better than setups like jupyter notebooks.
Unfortunately the project looks pretty dead. And further one of the bullet points is "is lightweight: ~2000 lines of source code (excluding libraries)" but looking into app.js it's something like 23k loc. It uses react but it looks to be pre-JSX. And because it's all in one giant file it feels too overwhelming for me to want to learn/extend it. He says it's compatible with IE 11. And maybe that's why it's structured that way, but I don't know. Despite it all the idea is really cool.
Mesh's backend sits in one giant file because that's how we can write it in a Mesh sheet. But unfortunately the JS parsing library is huge and forms the bulk of the code. Happily, the k version is currently ~100 lines excluding tests.
If JSX were used, would the code need to be compiled? Mesh used to have a compilation step but it just added complexity (config files, build process, increased download size). Keep it simple! React.createElement is fine.
I've never seen k, nor any array langs before but would definitely checkout the K mesh version.
No idea about the JSX though.
> "A code editor that feels like a spreadsheet"
It literally is a spreadsheet though right? Is there something that separates this from an google sheet?
Also, the source repository on [1] Github is a bit more informative (for this audience).
For example, in existing spreadsheet programs, each cell gets an A1-style location reference (even in an Excel table or a dynamic array).
That's not the case in Mesh, but it does something similar: a cell's default name is where it was entered in the grid UI, and (soon!) we update that name when the cell gets moved around.
But that's still possible in Excel too right? With "named ranges".
Anyway, I see you're the creator and want to thank you for sharing the project and releasing the source-code. I feel like it's pushing the boundaries, but it can't really be explained yet. Look forward to seeing future development in this!
More excited to discover ShaktiDB!
Curious to know how this relates to kona! [ https://github.com/kevinlawler/kona ]