Remember the last time you thought, “You know, Excel is just a little too modern, I wish I could do multi-dimensional analysis using my keyboard, in a terminal, the way the Pilgrims did it.”
Me neither.
Yet, here we are.
I was going to originally throw this over the fence release this as a bit of an April Fool’s joke, but I didn’t have quite enough time. I actually showed this off to the fine folks at my Collaborate session last month, and believe it or not, some of the people there thought it had some interesting use-cases.
Why Essterm?
As part of my research for a different project, I came across a Java library called Lanterna. Lanterna allows for implementing interfaces in a terminal. It’s like Java’s Swing (GUI) library, but for text. One of the interesting use cases for this is that you can SSH into a Linux server from Linux/Windows/macOS/whatever and run it through the terminal. So I started playing around with the widgets that are available in the library – text input areas, labels, buttons, list boxes, tables, dialogs, and so on, wiring it up to Essbase, and well, here we are:
I’ve been pretty happy with the text-based GUI capabilities of the Lanterna library, including my ability to wire up a GUI for such things as a little About dialog:
Connecting to a server/application/cube:
Performing ad hoc operations:
And building an options dialog:
As you can see in the short video, Essterm is packaged as un “uber-jar” that is runnable. This has been my preferred way to distribute Java applications lately since it lets you get away from boring class path issues and batch/shell files that have to try and invoke Java in just the right way. I really like being able to just run a JAR file and not have to worry about anything else.
Next Steps
As with many other things I work on, Essterm is a bit of a side project. And the business of Making Essbase Even Better in an official capacity comes first. But if you are interested in playing with Essterm, please feel free to contact me for the proper files. I’d be curious for your feedback. I am thinking sometime later this year I will just release it as an open-source project for anyone at all that wants to use it or make something with it.
I really like the retro look. Very clever!
Really cool, do you mind sharing the code without the backend features?
Hi Soufian,
I will likely share out the code (GitHub) in the future but for now I’m not planning to release it. It relies on several internal libraries and projects that make sharing it out problematic.
Nice – I like it!