The Code Style site has evolved by gradual refinement and accumulation of features and content. This review is part of a fully backdated site log and archive that sheds light on when, why and how particular features were implemented.
This log is sometimes updated several times per week, sometimes with a long overdue backlog of items. Many log entries refer to the Code Style Java package that delivers the servlet services and utilities used to manage this site.
Subscribe to the news feed for this log:
Completed the corrections to the recent FAQ sort order problems by re-writing the implementation of raiseSortOrder(FaqNode) in FaqSection and FaqCategory to isolate these changes from the underlying sorted TreeSet storage. The methods now use an independent array copy of the node sort order to identify and update the sort index of the members. The members are removed from the TreeSet before the update and added again afterwards to force the a re-sort. Without the removal and addition, the TreeSet toArray(Object[]) method returns the original sort order of the set.
Added a new getQuestionArray() method to the Category interface and getCategoryArray() and getSubSectionArray() methods to the Section interface. Also removed the boolean "stored" parameter from the newCategory() and newSubSection() methods, since a known sort index implies the objects are stored, and added add(Section), moveTo(Section) and remove(Section) methods to the Section interface and FaqSection implementation.
Also added a number of generic methods to the FaqNode interface: getChildCount(), getIndexOfChild(FaqNode), getParentNode(), removeChildNode(FaqNode) and insertChildNode(FaqNode). Carried through these new FaqNode interface to FaqSection, FaqCategory and FaqQuestion.
Finally, created a new FaqTreeModel class extension of DefaultTreeModel. The class takes a DefaultMutableTreeNode as a constructor argument and adds a findNode(DefaultMutableTreeNode, FaqNode) method to find the tree node container for a given FAQ node under a specific tree node.
Added several new FAQs, but discovered the incorrect category grouping problem identified on 5th December still existed. Made a temporary fix to the FaqMenuGenerator class sufficient to re-generate the FAQ pages.
getState( ) method!
Also changed the applet test page for Unix family operating systems to use same object markup include file as the live Windows font survey and Mac font survey pages.
Added a new jar.applet.fontsurvey target to the Ant build file to produce a JAR archive of the font survey applet. Updated the applet object markup with an archive attribute for Internet Explorer and Opera, and an archive parameter element for Firefox, plus instructions on enabling Java in these three browsers.
Latest updates to the Code Style font survey results:
Created new Java strings FAQ, Servlet lifecycle FAQ and Servlet threads FAQ sections.
Created an SQL ALTER script to enlarge the size of the subject_terms field of the FAQ database, plus a number of utility scripts to debug the order and grouping of FAQ categories and questions and check the subject classification of questions. One script sorts categories by section name and category sort_index, another sorts sections by their own sort_index fields. A subject terms script checks for the occurrence of subject vocabulary terms in FAQ questions and answers for manual update.
Updated the Code Style subject vocabulary with HTTP protocol, operating system and Web browser terms and sub-terms. Extended the usage notes and sorted terms and sub-terms alphabetically.
Re-generated all FAQs with correct category sort order. A bug in the FaqDataEditor class was not preserving the sort order when the category sort index was adjusted.
These backdated pages record detailed changes to the Code Style Web site since July 2000, when development first got underway. Some pages may refer to documents or features that have since changed or are no longer part of the site, but the archive is checked to ensure there are no dead links.
For a summary overview, see the annotated site log contents.