Is it Gooey and Friendly?
One longstanding type of application often described as "The Thing Linux Needs" is the accounting system. Considerable variation exists in what people would like to see included in an accounting system. Most notably, they want something Gooey and Friendly, intended for personal finance, reminiscent of Intuit's Quicken or Microsoft Money; or they want something Gooey and Friendly, intended for business finance, reminiscent of Intuit's QuickBooks or PeachTree Accounting. From its advertising, you might expect the Linux General Ledger (LGL) to be a program more like the latter than the former.
I ordered it and, a few days later, had the minor surprise of finding a floppy disk in my mailbox. LGL doesn't use warm'n'fuzzy packaging tools; it's basically a tarball, readily dropped into place wherever you may want to put it.
System requirements are extremely modest, as running ldd on the main program demonstrates:
libncurses.so.4 => /lib/libncurses.so.4 (0x40027000) libc.so.6 => /lib/libc.so.6 (0x40066000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
LGL uses no libraries aside from ncurses and GLIBC version 2.
These requirements indicate that LGL definitely does not fall into the Gooey category. It is a purely terminal-based application which provides several benefits.
First, other accounting applications require extensive sets of libraries (GnuCash, for instance, requires GNOME and Guile components installed) that may be complex to configure and consume disk and memory space. People have found it challenging to get GNOME or KDE installed. Web-based systems like NetLedger require a web browser and possibly even Java extensions.
LGL requires none of that, only ncurses and GLIBC 2. It could probably fit onto a floppy-based Linux distribution.
Second, LGL can be used across virtually any sort of network interface imaginable, something not true for all the accounting software out there. X-based applications require a suitable network connection or that the application be run locally.
In contrast, by running atop ncurses, LGL can be accessed across a network connection by Telnet. It can be run securely across an otherwise insecure connection by tunneling through an SSH connection. Directly dialing in is also possible, and then you could run LGL over a raw modem connection.
Unfortunately, many users will also perceive some disadvantages to this, as the lack of graphical support results in LGL not having mouse support or context-sensitive help, a point-and-click interface and drag-and-drop features.
The user interface for LGL is likely to be regarded as a step backwards from IBM CUA, the user interface of the 1980s, on which early Windows, OS/2 and Motif were based.
The initial menu looks like this:
___________________________________________________________________________ L I N U X G E N E R A L L E D G E R Operator Number __ WELCOME TO THE LINUX GENERAL LEDGER FROM LINUX BUSINESS ACCOUNTING SYSTEMS PLEASE ENTER YOUR OPERATOR NUMBER ABOVE TO VARIFY YOUR ACCESS STATUS. PRESS FUNCTION KEY F6 TO END... Copyright Linux Business Accounting Systems, 2000. ___________________________________________________________________________
Typically, the screens have a control field that allows the user to enter a two-digit action code. The main user interface standard is that F6 takes you back to the main screen.
A user familiar with the menus should be able to navigate quite quickly, albeit with a bit of risk of RSI (Repetitive Stress Injury).
___________________________________________________________________________ L I N U X G E N E R A L L E D G E R M A I N M E N U ___________________________________________________________________________ ENTRY FUNCTIONS REPORTING FUNCTIONS 1. CHART OF ACCOUNTS MAINTENANCE 7. PERIOD ACTIVITY INQUIRY 2. CASH DISBURSEMENTS JOURNAL 8. PRINT TRIAL BALANCES 3. GENERAL JOURNAL 9. PRINT FINANCIAL REPORTS 4. RECURRING JOURNAL 10. FORMAT CUSTOM REPORTS 5. NEW COMPANY SET UP 11. CLOSE PERIODS 6. COMPANY CONTROL FILE SETTINGS 12. CLOSE YEAR 13. OPERATOR NUMBER: 99 COMPANY NUMBER: 99 COMPANY NAME: Linux Demonstration Company CURRENT PERIOD: 1 FISCAL YEAR END: 03-31-00 ENTER CHOICE OR (F6) TO END ___________________________________________________________________________
One unfortunate thing about LGL is that its use requires memorizing or otherwise keeping handy a printout of the Chart of Accounts. In order to enter transactions, you need to know which account number to book it to, and there is no pop-up list to consult. You either need a good memory, a printout on the wall or perhaps list a chart of accounts in another window or on another virtual console.
___________________________________________________________________________ L I N U X G E N E R A L L E D G E R C A S H D I S B U R S E M E N T S J O U R N A L PRESS ANY KEY TO CONTINUE... ___________________________________________________________________________ LN ACCT CHECK DATE DESCRIPTION DR CR NO NO NO MM DD YY OR PAYEE 1 1010 105 02 30 00 Some Description 25.00 2 1020 106 02 30 00 Another Transaction 25.00 3 1010 107 03 21 01 Still Another Transaction 275.00 4 5010 107 03 21 01 Refund of Salary 275.00 5 5020 108 05 07 01 Insurance Expense 1750.00 6 1020 109 05 07 01 Cheque 1750.00 TOTAL DEBITS AND CREDITS = 2050.00 2050.00 ___________________________________________________________________________
The functionality of LGL would seem most suitable for a small- to medium-sized business, as it provides a general ledger, cash disbursements journal and recurring transaction journal.
The one open-source claim of LGL is they have released source code to a class they have created for manipulating money values. This is of some importance because floating point values are bad for representing financial transactions since floating point values cannot represent, with exact precision, decimal values. Therefore, they cannot provide completely predictable arithmetic results, so anyone constructing financial software winds up creating some sort of "decimal money" data structure. The LGL "money" record uses two long values: the number of dollars and the number of cents. Getting real excited about this is about as likely as getting real excited about doing an audit of Linux kernel VFS functions.
Reports are generated in ASCII text, formatted to fit on US letter-sized pages. Obviously, there's not the built-in bells and whistles option to add bitmap images, but they'll be easy enough to import into, say, a word processor document.
LGL provides only a general ledger; it does not include other sorts of applications or ledgers, such as accounts receivable, accounts payable, inventory, sales and order entry or payroll. The program includes C structures describing the GL data format so you could, if you so wished, construct your own applications that would add data to LGL.
All in all, I would be surprised to find that a terribly large demographic would be interested in using Linux General Ledger. On the one hand, it can be used across any kind of connection short of smoke signals, but it has the significant demerits of a user interface more reminiscent of the 1970s than of 2001, sparse functionality and a need for the user to memorize account numbers.
Christopher Browne has assortedly lived in Texas and Ontario, Canada. Having previously tried to replicate a UNIX-like environment on the Atari ST, he encountered Linux in 1993 and has been using it ever since. He has worked on the development of such diverse things as mail filters and accounting software, and he may be reached at firstname.lastname@example.org.