various musings and babblings.

Python-rwhoisd

Back in 2003, as an exercise to help me learn
Python, I wrote
python-rwhoisd. Why an
RWhois server? I had been the main developer
and sole maintainer of
the C reference version
since 1996, and I had been thinking about writing a replacement in a
nicer language ever since. So I pretty familiar with the protocol and
problem space, and it was complicated enough to be able to sink your
teeth into it, yet not so hard that you couldn’t do it fairly
quickly. Basically, a great learning project.

Back then, I wanted this project to be unquestionably mine. I was
paranoid enough to believe that if I used any of my employer’s
equipment, network access, or time that my employer might claim
ownership. Why they would want to is anyone’s guess.

So I was very careful to only work on python-rwhoisd at home, on my
own time, on my own equipment. The initial version took me two weeks
of nights and weekends. Hm. That makes it sound like I was furiously
coding into the wee hours. I was actually only spending a few hours
each day on it.

Python was a joy to use. My day job was in Java (and Perl) and it felt
extremely liberating to be able to write so much code with so little
typing. My favorite part was discovering that as I learned more about
Python, my code kept getting smaller without getting less readable.
Amazing!

Even though I had basically just written python-rwhoisd to learn a new
programming language, I was planning on releasing it. I didn’t think
that many folks would want it. RWhois wasn’t (and still isn’t) a
popular protocol. But some of my colleagues were evangelizing
IRIS at the time, and
urged me to not release. They thought that it would muddy the waters,
so to speak. So I didn’t release it, and then I basically forgot about
it.

Fast forward five years. Just two weeks ago I suddenly wanted to learn
how to use Git. I played around with tutorial-like
git repositories, but it wasn’t enough. I needed something real to
work on. I was casting about for a project that I could use, and I ran
across python-rwhoisd, mouldering in a local CVS repository.

I had things that I thought should be improved about python-rwhoisd
before attempting to release it again. The main thing was to add IPv6
indexing support, which I had done for the C version several years
before. While this wasn’t a perfect project for learning Git in all of
its glory (for that, I would need collaborators to merge with), it was
good enough. Several days later, I’d added the IPv6 indexing and
search support, and it was time to
release it.

While I don’t expect there to be any major outpouring of interest over
python-rwhoisd, it still should be easier to run than the C version
(at least, for small datasets), and it should be possible to get it
working on Windows without too much effort.