Server Install Cheatsheets from PowerPivot Geek

December 29, 2009

Dave Wickert has posted an updated set of PowerPivot server install steps that you might find helpful.  There is a separate walkthrough for each of multiple different server configs.  Some of these were written by the folks on the team that do this stuff all day, everyday.  Good stuff.

Check them out here.


The death of pie charts?

December 23, 2009

“The customer is always right”

-Anyone who knows their business

A business intelligence feud!

A few weeks back, a BI analyst posted a list of factors to consider when selecting a new BI tool.  Shortly thereafter, a BI blogger posted a scathing critique of that article.  The analyst, for his part, then blasted the blogger on Twitter (and curiously, re-linked the blogger’s offending post).  By BI community standards, this is a feud of uncommon proportions.

I don’t really want to get in the middle of such an entertaining exchange, but I feel compelled to offer at least a short comment.

You see, the analyst had the audacity to suggest that the number of visualization types (charts, gauges, etc.) supported by a BI tool is an important factor for potential customers to consider.  Perhaps he was unaware of the newly prevailing wisdom:  fancy visualizations are bad for you.  Simpler is better, 3d is a distraction, pie charts are passé,  and gauges/stoplights are toys.

I think that point of view is at least partially misguided, and while rooted in scientific fact, it misses something fundamental about human psychology.

The prevailing wisdom of the chart police – three examples

1) Use Bar Charts Instead of Pie Charts

Three Color Bar Chart Pie Chart

Simplest Visual Comparison

Same Numbers, Harder to Compare

There is research proving humans are good at judging the relative lengths of objects, but bad at comparing the relative sizes of areas.  (Although I’d submit that, in college, my friends and I were masterful estimators of pizza subdivision, so perhaps the human race as a whole is just out of practice).

2) Avoid 3d and Other Effects

…because again, they just make visual comparisons tougher.

3d Bar Chart Pretty Bar Chart

Not Acceptable

Probably Earns You a Lecture

  Basic Bar Chart  
 

Boring Yes, But Efficient

 

3) Gauges and Stoplights are Just Plain Silly

KpiGauge200Up  Stoplights Modified

…and apparently animated bubble charts have also come under fire lately.

Is Your World Frictionless?  Mine either.

Remember in physics class, how we were often instructed to ignore the effects of friction and/or air resistance?  That was helpful, in an instructive way – we learned useful principles.  But you can’t apply those in the real world without factoring friction back in.

A similar thing is happening here.  And the friction that’s being ignored in this case is the human attention span.

Before someone can begin breaking down and interpreting a chart or other visualization, they must first decide that it’s something worth paying attention to.

powerpivot icon And most people love eye candy.  They just do.  It’s fun to look at cool pictures, and fun draws people in.  For example, some of my friends worried about the 3d chart appearance of the icon I chose to use for my site.  “It runs counter to the prevailing advice about charts” was the concern.  (You might notice that the PowerPivot field list never creates 3d charts – discretion is the better part of valor, even in software).

But when I took a vote amongst my friends and colleagues, this icon was the overwhelming favorite, with more than 2/3 of the respondents selecting it as their first choice.  It was not well-liked by the other 1/3, however, who happened to be the people I already regarded as the pickiest people I know :)

Show Some Restraint, but Always Play to your Audience

Here’s what I now believe:  the Chart Police are loud and influential, and they have good information to share, but they do NOT represent a broad cross-section of the public.

Wisdom dictates that you give your audience what they are most likely to engage with.  So, if your report audience is mostly normal people, feel free to spice things up a bit.  Don’t overdo it to the point that the original point is obscured, but make it fun.  Make it attractive.  Because your message won’t mean a thing if they don’t engage with it first.

If you know your VP likes their reports to contain pie charts, or 3d charts, or even animated bubble charts, by all means, deliver them.  Don’t feel like you have to re-educate everyone about the sins of these things.

Of course, if your audience a bunch of college professors or professional graphic designers, I recommend following the chart police guidelines closely, because they very well might think you an amateur if you do not.

This isn’t a question of right or wrong, really.  You just want your message to have the highest uptake possible.

Personally, I’d love to see studies that measured both the accuracy of the information conveyed by various visualizations, combined with the level of audience engagement.  I really do think the Chart Police are onto something, but I think the story is unfinished as it stands.

Further Reading

