Sunday, October 03, 2010

Remembering a dark day ...

It must have been late June 2000, I had been in my first post university job for only a couple of weeks. The 2 main developers at the company were PhD students and desperately want to get back to their research but the current project had been eating more and more of their time until it was all they did.

In the late June 2000 timeframe we are talking about they finally declared the system good enough to launch, so it did. They immediately left the company to complete their research and I remained to maintain the system. Me, a newbie to "professional" development, new to Java and new to the rather large and complex code base they left behind.

For a couple of days things were fine. I tinkered with a few bugs and prepared the next release. That next fatal release when all of a sudden everything went wrong. Old bugs, from before I even started at the company, resurfaced. Nothing made sense and there was no one around that could help.

By about 3am I had managed to patch enough that the system was at least up if not fully functional. Over the next few days I patched bug after bug. Then one of the original developers came back, having put a decent amount of worked into his PhD. He looked over what had happened, the list of bugs that had seemingly returned from the dead and immediately realised what had happen.

You see there was no source control in place. So, to keep life simple, they had split the development into 2. While they both had a complete source to compile against, they would each only change one side of it.

This had worked through most of the development, until the day they left. When they put their source into a single folder for me, for the first time since starting. One developer put his source code in first, then the other put his in. Both his up to date correct half that he had been working on and his old incorrect copy of the other developer's half. Thus all of the bugs fixed in the previous weeks by developer 1 returned.

----

I recount this story because it has been in my mind of late. I have been putting a lot of effort into planning regression tests for a change I am implementing which first brought this story to mind. Also I was chatting to a developer the other day who was bemoaning bugs returning from the grave. Coincidentally I was also reminiscing with someone about horrendous problems we had on a project that did use source control, the variant of which turned out to be a costly mistake.

From my story and those of others in this area I take away 2 lessons that I try never to forget. Firstly, you must have source control, and an associated plan of how you will use it. Secondly, you cannot assume that simply having and using source control is the answer. While it may prevent the total disaster I presented above, I have seen many projects have source management issues even with source control in place. Be sure to review, on a regular basis, how you are using source control and whether it actually offers you the safety net you might assume it does.

Wednesday, September 29, 2010

Sad times in the Scorched Tortoise shell ...

For the past week I have been trying to resuscitate the iMac. A little over a week ago I came home to find the beach ball of doom and then a failure to reboot. Still some options to try before I am forced to concede that it is going to have to be an expensive out of warranty hardware fix.

I don't begrudge the machine having a failure such as this, it's only been powered down for about 3 weeks in total over the 3 years I've had it (1 week for a flat move and 2 weeks for our wedding). In that time it's been working hard.

At least I don't have any worries about data loss. My multiple backup strategy is putting my mind to rest about that.

In the meantime I'm not feeling out of touch, or really without computer in any way. I've got the iPhone and iPad which cover most things and the old iBook G4 is being pressed back into service for the other essentials. It's impressive how many developers are still ensuring their applications are Universal.

I'll let you know how things progress, and hopefully that it turns out to be nothing too drastic.

Tuesday, June 15, 2010

The new Mac Mini is very nice ...

... just have to keep telling myself that I don't need one and can't afford it.

Saturday, June 12, 2010

So how are things with you?

As has become normal for the last few years it's been quite a while since I last blogged. I hope 2010 has been as good for you all as it's been for me so far. Thought I'd post an update on what's been going on for me this year.

The day job that I moved to in September last year is still proving to be a great choice for me. Great people, interesting work (gobs of data flying around all the time) and relaxed, meaning it's the first job that i'm not stressing about when I'm not there.

Launched a couple of project so far this year and working on 2 more that should prove interesting and important to various people in the organisation.

We managed to get the new version of http://www.sportbilly.com complete for the World Cup and people seem to be having a good time.

The iPad arrived (blogging from it right now) and the new iPhone is coming later this month, so my gadget habit is progressing nicely.

With the relaunch of http://www.sportbilly.com out of the way I've got a weekend free to perform some much needed maintenance on the iMac, so I've left iDefrag doing it's thing and escaped to Starbucks where i am writing this.

All in all life is pretty good right now, I hope it is for you all. I'm going t try to post a little more here, and make some changes to the blog in the coming months. Don't know what people want to see on here but I'll probably write about the SB relaunch process and what i learned from that and the iPad/iOS situation.

Sunday, January 10, 2010

New year, new work/fun ...

It's been a pretty good start to 2010 for me. At the day job there was a major update that one of our data suppliers was doing between 31/12/2009 and 1/1/2010. When I say major, I mean a complete change required to every system that touches that data. Several teams had been spending the better part of 6 months preparing. Having only recently joined I wasn't deeply involved, I just helped prep and perform testing, but I was still very glad when everything went as planned.

As for my other main project things have been progressing well. I've implemented over half of the new design and had a wonderful few weeks discovering that JQuery really is one of the most wonderful things ever. Making the use of Javascript in browsers "just work" has made my life much easier and enabled me to implement far more interactive components than I had planned. I tip my hat to them.

Even though things have been going well I'm still a little bit behind schedule on the project, so lots of effort over the next few weeks to catch up. But, as I described in my last post ("In the zone ...") it is much more joyous for me this time around. This is also because I have made it much easier on myself. I spent a little bit of cash to pick up a second monitor (an Apple Cinema Display 23" second hand) and a new office chair/foot rest. The combination of these things makes working at home a lot easier than it used to.

Hopefully this will all have been a good investment and I can finish the new design so the rest of the team can relaunch the site and I can spend a little time on some new personal projects. I hope you are looking forward to the rest of 2010 as much as I am.

Sunday, November 22, 2009

In the zone ...

It's been a long time since I was "in the zone" on a personal project. The zone I am referring to is the developer zone not Twilight or Phantom. This is the zone where you start coding and then are amazed that many hours have passed when you next look up.

