Sunday, February 21, 2021

Website Tooling In Happiest State

Eh, while I was chasing weird Chromium related font rendering bugs, I fixed a couple of other nonsense as well.
  1. Added the ability to stack one Unifont character over another to facilitate in-line cipher notation information in a regular paragraph HTML element;
  2. Hunted down the missing mtime modifier for the minified-GZip generator for HTML files;
  3. Made the sitemap generator be idempotent for the minified-GZip generator.
My personal website is maintained through hand-coded HTML files that undergo minification via my own Python scripts. These scripts will also generate GZip versions of the various text files as a statically generated server-side support for HTTP Compression---I do this to avoid having to load the server with extra running processes that do the compression on the fly.

The problem with GZip is that it stores the mtime or modified time of the generated file in its content stream as well. This means that even if the byte-stream to be compressed is unchanged, the resulting GZip file will still have changes due to the different mtime field contents. This becomes a problem because I use rsync to ``publish'' the minified+gzipped files onto my web server, and [parts of] files are transferred according to the difference between the file to be sent and the file in existence on the server.

By fixing these bugs and doing the enhancement, I basically reduce the number of bytes that I need to send, since only the HTML files that were edited ought to be updated on the web server, as it should be. I'm glad that this stupid bug is finally laid to rest.

Incidentally, I was also messing around with lars, a Python3 framework for easy parsing of httpd log files, with the intention of setting up some analysis of the visitors that have come to my personal domain over the past decade and change.

So much for completing The Outer Worlds today. Well, there are still two more hours left before I ought to go turn in for the day, and maybe it is time to get into some gaming.

Truly now, till the next update.

No comments: