Installing lxml on Leopard

I’m surely the last developer using Leopard, but Snow Leopard couldn’t compete with Ubuntu and Lion has more warts than the Wicked Witch of the West.

Anyway, you can’t just install lxml with pip (the preferred way of installing Python libraries) because lxml depends on a recent version of libxml2. If you try, gcc will stop when it encounters missing headers added in later versions of libxml2:

libxml/schematron.h: No such file or directory blah blah blah

Instead, use the fabulous Homebrew to install a newer version of libxml2 and then run pip with that version.

brew install libxml2
pip install lxml --install-option="--with-xml2-config=/usr/local/Cellar/libxml2/2.7.8/bin/xml2-config"

GNOME Zeitgeist is NOT a file manager

Disclaimer: Due to time constraints, I am not an active Zeitgeist developer right now. Seif Lotfy is the man.

Wikipedia has it wrong:

GNOME Zeitgeist is a file manager application for the GNOME desktop environment. Instead of providing direct access to the hierarchical file system like most file managers, GNOME Zeitgeist mainly classifies files according to metadata. This includes time and date of previous accesses, location of use (using GPS positioning), file type, tagging and more. In addition to local files, GNOME Zeitgeist also organizes web browsing history, email and other data sources.

What’s wrong? Zeitgeist is not a file manager. The GNOME Activity Journal can be used to replace a file manager and do file manager-like things, but Zeitgeist is more than that. Check the official Zeitgeist website for details.

If you are a Linux user, how do you use Zeitgeist?


Project management software, wikis, and other technical infrastructure for small startups

Crucial infrastructure for small projects

My latest project is a web application, which is currently in closed beta. I will blog about that more in the coming weeks, but today I’d like to discuss my project’s infrastructure. Infrastructure is one of those topics that you usually just learn about from the companies that you work with. I hope that the information here will be useful to individual developers and small startups. It is difficult to know what has to be done when you’ve never been part of a real-world development team before.

My project’s team is made up of three people. For a project of that size, there are three resources that I consider to be absolutely crucial:

  1. A project wiki – For storing project information like budgets, marketing plans, etc. The wiki should replace most emails between team members. The point of a wiki is to establish one place to look for the latest information, so that you don’t need to search through old email threads to find something.
  2. A project management site – For creating roadmaps, planning new features, reporting bugs, and assigning work to each team member. If you’re going to ignore everything else I write in this post then just setup a project management site. You wont be able to go back and live without it.
  3. A code repository (aka version control system) – For keeping track of changes to your codebase. Also useful for storing all of your source code in one central and backed-up location. (Yes, that explanation is slightly simplified, but using a version control system should be a given.)

Depending on the nature of your project, you may also need a build-bot or continuous integration server. I don’t have any experience in that area. However, I hear good things about  Jenkins (formerly Hudson)Chef, and Integrity. (Edit: As Tollef Fog Heen pointed out, Chef is a configuration management tool and not a CI server.)

… Continue Reading


Protect Your git Repository’s .htpasswd

Update 2: WebFaction fixed their installer. You still need to fix this yourself if the repository was created before Jan 13, 2011. (Details here.)

Update: Git repositories created with WebFaction’s git installer are insecure, even when they’re password protected. Some Apache installations are configured out-of-the-box to protect .htpasswd files. That is not the case with WebFaction.

If you’re running a .git repository on WebFaction that was created by following their documentation, then you must:

  1. Remove the file’s default world-readable permissions, by running chmod o-r .htpasswd
  2. OR: Prevent the file from being downloaded, by adding the following to .htaccess:
<files ~ "^\.ht">
 Order allow,deny
 Deny from all

Of course, the same applies to any .htpasswd file.

Pages ... 1 2