Chris F.A. Johnson Cryptic Cruciverbalist, Chess Instructor, Web Developer, Author, Programmer


"But that's just my opinion"

Whenever someone follows up a statement with "but that's just my opinion", it's probably not worth the air it's vibrating.

I will be moving most of this site to a new location, The site is currently under construction. The Unix shell section is pretty much complete (though there is some tweaking to be done) as is the Dick Francis bibliography.

WebCentric logo

For several years, I have been using the PostScript page description language to create graphics for my web pages. I use a text editor (GNU emacs) to write the code and a gv window to display the resulting image; gv updates the display every time the file changes.

I recently entered a logo I created on the spur of the moment into a contest for a local MeetUp group. I was surprised that mine was chosen.

I cleaned it up and posted the code along with examples of possible variations to the WebCentric logo.

About this site

This site is really several sites. Each of my areas of interest has its own section, from chess to cryptic crosswords, and computer programming to solving anagrams.

These sections have been developed at various times over the last 12 years and reflect my expanding knowledge of web design and coding. My very first web pages (1996 Canadian Closed Chess Championships) seem incredibly primitive now.

Some sections of this site are not finished (and some may never be); others need updating, both for content and for accessibility and design. Much new material is being developed on my site at

Some older pages use tables for specifying the layout; newer ones use Cascading Style Sheets (CSS). This home page and the section on the Unix shell are examples of my current coding style. New pages are all constructed with valid HTML4.01 and CSS2.

The dynamic content, on pages such as the WordFinder and (formerly) Toronto Transit schedules, is generated by CGI shell scripts.

The Unix shell is my primary programming language, and there are a number of scripts posted here.

[an error occurred while processing this directive]
[an error occurred while processing this directive]