Screwing Around With SDR

A few weeks ago, I pointed a camera at the East River to take pictures of the ships as they pass by. I wanted to know more. Every sufficiently large ship is constantly broadcasting information about itself via the Automatic Information System (AIS). It is, roughly speaking, a digital signal broadcast on the ship’s short range VHF radio. Anyone can receive it. So, I decided I wanted to learn all about AIS and read the signals for myself.
Read more →

Measuring memory utilization in Go

A long while back, I experimented with making a Go web server behave differently based on its heap utilization. I used runtime.ReadMemStats, but I didn’t run ReadMemStats on every request because it stops the world. More recently, I started getting curious about logging memory utilization, against a production system, where we found that it was important to see the memory in use for each and every web request. I thought back to my old friend ReadMemStats, but I was frightened of stopping the world.
Read more →

Using command line tools to analyze a crash

At Nautilus Labs, we’re advancing the efficiency of maritime transportation by collecting data and recognizing patterns. An interesting side effect of this is that we have insight into a ships' actions, not just day-by-day, but second-by-second. It’s not as simple as dots on a map either; engine power, wind, rate-of-turn, it’s all important. We worked with one of our clients to take advantage of this recently. A few days ago, one of their ships struck a jetty during a berthing maneuver.
Read more →

Rubens' Tube

Hey, check out this Rubens' Tube! What’s a Rubens' Tube? It’s a tube filled with flammable gas with a transducer on one end and holes drilled in the top. You light the gas on fire. When you play a sound into the tube that is a harmonic of the tube’s resonant frequency, you get patterns in the flame! I built this one at South Side Hackerspace: Chicago with the help of my friends Dmitriy and Josef.
Read more →

End Grain Cutting Board

I made an end-grain cutting board, and it’s about the coolest thing. It’s 1 3/4" thick and made from white maple. I’ll take you through the steps I followed. I’ve been a metal guy for years now. I love welding, I love machining, but recently I discovered that glued wood joints can be far stronger than I ever thought. We kinda needed a second cutting board, so I watched a few videos and read a few guides and decided I could probably build one.
Read more →

Golang Philly talk

Read more →

Top Ten Home Thorium Core Reactor Tips

Read more →

Jeep Box

Read more →

How I clean my boots

Read more →

Assigning Globals in Go

Read more →

Introducing Uluru

Read more →

Internet Jukebox

Read more →

Sun Visor Bracket

Read more →

Message Queues and Go

Read more →

Jeep Quest Part 4

Read more →

Cincinnati Chili

Read more →

Jeep Quest part 3

Read more →

Jeep Quest part II

Read more →

Jeep-Quest Part 1

Read more →

Pictures of my Blog

Read more →

Surge Soup

Read more →

AGOX Connectors

Read more →

Telescope Update

Read more →

Cancelling Comcast

Read more →

Celestron FirstScope

Read more →

Tips for using RabbitMQ in Go

###Corrections: 4% != .004% : When I was writing the article, my brain translated 99996 into 96000. Big difference. It turns out that I’m unable to dequeue somewhere between .004% and .20% of messages in about half of test runs. ###Note: I’ve been chatting with some very helpful RabbitMQ-knowledgeable people, and they have some suggestions for the issues I’m seeing that I’m going to check out. I will update this article with my findings.
Read more →

The Joke

Last night, I had a dream that I was telling a joke. It was a long one. I got almost all the way to the punchline before I woke up, and, thinking back on it, I had completely botched the setup. Shame on me. Here’s the joke: In eastern Europe, some time in the 15th century, there was a young rabbi. He was just out of training and was not ready to settle down, so he was wandering the countryside performing good deeds.
Read more →

Arduino Workshop

Sometimes, shit doesn’t work out. For example: Mike’s Hard Lemonade contacted me at the Southside Hackerspace, wanting us to modify a golf cart as part of their “Mike’s Hacks” summer ad campaign. I dumped a lot of time (and just a little money) into the project, but everything went south at the last minute. But this isn’t about that. At the same time, Mason Donahue put me in touch with Chicago Girls in Computing.
Read more →

Robot Finds Kitten as a Service

Read more →

Server Migration

I know my site doesn’t exactly have any dedicated watchers, but if anyone noticed a period of downtime earlier this week, it’s because I was migrating from hosting on FatCow to hosting on a rented VPS through DigitalOcean. I also moved my domain registration from FatCow to Gandi.net. In this post, I plan to cover the hows, whys, and some lessons learned. I’ll start with the juicy stuff. Why? There are a couple of reasons, but the root of it all is that I got fed up with FatCow.
Read more →

Someone stole the T

Read more →

Intro to Golang

Hey everybody, check out this intro to the Go programming language I put together for a talk at Backstop the other week! Golang Slides I tried to keep the slides content-light, since I find that having too many things on the screen distracts from what I’m saying. I’ll recapitulate my notes below. Title slide. Blah blah blah. Around since 2009 Go started as a research project at Google in 2007.
Read more →

Cold brew coffee: try # 1

I saw a Kickstarter for a cold brew coffee device today, and I started reading about it. Cold Brew is supposed to taste different from your traditional hot brews – it gets less of the acidic flavors than traditionally brewed coffee, so you wind up with a smoother beverage. Also, cold brew techniques produce a coffee concentrate that you’re supposed to dilute, and the idea of mixing up 50/50 cold brew and milk is interesting.
Read more →