I generally think of Edward Tufte when I think of the chart police.  I’m not at all certain that he is the source of the venom that I see on the topic, though – I tend to think that he just identified some things that had previously been ignored, and then people who read about that picked up torches and pitchforks.  Regardless, he does fantastic work, and notably is also an artist.  Browsing his site is definitely a good use of time.

I also thoroughly enjoyed Eye Candy is a Critical Business Requirement.

Back Next Week

I’m visiting relatives in Chicago right now and don’t have access to my PowerPivot machines.  So this was a good opportunity to cover this chart topic that’s been on back burner for weeks.  Next week though, I’m moving ahead with DAX, might be finishing (!) the Great Football Project, and I have a couple of other reference topics about PowerPivot that I’d like to start compiling.

See you then!


The anti-inspiration for PowerPivot UX

December 18, 2009

(As the holidays are upon us, I’m falling into an even slightly less formal mood…)

You’ve probably heard that at Microsoft, we spend a lot of time on user experience design.  Many iterations, lots of psychological evaluation (of the software, not the engineers), and some pretty sophisticated usability laboratory testing.

Up front, we also develop a number of conceptual mockups (screenshots or slide decks) that demonstrate to everyone the vibe that we are aiming for.  These serve as inspiration throughout the product cycle.

For PowerPivot, we also took the extraordinary step of identifying a screenshot of what we wanted to avoid.  Check out this controller guide from a recent video game:

Explicitly designed PowerPivot to NOT look like this

OK, not really.  This was created by the guys at Penny Arcade, one of my favorite reads.

But the spirit is the same.  How many manuals have you opened, seen something that essentially looked just like this, and then immediately put back down?

Happy Friday :)


DAX CALCULATE, and Rapid Iteration

December 16, 2009

Ok, in the last football post, I had written the following measure:

          PowerPivot DAX Calculate Zoomed

Which basically means, “sum up the [Yards] column but only those rows with [PlayTypeName] = “RUN-run” “

Now we get to find out if it works :)

I need some real-world data that I can validate against.  Out on NFL.com I can find historical player stats.  Let’s look at one of my favorite players from recent years, Priest Holmes.  He amassed a lot of Rushing Yards and should be a good sample.  Here are his statistics by Game for 2004:

          Priest Holmes 2004 Rush Yards

OK, so let’s make a PivotTable that just shows Priest’s 2004 Rush Yards by Game, and compare that to the Rush Yards column from above:

         PowerPivot Says Same Numbers as NFL          Priest Holmes 2004 Rush Yards Zoomed

                           My Pivot Table                                      From NFL.com

Bingo!

“You know sometimes I even impress myself?”

-Han Solo

An exact match!  That might seem a bit bland to you folks out there, but to me, it is VERY exciting.  I’ve got 40+ tables, a Plays table that is loaded with crazy complexity, no database training whatsoever, and yet…  I now have a measure that agrees, DOWN TO THE YARD, with NFL.com!

Wahoo!  In all honesty, when I started this project, I had no idea how far I could go.  I intentionally chose something that *might* defeat me.

I’m feeling pretty darn optimistic now, though :)

I’m suspicious, however…

I recall that my Plays table contains multiple rows per play, so that, for instance, it can capture data about the *defensive* players involved in a play:

Single Rushing Play

Right there, a single play, three rows.  One for the runner himself, one for the player who tackled him, and another for the player who assisted the tackle.  That will come in handy when I get started looking at defensive stats.

But for now, I suspect that means defensive players are getting credited with rushing yards, too.  When I filter to Antoine Winfield, the Assister from above, my PivotTable confirms my suspicions:

         Antoine Winfield Rushing Yards

What we are seeing there is the total net yards of running plays in which Antoine Walker was involved in tackling the runner.  I don’t want that.

But all I have to do, then, is add another clause to my CALCULATE function.

Calculate Function Fixed

And now the pivot table shows:

Antoine Winfield After Fix    Priest Holmes After Fix

Priest Holmes is unchanged.  Antoine Winfield now has no rushing yards.  Perfect!

CALCULATE is good.  CALCULATE is your friend.

“OK Rob, a whole post just so you can make ONE change??”

Yes.  I spent more time than usual on this.  Here’s why:  Everything above took me less than 10 minutes in real time.  It took far longer to capture the screen shots than simply to blaze through it.

But when I worked with a BI consultant, a few years back, the same exact iteration took about a week.

PowerPivot Compared to Traditional BI Development

