A while ago I decided that it’d be worth ensuring that my PhD work was backed up on something other than my work computer. This ended up involving copying my work to my folder on a network drive, a Dropbox account and a portable hard drive, none of which were automated. I could have automated my use of Dropbox by working in my Dropbox folder, but that would be an awful lot of writing files over the internet whenever my LaTeXed papers were changed, whenever I saved an R data frame, etc.
I eventually settled on git. While it’s not automated, it relies on committing changes rather than copying files. I find this a much more intuitive way of backing up code. When it’s worth keeping, commit it and push the changes. I’d previously worked with SVN in undergrad and so git wasn’t a huge jump, and I really love the idea of version control as part of a backup strategy, because you will break your code. Probably the best part of using git is the github website, where people can list open projects that you can fork and develop (like pyMCMC, a python module for Bayesian inference, except this hasn’t been pushed publicly in about a year and I know they’re still working on it).
I use git for two reasons
- backing up and controlling versions of all the R, MATLAB and LaTeX files that are part of my PhD work
- collaborating on a project with someone who lives in Finland (MATLAB and LaTeX again)
So all my work is backed up online and I can share a project with my collaborator without fiddling around with permissions on my PhD project.
I’m considering paying for the next level of account so that I can make a git project for each paper that I’m working on. If I go down this route, I would consider making such a project public once I have published the paper(s) that come out of that code. I really like the idea of social coding and think it would be a fascinating tool within a university context. I don’t know how much QUT does it at the moment, but if there was an internal github-type server where QUT researchers/students could host their code it would reduce the amount of code going back and forth over email. and make it much easier to bring people on to code-based projects. I have a feeling the Computer Science and Information Systems could well be using something like this (perhaps on a smaller scale and not for facilitating collaboration) but I think the mathematics, statistics and physics (they do computer simulations) academics could make use of these sorts of tools to increase the research capacity of the university.