James Brotchie

Finance;
Software;
Open Source.

My grad school "software stack"

James Brotchie

CrashPlan and github for versioning and backup

I cannot stress how important this is over and above all the other software you use in your research. The other software you use means nothing as long as a mistake by you, or a hardware failure, can destroy years of work.

CrashPlan is setup to backup my home directory, so I never worry about loosing things. Because the university internet connection is so fast I don't have to worry about upload bandwidth.

I have a phd repository in which I commit ALL my notes, papers in progress, source code, etc. I'll commit and push this to a private github repo every day. This means I have a full, versioned, backup of all my work.

Having these backup plans in place has saved my ass TWICE. I've had the SSD on my old laptop die twice and lost only a minimal amount of work because of CrashPlan and git.

Mendeley for reference management

Watches ~/Downloads/bibtex for new .pdfs so that every paper I download is added to my reference library.

Automatically outputs my references as .bib BibTeX files to ~/Documents/bibtex.

Renames and writes all my references as .pdfs to ~/Documents/Papers which I sync to Dropbox.

GoodReader on iPad for reading papers

GoodReader syncs with my Dropbox Papers folder so that my iPad documents are always in sync with Mendeley.

When I annotate papers with highlights and notes I follow a colour scheme: Yellow for interesting aspects of the paper, Green for references I should follow up on, Blue for good ideas that may warrant further research.

Vim and LaTeX for writing papers

If you're compiling LaTeX documents by hand then have a look at rubber which lets you compile, bibtex, and pdf in a single command rubber -d paper.tex.

Vim is setup so that if I press mm then it compiles the currently open document into a .pdf and if I type mv is compiles AND opens the resulting document in Evince.

I've created a LaTeX package phd then includes all the packages I usually use so that a fresh LaTeX article is only four lines of boilerplate.

Google Tasks and Evernote for random note taking

For bigger notes I'll just create a new LaTeX document and commit it to my git repo.

For really small reminders when I think of something relevant to my research I'll create a Google task. When I come to review this little snippets I'll enter them as more permanents notes in Evernote.