Personal

What I Do: Fraud Detection System Initial Overview

I’ve been working on a big new project since just before the new year and it’s starting to take shape and generate useful results.   I can’t give away too many details on how exactly it works but I wanted to share this with some of you who are also working in telecom.  I was asked to develop a real-time system to identify toll fraud that would work for our entire voip carrier network that currently originates calls from 19 different countries for both residential, SMB, and wireless.  For those who don’t know.. I spent a year working for another telecom software company helping to run and debug a call mediation and rating platform for a tier2 carrier.  This experience was useful in that I was able to quickly develop a scalable, distributed processing framework while avoiding the cumbersome overhead I’ve observed in other systems.  Continue after the jump for more details…

Broken By Design: DirectTV and Overproduced Email

I was invited to be in a focus group for the local talk radio station recently with a focus on how they use email to communicate with listeners.  As I’ve been a long time listener of this station and especially like some of the things they do online I thought it would be good to participate.  They wanted feedback on what they are currently doing and opinions on new approaches and services they were thinking of offering.

Site Facelift

I’ve been working on giving the site a facelift lately.. trying to make it a little more ‘light’… how am I doing? I’ll also be rotating in various photos I’ve taken in the page header. I’ll try to stick to photos I’ve actually taken myself… maybe as an incentive to do more traveling. I’m also trying out apache alternatives.. first lighttpd with fastcgi then nginx.

What I do: Dynamic Daily Table Partitions With Postgres

As part of a new and fairly large project I have a need to partition a few postgres tables and have a rolling daily window.  That is.. I want to organize data by a timestamp storing each day in its own partition and maintain 90 days of historical data.  Doing this is possible in Postgresql but it’s not pretty or very clean to set it up.  To simplify the process I wrote this perl script that (when run daily) will pre-create a certain number of empty partitions into the future and remove the oldest partitions from your window.

What I do: Interviewing for Linux Engineers

Now and then I’m called on to help interview candidates for linux admin/engineer slots and as I’ve been doing some of that lately I thought I’d share the way I go about doing a technical interview. This approach seems to work equally well over the phone or in person.

WBT Next Talker Pitch

The local news talk radio station is having a contest where the winner gets to host their own weekly show. It’s only two hours a week on sunday night.. but it sounded like something that might be fun. So this is my entry. It was recorded and mixed with the open source Ardour digital workstation and the Jack audio sub system under OSX.

Surely it's Time for Something Better: Ron Paul

![](http://farm7.static.flickr.com/6195/6161113920_b98bfb2930.jpg =320x)

A few quotes come to mind when I think about what Ron Paul and the Tea Party ideals represent.  Churchill said: “You can always count on Americans to do the right thing – after they’ve tried everything else.”  It seems the media is once again attempting to pick the Republican candidate much as they did last time around with McCain. The media is trying to focus attention exclusively on Perry and Romney… which reminds me a lot of the bit from Futurama where the two clones John Jackson and Jack Johnson were vying for the presidency. Both of these guys represent the old guard of the republican party.. much as McCain did in 08.  This is not 08 though.. this time the stakes are much, much higher and I for one think it’s time to stop settling for the lesser two evils.. it’s time for something better.

Don't be a Slave to Your Vendors

One of the reasons I like and support the use of open source software is that you can avoid most of the drama that comes from relying on 3rd party vendors.  By this I mean.. you must pay exorbitant sums for ongoing maintenance, you are locked into their product upgrade treadmill, you have little say in the direction of their products, you have a single source for support, and if your vendor gets acquired there is a very good chance the product you depend on will go away or change in ways that force you to abandon it with even more pain.  I’ve seen this play out from both sides of the table having spent time in both enterprise environments and working for software companies.

What I do: Practical Data Visualization

I’m often ask what it is I do for a living… and being lazy I usually just say ‘computer stuff’.   In an effort to provide a little more context to anyone who may be interested this is one in a series of postings where I’ll cover some aspect of what it is I do.

In my current role I spend part of the time doing development projects. (aka programming) I’m not a hard core developer though.. it’s not my full time occupation nor do I want it to be.  I work mostly with perl and php when necessary, mysql and occasionally PostgreSQL or Oracle all under various flavors of linux. (debian is my favorite). Usually these development tasks are related to some sort of management automation for a global VoIP network but sometimes they involve making complex things easier to understand.  Part of that involves automating the collection of large amounts of data and then presenting in a meaningful way so that problems and long term trends can be identified.  What follows are some examples of the sorts of things I mean.

What I do: Power DNS Real World Results

We have had a Power DNS recursing cacher deployed at one of our busiest sites for a few months now and I thought others might benefit from some real world performance info.  This is running on some older hardware.. dual Xenon 2.8Ghz system with 4G of ram and the only job it’s doing is running this recursor. These three graphs tell the tale.  The first shows that the system is handling peaks of about 3800 queries per second and that about 99% of those are being answered in a fraction of a millisecond.  The second shows that cache hits are averaging about 70-75% and the third shows that it’s doing this work while using at most one quarter of the CPU.  Add to those impressive performance levels that I’ve had zero issues since putting it in production six months ago.