Rock on, I'm an open source contributor!

A while back (October 2008), I was working on a high-performance search indexing app at a previous job. We were originally going to write it in C/C++ (which was the smart thing for that particular project), but were pressured to do it MUCH faster than the original (incomplete and poorly-written) scope called for, so we jumped to Python.

It was my first actual Python project, so I ended up giving myself a VERY fast education on the basics of the language and jumping immediately into more advanced stuff — including modifying C extensions to Python to handle different types than they were designed for.

Specifically, the Berkeley DB bindings did not support multiple keys being associated with individual entries, which did not bode well for indexing, say, articles with multiple keywords. It took one string as an optional index. Berkeley is a very low-level data store; we chose it because it was (and probably still is) the most blazingly, ridiculously fast storage engine out there that also handles concurrent connections well.

Anyway… I patched it to take either a single string (as it already did) or a list of strings (which the C bindings supported but the Python layer didn’t yet).

For a long time I didn’t think the changes had made it in, but upon closer inspection, they did:

Release page for bsddb3

Search the page for “Kung Phu,” which is how I’m credited. I’m pretty satisfied!

Comment

Commenting is closed for this article.

Trials and Tribulations

You've made your way to a brief record of the odd and intriguing events which constitute the development of my pet project, The Great Two-Dimensional Online RPG.

Tags

architecture, c++, client, crafting, ec2, git, graphics, ipc, leveling, maps, menus, movement, multiprocessing, processing, pydoc, pygame, python, queue, rendering, scaling, server, skills, stack, synchronization, textpattern


RSS Feeds

Search This Site