[This is a little strange. I wrote this on July 27, but
when I noticed a typo and fixed it, the system now calls it
July 31. Sigh.]
I visited this site a few months back, and found the trust
metric system very interesting. I always meant to look into
it further, but maybe you're familiar with how things you
put off can miss the back burner and end up on the floor
behind the stove, forgotten? (I have this feeling I'm
mutilating metaphors, but such is life.)
Life is too busy. It's inescapable. I never find
all the
time I need to do the things I want to do. Obviously, I
want to do more than I can hope to find time for, even in
the best case scenario. I have countless computer-related
interests I'd like to pursue. At the same time, family time
is a top priority. Yes, I would get more programming done
if I didn't have a family, but I wouldn't give up my
daughter for anything in the world. (I've already
lost one daughter to "SIDS", 14 hours after she received 6
vaccines. But that's a long story...)
I worried a bit about what level I should certify
myself at,
once I finally got around to creating an Advogato account
today. At risk of coming across as arrogant, I certified
myself as a Master, albeit with some trepidation.
Basically, I feel that I have very strong skills, but
(due to that lack of time problem) I haven't visibly
participated in the free software community to the extent
that I've been emotionally involved in it.
One reason is a personal project that has been under
development since November 1992, yet remains unreleased.
Another reason is that my employer from July 1996 to March
2000 had a draconian intellectual property agreement that
basically kept me from doing any outside work of any
significance. (That, and they overworked me enough that I
didn't have the time or energy anyhow.)
I've long viewed myself as a member of the community
(since
about 1987, when I first discovered GNU software and Unix),
but my
public contributions have been relatively limited. I'd like
to change that, but I haven't quite figured out how best to
go about it. There are a number of projects I'd like to
help out with and/or create, but I've got very little free
time to do any of it. My (living) daughter is 10 weeks old
today, and demands (and deserves) much of my
attention. (My first daughter died at 9 weeks old.) It's
hard to figure out how to prioritize what little free time I
can find.
The long-running project mentioned above is a CMC
(Computer-Mediated Communications) system named "Phoenix".
It started out in November 1992 as a simple chat program for
the sole purpose of talking to family members that had
Internet access. (To save long-distance charges, of
course.) It evolved into a fairly robust backend
single-threaded select-based TCP/IP server with a text-based
user interface (which some consider primitive) based on an
older CMC called "CONNECT" that I used to use when I was at
Rensselaer Polytechnic Institute (RPI). (CONNECT predates
IRC, and I grew quite used to the interface, but I've had
others tell me they can't stand it.)
I could talk for quite a while about the existing
features
of Phoenix, but I haven't the time. Suffice it to say that
my time was scarce enough during the original development
that what could have been a couple months of development
work stretched out over nearly 4 years, often with months
between even minor code updates. It was completely dormant
for the duration of my employment mentioned above. (I
didn't want to risk them "owning" it because I worked on it
while in their employ.)
Nevertheless, the server has been continuously
running for
at least 5-6 years now (probably closer to 7 years) with a
very few active users. Most of the potential users
(who are already familiar with the CONNECT interface) use a
CMC at RPI called "lily", a successor to "Clover", which was
a successor to CONNECT. (RPI has a long CMC history!)
Phoenix is intended to be a community-building system, and
establishing a community is a chicken-and-egg problem.
Similarly, finding time and motivation to improve the system
is harder when there's nobody to benefit! (Yet I have a
TODO list a mile long!)
Okay, so the obvious question -- why haven't I
released the code? There are several reasons, though I'm
not sure how good they are. One was pragmatic -- I wanted
to build a userbase for the system, and releasing the code
before establishing a userbase would risk having someone
else take my code and get the users by virtue of finding
more time to work on the features they wanted. (The obvious
alternative is to seek a different community of users to
attract, which probably involves a new UI.)
Another reason was that I always wondered if the
code could
potentially serve as the basis for a commercial product of
some sort, with the goal of making me enough money to live
on so that I could spend my days programming free software
as I'd prefer. (Maybe that's not the best way to achieve
that goal?) It's part of that classic question of "how do
you make a living while writing free software?" (I'm still
not sure about this one.)
Another reason is that I never felt the code was quite
"ready" to be released. From the user perspective, many of
the basic features in the "competing" systems were still
missing, although they weren't necessarily hard to add.
More importantly, I still had some core architectural
changes in mind, which I wanted to accomplish before
exposing other developers to some of the ugliness in the
existing code. Equally important, I wanted the code to be a
good demonstration of my coding skills, and not all of the
design or code meets my personal standards for such a use.
I suppose I'd still like to be able to
release the
code, but I'm still not sure I'm ready to do it yet. At the
very least, I'd like to reach a clean "stopping point" with
the code first. Sure, I could release it today, but I think
some things really need to be cleaned up first, some core
features added, and some architectural changes made. Then I
could see releasing it. (I'm still a little wary of the
possibility of forfeiting any monetary potential it might
have; any thoughts on that?)
If anyone has bothered to read this far, who is
interested
in trying the system as a user, send me email at deven@ties.org and I'll
tell you how to get signed in and look around... (If you
haven't read this far, then nevermind! :-)
Deven