We still don't know who our next president will be, and I'm
caring less and less with every day that goes by. That's a
sad commentary, too, since I firmly believe that people get
the government they deserve -- what does this whole fiasco
say about us? Our Constitution never promised us a good or
efficient government, just a representative one. And
that's what we got.

Work Stuff:

Writing a quick little interface to pull status-change
files from the host and update the database. Should be
largely done by the end of the week, but the file-format
may need to be updated.

Personal:

I have some letter-writing to do tonight. Rather than
fight with Applix Words, I'm thinking of going back to
straight ASCII with LaTeX. LaTeX is still the best
solution I've ever found for writing well-formatted
documents. I've tried LyX, but I still prefer a plain-
vanilla text-editor; just old-fashioned, I guess.

Now that my requirement and design docs are (pretty much)
complete for my personal project, I'll probably start some
preliminary coding this week -- I'll start with some GUI
prototype screens since I'm still not sure how I want to
structure my interface. FLTK may not work the way I want
it to; the widget selection is kind of meager. GTK+ is a
lot better in terms of widget support, but that would mean
I'd have to use GTK-- (not a horrible thing, by the way,
I'm just kind of cool to the design of the wrapper).

I had to defer a class on COM/ATL in order to get some
stuff done with my project. I hate to miss the class, but
it's not really all that critical to the work I'm doing and
I can't afford to lose another week's worth of work. I'll
catch the class next year sometime.

Personal:

It was a good holiday -- my wife and I really enjoyed our
guests and we had a great Thanksgiving dinner. My wife's
birthday is today, so I need to remember to have flowers
delivered to her workplace today.

Predictably, I didn't get much hacking done over the
holiday weekend. I *did* work some with FLTK -- it's a
nice toolkit as far as it goes, but it lacks some widgets
that I've grown accustomed to having. Still, it's a nice
modular toolkit that works well for the kinds of GUI
projects I usually do. I'll probably stick with it until
Inti is stabilized.

Work stuff:
Clean ups and general bug-fixing. No new features or
builds until after the Thanksgiving holidy.

Personal:
Our visitors showed up last night, so I expect my
hacking time-slice to decrease dramatically over the next
few days. I'd like to do a bit more work with FLTK;
there's something enticingly minimalistic about it that
speaks to me. The source-code examples it comes with are,
frankly, pretty horrible: global vars all over the place,
no comments, and so on. Ugh! The overall design seems to
be pretty good, though.

I've finished cleaning up the middle-tier architecture; it
doesn't work any differently, but it's much more modular
and efficient now. Plus I fixed a transaction bug that
could have bitten us down the road. I've got a short week
this week (only Monday and Tuesday), so I need to kick in
the afterburners and get this stuff done.

Personal:

Until I can get a KVM switch, I've moved my old Linux box
(a P120 w/ 48MB of RAM) into the utility room. It's just
too much hassle switching cables back and forth, and I'm a
little worried that the connectors will get fatigued. My
main box (a Celeron 500) will now have to host both my
Win2K and my Linux stuff. I generally don't like to dual-
boot, but I suppose I can live with it until I can get a
KVM switch. Belkin makes a good one, so maybe I'll order
that.

It's amazing how attached you can get to some particular
GUI widget. I really like the TreeView widget, but it
seems that FLTK doesn't have one! It's not really that big
an issue, it was just kind of surprising. There's a lot to
like about FLTK, by the way. It's a C++ toolkit like QT,
but much thinner. It's designed to be statically-linked
(although it works fine as a dynamically-linked library
too), so all dependencies are kept to a minimum. It has
the look'n'feel of the old XForms toolkit somewhat, but
cleaner.

At some point, I suppose, I'll have to bite the bullet and
settle on one toolkit or another. Here are the
strenghts/weaknesses of the contenders as I see them:

Motif
=====

Blah. Not even under consideration.

QT
==

Advantages: well-designed, fast, and elegant. The
Designer
is a great tool for building GUIs and seems to generate
pretty good code.

Disadvantages: Needs a preprocessor (moc) to implement
the
signal-slot mechanism. Not so much an operational issue,
but it can generate some pretty ugly code. Also,
performance can suffer due to this mechanism, although in
normal use it isn't really an issue.

GTK+
====

Advantages: Pretty good object design, considering it's
written in C. Lots of widgets. Pretty fast. Glade is
coming along as a GUI builder too -- it's usable for about
90% of what I need.

Disadvantages: no good C++ bindings yet. GTK-- is not
quite there yet, and Inti seems to be even further behind.
GTK+, like Motif, relies on callbacks for events, and there
are inherent type-safety problems with this.

FLTK
====

Advantages: very small and lightweight toolkit. Native
C++
implementation (although it does use a C-style callback
mechanism for events). FLUID, the GUI-builder, is pretty
good.

Disadvantages: the widgets aren't quite as extensive as
in
QT/GTK+. Callbacks are used for events, and the STL is not
leveraged.

Personally, FLTK seems to be a contender: it's a C++-native
toolkit, it's small, and it seems to be well-maintained and
robust. It won't integerate into GNOME/KDE as well as I
might like -- DnD is sure to be a problem -- but then again
this project doesn't really need a high level of
integration anyhow.

