[ home | blog home | recent activity ]
A few months ago, I "took over" maintenance of elasticutils. We use it in SUMO as the API for building search queries with elasticsearch.
One of the first things I did was spend some time figuring out whether we should keep working on elasticutils at all. django-haystack also provides a django-ish API for working with elasticsearch. Why have two libraries that at a high level do the same thing?
The thing is that they're not exactly the same. django-haystack is really great and supports a variety of backends for search, elasticsearch being one of them. Right now, it only has support for elasticsearch in 2.0 which is in either an alpha or beta state now (their web-site could use some updates). However, because it supports a bunch of backends, it only supports functionality that works across all of them.
elasticutils, on the other hand, is elasticsearch-specific. As elasticsearch adds functionality, we can, too. That's the compelling reason to keep working on this library. However, django-haystack has some awesome ideas that we'd like to implement in elasticutils, too. This will fix some sharp edges in elasticutils, but also make it much easier for projects to switch from one to the other.
Currently, elasticutils only handles the query side of things. django-haystack handles that, but also has an API for defining mappings, indexing, and all the other things you need with a search system.
Thus, Rob Hudson and I are going to embrace and extend elasticutils to:
One of the things users of a library need is for the library to be a mature project with releases, tagged version, documentation, tests, stability, reliability, reproduceability, communication, community and all that. Thus, I'm also going to spend some time to turn this into a real project. Towards that end, I created #elasticutils on irc.mozilla.org where we'll talk dirty elasticutils stuff. If we end up with more people pitching in, we'll create a mailing list. But for now, IRC will do.
My next step is to spend a little time cleaning up what's in the master branch, then tag and release a baseline version.
After that, I'm going to spend time identifying, thinking about and merging in the divergent functionality in the various branches while Rob works on continuing his imperative mapping work.
I think in a couple of months, we'll be in a better place and that'll make it easier for Mozilla projects and anyone else who wants to use elasticutils to use and contribute to it.
If you're a user of elasticutils, please come hang out with us! Let us know how we can better help you.
I'm at the webdev work week in Santa Cruz, CA, USA this week. It's great to meet people I've been talking to for the last 6 months. It's also kind of nice to take a break from the SUMO sprints. I've been spending the time lifting my head and seeing what's been happening while I wasn't paying attention.
List of three things on my mind:
Things I'm taking away (so far):
I haven't had time to blog much in the last few months. At work, I've been spending all my time with elasticsearch, elasticutils, and SUMO bug fixing. I've been working on the conversion from Sphinx search to elasticsearch for SUMO since I started at Mozilla, but I've only recently felt like I'm really getting the hang of it. There are a bunch of elasticutils-related things I want to blog about, but those will come in fugure entries.
In my spare time, I've been working on richard. This project has nothing to do with Richard of air mozilla fame, but rather is a video indexing web application. It's the software that runs pyvideo.org.
pyvideo.org has the distinction of being the first Django application I've built from the ground up. That distinction is both a virtue (yay for first apps!) and a vice (boo for silly things I did when doing it!).
The one thing I did that I'm really proud of is that when building the software, I knew I needed help if it was to succeed and thus I worked to make it easy and inviting for contributors to get involved:
The end result of that is that there are 4 contributors to richard including myself and one of them is very active.
Asheesh did a talk at LibrePlanet 2012 that mentioned Mako's power law of contributions to open source projects. The gist of it is that most open source projects only ever have one contributor. [3]
Well, I've got 5 on my video index web application software that I "launched" a month ago. I'm feeling good about that.
| [1] | Several of my friends point out that GitHub kind of takes the D out of DVCS. |
| [2] | Though didn't have any tests when I "launched". |
| [3] | I may fix this paragraph after Asheesh corrects me. |
Tim threw together a vagrant setup for Kitsune based on what Alex did in November. I went to give it a try but I'm using vagrant 0.8.10 and it died.
Important part of the error message was:
/var/lib/gems/1.8/gems/net-ssh-2.1.4/lib/net/ssh/key_factory.rb:38:in `read': Permission denied - /var/lib/gems/1.8/gems/vagrant-0.8.10/keys/vagrant (Errno::EACCES)
Issue is documented at https://github.com/mitchellh/vagrant/issues/235.
My fix was to do this:
saturn /var/lib/gems/1.8/gems/vagrant-0.8.10/keys> ls -al total 24 drwxr-xr-x 2 root root 4096 Jan 11 20:00 . drwxr-xr-x 10 root root 4096 Jan 11 20:00 .. -rw-r--r-- 1 root root 821 Jan 11 20:00 README.md -rw------- 1 root root 1675 Jan 11 20:00 vagrant -rw-r--r-- 1 root root 1464 Jan 11 20:00 vagrant.ppk -rw-r--r-- 1 root root 409 Jan 11 20:00 vagrant.pub saturn /var/lib/gems/1.8/gems/vagrant-0.8.10/keys> sudo chmod 644 vagrant saturn /var/lib/gems/1.8/gems/vagrant-0.8.10/keys>
That fixed it for me. Figured I'd document it so that I could find it again when I bumped into it again.
"i've been at #mozilla for two weeks now. i miss !miro, but i really like the new job."
[ alternate | ostatus:conversation | ostatus:attention | mentioned | self | edit ]
pyblosxom::1.5-dev git-master
Copyright 1996 to 2012, Will Guaraldi Kahn-Greene, under the Creative Commons BY-SA 3.0 license

Will's Blog by William Kahn-Greene is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.