Adding a free Let’s Encrypt SSL certificate to an NGINX site

UPDATE, September 2017: Most of this information is now of historic/hacker value, as Let’s Encrypt has added Nginx support to the Certbot client, making the process MUCH simpler and quicker. However, it’s still worth reading through this how-to, as it could help you look out for places where things could go wrong.

A good friend recommended the free SSL certificate services offered by Let’s Encrypt. I thought I would give it a try and switch this site to HTTPS-only, and share the results of the process here.

First off, Let’s Encrypt is a “free, automated, and open certificate authority (CA), run for the public’s benefit.” Their certificates are provided by the  Internet Security Research Group (ISRG). In short, it’s legit.

Continue reading “Adding a free Let’s Encrypt SSL certificate to an NGINX site”

Nginx 404 redirect tips and tricks

There are some very simple NGINX site configuration changes that can alter the way your site responds to requests for non-existent pages.

For example, you can redirect all requests that return a 404 to either a specific page, or your default index page. Just note that this can be very confusing when you’re troubleshooting a site and are constantly returned to your index page. You could be seeing proper requests, or false positives. The NGINX access logs will show a 200 status for all requests. This can be very crazy-making when you are trying to figure out why a URI isn’t rendering. Caveat emptor.

Continue reading “Nginx 404 redirect tips and tricks”

Migrating from Drupal to WordPress

I just moved this site from Drupal 7 to WordPress 4.3. The times, they are a changing, and my work has been far more focused on WordPress than it has been on Drupal. So it made less and less sense to maintain a Drupal site. Also, for a relatively simple personal blog, Drupal’s capabilities and overhead were overkill for my purposes.

Continue reading “Migrating from Drupal to WordPress”

CSS tables with sortable columns using TinySort

Try searching for “CSS table sortable columns”. Good luck. Most of the sortable table libraries require that your data be in an HTML table. But you lose a lot of responsive flexibility when you use HTML tables. This presents you with a lousy choice: sortable columns and limited responsive design options, or responsive design options, and no sortable columns. I’m sure there are complex solutions to this which would involve sending different content based on browser or resolution detection, but that’s sounds like a maintenance nightmare.

Continue reading “CSS tables with sortable columns using TinySort”

How to add a GeoTrust SSL certificate to Nginx on Ubuntu

I had a bit of trouble finding the information I needed to get a certificate I purchased from GeoTrust installed on an Nginx server. The reseller I used – – sent me a set of certificate files that didn’t match any of the instructions in GeoTrust’s support pages. Nginx configuration information is available on Digital Ocean’s support site. If you are running WordPress, there’s some useful information here.

Continue reading “How to add a GeoTrust SSL certificate to Nginx on Ubuntu”

Risk: Working around it, or working with it

Building on several conversations I’ve had over the last year around the evolution of organizations – and companies, it’s people I’m really talking about here – I tried to illustrate the evolving picture of what is coming together for me.

First off, the word of the day for me is “risk”. We use all kinds of words to talk and dance around risk – how we deal with it, how we try to avoid it, how we acknowledge it, and how we want to be able to live with it, and even be able to embrace it.

Continue reading “Risk: Working around it, or working with it”

Arduino, ethernet, nRF24L01, and Pachube/Cosm/Xively

This took a lot of digging and trial and error to figure out. For those who don’t know, the nRF24L01+ is a low power 2.4 GHz wireless transceiver chip from Nordic Semiconductor that is the heart of an extremely inexpensive series of Arduino-compatible wireless modules. They use SPI, are power misers, and have a theoretical range of about 150 feet, more or less, depending on what lies between the transceivers. Bandwidth is fine for sensor data, I’ve been using mine to send updates every couple of seconds. They can pump more data, but don’t expect miracles. However they are a fantastic alternative to much more expensive modules. They can be had (delivered!) for a couple of dollars each, and they are a great solution for sending data between microcontrollers. Use cases include any kind of remote sensor installation, or anything collecting data in an environment or location that is inconvenient for cabling. More information on what these modules do can be found here.

Continue reading “Arduino, ethernet, nRF24L01, and Pachube/Cosm/Xively”

Drupal Migrate – An Introduction

Some time ago, I volunteered to migrate a white label implementation of a Drupal 6 site that is destined to be shut down and merge its data into another Drupal 6 site that uses (mostly) the same content types and structures. I had it all mapped out. It would be easy. Just a few lines of code, some mySQL queries, and we’d be done with it.

It turns out that merging into an existing Drupal site where you want to keep the data from being overwritten is more of a big-ish deal than I thought.

Fortunately, there are great tools out there to help with this, and the one I chose to use is the Drupal Migrate module. Even though this module is designed primarily to migrate D5, D6 (and earlier) sites into D7, there is a D6 version of the module, and it doesn’t care what the source is, so you can use it to merge/migrate between two same-version Drupal sites. It’s not standard operating procedure, but it’s supported, but it’s a barely-documented scenario, hence this series of posts.

Continue reading “Drupal Migrate – An Introduction”