GITI’s Next Upgrade

I’ve been putting off the upgrade to GITI v3 for a while now. Chris has written an absolutely beautiful background framework upon which I can build the new version of GITI, but unfortunately, things just haven’t been clicking with me. I was talking with Chris last night about the end of the semester (which only differs slightly from the end of the known universe), and it was discussed that perhaps GITI needs a few updates for handling the complexities of graduate school work, and perhaps I need something to do to keep myself occupied in the awkward gap between academic activities (I think most people call it “Summer break”). So, a plan has been devised.

I am not quite ready to move on to version 3 of GITI, it is simply too hard and there is no motivation to do so as long as v2 works fine. Last night I just happened to recall that v2 didn’t just poof into existence, it happened as a gradual transition. Sure, I had the new v2 interface ready and had already given thought to the way it would work, but it didn’t really get off the ground by cold-converting modules. GITI v2 came into being as a very slow migration from v1, in a little phase I referred to last night as GITI 1.5. I barely remembered it because it was short lived. It was just the process of getting used to calling commands and not files (utilizing the, at the time, new interface table). At some point in there, I also dabbled in dynamic menu generation. Switching from static menus and static links is really no different than switching from manual database calls to a database-driven framework. The entire process is aimed at making the modules easier to use and maintain, and to speed up the implementation of new modules.

The motivating factor for leaving v1 behind was simply productivity. There was no room to move anymore and the only options for additional menu items was to add new pages. It was also determined that the old system didn’t allow for working between modules very well, resulting in an overall slow experience. Frames just didn’t work. My motivations for moving to v3 aren’t as significant. I feel that I need to move so that some of the older code can be weeded out and so that some of the inconsistent behaviors of the modules can be resolved into a unified process. I learned things while writing v2 that made its newer modules better than the old, and while I’m sure that the same will happen to v3, it will be nice to at least start with all of the new functionality implemented from the beginning.

One issue I didn’t have for v2, but have for v3 is Chris. Chris is difficult when it comes to programing. I cannot get away with some of my sloppy short-cuts and so much has to be discussed with him as a result of his vision for v3 (as the creator of the framework, he has the right to have his ideal methods considered). The biggest issue I’ve had so far with him is in the use of “cross-module” modules, or as I like to think of them “system modules”. These are modules that have functions across GITI, but may or may not have a purpose of their own. My favorite of these is ItemJournal. It has its own interface and its own data, but it also has a cross-module component that allows other modules to call it for the purposes of storing relevant data. I consider it to be indispensible. Chris considers it to be clutter. This also goes back to some of his concerns over data ownership and “where things are stored”. Things like the ‘fields’ table is horrendous for this, since it stores everything from constants for days of the week, to information about a user’s preference for what modules appear on the welcome screen. It is just a heaping mess. Maybe its what works, maybe it isn’t. Its an issue that has to be discussed and battled on.

No matter what the issues, on April 30th I’m going to give v3’s conversion a shot. I’m going to start work in v2 to prepare the existing modules for moving to v3, and perhaps get a chance to utilize the new database structure that has been written for some of the modules. It is a complete pain in the ass to re-write my queries with a new table structure in mind, but I think module-by-module, it will be doable. With all of this considered, I should be done with v3 shortly before I have to utilize GITI Doc v3 to write my doctoral dissertation.