LetsEncrypt for HTTPS on a Tomato Router’s Web Administration

I generate a LetsEncrypt wildcard certificate for my domain name. On my home LAN, each device has a subdomain (device.example.com). When those devices have a web interface for administration, I enable HTTPS and give the device the Let's Encrypt certificate to use. This allows you to administer the device without seeing scary warnings about security from your browser.

I installed FreshTomato on my router. Getting the certificate onto it is pretty easy if you use the script I wrote.

Continue reading

Build an inexpensive wired music player on a Raspberry Pi

I wanted a music player with the following features:

  • Inexpensive (less than $40)
  • Low power (1 watt)
  • Plugs in to a audio system (no batteries, not a portable player)
  • Runs 24/7
  • Automatically starts playing again after losing power
  • Expandable storage
  • Web interface

I built it on a Raspberry Pi Zero W. It is a full computer that is only 2 inches long

Continue reading

Solve Perl “Wide Character in Print”

Here is a simple Perl program that outputs a capital gamma character (Ɣ): print "\x{194}\n". When you run it, you will probably get a warning from Perl about a "Wide character in print at line 1".

$ perl -e 'print "\x{194}\n"'
Wide character in print at -e line 1.

You can solve this using several different methods.

Continue reading

Synology NAS Backup Script

I use external drives to backup everything on my Synology NAS. My data easily fits on a single large drive so:

  • I put two large drives in my NAS and use raid0 (mirrored disks)
  • The entire backup (or even multiple backups) can fit on an external drive.

Continue reading