Sevastopol is Russia’s Faslane

In the last couple of days, Russian troops have moved to occupy Simferapol in the Crimean peninsula.  This may be part of a larger effort to deter the Ukraine from continuing to turn towards Europe for patronage, but a quick glance at the map makes at least part of Russia’s motivation very clear.

The Russian Black Sea Fleet is stationed in Sevastopol.  Ever since the breakup of the Soviet Union there has been tension between Russia and the Ukraine over her continued presence, and Russia’s lease was only extended a few years ago.  The fleet has had it’s home there for two hundred and thirty years.  I cannot imagine that Russia would be willing to lose this critical part of her strategic protection.   And if we look at the map, we see that the only main road to Sevastopol passes through Simferopol, the administrative centre of Crimea.  If Simferopol is secured and under Russian control, the Black Fleet is safe.

The British equivalent might be Faslane Naval base, home of her nuclear fleet.  I cannot imagine the UK countenancing any threat to Faslane, although the demands for Scottish independence must surely be giving the Navy’s senior commanders some serious headaches right now.

But back to the Crimea.  Shocking though it is to see Russia so casually violate the sovereignty of a neighbour, I can only hope that her purpose is merely to defend a key military installation, rather than to forcefully shepherd the entire Ukraine back into a closer union with her former overlords.

sevastopol


Cycling is Back

It’s back!  It might be -20 outside, with huge snow piles lining my driveway, but in Australia the sun is beating down an the cycling season has formally begun, with the first stage of the Tour Down Under.  This feels like the first hint that Spring might one day return.

Cycling might be a terribly tainted sport, and it has certainly suffered a ridiculous number of scandals over the past few years.  The Tour de France records no official winner for the years 1999-2005.    And even laying aside the well-know doping habits of Lance Armstrong, many, many other names from that era are also tainted: Levi Leipheimer, Floyd Llandis, Tyler Hamilton, David Millar, Bjarne Riis – the list goes on and on.   I sometimes think that the only good think to come out of that decade was the book The Secret Race,  by Tyler Hamilton, which documents in-depth the length that competitors felt they were forced to go to to remain viable competitors.

And yet, despite all that, I still love the sport.  I love the spectacle of it, I love the many-races-in-one format of the Grand Tours, I love the interpersonal dynamics of the racers, as sprinters and climbers and GC contenders make alliances of convenience and conduct diplomatic negotiations at sixty kilometers an hour; I love the thrill of the twisting descents of the final kilometers of Milan-San Remo, I love the mud-splattered brutality of the Paris-Roubaix, I love watching the peloton snake its way through the Flanders countryside I used to live in, and I love the rare occasions when I get to attend a race in person and feel and hear the hum of derailleurs inches from where I’m sitting.

I can hope that with the introduction of the biological passport, and with new leadership at the UCI, that the sport is slowly becoming a place where athletes can genuinely contend on their own merit, and I can also hope that the UCI adopts the egalitarian spirit of the International Olympic Committee and re-instates a Women’s edition of the Tour de France.

But for now, enjoy some highlights from the first stage of racing of the year.

 


Changing the World Through Stories

JFK once said that the only reason to give a speech was to change the world.

I think this is wise advice.  I’ve been reading a lot recently about the art of speaking and presenting, and the true masters of the subject seem to agree on a couple of points.

Firstly, PowerPoint is evil.  Or at least, can be used as a tool for evil.  Consider the following slide, for example.

 

Afgan-COIN

 

That’s part of a real PowerPoint presentation given by a real military commander trying to explain the goals of the occupying force in Afghanistan.  I don’t understand it.  I’m sure the audience didn’t understand it.  And I’m not at all sure that the guy giving the presentation really understood it.  If you can’t get your key point across in a few sentences, you’re probably not sure what you’re trying to say.

Fortunately, the masters of presenting agree on a second point.  Speaking and presenting is about telling stories.

Consider this example:

stories

This is from a vastly better presentation, Pixar’s 22 Rules to Phenomenal Storytelling. Go and watch it now.  Seriously.  I’ll wait.

Done?  Good.  The author of that presentation had a clear point he wanted to make, and made it with simplicity, creativity, and a keen eye for design.  All the hallmarks, in fact, of the company that he’s talking about.

