About this site

I use XML, XSLT and CSS for this site along with a very little bit of Javascript however it's still barely noticeable.

How ?

In a classical HTML website we use a combination of CSS and HTML. The content lives in an HTML page whereas styles and presentation are defined in a separate CSS file. This approach may prove limiting when the amount of data grows on the website and one often ends up using methods which mix sever-side scripts and light relational databases to better separate data from the representation. A common example of this which is PHP/MySQL.

Using XML this separation is done intuitively. The data lives as XML and we use XSLT which stands for eXtensible Stylesheet Language Tranformations to literally transform the XML document into another XML document particularly into an XHTML document.

Why ?

The overhead of using a solution based on external databases and server side script can be quite astonishing for such a small website. And surprisingly nobody seems to care about that. On the other side we have clients where multiple core processors of several gigahertz are commons. Using client-side XSLT allows us to deleguate the work of processing the data into XHTML pages on the client side. Not that I wish to imply that one needs a dual core processor to process such pages. But the total amount of work is greatly reduced and parallelized as the HTTP server can fully exploit its primary function, that is parse requests and serve the pages accordingly.

Although if you want to use client-side XSLT you should prepare to get into a lot of trouble. In most cases the browser will succeed in transforming the document but soon you'll be surpised to see that Javascript does not work anymore with Firefox and other things like that. Therefore I use a little script which do the transformation locally and sends the HTML pages on the server when they changed. But you may still access the XML version by changing the html extension to xml in the URL.

Another advantage of this solution is the now clear separation between data and its representation. It was still unclear with the CSS layer. But now add content to the site is really easy. What more is we can now also exploit the caching capability of the HTTP protocol which is inherited directly from the file based approach whereas many quick and dirty handwritten server-side scripts do not even pay attention to this.

WebP

This site also uses the Google's WebP image format when available to reduce the bandwidth. WebP lossy images are 25-34% smaller in size compared to JPEG images at equivalent SSIM index. Most browsers do not support this format especially firefox so I use a script to change the src location of the images when needed.

More informations

You may learn more about XSLT at www.w3.org/Style/XSL/WhatIsXSL.html, www.w3.org/TR/xslt and http://wiht.link/XSLT-intro. You may also learn more about XML if don't already know at www.w3.org/TR/xml and www.w3schools.com/xml and finally you may learn more about WebP at developer.google.com/speed/webp.