1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
|
<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<title>Two Small Personal Databases LG #35</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<!--endcut ============================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center><h1><font color="maroon">Gaby and Notes-Mode Revisited
</font></h1></center>
<center><h3><font color="maroon">Two Small Personal Databases for Linux
</font></h3></center>
<center>
<h4>By<a href="mailto: layers@marktwain.net">Larry Ayers</a></h4>
</center>
<P> <HR> <P>
<center><h3><font color="maroon">Introduction</font></h3></center>
<p>Though many full-fledged SQL database systems exist for Linux, both
commercial and Open Source, these large client-server applications are
overkill for managing a single user's personal data. Personal information
managers such as Lotus Organizer have long been popular with users of
mainstream OS's, while Preston Brown's Korganizer (a QT-based Organizer clone)
and Ical (a Tcl/Tk calendar application) are popular with many Linux users.
These applications for the most part combine a PIM with calendar and
scheduling features. In my case, I have little need for the calendar, etc.,
but I do have quite a bit of information which I would like to make more
manageable. In keeping with the unix tradition of small, specialized tools
designed for specific tasks, this article concerns two applications which can
help a Linux user organize and make more accessible personal data.
<center><h3><font color="maroon">Gaby</font></h3></center>
<p>Gaby, written by Frederic Peters, started as a simple address-book
application written with the GTK toolkit. The name is an acronym, originally
standing for <i>Gaby Address Book of Yesterday</i>; after further evolution
of the program the author decided that the acronym could be generalized to
<i>Generic Astute Base of Yesterday</i>. The further development was a result
of the author's realization that he had created a simple database framework
which could be used for other types of data. The "of yesterday" in
the acronyms I take to be an acknowledgement that Gaby uses
semicolon-delimited ASCII text as its data-storage format rather than the more
complex, less portable, and often binary formats common in the big database
systems. ASCII text as a data format has been around for quite a few years,
but still can be useful for even quite large databases; see issue 34 of the
Gazette for an article about NoSQL, which uses tab-delimited ASCII text as its
format.
<p>As installed, the executable <i>gaby</i> is symlinked to <i>gbc</i>.
Invoking <i>gbc</i> starts up Gaby as a bookshelf organizer rather than as the
default address-book. Gaby can display two different views of the user's
data files, which are stored in the directory <kbd>~/.gaby</kbd>.
<p>In the most recent version of Gaby (0.2.3 as of late November of 1998) a
user can create any sort of database with whatever fields are appropriate.
This is a new, not completely implemented feature and the documentation is
scanty at this point, so I'll present a quick overview of how it can be done.
<p>Begin by creating a new empty directory called <kbd>/etc/gaby</kbd>. In
this example I'm creating a database of prairie plants native to my area. In
the Gaby source distribution is a sample template file named
<kbd>desc.gtest</kbd>. Copy this file to <kbd>etc/gaby</kbd>, then rename it
so that the suffix relates in a mnemonic fashion to the subject-matter of your
trial database. In this example I renamed the file to <kbd>desc.plants</kbd>
with the command <kbd>mv desc.test desc.plants</kbd>. Edit this
<kbd>desc.[whatever]</kbd> file, changing the field names to reflect the
nature of your data.
<p>Next create a symbolic link in the <kbd>/usr/local/bin</kbd> directory
(which is where Gaby is installed by default), linking <kbd>gaby</kbd> to
<kbd>plants</kbd> (or whatever suffix you chose) with the command <kbd>ln -s
gaby plants</kbd>. Now you can start Gaby by typing the name of your symlink
and a customized Gaby window will appear with your new field names ready to be
filled in.
<p>The default view is the Form window, which shows the first entry in the
address or book data-file:<br>
<p><img alt="Gaby Form Window" src="./gx/ayers/gaby1.gif">
<p>Any of the entries can be viewed in this window by means of the icons or
menu-items, and new items can be added. In the menu-bar of this window
is a List menu-item, which allows the user to sort the various items
alphabetically according to any of the fields. Another menu-item provides the
ability to export a list to either LaTeX or HTML tabular format.
<p>The other window available is the List view, which is an overview or index
of all entries in the file:<br>
<p><img alt="Gaby List Window" src="./gx/ayers/gaby2.gif">
<p>Gaby is a good example of a free software project which is beginning to
gain momentum as users begin contributing enhancements and providing
feedback.. This naturally stimulates the developer to further augment the
program. Gaby appeals to me because rather than being a fixed-function
program, it can be extended by its users so that it can be used in ways not
imagined by the author.
<p>The current release of Gaby can be obtained from the Gaby
<a href="http://www.multimania.com/fpeters/gaby/">web-site</a>.
<hr>
<center><h3><font color="maroon">Notes-mode Revisited</font></h3></center>
<p>In issue 22 of the Gazette I reviewed an add-on mode for GNU Emacs called
notes-mode. This useful editor extension was written by John Heidemann in an
effort to bring order to his collections of academic notes. The core of this
mode is a collection of Perl scripts, some of which are intended to be run
automatically as a daily cron job (these index the files and establish internal
links), while others time-stamp and initialize a new note.
<p>While I was impressed at the time of my initial review with notes-mode's
capabilities, I didn't succeed in making it work with XEmacs, which is my
preferred editor. Recently John Heideman released version 1.16, which (thanks
to contributions by Ramesh Govindan) now functions well with XEmacs. I've been
using the mode extensively since then, and have found it to be useful beyond
its intended purpose.
<p>Notes-mode was developed to help organize academic notes, but it serves me
well as an organizer for notes on various subjects. Every day a new file can
be initialized including whatever user-defined categories are desired. The
system allows easy keyboard navigation between the various days' category
entries, and a temporary buffer can be summoned composed of all entries under
a selected heading. The effect is similar to using links in a HTML file, with
the advantage that entries are devoid of mark-up tags and don't require a
browser for viewing. Another HTML-like feature is external file-linking.
Using code adapted from Bill Perry's W3 Emacs web-browser, an entry such as
<kbd>file:///home/layers/xxx.txt</kbd> can be selected with the mouse or a
keystroke, causing the file to be loaded into the Emacs session. PGP
encryption of individual entries is also supported (using the MailCrypt
Emacs/PGP interface).
<p>In a sense, Notes-mode is another sort of personal database optimized for
subject- and date-based navigation. Its capabilities are orthogonal to those
of Gaby. Notes-mode has the limitation of being fully useful only for users
of Emacs or XEmacs, while Gaby can be run by anyone, though only in an X
session. They both are ASCII-text based, ensuring that the data is fully
portable and accessible by any editor or text-processing utility. Either or
both of these programs can be invaluable to anyone needing to impose some
order upon collections of information.
<p>Version 1.16 of Notes-mode can be downloaded from this WWW
<a href="http://www.isi.edu/~johnh/SOFTWARE/NOTES_MODE/">site</a>.
Complete documentation is included with the archive in several formats.
<hr>
<!-- hhmts start -->
Last modified: Sun 29 Nov 1998
<!-- hhmts end -->
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Larry Ayers <BR>
Published in Issue 35 of <i>Linux Gazette</i>, December 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc35.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./tavera.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./marshall.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->
|