A more helpful exception box for WinForms apps

If you’re in a legacy codebase with a centralized “message box” form, why not add some features that make it work for you? 😏

  Dec 7, 2021 (rev. Sep 16, 2025) ·  3 min

Hosting a GitHub wiki on Ubuntu (and keeping it in sync)

I’ve always been a fan of wikis, but GitHub’s is so poorly designed it doesn’t get much love. I once wrote about cloning a wiki locally and editing it using Gollum, but now I’m taking a look at hosting it externally on DigitalOcean, using Gollum and keeping it in sync with the repo hosted on GitHub.

  Oct 29, 2018 (rev. Sep 16, 2025) ·  10 min

A random selection algorithm that factors in age (weighted selection)

Have you ever had a collection of items and needed to select a random one from the lot? What if you have a class with some property (i.e. ‘age’ or ‘weight’) that you want to take into account when doing the random selection? Let’s see how we might approach that…

  Jun 7, 2018 (rev. Sep 16, 2025) ·  7 min

Tweet random blog posts from an RSS feed using AWS Lambda

If you’ve got a Twitter account, and a blog with a lot of content, sharing your posts can be a nice way to help someone out, and drive a little extra traffic to your site. If your site generates an RSS feed, here’s how you can automate the process - for free!

  Jun 2, 2018 (rev. Sep 16, 2025) ·  7 min

Tweet random posts from a Ghost blog using AWS Lambda

If you’ve got a Twitter account, and a blog with a lot of content, sharing your posts can be a nice way to help someone out, and drive a little extra traffic to your site. Here’s how you can automate the process on your Ghost blog - for free!

  Jun 1, 2018 (rev. Sep 16, 2025) ·  8 min

Create a secure, personal instance of DokuWiki on DigitalOcean

I’ve been thinking for awhile now that I wanted to setup a wiki. I wanted something light-weight, with support for uploading images and files. And I wanted to retain control over the data and configuration, as well as encrypt access to it. Here’s how to install DokuWiki on Ubuntu with DigitalOcean.

  Apr 1, 2018 (rev. Sep 16, 2025) ·  9 min

Automatically add links to all headers on a website (a Chrome extension)

Ever needed to link directly to one section of a webpage? You can, as long as there’s a header (or another element nearby like a div) with an ID assigned to it. Getting the ID isn’t tough, but it’s a bit of a pain. It doesn’t have to be that hard.

  Feb 25, 2018 (rev. Sep 16, 2025) ·  4 min

Creating a table of contents for your blog

A table of contents is convenient for visitors, so I wrote a script to generate one for any blog automatically!

  Feb 3, 2018 (rev. Sep 16, 2025) ·  5 min

How to Autolink All Images in Ghost to the Full Resolution

The Problem When you insert an image into a post using the Ghost platform, it might be displayed as much smaller, depending on your theme. Viewing the full version means either opening the image in a new tab or linking the image to itself so that clicking on it opens it up outside of the context of the page. Either way, someone’s doing manual work, so let’s automate it! The Solution Here’s a snippet of JavaScript code you can insert under “Blog Header” in the “Code injection” section of your Ghost blog, or in a separate file if you’re self-hosting and have access to where the themes are uploaded. ...

  Jan 22, 2018 (rev. Sep 16, 2025) ·  2 min

5 Quick Hacks for Your Ghost Theme

These “hacks” for Ghost add some cool features to any blog, and should be usable with any theme.

  Apr 1, 2017 (rev. Sep 16, 2025) ·  5 min