My name is Gustavo Niemeyer, and this is my personal laboratory. Here you'll find pointers to projects I have worked on and more.
If you see something interesting here, please bear in mind that I was part of the Conectiva team from early 2000 up to August of 2005, and I'm part of the Canonical team since September of 2005, so these projects are directly or indirectly sponsored by one of these companies, or even both of them in succession. Also note that a single bird makes no summer.
I hope you have a nice time here, and please let me know if you need anything.
Here are some of the things I've been involved in over the last several years:
Multi-machine remote management platform for Ubuntu.
Rich MongoDB driver for the Go language.
- Storm Object-Relational Mapper
Nice integration layer between Python objects and relational databases.
Algorithm and web service to encode latitude/longitude pairs in a compact form.
Rich testing library for the Go language.
Go package for communicating with the Amazon Web Services.
Vector clock support for the Go language.
ZooKeeper interface for the Go language.
Memory mapping package for the Go language.
YAML support for the Go language.
Dead-simple S3 uploading tool.
Bazaar VCS wrapper for supporting co-located branches.
Interesting extensions to the standard Python date/time support.
Xpresser GUI automation library for Python based on image matching.
Graceful platform for test doubles in Python (mocks, stubs, fakes, and dummies).
Python module to handle Constraint Solving Problems.
- Lunatic Python
Two-way interpreter bridge between Python and Lua.
- The Calc Macro
Spreadsheet-like features for the Moin wiki software.
Multi-language REPL-replacement tool using edit+write+run interface.
- Permutations and Derangements
Nice algorithms for computing permutations, derangements, and variants.
Program for editing moin pages with standard editors.
Python bindings for xchat, now part of xchat 2.0+ itself.
Python bindings for the bz2 compression library, now part of Python itself.
Module offering complete support for one-time passwords.
Algorithm to pretty-print binary floating-point numbers.
Patch for GPSBabel adding support for GTM binary files, now part of GPSBabel itself.
- Smart Package Manager
Multi-system package management tool with unusual algorithms.
Port of APT to the RPM package manager, created at Conectiva (now Mandriva).
Graphical user interface for the APT package manager, created at Conectiva (now Mandriva).
These are things I've also been involved but for one reason or another they haven't been getting much love:
Tool to convert Subversion repositories into Bazaar 2 repositories.
Plugin to turn parts of any normal moin page in RSS feeds.
Tool to rename files with the help of regular expressions.
Tool to manage multiple configurations on a single machine.
Full featured bot for information management in IRC channels.
Extensible mail-based request handling infrastructure.
Tool to control a set of changes to a source tree against a pristine version.
Comprehensive python interface for the mcrypt library.
Python interface for the mhash library.
Simple C library for handling the services registry.