The project I've been working on for the past few years has had it's ups and downs. The past 12 months have mostly been downs. Something changed recently that reinvigorated my relationship with the project, that change was finally getting a great design.

Three years ago I implemented the first version based off some old design documents the team had commissioned but never implemented. That was tough, without the original designer around to fill in the blanks as needed, but I got through it and the project was still fresh and exciting. The next phase was a redesign triggered by underlying changes in the information model and the closest thing I had to a design was a suggestion that it should be "like the BBC site".

That work dragged. Every step of the way I was having to think about design, implement assets and tweak stuff on the fly with no overall look and feel guidance. After about the 50th time I suggested it the team finally got a professional designer in, though after the horrible made up design had gone live to little joy.

In 6 pages of PDF Paul produced something that both looked elegant and fitted the IA beautifully. So for the past couple of weeks I have spent my spare time "in the zone" implementing the html and css statically and loving every minute of it. By the end of the month I will be done with this phase and will then implement the design on top of the existing backend code. I can't wait.

Without the drag of a bad (or no) design weighting me down the implementation in code will be quick and also allow me to tidy up some of the code issues I have been meaning to get around to for ages.

Most startups realise the benefit to their users of a great design, but the benefits to team morale are not often mentioned. Right now I can safely say they are just about the most important thing that could have happened to this project. Oh, the redesign also give me a chance to move over to jquery finally and that's another pot of fun all to itself.

Monday, March 23, 2009

New week, new fun

Finally this weekend I feel like I have caught up with life. Started a new phase on work projects, deadlines far off. Hit a happy point with a couple of personal projects and I'm ready to move forward with some others.

Now if I can just win at rolling tomorrow night ...

Tuesday, March 17, 2009

Monday, February 16, 2009

If you wonder why developing a new rocket is complex and expensive ...

People often wonder why developing the next generation of human rated rockets is so complex and expensive. I think the latest edition of The Big Picture from the Boston Globe answers this well. The sheer scale of some of the infrastructure, no matter the development of the multiple rocket stages, is amazing.

Whether you agree with human spaceflight or not, you have to be impressed by the engineering on show in these images.

I also have to recommend The Big Picture site generally, their collections of images from the various wire services and freelancers often show the many sides/faces of a story. Check out their coverage of both the Obama campaign and the Inauguration as examples.

Sunday, February 15, 2009

Geeking weekend preparing for Snow Leopard ...

While this weekend has involved great geeking with my Macs it was preceded by far more geek thought and concern. I blame it on/credit it to a couple of podcasts that I've been listening to for quite some time now; Adam Christianson's MacCast and The Mac Observer's Mac Geek Gab. I never used to worry about loosing data or machines getting fried from nearby lightening strikes, but a couple of months ago it began to creep into my nightmares.

You see, I"m a hoarder of data. I have the results of high school chemistry experiments, still have all the different versions of my final year degree project. Every CV I've had to write is still there, along with the letter of application for a years placement at CERN (I have the rejection letter in a file on a shelf somewhere too). However I always had a backup strategy of holding multiple copies of this archive on multiple PCs.

Then I moved to the Mac, and for a while I still had the drives and some of the PCs holding my archive, but eventually it just came down to bare drives that hadn't been used for years. I grabed myself a USB Drive adapter and copied the whole archive onto my iMac. At that point I had one single copy on one single drive. Then all I would hear in my head were the horror stories written in to the podcasts I mentioned. The constant advice of having multiple copies of everything.

When I upgraded to Leopard I bought a Maxtor 500GB external drive for Time Machine, which I thought should be enough to cope with my internal 300GB drive. After 3 months it start erroring on account of the fact that it was full. Time Machine dutifully started deleting old copies of things and I began to worry again. Finally I caved and bought a 1TB WD MyBook drive for Time Machine and then bought a copy of SuperDuper! to use the Maxtor for a bootable clone of my main drive.
Finally my mind could rest about only having a single copy of my data, I could handle 2 potential drive failures. At last restful sleep ... but of course not. My mind moved onto the next possible crisis, fried computer and all 3 drives(!) from a power spike, triggered by both the podcasts and the, getting more often, small power failures in our area. After a good search and taking advice from KC I've settled on the APC Back-up ES 700VA.

But that is for next month, this months tech concern is about the imminent release of Mac OSX 10.6 Snow Leopard. For those that don't know, and are interested, there is quite a large set of unknowns about this next release of OSX. Apple has stated that it will be primarily an update to the internals of OSX, with few new visible features. This is a platform for future releases, but as such is almost certain to be an Intel only release.

Traditionally Apple removes the previous version of OSX from sale when the new one is available. If this happens with Snow Leopard then what are those people who have yet to update their PowerPC machine to Leopard to do? This was my concern, we still have the little iBook G4 which Carly uses a lot.

Of course, and I'm sure that this is no coincidence, Apple has recently released the new versions of iWork and iLife and made them available in a set with Leopard, the Mac Boxed Set, at an incredibly reasonable price. All together this works out really well, I'm a version behind on iLife and 2 on iWork. So I got the set, iLife and iWork for my iMac and another Leopard license for the iBook.

Before installing Leopard on the iBook though a little surgery was required, it only had the built in 256MB of RAM. A quick order from the wonderful people at Crucial, and a 1GB chip was in my hands (1.25 GB being the max on that machine). Using the instructions from iFixIt the installation was a breeze, and I finally figured out a use for OSX's CTRL+Mouse Wheel screen zoom (instructions on the 24" iMac across the room as the printer is out of ink).

While Leopard was installing I installed iLife and iWork on the iMac, now all is good. A great geek weekend, now I just have to wait till next month and the APC UPS and maybe I can relax ...