If, like JFK, we want to change the world, we’ll need to do better than endless bullet lists and obfuscated flow charts.  We’ll need to learn to tell honest, simple, engaging stories.

 


New Year, New Resolutions

Yes, it’s that time of year again, when magazines and websites are full of articles about New Year’s Resolutions.

Actually, I quite like this tradition.  While I’m only too aware of the low success rate of resolutions, I think the turn of the year is an excellent time to stop, take stock of your life, and plan ahead for the coming months.

I have some specific practices that I find extremely helpful in this exercise that I’ll be sharing on Sunday at Vox Alliance, but in the meantime, I’m interested in hearing from you.  Do you make resolutions? Do you stick to them?  What resolutions do you make?  And what are you looking forward to in 2014?

new-res

Happy New Year!

 


What’s in my files? Heads, tails, cats and more.

As soon as you start working on the Linux command line, you have to start working with files.  Linux follows a very powerful design philosophy expressed as everything is a file. This can take some getting used to, but is incredibly useful once you get it.  Because once you’ve learned how to read and manipulate text files, you can do pretty much anything on your machine.

The first command you need to know is cat. Cat is short for ‘concatenate’, and is used for writing text to and from files. So if I have a file in my current working directory, I can get its contents with cat:


$ echo "hello world" > myfile.txt
$ cat myfile.txt 
hello world

The first line created the file myfile.txt and directed the string “hello world” into it. The second line used cat to read the contents of the file.

Here’s a more real-world example

$ cat /var/log/syslog

This prints out all the lines in the syslog file, present on most unix systems. Don’t worry too much about the contents of the file, it’s probably mostly log records from your system booting up. Now, if you’re inspecting a log file, very often you only want the last few lines, rather than the entire thing. Linux provides a useful command for this very purpose

$ tail /var/log/syslog

Tail, as you might guess, prints out the ‘tail’, or last few lines, of a file. Its companion is head, which prints the first few lines

$ head /var/log/syslog

If you want the ability to view large amounts of text and scroll through it, then the command you want is ‘less‘.

$ less /var/log/syslog

This allows you to scroll up and down through your file. Press q to return to the command line.

Here’s one last neat little trick. I mentioned that on Linux, everything is a file. Even the state of the system is represented as a file.


trevor@vm2:~$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 70
model name	: Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz
stepping	: 1
microcode	: 0xf
cpu MHz		: 2294.218
cache size	: 6144 KB
...

Rather than having many different tools for different tasks, a Linux system is more like a box of Lego. The same tools can be plugged into all sorts of different places to enable you to do what you want. I use the humble cat command on a daily basis to modify system settings, read files, and even monitor the health of my machines.

Read the rest of my ‘technology toolkit’ posts:


apt-get: Making your ubuntu machine more better

I pretty much live on the Linux command line.  There’s a number of tools I have in my ‘toolkit’ that I use on a daily basis to automate tasks, manage systems and provide features.

apt-get is one of the most important tools to understand if you’re using an Ubuntu distribution.

apt-get is like the Apple App Store, except it’s been around for much longer and everything it provides is absolutely free. When I’m setting up a new Linux machine I immediately download and install several useful packages.


$ sudo apt-get install ipython
$ sudo apt-get install nmap
$ sudo apt-get install mercurial

and so on.  Very quickly your new Linux machine can be a database server, a graphic design workstation, or a development engine.

Several apt-get commands are worth knowing

photo

$ apt-get install nmap, for example, installs a powerful port-scanner.

$ apt-get remove nmap removes the package we just installed.

$ apt-get upgrade upgrades all installed packages to the latest version

Even more powerfully,

$ do-release-upgrade upgrades your Ubuntu system when a new one is released.   To find out what version of Ubuntu you’re running, I suggest $ lsb_release. On my machine it gives the following output:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.10
Release: 13.10
Codename: saucy

Check http://www.ubuntu.com/ to see what the latest release version is.

Have fun!

 

 

More Technology Toolkit Posts


‘top’ and friends – what’s going on on my system?

Linux gives you all sorts of ways of keeping an eye on what’s going on your server.  Here are several that I find useful.  Read my post on apt-get to get any of these that may not be installed on your computer.

