Is it Gooey and Friendly?

by Christopher Browne

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 cbbrowne@acm.org.

Load Disqus comments