10 Apr 2013

Race Calendar - 2013

Update - June 2016

You can now find a list of all my road racing results at http://www.andyparkhill.co.uk/p/race-results.html.

Just to post a list of the races I plan on running this year.  As you can see, I’m concentrating on 10K races (not surprising given my goals for the year), and a monthly attendance at my local Parkrun.  I’m also hoping to run a few slightly longer runs.
The races below marked in bold are races I have already signed up for:

Date Race Distance Result (Minutes) Pace (MPM)
February
Saturday 16th Portrush Parkrun 5K 5K 20:13 6:30
April
Sunday 21st Titanic Quarter 10K 10K 42:53 6:54
May
Saturday 4th Portrush Parkrun 5K 5K 20:55 6:44
Monday 6th Belfast City Marathon Team Relay C – 7.1 miles 54:00 (approx.) 7:36
Friday 17th Les Jones Memorial 10K 10K (actually about 9.5K) 39:42 6:44
June
Saturday 8th Larne Half Marathon 13.1 miles 96:56 7:24
Friday 14th Active Antrim 5 Mile Road Race 5 Miles 33:34 6:43
Sunday 23rd Great North 10K 10K 43:38 7:01
Thursday 27th Jude Gallagher Memorial Round The Bridges 10 Mile Road Run 10 Mile Road Run 70:00 7:00
July
Saturday 6th Portrush Parkrun 5K 5K
Saturday 20th Kennedy Kane McArthur Festival of Running 10K
Friday 26th NFU Mutual 5 Mile
August
Sunday 4th The World Police & Fire Games Half Marathon 13.1
Saturday 17th Portrush Parkrun 5K 5K
TBC Dessie’s Run 10K
September
Sunday 22nd Belfast City Half Marathon
December
TBC Seeley Cup 10K

So far, the Athletics NI race calendar doesn’t go further than the end of August, but I would expect that the biggest race of the year will be the Seeley Cup 10K , which is normally held in November or December.  As well as being the Northern Ireland championship event, it will be the race in which I hope to break the 40 minutes barrier.

Two other races of note – the Newcaste Parkrun in June. and the World Police & Fire Games Half Marathon in August.  The first race will be when I visit Gateshead to be a spectator at the European Athletics Team Championships.  I was lucky enough to be in London last year for the Olympics, and I am hoping that the Championships in Gateshead can be just as exciting.

I’ll continue to update this post with my planned races, and the times of the races I actually run. You can also check out my athlete profile on the Power of 10 and Run Britain sites.

8 Mar 2013

Classical Music Starter Pack

A few people have asked about the classical music I plan on listening to this year.  Which composers?  What symphonies? 

I’ve put together this list of essential classical pieces after reading Discovering Classical Music by Ian Christians.  The book gives a concise introduction to classical music, and then takes ten of the greatest composers and gives a pen portrait of each, before examining their most accessible music. These are the pieces of music that stood out for me:

If you are a classical buff, and want to suggest any other composers or pieces of music I should listen to, please add a comment below. 

7 Mar 2013

Goals for 2013

"Be at war with your vices, at peace with your neighbours, and let every new year find you a better man."  - Benjamin Franklin

As usual, I'm late posting my goals for the new year ahead. I don't see this as being a bad thing. You should take time to consider how & what you are going to spend your limited free time on. This is particularly relevant to me as I have just started a new job with quite a long commute time.

Having looked at how I got on with 2012 goals (blog post to come), I decided to change tack completely, and to limit myself to just three goals for the coming year.

running - I
  1. Break 40 minutes in a 10 kilometre road race.  My last 10K race time was 43:20 (Dessie’s Run, Derry 2012), so to get it below 40 minutes will take sustained, consistent training.  But I doubt if I’ll equal my PB of 35:15 minutes at the Seeley Cup, Belfast, some 8 years ago and when I was over a stone lighter.
  2. This year, I will be making a big push to learn several new technologies in my free time. As part of this, I will post 40 articles on this blog, with the majority of the posts being technical articles.
  3. To listen to 40 pieces of classical music.  I have always wanted to educate myself about great music, and I think it is about time I started.  I’ll blog soon about the various pieces I plan on listening to.

19 Sept 2012

Making the Weight…