The grand-daddy of them all is top

This is like Task Manager on Windows or Activity Monitor on Mac.  It gives you a quick list of all the processes that are running on your computer, how much RAM and processor power they’re using, and how long they’ve been running for.

top, however has a pretty ugly output format, so it’s good that there are several better alternatives.

My preferred tool is htop, which gives a better visual display, including a nice bar-chart showing CPU usage on all your cores, and the ability to sort by CPU, memory usage etc.


  CPU[||                                                                          1.3%]     Tasks: 44, 46 thr; 1 running
  Mem[|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||  332/987MB]     Load average: 0.00 0.01 0.05 
  Swp[|                                                                       0/1021MB]     Uptime: 1 day, 13:00:40

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
24133 trevor     20   0 26420  2756  1456 R  0.7  0.3  0:00.57 htop
 1030 root       20   0 91728  4412  3572 S  0.0  0.4  2:21.86 /usr/sbin/vmtoolsd
 1051 postgres   20   0  129M  5056  3628 S  0.0  0.5  0:24.74 postgres: writer process

So what’s making my disk thrash?

htop tells us what processes are using memory and processing power. To see what’s using I/O, use iotop. This needs to be run as root:


$ sudo apt-get install iotop
$ sudo iotop

which gives you a list of which processes are reading and writing to disk.

But what’s using my network connection?

Likewise, we can monitor network usage using iftop


$ sudo apt-get install iftop
$ sudo iftop

which shows the open connections on your machine and how much data is being passed through them.

An alternative to iftop is nethogs which shows you which processes are responsible for data being passed over your network connections.

I also find netstat useful in these situations. netstat can do a lot, but one way I find myself using it a lot is

 $ netstat -plnt 

which means ‘show me all the processes on this machine that are listening for TCP/IP connections, and which port they are listening on’. This is very helpful when you’re setting up a machine and you want to verify that, say, your webserver or database server is running correctly.

Linux gives you many, many ways to see what’s going on on your system, and we’ve only scratched the surface her. Check out the rest of my technology toolkit posts:


What are my servers doing? ping, mtr and nmap

If you’re a network administrator or web developer of any kind, you are often going to want to know what your machines are doing.  Is your database machine connected to the network?  Is your firewall working?  Is your web server properly configured?

ping is the very first tool that we reach for.

  ping simply sends a message to another machine to see if it is responding.

$ ping google.com

When you run this, you should start seeing responses from google.com getting printed out at your command line. If you don’t get this, then your network connection is probably down. This can also be used to see if machines that you own are up and running.

$ ping mywebserver

If ping doesn’t work, and you’re sure that you are connected to the network, the next thing to do is to make sure that you have the right machine name and that your client machine can look up its IP address correctly. That’s where dig comes in.

$ dig mycoolsite.ca 

Check that this gives you the right IP address. Be aware that some DNS providers such as OpenDNS may give you back an IP address even for sites that don’t exist, but it won’t be anything useful.

mtr is like ping on steroids – it will show you all the hops that your network packets are taking between you and your target machine, and how responsive each intermediate machine is being. This is a very handy tool for analysing connectivity problems.

My server is up, but what is it doing?

nmap is a vital tool in every network administrators toolkit. It deserves an article all to itself, but here’s a quick taste:

trevor@vm2:~$ nmap localhost 

