The pages are designed as simple as possible. All pages are in a final state, there are no pages "under construction". I rather left pages out than published unfinished pages. I paid great attention to a good accessibility. The pages and especially the fonts should be scalable without any distortion of the pages.
I wrote many pages in two languages: English and German. One reason was again an increased accessibility. Another reason was to experiment with the implementation of multilingual pages. I should note that the multilingual pages are not exact one-to-one translations; they are only "semantically" equivalent. Some pages are available only in one language, they will not be translated into the other language. The user switches between the languages by clicking the respective identifier (DE or EN) on the top of the page. In a first version I passed the selected language as an URL parameter (?lang=en or ?lang=de) between the pages. In the current version I maintain different branches for the respective language (.../en/... and .../de/...) in the file system. I think that this approach is the better one.
The pages are requested using the HTTP/GET protocol with the exception of the Contact page: a submitted comment uses the HTTP/POST protocol. The Ajax techniques are used when the Calculator page communicates with the server and a Sudoku puzzle is requested from the server.
On the Contact page I introduced the CAPTCHA guard, more as a curiosity than a necessity: I wanted to know how CAPTCHA can be implemented. The realization is very easy with true type fonts and the GD graphics in PHP.
Programming Environment and Implementation Techniques
I develop the pages on a PC with Windows XP. I use the excellent xampp bundle with Apache, PHP, MySQL, etc. as a local Web server on Windows. This allows me to completely develop and test my pages locally on my PC.
For administrative work I use mostly Unix tools under Cygwin. I apply bash scripting only for the very simplest tasks and use Python for all other tasks. I have learned Python recently and prefer it to Perl that I used before. Python is an elegant language that appeals to a mathematician. Pythons programs can be not only easily written but - in contrast to Perl - also easily read and maintained.
I test all Web pages locally on my PC as far as possible. I check the structure of the HTML documents using a simple Python program built on the HTMLParser class. I check the spelling with the GNU Aspell. The corresponding calls in the bash shell are:
aspell check --mode=html -d en_US ENGLISH_FILE.html aspell check --mode=html -d de_CH --encoding=iso-8859-1 GERMAN_FILE.html