My Favorite Records of 2013

I listened to quite a lot of new music this year. Lots of metal, a bit of hip-hop, a ton of retro / psychedelic stuff. A lot of REALLY BAD garbage. These are all the albums that stuck with me somehow. Mostly, these are the albums I played more than once. Overall, I’d say 2013 was one of the best musical outputs of any year this century (so far). Here’s my favorites… Read On →

Enabling Wifi in Raspbian

I’ve started playing around with a Raspberry Pi recently. It’s pretty slick, but there are a few gotchas I’ve run into, particularly regarding wifi. I’m using a Model B Raspberry Pi which came with a USB wifi dongle, since my TV and router are not in the same room. With raspbmc, it asks for your ssid and passphrase, but with an image like raspian, you have to configure the settings yourself. Read On →

Testing Salt States Rapidly with Docker

At Mediafly we have been using Puppet for a lot of our configuration management. While it does the job, it’s a little opinionated and a little more complex than I’d like. I’ve been using Salt a lot lately outside of work and I love the simplicity. I’ll save my opinions for another post, but I guess if I’m writing about it that means I enjoy using it, right? In conjunction with that, we’ve also been experimenting a lot with Docker. Read On →

Stub Remote API Calls Locally with Nginx

One of the things that makes distributed systems development somewhat of a challenge is interacting with all the remote APIs that your system requires to function properly. I find this a challenge when developing on the train (as I spend over 2 hours a day on one). 4G LTE is great and all, but there are dead zones and dropouts that make some API calls annoyingly long to respond. Lately I’ve been messing around with stubbing out the remote calls locally using nginx, so I thought I would share how I do it. Read On →

One Reason I Like LINQ in C#

This is one of my favorite things about LINQ in C#. This code: var nonBlank = false; foreach (var byteval in arrayOfBytes) { if (byteval <= 0) continue; nonBlank = true; break; } Becomes this code: var nonBlank = arrayOfBytes.Any(byteval => byteval > 0);