# TODO ## Hosting * Regularly check HTTPS security using Mozilla's [Observatory](https://observatory.mozilla.org/) (includes the services below) * https://hstspreload.org/?domain=skreutz.com * https://securityheaders.com/?q=www.skreutz.com&hide=on&followRedirects=on * https://www.ssllabs.com/ssltest/analyze.html?d=www.skreutz.com&hideResults=on&latest * Submit sitemap to [Google](https://support.google.com/webmasters/answer/183668?hl=en) and [Bing](https://www.bing.com/webmaster/help/how-to-submit-sitemaps-82a15bd4) * Configure custom 404 page * Consider to disable logging (and advertise this on the about page) ## Content * Test and advertise readability in lynx and friends * Advertize feeds in blog post footer * Publish the website's source code * Recommended readings page and feed ## Styling * Consider to highlight :target footnote * Add :target or :checked menu on mobile * Style `
`, e.g., `pre[title]::before { content: attr(title); display: block; text-align: right; }`
* Test iOS scrolling as described [here](https://css-tricks.com/snippets/css/momentum-scrolling-on-ios-overflow-elements/)

## Implementation

* Validate HTML, CSS, RSS, Atom, Sitemap using [W3C tools](https://w3c.github.io/developers/tools/)
* Cabal build (without stack)
* Format source code
* Consider to disable pandoc extension `auto_identifiers`
* Consider to filter draft posts as described [here](https://odone.io/posts/2020-05-18-published-posts-hakyll.html)
* Consider to use select pandoc extensions as described [here](https://github.com/rpearce/robertwpearce.com/blob/master/site.hs)
* Consider to re-implement deployment shell script using [shelly](https://hackage.haskell.org/package/shelly) as described [here](https://gist.github.com/ethagnawl/0ada86cb6eb996d95d5b65bff014188c)
* Consider to add keywords to blog posts
* Consider to tag blog posts
* Consider to create an HTML sitemap in addition to the XML sitemap
* Consider to record source code revision in generated website

## Blog

* Dotfiles under revision control: How I manage my personal configuration files with Git
* My preferred tools: A whirlwind tour of my preferred command-line tools
* SSH proxy: How to establish a secure tunnel between two firewalled machines
* Temporary PostgreSQL server: A shell script to run the PostgreSQL server off a temporary directory
* Your favorite Newsletter may track you
* Redirect and kill non-interactive subshells (in a POSIX shell script)
* HTTP health check using cURL
* Migrate PostgreSQL schema without downtime (with zero downtime) using triggers
* Filter Nix Packages by platform (e.g. Chromium on macOS)
* Backup with zfs, mbuffer, lz4, and cron
* Inline HTML images with this simple script
* Arch Linux on MacBook Pro
* Noscript photo gallery with pure CSS carousel, responsive images and deep links
* SQLite hexastore vs. Neo4j
* Setup a FreeBSD sftp server with basic email notifications from the command-line using bash, ssh, and the DigitalOcean command-line application
* Cloud/VPS provider comparison
* Auto-install OpenBSD to QEMU guest machine