|
|
jSyncManager History
The jSyncManager Project has a long, and somewhat troubled history.
The project initially began forming in my mind in 1997. At the
time, I owned a PalmPilot Professional, that I had been given earlier
that summer at my summer job at an ISP called "Internet Direct" in
Toronto, Ontario, Canada. At home, all of my computers (at the
time) were running IBM's OS/2 WARP v4. I was also working toward
completing my Honours B.Sc. in Computer Science at Brock University in St. Catharines,
Ontario. As there was no decent Palm synchronization software for
OS/2 at the time, and as I was looking forward towards making a proposal
for my Honours Thesis, I decided to undertake the task of creating such
software myself.
I had a choice to make at this juncture: I could either write a
native OS/2 program to do the job, and target a small audience that
excluded everyone else, or I could think bigger, and work in a
cross-platform environment where my code could be run as-is on a variety
of different environments, including all of those that weren't being
targeted by Palm. I decided on the latter, and choose to do
everything in Java.
At the time I started, there was no mechanism to communicate with
hardware ports in Java, so when I pitched my proposal to members of
Brock's Computer Science Department,
I decided to break it into two separate projects:
- A project to create a specification and implementation for
communicating with serial ports in Java. This project was known as
the Java-Serial Project, and
was worth one-half credit towards my degree, and
- The Java-PalmPilot Project,
which would be my Honours Thesis Project (worth a full credit towards
my degree), which would implement all of the synchronization code.
The Java-Serial Project was
released to the general public in mid 1998. Around the same time,
Sun released its first beta of their Java
Communications API, making the Java-Serial
Project moot in the real world. It was, however, my
introduction to JNI coding, and was marked quite favorably as a
project. It is now but a footnote in my development history
(although I do still have the source -- if anyone requests, I'd be happy
to send copies to interested parties).
The Java-PalmPilot Project was
released to the public as v1.0 in May of 1999, this time as the jSyncManager. The initial
release used both the Java-Serial
Project API, and Sun's Java
Communications API. Brock
University still has a website for the project, accessible via this link.
Towards the end of my time as a student at Brock, I was offered a job
at IBM's Toronto Software Development Lab. While at the time I was
intending to go on towards my Masters degree, IBM's offer changed my
mind. In late May of 1999, I began working for IBM. As with
most big corporations that do R&D work, I was required to sign a
rather restrictive agreement that basically said "Whatever is theirs is
theirs, and whatever is mine is also theirs". Basically, it
stated that whatever I developed while I was working at IBM, IBM owned
the rights to. Whatever I developed previous to working for IBM,
however, I continued to own.
This created some difficulties when it came to the
jSyncManager
Project. It had just been released as a v1.0
release earlier that month, and it was getting a lot of attention from
users, particularly corporate users running Lotus Notes. Prior to
the time I started working for IBM, an IBM employee who also desired
Palm data synchronization functionality on his OS/2 box used my jConduit API to write a conduit for
Lotus Notes, which he released for free online. This quickly
became the jSyncManager's
"killer app", both inside and outside IBM. People were downloading
the jSyncManager, and were requesting changes, updates, and making
suggestions for new functionality.
Now at this point, had I been really smart, I would have released the
v1.0 code as GPL. But I wasn't. In my naivete, I decided to
work with IBM to create a co-copyrighted version, to be released via the IBM Public Licence (IPL).
After unknown hours working with IBM's legal representatives over
the course of several months, we finally worked something out, and in
February of 2001 the source for the jSyncManager
was posted to an IBM-internal SourceForge based system. I
recruited two other IBM developers to help me on the project, and we
went to work cleaning up the code, completely re-working the GUI (which
went from ugly but functional to really nice and super-functional), and
making it an overall much better, more polished end product.
We were required to change the name of the project, so after some
thinking and discussion, it was renamed ManplatoSync
for Java. Object code was made available to the general
public via a 90 day trial license through their alphaWorks website. You
can also access IBM's ManplatoSync for Java Web site.
ManplatoSync for Java was really
what I always though the jSyncManager could be. It took my core
synchronization engine code, and built upon it to make in an excellent
application that users really loved. It was quick, stable, looked
good, and worked well. But two forces were at work to stunt its
possible horizons.
The first force at work was the fact that the code was co-copyrighted
between IBM and myself. As the code contained things I developed
before I started working for IBM, I own part of the copyright.
Because of this, the lawyers at IBM completely dragged their feet
and passed the buck whenever possible when it came to the issue of
releasing the source to the public. At the same time, while
alphaWorks provides a link for companies to request paid licences for ManplatoSync for Java, the
co-copyright issue caused them to never sell a single such license (that
I'm aware of), even though there were tons of requests. Because
the object code licence limited it to a 90-day trial, and as alphaWorks
wouldn't sell the unlimited licenses due to its bastard status,
corporations couldn't legally use the code for long-term use and
projects.
The second force at work was management at the IBM Toronto Lab which,
in January 2001 decided my services were simply no longer needed.
With my termination, I could no longer be officially involved with
the ManplatoSync for Java Project.
Three weeks after my termination, the other ManplatoSync
developers took the new functionality we were working on, finished off
the incomplete parts, and released it as beta 03. To this day,
nine months later (as of this writing), it hasn't been updated since.
As I do own the copyright for the old,
original release, and as I've had lots of requests to make it Open
Source, I've taken what I own, and have updated it somewhat, and have
released it via SourceForge
under the GNU
Lesser General Public License (LGPL).
Brad Barclay
|
|