# Tuesday, May 01, 2007

OK, I took a few pictures whilst we were away; approximately 19GB of pictures... Hence it's taken a little while to process and upload them all. Anyways, for those that are interested I've narrowed the selection down to 500 or so of the best ones and put them on Flickr. You can see them here.

The whole trip was fantastic, managing to fit a little bit of everything into the two and a half weeks away. We drove from Cape Town to East London and back then spent a couple of nights in Clarens, Free State. A total distance of about 2200 miles.

In detail, the trip looked like:

6th April 2007 - 06:35 Flight to Amsterdam, arrive 08:55

10:30 Flight to Johannesburg, arrive 21:00

Airport Grand, Johannesburg Airport (The room was very small)

7th April 2007 - 10:00 Flight to Cape Town, arrive 12:10

Nelson’s Guesthouse (Lovely place, great views, well located)

209 High Level Road, Sea Point, Cape Town, 8005 Tel: 021 4332602 Cell: 0728 752077

10th April 2007 - De Oude Ryneveld (Right in the center)

71 Ryneveld Street Stellenbosch 7600 Tel: 083 2984 856 Cell: 083 2984 856

11th April 2007 - Tranquillity Lodge (Great getaway)

130 St' Michael's Avenue, Nature's Valley, 6602 Tel: 044-531 6663 Cell: 0832 645221

12th April 2007 - Stumble Inn (Fantastic theme rooms)

31 Princess Alice Drive, Nahoon, East London, 5201 Tel: +27 43 735 3532

13th April 2007 - Inkwenkwezi Game Reserve (Really good private reserve)

15th April 2007 - Stumble Inn (again)

31 Princess Alice Drive, Nahoon, East London, 5201 Tel: +27 43 735 3532

16th April 2007 - Yellowwood Lodge (A little old fashioned but very nice)

18 Handel Street, PO Box 2020, Knysna 6570 Tel: 044 3825906 yellwood@global.co.za

17th April 2007 - The Highstead Manor (Serviced apartment for 4)

Crn Highlevel Road & St.Johns Road, Sea Point'fresnaye' 8060

Tel: +27 21 4396040 Cell: +27 837 629121

20th April 2007- 09:40 Flight to Johannesburg, arrive 11:40

Mt Rouge Guest House (Corrie du Preez) (Very peaceful)

152 Bester Street , Clarens, Free State Tel: +27-58-2561207 Cell: 0725129707, 0827827208

23th April 2007 - 23:30 Flight to Amsterdam arrive 24th April 10:20

24th April 2007 - 12:05 Flight to London Heathrow, arrive 12:30

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Tuesday, May 01, 2007 6:56:47 PM (GMT Daylight Time, UTC+01:00)  #    Comments [2] Trackback
# Tuesday, April 10, 2007
Cape Point
Cape Point, originally uploaded to Flickr by James Snape.

After three flights and a car ride we finally made it. Here I am at the most south westerly point in Africa. Its been really hot; I hate to imagine what its like in summer. More pictures when I get back.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Tuesday, April 10, 2007 6:03:55 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Monday, March 12, 2007

This picture was taken last week overlooking Courcheval 1850. I spent a week with friends in a fantastic chalet run by Ski Power. My skiing is improving but unfortunately Claire fell on her first run of the week. She broke her arm which meant she was out of action for the whole week. Kudos to Norwich Union for sorting everything without fuss, paying the blood wagon directly and even getting an extra seat on the plane next to Claire.

We had to go quite high for decent snow because down in the towns it was distinctly spring like and at times more like water skiing than snow skiing.

As usual I've got a few more pictures which you can find on Flickr. If your a friend or family then there are some additional ones to see as well.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, March 12, 2007 2:33:08 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Wednesday, February 28, 2007

Claire and I have been seeing each other for 18 months now and I decided to make things a little more permanent so along with her birthday gifts there was an extra item... Actually I wrapped it in eight consecutive boxes to fool her into thinking it was just another present. When she got to the last one the ring itself wasn't there, only the empty ring box. At which point I said "you have to say yes first" and then she said yes!

So we are engaged and I couldn't be happier. To answer the question everyone has asked so far - we don't have a date yet as it seems these things need a little planning and you can't just rock up to a church. I will keep you posted but for now we are off out to celebrate...

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Wednesday, February 28, 2007 7:42:47 PM (GMT Standard Time, UTC+00:00)  #    Comments [11] Trackback
# Monday, February 05, 2007

OK, I need your help... I'm giving a talk at the next SQL Community meeting about SQL Server development in an ISV. In particular the challenge of creating databases that can be installed many times and have to be supported, patched and upgraded. In contrast, enterprise SQL development is relatively straightforward as there is one master schema and code - the live server. All you need to do is ensure you sync with the master before making any changes.

What I would like is any experiences, hindsight, methods and processes you have related to this. Either leave a comment or e-mail me directly using the link at the top of the site. Some of the things I want to cover are:

  • Development, source control and build
  • Visual Studio Team Edition for Database Professionals
  • Installations
  • Patching, fixes and upgrades
  • Analysis Services, Integration Services, Reporting Services
  • End user schema/cube customisation
  • Performance tuning

If I get enough input I'll post the talk online.

 

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, February 05, 2007 11:32:44 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Monday, January 15, 2007

Those that know me know I like football (soccer) and support Manchester United. They are on fantastic form this season at the top of the league but I've noticed that whenever I watch a game they drop points. It's starting to make me a little superstitious.