How do we account for the difference?  Is it because the consultant produced better results?  Was the Rushing Yards measure more accurate or robust than mine?  Was it somehow more formalized, more robust?  Or was the consultant not very good?

The answers are no, no, no, and an emphatic “no.”  (The consultant was fabulous, akin to godlike.  There’s that word again – “akin.”  Why do I keep saying that?)

The real difference, as I’ve said before, is that with PowerPivot, the “modeler” and the “business user” are the same person.  I’m the one writing the expressions, and the one who knows the most about what I want, because I know the “business” (football, in this case) inside and out.  Iteration in one person’s head is blazingly fast.

  1. Finding the comparison stats on NFL.com – Only the business user knows where the best validation data sets are.
  2. Creating the pivot for comparison purposes – even just choosing my player for comparison reflected business knowledge. 
  3. Realizing that I likely was incorrectly counting defensive players in my measure – because I had access to the source tables and the “business rules” in my head, I spotted this problem before it ever made it into a report.

Seriously, this was like a trip down memory lane, on hyper fast forward.  I’d get a cube from the consultant, build some pivots, see that things were not accurately reflecting football rules, point out the problem, wait for the next version, repeat.

Not anymore :)

“Are you saying we don’t need BI Pros anymore?”

No, I am NOT saying that.  Even in this football example, I am cheating.  The original data from STATS arrived as a jumble of text files.  The schema was terrible.  Many of the required attributes (like the score of the game on a particular play) were completely missing.

There was a TON of work, done by the BI professional, to get from that horrible mess to the 40+ tables that I am working with now in PowerPivot.  And there is no way, no way at all, that I could do that myself – not back then and not today.

In terms that an MS BI Pro understands, the Integration Services work remains.  In fact, it becomes even more important, since you need to make the resulting schema not just work for people like you, but also for people like me :)

But the Analysis Services work – you can start sharing that with the Excel business users.


PowerPivot.com Revamped

December 15, 2009

In case you hadn’t seen, there have been big changes to the official PowerPivot site recently.

Three things in particular worth checking out:

1) Hands-On Demo of Published Workbooks Web Apps

Wanna see what a PowerPivot report can look like once it’s published to SharePoint?

No need to just look at screenshots or recorded demos – you can try it out yourself!

    Click here to interact with live PowerPivot apps!

2) Library of new videos

Michele Hart is a tech writer for the PowerPivot team, and she has quite a cool series of videos going.  She already has a dozen great videos posted, going from install of the client addin up through data import, relationship creation, etc.

   View the videos!

(The “HOW TO” videos are the new ones, at the bottom.  And don’t forget to scroll left and right thru the list).

3) Online Virtual Lab

OK, this isn’t new, but if you missed it before, be sure to check it out.  You can run the entire PowerPivot client environment without installing anything locally.  It’s pretty cool, both as a PowerPivot demo, and as a demo of the general-purpose power of virtualization and remote connections.

   Check it out here

(When exploring the lab, make sure to at least skim the instructions on the right, since it tells you where you can get data to import).

Feedback?  Let me know!

If you have any feedback on any of this official content, you can let me know on the blog here or via email (rcollie@microsoft.com) and I will make sure it gets to the right people.

…now back to informal content :)


PowerPivot DAX: CALCULATE is a supercharged SUMIF

December 14, 2009

Marcellus Digs PowerPivot Calculate()

 

“No [doubt] she’ll freak.  I’m just contemplating the =IF()’s…”

   -Marcellus Wallace, obvious master of the spreadsheet arts

 

 

 

I can’t believe I didn’t say this last time:  =CALCULATE() is a lot like =SUMIF(), which is a function that Excel gurus know and love…  and sometimes hate :)  SUMIF and its cousins like COUNTIF and the plural SUMIFS are often indispensable.  When you want to perform an aggregation on a table, but just include rows that meet a certain criteria, the SUMIF family is often where you turn.

But SUMIF has a few limitations.  First of all, the conditional syntax is kinda awkward.  Second, if you want an aggregation that is not covered by the functions provided, you are out of luck – there is no MAXIF, for instance.  And you cannot use any of these functions inside a PivotTable, which, when you think about it, would be one of the most useful places to employ them.

=CALCULATE() fixes all of those limitations, and then does things you wouldn’t think to ask for :)

Calculate Function 2

The syntax of CALCULATE()

     =CALCULATE(<aggregate expression>, <filter1>, <filter2>, … )

<aggregate expression>

