Since starting at university, I’ve been using the ‘Zotero‘ extension for Firefox, to add in-text citations to essays I write. This is one of the most powerful extensions I have found for Firefox, making referencing sources very simple.
However, there is room for improvement to fit my way of working. I value having control over as much of what I do as I can, particularly online, for that reason I run my own email, blog and backup server. Zotero has two server components, one of which stores electronic copies of references. It also uses a central server to coordinate the data stored in a citation database, allowing access from multiple computers. Both of these services can be hosted by the Center for History and New Media at George Mason University, the group behind Zotero. And a fine job they do of this, I used their services for several months while I was learning to run a server and how to use WebDAV. However, as with any online service, doing so leaves one in the hands of a third party, with a variety of undesired outcomes possible. Data breach? Request from the FBI for user data? Technical problems causing loss of service? All these and more can cause problems, and render the user beholden to those who run the service.
As the technology to run a WebDAV server is mature and predictable, the Zotero team are willing to advertise the possibilities for a user to do so, easily allowing a user to enter their server details into the preferences for Zotero. It seems they are not so keen to do so for the sync server however. Various reasons are cited, including a seemingly Apple-inspired ‘guaranteeing a good user experience’. There’s some merit in this, although I disagree with it. Fortunately, they are more prepared than Apple to let users go their own way if they want to, as the source code for the server and the extension are available under the GPL, allowing us to roll our own versions.
So, here’s Domino, my updated version of the Zotero extension, with changes which allow you to set your own sync server from the preferences dialogue. The sync server is released here. If you are going to use this, be careful: Zotero uses its own protocol, and it is not documented or looked over by a third-party such as the World Wide Web consortium, which looks after other standards such as HTML and HTTP. As such, there are chances for things to go wrong. At the worst, you could lose or corrupt your citation database. The Zotero team are working on the server code also and I aim to join in soon, at some point it’ll be released as a deb package.
Zotero will not merge my changes to the extension into their mainline release, so I’ll be merging the changes between each of their new releases and my fork, a few days after they release a new version.
If you’d like to contribute, my version of the code is on github here.
For more progress on Domino, check this page.