A refuge for sharing experiences with programming and technology.

GopherCon 2019

GopherCon 2019
Another year and another GopherCon, this time in sunny San Diego! As usual, there were a lot of high quality talks across a breadth of subjects. I highly recommend browsing through the GopherCon videos on YouTube, but I’ll highlight what I thought were the interesting bits below. The last year or so has seen a LOT of discussion around dependency management for Go, particularly around dep and Go Modules (formerly vgo).

Tiled in Unity using SuperTiled2Unity

Tiled in Unity using SuperTiled2Unity
My brother and I are in the early stages of development and design for a game we are making together. He’s the genius artist and I’m the programmer guy. Everything in-between we share, including map making. There’s an excellent free tool called Tiled that can be used to make 2D maps. It supports layering, automapping, animations, and even collision boundaries. In short, it’s a fantastic tool for creating 2D maps.

Hackathon: Generating Fake Test Data with Python

Hackathon: Generating Fake Test Data with Python
We had yet another hackathon at work. This time around, I wanted to do something with Python. Since we have a gap in test data at work, I decided to create a script to generate oodles of fake test data using a Python library called Faker. It has a number of default providers for generating different types of data. It can generate fake addresses, names, dates, phone numbers, etc. This simple code block:

Hackathon: Tello Drone, Go, and Lua

Hackathon: Tello Drone, Go, and Lua
When the theme for our latest company hackathon was revealed to be “Need for Speed”, I went straight to Best Buy after work and picked up a DJI Tello drone. I had been wanting one ever since I went to GopherCon and saw the presentation by Ron Evans where he used Gobot and GoCV to make a Tello drone follow his friend’s face around. Now that I had a drone, I needed to figure out what to do with it.

Multi-platform Makefile for Go

Multi-platform Makefile for Go
Something that Go does very well is multi-platform support. You can build a binary for just about any system without much hassle. On a single build machine, you can build binaries for Windows, macOS, and many flavors of Linux. All that is required is to change the GOOS and GOARCH env variables to the desired OS and architecture. I made a Makefile to take advantage of this. First I started with a few variables.

Worker Pool to Limit Concurrent Goroutines

Worker Pool to Limit Concurrent Goroutines
Recently, I had the need to process a near infinite number of messages asynchronously. You can’t just throw all the messages into separate goroutines when there are that many of them and more incoming. One solution is to use some sort of worker pool to manage the number of concurrent goroutines that can run. Here’s how I went about creating a worker pool (I’ve called it a task pool) in Go.

GopherCon 2018

GopherCon 2018
I had the privilege again this year to fly out to Denver and attend GopherCon, the premier gathering of “gophers” (people who program in Go). It’s a lot of fun and I learn something every time. After spending the weekend hanging out around town with my wife, enjoying Hammond’s candy and exploring the Denver Museum of Nature and Science, I started the conference with a machine learning workshop. It turned out to not be quite what I expected.

Hackathon: DNN Service

Hackathon: DNN Service
A couple weeks ago, we had another hackathon at work. This time, I wanted to create something useful that could potentially be adapted by one of our teams. My initial thought was to convert some of our old C++ code to Go and remove a Windows dependency, but after talking with one of my coworkers, we decided to instead create a DNN service for executing a Caffe2 model in Go. We had a third volunteer join us and we set out to achieve our goal.

Microsoft Acquires GitHub

Microsoft Acquires GitHub
Earlier today, Microsoft announced they are acquiring GitHub, the popular git hosting solution that everyone uses. At least, it feels like everyone uses it. Here’s the announcement from GitHub. I use GitHub and I really like it. It seems to be an integral part of the Go ecosystem and open source software at large. I actually like Microsoft, but I’m not happy about this turn of events. The design and user experience currently present in GitHub are in line with what I want from my version control hoster.

Hackathon: Conway’s Game of Life

Hackathon: Conway's Game of Life
Recently, I had the pleasure of participating in an internal hackathon at work. They gave us two days to create whatever we wanted with whatever group of coworkers. There were no specific guidelines on what the project had to be or what technologies it needed to use, so I decided to go solo and recreate Conway’s Game of Life in Go. I’ve been fascinated with the Game of Life ever since I first heard of it several years back.

Setting up a Ghost blog on Amazon AWS

Setting up a Ghost blog on Amazon AWS
If it wasn’t immediately evident, I created this blog fairly recently. After much deliberation and research, I chose Ghost as my blogging platform. I like its simplicity and focus on content. My desire was to use Amazon AWS for hosting, as it is fairly cheap and dependable. It took some fiddling to get Ghost running and I thought I would share what I did in the hope that it would aid someone else. Please note, these instructions assume the person following them already has an AWS account set up and ready to go.

It’s a bird! It’s a plane! It’s…SpaceX?

It's a bird! It's a plane! It's...SpaceX?
Last Friday, I was on my way home from a road trip with my sister when we saw something extraordinary in the night sky. We had no idea what it was at first. Was it a near miss asteroid? A missile test? Rocket launch? Aliens?! My sister took a short video (I apologize for the portrait mode): There was a pulsing light behind the leading object that eventually fell towards the ground and turned bright red before disappearing.