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

Annual subscription for premium content, 28th November 2006

Changed the premium content subscription form to an annual subscription basis. Also created an SQL script to count basic statistics about the Help and FAQ section: 361 questions total of which 178 are premium content questions.

Technorati tags: , .

New Apache Tomcat FAQ section, 25th November 2006

Decanted Tomcat questions into a new Apache Tomcat FAQ section and added several new answers to various Java servlet and servlet container questions.

Java programming

Java servlet "how to"

Servlet containers

Servlet lifecycle

Servlet threads

Created a ServiceLogClientParser to automatically extract spam client details from service logs and emails submitted through Web forms. A sorted map of clients is stored in a TreeMap keyed by IP address and serialized between invocations to build a cumulative record. A getDenyList() method returns the current set of IP addresses formatted as Apache Deny from directive statements for insertion in .htaccess. A getClientFilterList() method returns the clients formatted for a servlet ClientFilter configuration set.

Updated the standard Client class to implement Serializable to enable storage and used the serialver tool to add a long serialVersionUID variable for forward compatibility.

D:\java\jdk150\bin\serialver
  -classpath e:/home/codestyle/build
  org.codestyle.servlet.Client
      

Refined the initial output of the ServiceLogClientParser output to produce Deny directives for parent network addresses where numerous clients share the same subnet. The parser stores the latest data and deletes the new input files before exiting.

Technorati tags: , , , , , .

Font survey and FAQ update, 18th November 2006

Updated font survey results and added new answers to the Javascript and various Java FAQ sections. Ran a link check and deleted dead links from several pages.

JSP tags & libraries

Java compiler

Java servlet "how to"

Javascript

Javascript browser

Technorati tags: , .

Unsubscribe option, 16th November 2006

Amended the Person interface to extend the Storable interface rather than SQLEntity and implemented the delete(Connection) method in the Subscriber class. Also added a removeSubscriber(Person) method to the Service interface with an implementation in SubscriptionService. Added a Delete button to the SubscriptionEditor application with a deletePerson() method to remove the person from all services, delete from the database and the JTree display. Focus returns to the first person in the list.

New subscriber check, 14th November 2006

Added a new getPerson(String) by email method to the SubscriptionEditor application to check whether new people are actually existing people before adding them to the subscription database. Updated the savePerson() method to make this check and select the person's record in the list of subscribers.

Technorati tags: , .

FAQ update, 11th November 2006

Published a backlog of 7 FAQ answers on various Java subjects, Javascript date comparison and basic Web publishing.

Java API

Java inheritance

Java language

Java servlet API

Java threads

Javascript

Site manager

Technorati tags: , , .

Swing multi-file chooser, 4th November 2006

Created a Swing version of a file chooser panel named FileSelectJPanel and adapted various components of the LogManager application to use it in place of the original AWT FileSelectPanel. The JFileChooser is configured select multiple files. Also simplified the panel layout in AppendPanel, IncludePanel and TrimPanel to use a BorderLayout.

JFileChooser chooser = new JFileChooser();
...
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
chooser.setMultiSelectionEnabled(true);
chooser.showDialog(client, "Open");
      

Technorati tags: , , , .

Feed profile selection and storage, 3rd November 2006

Added a profile panel to the PingApplication class with a CardLayout to display the current feed profile. Also added methods to load profiles from a Java properties file and save new profiles. Added EventListeners to the New profile and Save profile buttons to create a new blank profile and save it. Amended the main entry point method to take a second parameter for the feed profiles property file and created an initial configuration to test.

Added an internal reference to the Vector of items in LabelledSelectList so that new items can be identified. Updated the addItem(Object) method to check whether the item is new to add it, and to select the item that was passed.

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