In this section

Site navigation below

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: RSS news feed

Reverse chronology

28th September 2003

Added a link to An easy way to install Microsoft's TrueType core fonts on Linux to the AnchorPoints: Fonts & font foundries page.

20th September 2003

Changed Safari version numbers in the Mac font sampler and survey browser analysis script from point separators to full numbers on advice from Apple.

Corrected DC.Title metadata on the site log, July 2003 page and archived the site log, August 2003 entries.

14th September 2003

Noted Opera 7.11 and Netscape 7.1 support for the DOM1 visibility menus and re-set the compatibility table using a new SupraHeading class, styled in CSStdLiveryCommon.css.

.SupraHeading {
  color:            #333;
  background:       #EEF;
}
      

Also added the fundamental styles for SupraHeading to the persistent style sheet, CSPersistent.css:

.SuperData, .SuperHeading,
.TestData, .SupraHeading {
  font-size:        smaller;
}

TH, .SupraHeading{
  text-align:       left;
}

.SupraHeading {
  border-top:       solid 1px #000;
  border-bottom:    solid 1px #000;
}
      

Added a lilac background tint to form text, checkbox and radio button inputs, select and textarea fields via the CSStdLiveryCommon.css style sheet.

INPUT[type=text],
INPUT[type=radio],
INPUT[type=checkbox],
SELECT,
TEXTAREA {
  color:            #000;
  background:       #EEF;
}
      

Also added a CODE { font-size: 0.98em;} rule to better match extracts with standard body text, and added an exceptional rule for fieldset elements to work around a problem in Opera 7.

/*
  Opera 7 ignores border: none; so
  zero width set.
*/
TD FIELDSET{
  margin:           0;
  border:           solid 0px #FFF;
}
      

13th September 2003

Completed testing and wrote-up media dependent style sheet conformance for Opera 6.01, Opera 7.11 and Netscape 7.1 for Windows. Both Opera 7.11 and Netscape 7.1 are fully conformant user agents in this regard. Opera 6.01 appears to use the same media stylesheet implementation as for version 5.11 and earlier versions.

Changed the standfirst for the Code Style font sampler and survey and emphasised the lens icon comparison links more directly following user feedback. Altered the sampler-FontComparison.js popup script to clarify the script logic and set only to output the user note about the popup window when the popable status is true. Also set the lens Lens icon and information Information: icons on transparent backgrounds so that they better integrate with the alternative style sheet.

Changed the colour of the sidebar and footbar menus in the alternative style sheet, CSAlternate.css, added a .BarData rule and applied greater padding above the site search text. Made further minor modifications to the standard layout stylesheet, CSStdLayoutCommon.css, to complete the refactoring to the new persistent style sheet, CSPersistent.css.

Added the markup validators server side include to the Anchor Points: Site Management section, and added a link to Andy King's excellent Web Page Analyser service to the software section.

Doubled the height of the comments textarea in all standard feedback forms to 12 rows following user feedback. Also increased the border width of form elements in the strict livery style sheet from 1px to 2px, CSStdLiveryStrict.css, to make the edges more distinct.

INPUT, SELECT, TEXTAREA{
  border-width:     2px;
}
      

Added missing type="text" attributes to the main advanced search input and no search results version.

12th September 2003

Started testing and writing up CSS media monitor test case documents for Opera 6.01. In short, the media stylesheet implementation in Opera 6.01 is the same as Opera 5.11.

Changed the Googlebot exclusions in robots.txt to the same set of URLs as for Atomz site search to further control bandwidth usage.

11th September 2003

Added Galeon 1.2.7, iCab 2.9.1 and OmniWeb v496 to the browser validation script for the Code Style font sampler and survey. Updated and published latest results.

6th September 2003

Introduced a new upper class hierarchy to the org.codestyle.template package to provide finer integration of output interfaces and abstract content models with client packages. A new abstract superclass Content provides concrete methods for getting and setting the indent level for text content that removes redundancy in several former subclasses. A new abstract ViewableContent class simply extends Content and implements Viewable so that classes can inherit from any one of the three as either sub-interface, abstract or concrete classes.