I usually record the matches on Sky+ for later viewing but I wonder if my superstition can still affect the game after it's been played? In some respects this is similar to the thought experiment that Schrödinger put forward. The chance of United dropping points in a game is low but still non-zero so, for any particular game recorded, there is a chance that they could lose or draw. Whilst the game exists unwatched on the Sky+, the outcome is indeterminate and technically exists in all states (win, lose and draw). Only by watching the match is the outcome forced into one of those states.

Would you rather guarantee your team won the league at the expense of never watching a game or would you prefer a little entertainment over the winter months?

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, January 15, 2007 3:22:21 PM (GMT Standard Time, UTC+00:00)  #    Comments [5] Trackback
# Friday, January 12, 2007

This week I gave a one hour Introduction to MSF for a customer who is thinking about using the process along with Visual Studio Team System. Since none of the content is confidential I though I'd share the slides.

It's actually quite hard to pack everything in. I was aiming for 45 minutes plus questions but given the amount of ground to cover I had to settle for a full hour. I've still left out a lot, for example work streams and internal checkpoints but the book mentioned near the end covers everything else.

I've exported the slides to PDF because the original is about 15MB. The quality isn't as good but it's only 4MB. [download]

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Friday, January 12, 2007 4:01:47 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Thursday, January 04, 2007

It seems that when you leave App Dev Consulting where I work for a DPE sales role they still let you write code so here is a shameless plug for a useful little tool that Neil Kidd wrote...

It is an addin to IE to allow testers to easily raise bugs to TFS that include all the information the dev will need to reproduce the error.

It automatically attaches:

  • A screenshot
  • HTML source of the page and any frames and IFrames
  • Any style sheets referenced by the page
  • Any script files referenced by the page
  • Details about the user's machine and browser (OS version, browser version, screen size, ...)

I’ve blogged about it on:

http://blogs.msdn.com/ukvsts/archive/2007/01/02/automatically-raise-bugs-from-ie.aspx

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Thursday, January 04, 2007 11:21:21 AM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Tuesday, December 12, 2006

The answer should be obvious but I pointed out to a customer today - use a development process and tools to help your good staff work better, not to stop bad staff doing worse. If you do the later then you run the risk of implementing a rigid system that gets in the way of people and is ultimately self defeating. You need to manage your bad staff (out of the company) and not provide tooling for them. Some signs you might be doing the wrong thing are absolutes in your process definition e.g. no code can be checked in unless code coverage is at 90% [OK, I'll remove my error handling then!].

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Tuesday, December 12, 2006 5:42:31 PM (GMT Standard Time, UTC+00:00)  #    Comments [1] Trackback
# Thursday, November 09, 2006

It's been a while since I last blogged for real and you may have noticed the recent entries looking more like a link blog if you subscribe to the feed. This is down to a feature of FeedBurner that allows me to splice my del.icio.us links with these blog entries. The occasional Flickr image will get spliced in too.

So, back to subcube queries... I've been doing some Analysis Services 2005 performance work for a customer. Eventually I want to talk about some sort of a performance process for AS2005 but right now Chris Webb has a pretty good reference on designing effective aggregations. This is just a quick description of what the 11100101010,1010001000000 means in SQL Server Profiler.

Since SQL Profiler now supports Analysis Services you can monitor queries as they execute to find the poorly performing ones. Chances are you will see a Progress Report event similar to Started reading data from the 'XXX' partition closely followed by a Query Subcube event with TextData looking like a string of ones and zeros for example:
'00001000000000000,10111100000011111100,10'
The progress report tells you that data was read directly from the partition and no aggregation was used.

If you turn on the Query Subcube Verbose event then a more complete description is printed but quite often you will receive traces with just the subcube strings as the verbose event is hidden from the default set of options.

The subcube string tells you which dimensions and attributes are involved. Each group of digits, separated by a comma, denotes a dimension and each digit denotes an attribute within that dimension. The digit is '1' if that attribute is part of the subcube and '0' otherwise. Some things to note:

  • These are cube dimensions so the same dimension, e.g. Date, can be represented many times as a role playing dimension, e.g. Ship Date
  • The order is defined by the actual order of dimensions and attributes in the measure group, not alphabetical or any other sort order.

Since the order of dimensions and attributes is not immediately obvious, it's better to write some code to print them out in the correct order. The following prints all the dimensions and attributes of the supplied measure group object in order:

private static void PrintMeasureGroupDimensions(MeasureGroup mg) {
  for (int j = 0; j < mg.Dimensions.Count; ++j) {
    CubeDimension dim = mg.Dimensions[j].CubeDimension;
    Console.WriteLine("DIM:\t{0} ({1})", dim.Name, dim.Attributes.Count);

    for (int k = 0; k < dim.Attributes.Count; ++k) {
      CubeAttribute attr = dim.Attributes[k];
      Console.WriteLine("ATT:\t\t{0}", attr.Attribute.Name);
    }
  }
}

I've attached a piece of sample code that compiles into a console application to either print the entire set of dimensions for a measure group or, if you pass a subcube string, will just print those involved in the query. Execute with no args or '/h' to get some help.

Program.cs.txt (9.39 KB)

Edit: corrected some grammar and reformatted the code.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Thursday, November 09, 2006 5:18:23 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Friday, October 20, 2006

Time to clean up all the shortcuts to interesting web pages sitting around on my desktop... In no particular order:

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Friday, October 20, 2006 3:23:20 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Thursday, October 19, 2006

You must have seen it by now but in case you haven't Internet Explorer 7  for Windows XP/2003 has been released. You can download it right away or wait for the Windows Update coming soon.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Thursday, October 19, 2006 11:45:14 AM (GMT Daylight Time, UTC+01:00)  #    Comments [5] Trackback