My New Programming Project

I’ve recently embarked on a new personal programming project and I though I might document my progress here on this blog. The project is a GTD App (see here to read about GTD if you don’t know what it it), I realise there are lots of these types of apps already out there, but none of the ones I’ve used have ticked all the boxes for me. I’m looking to write something that suits me, I don’t know if I will ever release it, this is more an exercise for honeing my skills, learning some new tchnologies and programming techniques. In my professional life I don’t often have the opportunity to write programs the way I want to, with this project I can. When I complete the project, if I decide to release it, I may make it open source, but there’s a long way to go yet before I need to start thinking about that.

I’m going to be writing my app in C# using Visual Studio 2010 and using NHibernate as my ORM and Persistance library, NUnit for Unit Testing, NAnt as my Build tool and SQL Server 2008 for the Backend Database. The plan is to make the app usable on multiple database platforms, such as Oracle, MySQL and SQL Server CE. I haven’t decided what I’m going to write the GUI in yet, I think I want to have a desktop version and a web version. For the desktop version I’m not sure whether to use standard Windows Forms or WPF or for the Web version, ASP.NET or Silverlight. I’m going to concentrate on the backend first and decide on the front end later.

I’ll post some more information as the project progresses.

It’s a Contractor’s Life for Me!

It’s been a while since I’ve posted anything, so I thought I’d write an update on what’s been going on in my life in the past year.

The Good/Bad Old Days

Up until last August (2010) I had been working for the same company (although with different divisions and multiple name changes) for over 9 years. The company I worked for was a large multi national Aerospace and Defence firm, with an office close to where I live. I’d previously been working in London and the commute was getting a bit much, so I took a bit of a pay cut to work closer to home. The job started off well, I got involved in a lot of projects and learnt lots of new skills. Eventually though things started to change, I got insourced to another division and things just went downhill from there. I stayed because I had a family and the job was close to home and it was just easier to stay. I wasn’t happy but I was still learning new skills and there were promises of promotions and pay rises in the future. Each year though the pay rises got smaller and the promotions never came, dispite my efforts. I was working hard and producing excellent results, but there was always some reason why I couldn’t be promoted this year.

In April of last year it all came to a head when yet again I didn’t get the promotion I was promised even though we had just completed a major project that I had really put my heart and soul into. I had really stepped up to the mark for this project, taking on a lot of extra responsibility and really taking a lead role. Dispite all this when a lot of my colleagues who worked on the same project were getting bonuses and I got nothing. This was when I decided it was time to take the plunge and move on, nothing was going to change where I was so there was no use complaing about it, I had to do something about it myself.

Around about the same time the company also announced redundancies and that I had been put on the at risk list. To be honest there were a lot of other people who were more likely to go than me so I didn’t really think that I would be made redundant, but it still gave me another reason to get out.

Time for a Change Me Thinks

I started looking on the job sites and getting my CV updated, I soon realised how under paid I was for my level of experience, which made me even more determined than ever to find a new job. I initially looked at just the permanent jobs, I’d thought about contracting in the past, but thought it too risky now that I had a family to take care of. Out of interest though I had a look at the contract vacancies to see what was out there and what kind of rate I would be looking at. I couldn’t believe what I was seeing, I knew contracting paid well, but I didn’t realise how well. This was when I had a change of heart and decided that I would open up my search to include contract positions as well as permanent. I still had a job then so I wasn’t in any hurry and if I did get made redundant I would get a payout that would last me a few months without a job.

I submitted my CV to a few of the job sites and applied for some jobs, both permanent and contract. I got a bit of interest, mostly for permanent roles, but I had really started to warm to the idea of contracting. I had started to look into contracting and realised that it would suit me down to the ground, I wouldn’t be tied down to the one company, I’d be able to get involved in different projects and I would get paid better. I knew there would be risks ie. no job security, no holiday or sick pay or any other benefits, I could be out of a job for long periods of time between contracts. I reasoned that as I was getting paid a lot more than I was I could put enough money aside so that if I was out of work for a while I would still have enough to live on while I found my next contract. I’ve got quite a wide range of skills so I wasn’t partiularly limited on the roles I could apply for, so I concentrated my search on contract positions. At first I didn’t seem to have much luck, I put this down to my CV, so I rewrote it several times and started to tailor my CV for the job I was applying for. Eventually I started to get more calls from agencies but my being in a permanent position with a months notice really hampered me. Firstly because of the months notice, a lot of contract positions are looking for an immediate start so that put me out of the running for most of the jobs I applied for. Secondly because I wasn’t already a contractor, but a permanent employee wanting to move into contracting, I didn’t have the right experience.

Nice Rolls!

