My name is Bryce. I build software. This website is a collection of my personal projects and writings.
subscribe via Atom
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
2024-06-21
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.
2015-11-01
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.