At the start of this year, I spent a lot of time analysing how I had met my goals for 2011, and setting my goals for this year.  One of those new goals was to get my weight below 70kg.

A quick look at my bodyweight log shows that my progress at the start of the year was slow but steady… Until April, when my weight jumped back up to 75Kg and it has remained consistently there ever since. 

It is pretty obvious I need some more motivation to get my weight done.  So if I get my weight below 70 kg by 1st December of this year, I’ll be taking a holiday in USA in 2013.  If I don’t make the weight, I’ll be spending a wet weekend in Portrush.  If that doesn’t motivate me to get into shape, I don’t know what will. 

You can continue to monitor my bodyweight log, and I’ll let you all at the end of the year whether I’ve achieved my weight goal.

19 Jul 2012

The Dublin Maker Faire

On Saturday (15th July), I was lucky enough to attend Ireland’s first Maker Faire at Trinity College, Dublin.  It was a fantastic and incredibly inspiring event.  For those of you who don’t know what a Maker Faire is, it is ‘a family-friendly showcase of invention, creativity and resourcefulness, and a celebration of the Maker movement.  It’s a place where people show what they are making, and share what they are learning.’ So there!

Some of the exhibits on display included:

  • Scalexercise, from Buildbrighton, that uses exercise bikes to power a Scalextrix track. 
  • Breandan Lane brought along his SteamPunk carousel, which I thought was rather scary looking, and the product of a warped mind.  But he more than made up for it with his simply outstanding musical rocket, which was a centre of attention for the entire day:
  • The simply amazing Lego Faire that was built by Presentation School Warrenmount. For me, a recovering Lego addict, this was the highlight of the Faire:

There was a lot more happening at the faire, including an underwater ROV built from everyday parts and controlled using an Arduino, the 14ft drum from Fuinneamh, and loads more!

Personally, I found the faire incredibly inspiring.  Particularly as I have recently signed up as a STEM Ambassador to try and promote STEM subjects in local schools.  I’ll be especially interested in encourage coding in schools, and I hope to mentor a school taking part in this year’s Lego League, hosted by W5 at the Odyssey.  To prepare for this, I will be playing researching Lego MindStorm and the Raspberry Pi over the summer. 

24 Apr 2012

Time for Programmers to Grow Up?

Over the weekend, I came across a tweet sharing an image of a profane commit message.  The tweet originated from a developer from a small but well known Belfast software company.

Original Tweet Sharing Image

Commit Messages Containing Profanity

I wasn't impressed with this, so I replied to let the originator of the tweet know I thought it was pretty immature.  This lead to a (civilized) Twitter discussion with a couple of interested parties about the tweet. 

In this particular case, the screenshot was from a commit to a local repository, which will be cleaned up prior to pushing to a public repository.  It was tweeted by a developer in the company who wasn’t the original committer.  The code wasn't for a client deliverable, but for a community project.  It is worth pointing out that the company concerned does a lot of good work with the local developer community.  The overall feeling was from the guys at the company was that the both commit messages and the tweeted image were no big deal.  I disagree, and this blog post will explain why I think there is a problem:

  1. Profanity Doesn’t Work

Swearing is guaranteed to offend someone.  In this case, it offended me.  It may well have offended others.  I'm not saying this as someone who is blameless -  I do curse.  But there are plenty of ways of expressing yourself without swearing.

  1. Professionalism

I don't doubt the above commit messages were just a way of letting off steam.  We've all been there; my language is certainly not perfect.  But I seriously question the wisdom of tweeting an image with a colleague's name, the name of your company and a load of profanity.  Once it is broadcast on a social network, it is out there for ever.  Would you be happy seeing this one of the top 10 search results for you personally, or for the company you work for?  No, neither would I.

Something relatively minor like this can affect on how professional we are perceived.  In this case, it has diminished my personal opinion of a company who were doing sterling work to support the local developer community.  In the same way, if I walk into a business meeting dropping F-bombs in every sentence, it reflects badly both on me personally and the company I work for.

In this particular case, the code was being committed to a local repository before being cleaned up for release to a public repository, and this was seen as a mitigating factor.  I would ask why take the chance of something like this getting released publically or to a client by mistake?  Why not  hold yourself to the same standard for personal/community code as for a client deliverable?