The ViewableContent class also removes redundancy in the former ViewableSample and ViewableSequence classes. The Sample and Sequence classes now inherit directly from ViewableContent rather than duplicating Viewable implementation code. For the time being, this leaves ViewableSample and ViewableSequence with inappropriate names, since their Viewable interfaces are implemented in their superclasses. These classes will ultimately need to be factored out or renamed.

Extended the DocumentTemplate, Metadatum and StyleLink classes from the new Content class to consolidate the indentation methods, and stripped the indentation code from XhtmlTemplate to inherit from DocumentTemplate.

Moved the protected DocumentTemplate field from the individual CompareSample, ImageSample and TextSample to their common superclass ViewableSample. Also extracted the common getCssNote, showBackReference and isPopup methods from Sample to ViewableSample to leave only the sample-specific properties and accessors in the superclass.

Refactored the Sequence class in a similar way to Sample to leave only sequence-specific properties and accessors.

Introduced a new class hierarchy for requesting Stream and Reader content through the org.codestyle.io package. The abstract superclass IORequest implements concrete getBufferedReader and getInputStreamReader methods via the abstract getInputStream method. The superclass also includes an abstract getLastModified method.

Added an abstract NetworkRequest class to the org.codestyle.net package that extends IORequest with a PORT_HTTP constant and abstract getPort and getHost methods.

Adapted HttpContentRequest to extend NetworkRequest, but the socket-based HttpRequest was not so amenable to change. Decided to abandon the HttpRequest class in favour of the more versatile HttpContentRequest. Refactored the class' only client, the ViewSource servlet, to use HttpContentRequest and added PORT and PROTOCOL constants to construct the URL argument it requires. Also re-configured the output line numbering logic.

Introduced a new abstract superclass CacheValue for the draft cache implementation in the org.codestyle.broker package, and created a new FileCacheValue from the former ResultValue class. Moved the isStale method from FileCacheValue up to the superclass CacheValue and added a default constructor that always throws an IOException; the constructor arguments for the cache locator and OutputStream are critical.

Applied further standardisations to the Code Style Java project by applying Check Style tests in turn and correcting failing classes. Specifically finalised methods, method arguments and constructor arguments in all applicable classes. The only exceptions for which overriding is permitted are the getContentType method in DocumentTemplate; the init and getLastModified methods in TemplateServlet; the key Presentable interface methods in XhtmlTemplate; the parse methods in AbstractXMLReader and initializeSourceType in the abstract ParseServlet.

Also completed the clean-up of "magic numbers", adding a BAD_REQUEST constant to the AnchorPoints servlet in place of magic number 400 in the sendError calls. Made the array of standard XSLT output types in SourceType a static final constant and added a new TYPE_COUNT constant to instantiate the type matrix Hashtable and amended the constructors accordingly.

5th September 2003

Worked through a number of what Check Style calls "magic number" literals that are not defined as constants. Introduced a final reference to HttpServletResponse.SC_INTERNAL_SERVER_ERROR in ErrorHandler rather than magic number 500. Added static final error codes BAD_REQUEST and SERVER_ERROR to the abstract TemplateServlet in place of magic numbers 400 and 500. Adopted the new error code references in ParseServlet and ViewSequence.

Broke-out the lengthy renderLinks method in the abstract Metadatum class into separate public renderBackLinks and renderForwardLinks methods.

Introduced a QUERY_ALL constant and makeQuery(String surveyId) method to the FontStats class to avoid code duplication in the main and doGet methods. Also renamed variable names in getContent method to prevent hiding, and added JavaDoc comments throughout.

Previously on Code Style

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.

Add this page to your chosen social bookmarking service

Style warning - please read

Home · CSS · Java · Javascript · HTML · Help · Log