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:
Added a range of new font screen shot images to the Mac font survey results thanks to a Code Style reader:
Added the new .SizeData rule to the draft persistent stylesheet, see 17th January 2003 and 9th January 2003.
Created a first draft TransformationHandler class to externalise all JAXP XSLT processing and finished JavaDoc comments. This version appears to be doing too much and will probably require further break-down.
Changed the ParseRDF servlet to utilize the new static TransformationHandler.transform method by passing a ServletConfig object with all installation-specific file system parameters. Added a global initialisation variable to the Code Style servlet configuration for an installation-specific DTD, entity, or general "resource" directory. Copied the XML, XSLT and DTD directory references to all local and remote Ant filter files.
Removed debugging methods from the JAXP ResourceResolver class and trimmed its import statements accordingly. Introduced a constructor that dynamically reads the resources directory and builds a catalogue of local resources: public ResourceResolver(String home, String directory).
Wrote a first JUnit test case, ResourceResolverTest, with basic tests for the ResourceResolver's resolveEntity(String publicId, String systemId) method.
Added an overloaded version of the makeURL method to the ServletUtilities class without a paramName argument, which assumes the parameter name url.
Reviewed and completed JavaDoc comments for the DatabaseUtilities and DBResults classes adapted from Core Servlets and JavaServer Pages by Marty Hall (see Anchor Points: Java servlet books). Removed the interim fontFrequencyTable method, and tidied up the StringBuffer concatenation in the DBResults' toXML(String survey, String doctype) method.
Added a constructor with a custom message to the WrappedException class and completed JavaDoc comments.
Added installation-specific XML, XSLT and DTD directory references to the Ant local.dev.filters file and the CodeStyleTemplate class to the servlet initialisation parameters. Updated the remote.properties file for the production host with the JUnit package classpath.
Added the JUnit package classpath to the standard Ant build via the local.properties file, and a simple junit task to the compile.dev target to test.
Wrote a first draft ParseRDF servlet using the XHTMLtoRDF XSLT. Added global initialisation variables to the Code Style servlet configuration for installation-specific XML and XSLT directories, and a servlet specific initialisation value for the XHTMLtoRDF stylesheet. Also added a servlet alias for the draft ParseRDF servlet.
Wrote a new static makeURL(HttpServletRequest request, String parameterName) method for the ServletUtilities helper class. This takes a local or remote URL parameter name and returns a URL object.
Added a new .SizeData selector to the CSStdLiveryCommon.css stylesheet for a font-size comparison with HTML font element sizes.
.SizeData{
text-align: right;
}
Made a further adjustment to the SQL validation script for font survey submissions so that records are updated once and only new, nominally "invalid" records are validated. This script uses a subquery to avoid considerable re-processing and redundant post-processing and speeds up the process dramatically.
Also made various adjustments to the trigger functions on the codestyle_fonts database to improve performance. Firstly, configured the trigger_enddate_update() function only to update when the new submission date field is later than current surveyline enddate fields.
Secondly, split the former trigger_submission_count() function into trigger_submission_increment() and trigger_submission_decrement() for UPDATE and DELETE events respectively on the codestyle_fonts database submission table.
Finally, created a new trigger_dataline_cleanup() function, which is triggered on DELETE from the submission table, to clean up orphaned records.
Wrote a new SQL script to decant invalid font survey submissions (for the wrong platform) that include notification requests to the notify table.
Also changed the main font survey validation script from simply reporting duplicate notification requests between the submission and notify tables, to delete the entry from the notify table. Added a duplicate submission report to the end of the script.
Added a strictly redundant boolean notify field to the master build script for the notify table to conform to the alteration made on 13 October 2002.
Finished a long-standing draft Golden rules for Javascript article and added links to it on the main Javascript & DOM section index and Javascript & DOM contents page.
Finished an SQL query to report duplicate survey submissions in the codestyle_fonts database, and copied this into the main validation script.
Added a new link to the CSS section of the Anchor Points: Your submissions page, with shortcuts from the Anchor Points: Cascading Style Sheets page too.
Added a new BarData class attribute to the bar chart cell of the various font survey results tables via the FontSurveyTable XSLT, reduced the cellpadding attribute to zero and increased cellspacing to 3. Updated all the results table with the new markup.
Deleted a number of redundant style rules in the CSStdLiveryCommon.css stylesheet and added a new selector .BarData to match the new font survey results bar, with a feint grey background.
.BarData{
width: 100px;
background: #EEE;
color: #333;
}
Added an override to the CSStdLayoutCommon.css stylesheet for fieldset in td, which previously inherited a wide right margin.
TD FIELDSET{
margin-right: 0;
}
Did some further tidying work on a second alternate stylesheet, including the deletion of a number of rules for redundant selectors. Incorporated former "strict" livery styles into a single stylesheet document and separated out persistent styles for results and reference tables etc. Subtle adjustments to the colours and margin widths on the sidebar and footbar menus.
Started preparing a new persistent stylesheet for general purposes, to apply regardless of titled primary or alternate stylesheets. Further work required to ensure that all relevant styles are present.
Changed wording of anchor titles on all footer include files to "follow this link" rather than "click this link".
Introduced a new set of Code Style font sampler results table include files for easier maintenance.
Created an abstract Link class that is equivalent to an XHTML link element, plus a concrete StyleLink object that represents an XHTML stylesheet link. Also created a Vector-based LinkSet container for Link objects with methods to add links and render the set as XHTML link markup.
Added new LinkSet type STYLE and STYLE_WIDE fields to the CodeStyleTemplate class with private initialisation methods standardCSSLinks() and wideCSSLinks(). Introduced the CodeStyleTemplate class to the EchoRequest servlet via TemplateFactory to test and debug.
Created a basic abstract DocumentTemplate class that implements the Presentable and Navigable interfaces, and an abstract TemplateFactory that instantiates templates via a fully qualified class name specified in the servlet configuration. Added a global initialisation variable to the servlet zone for the fully qualified name of the CodeStyleTemplate.
Added new COPYRIGHT, PREFIX and GLOBAL_NAVIGATION fields to the CodeStyleTemplate class, and an interim getGlobalNavigation(String sectionName) method to fulfil the Navigable interface.
Changed the constructor for the ImageSequence class to receive a prepared Map of properties and reduced to package visibility so that it can only be instantiated via the SequenceFactory. Made the SequenceFactory getSequence(HttpServletRequest request) method public for access from other packages.
Renamed the Metadatum methods to getElementName() and getQualifierName() to reduce ambiguity and fall in line with getFullyQualifiedName(). Changed Metadata calls to the new Metadatum method names. Removed all fields and methods from the interim DCMetadatum class except a schema field and constructor with package visibility. These metadata must be created via a forthcoming factory method in this package.
Re-formatted the body text for the EchoRequest servlet and introduced a standard getServletInfo() method and information fields.
Trimmed the import statements for the ViewSource servlet to only those required for the current version.
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.