programming

Using Regular Expressions to find a Ham Radio Vanity Call Sign

Today I'm going to tell you about regular expressions and how awesome they are.

Background

Regular Expressions are a way to define a pattern of letters/numbers to search for. Traditionally, regular expressions are marked with slashes on either side. Here are some simple examples:

  • /bar/
    Search for the word "bar"
    This will match: bar
  • /.*bar/
    Search for anything ending in "bar"
    This will match: candybar, foobar, rebar, openbar

There are lots of great guides online that will teach you how to use regular expressions, so I will not duplicate that effort here. In fact, there are entire books written about regular expressions. It's one of those programming tools that no serious geek should be without, like a swiss army knife.

Our weekend project Scavengeroo.com launches

Scavengeroo.com screen captureEffie & I just launched our new QR Code Scavenger Hunt game, Scavengeroo this past weekend.

To build it, we spent 2 long weekends (Friday night, all day Saturday & Sunday, with meal breaks) and a few scattered evenings over the past month or so. I'll outline our basic development process and technological considerations (i.e. what plugins/gems I used).

The Geek Way

Several years ago, I created my own Contact Manager application. I did it in Ruby on Rails because it was quick. I had it published online at a semi-public URL, so I could access it from anywhere. It was open to public registration, but I was the only one who ever created an account on it. So basically it was a single-user custom app that had exactly the features I wanted it to.

It was perfect. It had tagging, and you could add as many phone numbers, e-mail addresses, or postal addresses as you wanted. It would keep track of accounts like Livejournal, AIM and MSN Messenger. I could even keep track of relatives & roommates sharing the same address, and each contact had three dates associated with it: how long I'd known them, how old their contact information was, and how long it had been since we talked.