I'm interested in many different things technologically and I think some of the projects I'm starting to open source reflect that. In addition to moving simplestore's repo from google code to github, I released two new projects of mine that are very early-stage. One is HubDB, an experimental datastore written in C. The other is Obelisk, a 3D rendering engine I've been throwing together.
I started working on HubDB because I've been interested in creating a distributed datastore for my own projects. It uses libevent, berkeley db, and jansson for JSON parsing. It literally only supports get and put operations at the moment.
I started Obelisk because I've always been interested in doing game development. In fact, my first big project many years ago was writing a graphics engine. Obelisk is very alpha and I've been working on abstracting parts of it so porting to other systems is straightforward. For now it only works on Linux. It uses OpenGL with GLX.
I normally wouldn't release either of those two projects in their current states, but I'd rather work more out in the open. Putting these two projects on GitHub this early may also benefit other people looking to do something similar.
This post is a long time coming. I've been meaning to publicly release my Python web framework for months. There are lots of Python web frameworks already, but I think the whole point of WSGI was to make it easy for anyone to implement their own web framework. Blueberry is hosted on Google Code, GitHub, and PyPI. It's my first github project so I'm expecting to make a few mistakes committing and pushing, but that's how it goes when learning a new source control manager.
Here are some facts about Blueberry:
- It uses CherryPy's WSGI web server.
- It was inspired by web.py and Google AppEngine's web framework.
- I've been using it in production for months. This blog uses an old version of blueberry.
- It's database ORM agnostic.
- nginx is my preferred web server in front of blueberry, but it works with Apache and mod_python or mod_wsgi.
I still have a ton of work ahead of me to document blueberry, it just takes time. For now, what little information there is on blueberry can be found here on Google Code.
One of the things that's been keeping me up at night lately is this new project I've been researching and developing. SimpleStore is a way to store Python objects (in the future that will change to JSON objects) in sharded MySQL databases. The idea is that it lets developers scale their web applications, but honestly it hasn't been used on a site of any real scale yet since it's still very new.
SimpleStore is cool as a beta project for using with your own database servers. What would be even better is to take the ideas from SimpleStore and create a service that web developers can use for remote database storage. This is what's been really keeping me up at night. I've been doing research on distributed database systems and I think with my experience from writing SimpleStore I will be able to develop something pretty neat.
I won't turn SimpleStore into a cloud-based service, but the ideas from SimpleStore will help me create a truly distributed database system. If this service turns into something I can put online, I hope it creates another option for web developers looking for easy-to-use cloud database systems.
Also, I updated SimpleStore to version 0.3. That update adds MySQL sharding support. You can grab it here: simplestore-0.3.tar.gz
I've been wanting to write this entry for a long time now. Since I recently put simplestore on Google Code I feel that it's finally time to write my thoughts about storing schema-less data. I wrote simplestore because I was fascinated by Bret Taylor's blog entry How FriendFeed uses MySQL to store schema-less data. My blog actually uses a predecessor to simplestore and it's worked out pretty well so far.
Here are a couple pages of documentation that demonstrate some of what simplestore is capable of. There's even a page on using simplestore with Pylons. To get a better look at simplestore's functionality I highly recommend reading (and running) the unit tests and reading over the actual source code. The latest official release can be downloaded here: simplestore-0.2.1.tar.gz
SimpleStore is still very new and there is still a lot of work to be done on it. Please email me at david@alwaysmovefast.com with any questions or requests of features/docs/tests you'd like to see regarding simplestore.
I started using suds recently and I have to say that it's exactly what I was looking for. It really opened my eyes to how I should've been consuming SOAP web services all along.
I needed a lightweight SOAP client for a project I'm working on, so I started off implementing my own. About 500 lines of code later after implementing a partial solution, I completely felt like what I was doing was just plain wrong. I did a quick google search and came across suds. I took a 500-line partial implementation and trimmed it down to just 40 lines using suds.
I still have a lot more work to do before my solution is complete, but I'm definitely sold on suds.