Unsung Heroes: Steve Atkins

Continuing my Building a Better community series, I contacted Steve Atkins. There was an interesting twist to this particular Unsung Hero. I initially contacted lluad on #postgresql (irc.freenode.net) due to his continuous and untiring efforts to help people on channel. What I didn't know is that Steve Atkins is actually lluad. Read on for some interesting bits.

How do you use PostgreSQL?

I use PostgreSQL almost any time I need to store or process structured data.

Our main software product - Abacus, a ticketing system for large ISPs and ESPs - is entirely PostgreSQL based. We briefly tried to support a couple of other databases as well but gave up on that partly due to lacking functionality but mostly because the companies and communities backing them weren't easy to work with.

It's also the core of a set of perl tools for internet forensics. Data such as IP addresses, hostnames and timestamps from investigators or responses to subpoenas is imported into PostgreSQL, we run tools to annotate it with information from other sources (DNS, domain registration data, routing data) and use that to cluster it. Then it spits out reports and data for subpoenas.

Oh, and I use it as the backend for several websites. Even the websites that don't look as though they need a database.

Why do you participate in the PostgreSQL community?

Partly for purely selfish reasons. IRC and the mailing lists are a great place to pick up pointers to new features or good ways of solving a problem. And it's a good place to sanity-check approaches an issue, or to get pointed in the right direction when you have a vague question and don't know what the right keywords are to search for previous research on it.

And partly to help others out when they're stuck on something or need advice from someone with experience doing what they're trying to do, or just need someone who's interested to bounce some ideas off. One of the biggest value-adds of PostgreSQL is it's community, and that community needs to be tended to and supported (and, very occasionally, policed) to stay healthy.

What was your first version of PostgreSQL in production?

I was developing against 7.1, but we first shipped with 7.2.

What is the *one* thing you wish the PostgreSQL community did better?

I only get one?

Lowering the barrier to entry. Our reference documentation is excellent, but our tutorials aren't particularly relevant to a user who's installed PostgreSQL from a package and needs to get to their first SELECT. pg_hba.conf in particular is powerful, but fairly inscrutable to a new user who just wants to log in to their new database. And then there's the "how do I use postgresql from $LANGUAGE".

We're pretty helpful one-on-one on IRC and the mailing lists, but our training collateral is rather lacking and very dated.

What is the thing you do, that isn’t PostgreSQL?

I do email. Some of the most important online communities are email-based, and even many of those that aren't rely on email to work well - so keeping email a healthy communications channel is important.

I spend quite a lot of time working with other experts on how to make email better - standards development, best practices, training and tooling. It's a great community, and I've made a lot of friends there. And I met my wife on a mailing list discussing spam and email ...

What is your favorite hack to make your PostgreSQL installation solve that unsolved problem?

It's not really a hack so much as a useful feature that a lot of people don't know about: pg_trgm.

From the docs you'd think it was mostly for measuring similarity between strings, but it's killer feature is nothing to do with that. It lets you create indexes on text fields that'll transparently be used for LIKE and regular expression queries, making them very fast even on big datasets. It's great for suggest-as-you-type, or you could build a replacement for google code search in just a few lines of code.

Opinions are my own,
Joshua D. Drake
Founder and Director