Docker Private Networks and Nginx

Last time, I discussed setting up OpenVPN so I could access the systems on my home network remotely. One of the systems I use is nginx. I use it primarily as a reverse proxy to my others systems (gogs, drone, etc). The reasoning behind this is that I can use nginx as a sort of TLS termination proxy to all of my others systems. This way I only have to manage my certificates in one place. [Read More]

Securing Your Connection With OpenVPN

Recently, I wanted to setup a private development environment for my home. Public places like slack, github, etc. are great for open source development and enterprise teams. It can be expensive to pay for some of their services though if you are on a small team or do side work here and there. For me, spending a few hundred dollars on a cheap computer (I went with a NUC), allowed me to setup all the services I needed for a small team that would quickly pay for itself. [Read More]

Installing UniFi Controller on Arch Linux | ARM

I realize that the subject by itself seems to limit the interested audience of this post significantly. It took some tweaks to get the UniFi Controller from Ubiquiti working on Arch Linux | ARM though and I wanted to get it out there, if only just for me. I’m going to presume you already have Arch Linux running on ARM. I used a Raspberry Pi 2, so your packages/mileage may vary if you are following these instructions elsewhere. [Read More]

Go I/O is Fun*!

* For certain definitions of fun. One of my favorite parts of Go is the interface type. There has been sufficient hate recently about the missing generics but, to be honest, I haven’t missed them one bit. One of the reasons I haven’t missed them is the use of interfaces in go, especially in the standard library. The io package is a great example. Whether you open a file, read from a network, or request a web page, they all implement the io. [Read More]

Dynamic Server Management With Doozer and Groupcache

Groupcache, while not a complete replacement for memcached, is an amazing caching library. In just a few lines of code, you can greatly improve the access time to your immutable data. One of the problems many people quickly run into when using groupcache is maintaining a list of peers where the cached data is distributed. Using a configuration file is a fairly brittle method for maintaining the list. Fortunately, this isn’t a new problem. [Read More]

Hosting Your Own Godoc

One of the biggest reasons to use Go is its great tooling. Godoc is one of those tools and it makes documentation so simple that you’ll be wanting to document your code instead of dreading it. Besides having a command line interface for displaying documentation, it can also start an HTTP Server. Golang.org is a public version of this for the standard packages. GoDoc does a similar thing for public packages. [Read More]

Don't Reinvent the Wheel

This last week, I had the opportunity to attend the OpenWest conference. I can’t say enough about how amazing it was. If you have the opportunity next year to attend, you should definitely do it! During the conference, I was able to present on some of my recent blog posts. I was also able to attend a session and a keynote from Rasmus Lerdorf and many other really smart people. I felt like everyone came together with a common goal of sharing the knowledge they had and learning from the experience of others. [Read More]

Hardcore Google - RESTful Communication With AngularJS

This post is part of a series Hardcore Google. You can find other posts here: Unit Testing App Engine RESTful Web Services In Go RESTful Communication With AngularJS My history with JavaScript goes back almost 15 years. Back then, working in the browser was was difficult. Eventually tools like jQuery came around and made the work somewhat simpler. It wasn’t until I discovered AngularJS though that I felt like JavaScript development had come out of adolescence. [Read More]

Hardcore Google - RESTful Web Services In Go

This post is part of a series Hardcore Google. You can find other posts here: Unit Testing App Engine RESTful Web Services In Go RESTful Communication With AngularJS When you first start developing a web application, one of the first big decision you make after choosing your tool set is how these tools will interact with each other. For my project, I had already chosen Go for my back-end, AngularJS for by front-end, and Google App Engine to host it all. [Read More]

Hardcore Google - Unit Testing App Engine

This post is part of a series Hardcore Google. You can find other posts here: Unit Testing App Engine RESTful Web Services In Go RESTful Communication With AngularJS I recently began a project using Go, AngularJS, and Google App Engine. It is a personal web site I use at home to help keep my family organized. I’ll talk more about it later in a series of posts. I’m not actually completely finished with it yet, but I thought I’d start this series. [Read More]