This is basically anything that would itself define a measure.  The following are all legal examples:

  1. SUM([Column])
  2. SUM([Column1]) / MAX([Column2])
  3. The name of another measure that’s already been defined

Pretty cool huh?  Literally you can CALCULATE on any aggregate expression you can dream up – even another measure that you defined before, like my “Avg Sales per Day” measure from the temperature mashup demo.

<filter1>, <filter2>, …

And then you can conditionally evaluate that aggregate expression based on any number of filters you’d like to apply.

Valid examples:

  1. [ColumnName] = “Foo”
  2. [ColumnName] >= 6
  3. ALL([ColumnName])

Which is to say, that the syntax is exactly what you’d expect it to be :)

The power of ALL() is truly revolutionary

That ALL() thing is pretty unexpected though – it lets you create measures like “All-Time Sales” – if you set ALL([Date]) for instance, the resulting measure will respect all of the filters in the pivot table…  but not any filters on Date, meaning that even in a pivot sliced to Year = 2009, you could still see a measure that showed Sales for all years combined.  Useful in some cases for sure.

Of course, you can also create a CALCULATE expression that employs ALL() as a filter, then use that CALCULATE as the denominator of a measure.  Something like:

     =SUM(SalesTable[Sales]) /

     CALCULATE(SUM(SalesTable[Sales]), ALL(SalesTable[Sales]))

Would give you a measure like “Percentage of All-Time Sales.”

ALL() warrants its own post, and perhaps multiple posts, so I will revisit this later.

But in the meantime, back to football :)


Microsoft Unveils New Programming Language: XL#

December 11, 2009

The wonders of WordArt

REDMOND, WA – New programming language will revolutionize business application development     

OK, yeah, that’s not a real story.  I just made it up, sorry :)

But imagine how perceptions would change if it were true, and instead of being an Office app, Excel were to morph into a professional development tool.  Maybe we’d call it Business.NET or something like that instead of XL#.  A flexible programming environment for codifying business rules, crunching raw data, and visualizing results.  With a rich Windows client runtime library as well as a webserver runtime for processing and rendering on beefy, rack-mounted server farms.

That would be pretty cool wouldn’t it?  Excel gurus could transition from their Excel environments over to Visual Studio without missing a beat, and suddenly they’d be given new job titles like “Lead Business Logic Developer,” “Senior Analytics Programmer,” or “Rapid Modeling Engineer.”

In their new roles, they might be re-org’d into IT.  But they’d retain a very close affinity with the business units themselves – no matter who they reported to, they’d sit on the boundary between IT and the business unit, serving as both diplomat and translator between those two worlds.

And the apps those folks produced would be regarded as very different animals than they are today.  No longer would they labor to produce mere documents.  They would be producing business applications.  And given that increased gravity, everyone, including this new class of developers, would treat these applications in a more disciplined manner.  They wouldn’t just be anonymous files living in shared folders or inboxes somewhere, ready to cause trouble when an external change breaks their assumptions and disrupts the business operations.

Of course, the punchline is, most everything above is already true, except for the human perceptions.

Excel files are NOT documents!  They are applications!

                  et_hiding_thumb[1]

                  Pop Quiz for IT:  Can you spot the critical business app?

Yeah, I know.  Excel is part of the MS Office suite, just like Word, PowerPoint, Outlook, and OneNote.  So clearly, Excel files are just document content, just like those other applications, right?

Nope.  Excel is a development tool.  And no, I don’t mean “if you use VBA.”  The sheets are data structures.  Cell addresses are variable names.  Formulas are the core programming language.  Things like relative reference and formula filldown are the iterative constructs.  Charts and Pivots are data-bound controls.  Excel.exe is both the programming environment as well as the runtime.  (And now Excel Services serves those roles on the web).

(In fact, when I worked on Excel, one of the exercises we used to run through was to compare Excel to other programming platforms, and use those other platforms’ features as inspiration for new spreadsheet features.)

Excel has certainly benefited from being an Office application, so don’t get me wrong.  It would not be remotely as widely-adopted as it is today had it been marketed as a dev tool rather than as an Office app.  But I do want to point out that there as a side effect of being an Office app, the world’s most popular programming tool is perceived incorrectly.  It does not produce documents, it produces applications…  and then those applications get treated with the same informality that documents do.  Like an alien hiding amongst the stuffed animals in Drew Barrymore’s closet.

“OK Rob, I get it.  What’s your point though?”

I’m still thinking my way through this, but I’m pretty sure it is leading me somewhere worth going.

