January 9, 2011 will

Spatial Bookmarking Service goes Open Source

Locidesktop was my coffee shop coding project of last year. I was quite pleased with the results. Locidesktop.com has been happily serving link desktops to some loyal visitors for months now – with no maintenance required on my part (a good thing because I've been busy with other projects).

Rather than let the project stagnate while I do other things, I have released it as open source with the hope that other Python/Django developers will pick it up and add new features. I had never really anticipated that anyone other than myself would see the code, so it is lacking in comments and documentations, but there are some nice features that may be of interest. For instance, there's a system to expose a REST API that factors out a lot of Python bioler-plate code and corresponding javascript code exposes the desktop functionality to the browser.

There's also a pretty powerful caching system that makes rendering a desktop blindingly fast. I may have gone overboard with that, given my traffic rates. But I guess it is best to have more capacity than you need.

If you want to look through the code or fork the project, it is available on Github:

Locidesktop code

The only thing missing from the open source version is a single-site theme I purchased from themeforest.net, used in a few pages such as the about & privacy urls. The desktops themselves are identical to the live site because I did those myself. You can tell because of the minimalist design reflecting my artistic abilities (minimal).

There's a README in the project that will help you get started, but other than that you may have to figure things out for yourself. It's a pretty standard Django project, although I do use Jinja templates rather than Django templates. If you have any questions, please ask them in the comments, so at least there is a central repository for issues.

For more information on Locidesktop, see my previous posts on the subject.

Update: I had to recreate the repos to remove a bunch of temp files and mercurial data. If you forked before 9am GMT, 10th Jan, you may want to get this new repos.

Use Markdown for formatting
*Italic* **Bold** `inline code` Links to [Google](http://www.google.com) > This is a quote > ```python import this ```
your comment will be previewed here
works well but when i access /new i get this err msg

DoesNotExist at /new/

IconCatalog matching query does not exist.
Will McGugam
Esam, did you run ‘sh runonce.sh’ ?
and i got this err msg
mv: cannot move `crystal_project' to `media/iconsets/crystal_project': No such file or directory

but setup cont
Will McGugan
Ah, checked in a fix to runonce.sh

Run that, or alternatively do ‘mkdir media/iconsets’ in the same dir…
but still there is an err msg tht appear
Will McGugan
You will also need PyFilesystem

sudo easy_install fs

There are probably some other dependencies I haven't yet documented.
all right ,, working great
coool web (seems like web 4 :D )..excellent work
While the project looks interesting, the git repo could probably do with recreation; 35MB, contains the complete history of a ~600 commit mercurial repository, littered with temp files. It definitely makes contribution a less inviting prospect .
Will McGugan
James, I didn't have a .gitignore in my initial commit. I've rebuilt the repos without the temp files.
I set up LociDesktop on my server and it runs great, thank you very much for this great app.

But I wonder how the favicons are generated. I assume the scripts in “/tools” are for that purpose, but before I spend a lot of time to find out what's going on I'm asking you to explain this if possible. Thanks.