Incidentally, in one company I've worked for, I'm aware of someone wasting time going through the source code for a major contract and removing the various profane comments before releasing the code to the client.  This stuff can have a cost to a business.

The company concerned doesn't feel this is an issue. But as this recent story shows, just because a company doesn't care doesn't mean their customers will take the same view.  Geeklist lost a significant number of users following this online spate.

  1. Sexism

I have no doubt I will told to lighten up for mentioning this.  But the fact is there are very few female developers.  If we want to start attracting more women into careers as coders, we need (as a start) fewer "brogrammers" and a more gender neutral environment.  Posting a commit messages with references to a sexual act doesn't help, it just perpetuates programmer stereotypes.  If you think I'm grasping at straws here, please take the time to read the following articles:

Possibly you think that I'm making a mountain out of a molehill with this.  Or that I'm just showing my age.  But I seriously think tweeting an image like that is out of order.  Just as I think that a company that allows a culture where it is OK to have developers documenting code in this way has issues.  I would encourage you to respond with your thoughts via the post comments.  If you want to get in touch with me directly, please DM at @AndyParkhill.  Thanks.

23 Feb 2012

Calling Executable Files in PowerShell

I was called out on my approach on this in work today, so I thought I would share my thoughts on this topic.  The actual executable concerned was STSADM command line tool for SharePoint 2010 (yes, STSADM is still useful in SharePoint 2010, for example in enabling self-service site creation). Unfortunately, I don’t have STSADM installed on the machine I’m writing this blog post on, so I use the example of calling Internet Explorer instead. The principal is the same in both cases.

To call Internet Explorer from the command line, you would use the following command:

C:\Program Files\Internet Explorer\iexplore.exe

But if you try and run the above command in PowerShell, you will get the following error:

PowerShell Error

To correct the error, we need to enclose the path to the iexplore.exe file in quotes:

“C:\Program Files\Internet Explorer\iexplore.exe”

But this will not actually result in IE being called; this is because PowerShell treats the input as a string, and will simply write the text enclosed in the quotes to the console.  To run the string as a script whose path is enclosed in quotes, you preface the string with the call operator (ampersand):

& “C:\Program Files\Internet Explorer\iexplore.exe”

Alternatively, we can use the Invoke-Item cmdlet:

Invoke-Item “C:\Program Files\Internet Explorer\iexplore.exe”

And both approaches will successfully start an instance of Internet Explorer.  Alternatively, you could break the statement into two:

CD “C:\Program Files\Internet Explorer\”
iexplore.exe

Which would also work.  Note, if you needed to return to the original directory from which the PowerShell script was called, you could do so using the following code:

Push-Location “C:\Program Files\Internet Explorer\”
iexplore.exe
Pop-Location

The cmdlet Push-Location is virtually identical to the CD command; however, it saves your previous location before moving to a new one.

So, can we now specify at the PowerShell prompt the URL that IE opens with? The command line switch information for IE tells us that we can, by adding an additional parameter:

& “C:\Program Files\Internet Explorer\iexplore.exe” http://www.bbc.co.uk/news/

And again, this successfully works.  Can we now call IE with several parameters?

& “C:\Program Files\Internet Explorer\iexplore.exe” http://www.bbc.co.uk/news/ –private

And this PowerShell statement will call Internet Explorer so that it opens at the BBC News site in p0rn InPrivate mode.  So that we can see that to call STSADM from PowerShell, we could use the following command:

& “C:\Program Files\Common Files\Microsoft Shared\Web server extensions\14\bin\stsadm.exe” -o enablessc -url http://myserver –requiresecondarycontact

And this would work.  Except, of course, that no self respecting software developer would leave should a horribly long line of code in a script.  They would refactor this line of code by using an alias for the STSADM executable, and so avoid having to repeatedly use a hard-coded literal for the executable path.  They would also realise that the location of the common programs varies according to how Windows itself was installed on the target computer, and make use of the %CommonProgramFiles% environment variable:

set-alias STSADM "${env:commonprogramfiles}\Microsoft Shared\Web Server Extensions\14\BIN\STSADM.EXE"
$serverUrl = http://myserver
…
STSADM –o enablessc –url $serverUrl –requiresecondarycontact

The above code is now more easily read and maintained.  If you want to investigate further how PowerShell parses quotes, etc., check out this StackOverFlow question, and Keith Hill’s answer: