My Life as a ¡Penguinista!
Jonathan
Yavner
Last
update: 28 July 2003
For other pages like this one, see http://www.linux-on-laptops.com.
You are visitor
The Hardware
IBM ThinkPad
600E laptop computer
- CPU speed = 400 MHz. Manufactured in
December 1999. See Other
specs at IBM's online pubs center.
- Bought from
LinuxCertified.com.
Refurbished, but looks new! I would
buy from them again, although they did forget to include
the power cord in the initial shipment, but they sent
it right along when I called about the missing part.
- The laptop's
matte black shell looks nice initially, but retains
fingerprints excessively. Once you've used it while
eating Fritos,
it will never be the same again!
- The built-in
battery gives me about 45 minutes of runtime. I
run on AC most of the time, anyway.
- The standard-issue
RedHat 8.0 system
can recognize most of the hardware (that's the best thing
about buying trailing-edge equipment),
except for the "Crystal Soundfusion 4232"
audio subsystem. See below
for a fix.
IBM 02K6505
Li-ion battery for Ultra-Slim Bay
- Bought through
an
Ebay auction for $34.50. No warranty.
- Woo-hoo!
Three Hours
of run-time!
- Since
you can only charge these things about 500 times
before they croak, and I'm usually running on AC anyway,
I generally leave the battery on a shelf and have the CD-ROM
drive installed in the Ultra-Slim Bay.
- Removing the CD-ROM from the Ultra-Slim Bay
starts an avalanche of syslog messages, unless you deactivate
the driver first. I use
this
script (Thanks to Rob Russel!)
Next.
Netgear MA401RA
Wi-Fi transceiver card
- See datasheet.
- Sensitivity
is great! Link quality is 50% in my back yard,
with an access point in the living room (through a floor
and an outside wall).
- Throughput
is fine! It can push 450 KB/s through ftp
to my Windows machine. Considering that about
half the quoted 11 Mbps throughput for 802.11b is taken
up by "beacons" and whatnot, plus another 20% for error-correction
crap, the maximum achievable rate is probably only about
500 KB/s. Two seconds per megabyte seems plenty fast
to me.
- The default
version of /etc/pcmcia/config
does not recognize this card. I added
·
card "NETGEAR MA401RA Wireless PC"
·
manfid 0x000b, 0x7300
·
bind "orinoco_cs"
- The damned
card jams up occasionally, showing "NO CARD" from
wmwave
and lots of system CPU on xosview. It's
mostly an occasional annoyance, easily fixed up
by invoking "cardctl reset".
- Using lftp
with standard settings, the card jams constantly,
transferring only 100 KB between resets. I got past
this by creating the file ~/.lftprc with
this line:
·
set net:socket-buffer 4096
which throttles
the size of the FTP packets. Without this line,
it uses the system default socket buffer size, which is
apparently too large. Can the system default be changed,
perhaps through /etc/sysctl.conf?
Netgear CG814M Wi-Fi access point/router/switch/firewall/cable
modem
- See datasheet.
Yes, it's five, five, five
products in one! And it runs cooler than the
one-function cable modem from my ISP.
- I had to
call Comcast and give them the "Cable MAC address" before
their network would talk to my modem.
- I
use the site-blocking feature to block access
to CartoonNetwork
after 2 AM (we're night owls, but without this the kids would never
go to bed). I had wanted to block access to all sites from my
daughter's laptop after 2 AM, but the config can't represent that.
- I'm not
currently using WEP or MAC-filtering, so if you
figure out my home address (it's not that hard) you can
go war-chalking in front of my house. Please don't
commit any Internet crimes that will be traced back to me.
Next.
- The DHCP
server just works.
- The
DNS relay mostly just works, but it doesn't seem
to like spam-blockers. If I say
·
bash% host
177.52.179.66.blackholes.five-ten-sg.com
it says
·
177.52.179.66.blackholes.five-ten-sg.com
domain name pointer www.franklin.com.
which
is wrong. It's true that IP 66.179.52.177 is the
address of www.franklin.com
(my employer), but that's not the question I asked.
If I bypass the local relay and use my ISP's server
directly,
·
bash% host
177.52.179.66.blackholes.five-ten-sg.com 68.46.144.5
it says
·
Host 177.52.179.66.blackholes.five-ten-sg.com
not found: 3(NXDOMAIN)
which
is correct (Franklin is not a spammer).
- The wireless function
gets jammed occasionally. Only the wireless part stops
working; the Windows machine (connected through an Ethernet
cable) can still access the Internet. Disconnect AC power
momentarily to reset. Possibly caused by overheating (see next
item).
- My local cable infrastructure currently requires the modem
to use a transmit power of 51 dBm (= 126 Watts). Recently the
transmit requirement shot up to 54 dBm (= 251 Watts). At that
point, the CG814M couldn't connect at all, but my LinkSys BEFCMU10 could
still work. According to Comcast rules, if transmit power requirements
exceed 52 dBm, they need to fix their network, but they expect modems
to be capable of 58 dBm (~ 630Watts???).
Hewlett-Packard LaserJet
IIIp monochrome laser printer
- Inherited from my
late brother.
- See "Printing issues"
below.
Canon i550 color
bubble-jet printer
- See datasheet.
Note that Canon's US site does not list "Linux"
as a supported OS.
- I chose this printer
because it has simple ink tanks that should be easy
to refill, and it seemed to be listed as a supported printer
in a refill kit I bought from Walmart. Unfortunately, I've
been having trouble refilling the original black tank that came
with the printer--if I fill it completely, it spews gobs of ink all
over the page; if I pull out enough ink to avoid the gobs, it says
"ink level low". The tanks on my old Epson Stylus 640 were
much easier to fill.
- Do not buy printers from Lexmark!
Their newer cartridges contain anti-refill software.
They are currently
winning in a lawsuit that uses the DMCA to try to shut down
cartridge makers who found a way to bypass the anti-refill.
In effect, Lexmark wants a perpetual monopoly on ink for their
printers; if they win and you ever stop paying their 1000%
markup on ink, you'll be a criminal in the USA
Next.
- Red
Hat 8.0 does not include a driver for the i550, but you
can download this
and this
from Canon's Japanese site.
(Can't read Japanese? Here
is a terrible translation from SysTran). Thanks
to Earl
Sheridan for reporting on this!
Next.
System Configuration
A Penguinista should strive to keep
his system in good operating condition at all
times, to avoid embarrassment when a Linux newbie happens by for
a demo. The rule "Keep It Simple, Stupid!"
is good, but it shouldn't stop you from using fancy graphics.
The rule "If it ain't broke, don't fix it!" is good, but anything
that doesn't work the way you want it to can be considered "broken".
It's best to concentrate on fixing one problem while putting up with
the others--avoid simultaneous (destabilizing) changes all over the
system. Keep your eyes on the prize and don't sweat the small stuff
too much.=
Currently, I'm trying to keep things simple
by sticking to the standard RedHat 8 RPM's as much
as possible. I like to do risky things as root, which
means I sometimes have to do a full reinstall. Every
nonstandard RPM is an extra step in the restore-from-backup
process.
Next.
Extra Driver
Modules:
- cs4232: For some reason,
the audio system is not auto-recognized by RH 8. To
get audio output, I added this to my /etc/modules.conf file:
·
options cs4232 io=0x530 irq=5 dma=1
dma2=0 mpuio=0x330 mpuirq=9
and this to /etc/rc.local:
·
modprobe cs4232
There are many webpages out there
about TP600E's that show a different set of cs4232 options;
apparently this driver's options got renamed at some point?
Anyway, thanks to Scott for
the right answer.
- thinkpad:
This supports access to the firmware SMAPI from
user apps such as tpctl.
I manually created /dev/thinkpad
and /dev/thinkpad/thinkpad as specified
by the thinkpad README; the README for tpctl
specified some stuff for /etc/modules.conf that didn't
seem to work.
- wlan-ng:
I haven't installed this yet, but I might get to it. The wlan driver
might have less of a jam-up problem with
my MA401 card. Also, it would enable kismet so I could
maybe stumble onto a network wherever I happen to be
(the baseline orinoco_cs driver doesn't seem to provide
any way to dump a list of available access points).
Next.
Standard RPM's
that I've removed:
- slocate:
Scans the entire directory tree once a day, so you use
a fast locate command instead of a slow
find when you want to find a file. Problem:
I don't want to find a file every day, but every day I have
to endure the directory scan, which is a noisy hog that starts
at inopportune times. Thanks but no thanks.
- up2date: The concept here is
that you will schedule an patch update with RedHat and
they will ram the patch down your computer's throat in
the middle of the night. I'm sorry; this doesn't
seem like the Way of the Penguin to me. It's exactly the
sort of program that Microsoft and the RIAA would want their
customers to run.
Last.
- rhn-applet:
Presents a list of available updates from RedHat for RPM's
you're using. This would be a nice idea if the
updates had new features, but they're all security patches.
Call me naïve or delusional, but I don't think I need
them: this machine has no non-"root" logins, is always behind a firewall,
and contains no valuable data. Also, I have no known enemies
among the script-kiddie crowd (but see WEP comment above).
System components
added as RPM's:
Since there are
10 GB of disk space to find uses for, I've loaded the
entire archive of RedHat 8.0 RPM's (1.7 GB). To
rerun the package-selection GUI without inserting the
CD-ROM's, use
·
redhat-cdinstall-helper --mountpoint=/RedHat-CD
--cdtree=/RedHat-CD
where "/RedHat-CD"
is the directory with the copy of everything from
the CD-ROM's. Be sure to copy the hidden file ".discinfo"!
- xosview: This is actually in
the RedHat 8.0 distro, but there seems to be no way to load
it using redhat-config-packages, so invoke
rpm -i manually. I think xosview
is better than gnome-system-monitor because it shows
disk activity as well as network I/O and CPU utilization. Here
is my .Xresources file.
Next.
- bjfiltercups
and bjfilterpixus550i: Printer driver
for the Canon i550.
- gnucash
and g-wrap:
Upgrade GnuCash from 1.6.6 to 1.8.4.
System
components added via .tar.gz files:
- tpctl and thinkpad: Adjusts
the ThinkPad's firmware settings without using
a Windows program. No dual-boot; this machine is Linux-only.
- wmwave:
Puts up bargraphs for wireless link quality, signal level, and noise
level. It's supposed to be a WindowMaker dockapp,
but I just run it as a normal app under Gnome. It's
cute to watch the bargraphs go down as you shield the Wi-Fi
with the palm of your hand. Also, the three green bars go
black when the card jams, to alert me to reset it. Sigh.
- SpamBouncer:
A Procmail filter for spam (see email below).
Next.
Printing Issues
RedHat 8 prefers LPRng,
but I switched to CUPS because the Canon i550 drivers work
with it. I like CUPS better anyway. That http://localhost:631 web
interface is snazzy.
I created two printer queues,
plus a class containing them which is the default printer.
Normally both print queues are set to "stop printing"
and "reject jobs". To print, I first tell the selected
printer to accept jobs and then invoke "print" in the application.
Then I walk over to the selected printer, transfer its
cable from its regular computer to my laptop, and tell the print
queue to begin printing.
HP LaserJet IIIp:
- Uses driver "HP
LaserJet IIIp w/PCL5, Foomatic + ljet4". The
"+gimp" drivers print gibberish for me.
- The printer driver
starts every job with a blank page. I wish it didn't
do this. Of course, I should Use the Source and
change the driver to do my bidding, but there's so few hours
in the day and so many other things to do. For now, I'm just
living with it.
- This unit has less
than 2 MB of internal RAM, so some pages get cut off
in the middle. I have to watch the printer and feed the
partial pages back in again to complete the printing, which
reminds me of the story about
how Richard Stallman got so angry, he founded the Free Software
Foundation. There's some documentation to the effect
that the Windows driver does a lot of fancy footwork to avoid
this problem, which the Linux driver writer didn't want to get
into.
Canon i550:
- Uses the device "Parallel
port #1 with status readback for BJ" and the driver
"Canon PIXSUS 550i ver2.2".
- The printuipixus550i
utility doesn't work--when I press the button marked
"Nozzle check" nothing happens. The stsmonpixus550i
utility refuses to start. Perhaps my parallel port is
misconfigured?
System Backups
Why bother with
backups on a home computer?
Once upon a time,
not long ago, I changed something or other and rebooted--and
got no sound when I logged in. File ~/.xsession-errors
said it couldn't start ESD because the named pipe already
existed in /tmp. "That's strange," I thought, "why
doesn't it clear /tmp on boot like SunOS does?" So I added
a command to /etc/rc.local to clear /tmp and rebooted.
Oops! Rc.local runs too late to just clear
/tmp, because X11 has already started and put its pipes there.
So I changed the command to delete all files over 1 day
old and tried again. Now obviously I wasn't thinking clearly
(there's already a cron job to delete old /tmp files), so I just
wrote the same sort of command I always write:
·
find . -mtime +1 -print | xargs rm
Unfortunately,
this command doesn't delete all temp files
over 1 day old; it deletes all
files over a day old! During the reboot, I
got a message like "/boot: Directory not empty". So
I hit the power switch, which saved my personal data files,
but meanwhile the core system files had been deleted, along
with their directories. On the next boot, I got a "grub>"
prompt.
So now what do I do? I reached
for my FSF membership
card, which is also a bootable CD-ROM that runs LNX-BBC. The power of GNU will save
me! Unfortunately, the power of GNU can't help unless the user has
a clue, and I didn't know anything about Grub. Anyway, LNX-BBC works just
fine. It auto-recognizes my hardware (even the MA401) and comes with
X11 and a serviceable web-browser, so I could go out on the web and search
for knowledge. Not bad for a tax-deductible card that
fits in my wallet and promotes Programmer's Freedom!
Next.
It seemed that
I needed to restore the /boot/grub directory and reset
the disk's MBR to point to it, but there were several
partitions that had grub directories--which one should
I use? I tried them all, but none worked. Eventually,
I tried "setup (hd0,3)" or some such thing, which
overwrote the extended partition and deleted what was left
of the OS. What a nice thing to happen on Father's
Day on a machine whose hostname is "Daddy"! Taking a deep breath,
I declared the system a total loss.
Thankfully I had
replaced the /root directory with a soft link to /home/root,
which is on a primary partition and was not destroyed. I
fired up ftp and transferred my files to the Windows
machine. (I use EFTP3 because
it's fairly simple, lives in the System Tray, and can support
my 2-hard-drive configuration). I put the RedHat
distro into the CD-ROM drive, guessed which packages to install, and
started afresh. As days passed, I would remember a customization
I had done and figure out how to do it again. It took over
a week to get everything working again. To avoid having
to go through this again, I would either have to be very careful
with root logins or I would need a solid backup system. I
decided to make the backup system a top priority.
My
backup system
I wanted a
backup system that would skip over the gigabytes of
static data on my system, and would transfer the files over
FTP to my Windows machine. Seems simple enough, but I couldn't
find a canned package that did this, so I wrote my own:
ftpdump
(argument is dump level, 0 by default). It's
not big, but I'm rather proud of it, since it was so
much work to get it right. Perhaps I should publish it someplace.
The basic backup app is
dump,
because it supports the "nodump" flag provided by the
ext2/ext3 filesystems. I can mark all the RPM-derived
files with "nodump" and then
dump won't bother
backing them up, since a full reinstall will recreate those
files anyway. This trims gigabytes from the backup process!
Since
dump does not directly
support FTP, I use
lftp as the transport
agent. It's better than the
ftp program because
you can specify everything on the command line, instead of
having to generate a script file and then execute that.
Unfortunately, the "put" command in
lftp does not
accept "
-" to take the data from stdin, so I have to
create a named pipe to connect
dump and
lftp.
Next problem: if
lftp starts too soon, it will read from a
pipe that no process has opened for writing, so it will
just send an empty file. How to tell when
dump
has started its output phase and is waiting for
lftp
to start? After trying a bunch of things that didn't work,
I now use
pstree and wait for
dump to start
a second thread.
Although there
are 3.7 GB of data in the directory tree, a full backup
takes less than ten minutes over a wireless link.
How do I do it?
Going to town
with the "nodump" flag
The
nodumprpm script marks all non-config
files of an installed RPM with "nodump". After installing
a new RPM, I use this script to remove its files from the
to-be-backed-up list. Note that it must avoid marking directory
files, because "nodump" on a directory prevents backup for
all the files it contains. Let me add my voice to the crowd
of people who've called this a misfeature! To begin with, I used
"
nodumprpm -a" to mark all RPM-derived files for no
backup.
The
nodumptgz script marks all files
that came from a
.tar.gz archive with "nodump".
The script is simpler because there is less to say about
tgz files. The script would be trivial if it didn't have to
avoid setting "nodump" on directories.
What about other
files that don't need backing up, such as those created
by '
make install'? Periodically, I use
finddumpables to find files that
are not marked with "nodump", and manually use
chattr
+d on them if appropriate. I currently have only
385 files to back up. This script needs more work; it
barfs on files whose names contain spaces.
I should also mention
findchgnodump, which
finds files that have "nodump" but have been modified within
the last
<arg> days. Such files are worrisome
because perhaps they really should be backed up. If you use
a text editor on a file that has "nodump", the output file will
usually lose this flag, but if a program calls
open(...,O_TRUNC
) to replace a file, the "nodump" flag will remain!
Next.
How to restore from
backup
This should work, but doesn't:
·
bash% lftp -u backup
-e "cat e:/Daddy/backup-level0-date_; quit" 192.168.0.10
\
·
| restore
-if -
I guess lftp's
"cat" command does CR/LF conversion and corrupts this binary
file? Anyway, this works;
·
bash% cd /tmp
·
bash% lftp
-u backup -e "get e:/Daddy/backup-level0-date_; quit"
192.168.0.10
·
bash% restore -if backup-level0-date_home
Of course, this depends
on being able to fit a full backup of the root partition
inside the /tmp partition, but it works for me!
Another approach that works is to create a file ~/.netrc
containing my username and password, then write a script:
· # Call this file /tmp/ftp.script
· ftp 192.168.0.10 <<END
· get e:/Daddy/backup-level0-date_
-
· END
then invoke
· bash% . /tmp/ftp.script | restore -if -
If for some reason I just want to restore a few
files to a hosed system without reinstalling, the lftp
and restore commands will work under LNX-BBC
(and presumably under the "Rescue" mode of the RedHat CD-ROM).
Email
Choosing an email
reader
There are so many email readers available! RedHat 8.0 comes
with evolution, mozilla, balsa,
and kmail, plus a bunch of text-mode readers.
Unfortunately, none of them quite fills the bill for me.
My requirements for an email reader aren't
extreme:
1. "Light"
app that restarts quickly after being swapped out
for awhile.
2. Displays
HTML-formatted mail;
3. Sends HTML-formatted
mail (I like bold and
italic);
4. Shows
hyperlinked pages using mozilla;
5. Imports old mail in "mbox"
format;
6. Can accept
mail from multiple Unix mailboxes, to support procmail
spam-filtering;
- evolution: The
RedHat standard emailer from Ximian. It's a "heavy" app
that insists on providing an appointment calendar and weather
reports as well as email. Takes 5 seconds to start working
again after being swapped out. Otherwise good.
- mozilla (formerly
AOL Netscape): Can't import old mail originally
received on other computers. Supports POP3 and IMAP but
not Unix mailboxes. Despite being rather heavy, its swap-in
time is only about a second.
- balsa: Almost good
enough! But a little too light: doesn't accept mail from
Unix mailboxes.
- kmail: I'm using this
one, although it insists on Konquerer instead of Mozilla for
hyperlinks, refuses to send HTML mail, and its reload time is
several seconds. What can I say? I like what I like!
I'm considering downloading the latest
balsa for RH8, since the docs make it look like
the local-mailbox problem might be fixed.
Getting email from the ISP
I use Fetchmail. It was produced
by Eric Raymond, author of The
Cathedral and the Bazaar (just scroll past the change
log to where he begins, "Linux is subversive.")
When I first set up fetchmail, it seemed very easy. The
next day I checked syslog to see how things were going, and
noticed that my laptop had woken itself up from suspend every
ten minutes to check for email! Good thing it was on AC power...
Here is my version of /etc/sysconfig/apm-scripts/apmcontinue,
which terminates fetchmail when the ThinkPad's lid
is closed and (re)starts it on boot or lid-opening
Next. Because
fetchmail is a lightweight process, starting and stopping
it cause little disk activity. This script was hard to
write because error messages from apmcontinue commands
are thrown away, but eventually I figured out that fetchmail
needs $HOME to find its control file ~/.fetchmailrc;
since apmcontinue is invoked by a daemon (apmd)
it doesn't inherit this variable.
Filtering spam
I use SpamBouncer,
by Catherine Hampton
Last. It's
very good, but it's getting out of date (she hasn't released
a new version since February) and a new release just came out
in July 2003. I'm so glad she wrote it; I've tried several
times to figure out how to write procmail scripts and
still can't get a handle on the syntax. Too bad she's not accepting
PayPal donations.
Here is my ~/.procmailrc
file, based on the example that comes with SpamBouncer
Next. The spam
goes to to ~/Incoming.spam, other mail to /var/spool/mail/root.
This way I don't get disturbed by "You have new mail" notices
if it's only spam.
Because
of the DNS relay problem (see CG814M above),
I have to override the call to nslookup to use this blacklist script instead
Next. It uses a hard-coded
IP address for a DNS server (and will break when/if my ISP moves its server!).
Another reason for this script: some of my ISP's mail servers have
gotten themselves listed as spammers! This script pretends they're
not listed, to avoid classifying an email as spam just because of some random
node it passed through during delivery. (I can't switch ISP's; Comcast
has a monopoly on cable-TV Internet services around here.)
If Procmail doesn't like your file permissions, it will silently ignore
you. (Fetchmail is also picky, but at least it tells
you it wants 0710.) Procmail requires 0644 on .procmailrc
and 0755 on your home directory.
When my laptop arrived from LinuxCertified.com, the mail server was set
up to automatically invoke Procmail if a .procmail
with suitable permissions is found, but this stopped working
after the Grub fiasco. Here is my copy of /etc/postfix/main.cf, with
Procmail reenabled
Last. I
don't understand how to set this up to forward all mail with
@-signs in the addresses to smtp.comcast.net for further
delivery, so for now the Unix mail command sends mail
only to root--I must use an email reader to send offsite mail.
Accounting
Back in '94 I got a free copy of Quicken 4, which
I used for nine years. When Intuit offered a free upgrade
to fix some Y2K glitches, I decided I'd rather live with the glitches--the
newer version was so much slower!
Some people say that Quicken will run under wine,
but I've never gotten anything to run under Wine. I
should look into that at some point. In the meantime, I need
a native-Linux accounting package. For now, it seems GnuCash
is the only serious contender.
GnuCash as provided by RedHat
RH8 comes with GnuCash 1.6.6. Talk about slow!
The startup splash screen takes 14 seconds, then it's another
40 seconds to load my 18½ MB of XML data. Opening any window
leads to long pauses and lots of disk chatter. The GUI is nice, but
the engine is overtaxed by my measly database with only 14,000 transactions.
There are many bugs (the auto-completion often copies a random transaction
instead of the most-recent one, the General Ledger refuses to show
old entries, etc.). Missing features include audible feedback when a
transaction is entered (my daughter needs that sound to tell her when
to begin reading the next receipt to me).
Before the Grub fiasco, when I had thought that maybe the PostgreSQL
backend would speed things up, I had downloaded
gnucash-backend-postgres-1.8.1, which is part of RedHat
9. Of course it wanted me to download
gnucash-1.8.1,
which wanted the RH9 version of
libc and a dozen other core
components--so I downloaded them all, even though it gave the system
a split personality (am I running RH8 or RH9?). And it worked!
Well, it didn't crash, but it wasn't any faster, because
the backend scans the entire database when opened.
Yuck! This sloth will not attract any postulants to the Church of
GNU!
Next.
Latest GnuCash
So I tried again. This time I downloaded GnuCash
1.8.4 from gnucash.org. They
offer an RPM built for RH8. Now the splash screen takes
20 seconds and the data-load is 50! Saves are only 19 seconds,
but the file is now 20 MB, mainly because each and every transaction
now specifies that it is in US dollars, even though that is also specified
as the default currency.
Most bugs are fixed. Pauses and disk chatter
during operations are noticably absent. The main features
still missing are the audible transaction-entry feedback and a way
to search forward or backward through the current register, looking
for a string. I get occasional seg-faults in Guile, causing loss
of all transactions since last save; this is not polished software!
The main thing that got worse is that importing QIF
files from Quicken now takes hours instead of minutes. I
don't know why; it still shows the same set of possible duplicates.
What it ought to be
Using default values instead of explicit coding
in every transaction would reduce file size (and loading time)
by 30%!
GNU Emacs can load the 20 MB file in 10 seconds, mainly
because it doesn't parse the data to produce cute totals by account.
Using "lazy font-lock" display attributes, Emacs could do
in-place editing of XML while displaying it as general-ledger entries.
That would be a lot faster than starting up GnuCash to enter
a few receipts! It would be so cool. Maybe I'll
write that. Do you scoff? I could write that, really
I could. Someday, when I find some time, I'll write it, you'll
see. I'll create a new Free package, I'll release it to the world,
then you'll see! Oh,
wait. I already did that. See next section.
My Contributions to Free Software
Not much. I wrote
SES over a year ago,
but it's been stuck in the GNU Emacs release queue, apparently
because the variable-width font and Unicode-support projects ahead
of it have been so buggy. At least my piece is in line to become
part of the cathedral!
Last.
This space is blank for now. Maybe I'll write
another package so I can mention it here.
©2003
Jonathan Yavner. Permission is granted
to copy this entire page verbatim.
You've read the whole thing! Thank
you, thank you! Please send me mail: jyavner@comcast.net