Moving: a post-mortem

Last month, I moved from Atlanta to Chicago. Moving always sucks; that’s a universal constant*, but I think this one went better than most. I’ve compiled a list of what worked and what didn’t, and some notes on what to do better next time. What Worked Trello Sabrina and I planned the move and tracked our tasks on Trello.com. I have to say, the ability to put together dynamic kanban-style task boards on the fly really helped us keep everything straight.
Read more →

How to: disable capslock at the hardware level

I hate capslock. It’s a horrible, horrible key, and it gets even more in the way on my split ergonomic keyboards at work. I’ve tried registry hacks to kill it, but they don’t seem to work. Here’s how I deal with capslock: Obtain a small, flat-headed screwdriver. Insert it beneath the Capslock key. Pry downward. If you ever need capslock later, just use a pen to poke the little capacitive sensor.
Read more →

Reverse Engineering Doubleclick Part II

Once every three seconds, that’s the magic number. Some more interesting information: I pointed a Doubleclick click counter at a super-simple web service I wrote, running on a web server I rent, and I ran a test that follows the DLCK redirect. Here are the results:

I ran 300 clicks at 4s per click, then 500 clicks at 2s per click. As you can see, almost all of the first 300 clicks made it to the web service, but only around 380/500 2s per click clicks made it.

Read more →

Reverse Engineering Doubleclick Ad Statistics (Part 1)

One of the projects I’m on seeks to proxy web beacons. Basically, I have a WSGI app that serves a 1x1 px gif, and then triggers a Celery app that goes out and actually “clicks” on the intended web beacon. During preliminary load testing with a Doubleclick beacon (actually a Doubleclick link counter), we discovered that requesting that beacon 1000 times in 5 minutes (one request ever 1/3 second) only reported around 30 “clicks.
Read more →

Mergesort on all the spices in the kitchen

It bothered me that the spices in the kitchen were out of order. So, I sorted them using my favorite sorting algorithm, Mergesort. My cats helped.

I started with an un-ordered list of spices.

Then I started to divide the list up into smaller lists. Panther helped. 31 elements became 15 and 16. Then 7, 8, 8, 8. Then 3, 4, 4, 4, 4, 4, 4, 4. Then 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

Read more →

Box Fan Beef Jerky, part 2

In this post, I started making box fan beef jerky. If you can’t remember where I was when I left off, go take a peek. Okay, so. The meat sat in the marinade overnight, and come morning I loaded it onto a 20" by 20" HVAC filter, courtesy of The Home Depot.

The cats were very interested.

I assembled the filters and strapped them to the fan.

Read more →

How to UrlEncode a String in C# using .Net 4.0 or less

The boffins over at Microsoft added a handy method to .Net 4.5: Webutility.UrlEncode. Unfortunately for those of us who don’t have Visual Studio 2012, we can’t use it! How then can we properly encode strings for use in URLs? (What do I mean? Let’s say I want to pass a URL inside another URL as an argument. So, for example, I want to pass http://www.bar.com/?a=b&c=d as a query string variable to foo.
Read more →

Box Fan Beef Jerky, part 1

I realized this morning that I’m about six months late in changing my air conditioner filter. I was in Home Depot, and I thought, “You know what goes really well with air filters? Beef jerky!” That’s right, I’m an unabashed Alton Brown fan. I saw this episode of Good Eats a few years ago, and I occasionally think, “Huh, I could do that.” Well, I bought three of the cheapest 20x20 filters and 1.
Read more →

Cast Iron Skillet Pizza

I am the proud owner of a Lodge 10" Cast Iron Skillet. I bought it at the Lodge Factory Store in Tennessee for, like, $12 because of a small blemish. I’d heard about making pizza in a cast iron skillet, and tonight, I thought, why not? I largely used this guy’s recipe (minus the part where he made his own dough and sauce. Maybe later.): http://www.macheesmo.com/2011/03/cast-iron-pizza/ One trip to Whole Foods later, and I had some Ingredients!
Read more →

I’m beginning to really get test driven development.

I was working on a piece of code today, and I decided to refactor some of it. “This method is beginning to smell bad,” I thought. “I should break this series of if/thens off into a different method.” One thing led to another, and soon enough I had some considerably better-structured, more readable code. But did it work? As luck would have it, this is the first project I’d gotten a chance to build from the ground up, and as such, the first project I’d been able to build with a whole stanking lot of test coverage.
Read more →

First Arduino project

So, I know I’m way behind the curve on the Arduino. I got caught in a vicious cycle of, “Can I justify ordering an Arduino? No, I don’t really have a project for it.” “Should I start this project? No, I don’t really have an Arduino.” Well all that changed, because I have an Arduino now (finally! Gosh!). I’d ordered a bag of resistors and LEDs on Amazon, and I have a passive IR motion sensor, so while watching Watership Down this evening I assembled my very first project.
Read more →

Hey, Chris Agocs, click this:

Read more →

RadioShack is worth a damn again!

I remember a day before cell phones when you could go to RadioShack and get electronic components, Ham Radio gear, and a bunch of other really useful stuff. Times changed, and all they were good for was cell phones, overpriced batteries, and people yelling about the above. I’ve pretty much been ignoring Radio Shack for the past six or seven years. I’d heard that things had changed. I walked into a RadioShack near me today, and walked out with an Arduino and a motion sensor.
Read more →