Treating Personal Projects As Sprints

The Idea There are two main difficulties I fight with personal projects: lack of documentation to keep me focused and getting overwhelmed with scope. So I tried to tackle both problems with a relatively simple solution. My idea is to treat projects like two week sprints. I will have a general idea for a project I will want to work on for two weeks. From there, I can reevaluate if it’s worth my time or if I want to pivot to another goal.

S3, Cloudfront, and Cloudflare. Oh My.

Why rebuild the blog? Recently I migrated my personal blog from a self hosted Jekyll install to Pelican. I am a big fan of Pelican. Jekyll seemed to not want to be self hosted. For example, in order to serve an SSL certificate, I had to run a reverse proxy from NGINX. Similarly, I wanted to reduce unnecessary complexity. So, in the process of redesigning the blog, I decided to also reconsider hosting.

Cloudflare's Railgun - Retrospective

Personal Perspective I certainly had a lot of fun setting up the install and it definitely reaffirmed my love of Cloudflare. A lot of the process was very intuitive and there was ample documentation. My favorite part of the platform is how forgiving it is. Working with the website was a breeze. I think some of the difficulties I had were working with IPv6 (I don’t currently have an address) and having the railgun listener allow inbound connections.

Cloudflare's Railgun - HTTP Compare Script

Bash Script Before I present the script, I would like to walkthrough my thought process and present some of the decisions I made. I ultimately wanted something relatively portable since I would be running it on a machine that had an IPv6 address. I also wanted something relatively lightweight since it’s a fairly simple task. Due to that, I decided on using bash and curl. This script assumes that you have curl and other basic UNIX tools installed.

Cloudflare's Railgun - Railgun

What is Railgun Railgun is defined by Cloudflare as a software that “accelerates and secures delivery of dynamic content, through compression and WAN network optimization of communication between Cloudflare data centers and an origin server, speeding up requests that can’t be served directly from Cloudflare cache.” It’s a very interesting technology that helps cache content by only serving bytes of changed page versions, creating a single persistent connection, and caching dynamic content.