James Scott-Brown home about projects

My Setup

I use three computers - an iMac, a MacBook pro, and a DigitalOcean VPS. The iMac is connected to an external monitor in portrait orientation (as is the MacBook, when on my desk at work) - the marketing term for monitors that can switch between portrait and landscape is pivot, not rotate.

Folders that I use frequently are kept in sync between the iMac and MacBook using unison.

Papers are stored in I, Librarian. This is installed on both my MacBook and VPS, but papers are only ever imported into the installation on the VPS: if I can’t access this, it’s because I don’t have an Internet connection, so can’t download any new papers anyway. The library subfolder on the VPS is frequently backed up to my MacBook using rsync, so I can still read papers and annotations when offline.

I use FastMail for email (and contacts, and calendars), and back this up locally with OfflineIMAP. Given DuckDuckGo and OpenStreetMap, I am largely independent of Google’s services: some reasons why this is a Good Thing are given by Scott Lowe and Marco Arment.

RSS feeds are read using Miniflux on the VPS. Miniflux is Good Enough: it can import OPML, doesn’t need MySQL/postgres (it uses SQLite), has a reasonable interface that works on mobile devices as well as desktops, and can send links to pinboard or instapaper but has no social media integration. There seem to be a lot of feed readers available, and so there may well be an alternative that is ‘better’, but looking for the optimum rather than just satisfying seemed like a waste of time.

I keep notes in NValt. A script commits changes to a .git repository, which are then pushed to a remote on the VPS. This gives version control over my notes, as well as sync (which is done over SSH, whereas simplenote sync is done in plain text). A second script extracts structrued information, and constructs HTML tables indexing the recipes, books, and talks I’ve made notes on.

I use homebrew and homebrew cask as package managers: they’ve been used to install several of the programs I’ve mentioned, as well as several useful unix ffmpeg, imagemagick, graphviz, the_silver_searcher, and youtube-dl (particularly useful in letting me download long videos so I can play them back at 1.5-2x speed in VLC). I also use several Mac-specific utilities: QuickSilver, flux, caffeine, DoublePane, iTerm2, and jitouch.

Many of my documents are written as markdown, then converted to PDF via LaTeX using pandoc. This has all the advantages of LaTeX, whilst having source files that are clearer to read and faster to type. If I want to do something like include a listing of source code from another file, I use MarkdownPP.

My blog is also written in markdown, using the static site generator with Jekyll. The resulting HTML is then scp‘d to the VPS.

Most things are thus stored on more than one of my three machines, giving some redundancy against failure or loss of any one of them. Assuming it has jsut been synced, the contents of my MacBook are a strict subset of the contents of my iMac. My iMac is backed up to an external HDD (using Time Machine), which is stored off-site.


I have been a user of Mekentosj’s Papers since the initial Public Preview in 2007. However, reviews on blogs suggested some problems with Papers 3. Most annoyingly, syncing between two computers (eg. desktop and laptop) could only be done though Dropbox - and my papers library was larger than the 2GB limit of Dropbox’s free plan.

Things may have improved since, but this was enough for me to look for alternative options rather than upgrading. By now, several of the most popular programs are owned by huge publishing conglomerates:

In addition to this, there’s EndNote (non-free, clunky), Zotero (a browser extension, then converted into a Standalone application using XULRunner), and various competitors.

In the end I opted for I, Librarian, which runs in the browser. It is available as a hosted service, or can be hosted yourself (PHP, backed by a sqlite database, so no need to install MySQL or Postgres).

Because it runs in the browser, if I am reading/annotating several PDFs at once, I can organize them into multiple windows, not just tabs.

It’s open-source and, importantly, implemented in a language (PHP) with which I am familiar. In principle, this means it should continue being useful to me even if it were abandoned by its developer; in practice it’s allowed me to make a few small tweaks.

I was able to write a python script to export my library from Papers to i-Librarian (both store libraries as directories of PDFs, with metadata stored in SQLite). This is rather rough, but can share it if it would be useful to others.

  1. Macmillan have invested in Labtiva via DigitalScience, but I don’t know the extent of this investment. 

blog comments powered by Disqus