Thoughts on Whatnot
A blog about .
Composition vs. Inheritance
There’s a situation that, while it doesn’t happen too commonly, annoys me when it does happen. Someone comes to Reddit, or golang-nuts, or somewhere else, and asks about the often repeated refrain about composition vs. inheritance. Sometimes, they get the right answer. Sometimes, someone makes some out-of-nowhere remark about embedding. The problem is that embedding is not in and of itself composition. It can be used in composition, but composition is not a syntactic or behavioral choice in the language; it’s a design pattern.
More...
Go Plugins
The release of Go 1.8 inches steadily closer, bringing with it many interesting and useful features and improvements, including shorter compilation times, an even faster GC, and, my personal favorite, initial support for plugins. Plugins, essentially Go’s version of C’s dlopen() and related functions, are an interesting one. The ability to dynamically load packages at run-time has been one of my most wanted features in Go since I first figured out how interfaces work.
More...
A Quick Rant about MonoDevelop

So, for the last couple of months I’ve been working on a project for school which has required me to use MonoDevelop. I first used MonoDevelop around 9 or 10 years ago or so when I was using C# fairly regularly. Back then, I remember MonoDevelop being a fairly competent, if somewhat limited feature-wise, Linux and GTK# alternative to Visual Studio Express and Windows.Forms, so I wasn’t particularly worried about using it for this project, despite not having used it in a while.

Apparently, I should have been.

More...
Happy Thanksgiving
Just in case any of you are actually in the U.S., Happy Thanksgiving to all the Russian-proxy spambots. How about a video?
Downtime and Docker Logging
For anyone who happened to have checked PS2 Average Login this morning, the little web-app that’s linked at the bottom right of the page, you may have noticed that it went down this morning. Of course, since this blog only has about twenty some-odd readers and they’re all spam bots being proxied through Russia, you probably didn’t notice, but still, I figured I’d explain what happened. Maybe someone will stumble across this at some point and avoid a potential issue.
More...
Redefining Go Templates
In Go 1.6, a new template action was introduced in the text/template package that allows for both defining and executing a template at the same time. This action, block, seems at first to be somewhat pointless. Even the docs describe it as simply being shorthand for defining and then immediately executing a template, and what’s the point of that? Why would you want to execute an inline template immediately after defining it?
More...
PlanetSide 2 Fourth Anniversary
Today marks the fourth anniversary of the launch of PlanetSide 2. Though the playerbase has certainly shrunk over the years, PS2 still enjoys fights between hundreds of players at once and hundreds of thousands of active characters per month. Though it may show its age in places and it may have a few rough spots, nothing else on the market can quite match what PlanetSide 2 has accomplished.
More...