=============
== sub-pop ==
=============

Freebsd Wake on Lan

I could not find clear documentation anywhere on the Internet on how exactly to enable wake-on-lan capabilities on a system76 meer1 running FreeBSD, so here goes: sysctl dev.em.0.wake=1 To make this change permanent across reboots: echo 'dev.em.0.wake=1' >> /etc/sysctl.conf

Go 'pkg' antipattern

I’ve written previously about organizing Go project files. I have observed a trend in Go package organization that strikes me as a clear anti-pattern to project organization. Working under the assertion that Go packages should be useful when imported by themselves, the usage of a ‘pkg’ directory is a clear anti-pattern. Remember the top-level of a Go project is the root of your API. If you want your package to be imported with a path such as “github. Read more...

Modernizing Sound Juicer, Part 1

I have long been interested in modernizing a venerable open source project. While some may argue that ripping CDs is no longer relevant, I personally do still purchase some music on CD, and want to listen to them in digital formats. Sound Juicer is an old piece of software. Its first commit dates back over 20 years. commit 36ff0dc5f60f5d69ba2b4f6179f5f129945e6f53 Author: Ross Burton <rburton@src.gnome.org> Date: Sun Mar 30 20:28:32 2003 +0000 Initial revision It began as a GTK2 application, and in 2010, was ported to GTK3. Read more...

Gloves

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...

devbox

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...
1 of 2 Next Page