September 14, 2015

Keyboards and how they work: The hardware inside your keyboard and the microcontroller

In this post I intend to explain what is going on inside your keyboard, from the switches all the way to the operating system, where the data terminates. I hope to go into some detail about how custom controllers like Soarer's convertor and controller, HaaTa's KiiboHD and TMK (among others) work to communicate keypresses to your operating system through the USB-HID subsystem. Keyboard Switches Keyboard switches are a contentious and seemingly deep topic of discussion. Read more

September 7, 2015

Hacking the IBM 6112884 Keyboard

Over the weekend after some planning, I finally decided to hack up the IBM 6112884 keyboard I bought a few months ago. I intended on doing this for a while but didn't get around to it until this past weekend. Don't use this board at work, it is LOUD, and your coworkers will kill you, or if you work in London, like I do, make them want to kill you but not tell you that. Read more

August 27, 2015

Keyboards and how they work: An Introduction

Over the past few months, I have been exploring the interesting (and expensive) world of keyboards. Yes, keyboards. There are a couple of resources on the subject that I owe all this knowledge to, namely the geekhack forums, the TMK firmware source code, the deskauthority forums, and of course lots of trial and error. The excellent Linux Kernel Map came in really handy for the software bits, and I highly recommend looking into it. Read more

April 20, 2014

Vagrant, Jenkins, and CoreOS quickstart

I recently started exploring how to allow teams to self service their own infrastructure for jenkins. What I mean by this is somehow allowing them to spin up new nodes whenever they wanted to by just including some metadata about their projects, and then pushing to git and having some automation take care of the rest. I don't have a full solution worked out yet, but I used this as an excuse to play with docker and CoreOS. Read more

November 1, 2013

Vagrant, chef-solo, and databags learning experience

I've never had to use databags before in chef-solo, but this past week I needed to do some exploration with the opscode squid cookbook. Aside from the opscode databag docs, I couldn't find much good information on it, so here goes. Vagrant This part is straightforward. Just add a directory where your Vagrantfile lives and then include a databags_path in your provisioning block. config.vm.provision :chef_solo do |chef| chef.data_bags_path = "data_bags" chef. Read more

November 27, 2012

Chef Testing Stratagies Compared

MiniTest/chefspec: Minitest is an integration testing tool that allows one to make assertions about the final state of the machine after the cookbook run. This requires a ‘clean’ machine to run your cookbooks on to get accurate results. Pros: The most logical way to automate tests that you would generally do manually. Gives you the freedom to refactor a cookbook or library and still confirm that it performs your intended actions. Read more