Open Source Projects
An asynchronous A* pathfinding library written in JavaScript.
A JavaScript library containing constants enumerating the HTTP status
codes. Based on the Java Apache HttpStatus API.
A collection of simple Go programs which can generate bitcoin wallets,
create and sign transactions, and send transactions over the bitcoin
network.
A Go implementation of a vanilla Kademlia DHT. Based off of a combination
of the original Kademlia whitepaper and the xlattice design specification.
Writings
I recently bought a new MacBook, and instead of manually installing everything for the nth time, I decided to go down the path of using Nix and nix-darwin to codify my dev machine configuration.
I was recently debugging an issue in some integration-style Go tests which made me realize that I didn't have a very deep understanding of how parallelism works when using `go test`.
Today I want to talk about an issue I was having with UDP sockets in Go, and how I learned more about my program by making use of two tools that ship with Mac OS X called dtruss, and DTrace.
Did you know you can inspect your node application's memory without instrumenting your code? It's possible using a tool called mdb_v8. With mdb_v8 we can produce a core dump of a running node process, and then later inspect the memory at the time the core dump was generated. This leads to some powerful postmortem debugging capabilities.
Lately I've been doing more work in the Go programming language. Today I thought I would share three "gotchas" that caught me off guard, or otherwise produced results that I would not have expected in my work with Go.