Reverse engineering the Tempur-Pedic adjustable base remote control (part 1)

This is the first in a (probably) three part series. Checkout the code on BitBucket: About a year ago, I decided to upgrade my old spring mattress to a TEMPUR-Contour Elite Breeze and I cannot say enough good things about it. I opted to also get an adjustable base (this one) for it, which […]

vCenter Server Appliance: “AFD Native Error Occured: 9127”

Spoiler alert: I was unable to find a solution to this issue, and ended up deploying a new VCSA instance. I made the mistake of not assigning a static IP address to my vCenter Server Appliance instance. When I rebooted my router, it was assigned a new IP address. When I attempted to access the […]

Capturing Vim environment variables from bash scripts

In a recent bash script, I needed to obtain the value of the $VIM environment variable. Vim uses $VIM (as well as $HOME and $VIMRUNTIME) when computing various paths: Default value of $VIM It is possible to find the default (fall-back) value for $VIM by inspecting the output of running vim –version. Here’s a […]

Emulating nested optgroups in Django Forms

Some motivation Django has a field called ChoiceField which lets you very easily create a <select> dropdown in your forms. A great feature is the ability to transform nested choices into appropriate <optgroup> groups. For instance, the following code: …creates a field that when rendered looks something like this:   The HTML that Django produced looks […]

Gift guide 2014: On-the-go tech essentials

With the holidays fast approaching, I thought it might be fun to share my list of on-the-go tech essentials for any geek technology enthusiast. Leatherman Sidekick Multi Tool What’s a “tech essentials” list without at least one multitool? I like this Leatherman Sidekick because of its great tool selection and reasonable price. The pliers are […]

Disable Radeon power management in newer Linux kernels

Since Linux 3.13, Radeon power management is enabled by default. This is great if you have a supported card, but if you don’t, you may encounter issues such as overheating and overeager cooling fans. If you fall into the latter category, you can use these instructions to disable the new power management features. Disable Radeon power […]

ATmega/ATtiny PWM tutorial

I was planning on writing a beginner’s tutorial for using PWM on raw AVR chips, but I found that Arduino already has a nice guide here: The only change you need to make to their code to use it without the Arduino software is to remove calls to “pinMode”. Do so by using the appropriate […]