Edit: Unfortunately, the images originally included in this post are gone, because of hosting problems in late 2009. My apologies.
Whether or not Oleo is a good idea for you is predictable, based on your reaction to this picture.
If you shudder and sweat at the sight of Banquo‘s ghost, then perhaps you should just skim through the rest of this, nod your head once and click on the next link in your feed reader.
On the other hand, if you feel a small jump of joy and say, “Hey, that’s VisiCalc!” … then maybe Oleo is for you. Or at least you won’t be intimidated by it, which is the important part.
I intended to include Oleo in this little string of howtos because I wanted to talk about something that was more like an application than a utility. I think it’s important to show that console programs can actually be useful, and not just utilitarian. In other words, if you need a console program that actually does something, rather than just make things easier for you, there are options out there.
But the fact of the matter is this: Oleo is one of those programs that is so powerful and so complex that I can’t possibly begin to scratch the surface of it. I spent two or three days with it, putting together basic spreadsheets and learning the way things work, and once you get into the swing of it, it’s every bit as functional as Gnumeric (Oleo’s GNU successor) or OpenOffice.org-Calc … or VisiCalc, for that matter.
The problem is that the learning curve that’s attached to Oleo is more like a learning cliff. Everything is handled with key combinations — and in some cases, double and triple key combinations. As an example, quitting Oleo is CTRL+X followed by CTRL+C. Furthermore, a lot of conventions for modern spreadsheets are either optional with Oleo (like letters for columns and numbers for rows) or are embedded in submenus of submenus (like alignment within a cell), which again are handled through double-keypress combinations. And I don’t mean key combos like this.
Which doesn’t mean that Oleo is a bad spreadsheet application; quite to the contrary, I’ve been very impressed with it. It moves and behaves a lot like it should, it’s just so pre-conventional that it’s like learning the entire concept over again. I grew up with VisiCalc and Lotus 123 and even the Commodore Plus/4‘s bundled spreadsheet, so for me, Oleo isn’t intimidating, it’s just unfamiliar. Maybe you’ll see it in the same light. But I can guarantee once you start using it, you’ll start to appreciate the minimalism that masks the power underneath.
I’ll give you a push in the right direction now, although this hardly qualifies as a proper howto. One thing Oleo has going for it is extremely detailed documentation, which is a huge boost.
Something else that’s important to mention is that Oleo has a graphical mode, and will run in the X environment like Gnumeric does. I attacked it in console mode because I wanted to demonstrate that it would work — or at least be of some use — on the oldest of hardware. So after you’ve finished your obligatory experimentation in console mode, you can reward yourself by learning the graphical version. And probably after that, you’ll want to get out OpenOffice again, and breathe a sigh of relief. ;)
If you open Oleo in a terminal emulator, append the command with an
-x flag. This will force it into ncurses (non-graphic) mode, rather than defaulting to its sparse X version, which looks kinda like this.
Remarkably similar, isn’t it? And of course, it follows the unwritten console program law, which says you’re not allowed to give the user any help when he/she first starts your console program. Give me sparseness, or give me death.
You’ll be in the top left corner of the spreadsheet by default, so start typing. Press enter when you’re done.
Well it looks like we’ve already run into a snag. Actually it’s not a snag, it’s just that Oleo is behaving a lot like it’s 8-bit counterparts, and if you remember the old days of text-mode spreadsheets, you might realize that the problem is that Oleo thinks you’re giving it a variable or something. You didn’t tell Oleo you wanted to give it plain old text. Press the backspace key to erase what you did, and re-enter it. This time, enclose it in quotes.
Now we’re cooking. With that much out of the way, we should be able to get the framework for a proper spreadsheet in place. Navigate with the arrow keys and enter text labels as you did earlier.
That’s a start, anyway. Next, let’s put some numbers in there.
I didn’t use the same numbers as in the VisiCalc screenshot, because I didn’t want Apple’s lawyers (or whoever owns VisiCalc now) chasing me down over their proprietary spreadsheet information. :D I’m tempted to put the HD-DVD code in there, just to be facetious.
Numbers are easier than text: You just type them in. On the other hand, if you go back to edit them you’ll realize that just typing over top of the old number isn’t the way it’s done. Overwriting isn’t done by default — instead, you append it. Which is either good or bad, depending. It’s a little unnerving at first, but it does make things easier at times.
Now a few formulas.
Well ain’t that a dandy. It can multiply! :D Note that by default, Oleo doesn’t label its cells in the now-conventional method of A2, C8, B223 or what have you. Instead, it’s row-column, for each one. That has its benefits, but it’s not easy to get used to. Either way, what you enter by default needs to look like
r3c3 * r3c4, otherwise Oleo will have a fit. Yes, it is possible to switch to the conventional labeling. Stick with me for now. Here’s the rest of the multiplication entries.
Finally, let’s do a sum, which is a pretty common thing to do with a spreadsheet. Rather than stumble-bump through this one, the protocol for a sum is
sum(start.finish), with start and finish being the … start and finishing cells, of course. In this example, it’s r3c5 through r6c5, so the command looks like
A little funky, but fixable. From here, calculate the tax in the same way as the Cost column, and then add it all together for the final Total value.
Gee, I feel like I’m back in the seventh grade. I might have bust out Logo and start drawing polygons with the turtle next. Pen down, right 20, forward 20, right 90, forward 20. … Anyway, you get the idea.
From here, you could convert it to two decimal places or even a dollar amount by default, right-align everything, stretch and fit the columns appropriately — in other words, pretty it up a bit.
Oleo does all that, and quite handily. And it does a lot more than that. One thing I learned about Oleo in the brief time I got acquainted with it, is that it’s every bit as powerful as the graphical spreadsheet du jour, and probably better suited to some of the hard-core number-crunching tasks than graphical spreadsheets are. Ratpoison users rant about life without a mouse, and to be honest, if you get used to Oleo, you too might consider giving up the rat.
Like I said, this barely brushes with the innate beauty of Oleo. If you really, really want to get into it, dive into the full documentation, and then you’ll really have an appreciation for it. Oleo proves that a console application doesn’t have to be sparse. It just looks sparse.