How to find the iCal address for a public Google calendar

Every Google calendar URL has an iCal file you can use… here’s how to find it.

  Feb 28, 2020 (rev. Oct 11, 2025) ·  2 min

How to make a dark mode with CSS

Every time I learn some new piece of CSS I’m amazed at how flexible and powerful it is. Like how easy it is to tailor your site for your visitor’s “dark mode” preference!

  Feb 13, 2020 (rev. Oct 11, 2025) ·  3 min

Deploy your own RequestBin in under 5 minutes

If you need to consume a webhook from another service, or verify the payload being sent from your own REST API endpoint, RequestBin can help. It intercepts and displays the contents of any call made to it. Here’s how to deploy your own instance in just a few minutes.

  Jan 5, 2020 (rev. Oct 11, 2025) ·  5 min

Why are websites requesting access to motion sensors... on my desktop?

I was checking the status of a FedEx order when Brave warned me that “this site has been blocked from accessing your motion sensors”. I’m struggling to understand why a website would need that access. Do I get a different experience if I drop my device? Tip my monitor over? Spin the mouse around?

  Dec 30, 2019 (rev. Oct 10, 2025) ·  11 min

Hands-on Ansible, using two DigitalOcean Ubuntu droplets

Today I’m wrapping my head around a build tool called Ansible, used for deploying machines in a scriptable, repeatable manner. Follow along as I step through an excellent tutorial from DigitalOcean, applying what I learn to a couple DO Ubuntu VMs… the $5/mo ones - nothing fancy needed!

  Dec 18, 2019 (rev. Oct 11, 2025) ·  4 min

Replacing Gmail (and its office suite) with Mailbox.org

Google provides some amazing tools, but at what cost to privacy? One of the biggest blockers in eliminating them has been finding a reliable and affordable replacement for email (and ideally, calendar, documents, tasks, etc too). Well I may have finally found it, in Mailbox.org.

  Dec 9, 2019 (rev. Oct 10, 2025) ·  8 min

Add and subtract time from a DateTime structure in Erlang

I was trying to add times in Erlang, but couldn’t find an existing function, so I wrote my own.

  Dec 1, 2019 (rev. Oct 11, 2025) ·  2 min

Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement

This error might look a little cryptic at first glance, but it’s fairly descriptive in explaining what’s wrong. You’re likely to come across this one before your first cup of coffee.

  Nov 14, 2019 (rev. Oct 11, 2025) ·  2 min

Assign C# code to a variable and then run it

Did you know most languages have a way to pass around code to other functions, so you can call (invoke) it in other parts of your application? In C#, it’s called a delegate.

  Nov 13, 2019 (rev. Oct 11, 2025) ·  3 min

How can I find the state of NumLock, CapsLock or ScrollLock in WPF?

If you’re writing a WPF application and need to find the state of the Num Lock, Caps Lock, or Scroll Lock keys, you’re in luck - there’s a method for that.

  Nov 12, 2019 (rev. Oct 11, 2025) ·  1 min