Meandering History of DNS Authority

As a follow up to my DNS post, I started trying to answer “Who’s in charge of all this?”. Basically, I wanted to know what keeps me from claiming a different domain name or for that matter for claiming a different IP address. I went down a rabbit hole of RFC’s and never quite pulled out the answer to my question, but I wanted to post what I did find out since it’s been languishing in my drafts for too long....

February 14, 2018

Starting to figure out SSL

Introduction I’ve been slowly working towards a personal finance app, but before I can actually put it on the open web, I want to be reasonably confident that I am not opening myself up to being hacked. One of the pieces to that puzzle is having secure connections in the browser for accessing my site. That involves HTTPS. Progress Here’s what I’ve got so far. There’s symmetric and asymmetric encryption. Symmetric is when both parties share the same secret....

February 14, 2018

Wifi Woes resolved with Ubiquiti

Fast Wifi is possible! I have declared my Ubiquiti experiment a success! I am consistently measuring internet speeds over 100 MB/s with the lowest I’ve seen around 40 MB/s. This is a huge upgrade from seeing 5-8 MB/s regularly with the highest being around 15 MB/s (see [my previous post][1] for more details on the diagnosis of my old system). In this post, I want to document my installatin process because it was a bit of a doozy....

January 16, 2018

Debugging Slow Wifi

Introduction I ran into the ever common problem of slow WiFi recently. In this post I want to detail the experiments I ran and what I gleaned from the results. Setting the Stage First I’ll describe the setup I have for my home wifi network and the problems I was experiencing. Symptoms: No problem streaming Netflix Trouble loading web pages occasionally I had a weird set of problems in that I typically could stream episodes of shows on Netflix without any huge problems, but sometimes loading sites would be unbearably slow....

January 4, 2018

DNS End to End

Domain Name System: End to End We all interact with the Domain Name System (DNS) every day. Every time we load a web page, or click a link, our software relies on DNS to figure out what address to send requests to. In this post, I will dig into how DNS works by tracing through the machinery that happens behind the scenes. What is the purpose of DNS? It is first worth calling out what DNS is and why anybody should care about it....

November 25, 2017

What does mount do?

Background As I mentioned in my [post about containers][container-post], I want to write a container tool in rust to learn more about rust and containers. I started doing that with my friend Kevin, and our (humble) progress so far is on Github in a project we called bucket (like a container, that’s sometimes rusty… or something). We’re following a long a talk given by Eric Chiang at CoreOS Fest called Containers From Scratch (slides)....

July 10, 2017

Running a Single Page App in Docker - Part 2

Introduction In my [last post][last-post], I left off with 2 docker containers: one running the Go server back-end and one running the Nginx front-end serving the JavaScript for the site. In this post, I will describe how I got the whole app running using Docker Compose. Docker Compose is a tool that lets you specify several “services” (i.e. containers with their own Dockerfiles) in a single yaml file and then bring them all up together with docker-compose up....

June 19, 2017

Running a Single Page App in Docker - Part 1

Setting the Stage Recently, I’ve [posted][container-post] about what the high level of what a container does, how [sessions][sessions-post], how a [JWT][jwt-post] works, and how [Google Sign-in works][google-post]. I’ve been exploring these topics through a simple personal finance application that I am working on. In this post, I would like to synthesize a lot of what I’ve been doing into running this application in a container. Why a container? Primarily, I want learn more about how containers work in practice....

June 7, 2017

JWT's From Third Party Authentication Providers

JWT’s in Google Sign-in Last time [I wrote about Google Sign-In][last-post], I discussed the details of why you would want google-sign-in vs. using OAuth to grant you access to a person’s account. I also discussed robot-accounts vs. using individual access tokens. However, I did not go deep into how the sign-in flow works partially because I didn’t have to; The python google api bindings took care of most things which meant I did not need to think very hard about what was happening to authenticate....

May 31, 2017

Understanding Authentication and Sessions

Motivation In [my post about using Google Sign-In][signin-post], I walked through some pieces of authenticating using Google as an identity provider. In the example I used [Flask-Login][flask-login] to manage sessions. Since then, I tried implementing something similar in Go and went down a little bit of a rabbit hole in terms of different ways to work with sessions. In this post, I’ll explain what I’ve found. What is authentication? Authentication is the process of verifying I am who I say I am....

April 27, 2017