State of the Chicken
Wow, it's been a long time since I posted. A lot has happened with the Shoechicken project in the past few weeks.
James and I have completed another draft of the paper. Hopefully, we'll have it up on the website soon. This draft will be our submission to the 21st International Conference on Computers and their Applications.
I have been tinkering with the design (well, not design per se) of the Shoechicken database lately. Most of what I changed was just nitpicking, but since I'm the one working with it at the moment I figured I would go ahead and make the changes. For instance, the table names have been changed to the singular (i.e. "Feeds" is now "Feed"). From a programming standpoint it just didn't feel right working with it in the plural when dealing with individual records. Second, I changed the auto-numbered *Id fields of the tables to simply "id." It was just redundant to type "Feed.feedId," so the new "Feed.id" is much better. Foreign keys are still referenced using the old *Id names, since they refer to the "id" fields in different tables. Lastly, I added a field for the title of a feed to the Feed table. The database design website has been updated to reflect the changes. The scripts for initiating the changes have been comitted to the repository, along with a copy of the empty shoechicken database.
I have given up on the Wiki for writing class specifications. Half of this comes from the fact that it didn't like me saving changes, so it was wasting my time without getting anything published. The other half comes from the fact that I can write code a lot faster than I can specify what it should do. All in all, Shoechicken just won't be completed in any reasonable time if we switch to this approach now. It was a beautiful dream though...
Well, all of the database changes weren't made for nothing. A lot of my time has been spent working on the parts of the Shredder that deal with the database. I have been developing the ArticleDatabaseHelper class, which will be used to add/retrieve/remove data related to the article tables in the database (Author, Context, Feed, Item, ItemToKeyword, and Keyword). The class is nearly completed, with only the methods related to the ItemToKeyword table outstanding. The class already weighs in as a beast of nearly 1,700 lines of code, which I'm sure it will break before it is completed. James and I still need to discuss the approach the ArticleDatabaseHelper will take when dealing with the inability to obtain Connection objects from the ConnectionManager. Additionally, I have added its related exception, the DatabaseProcessingException, to the repository. At this time, no test cases exist for either of these classes. I will work on test cases as soon as I have access to the completed ConnectionManager class.
In addition to the above mentioned classes, I have implemented the Shredder classes which use the ArticleDatabaseHelper to add their appropriate "shreds" to the database. I have commited the ContextEntryCreator, ItemEntryCreator, KeywordEntryCreation, and KeywordCountEntryCreator classes to the repository. These classes have not been tested either, since they are dependent on the completed ArticleDatabaseHelper class. Additionally, James and I need to discuss how these classes will handle exceptions, and that functionally will need to be added to them.
James and I have completed another draft of the paper. Hopefully, we'll have it up on the website soon. This draft will be our submission to the 21st International Conference on Computers and their Applications.
I have been tinkering with the design (well, not design per se) of the Shoechicken database lately. Most of what I changed was just nitpicking, but since I'm the one working with it at the moment I figured I would go ahead and make the changes. For instance, the table names have been changed to the singular (i.e. "Feeds" is now "Feed"). From a programming standpoint it just didn't feel right working with it in the plural when dealing with individual records. Second, I changed the auto-numbered *Id fields of the tables to simply "id." It was just redundant to type "Feed.feedId," so the new "Feed.id" is much better. Foreign keys are still referenced using the old *Id names, since they refer to the "id" fields in different tables. Lastly, I added a field for the title of a feed to the Feed table. The database design website has been updated to reflect the changes. The scripts for initiating the changes have been comitted to the repository, along with a copy of the empty shoechicken database.
I have given up on the Wiki for writing class specifications. Half of this comes from the fact that it didn't like me saving changes, so it was wasting my time without getting anything published. The other half comes from the fact that I can write code a lot faster than I can specify what it should do. All in all, Shoechicken just won't be completed in any reasonable time if we switch to this approach now. It was a beautiful dream though...
Well, all of the database changes weren't made for nothing. A lot of my time has been spent working on the parts of the Shredder that deal with the database. I have been developing the ArticleDatabaseHelper class, which will be used to add/retrieve/remove data related to the article tables in the database (Author, Context, Feed, Item, ItemToKeyword, and Keyword). The class is nearly completed, with only the methods related to the ItemToKeyword table outstanding. The class already weighs in as a beast of nearly 1,700 lines of code, which I'm sure it will break before it is completed. James and I still need to discuss the approach the ArticleDatabaseHelper will take when dealing with the inability to obtain Connection objects from the ConnectionManager. Additionally, I have added its related exception, the DatabaseProcessingException, to the repository. At this time, no test cases exist for either of these classes. I will work on test cases as soon as I have access to the completed ConnectionManager class.
In addition to the above mentioned classes, I have implemented the Shredder classes which use the ArticleDatabaseHelper to add their appropriate "shreds" to the database. I have commited the ContextEntryCreator, ItemEntryCreator, KeywordEntryCreation, and KeywordCountEntryCreator classes to the repository. These classes have not been tested either, since they are dependent on the completed ArticleDatabaseHelper class. Additionally, James and I need to discuss how these classes will handle exceptions, and that functionally will need to be added to them.