Starting Nmap 6.40 ( http://nmap.org ) at 2013-11-28 18:00 PST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
5432/tcp open  postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

This tells me that machine vm2 is running ssh, a webserver, and the postgresql database engine. If this machine was visible to the outside world, now would be the time when I would make sure that postgresql wasn’t accepting non-local connections.

As with all these tools, nmap can be installed via

$ sudo apt-get install nmap

Find out how to install packages, keep an eye on your Linux system and other useful tips in my technology toolkit posts:


The Navy Yard

As soon as I heard about the shooting at Washington Navy Yard on Monday, one question sprang to mind and refused to leave.

We are shocked, and rightly so, at the news of yet another mass shooting.  And yet, for some reason, most of us aren’t particularly shocked about the location of the shootings.  But I can’t help pondering the location of this act of violence, the Washington Navy Yard.  I’d never heard of this place until Monday, so I took the time to read up a little on the site and its history.

The Yard started out more than two centuries ago as the largest shipbuilding facility in the US navy.  By World War II, it was the largest naval ordnance plant in the world. The weapons designed and built there were used in every war in which the United States fought until the 1960s.

To put it another way, this facility has existed,  for two centuries, to create guns, torpedoes, gunboats, frigates and shells.  In short, all the machinery needed for people to kill other people with production-line efficiency.  To be blunt, this site has been in the business of mass-producing death. This is not a value judgment, just a plain statement of fact. Many thousands of human beings have been shot, blown up, burnt or drowned by the output of this facility.

And yet for some reason this doesn’t elicit a strong emotional reaction, or indeed, any comment at all in the coverage of Monday’s tragedy.

Why is that, I wonder?


Achieving the Impossible

One of the interesting things about becoming a runner is that it gets you in the habit of achieving the impossible.

What do I mean by this?  I mean that many of us have had the experience of declaring that sometime in the future we will do something that we are currently physically incapable of.  And then we do it.

Perhaps you can’t run down the street without getting winded, and yet you sign up for a 5k.
Perhaps you’re getting used to your 5k training runs, but you sign up for a marathon.
Perhaps you can’t swim, and yet declare to your friends your intention to complete a triathlon.

In each of these cases, there’s a task that you would find physically impossible if you tried to do it today.  And yet, you sign up, you put in the training hours, and a few months later you find yourself achieving it.

You run your first 5k without stopping once.
You complete that daunting mud run.
You get that Boston Qualifier marathon time that’s been eluding you.

And in the process, you discover that the impossible can become possible.

I have decided once again to set myself an impossible goal.  It’s quite straightforward – I want to run an 18 minute 5k.  So why is this ‘impossible’?

  • I can run five kilometres in 22 minutes quite easily, and indeed did that on Saturday twice after having completed the swim and bike portions of a triathlon.
  • If I push myself, I can run five kilometres under 20 minutes, and have done so in a number of standalone races.
  • Once, I have run five kilometres in just under 19 minutes.   18:50 to be precise.

I am physically incapable currently of running a full minute faster.  This isn’t a question of willpower, it’s simply an honest evaluation of my body’s current ability to convert chemical energy into kinetic energy.

And yet I know that I am capable of changing my body so that it can achieve this goal.  I’ve spoken in the past about the process for achieving challenging targets, whether athletic, financial, or relational:

  • Have a clearly defined goal that you are passionate about.
  • Learn the steps needed to reach it.
  • Execute consistently.

So trying to run a sub-18 minute 5k gives me a wonderful opportunity to put this framework to the test again.  First, motivation.  I’m now in my late thirties, and I realise that even though it’s possible to be an outstanding endurance athlete well into your eighties, the body inevitable loses top end explosive speed and strength as it approaches forty. So now is an excellent time to try to set a ‘lifetime best’ 5k.

Also, I regularly train with other people that are trying to ‘achieve the impossible’, whether its running their first ever race or qualifying for the Boston Marathon.  Out of solidarity and respect for my training partners, I want to feel what they are experiencing as they ask their bodies to perform in ways that they never have before.

IMG_00000129

The second element of the framework is planning.  Running a fast 5k is different than training for a half-Ironman.  I’ve been inspired by what Mo Farah has achieved over this distance in the last couple of years, and have every intention of learning from the  training methods that Alberto Salazar has pioneered with him.  So I’ll be working on core strength to improve my form and top-end speed, but most importantly, I’ll be doing the one thing that most casual runners that I know avoid: interval training.   I started this again yesterday, running successive 1km loops in 3:30 with a two minute recovery.  I’ll probably tweak the exact structure of my intervals as I learn more, but I know that the only way I can reach this goal is by acclimatizing my body more to lactic acid buildup.

And then the third element is simply execution.  Doing one interval set is painful, but then it’s done. Going out and doing it again the next day on tired legs, and then again the next day, and then again the next, is something else.  And that’s partly why I talk about my training in public – it forces me to be honest!  One of the reasons I encourage people to sign up for races is because it is making a public announcement that you will take on a difficult challenge.  It’s much harder to back out when all your friends have heard you brag about that marathon you’re going to run.

Here’s to achieving the impossible!