I read this post on Joey Hess’ blog which expresses a thought I’ve been having: one shouldn’t rely on version control for backups in the disaster-recovery sense of backups, but just for history and synchronisation between machines. The reason for this is that while I do have some automatic checking-in, use of version control means that large chunks of important stuff is not safe until you check it in and you won’t do this regularly enough: it’s too annoying. And of course there is all the stuff that is (sensibly) not in git or git-annex, such as my ~/tmp/ which is actually my desktop. A backup of that would save my mental energy consumed by remembering to check stuff in.

Obnam has many feature conducive to this. There is even a continuous backup feature on the roadmap, though you don’t really need this, just run every 20 minutes in a cronjob, with the main exclusion being /home/swhitton/var/.git/annex/objects which git-annex can deal with. What makes it shine for my purposes is the multi-client de-duplication: it can avoid storing two copies of identical files that exist on both my laptop and desktop. But at the moment it’s just too slow for the transatlantic backups I need to use (only off-site location I have enough disc space) due to the way it iterates through SFTP commands. The author says that he’s going to work on this once he’s fixed outstanding bugs.

I dream of the day when stable, suffiently-featured versions of Emacs 24, git, git-annex, Org-mode, vcsh, mr and obnam are available in Debian Stable for all architectures and in Raspbian, and this version of Debian Stable is ubiquitous enough that you can get your friendly sysadmin to apt-get them for you and you have it all everywhere.

Posted Sat 05 Jan 2013 17:32:00 UTC Tags:

I just realised that it’s been two years to the day since I switched from Vim to Emacs (or at least, two years since I blogged about doing so). I’ve gone through an appropriate journey: wiring the keybindings deep into my brain, learning to touch-type properly, too, adding loads and loads of junk to my .emacs.d and then eventually, a few months ago, slimming down to the stuff I actually use. The one thing I still don’t really do is use incremental search to shoot around.

Taking a moment here to appreciate just how much Emacs improves my life, even though it’s mostly in the background now as I’m just so used to it.

Posted Sat 05 Jan 2013 20:48:00 UTC Tags:

I just installed redshift; this is so comfortable, and so much better than constantly fiddling my screen brightness up and down (which only worked on my laptop, anyway).

Posted Sat 05 Jan 2013 23:39:00 UTC Tags:

Debian Code Search

Debian Code Search (DCS) is a search engine for source code — it searches all the open source projects which are included in the Debian archive (the “main” distribution only, not non-free or contrib). Currently, that includes about 18000 packages with 140 GiB of source code.

Posted Tue 15 Jan 2013 12:10:00 UTC Tags:

I am really pleased that I’m not going to be cut off from JSTOR at the end of this year, as it turns out I won’t be. The situation with online journals, and in fact journals in general, is such a mess, especially in the humanities.

Posted Tue 15 Jan 2013 12:38:00 UTC Tags:

Two separate thoughts and a synthesis that I got from a mindfulness class this evening. continue reading this entry

Posted Mon 21 Jan 2013 22:34:00 UTC Tags:
#+LaTeX_HEADER: \RequirePackage{lineno} \def\linenumberfont{\normalfont\small\tt}

then at the beginning of the document’s text

\setrunninglinenumbers \modulolinenumbers[10] \linenumbers A classic ...
Posted Thu 24 Jan 2013 09:24:00 UTC Tags:

”You see this goblet?” asks Achaan Chaa, the Thai meditation master.

”For me this glass is already broken. I enjoy it; I drink out of it. It holds my water admirably, sometimes even reflecting the sun in beautiful patterns. If I should tap it, it has a lovely ring to it. But when I put this glass on the shelf and the wind knocks it over or my elbow brushes it off the table and it falls to the ground and shatters, I say, ‘Of course.’

When I understand that the glass is already broken, every moment with it is precious.”

Posted Sun 27 Jan 2013 11:49:00 UTC Tags:

Here’s a blog post I just read, plus the things linked from it, about undergraduates wanting to go into academic philosophy, such as me. I’m currently working on the assumption that this is what I am going to do: hopefully go away to Korea to teach English for a year, and emerge from that ready to face graduate study. What this also does is give me a year outside of the academic world to become more sure, or otherwise, that this is what I want to do. So I don’t have to make any decisions now, since only the next year is relevant for the moment. Even so, having read the things I’ve just read, I want to review my reasons for wanting to pursue academic philosophy and the alternatives to this I have in mind. This is all in the context of careers-pressure from friends applying for and obtaining jobs, and what a young Oxford graduate is expected to do etc.

continue reading this entry

Posted Sun 27 Jan 2013 19:58:00 UTC Tags:
This page was originally a static page on my website. I have incorporated it into my blog, entry dated the last time the page was edited, as a more appropriate place to archive old things like this. tgwnet as described no longer exists.

