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

30th September 2002

Updated codestyle_fonts database with the month's submissions and generated latest results using the new Java client and XML/XSLT route. Updated the user manual accordingly. Whole process very much faster, quality assured and less laborious. Updated latest browser versions and platforms in the browser table.

Added a charmap attribute to the Code Style font survey form configuration to escape apostrophes in the realname and Email fields with backslashes.

29th September 2002

Completed a first draft JAXP based XSLT servlet using new custom EntityResolver and ErrorHandler classes, ResourceResolver and ValidationErrorHandler, to get local copies of DTDs and entity sets and report validation faults respectively. Tested processing Code Style home page through the draft XHTMLtoRDF stylesheet and the latest font survey results through the FontSurveyTable stylesheets.

This servlet now resolves local DTDs and validates successfully, though without detailed diagnostics. Need to review the implementation of ValidationErrorHandler, the overall method call and exception handling structure and refine to handle specific test cases.

Also created a first draft JAXP AbstractXMLReader class based on the version in Java and XSLT by Eric Burke.

28th September 2002

Tried some experiments with Sun's JAXP Resolver 1.1 package to further investigate local DTD resolution. Created first draft catalog.xml and CatalogManager.properties files, but with inconclusive results.

24th September 2002

Created a first draft Ant build file for the Code Style project with independent build.properties file.

23rd September 2002

Finished updating documents in the Anchor Points section, Code Style section and Site log subsection with controlled vocabulary subject metadata.

Created first draft Soupermail configuration file and templates for processing font survey results notification requests as SQL statements.

22nd September 2002

Finally worked out that the apparent domain resolution problems with the HTTP version of the ViewSource servlet were spurious. In fact, the servlet zone was not reloading the debugged version of the class. Reviewed and stripped-down the production servlet properties and zone file entries to a minimum configuration to trace possible causes.

Eventually discovered, via an Apache FAQ, that the JServ servlet directory should not be included on the system classpath, and deleted this entry. Repositories on the system classpath are handled by the system classloader rather than the JServ classloader, so cannot be reloaded by it.

Trimmed down the .bash_profile login script on the production host to remove the servlet directory and javamail JAR from classpath.

21st September 2002

Added a diagnostic section to the HTTP version of the ViewSource servlet to trace apparent domain resolution problems. After re-staring the JServ servlet engine, the servlet worked as expected and the diagnostics showed that appropriate HTTP connections were being made. Evident that updated classes were not being reloaded.

Reviewed the new FAQ: Site Manager section and made final revisions before publication. Added links to the new FAQ to all relevant navigation menus.

Changed the internal URL references and JavaDoc comments in the FontSampler and ViewSource servlets and draft DBResults helper class to use aliased addresses. Also modified the FontSurveyTable.xsl XSLT to use the aliased form of the FontSampler URL.

Created a new DC.Subject metadata include file for the Code Style section and added new metadata include references to the Anchor Points section index and placeholder XML section index.

Created a simple diagnostic class for checking servlet reloading with scope to develop further tests.

19th September 2002

Edited all existing metadata keyword include files to reduce each DC.Subject meta element to just a single entry according to a new controlled vocabulary. Subsections include the parent term, plus their own more specific entry, and all include xml:lang attributes.

15th September 2002

Added more detailed notes on adjusting environment settings for Tomcat on Windows 95 and editing the Program Information File shortcut, following user feedback. Also reviewed the article overall and made numerous amendments to the text, including a clear distinction between the version 3 architecture and version 4. Inserted the FAQ: Java & servlets questions menu at the end of the article and a new generic subsection boxout menu, "In this section", near the top. Added Java FAQ links to the section link navigation and Java servlets section home page.

Adjusted the general layout stylesheet, CSStdLayoutCommon.css, and Netscape 4 layout stylesheet, CSStdLayoutNN4.css to override the simple .Book selector styles for boxout menus to include an image.

.RgtBox, .RgtPicBox, .Book, .Software{
  float:            right;
  margin-left:      0.5em;
}
.RgtBox .Book{
  float:            none;
  text-align:       center;
  margin-left:      1.3em;
  margin-right:     auto;
}
      

Corrected the selector for example SQL code to a code element enclosed in an SQL class p element (to allow line wrapping):

