Geeky Stuff

Clearwire In Seattle + Easy Google Mapping

I’m living in a part of town that has no good option for broadband internet. That’s very annoying as in some parts of town you can get verizon fios.. and in most of the rest you can get Comcast which isn’t terrible. Where I am your big choice is a company called Broadstripe.. which is so bad even the employees blog about it. So with that I decided to try Clearwire.. the Wimax broadband provider.

Keep FreeNAS From Crashing Tweaks

I found these settings on another site.. reposting here for my future reference and to double the possibility of someone else not having to spend hours trying to figure this out. My install of FreeNAS kept hanging under even moderate write loads… rendering it unusable until I applied these memory tweaks. I don’t know nearly as much about BSD internals as I do linux. You can apply these through the web GUI under System->Tunables.

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…

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.

OSX Mail App Using Tons of Memory and CPU?

![](http://farm1.static.flickr.com/30/44074632_687cc920b9.jpg =320x)

I’ve been using a mac for a while now and I recently decided to dump Entourage and go to using the native Mail.app.  I noticed a problem though.. within minutes of starting up it would consume several hundred megs of ram and have frequent CPU spikes of 80 to 100%.  If Mail was left open, memory usage would climb above 2 gig with continued CPU spikes.  After much digging I finally found the problem and fixed it.

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.

What I do: Voice Integration With Nagios and Asterisk

I was called on to provide a method of alerting from within nagios that was more active and direct than the usual use of email or SMS messages.  So I came up with a simple way to have a nagios notification place a phone call to our off hours tier3 support line to report certain very rare but serious problems.

Sketchy Things From China: "Apple" Power Supply

As part of a new project I needed a power connector for a macbook. Not wanting to shell out $65 for an official power supply just for the connector I picked one up from ebay for about $20. On first glance this looks like an apple power supply.. but something just seemed off about it.

Dynamic Rack Face Diagrams With PHP and GD

Anyone who has to manage servers and other equipment in remote datacenters can appreciate the need for good documentation.  One reason you appreciate good documentation so much is because it’s so rare. People are lazy and forgetful and when changes are made by lots of different people in lots of different locations it’s easy for reference docs to get out of date and unreliable. So from those two concepts was born a need to create dynamic rack face diagrams and end the dependance on the manual task of updating and distributing static visio diagrams. Attached are templates for most common rack sizes and example php code on how to make it work.

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.