So far, I’m basically thinking that the most successful PowerPivot deployments will involve a new cultural view of the Excel professional.  A view that is at least very similar to the “what if” exercise I played out at the top of this post.

This line of thinking is also in some ways a “sequel” post to the “I” in “BI”, Part Three post.

What does everyone else think?  Are perceptions malleable enough for us to get there?

And credit where credit is due:  Dick Moffat was the inspiration for this post.  If you want to hear someone rail (quite convincingly) about the improper respect given to Excel applications and programmers, look him up on Skype or drop him a line on his blog.

Or even better, drop in at Tony Packo’s next time we get together, like we did this week with Mr. Excel.  Good times, good food, and even better conversation :)


Putting the “Intelligence” in “Business Intelligence,” Pt 3

December 10, 2009

“All we are saying, is give peace a chance.”

-J. Lennon

In Part One I described how standardized corporate BI bummed me out my first time around, then in Part Two described how PowerPivot recharged my batteries and brought me back into the fold.

This time, my first order of biz is answering the question:

Why shouldn’t all of this self-service make IT really nervous?

Short answer:  it’s all about the server – PowerPivot for SharePoint.

Think of it this way:  most of the “trouble” with Excel as a reporting and BI tool has nothing at all to do with Excel the application.  The trouble, actually, is with Excel files.

    Excel Files are the Problem With Excel BI

When you use PowerPivot for SharePoint, though, Excel Files become PowerPivot Web Applications.  And that makes all the difference in the world.

What do I mean by that?  Let’s step back for just a moment and consider the common complaints about Excel.

Excel as a reporting/BI tool – the three common complaints

1) “We don’t even know these files exist”

Yeah.  Spreadsheets can become awfully important to the business without IT ever hearing about them.

That’s because files are sneaky like that.  They hide in doclibs and shared folders, right next to the static docs produced in Word and PowerPoint.  They flow from person to person in emails.  So IT never hears about them until something goes wrong.

A published web app, by contrast, cannot hide.  It relies on the server to execute it.  And servers don’t hide like files do.  In fact, IT’s help is often required to get the server in the first place.

   PowerPivot Reports Rely on the Server to Execute

Even better, the PowerPivot server provides a usage dashboard that shows all of the PowerPivot reports published to that server, how often they are being used, by who, etc.

2) “Spreadsheets break”

Yes they do that on occasion.  But why?  It’s not like the contents in the file simply go rotten.  Most often, something external changes.  A data source that the spreadsheet relies on gets moved or renamed.  The spreadsheet author responsible for updating it each day is out sick (or leaves the company).  Another business process, policy, or business rule gets updated without consideration of the spreadsheet.

Notice how most of those are an awareness problem.  If IT knew about the spreadsheet in question, they would be much better-prepared to avoid changes that break them.

And the other source of problem – the author is not around to update them with new data – is precisely the reason why the PowerPivot server has an automatic data refresh feature that updates reports on a scheduled basis.  You know, just like all other respectable data-driven web applications.

3) “Spreadsheets get out of date, and out of hand”

This is another drawback to using files as business apps.  You create a spreadsheet, make sure it contains the latest data and logic, then you give it to people…  and immediately lose ALL control over it.  Some examples of why that isn’t fun:

  1. Those people can then modify the spreadsheet in ways that give them incorrect results (usually, this is unintentional, but on occasion is rooted in unethical motives).
  2. Your data and business logic can then walk out the door – those files contain input data and results data that are often quite sensitive.  And even the formulas themselves represent a lot of intellectual property.  All of those can leak once they are packaged in a file.  And again, that can be either accidental or malicious.
  3. Good luck pushing out updates – when you revise an existing spreadsheet, how do you make sure everyone adopts that latest version?  Older versions are sitting in dozens or potentially hundreds of inboxes and hard drives.  Ready?  Go!

If your method of sharing is to publish it to a PowerPivot server, though, all of that goes away:  Users can interact with the reports but cannot download the files!

    PowerPivot Server Interaction Model

No more accidental or malicious modifications.  Accidental leaks go away, and malicious leaks are confined to results data only – no input data or formulas are visible in the web reports.  And users simply cannot help but always get the latest.

See that, IT?  Those Excel users that are such a thorn in your side (and vice versa) basically have the same problems you do.  The conflict between you over the years – all you needed was better tools.

It’s going to take some adjustment of course.  But peace, cooperation, and better results are worth it :)


