World class data recovery software and renowned raid recovery services
Data recovery software tools & file recovery utilities to recover lost data
WestNIC provides reliable web hosting services
Advance PC software and registry cleaner utilities
Windows, Linux data recovery software and hard drive management utilities
Recovery lost emails using Outlook dbx repair and pst recovery tool
Download recover photos software and mp3 recovery tool
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:
Latest updates to the Code Style font survey results:
Created a new SurveyResults class as an extension to the existing AbstractXmlObject class that parses and populates itself with survey results data in XML format, the same XML that is transformed to produce the HTML font survey results tables. The class serves as its own SAX ContentHandler, DTDHandler, EntityResolver (via ResourceResolver), and ErrorHandler. ContentHandler interface methods parse the XML contents into a set of FontFamily objects and assign font survey data.
Updated the FontStats.dtd to add an optional generic font family element to the row elements:
<!ELEMENT row (platform?,class,fontname,frequency,imagename,generic?)> <!ELEMENT generic (#PCDATA)>
Added a new entry to the ResourceResolver class for version 1.1 of the Font stats DTD: "-//Code Style//Font stats 1.1//EN". Also clarified some of the conditional logic in the class.
Switched the former SortedMap of FontFamily objects in the FontStack servlet for the new SurveyResults object and created a new initialization method to load the font survey XML through it. Altered conditional statements in the servlet to use the SurveyResults getFontFamily(String) and getFontFamilies() methods.
Corrected a bug in the font stack builder generic font family selector form where spaces before the font names in the comma separated stack list were failing to match the master font family names and clearing the stack. Changed the listing call to the URL encoded version and added a clause to the getFontFamilyList() method to URL encode the font family name too. Also added calls to URL encode the font names in the move up, move down and delete links.
Added the full font survey results XML file to the local and remote Ant filter files for application deployment. Ant applies the filters to the servlet container configuration to set the initialization parameters for the font stack builder. Also added the preferred SAX parser configuration to the servlet configuration, currently using JServ:
wrapper.bin.parameters=-Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser
Brought DBResults up to coding standards for JavaDoc comments, final variables, call to super() and conditional logic. Added a Locale to the SimpleDateFormat for the survey results.
Updated the font stats DTD version number in FontStats servlet and added the fontfamily.generic field to the set of SQL bindings for XML output. Re-arranged the database Connection acquisition so that the release of the connection is in a finally statement block.
Added setModifiedTime(long) and getModifiedTime() methods to the AbstractTemplateServlet class so that the FontStack servlet can set its own custom modified time. Updated the FontStack servlet to set the modified time based on the SurveyResults getSurveyDate() method. This is the modified date for any given font stack request URL.
Split out "no keywords" versions of site manager section and sub-section head element include files to optimise keywords for Apache custom error pages and search engine optimisation articles more specifically. Followed a process of keyword analysis using Google Analytics entrance keyword and bounce rate data with the Google AdWords Keyword Tool to choose the optimum keywords per page, the subject of a forthcoming article.
User feedback suggested the addition of task sequence numbers to the generic font family selector and font family selector headings on the FontStack servlet interface. The generic font family selection is not necessary, but makes font family selection easier because it narrows the fonts listed in that select list.
Moved the JTidy development notes call to action include file to the JTidy sub-directory. Created a new related links format for the JTidy and Validate your markup with NSGMLS articles using a MenuBox class div. The calls to action have h2 headings with NewSection class, so added a more specific selector to override the extra spacing and the double border:
.MenuBox .NewSection {
padding-top: inherit;
margin-top: inherit;
}
.MenuBox .NewSection {
border-top: none;
}
Added a NewSection class attribute to the SelectORacle sub-heading in the Code Style CSS article.
Updated text ad prices and customer discounts with changes to customers' subscription modification URLs. Added a "Top sites that link in" link to the text ads service and sponsored link service benefits box outs.
Completed site log update for September and archived July 2008 entries.
Optimised the text ad service pages with page-specific keywords based on top entrance keywords over the past 6 months and Yahoo! sponsored search impressions. Also applied the same page-specific keyword approach to Windows font survey results by creating "NoKeywords" versions of standard head include files for the sections and putting the keywords in the documents themselves.
Added 14 new FAQ answers across multiple Java categories, including 2 in the Javascript browser FAQ and 3 in the Web fonts FAQ.
Further catch-up for site log entries for August 2008 and archived those for June 2008.
Rather belatedly added site log entries for July 2008 and archived those for May 2008 using Subversion commit messages and diffs to prompt.
Applied user feedback to the FontStack servlet. Added a doPost() method to handle 3 separate select inputs for Windows, Mac and Linux fonts. Font selections are appended to the current stack list then a sendRedirect() is issued to display the new font stack using the doGet() method. Set the width of the 3 font family select elements to 60% so they will lay out vertically with the submit button alongside the final one.
form.GenericFontFamily select {
width: 60%;
}
form.FontFamily select {
width: 60%;
margin-top: 0.2em;
}
Extracted a range of String constants for common FontStack markup to substitute for literal text.
Updated the Presentable interface and ErrorTemplate implementation to take the new getHeader(String, String) method signature in CodeStyleTemplate. Added the current font stack list to the FontStack servlet document title element. Added 2 more tips to the "Stack tips" boxout and set important words in strong markup. Added a new sub-heading to cover the explanation "What are the generic font family figures?" with fragment anchor and added a "What's this?" link to it from the font stack table. The link text has an abbreviated explanation as a title attribute.
Created call to action include files for Validate your markup with NSGMLS and JTidy development notes articles for use in other areas of the site.
Added new calls to action for the Golden rules for Javascript and DOM1 visibility drop down menu system articles and added MenuBox div to the next/previous navigation. Added some AJAX toolkit links to Anchor Points: Javascript & DOM page. Corrected bad links in HTML & XHTML and CSS style guide sections.
Created call to action include files for JTidy development notes article and added this to the HTML & XHTML section index. Added new Anchor Points: HTML & XHTML and Anchor Points: Java & servlets listings, with NewSection class selectors on their h2 headings. Also divided the Anchor Points: Fonts and foundries listing into sections for each foundry.
Added new versions of the getHeader() method to the CodeStyleTemplate class with a separate argument for the page heading, so it may be different from the document title element. Adapted the existing methods to pass the title argument as the heading to maintain original behaviour. Also corrected the Java section link text in the sidebar menu to Java & servlets.
Made various refinements to improve the logical order of the FontStack servlet class HTML interface and supporting information. Added inline font-family style rules to the font selector option elements and font stack table cells to show font names in their own font style. The font-family rules on option elements are only applied in Firefox and Google Chrome, of those tested. Refactored the class to create several helper methods:
appendStackTipsBoxout(StringBuffer, List, HttpServletRequest)
appendFontSelectors(StringBuffer, HttpServletRequest, List, String, String);
appendFontStackLink(StringBuffer, HttpServletRequest, List, String, String);
appendFontStackTable(StringBuffer, List, HttpServletRequest, String, String);
appendFontSelectors(StringBuffer, HttpServletRequest, List, String, String);
appendDeclarationLink(StringBuffer);
appendFontSample(StringBuffer, HttpServletRequest, List, String, String);
appendFootnote(StringBuffer);
Added an array of CSS font-size keywords to support size adjustments to the font stack text sample. Font sizes are checked through a private isValidFontSize(String) method to prevent code injection. The cleaned font stack List is passed to getStyleAttribute(List, String) to style the font sample and generate the font-family declaration to copy and paste.
Added a font-size request parameter that is passed to all key methods to maintain the selected font size through all operations. Switched logic to use the static FontFamily.isGenericFontFamily(String) method in all cases. Updated the FontFamily constructor to pass literal generic font family names rather than int keys.
Completed styling of font stack builder, with new class attributes for the generic font family and font family selector form layouts in CSStdLayoutCommon.css:
#Content .MenuBox form.GenericFontFamily {
margin-top: 0.3em;
margin-bottom: 1.1em;
}
#Content .MenuBox form.FontFamily {
margin-top: 0.3em;
margin-bottom: 0em;
}
.FontStack caption {
margin-top: 0;
padding-top: 0;
}
Also added styles to the livery style sheet, CSStdLiveryCommon.css, for a new Footnote class, optgroup and nested option elements. A child selector on the optgroup rule is used to exclude IE6, which doesn't handle it correctly:
.MailingList th, .MailingList td,
p.Information, .Footnote {
font-size: small;
}
.FontStack caption {
color: #999;
background: transparent;
}
input[type=text],
input[type=radio],
input[type=checkbox],
select, option, textarea,
optgroup option {
color: #000;
background: #EEF;
}
/* Child selector to hide from IE6 */
select > optgroup {
background: #039;
color: #FFF;
font-style: normal;
}
Added a link to the Nuvola icon theme terms from the site copyright, terms and conditions with copy of the GPL licence, readme and copyright disclaimer.
Re-structured the output of the FontStack servlet class to customise the output based on the state of the font stack, whether a generic font family has been selected and how many fonts have been added. Also adjusted the markup structure to bring more attention to the main font stack table area. Added notes on the source of the probability data and a clearer explanation of the probability figures.
Updated the FontFamily constructor and relevant methods to work with a literal String for generic font family names and added a font class argument for compatibility with the font sampler system. Retained the good citizen constructor that includes font frequency parameters for Windows, Mac and Linux, but added setter methods for each so the values can be configured post-instantiation. Also added a getCSSClassName() method and adopted the isGenericFontFamily(String) method from the FontStack servlet.
Latest updates to the Code Style font survey results:
Introduced a new ad service "pointers" area to the top of the text ad service and sponsored link service pages to direct customers to the appropriate pages. The "You are here" marker floats to the left and the "Pointer" link floats right within the central body area of the page.
.AdServicePointers {
float: left;
clear: none;
width: 69%;
text-align: right;
padding-top: 10px;
padding-bottom: 10px;
}
.YouAreHere {
float: left;
clear: none;
width: 188px;
height: 133px;
}
.Pointer {
float: right;
clear: none;
width: 188px;
height: 87px;
}
Added NewSection class attributes to the h2 headings on the site stats page to improved the division of content. Corrected a text ad FAQ where the question had been inserted in place of the answer!
Made multiple enhancements to the prototype FontStack servlet class to make a private release for user feedback. The servlet can be used to dynamically build a CSS font stack with font survey results data to show the probability of each font being displayed on Windows, Mac and Linux systems.
Hashtable to SortedMap type TreeMap storage to list font families alphabetically.
strong markup to non-zero probability figures to emphasise
select element.
Extracted the code in FontSurveyTemplate for formatting font family names and made it a method of its inner class FontFamily, public final String getFontFamilyProperty(). Adopted the same method for the recently added. org.codestyle.sampler.FontFamily class, with Compare interface methods with a view to supersede the inner class.
Added a top and bottom border style to the Generic font family table row and created a new style to underline the table heading row.
.Generic td {
background: #EEF;
color: #333;
border-top: solid 1px #ccc;
border-bottom: double 3px #ccc;
}
.HeaderBase th {
border-bottom: solid 1px #ccc;
}
Set the font stack probability and controls table cells to align right:
.SizeData, .Probability, .Controls {
text-align: right;
}
And adjusted the size of the up/down and remove buttons:
.UpDownButton {
width: 20px;
height: 18px;
clear: left;
float: left;
}
.RemoveButton {
width: 18px;
height: 18px;
clear: none;
float: left;
}
Added the Add This link share markup to the CodeStyleTemplate class.
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.