PRE, .SQL CODE{
  font-size:        0.9em;
}
      

Completed site-wide preparations for attaching RDF to all documents by changing the main metadata include file to a server parsed type, so the path of the current document can be included in the appropriate link element content.

14th September 2002

Developed a new version of the ViewSource servlet that uses a java.net.Socket based HTTP request so that server side includes are parsed. This is a debugging version to trace a problem with an earlier implementation where the Code Style domain was not resolved on the production host. The Socket version allows custom headers to be sent via a java.io.PrintWriter, including an explicit host name.

// Use HTTP 1.0 to prevent the server returning chunked data
requestLine.println("GET " + path + " HTTP/1.0");
requestLine.println("Host: " + domain);
requestLine.println("Referer: " + req.getServletPath());
requestLine.println("Connection: close");
requestLine.println();
      

Even when HTTP version 1.1 is specified, this does not work on the production host. Further investigation required.

Set up aliases for three key servlets in the JServ zone file to save including the Code Style package reference in the URL: ViewSource, AnchorPoints and FontSampler.

servlet.ViewSource.code=org.codestyle.ViewSource
servlet.AnchorPoints.code=org.codestyle.AnchorPoints
servlet.FontSampler.code=org.codestyle.FontSampler
      

12th September 2002

Converted all metadata date schemes to specify W3C date time format, W3CDTF, rather than ISO8061, which is not officially recognised by the Dublin Core Metadata Initiative, and changed all qualifiers from title to "camel" case. Also completed the removal of all unofficial Subject.Keyword and Subject.Classification qualifiers from individual pages, and removed the medium qualifier from DC.Format.

6th September 2002

Completed a first draft XSLT stylesheet to transform Dublin Core metadata from XHTML meta elements to RDF. This version uses a more concise, recursive approach to determine whether qualifiers are present and process elements accordingly.

5th September 2002

Wrote a script to create a temporary metadata table for the codestyle_fonts database and fill it with survey submissions per survey per month as a reference for tracing the frequency of named fonts by month.

CREATE TEMPORARY TABLE metadata( survey_id integer not null, submissions integer not null, month integer not null, year integer not null, CONSTRAINT metadata_pk PRIMARY KEY(survey_id, month, year), CONSTRAINT metadata_survey_id_fk FOREIGN KEY(survey_id) REFERENCES survey(survey_id) );

INSERT INTO metadata SELECT s.survey_id, COUNT(s.submission_id) as submissions, date_part('month',s.date) AS month, date_part('year',s.date) AS year FROM submission s WHERE s.isvalid = true GROUP BY year, month, survey_id;

2nd September 2002

Developed a new toXML(String survey) method for the draft DBResults helper class to return a database table in a well formed XML structure with elements named after the table columns. Passed a suitable query from the draft FontStats class, this produces an intermediate XML document that can be used to generate the published font statistics:

<?xml version="1.0"?>
<table
  survey="Windows"
  date="2 September 2002">
  <row>
    <class>
      ComicSansMS
    </class>
    <fontname>
      Comic Sans MS
    </fontname>
    <frequency>
      90.39
    </frequency>
    <imagename>
      win-ComicSansMS.gif
    </imagename>
  </row>
  ...
</table>
      

Wrote a first draft XSLT stylesheet, FontSurveyTable.xsl, to convert this XML structure to respective survey results tables in XHTML format and updated these accordingly: Windows font survey results, Mac font survey results and Unix family font survey results.

Updated the top referrers and page requests sections of the site statistics page. Added a note on the origins of the Big Caslon font to Anchor Points: Font foundries and sources.

1st September 2002

Altered the codestyle_fonts database to further de-normalise the overall data structure by moving the sample image references from the image table to the surveyline table. Having the images directly associated with the survey data avoids the need for complex joins:

ALTER TABLE surveyline ADD COLUMN imagename char(37);

UPDATE surveyline SET imagename = image.imagename WHERE surveyline.fontname = image.fontname AND surveyline.survey_id = 1 AND image.platform = 'Windows';

Processed the past month's font survey statistics and updated the browser string pattern matches for the browser table. Converted the font statistics user manual to XHTML and brought up to date with the latest changes.

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