AWS S3 hotlink protection via a bucket policy

Quick Bits: Enabling hotlink protection for S3 on AWS

We’ll wrangle S3 into a pseudo-webserver yet!

Latency Server Map USA (United States)

Matt’s geolocation, anycast, and server location notes

Aiming for low latency: Notes I made while setting up an Anycast + Geolocation + Latency Based Routing configuration for worldwide traffic.

OpenVZ 7 and Ubuntu 18.04 VPS Shutdown or Restart hangs SSH

Fixing SSH hanging on VPS restart (OpenVZ/Ubuntu)

One of the (few) benefits of OpenVZ is that your instances reboot very fast which can make for a quick workflow… unless of course reboots hang your terminal window.

Geo DNS vs Anycast

I tested GeoDNS vs Anycast for websites – seeing which one is better

Making websites load lickety-split! Combining what I’ve learned with a Geo DNS setup and an Anycast setup into a comparison.

Route 53 Pricing (1 of 2)

Geo DNS: Cloudflare vs Route 53 – a look and short test results

Looking at 2 of the lowest-cost contenders for Geo DNS. Which should you choose? I spent the money and spent the hours of set-up time so you don’t have to!

Ubuntu 18.04 - Cannot assign requested address in nginx over IPv6

Fixing “Cannot assign requested address” for NGINX + IPv6 on Ubuntu 18.04

The workarounds to get nginx running over IPv6 on a fresh install changed a little in Ubuntu 18.04.

How To: Using “systemd” to mount NBD devices on boot (Ubuntu)

Avoiding unpredictable behavior when trying to mount a networked drive.

lscpu of the ARM

ARMv7 for a website? A quick and dirty (and horribly unfair) test!

Looking at a dedicated ARM server. They can handle phones and tablets, but can they handle… a website!?

WebP results for randomly pulled single images.

Serving up WebP to supported browsers: Nginx/cwebp/gif2webp & results!

I decided to give WebP a shot on a Ubuntu 14.04LTS VPS running nginx. Here’s the process I followed, and the results!

No JQuery Lightbox

No JQuery Lightbox for WordPress (plugin)

Trying to find a WordPress lightbox that didn’t require JQuery was nothing short of a nightmare. So I put together my own!

Compressing only html/css/js/etc files for use with nginx’s “gzip static”

Nginx has a great directive called “gzip_static” that will serve pre-gzipped content. Here’s how I set up a VPS to generate pre-gzipped versions automatically.

mixed content example

Remove HTTP/HTTPS/SSL Protocol plugin for WordPress

Introducing the new and exciting WordPress plugin designed to strip away those HTTP or HTTPS-specific links on your blog that are causing you problems! Ok, so it’s not that exciting. But it’s pretty simple and when it doesn’t explode your site, it works.   What it does… 1) The “remove protocol” plugin looks at your

nginx 502 “Bad Gateway” errors when set as a proxy over SSL/HTTPS

There are many possible causes of 502 errors in Nginx and I look at one of them. If you recently set it up to proxy over HTTPS, the proxy_pass directive probably contains the issue.

Flushing the nginx fastcgi cache via PHP (and/or WordPress)

I wanted a way to quickly purge the Nginx fastcgi cache from within WordPress, and quickly threw together a plugin that does the job.

Meet Arjuna

Jishnu – a free WordPress theme based on Arjuna X

Jishnu was an extremely fast and highly customizable theme I developed in 2013 based on a popular theme known as Arjuna X. Unfortunately, I didn’t develop Jishnu with the mobile web in mind, and thus, development ended in 2014. With the pace WordPress moves at, I suspect Jishnu wouldn’t work with newer versions of WordPress

How to remove a fulltext index in MySQL – switching from MyISAM to InnoDB

I had to work around a “The used table type doesn’t support FULLTEXT indexes” message to accommodate installation of a plugin. Just a few commands in MySQL and I was up and running.

the fix – WP Smush.it and the “Could not find” error in WordPress Media Manager

Upon switching the website to a new host, I was faced with the dreaded “could not find” message. I put together a walk-through showing how to fix it.

FIX – JFolder::create: Path not in open_basedir paths

Solving a new issue in Joomla when migrating to a new server.

Hosted vs self-hosted DNS servers

I was pondering whether to host my own DNS or go with hosted DNS, and put together some pros and cons of each.

Deleting old WordPress database entries from MySQL

The downside to installing WordPress plugins is the junk often left behind in the database when you remove them. Here’s what I came across (and removed) in mine.