UPDATE Jul 15 2012: I have linked my changes at the bottom of the post so you can either grab the bin or the changed files.
Last year I wrote on how our org used tfs2svn to get us out of some jams when our TFS / SvnBridge / ReviewBoard solution was returning errors (Migrate TFS to SVN). We had been using that solution merrily while TFS 2008 Server was in play. Disaster struck when the infrastructure guys upgraded last week to TFS 2010 taking full advantage of the new TFS 2010 Collections paradigm. What the new Collections does is alter the URL so that part of the path after the domain is the collection and part is the repository path (ex: http://tfsserver:8080/tfs/collection/myProject/trunk where the “http://tfsserver:8080/tfs/collection/” part is the server and collection declaration and the “/myProject/trunk” part is the TFS repository path “$/myProject/trunk”.
We are going to start using Agile development for some of our new projects so I was asked to get an project management tool set up. I had used Trac in the past and heard of the Agile42 Agilo plugin for it. I had also used VersionOne professionally but that is a paid app. I eventually decided to give Trac + Agilo a go on our Windows Server 2003 virtual image server called “myserver”. Our project will be called “myproject”.
We have been quite happy running our ReviewBoard / TFS server at work however every once and a while we would get errors during review creation. It turned out that some times the files would get corrupt during the TFS to SVNBridge to SVN diff. This would manifest when the “post-review” command would fail during the SVN diff procedure with logged errors such as:
'svn: XML data was not well-formedn', 'svn: Error reading spooled REPORT request responsen'
The City of Ottawa’s Web group required a code inspection tool to comply with the Payment Card Industry Data Security Standard (PCI DSS) section 6.6 “Code Review”. I investigated a couple of solutions, both open source and commercial, that fit our need for a fast, Web 2.0, side-by-side diff, inline comments, LDAP supported, and feature rich tool. It seems that Atlassian’s Crucible (purchase), Smartbear’s CodeCollaborator (purchase), and ReviewBoard (open source MIT license) were the pack leaders. I had used Crucible at Nortel and I really liked that product, but it was costly. Since I ❤ open source alternatives rather to paying for license fees, I opted to try ReviewBoard first. There was one problem though, the City is a Microsoft shop and we use Team Foundation Server (TFS) <grumble> as our source control repository but ReviewBoard didn’t list TFS in its supported repositories. Hrm…
I have surived my first week at my new position at the City of Ottawa. My new position is an Intermediate Developer and Integrator for a third party app (Active Network’s CLASS application). I will be receiving support calls from City clients to maintain the system which may involve on-site fixes which is different and nice from my old job.
This week was like any week at a new job….reading! I have 6 textbooks on Oracle, 3 on Business Object’s Crystal Reports 10, and endless online reading for CLASS. My eyes were bleeding by 4:00pm Friday afternoon.
Otherwise all the people seem cool. I have a nice cadillac ergo chair with 5000 settings and a brand new PC which I am also glad about.
Last night Andy received his Canadian Engineering Iron Ring at the secret ceremony at Ottawa University. Now there are 3 ‘geers in the family (dad, me, and Andy). ERTW!
It was tough to say goodbye to all of my coworkers yesterday. I was there for such a short time but our team was close. Hopefully I will be working with them in the future at some other job where we are not all fearing being laid off at any time. Ottawa is a small city. Monika took me to a private “farewell” lunch even though I am not saying farewell to her 🙂
On a brighter note, my little brother turns 25 today. It is a big year for him: getting married, new house in a couple months (like me), and graduating from university. I’m sure that he will sleep for the entire of Q4 this year from all of the excitement.
So my final day at Nortel will be tomorrow. Our team had a great lunch today at Lonestar and everyone seemed to be in great spirits. It will be hard to say goodbye to all my friends and colleagues but it was a decision that had to be made.
And the story begins…cue violins…
With Monika and I both working at Nortel during this period of bankruptcy protection, the possibility of both of us losing our jobs with only 3 hours notification and $0 severance was quite real. With the new house coming in July and us needing to finalize our mortgage soon, that could be a real problem. If we were to lose our jobs at the same time (which would be uber shitty) then we would not be able to prove our employment to the mortgage agent and thus not getting the mortgage. If we didn’t get the mortgage then we don’t get the home. If we don’t get the home then we forfeit on many thousands of dollars of deposits which we have already put into the house. If we forfeit the deposits then I go mental. I dont want to go mental. And thus the dilemma…
So when Nortel announced in mid Jan, we started looking for new work like our lives depended on it (which it pretty much did since I would have had an aneurysm if i lost all of those deposits). Between January and March I applied to about 80 jobs online, had 4 interviews, and only a solitary letter of offer from my saviour, the City of Ottawa. I accepted right away since the Ottawa market for software engineers (read: entire worldwide economy!) is in the crap buckets right now and this offer was way better than I could have dreamt for. The work is right up my alley, the pay is super, it is nice and close to my new home, it is more stable (!!!!), and I get to pay my dues to my city.
I will take a week off next week before I start on March 30th and I will be rested and mega pumped!