Thursday, May 28, 2009

Page Numbers in SSRS

So I just spent 30 minutes trying to get a page number on the bottom of a report I’m building in SSRS.  30 minutes for a feature that I get in a button-click in virtually every other application that I have installed on my computer.

The adventure starts with this TechNet article that seems to indicate that this is all simple to do:

Adding a Page Number to a Header or Footer

Footers commonly display a page number. To display a page number in the header or footer of a report, create a text box in the footer and add the following expression:

=Globals.PageNumber & " of " & Globals.TotalPages

Ok, let’s do that.  Sounds straightforward enough.  Oh wait… then I get this:

The Value expression for the textbox ‘textbox1’ refers to the global variable PageNumber or TotalPages.  These global variables can be used only in the page header and page footer.

What the hell?  Ok, let’s do some Googling (which reminds me, I love that “To Google” is now a valid part of the English language… what a world).  This lead me to a few different forum and blog posts.  All of these seemed to indicate that I had to write backend code to make this work.  Stupidly, I thought “sure, why not? It seems totally reasonable that I should have to write custom code to get PAGE NUMBERS ON A REPORT”.

I realize I don’t get to write code that often anymore, never mind writing a report.  So I’m a little rusty.  But am I so rusty that I’ve forgotten my core lesson that “if it seems too complicated you probably screwed up”?

Thankfully writing this blog rant reminded me of that fact midway through this and I thought “alright, it’s gotta be me, not the tool”.  Of course, as always, foolishness usually lies with the user of the tool not the tool itself.  Suffice it to say there’s a BIG difference between a table footer and a page footer.  Whoops.

In my defence, adding a page number in Word (or anything like it) is about as simple as can be.  Given that SSRS is meant to simplify the creation of reports, why is it so hard to do trivial tasks?  Ok, I’m exaggerating, it wasn’t that hard.  But it’s always fair to blame the tool, right?

Monday, May 25, 2009

Web 2.0 & SharePoint

Last week, I went with a co-worker to a seminar at Microsoft on social computing with SharePoint. It was an interesting discussion with some very smart people.  A few of the central themes were:

  1. There are effectively two hierarchies that exist in every organization: a formal one and an informal one. The formal hierarchy is defined by reporting relationships and is generally well documented. It is also mostly useless. The informal hierarchy is the unwritten relationships that exist between people and forms the basis for how things actually get done. It is the reason why someone who is 4 levels down in the formal hierarchy is actually the most important person in the organization. This hierarchy is terribly served by IT.
  2. The tools that we use to collaborate and communicate with all introduce varying levels of social friction that ultimately impair the activity itself.
  3. There is an untold amount of tacit knowledge contained in people’s heads and that is flowed in discussions around the water cooler but is not captured or codified. This knowledge tends to disappear when staff leaves or when time erases our memories.

Successful social computing initiatives (i.e. Facebook, Twitter) seem to work because they manage to lower the social friction and distance between people.  And while the average person is using these tools more and more in their personal lives there is a great vacuum in their professional lives because “Corporate IT” has not kept pace.  A great example is the basic fact that the internet looks and works so well and intranets look like high school computer science projects.

SharePoint is a great tool for helping people to collaborate around documents but its “social computing” features (i.e. the My Sites) are still quite primitive.  SharePoint 2010 may bring new tools to the table but ultimately the issues to be resolved are cultural, not technological.

Over the next few months I will be spending considerable effort on attempting to solve some of the social friction problems that exist at my organisation.  How can we collaborate better?  How can we capture tacit information?  How do we capture ideas from the broader community and distil them into action?

Saturday, March 28, 2009

Heat

I just finished reading "Heat" by Bill Buford. It's a must-read for anyone who's interested in the mysteries of a professional kitchen or the rhythm of preparing food traditionally.
When I started, I hadn't wanted restaurant. What I wanted was the know-how of people who ran restaurants. I didn't want to be a chef: just a cook. And my experiences in Italy had taught me why. For millennia, people have known how to make their food. They have understood animals and what to do with them, have cooked with the seasons and had a farmer's knowledge of the way the planet works. They have preserved traditions of preparing food, handed down through generations, and have come to know them as expressions of their families. People don't have this kind of knowledge today, even though it seems as fundamental as the earth, and, it's true, those who do have it tend to be professionals - like chefs. But I didn't want this knowledge in order to be a professional; just to be more human.

Personally, I can't think of a more perfect life journey.

Thursday, March 26, 2009

Alice's Restaurant

Went for dinner yesterday to Alice's restaurant on College. It's a sparse dining area with some wonderful photos from a local photographer (oversight on my part by not finding out the name). Chef Jason Pekka Woods has cooked at Toque, North 44 and other places so he knows his way around.

First, the good. I started with a sea scallop appetizer. The scallops were well cooked with a satisfying crust and were paired with grilled apples, rocket and what I believe was strawberry puree. The dish was well executed overall but the fruit puree was too sweet and generally tasteless (hence the "I believe" in the previous sentence). A sharper raspberry with higher acidity would have played better with the grilled apple.

The main was a lamb shoulder confit on a bed of rice with other accompaniments. As in all confit preparations, the risk here was that the meat would be dried out and unfortunately chef Woods' lamb was not completely spared. While it was generally tender there was a distinct, unpalatable dryness towards the centre. Also, oddly, the lamb was couched on top of a candied orange slice (?). Normally this would have been fine but since the restaurant seems to market itself around seasonal, local food this was a bit of a cop-out (I fact admitted by Woods himself during a pleasant discussion after the meal).

The big disappointment in the evening was with the wine list. Chef Woods is attempting to cobble together an Ontario-only wine menu but unfortunately the wine does not match the quality of the food. Three bottles were put away with gusto: Legends pinot noir, an unremarkable syrah whose name escapes me and something called an "arcanum" (Peninsula Ridge Estates, 2001). All of them suffered from the same narrow, impoverished flavour profile. As always, Ontario wines continue to disappoint with their lack of character, overall thinness and simplicity. If I go back to Alice's I will most certainly be bringing my own wine.

That being said, will I go back? Possibly. The service was top notch, the food - while not mind blowing - was certainly reasonable and the pricing was not outrageous (it helped, of course, that I wasn't buying). Still, given the competition in this space (including restaurants close by on Ossington) it may be some time before I return.