Lots to get done today. I'm having some conceptual
problems with a certain dialog (it's intended to allow
users to choose one or many classes of people to be
assigned to a given event). The functionality is fine, but
I'm dissatisfied with the UI -- it seems a bit counter-
intuitive even to me. Right now I'm using a standard VCL
listbox control as both the Available and Selected list; I
may switch to using a StringGrid due to the greater
flexibility it offers for layout. Also doing a lot of
cleanup work on the middle-tier component and making it
more modular.

Personal:

The hard disk on my Linux box seems to have recovered.
It's not making ugly noises anymore, at any rate. I opened
the case and made sure all the cables were well-seated and
that the drive itself was firmly mounted in the bracket.
Maybe something was loose, I dunno. (Just to be safe,
though, I tarred and gzipped everything on that drive (it's
mounted as /usr) and archived it.

If this hard drive *does* croak, I think I've got an 800MB
ide drive floating around somewhere that I pulled out of an
old Packard Bell machine. Or I can just quit being miserly
and buy a new drive! (...nah.)

Books:

I've been thinking about computer books lately. My shelves
downstairs are stuffed with all kinds of technical books --
big, fat, expensive technical books. Most of them are
obsolete or fast becoming so; in another year I'll probably
have to throw them out because they won't be useful any
more.

Yet the books I intend to keep, the books that keep on
being useful year after year, are the skinny little tomes
like "The C Programming Language" and "Programming Pearls".

There's got to be a fundamental truth in there somewhere.
As a technical writer, I find that many technical works are
very shoddy: quick hack-jobs aimed at time-to-market
relevance, not comprehensiveness or even accuracy.
Publishers seem to want to sell by weight -- some of those
damned books must weigh twenty pounds! (The champion
bruiser books on my shelf is Petzold's "Programming
Windows" and the companion "Programming Windows with MFC"
by Prosise -- they run about 1500 pages (!!) apiece.)

My favorite publisher used to be O'Reilly, but I've found
that their formerly-excellent lineup has begun to suffer
some erosion of quality. Addison-Wesley books are
generally very good, albeit expensive. Wrox books are a
mixed bag (although their GTK+/GNOME book is very good).
IDG books (the "Bible" series most especially) are pretty
mediocre -- the "Dummies" books are almost uniformly bad.
QUE and SAMS books, in my experience, suck the old hairy
root. ("Learn Brain Surgery In 7 Days!") Prentice-Hall
puts out pretty good books.

The upshot I come away with: buying pure reference works is
probably a waste of money. "Dummies"-style tutorial books
are all but worthless and are probably more harm than
help. The value of a book to me is often inverse to its
size -- most of my favorites come in at around 250 pages.

I see that 'Titan A.E.' is finally out on DVD. Although
the movie never garnered very good reviews, I kind of
enjoyed it. I'll probably pick it up sometime over the
weekend.

Last night I archived a bunch of stuff off my Linux box --
old source trees, graphics files, programs I never use, old
documents I want to keep but don't want cluttering up my
hard drive. My Linux box only has about 3GB of hard-disk
spread over two 1.5GB IDE drives, and this operation freed
up about 500MB of space. I probably could have sprung for
one of those new 40GB drives, but what's the point of
spending the money? The set-up I have now is plenty fast
and works just fine; it just needed a bit more space.

I'm growing less enamored of Applix Office by the day. I
don't know if it's because I updated my GTK+ libraries to
1.2.8, but all of a sudden I can't keep Words running for
more than a few minutes at a time. Try to open a text
file -- the app dies. Try to print a file -- the app
dies. Try to save a file in RTF format -- the app dies.
And it goes on like that. I'm about ->this close<- to
deleting that crap off my hard disk and sending Applix a
very nasty note. I just want to make sure it's nothing
something I'm doing before I blame Applix.

Whew! I finally finished a STL programming article I'd
been working on for some time. It took a lot longer than I
had anticipated to complete, mainly because I kept getting
interrupted with other things. Normally I find technical
writing to be fairly easy (at least when I know the subject
well), but this one was like pulling teeth!

I subscribed to the GTK--
mailing-list, and will monitor that for a few weeks
until I feel ready to start asking intelligent questions.
I have to say that the design still seems a little iffy to
me, but I don't want to pass final judgement until I have a
better understanding of it.

I found a nasty memory-leak in a team-member's code (which
frankly he should have caught earlier; all it took was a
quick run of the profiler to nail it). It irks the crap
out of me when programmers are lazy, sloppy, or both.
Grrrrr!

Personal:

It looks like Havoc has been pulled into GTK+ 2.0
development and hasn't been updating Inti for a while. The
way things are looking, Inti won't be ready for serious use
for quite some time. That leaves me with GTK--, which
isn't great but is much further along than Inti. I may
roll up my sleeves soon and attempt a larger project
with GTK--, just to see if I can adapt myself to it.

'Red Planet' sucked, but not as badly as 'Mission To Mars'
did. It'd be okay as a renter, if you can get it for $2 or
less. I felt kind of cruddy Sunday, so I spent the
afternoon in bed and consequently didn't get much coding
(or housework) done. Tonight I'll try and catch up some of
the stuff I left undone over the weekend.

I'm re-reading Hogan's "The Code of the Lifemaker" right
now. I like that book more every time I read it. It's
much stronger than the sequel, "The Immortality Option".