Falling from 10ft hurts

I’ve written quite a lot of late about Cisco equipment, Windows servers and Website Optimization. I wanted to take a break and write up a recent rock climbing accident I was unfortunate enough to have.

A group of friends and I were climbing at Worth Matravers, we arrived fairly early (10am) and had a successful morning. I had led two routes and friends proceeded to top rope them. We had all struggled on route two on our last visits so it was a real buzz leading it on my first attempt that day. The third route we attempted was a tricky overhanging route with lots of lose rock. After a few failed attempts each we decided to move onto a fourth route.

The new route had a tricky start, the bolts were more spaced out than most of the other routes. It was probably 10ft to the first bolt and the same again to the second. A friend attempted the route before me and had clipped the first bolt but been unable to climb higher. I was one of the last to attempt it and reached the first bolt. Trying to move on and up to the second bolt I found myself unable to, looking down my shoe had got caught in the quickdraw.
Continue reading Falling from 10ft hurts

Setting up CloudFlare with WordPress

Over the last few weeks I’ve paid more and more attention to optimizing the performance on this website. As well as service as a blog, this site is a great place I can test techniques to keep on top of web optimization. The first thing I setup, some years ago, was Expires and Last-Modified headers to control content expiration on clients. The configuration for this is as follows:

ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType font/ttf "access plus 1 year"
ExpiresByType font/woff "access plus 1 year"
ExpiresByType application/x-shockwave-flash "access plus 1 year"
ExpiresByType text/css "access plus 7 days"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/xhtml+xml "access plus 30 minutes"
ExpiresByType text/html "access plus 30 minutes"
Header unset ETag
Header unset Pragma
FileETag none

Because the Last-Modified header is sent, I then disable Entity Tag’s with the last three lines.
Continue reading Setting up CloudFlare with WordPress

Public Key authentication on Cisco IOS

I rely on SSH pretty heavily, be it for remotely managing a hanful of Linux systems or connecting to Cisco routers. I do this from my laptop and more recently – my phone. Rather than type passwords all the time (which can be tricky on on-screen keyboards) I decided to setup public key authentication for the Cisco routers I use.

Cisco IOS has supported public key authentication (for RSA keys only) since IOS 15. If you don’t already have a public/private RSA key-pair you can use PuttyGen (free, open-source) to generate them. If you’re a Linux user you can use the “ssh-keygen” command.

To set up RSA public key authentication, enter global configuration mode and issue the “ip ssh pubkey-chain” command. Then specify the username you want to provide a key for:

Router(config)#ip ssh pubkey-chain
Router(conf-ssh-pubkey)#username admin

Now, paste the data part of your public key (highlighted in red below).

ssh-rsa AAAAB.....aaa== rsa-key-20130820

Continue reading Public Key authentication on Cisco IOS