After applying for a lot of jobs, I eventually got an interview with Rolls Royce Motors, it was just a telephone interview but the job spec seemed to match my skill set well. The interview only lasted about half an hour but I thought it had gone well. That same day I had a call from the agency offering me the job and I accepted and they emailed me the contracts for me to sign.

This was great I, my first contract and a good daily rate, pretty much doubling my take home pay at the time, but I didn’t sign the contract straight away. The only downside was that the contract was only for 10 weeks, it was a bit of a risk leaving my permanent position for a job that was only going to last 2.5 months, I had to think it through carefully. After much consideration I decided to go for it, I could have been made redundant in the next few months anyway and the redundancy package being offered was worth less than a few weeks work at Rolls Royce. 2 days after I was offered the job I signed the contract and handed in my notice, so far it’s been the best descision I ever made, I just wish I’d done it sooner. The Rolls Royce contract lasted for 5 months and I managed to secure my second contract before my first was even up. it seems as though once you’ve got your first contract the next one is easier to get.

It’s still early days yet, I’m still only on my second contract (currently hoping for a renewal) and anything could happen, but if things carry on as they have been I couldn’t be happier. Even if I don’t get another contract after this one, although I really hope I do, I’ve managed to pay off all my debts and have paid for a holiday to Disney World in June for myself and my family. Contracting might not be for everyone, there are some definate risks and very little stability, but for me the benefits have outweighed the risks. I just hope it continues for as long as possible I can’t imagine going back to a permanent job now.

SVN Checksum Problem

In all my software projects now I use SVN for my source control and although very good most of the time, does have a tendancy to break sometimes.

One of the issues I get sometimes is while updating my working copy from the repository, I get the following errors:

“svn: Checksum mismatch for ‘aaa’; expected: ‘xxxxx’, actual: ‘yyy'”

You can ofcourse just delete your working copy and do another checkout, but this is not always an option for me as some of my code is heavily embedded in my development environment. So I needed another solution.

After searching the internet for sometime I came across this blog post with the following solution:

  1. checkout a clean copy to a temporary location
  2. for new and your problem checkouts, go to the folder where your svn mismatch error is thrown
  3. in that folder, go to .svn folder
  4. copy the entries file over from the clean copy
  5. svn cleanup on the problem folder
  6. svn update

Problem solved!

Hosting by

I’ve now completed my move to my own domain, which is being hosted by There are a lot of webhosts available on the internet, but offer unlimited space, transfer bandwidth, domains, sub-domains & mysql databases, plus a lot more besides, all for a reasonable price. I can’t vouch for support or uptime as yet but setting up was petty painless and their Control Panel is easy to use. Installing this blog was very easy, I had it up and running in a matter of minutes. If you’re considering a web host then you can’t go wrong with, in a few weeks I’ll probably write another post once I’ve had a chance to check performance etc.

Now Hosting on My Own Domain

This blog is now being hosted on my own domain the new url is

Visio and Tiff to PDF

I’m currently working on a project that requires the automatic rendering of files to PDF, MS Office files work ok but there’s a problem with Visio and Tiff files  so I wrote this simple console app in VB.NET.

Module Module1

Sub Main(ByVal args As String())
OpenFileWithAcrobat(args(0), args(1))
End Sub

Private Sub OpenFileWithAcrobat(ByVal InputFile As String, ByVal OutPutFile As String)
Dim AcroAVDoc As Object
Dim AcroPDDoc As Object
Dim b As Boolean

AcroAVDoc = CreateObject("AcroExch.AVDoc")
b = AcroAVDoc.Open(InputFile, "Temp")

If AcroAVDoc.IsValid Then
AcroPDDoc = AcroAVDoc.GetPDDoc()
AcroPDDoc.SetInfo("Title", "")

If AcroPDDoc.Save(1 Or 4 Or 32, OutPutFile) <> True Then
End If

End If

AcroPDDoc = Nothing
AcroAVDoc = Nothing

End Sub

End Module

The app uses Acrobat Professional 9 and takes as its parameters the path of the file to be rendered to PDF format and the path of where the file should be saved to.  eg. renderer.exe “c:\temp\file.tif” “c:\temp\file.pdf”

It works really well as it maintains page sizes and orientation.  It will needs some error handling adding before it goes into production, but for now it works ok.

Social Media

I’ve been experimenting with various Social Media sites for a little while and I’ve met some interesting people, I even got some help with a presentation I was working on.  I thought I would add some links to my Social Media profiles:

Friend Feed
Google Profile
Google Reader

My New Blog

Welcome to my new personal blog, this blog will be a dumping ground for ideas, thoughts, code excerpts, tips, links and anything else that pops into my head.