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, which delivers the servlet services and utilities used to manage this site.

Subscribe to the news feed for this log: RSS news feed

Reverse chronology

RSS conversion override mode, 30th January 2006

Added a new mode parameter to the XHTMLtoRSS XSL used by the Web Feed Generator to override its fragments mode where necessary. With an additional &mode=links parameter passed to the servlet controller, paragraph links mode is activated. Also updated the Javascript include stylesheet, XHTMLtoJS, and HTML demonstration feed XSL, XHTMLtoDemo, with the same option.

Analyser filter enhancements, 21th January 2006

Refactored the log file analyser package to improve performance and reduce memory usage. Created a new two-tier data structure to map user agent identifiers to virtual sessions and individual requests for more efficient look-up and storage.

Added a method isAggregatorRequest to the Request interface and WebRequest class. Added a range of known robots and RSS aggregator agent identifiers to WebRequest to extend the isRobotRequest method and implement isAggregatorRequest. Altered WebRequest so that it uses the new static WebSession.joinSession(Request) method to log itself and stores a reference to its own session. Also added a checkAggregatorAgent method to the initialization checks, to record the type of request it represents.

Added getFirstPageRequest and getLastPageRequest methods to the Session interface and WebSession class. Also getStartDate and getEndDate, getDuration, isRobotSession and isAggregatorSession methods. Adopted the session handling methods from the working draft Analyser class and added a static count variable to track the total number of sessions.

Wrote-up command line arguments for the Analyser class in JavaDoc and added header field names to the CSV output. Also added figures for total referrers for start and end points of links.

Created a new FaqMenuGenerator class and launch script to maintain the SSI files for the Code Style FAQ section.

Stack trace logging with Log4J, 12th January 2006

Raised the error level for logging the re-thrown IOException in the AbstractParseServlet to investigate and added the exception to the log to get a stack trace.

catch (IOException ioe) {
  logger.error(
    "AbstractParseServlet: doGet caught an IOException",
     ioe);
}
      

Upon deployment, it turns out this exception is thrown when the HTTP connection is interrupted by a client and the servlet output pipe is broken. Not critical.

Flock, Protopage and Xprss, 7th January 2006

Processed Metacentric service logs for December and identified three new RSS user agents. Flock spoofs as Firefox and had previously been included under that heading. Protopage is a custom homepage service whose client also spoofs as Firefox. Xprss is an online aggregator and blog host.

Updated font survey results and added a SSI directive to the meta element of the parent pages to maintain dates automatically.

<meta
  name="DC.Date.modified"
  scheme="W3CDTF"
  content="<!--#flastmod virtual='/css/font-family/table-CombinedResults.htm'-->" />
      

Also updated copyright dates for various pages, scripts and server side includes.

Mock servlet request date parse, 3rd January 2006

Added proper date header parsing to AbstractMockHttpServletRequest to complete testing the new GoogleFilter class for Metacentric. Initially, the mock servlet request only handles one date format, which is the problem case with the Google FeedFetcher client:

"EEE, dd MMM yyyy HH:mm:ss zzz"
      

This parses dates in the form "Sun, 06 Nov 1994 08:49:37 GMT", as required by the HTTP specification.

Also added an explicit Locale.UK argument to the SimpleDateFormat used in the W3CDTF class.

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