tgwnet is a peer-to-peer VPN based on the excellent tincd.

Tier 1 nodes

Hostname Owner External DNS Avahi DNS Internal IP ConnectTo IP pool
hestia Sean hestia.silentflame.com hestia.local 172.19.43.122 None yet 172.19.43.0
raspbmc John johnlees.myvnc.com raspbmc.local 172.19.44.1 hestia 172.19.44.0

Tier 2 nodes

(may not always be up-to-date)

Hostname Owner External DNS Avahi DNS Internal IP ConnectTo
artemis Sean N/A artemis.local 172.19.43.111 hestia, asteria
zephyr Sean N/A zephyr.local 172.19.43.112 hestia
asteria Sean asteria.silentflame.com asteria.local 172.19.43.123 hestia
selene Sean selene.silentflame.com selene.local 172.19.43.124 hestia
john-laptop John N/A john-laptop.local 172.19.44.2 raspbmc

How to add a new tier 1 node

These instructions are not yet complete, such as, they don’t reflect the following sentence. Suppose you are setting up a host called host and your IP block assignment is 172.19.44.0 and you want to use 172.19.44.1 as your tier 1 node’s IP address (you can use anything in your pool).

Information

Contact Sean to get an IP pool allocation, which will be of the form 172.19.4X.X (makes them easier to remember if we just go up 43, 44, 45…—and no-one gets 42, to prevent arguments :P). The idea is one class B(?) per tier 1 node admin i.e. TGW member. Choose an IP address for your tier 1 node, from your IP pool. E-mail this information to Sean so the table above can be updated.

It’s possible to use tinc to bridge your local LAN into tgwnet with only one machine (generally your router) running tinc. If you want to do this, the easiest thing to do is get a second class B(?) for your LAN’s computers which your router’s DHCP server can be setup to hand out.

GNU/Linux

Install the tincd package however your distribution does that. Also install avahi-daemon to get automagic distributed DNS. Now mkdir /etc/tinc/tgwnet/hosts (throughout you can use some other word instead of tgwnet; it’s a purely local identifier) and then edit /etc/tinc/tgwnet/tinc.conf:

Name = hestia
Interface = tap1
AddressFamily = ipv4
LocalDiscovery = yes
ConnectTo = hestia
Mode = switch

You can add the following lines to bind on more than one port, for example if you need access to your tier 1 node from within Balliol’s ridiculous LAN.

BindToAddress = * 655
BindToAddress = * 1194

Replacing the IP address in the below with your tier 1 node’s IP address that you selected earlier, create /etc/tinc/tgwnet/tinc-up

#!/bin/sh
ifconfig $INTERFACE 172.19.43.122 netmask 255.255.0.0

and chmod this file to 755. Now create /etc/tinc/tgwnet/hosts/hestia where hestia is your tier 1 host’s name (yes, the machine you are creating the file on):

Subnet = 172.19.43.122/32

where the IP address here is your chosen IP for your tier 1 node. Now execute, as root, tincd -n tgwnet -K4096 to generate a keypair for your host. Accept the default location to save the public key. E-mail this public key /etc/tinc/tgwnet/host, PGP signed and encrypted, to Sean. He will send you back a file to be put as /etc/tinc/tgwnet/hestia; this is hestia’s public key, so that you can connect in to the rest of the network.

If you like you could establish similar relationships with other tier 1 hosts but this isn’t strictly necessary as tinc will automatically build the tunnels. If you do establish such relationships, though, notify Sean so he can update the above table.

The node is now operational and you can go ahead and add tier 2 nodes using the instructions below. Test by pinging things like zephyr.local and watch to see if the ping times drop as tunnels are built, assuming Sean has his computer on.

Windows

Very similar to the above, just different config file locations etc.

How to add a new tier 2 node

These instructions are not yet complete.

GNU/Linux

Very similar to adding a tier 1 node, except you need to supply the tier 1 node’s public key file, obviously, and the ConnectTo statement in /etc/tinc/tgwnet/tinc.conf should point to your tier 1 node.

Windows

Very similar to the above, just different config file locations etc.

Posted Mon 28 Jan 2013 00:00:00 UTC Tags:

Ulrik Sverdrup has written https://github.com/blake2-ppc/git-remote-gcrypt, which allows using gpg encrypted ssh remotes with git. The same idea could be expanded to other types of remotes, like S3. I’m excited about adding encrypted git remote support to the assistant! (source)

This is very exciting. I am tired of using s3ql for this purpose rather than just having all my metadata and data stored in an encrypted git remote on the same machine where, at present, only my encrypted data is stored.

Posted Thu 31 Jan 2013 17:14:00 UTC Tags: