May 2007 - Posts
I suppose this might be in the manual, but...
If you want to rename a Build Type that you have created in a Team System Project, you need to open the Source Control Explorer window, dig down into the TeamBuildTypes folder under the project, and rename the folder that corresponds to the build type you want to change. After you check in that change, refresh the Team Builds folder in Team Explorer and you'll see your newly named Build Type.
Remember to change any scheduled tasks you may have created to run your builds automatically.
One more thing about naming Build Types - because we like to have an email sent out to the team members after a build, we have found that a naming convention for the build types helps make it easier to easily recognize and organize the build notifications. We use a standard that includes the environment, the Team Project name, and the sub-solution as the name of the build. So we have build names like
DEV Slam Customer Website - This builds the CustomerWebsite.Sln in the $\Slam\DEV branch.
QA Slam Customer Website - This builds the CustomerWebsite.Sln in the $\Slam\QA branch.
DEV Slam Monitor Service - This builds the MonitorService.Sln in the $\Slam\DEV branch.
QA Slam Monitor Service - This builds the MonitorService.Sln in the $\Slam\QA branch.
Having the project name in the build type helps because if you are a subscriber of lots of different builds for different projects, you cannot tell by looking at the email (other than this naming convention) which project the build is from.
The evening reception was at the Experience Music Project/SciFi Museum Hall of Fame. Gary and I walked through the SciFi Museum. It was really great, lots of memorabilia from all the TV series, movies, as well as books, comics, magazines, scripts, photos, videos. Really cool. The only underrepresentaed Sci Fi series was Dr. Who - I saw one thing from that, the "Fun Gun". No Daleks. Gary has read a lot of sci-fi I found out.
I thot it was going to be a banquet and awards ceremony - they had awards, but it was more like a standup reception. No tables except in a tent outside. It was pretty stuffy inside, so I hung out with Gary in the fresh air (well, he was smoking, and so was a lot of others around me, but for the most part it was fresh air).
It would have been a great night to have my wife along - she would have loved the sci-fi museum (and the Experience Music Project, very little of which I saw), and she would have been a classy-looking woman to have with me too. We'll come see this place another time.
Tomorrow morning keynote is Steve Ballmer. Somehow the chant "Business Intelligence, Business Intelligence, Business Intelligence" or "Information worker, information worker, information worker" doesn't really roll off the tongue. What will be his hook tomorrow?
Apparently the Power Hour has been something that has been happening at TechEd in past years. I vaguely recall seeing something about it once.
This was a great session - two slides in total I think. All demos, and the demos were different - kinda crazy, but still educational. Lots of free stuff thrown into the crowd. I got something for my daughter.
1st demo - Magic 8-ball vs Data Mining Neural Net algorithm.
In an Integration package, the guy took a table of customer demographics, and ran it in parallel through two different algorithms to predict whether the customer was a homeowner or not. One algorithm was a DM NeuralNet algorithm, the second was a Script that launched the Magic 8-ball window. Looking at the results, the 8-ball didn't do too badly. The demo was interesting in that it showed you could solicit feedback from the user who was executing it (the 8-ball was in a Windows Form, created on the fly in the package).
2nd Demo - by Hitachi Consulting, he demoed an implementation of Analytics for mobile devices. The framework they built helped push out reports, alerts, forms, to a mobile device. They used MS Communication Server to send an SMS text message to the phone, and when the phone received the text message, it used web services to pull back the content (alert, report, form, etc). So he sent out a "Price Change" alert. An RMA authorization form. A Sales report. He said they also had a method to ping the phone and tell it to erase all its content, in case it got lost or stolen. Very cool.
3rd demo - the guy said he wanted to find the geekiest thing to do with Integration Services. He took two sets of a million random numbers between 0 and 1, and through selection of them and applying an algorithm, he basically calculated the value of PI. He didn't tell us what it was until at the end it became obvious. Terribly geeky.
4th demo - The guy had built a custom reporting services item, which took in a dataset (a summary of sales amounts for three sales reps in three categories), then was an interactive KPI mechanism for displaying the data. It presented the categories and reps in a 3x3 matrix, with a green and red button in the corner of each cell. If you decided the amount was good, you clicked in the red button and the cell got an X. If you thot it was a good amount, you clicked the green button, and the cell got a green O. (Get it? X's and O's in a 3x3 matrix?)
Last demo - Using Performance Point Server, they showed a web page with ten suitcases on it, and they invited someone to come up and play Deal or No Deal. She won $10 (in play money I think). Her highest offer was nearly $485,000.
Between each demo they threw out schwag, like t-shirts and hats and stuff.
We should definitely try this the next demo we do at Imaginet.
A rolling stone grows no MOSS.
This guy was very MOSSy, because he didn't roll very much. I was nodding off in this session because the presenter wasn't very passionate, or funny, or showing me anything that hadn't already been shown in the keynotes, or at the MSDN tour in December.
(Microsoft Office SharePoint Server, btw).
Cool thing about SQL Server 2005 SP2 is that it adds much better integration of SS Reporting Services into MOSS, it contains the reports repository and the published reports become a document library, with much better web parts for integrating into Sharepoint.
I snoozed a little during this session. Good thing I did, because I was really glad I was awake for the next session.
Two thumbs down.
Well, it probably was a great session, but I got there five minutes early, and already there was 30 people waiting outside the "room" it was in. So I went for lunch instead.
Chalk talks are the 2nd or 3rd class citizens in the sessions here at the conference, but they have the potential to be the most valuable. At least from my perspective. These sessions are real world, not lovey-dovey like the main sessions.
Microsoft, the chalk talks deserve a 1st-class upgrade. Please, I'm begging you.
A woman who was formerly from ProClarity, now a product manager in the Performance Point Server group, presented this session on ProClarity.
"Interface to insight" - answering the WHY? in BI.
Tools for decision makers to explore large amounts of data and get rapid insight.
Simple data navigation, powerful calculations, and advanced visualizations of data.
Reports tell you what happened. Dashboards tell you what is happening now, and ProClarity Analytics helps understand Why it is happening.
ProClarity Analytics Server (PAS) is an IIS App. There is also a SQL database of business metadata. The clients are thin-client web-based, thick client web-based (ActiveX control), and Windows-based thick client.
This product, to me, addresses a lot of the "last mile" gap between SQL Server Analysis Services cubes and stuff, and the user.
the KPI builder helps make calculated measures with no MDX at all, easily, and publish to the PAS.
Advanced visualizations: heat map, like spaceMonger, shows boxes stacked together, with the size indicating one measure (sales amount), and the colour indicating another KPI (profit margin, good/warning/bad).
Decomposition tree - view a measure, break it down by category, then by another dimension, and so on. Hard to describe, cool to see.
She was great - perfect balance of architecture slides to show how the thing fits together, with lots of demo time with the product itself.
This morning's first keynote had content about Katmai, the next release of SQL Server. (there was other stuff before that, about the BI platform and pervasiveness and yadda yadda.)
SQL 2005 SP2 includes stuff for Excel for data mining. This tool takes an ordinary spreadsheet and applies a data mining algorithm to it, such as categorization. It submits the data to SSAS, builds a mining model, trains it with the data, and adds the results of the mining as a new column in the spreadsheet. All without the user needing to know anything about mining, other than what kind of scenario they want.
I remember seeing this in yesterday's keynote, where a tall, blonde, smart woman (she may have been from Canada, I saw her at the MS Canada thing at Fox Sports Bar last night) demoed a scenario. She took a table in Excel which was a list of prospects and their demographics. Someone who generated the list had started ranking the prospects, but we didn't know how he decided their ranking. he had maybe 10% of the rows ranked. She took those rows as an example, submitted it for data mining, then it determined the rest of the rankings for the other rows, based on the example rankings. Very cool.
This morning's demo showed another bunch of marketing prospects and their demographics. He submitted them for mining, asking it to categorize them into three groups. Group 1's demographics suggested that they were good prospects for SUV's (#children, age, income). Group 2's demos was more "poor student" starter vehicle types, and the third group was good for selling bicycles to.
The coolest thing I thot was that this used the data mining engine in SSAS without needing a cube or anything, it left the spreadsheet as a plain spreadsheet, and the user didn't need to understand all the data mining stuff to do it.
Katmai will be shipped in 2008. He didn't say WHEN.
Some new datatypes natively supported - filestream, spatial coordinates, new date/times. It will include an Entity Data platform in .NET managed types, and LINQ of course. It'll support the occassionally-connected database (like mobile databases) and handle the synch stuff better.
Microsoft bought OfficeWriter from Artisan, which is a set of tools that lets users author reports in Excel or Word, using the features of Word/Excel, and then publish the report to Reporting Services. Very nice. It was a "whyt didn't I think of that!" moment. Seemed simple enough to do.
The spatial datatypes will be supported in the query optimizer and the indexes, so you can do geographical queries very quickly.
Dr. Robert Kaplan, Harvard Business School, creator of the Balanced Score Card methodologies.
Balanced score cards help business determine/measure their performance on more than just financial metrics. It helps to measure the more intangible assets, like quality, customer relationships, employee skills.
There is a BSC for non-profit organizations too, which adds the mission perspective (how do we have an impact?)and support perspective (how do we attract resources and support for our mission?).
Most organizations do not know how to execute a strategy.
Principles:
1. Mobilize change through executive leadership.
2. Translate strategy to operational terms.
3. Align the organization to the strategy.
4. Motivate to make the strategy everyone's job.
5. Govern to make strategy a central process.
Mission - why we exist
Values - what is important to us
Vision - what we want to be
Strategy - our game plan.
Usually there is a gap from the Strategy to operations. We need to link the strategy to the operations (and it is a two-way street). the balanced scorecard and the strategy map are ways to bridge the gap.
Not all loyal customers are profitable. With time-driven, activity-based costing, you determine the actual cost of your customers. 20% of most-profitable customers generate 180% of the profit, and 20% least-profitable customers lost 80% of the profit.
Strategy map has perspectives: Financial, Customer, Process, Learning.
Motivate so strategy is everyone's job.
CEO walkthrough with strategy map - asks a random employee, what is this? (should identify the strategy map - if not, it indicates a problem with that employee's *supervisor*). Can you explain it to me? Sorry I interrupted your work. How does what you were just doing link to the strategy map?
Communicate the strategy seven times, in seven ways. Brand the strategy!
The evening was the Partner Pavillion Expo reception. Open bar and light supper and you wander around the booths. Microsoft has areas where you can talk with the product managers. They have tables marked "Reporting and Analysis", "Integration and Data Warehousing", "Database engine", "ProClarity", "Performance Point Server", yadda yadda yadda. I wanted to talk to some of them from the Analysis Services team, to talk about the mutli-developer scenarios that I had been going through with my customer, and some of the problems I have had with team development in Analysis services. But I couldn't tell which guys were the SSAS ones, which MS people were just wandering around themselves, and I'm not great at starting up conversations with people I don't know anyway. And I wasnt' with anyone who would help bolster my courage. So I wandered around the tables, looking like I wanted to talk to someone if only they would come up to me and introduce themselves. It sounds stupid I know.
I decided to go back to the hotel at that point, and chat with my DW for a while, and my boss was asking me about the day too. MS Canada was hosting a party at the Fox Sports Bar a block away this evening, and Gary, the sales guy from Imaginet who is also here, said he was going to go, so I headed down there about 9.
I guess MS Canada just had an area of the bar, because there was still other "non-geek" types there - as evidenced by their lack of conference lanyards. It wasn't immediately obvious which area was the MS Canada reception, but there was a busy corner so I went over there, looking for Gary. It soon became apparent that Gary wasnt' there, and there was no one there I knew. Ramon, a manager at Imaginet, and former MS Canada guy, had sent me some contact info for the MS Canada BI tech lead, whose name I have since forgotten, so he was hoping I would connect with him and introduce myself. The bar was fairly loud, I didn't really know anyone, and pretty much everyone was already chatting amongst themselves, so I'm not one to stand at the edge of a group and horn in. Or go up to a complete stranger and introduce myself. If Ramon had been there, he would have known probably 75% of the people there, and he probably would have introduced me (actually, he would have "talked me up") to anyone that mattered. His reasons to go to a conference like this (and Gary's reasons too I bet) would be quite different than mine. He would have gone to network, to make contacts, to find business, and to come home with $150k worth of leads.
Me, I come to these things to soak up the knowledge. To find the best sessions and learn stuff I don't know. I don't really like the vendor booths because I don't much like the sales pitch. I do try to think about how I would apply the things I am learning within Imaginet, or with my customers and on future projects. But I don't really think "hey, if we took that idea to Customer X, we might get $50k of work out of it". I suppose I should. My value equation, I think, is using the knowledge I gain from events like this to do my work better, to recognize ways I can add value to customers or leads when they come to me with a problem. Joel, on the other hand, is much better at this than I am, he comes out of these thigns with ten new product ideas, and a strategy to talk with a dozen of our customers about what they are missing because they haven't done X or Y yet, and look at what you could do! ("and the villagers dance," as he would say).
Today I was wondering at a couple points about my last customer - I view them as at the "tactical" level of maturity, because they see the value of BI at a department level, at the IT level there is support for it, but it isn't particularly engrained at hte management level. I am left thinking "it's too bad they don't think at the broader scale about this." I imagine that Joel would be thinking "how can I talk to the right people there, so that I can convince them they need to think of this at a broader scale." There's a difference there. I'm not sure I'll ever get to where Joel is. I could be wrong, I suppose.
This was the best session of the day for me. The guy from SQM (Solid Quality Mentors) was Spanish with a thick accent, but I found him easy enough to understand. Again, the chalk talk venue was bad, couldn't hear or see, so I sat in the front row.
He talked about what he had learned and put into practice for SSIS packages.
At the Dev level, you treat packages like source code. They should be in source control. You edit them with BITS (Visual Studio). You test them with local or dummy databases.
At Test and Prod, you treat packages like executables, compiled code. You never edit them directly (with VS for exmaple).
He likes to store packages in the SQL Server store (essentially, in MSDB), when you deploy them from source control to Test or Prod. That way they get backed up with MSDB.
Packages should have "Package configuration" enabled, and you should use consistent naming conventions throughout - starting with the package name itself, which should include the Solution and Project name, so that when deployed, you can trace the package back to the source control system.
Usually the connection managers in packages should be consistently named - they usually represent logical names for data sources and destinations, which are configured at execution time with physical names (according to the environment).
He uses the SQL Server configuration option to store much of the package configuration in a table in the database - you can have a configuration database in each instance of SQL Server for Dev, Int, Test, Prod, and they each have their own values for configuration. So the Test Config database has config values that point logical sources and destinations to the Test source and Test destination, and so on.
Then, he adds a second configuration which is an XML configuration file, that configures the ConnectionManager for the SQL Configuration database. The XML file on the Test instance then points the package config to the Test Configuration database, and so on. You must have the xml configuration for the Config connection manager listed above the entry for the SQL Config configuration for this to work properly.
At the customer I have been working with, we used Xml configuration files and environment variables, and stored our packages in the file system instead of MSDB. We ran into a roadblock because they have both Test and Prod SQL instances on the same server, and SSIS does not have the concept of named instances. I was trying to use Xml config files like source controlled files, and that doesn't quite work. I like the ideas he came up with and I'll start implementing them when I return to that customer next week.
This was a level 300 session.
It reminds me how much I don't know about SSAS. There's tons of stuff in the AdventureWorks analysis database that are good, meaty examples of design practices. Things like dealing with multiple currencies, charts of account, semi-additive measures, extrapolating measures at a smaller grain than the fact.
He showed dealing with multiple currencies - the measure in the fact table was always USD, but there was an original Currency ID as a dimension of the fact, so with an exhcange rates measure and a many to many relationship, you could have a conversion done using a measure expression. I've done this before, but he showed a few things about setting the IsAggregatable false, and the default member, and setting the Locale to show the proper currency symbol (which I'd tried but couldn't get to work right) that were useful.
Somehow he was debugging the calculated measures and expressions when he was using the cube browser! I've never thot of trying to set a break point on those expressions. Sheesh. It's like working int he dark for a long time, then someone comes in and turns onthe light you didn't know you had.
He showed extrapolation - he had a Sales Quota cube that was ont he Quarter grain of the time dimension - sales quota amounts were set quarterly. Then he used some expressions to extrapolate, in a weighted fashion, based on the previous year's sales, the monthly values. So if the quarterly sales quota was $10,000, and July had 40%, Aug had 35%, Sept 35%, the monthly quotas were $4000, $3500 and $3500.
Attribute relationships are extremely important in dimensional design. They can make or break your performance, and I need to understand them much much better.
He showed stuff around chart of account stuff, in a dimension, to make sure they aggregate properly - depending ont he account type. Revenue/Expense accounts are additive while some other types are subtractive or not additive at all. Again, I realized there's a lot I don't know here.
I wasn't lost in this session, but I was recognizing that I have encountered some of those issues, and in some ways managed to overcome them and sometimes I chose non-optimal ways I think. And there are fine distinctions that I don't understand, but I know make big differences.
I like getting humbled by sessions like this. There's always a bigger fish.
More Posts
Next page »