Hosting your own calendar and contacts directory

Apparently there is a thing called ownCloud which lets you run, amongst other things, a calendar server and a contact directory, both of which will sync with your android phone and here is a writeup of doing just that. I’ve not tried it yet, but any option to prise the data away from Google and to something I own has to at least an option worth trying.

Twitter on Ubuntu – use Gwibber

Screenshot of Gwibber
Screenshot of Gwibber

Gwibber is a native desktop Twitter client for Ubuntu. It will post updates to and receive updates from Twitter as well as a host of other services like Flickr, Facebook, Digg, can update your Pidgin status and pull in any other RSS or Atom feed you like.

It will sit in your notification area waiting until you get some messages which it will display as pop-ups in the corner of your screen, and won’t steal focus whilst it does so (take that, twitterfox!).

It is unobtrusive, attractive and easy to use. Theme templates are just HTML and CSS. I recommend giving it a go.

In Jaunty Jackalope it is in the Universe repositories (so sudo apt-get install gwibber will work) but for everyone else you can either follow the instructions on this page (which means you will get future updates) or go direct to the Gwibber PPA page, expand the section with your distro listed and grab the .deb file.

Aggregating people

A number of different things have come together for me today, this post titled Is there a need for New Newsreader?, Zeldman’s post about distributed content and Kent brewster’s FOAFster which linked me off to all the things that MyBlogLog provides (a service I’ve never really looked at very closely).

FlickrFOAF

These have tied together with thoughts I’ve been having about wxVenus, and more generally about social-network-on-the-desktop type software for the past few years. It makes me think again about how I browse feeds, how I access them and when.

Since people started outsourcing their content stores to del.icio.us and Flickr, and using blogging systems to produce their content, they’ve all suddenly got feeds for this content, so should the method of navigation actually be by person, rather than blog title? Obviously this is how systems like FriendFeed work, but it doesn’t yet seem clear to me how this relationship between a person and their data is best expressed and how to best obviate much of the need to either boil the ocean (get everyone to sign up to friendfeed) or to automatically assign feeds to a person (acronyms like “RDF” and “FOAF” spring to mind but don’t seem to actually be useful in this example).

For my use-case it’s rare that I subscribe to a lot of content from a lot of people, rather I subscribe to most of the content my friends are producing, and a single source of content from some stranger on the internet whether it be their blog or Flickr photos. From where I sit, these are two fundamentally different ways of viewing data: person-centric and data-centric and I’m less and less convinced that it’s possible to model these two views in the same application, or at least expose data sources from the two views at the same time.

There seems to be a fundamental mismatch between the way we use aggregators (whether they be river of news, multi-pane windows or whatever) and the way we consume information from people we know. I have no idea what the resolution of this impedance is, but I’d really like someone to come up with a good solution sometime soon.

Setting up Trac on Debian Etch with Apache 1.3 (a brief guide)

This is a summary of what I got from the Trac installation instructions here, here, here and here. My life would have been easier if I was running Apache2, but for the site in question, I’m not.

The version numbers I am working with:

  • apache – 1.3.34-4.1
  • python – 2.4.4-2
  • libapache-mod-python 2:2.7.11-2
  • Trac 0.11b2

Install easy_install, followed by the Trac requirements:

$ easy_install Pygments
$ easy_install Genshi
$ easy_install Trac
$ easy_install sqlite
$ apt-get install libapache-mod-python
$ apt-get install python-pysqlite2
$ cd ~
$ mkdir trac/myprojectname
$ trac-admin trac/myprojectname initenv

(enter the details you need or just keep hitting to accept the defaults – it’s all configurable later)

Type the tracd line given to you at the end of the install and make sure it runs (probably need your IP at this point because it won’t bind to a hostname).

Add this inside your VirtualHost:

<Location /wherever/you/like>
  SetHandler python-program
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnv /absolute/path/trac/myprojectname
  PythonOption TracUriRoot /wherever/you/like
  PythonDebug On
</Location>

Patch /usr/lib/python2.4/site-packages/Trac-0.11b2-py2.4.egg/trac/web/modpython_frontend.py with code from http://trac.edgewall.org/wiki/TracModPython2.7 (yes, it’s all needed) – the “Known Issues” at the end of the code apply, most notably “There may be a character set issue” – for me this manifested itself in the <title> element of the page with a “–” separating my project name from the word “Trac” rather than a long hypen.