savorywatt

Iowa Code Camp 2016 “Correctness, Consistency, and other lies”

I had the opportunity to speak at Iowa Code camp in October. My talk was “Correctness, Consistency, and other lies”. My slides are here. It was a good experience and I enjoyed being able to speak to a small audience. There were about 15 people in the audience which gave me time to answer questions and make sure everyone understood...

A simple, nerdy and meaningful programmer’s gift for your SO

A day recently passed that my wife and I decided we would take a few moments to celebrate our many years together. As part of that I wanted to do something that had been gnawing at the back of my mind for a while. For the life of our relationship we have communicated through some form of a chatting program...

Calling Go code from Python code

Inspired by the ruby version from @jondot With the release of Go 1.5 you can now call Go as a shared library in other languages. That little tidbit escaped me the first time I went through the release notes but after having the above ruby article come through my twitter stream I decided I should see if I could quickly...

Do the simplest thing

A few months ago in a single night I sat down and tried to go from the spark of an idea into something I could release into the wild to see if anyone was even interested. It was fun to just sit down and try to ‘ship’ a dead simple idea. “Discovery requires experimentation” as they say. The idea I tried...

appenginegophercolor

GopherCon 2015 CFP

So my talk was not selected for GopherCon. I’ll be turning it into a series of posts on things that were unique, discussing building an immutable log in Go, going over my distributed pong game (examining the game network programming I did and how I broke the physics calculations among servers etc.) and a bit on the Company Retrospective. Here...

Concurrent transactional behavior, thoughts on RAMP

I recently came across a blog post on distributed transactions here that was promoting a new type of isolation guarantee for transcational behavior that is designed specifically for concurrent transactions to avoid locking style behavior. The goal of this new design is to provide atomic visibility during a transaction. This behavior is of interest to me because it allows a...

3d_black_ball-wide

Simple 2d box physics in Golang with Chipmunk

I’m currently in the middle of writing a toy game server and needed something to compute the state of some very simple objects. After searching a bit I found chipmunk which is a pure go implementation of chipmunk-physics which purports to be faster than the traditional box2d engine. The game server is an attempt by me to evaluate using something...

papercut

Move files and folders between git repos using patches

Some times you need to carve off code from one repo to another repo. As I build out a package I like to think about which parts might be useful elsewhere and sometimes I move them to their own repositories. This simplifies development and keeps a composable focus for my work. However, I do like preserving history and while I...

machine-learning

Machine Learning in Go

There are limited options for doing machine learning in the Go ecosystem. I’ve found a curated list here as a good starting point and it covers most of the main packages I’ve found through search. When looking for golang packages the best places to start are here and here. Currently, there are only two general purpose libraries (golearn and mlgo) and several algorithm specific ones. Of...