What SSH keys in your .ssh/config will be offered to servers

Recently I've become aware that some things about specifying keysin .ssh/config don't work quite the way I absently thought theydid. Let's start with a simple situation:

Host *  # encrypted & usually loaded into  # ssh-agent  IdentityFile /u/cks/.ssh/ids/key-ed2Host github.com  IdentitiesOnly  IdentityFile /u/cks/.ssh/ids/github

When I set up my .ssh/config , this configuration looked like itwould offer


When SSH needs you to decrypt your keys

Here's something nice but vaguely surprising that I just learnedabout how SSH handles encrypted keys. Start with the following inyour .ssh/config :

Host *  # encrypted key:  IdentityFile /u/cks/.ssh/ids/key-ed2

Here's the question: suppose that you're not running ssh-agent and youtry to ssh off to a host where you have an account that doesn't use thisSSH key. Do you get prompted for the passphrase for your encrypted


Making GTK applications in alternate locations, settings edition

Suppose, not entirely hypothetically, that you build your own copyof some moderately complicated GTK application and install it a non-standard location with the equivalent of' configure --prefix /some/where '. In theory you can then just runthe application as /some/where/bin/prog and everything will begreat. As I found out today, in practice you may have a subtleproblem (or if you're unlucky, a not so subtle one).

GTK applications use a system for


The Git 'commit local changes and rebase' experience is a winning one

I mentioned recently that I'd beenpersuaded to change my ways from leaving local changes uncommittedin my working repos to committing them andrebasing on pulls. When I started this, I didn't expect it to beany real change from the experience of pulling with uncommittedchanges and maybe stashing them every so often and so on; I'd justbe doing things the proper and 'right' Git way (as everyone toldme) instead of the sloppy way.

I was wrong. Oh, certainly the


My Django form field validation and cleanup pain

Our Django based account request system hasquite a number of (HTTP) forms that all reflect and manipulate the sameunderlying model data. Because these are different forms (and some ofthem are in complex dynamic situations ),they of course all have different form (Python) classes. Some of you mayalready be seeing my problem here: a certain number of these fields needto be cleaned up and validated.

There are two problems here. The first is that in Django, form fieldvalidation and cleanup is attached


Sysadmin use of email is often necessarily more or less interrupt driven

One of the things that people commonly do with virtual screens is to puttheir email client off in a separate virtual screen so they can ignoreit and avoid having it interrupt them. As I mentioned when I wrote up my virtual screen usage , I don't try to cordonoff email this way. Fundamentally this is because as a sysadmin, I feelmy use of email is necessarily interrupt driven.

Allowing email to interrupt me certainly can derail my chain ofthought when I'm coding or working on a hard


Googlebot and Feedfetcher are still aggressively grabbing syndication feeds

Somewhat more than a year ago I wrote about how I'd detectedGooglebot aggressively crawling my syndication feeds , despite them being marked as 'stay away'.At the time I was contacted by someone from Google about thisand forwarded various information about it.

Well, you can probably guess what happened next: nothing. It is nowmore than a year later and Googlebot is still determinedly attemptingto pound away at fetching my syndication feed. In fact it made 25requests for it yesterday, all of which got


Wandering Thoughts is now ten years old

Because I am often terrible at scheduling, Wandering Thoughts ' ten year anniversary was actually almost a month ago, onJune 12th ( for odd reasons ). And as I noted four years ago , I'm not really for anniversaries.Still, ten years is something that feels significant, enough so toproduce some words.

I'm a different person than I was ten years ago and four years ago,but then we almost all are. Some of the changes are welcome ones,some less welcome


Some notes on my 'commit local changes and rebase' Git workflow

A month or so ago I wrote about how I don't commit changes in myworking repos and in reaction to it severalpeople argued that I ought to change my way. Well, never let it besaid that I can't eventually be persuaded to change my ways, sosince then I've been cautiously moving to committing my changes andrebasing on pulls in a couple of Git repos. I think I like it, soI'm probably going to make it my standard way of working with


Some thoughts on Go compiler directives being in source comments

Recently, I've been reading some commotion abouthow Go compiler directives being in source code comments is, well,not the 'elegant design' that Go's creators may feel it is. As ithappens I have some sympathies for Go here, so let's talk aboutwhat I see as the issues involved.

First, let's differentiate between what I'll arbitrarily call 'broad'and 'narrow' compiler directives. In a nutshell, what I'm callinga broad compiler directive