DAX’s CALCULATE() function – Pivots will never be the same

December 8, 2009

“It’s been a long time since I rock-‘n-rolled…”

-Robert Plant

THE GREAT FOOTBALL PROJECT RETURNS!  Oh yes, it has been a long time indeed.

When I last worked on the football project, I had designed my first report and started the process of better understanding my source data, primarily using the =RELATED() function.  I mentioned a couple of times that the yardage totals being displayed were not yet trustworthy, and that they needed a lot of work before they were accurate.

Let’s get started on making them accurate, because, well, accurate is good.  We like accurate.

A Modest Proposal:  Rushing Yards First

Rather than boil the ocean, let’s start with the simplest type of play in football:  the running play.  Someone takes the football and just runs with it, and hopefully, makes positive progress down the field (measured in yards).  This is often called a “rushing” play, and it generates “rushing yards.”

So ultimately, I want a PivotTable that shows me a list of players, and their Rushing Yards in various situations.

My Source Table Looks Like WHAT??

So far I have just been adding the Yards field to my reports, yielding a Sum of Yards column:

                      PowerPivot Yards by Player

But my source table (the Plays table) typically contains multiple records for a single play, with each record detailing a different player involved in the play, and their role.  Check THIS out:

PowerPivot Multiple Records per Play

Um…  yeah.  There are a multiple rows per play AND a bajillion types of plays.  And they are all mixed in there in one table.  Scanning the screenshot above and applying my knowledge of football, I can say that only ONE row should actually count toward Rushing Yards.

I believe the technical database schema term for this sort of thing is “icky.”  But I don’t think we can blame anyone for this.  Really, football is pretty complex – for a given event, the amount of data that we want to capture can vary tremendously, simply based on what type of play it was, and even based on what HAPPENED on the play.

That’s pretty complex.  But PowerPivot has a secret weapon for this sort of thing.

Und now’s the time on Sprockets when we Calculate!

In traditional Excel, I would solve this problem like this:  I’d create a new column in the Plays table, name it [Rushing Yards], and then use =IF() to give that column a value only when it indeed supposed to count as Rushing Yards.  Then I’d add the Sum of that column to my Pivot.

But as I repeat that process for every other type of yardage – passing, receiving, etc., I’m going to make an already unwieldy table even larger, which makes my life harder (more scrolling) AND increases file size.

In PowerPivot, I don’t have to do that.  I just go straight to the Pivot Table itself and add a new DAX measure:

PowerPivot DAX Measure Using Calculate Function

Let’s zoom in on that formula:

PowerPivot DAX Calculate Function

That’s pretty simple.  The first param is the numerical quantity you are trying to measure – Sum of Yards in this case.  All subsequent parameters are filters/conditions that you want to apply while evaluating that quantity.  Which in this case, is Play Type = “RUN-run”

In the next post, I’ll tell you whether that works :)    And explain in more detail what’s going on here.  If my voice is feeling better, I will do it as a video.  But for now the quiet masses who prefer text and pics may rejoice :)


An oldie but a goodie: The Evil Pivot Wizard

December 8, 2009

Had a wonderfully entertaining and intriguing discussion with someone today that brought this back to mind.

A few years ago, someone posted a survey on SlashDot, asking “Who is the most powerful wizard?”  The choices were things like Harry Potter, Voldemoort, and Gandalf.  But there were some entertaining write-in votes as well.

My favorite, of course, was this one.  And remember that SlashDot is not exactly a pro-Microsoft forum:

“The Excel Pivot Table Wizard’s magic is both arcane and available for use by mere mortals. Forged in the fires of the dread mount Microsoft, wrapped in evil, the Excel Pivot Table Wizard freely gives to all men willing to read two pages of documentation. By aligning yourself with him, you become master of the office, performing tasks in seconds that would take the peons working in the mines with you eons to accomplish through normal means. The wizards magic is irresistible, locking you into an enchanted dungeon of a single proprietary operating system and it comes at no mean cost for you or your company. But in the end, should you wish to win on the field of economic battle, you must ally yourself with the Excel Pivot Table Wizard.”

Hilarious.  I had that tacked to the door of my office for several years.  (I also love the author’s struggle between his anti-MS prejudice on one hand, and his simple acknowledgment of the value on the other.  We all struggle with something I guess.)

Anyway, I’m brewing some tea and settling in for some work on the Great Football Project.  I’ve been away from it for too long and it is time.