Recently, we have been doing some proof of concept work on a PWA for our web site. The immediate goal is to make our mobile experience faster, but looking toward the future, we could potentially invest in this technology as a replacement for our current mobile apps if PWAs continue to receive more support on the major platforms.Continue reading Building a progressive web app with Vue.js and OnsenUI
We recently decided we want to upgrade one of our Aurora RDS clusters from
db.r4.large. Our entire environment is managed by Terraform. It was not clear from Terraform documentation what would happen if we just changed the instance size and applied the changes. Would Terraform be smart enough to upgrade the writer instance in AZ1, failing over to the reader in AZ2, and then when that was complete, upgrade the newly promoted writer instance, failing back to the new instance in AZ1?
If you’ve ever used a tagging interface in a web application, you’re probably familiar with the “chip” interface. Examples abound (AngularJS Material, Materialize, and the tags on StackOverflow, to name a few).
We wanted to use chips in a qooxdoo application, so we had to roll our own component.Continue reading qooxdoo “chips” UI component
Environment variables in Apache/PHP can be tricky, especially when PHP code running in mod_php calls a command-line PHP script.Continue reading Apache, PHP, and environment variables
I’m addicted to performance metrics on my server infrastructure. For years in our on-prem environment, we monitored thousands of data points using ganglia, nagios, and zabbix. In our new AWS infrastructure, we thought we’d look for some more sophisticated options.Continue reading AWS Adventures, part 5 – monitoring infrastructure
2017 was the year I finally broke down and bought a 3D printer. I went for the cheapest model I could find that looked like it was halfway decent. I ended up ordering a Zonestar P802QR2 printer kit (a Prusa i3 clone). Here are my impressions.Continue reading Zonestar P802QR2 3D Printer impressions
Every time I set up a new Mac, I always forget how to make control-left and control-right work in remote Linux shells opened via iTerm2. If you don’t care about the built-in Mission Control shortcuts “Move left a space” and “Move right a space”, here’s how you do it. These instructions are for Sierra (10.12).Continue reading Control-arrow CLI navigation in iTerm2
I just upgraded to a new MBP, and here are the packages I immediately installed:Continue reading What’s on my MBP
CloudWatch is a great concept — super-easy to configure and inexpensive. And at first glance, it actually looks pretty nice. But after I spent about 30 minutes with it, I realized it wasn’t easy to use. The units used are especially hard to interpret. This is my best attempt to explain what the network values mean.Continue reading AWS Adventures, Part 4 – CloudWatch network monitoring
For a number of years, we have streamed HLS video via CloudFront, using a Wowza Streaming Engine server to convert our RTMP streams to HLS on the fly. CloudFront provides almost infinite scalability for the HLS stream, since the static chunk files are highly cacheable.
For high availability purposes, we want to use two independent WSE servers in two AWS availability zones. But this has been problematic. The two servers are never 100% in sync with their HLS chunking of the incoming live stream. This can cause the client to get a bad response to a request, thereby dropping the live stream.
After a lot of experimentation, I have come up with a way to assemble a multi-AZ, high availability cluster of WSE servers that can reliably stream HLS video from an incoming RTMP stream.Continue reading AWS Adventures, Part 3 – HA Wowza Live HLS