Remapping Media Keys

Recently I’ve started working on my desktop PC again, after it spent several years gathering dust and being tripped over. Before its extended rest, it had begun to exhibit symptoms suggesting the power supply was on death’s door and I had neither the need nor the inclination to fix it at the time.

During its hiatus, I’ve become accustomed to having the ability to skip songs at my fingertips using media keys, something afforded by pretty much any laptop released in the past decade. Unfortunately, the Logitech K200 I use with my desktop doesn’t provide, at least what I consider, a complete set of media keys:

  • Play/pause
  • Mute
  • Volume up
  • Volume down
  • Web browser
  • E-mail client
  • Power off
  • Calculator

Next and previous track buttons; not included.

I probably should have just replaced the keyboard at this point, but aside from this basic inadequacy, I quite like it. It’s well made; it doesn’t feel flimsy or weak. It’s satisfying to work on; the keys have a pleasant tactile feel. You can even rinse it under the tap after inadvertently sharing your morning coffee with it (unplug it first).

Hosts File Management

At work I use a lot of host overrides. Working in a .NET environment on a MacBook Pro using virtual machines makes them essential. However once you have a lot of host overrides pointing at the same address they can be frustrating to update if the virtual machine address changes.

Virtual machines are great. They allow you to run software which might not be available for your operating system otherwise. However I don’t believe you should virtualise just because you can. If I can run something in the host OS I will. At work I use IIS to host .NET applications in the virtual machine which I access through Chrome on OS X. This approach means that I need a host override for each IIS hosted development website I want to access.

Removing Ignored Files From a Git Repository

Earlier this week I was asked to review a few pull requests on an older project. The project maintainer wasn’t available and the client was anxious to have the changes deployed. A cursory glance at the pull requests revealed conflicts. All on files generated by the build process.

The project was started after we had only recently made the transition from Subversion to Git. Whoever created the project was new to Git and didn’t properly understand how to use the .gitignore file.

Getting Started

I bought the domain in 2007 and since then it’s been used to host various files, experiments and test beds but never an actual website as was originally intended all that time ago.