# 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
# Monday, October 16, 2006

I celebrated my 35th birthday at the weekend with dinner at  The Club Bar & Dining in London. Interesting place but I expect we may see it appear in the next series of Ramsay's Kitchen Nightmares. We waited forever to get our food; items we ordered were "out" when the meal arrived and had to be swapped for other choices; the food was cold and we were even told that the chef had burned the potato gratin which had to be swapped for fries. Our complaints, alas, fell on deaf ears and we didn't even get one of the many bottles of wine (which was the only item available for most of the meal) knocked off the bill. The music volume was such that you could hardly talk to the person next to you. The place has only been open for a couple of months so I hope they get things sorted or it could be a short life for them.

Despite the above, it was really nice to see everyone and I had a really great time. Thank you too for the gifts.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, October 16, 2006 8:56:34 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Monday, October 09, 2006

It's not immediately obvious but after spending half an hour trying to get my laptop to display Aero Glass instead of the opaque Aero theme I finally discovered that Glass is automatically turned off whilst using the Power Saver power plan. If you got to "Window Color and Appearance" and the "Enable Transparency" checkbox won't stay selected, check your current power plan.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, October 09, 2006 9:13:37 AM (GMT Daylight Time, UTC+01:00)  #    Comments [2] Trackback
# Friday, October 06, 2006

Trackbacks are disabled whilst I figure out a way to stop the !***!!! spammers.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Friday, October 06, 2006 12:00:58 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Monday, October 02, 2006

Abamar BeachClaire and I have just returned from two weeks in Sardinia at the Mark Warner Abamar resort. It's been a while since I have had a summer holiday abroad and this was a welcome break from work. We had a fantastic beach, sailing, windsurfing and I learned to scuba dive too. For those that wanted there was tennis, water polo, aerobics and spa facilities.

More on the scuba in a later post but in the meantime I have uploaded all the pictures to Flickr.

The hotel was full board and the food was excellent but we did manage to leave the resort a couple of times to visit the local area. Pula is quite a small town with not much around. However, Cagliari (the capital city) is much larger. The bars up in the old city are great for a sundowner.

If you like a beach holiday with plenty of optional activity then this is a great holiday to have. Also, if you are single then this looks to be a great place to meet people as there were quite a few who had come on their own.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, October 02, 2006 11:06:36 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Monday, September 11, 2006

Jools Holland and The Rhythm And Blues Orchestra, Groove Armada, Brazilian carnival dancers, Mexican buffet, champagne, free bar, chill-out zone and 2000 people all under a massive circus big top at Stratfield Saye. The event was awesome and a really cool plus for working at Microsoft. Hopefully the pictures below can give a sense of what it was like. Sorry for the quality though - they were taken from my Smartphone.

Jools Holland Groove Armada , the crowd Groove Armada, 'At The River' Groove Armada

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Monday, September 11, 2006 8:02:39 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Sunday, August 27, 2006
A room at the Lowry hotel
A room at the Lowry hotel, originally uploaded to Flickr by James Snape.

Much better than the one from a few weeks ago.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Sunday, August 27, 2006 8:19:25 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Saturday, August 26, 2006

Because of the way you assign FullTrust permissions to an InfoPath form, the correct permissions are not assigned when running the form under the Visual Studio debugger. You might see errors such as "That assembly does not allow partially trusted callers". The solution is to use a macro that ships in the InfoPath 2003 Toolkit called IPFullTrust. See the macro page for more detail.

by This posting is provided "AS IS" with no warranties, and confers no rights.
posted on Saturday, August 26, 2006 11:03:19 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Thursday, August 10, 2006

In addition to RSS, I've also added email distribution to the site. If you read via a feed reader then please carry on as normal. But...

...if you don't know what RSS is and would prefer to have these posts sent via e-mail instead then either click the orange "email readers" button on the right or go directly to the sign-up page.

This is a spam free opt-in newsletter service and you can even keep your e-mail address hidden from me. Any further questions can best be answered by FeedBlitz themselves.

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