About this Site

This is my personal website, where I post documents and software I’ve written, in the hopes that you'll find them interesting or useful. It includes articles, tutorials, useful programs, and purely whimsical stuff too. Since this is a personal site, this site’s content is not endorsed by Paul Bradley’s employer, government, or dog.

I gladly take donations. If you feel you’ve gained something from my writing, source code or otherwise, perhaps you’ll consider either surprising me with a small gift from my Amazon wishlist, or by making a small Paypal donation.

Thank you so much for your generosity!

Can I link?

All of the content on this site is made available at no charge, for the benefit of the community. Please don’t reproduce the content of any article without asking permission first. If you find any of my material interesting, please link to it and recommend that material to others by sharing it on social media. I’d really appreciate it!

You don’t need to ask permission to link to the material on a website, including mine; just link to it. If you have to get written permission to create a link to my site, I will provide it. But that is extra work for me, so I’ll charge $50 per request to cover my time.

Site history

This site began in January, 2016; but most of the content predates this date. I’ve been publishing web sites since 1999 & have written blogs and tutorials at various different domain names. In December 2015 I decided to bring all my writing under one domain name and merge lot’s of the smaller Visual Basic code snippets, Linux & LaTeX related posts into single tips & tricks documents.

I picked this domain name because it’s short, which helps when creating links to external sources. The domain name is also quite brandable and I’ve had success in the past selling short brand neutral domain names in the .IO category.


The site contains 33,104 words. All the pages are plain static HTML files which are rsync’d from my master Linux machine. Being a static site, the content should load very quickly. The pages are served using a web server written in Go called Caddy.

The domain is hosted on a 512MB Digital Ocean VPS & the SSL certificate was supplied freely by Let’s Encrypt. The site uses an SSL certificate to ensure your privacy is maintained. No adverts, cookies or third party scripts are used anywhere on this site.

The DNS for the domain is managed by Route 53, Amazon’s highly available and scalable cloud domain name service.

I do use the standard web server logs to monitor which pages are viewed and printed the most.

The site layout is very minimalist by design, I didn’t want to add to the website obesity crisis. The focus is on the writing.

If you’re using an older version of Internet Explorer (pre version 10) you will simply get the un-styled document. I took the decision not to support styling on older browsers, life is too short. If you’re using a modern browser you will get some basic styling and a print style sheet. Google web fonts are used for the headings & code samples. The web fonts are lazily loaded using the loadCSS pattern to asynchronously load the files. The headings use subsets to streamline the loading as much as possible. The subsets are calculated using a PHP script that I wrote.

The styles are loaded in-line with the document to save an HTTP request. The CSS code is compressed using a CSS compressor.

Progressive JPEGS are consider a new best practice, so all the images on this site are compressed to 80% to reduce the file size. All the EXIF data is stripped out of the photographs and the image is finally turned into a progressive JPEG.

This is the code I used to prepare my web images.

convert -strip -quality 80% input.jpg 80.jpg
jpegtran -optimize -progressive -copy none -outfile output.jpg 80.jpg


All videos are hosted on Amazon’s S3 service and delivered via HTML5 video tags over Amazon’s Cloudfront content delivery network. Each video is rendered 3 times using kdenlive to produce the following formats MP4, OGG & WEBM

Audio samples use HTML5 audio tags delivering both MP3 & OGG formats.

Dead links expected

Many of my articles link out to other sites. Some of these outgoing URL links may be dead. It’s impossible to prevent it, because things change all the time. If someone provides me with a replacement link for a dead link, I will generally fix it. However, just saying “this link is dead” isn’t helpful; I’d rather include a dead link, helping people find the information on the way back machine, than remove a link entirely. No one pays me to maintain this site, so I just can’t spend the time researching new places for every dead link.

When I do get around to checking out bound links I use Xenu’s Link Sleuth.