== sub-pop ==


People often ask why I wear gloves at the keyboard. It’s not because I’m too cheap to turn up the heat. A long time ago, I used to work in a giant, climate-controlled office building that permanently maintained a temperature of 72°. Because these buildings basically had permanent air-conditioning blowing into the office space, I found that my hands, and specifically my fingers, would get stiff and achy. The stiffer my fingers and hands became, the more difficult I found it to type. Read more...

Go package organization

There are numerous blog posts and articles on the topic of how to organize Go projects, but nearly all of them have missed the point: Go is already telling you how to organize your project. Go doesn’t want you to organize your source code files by any sort of taxonomy; it wants you to organize your source code files by usefulness. Let’s start with some things you already know. Within a Go project, all your code lives under the top-level module path. Read more...


As part of my development workflow, I have found disposable, reproducible virtual machines indispensable. Over time, I have slowly developed a set of scripts and commands to create and destroy virtual machines. This time, those scripts and tools finally coalesced to something that can be packaged and released as a bit of developer software. devbox is a simple Makefile that generates disk images and libvirt domains. It is little more than a set of carefully crafted virt-builder and virt-install commands. Read more...

Connecting to the IRCCloud bouncer using Polari (or any Telepathy-based client)

telepathy irc mission control mc-tool polari bnc bouncer
Polari is my preferred IRC client. Its dead-simple interface makes it the perfect choice for a client to avoid all the embedded images and animations that riddle chat platforms these days. IRCCloud is a excellent service that modernizes IRC with some features that are nice to have in an IRC client (persistent connections, message history). On top of that IRCCloud offers a bouncer to which other clients can connect. Getting Polari connected to the IRCCloud bouncer isn’t straightforward however. Read more...

Egregious Python Type Violations

requests.exceptions.ConnectionError inherits from requests.exceptions.RequestException, which in turn inherits from IOError which in turn inherits from EnvironmentError. EnvironmentError is described as containing a 2-tuple value: on element 0, errno and on element 1, strerror (presumably a string description of the error). For example: try: f = open("/foo") except IOError as e: print("errno: %s" % e.errno) print("strerror: %s" % e.strerror) However, requests seems to take this concept of the 2-tuple errno/strerror pair to the extreme. Read more...

Running OpenStack in Vagrant via RDO

This is how to run a single-node OpenStack cluster using the RDO project’s packstack installation utility. I packed everything into a Vagrantfile so it can easily be redeployed. Huge credit goes to codingpackets.com for providing the answers.cfg and network requirements. I don’t honestly know yet why the network requirements are such; I just know this works. In a new directory, create a Vagrantfile containing: # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant. Read more...

Common Job Description Mistakes

When writing a job description, don’t make these common mistakes or fall prey to bad trends. Don’t Sell Your Company We’re a data-driven marketing channel big-data warehousing engagement analytics real-time data set enterprise-ready cross-functional target and engage consumers uniquely managing multiple access results of data science. I have no idea what you do. Instead, describe the job in words engineers understand. We make a Django application and host it on AWS. Read more...

Fedora Server on Meerkat

Fedora 23 Server installs with only a couple minor tweaks onto a System76 Meerkat (meer1). I chose to install from the closest mirror, and installed the latest updates to get the 4.3.x kernel. I’m not sure this was necessary, but I wanted to make sure I had the latest kernel packages available. Install as normal, but before rebooting, switch to a TTY (ctrl + alt + f2). # chroot /mnt/sysimage # dnf update # dnf install iwl7260-firmware NetworkManager-wifi wpa_supplicant Then reboot. Read more...

Using an Apple Superdrive on Fedora

superdrive apple
As described on christianmoser.me, in order to use the Apple Superdrive on Linux, you need to add a custom udev rule (/etc/udev/rules.d/99-superdrive.rules). # Initialise Apple SuperDrive ACTION=="add", ATTRS{idProduct}=="1500", ATTRS{idVendor}=="05ac", DRIVERS=="usb", RUN+="/usr/bin/sg_raw /dev/$kernel EA 00 00 00 00 00 01" However, by default Fedora doesn’t ship with sg3_utils installed by default, so you’ll need to install it.

Star Wars album covers

artwork music
From time to time, I’ve been known to create my own album covers for things. I’ve done a MST3K variant, and this time I wanted to streamline my collection of Star Wars soundtracks. Inspired by The Force Awakens. Download (includes covers for all 7 movies) This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
1 of 2 Next Page