I really enjoyed it, mostly the world map. Once I was thinking in something similar, I was thinking in create a terminal software to monitor my small portfolio of stocks, and tell me about opportunities on the market. The reason to be on terminal was because I was looking for a more discreet interface running locally.
In my day job I author web dashboards (working in HP on performance testing tools) so I thought it would be cool to have those dashboards directly in the terminal. But I would have done it even without this incentive. I do a lot of projects just because they inspire me, check out GifW00t! https://github.com/yaronn/GifW00t
The provided example is a great illustration of how to build various layouts and use the various widgets. I find it lacks any examples of real-world data gathering. For us Node newbies, how would one, for example, graph system load of a remote server over time? I think examples like that would help get some people going.
Sorry if this seems like a dumb question; I'm not particularly familiar with Node.js, let alone this particular codebase, so the answer isn't particularly obvious to me.
Blessed is great, but I had some performance issues with really fast updates, so I made OhUI, which tries to minimize as much as possible the repaint zones. I think it is pretty efficient at this regard.
Where is the data coming from? Seems like a lot of animated data with limited data points specified.
Do you plan on accepting pull requests? I'd love to contribute to something like this.
I'm partially sad its written in nodejs, but I can't really think of what else it should have been written in.
I think clojurescript bindings would be awesome. The dashboard can be rendered from an immutable app state om style.
dnolen, I'm looking at you :).
node is actually really good at working with streams, which are a reasonable expectation for streaming logs e.g. to be in.
Basically you can do something like :
ESC ] 1337 ; File = [optional arguments] : base-64 encoded file contents ^G
And then display an image inline along with other text. E.g. that ascii rendering of the world could be replaced by an actual image of the world.I think it's telling that after 50 years, and all the work on GUI's, this is still a good idea.
While definitely neat, I'm not that sure that this is actually a good idea.
I agree that it is telling that this project exists and excites, but I'm not sure what about. Maybe about the poor state of remote GUIs. Generally I consider ncurses (and other non-line oriented terminal stuff) to be an ugly hack. For example a better solution might be if you could easily run an adhoc webapp on a server (or other remote host) and have it tunneled (over ssh) straight to your local browser without needing to manually fidget with tunneling and ports and urls and whatnot. But that would require some scaffolding to make it happen and I don't really see the community moving to that direction.
Did you look into the possibility of "adapting" something like d3 to draw on the terminal? Or does it just lack the abstractions necessary to do that cleanly?
I am using node-drawville which provides an Html5 canvas Api abstraction over the terminal. D3 uses svg so it is not adequate. However I did saw a port of d3 to canvas which I didn't had time to check.
Or you could wire it up to a browser-based terminal emulator like tty.js.
Or, replacing `top` with sparklines, say.
[1]: https://bbs.archlinux.org/viewtopic.php?pid=935588#p935588 [2]: http://conky.sourceforge.net/screenshots.html