This is the fourth revision of my website, designed during the hottest days of July 2015, exactly ten years after the third revision, dated August 2005.

Ok, I agree, this is clearly too much time for a web engineering professor to update his website. In the meanwhile, I kept updated its contents but not the overall site design and, even if it was originally developed with the latest, up-to-date best practices (this is why it was still quite actual in its appearance), now it lacked the essential mobile and HTML5 support.

Thus I took Bootstrap, heavily personalized it (including a wider use of the HTML5 sectioning elements, a more 'flat' design, and some modifications that make its scripts gracefully degrading on old browsers), and this is the final result.

Obviously, the design is fluid and responsive, as every modern website should be. Scripts (all based on JQuery) are used to enhance the user experience, but the pages are still fully usable also with javascript disabled (thanks to some javascript and css tricks). The language used is the polyglot HTML5 dialect, which combines HTML5 and XML in a very robust syntax. I also tried to be as much accessible as possible using screen reader hints and ARIA- attributes, where possible. Stylesheets are developed using CSS3 and all the 'dirty tricks' needed to make some features (like the shadows) supported in older browsers.

My reference browser remains Firefox, but compatibility (or graceful degradation) with older browsers is accomplished using respond.js, html5shiv.js and IE9.js. I also tested the website for a decent rendering using IETester and Browsershots.

The server side of this site is a good example of PHP + XML + XSLT integration (XML technologies are one of my research interests). All the information displayed by the site, including the menu structure, paper list, curriculum, research and teaching data, are encoded using appropriate XML structures. There are more than twenty parametric stylesheets written in XSLT 1.0 that transform these XML data into HTML content.

There is a minimal content manager, written following the MVC paradigm, which is also driven by a XML 'content map': it essentially loads the required data and stylesheets, performs the transformation(s) and combines the output in the final page.

Enjoy!