Chris F.A. Johnson

For most of my working life I have done freelance and contract work, sometimes as a supplement to a full-time job.

From 1969 to 1988, I worked primarily in publications: newspapers, magazines and books. I was variously a columnist, reporter, news editor, graphic designer / art director and production manager.

Since 1988, I have been doing contract work in the following areas:

Web design and coding

I created my first web site for the 1996 Canadian Closed Chess Championships that were held in Toronto that year. (I have copied most of the site to; some links may be broken.) The site looks primitive, as I was just learning HTML.

Now, all the web pages I produce use valid HTML and CSS (and can be checked with the W3C validator). To allow bookmarking so the pages can be found again, and to improve search engine rankings, there will be no frames. To make the pages accessible to all (including search engines), there will be no Flash, and JavaScript, if any, will only enhance a page that works perfectly well without it. There will be no popups.

My personal and business web site is at

To contact me for web design work, see

Composing cryptic crosswords

I began composing cryptic crossword puzzles in 1979, for the University of Toronto alumni magazine, The Graduate. I have been composing them for various magazines and newspapers ever since. They are currently published monthly in Good Times, the Canadian Magazine for Successful Retirement. I also compose one-off custom puzzles.

Teaching chess

In 1972, when the chess craze resulting from the Fischer-Spassky world championship match was at its height, I taught an adult night-school chess course at Cambrian College in Sudbury, Ontario.

Since then, I have given private lessons to students of all ages.

In 1995-96, I taught courses in Toronto public and private schools for the Chess'n'Math Association.

From 2001 to 2003, I taught in USA Chess Inc. day camps in Dallas and Houston, Texas.

I currently offer private and group lessons for children and adults at your home, school or other location.

Computer programming and writing

I started writing computer programs in 1983, when I bought my first programmable computer, a Radio Shack TRS-80 PC1 pocket computer. I quickly outgrew its very limited BASIC programming language and one-line LCD screen and, a few months later, I bought a Commodore 64, on which I continued writing in BASIC (after a while, using Northcastle Structured BASIC). Where speed was needed, I ventured into assembly language.

I wrote articles on programming Commodore computers for the Toronto Pet Users Group (TPUG) magazine from 1984 to 1986.

In 1985 I upgraded to an Amiga 1000, and in 1989, an Amiga 2000. In 1990, I was introduced to UNIX, and began writing shell scripts. I moved from my Amiga 3000 to a GNU/Linux system in 2000.

From 1990 to 1999, I was a Unix system administrator for the Children's Aid Society Foundation, where I wrote a user-extensible grants database system entirely with Bourne shell scripts.

The Unix shell is now my primary programming language, and I have used it to write everything from one-line utilities to interactive database applications; from web scraping to web applications.

In 2004, I was asked by a publisher (Apress) to compile a book of my shell scripts. The book, Shell Scripting Recipes: A Problem-Solution Approach, was published in May 2005.

My second book for Apress, Pro Bash Programming: Scripting the GNU/Linux Shell, was published in October 2009.

All the pages on this site are validated for correct HTML and CSS.
Valid HTML 4.01 Strict Valid CSS!

(Some pages use CSS3 as a progressive enhancement, and should be validated using the CSS3 validator rather than CSS2.1.)