I decided not to rebuild DCOMP, but rather to modify the existing structure. I decided this for a couple of reasons: first, DCOMP is some 3000 lines of code which I would have to re-write using my new structures. second, the new structures accomplish the same things the old system does, except they do so in a less convaluted way. The cons severely outweigh the pros--especially considering I have no partner to help struggle with this.
So I started modifying the existing code:
Closing comments:
- downloadgroupinfo now happens in a series of packets and not one packet allowing for more group information downloaded to the CGI interface and more groups.
- initialization file for admin--which will launch default groups, modules, associate modules to applets, the admin service account, and the applet html code.
- cleaned up Interface3.CGI--now allows for personalized html files for when the server is down and such. I also fixed a lot of the code and took some of the pieces out of functions and into in-line functions. I also threw in a bunch of comments.
DCOMP was built as the underlying system for groupware and group oriented groupwork. My thesis focusing on on-line education is a subset of this original goal as on-line education takes place in a group--a classroom. Many of the elements of DCOMP should fit in nicely with the classroom paradigm.I've been reading a lot of distributed computation and client/server strategies as the entire system relies upon these ideas in order to function efficiently. In this regard, I am working through changing pieces of the DCOMP protocol-- used as communication between the server and the client. There are a couple of problems with this: changing the protocol requires recoding in a number of places. It would be nice if I could abstract the server and client portions from the protocol somehow.
I'm kind of taking my time and programming this methodically and incrementally. I'm doing this because I am the only person working on the project and there are some 3000 lines of code, so if I do some fast coding and miss something, debugging could potentially be very painful. I'm trying to avoid that if I can--and while I have the time to do so.
And I miss my partner in crime.