« The ClubNu and apache »

Introducing Downloads

There’s always been a particular problem in providing file downloads that I always found a bit cumbersome. Many developers release files with the version number in the download url (for example, Transmit’s download link). However, this means that a user that follows that link for Transmit will always get version 3.6.4 or worse, a file not found if the file was removed. There isn’t a link that will always point to the most recent version. I made the tradeoff and didn’t put version numbers in my releases. The Share download link will always point to the latest version of Share.

This introduces a second problem, though. You may notice that my download link includes a PHP script. I wrote the PHP script quickly when I first moved to fromconcentratesoftware.com to keep track of download statistics. Whenever someone downloads using the download.php link, it increases the download count by 1. This is provides a good general idea of how an app is doing during its lifetime but it’s a bit of a brute method. Since my files don’t have version numbers, I don’t have statistics for each version released. Also, I don’t have an archive of past releases. Those are especially useful when a new version of OS X is released and users upgrade and find out that some things don’t work the same as they were expecting.

All of that simply explains why I want these things when providing downloads. If you skipped the above two paragraphs, you can start with this list. I want FCS’s download system to:

With that said, I’ve resolved to find a solution to this problem. I honestly never searched the internet for a solution (although I probably should). I just sat down one evening with TextMate and started typing. At the end of the day, I had a servicable download manager. It isn’t pretty, but it works (I think).

Downloads is written in Python so it’s not suitable for widespread distribution (as opposed to, say, it being written in PHP). I don’t care. I like Python. If anyone wants to start the work for doing this in PHP, I’ll switch over when it gets good enough.

I’ve decided to release the download manager really early (now) and, as is right, I’m eating my own dogfood. You can actually download the first release of Downloads (v 0.1) using Downloads. I’ll eventually get around to writing up a web page for it but it’s very early in its life so I’m not ready to start promoting it. If you want to install and try out Downloads, you’ll need to edit the dbconfig.py file to include your mysql database settings and settings.py for your administrative password. Then you’ll need to run install.py. That’s all the documentation you’re getting for now, sorry.

You can always download the latest version of Downloads at:

Or get version 0.1 at:

Leave a Reply