Test Notice

MSDN Events: Get cloud ready with Windows Azure

March 31st, 2010
Comments Off

The Microsoft ISV Developer Evangelist Team blog recently announced a free all-day training event covering Windows Azure:

In response to overwhelming feedback, we’ve organized a special, all-day FREE Windows Azure Firestarter event April 6, 2010, 8:30 AM – 5:00 PM (PT) at the Microsoft campus in Redmond, Washington to help developers learn more about how they can take full advantage of cloud services.  This one-of-a-kind event will focus on helping developers get ‘cloud ready’ and will include sessions about Microsoft’s strategic vision for the cloud, the end-to-end view of the Windows Azure platform from a developer’s perspective, as well as how to migrate your data and existing applications (regardless of platform) onto the cloud.

If you’ve attended a MSDN Windows Azure Event or watched a Windows Azure Webcast, this event is the perfect next step for you.  Not only will you get trained on Windows Azure, you’ll have a great opportunity to hear from some of our top Windows Azure experts and ask them questions about how to get started in the cloud with Windows Azure.

Seating is limited, so please register today to attend this exciting live event.  If you cannot make it to Redmond, the entire event will be simulcast online; registration is required to attend the online event, so sign up today to ensure you don’t miss a minute of this exciting event!

It sounds like it could be a good opportunity. You can sign up here.

Author: Pierre LaFromboise Categories: Blog Tags: ,

Friday Bullets

March 19th, 2010
Comments Off

Most of my attention this week was occupied with following Mix 2010. So, it shouldn’t be much surprise that a lot of these bullets stem from that.

  • BIDS Integration Story in R2 – The Good, the Bad, and the Ugly
    “There was a huge discussion thread about the BIDS-Visual Studio integration story in the SQL Server 2008 timeframe where customers complained that BIDS got married with Visual Studio. This required switching both BI and code projects at the same if you want to have a solution with both project types. What has changed in R2?” – [Prologika]
  • Programming Windows Phone 7 Series (DRAFT Preview)
    “A reboot is what Microsoft has initiated with its new approach to the mobile phone market. On February 15, 2010, at the Mobile World Congress in Barcelona, Microsoft CEO Steve Ballmer unveiled the Microsoft Windows Phone 7 Series and promised a product introduction in time for year-end holiday shopping. With its clean look, striking fonts, and new organizational paradigms, Windows Phone 7 Series not only represents a break with the Windows Mobile past but also differentiates itself from other smartphones currently in the market.” – [Microsoft Press]
  • Windows Phone 7 Series hardware specifications revealed!
    “Microsoft today at Mix officially revealed the hardware specifications of Windows Phone 7 Series. So, now all the manufacturers have to follow these minimum set of specifications for every Windows Phone 7 Series device.” – [Microsoft Feed]
  • Silverlight for Windows Phone
    “Silverlight for Windows Phone supports core Silverlight capabilities in managed .NET code with XAML…” – [Silverlight.net]
  • The Right MIX
    “Today at MIX ’10 we’re looking under the hood of Windows Phone 7 Series, showing people what this phone can do and giving designers and developers the tools and information they need to expand their horizons.” – [Windows Phone Dev Blog]
  • Introducing Expression Blend for Windows Phone
    “Windows Phone is an amazing platform to use and to design applications for. We are very proud to make a preview version of authoring for Windows Phone available with Expression Blend 4.” – [electric beach]
  • Developing for Windows Phone 7 Series
    “Some time back the team and I talked about our commitment to the Silverlight and XNA platforms on Windows Phone 7 Series as the primary developer platforms.” – [artificial ignorance]
  • ORAYLIS BI.Quality
    “ORAYLIS BI.Quality is a testing suite for BI solutions makes it easier to develop in an agile environment. The suite is based on NUnit and supports quite a lot of different testing methods.” – [CodePlex]

Ok, that was very phone heavy. What can I say? I am excited about the new platform. There are several videos posted on the official Mix site for many of the other keynotes and sessions. I recommend that you go take a look.

3 Screens, the Cloud, and Business Intelligence? – Part 2

March 16th, 2010
Comments Off

Traditionally, as stated in the previous post, when Microsoft is referring to the three-screen concept they are talking about PC, mobile, and TV. The actual devices behind each of these can vary. In fact I would go so far to say that the devices themselves are not the important component. How a user interacts with the device and how the device is connected to the cloud ultimately should determine how it is categorized within the concept. So, let me start with the PC and what that screen represent (at least in my opinion).

When you’re targeting the PC as one of the “screens” it is common to think of it as a computer with a monitor, keyboard, and mouse. If, however, you look at it as a primarily stationary device that is always connected and where users actively interact with it in close proximity of the display it starts to open up to more devices beyond the classic desktop PC. So, what kind of devices are we talking about?

How about a multi-touch PC mounted in a kitchen? A user walks up to it and interacts directly with the screen as opposed to a keyboard and mouse. But, the interaction takes place within the same general proximity as a traditional desktop. So, from a display perspective it needs to be optimized for close viewing.

An end-user is not going to sit down and type a novel on this device. Instead, they would use it to display recipes, maintain a family calendar, or watch video with a few taps of the finger. Yet, this is essentially still a PC and I do not think many would argue against it falling into the PC screen category. But, it does start the move away from what is thought of as the typical PC. And, I hope it starts you thinking about other possibilities as well. So, let us move a little bit further from the traditional PC again. How about a Microsoft Surface device?

Most of the Surface devices that have shown up in the wild have been in hotel lobbies, bars, and retail stores. And, for the most part they have been little more than a novelty. But, there is reason to believe that there can be more to this than what we have seen so far.

Several months ago I watched a video (of course I can’t seem to find a link to it now) where Microsoft demoed a Surface desk that was tailored to a factory supervisor. The interface itself was more like a sophisticated dashboard than traditional GUI and was fully multi-touch. On this dashboard the supervisor was able to see at a glance a schematic of the factory floor. Individual equipment on the schematic was color coded to indicate if there was a problem. For example, maybe a line was not meeting the production quota that is has been assigned. Or, perhaps maintenance had been recently skipped on the machinery. With a few taps the supervisor is able to see historical performance information as well as future data such as employee shift schedules.

The demo continued by showing additional cool features of the Surface device. For instance, the supervisor was able to perform and enterprise search for an electronic document by simply placing the hardcopy face down on the desk surface. All of this is very interesting and shows some real value.

Ultimately, the interface was seamless, customizable, and geared directly towards complementing the supervisor’s natural workflow. Here again, we have many of the same concepts of the traditional PC. But, it is really starting to open up some exciting possibilities; especially for BI. Certainly there are some big differences between this and the display that sits on your desk. Yet, I’d contend that this is still the same “screen”.

3 Screens, the Cloud, and Business Intelligence? – Part 1

March 11th, 2010
Comments Off

Microsoft has been touting their technology vision of three-screens and the cloud for about a year now (much longer if you don’t include the formal name). For those not familiar with the concept it is essentially a vision that embraces the union of technologies across the PC, mobile, and TV. The common connector in this vision is usually the cloud.

Over the last several months the bits and pieces that Microsoft has shown of this vision have been fragmented and lacked a sense of completion. However, with the recent announcement of the Windows Phone 7 things are starting to come together; at least on the consumer side of things.

This week the GDC (Game Developers Conference) is taking place and Microsoft is showing off the gaming portion of their vision with announcing XNA Game Studio 4. One of the demos that they recently presented showed a game that worked seamlessly across the PC, Xbox 360, and Windows Phone. Even more impressive than simply having a game that can be ported across these platforms is that the game was able to push it’s save state to the Cloud. This allows the end user to pick up where they left off across all of their devices.

This is certainly cool and is exactly the type of thing that gets my imagination going. I innately have a curiosity for all things dealing with technology. And, when I see something like this my mind immediately starts racing with different scenarios of how this can be used.

With that in mind, I had originally intended to take this post and talk about how this technology vision could be applied to business intelligence; more specifically, how Microsoft intends for it to apply to their product lines. But, after some additional thinking I decided that I wanted to take another direction. Instead, I’d talk at a more abstract level. I’d like to bring up some ideas on how to expand this vision and perhaps redefine it a bit. The idea behind this is to allow your curiosity and imagination to run wild as opposed to having me just dictating to you. To me this is a far more powerful prospect.

With this change in direction the amount of content has grown larger than what I’d consider appropriate for a single blog post. So, I am going to break this up into a small series. It is my hope that you will find this not only interesting but that it will prompt you to imagine and, perhaps, help create the future!

Friday Bullets

March 5th, 2010
Comments Off

Lately, I have been busier than not. Normally this is a good thing but it has resulted in me neglecting this blog more than I would like. I have several topics in the works but the free time just hasn’t been available to wrap them up.

So, in the meantime, I’d like to start a new (hopefully) weekly feature. The idea is quite simple: a list of news and other things that I have encountered over the week that I feel might be of interest to readers. Here it is:

ETL Pattern: Staged Refresh

February 12th, 2010
Comments Off

Here is a fairly common challenge: perform a complete refresh of the data in a target table. It seems pretty basic and easy. All of the existing data is replaced with the new load. There is no change detection required; just a simple load.

Yet, more often than not, when I go into a client that is having ETL issues I find that they have tackled this challenge with a poor design. A poor design that ultimately results in errors and ongoing headaches for their support staff. This is so common that I sometimes wonder if I have been following the same shortsighted developer from client to client.

This post is my attempt to jump ahead of this mystery developer and hopefully prevent some future headaches. Essentially, the poorly designed ETL process follows this pattern:

etl1

So, what is wrong with this? First, by dropping the existing table it effectively makes the table unavailable until the load completes. This can be particularly troublesome when the load process is lengthy. If the load is scheduled during off hours this might not be a problem. Yet, this downtime can be avoided.

Second, if the load fails you are left with an empty table. In my mind this is the most egregious issue with this pattern. An error leaves you with nothing. This can easy be the difference between an emergency and a simple annoyance. If the process had left the original data in place it would be old and stale but at least it is still accessible.

Here is a modified pattern that helps reduce the issues with the original:

ETL2

This is a classic pattern for handling a complete refresh. The load itself is completed against a staging table. This leaves the existing target in place and doesn’t interrupt use while the load is running. The target table is only ever dropped after a quality check has been performed. This helps ensure that the load was successful and should prevent the empty table issue that the original process had.

There is nothing complicated about this pattern. It is still simple and straight forward. But, unlike the original, some forethought is put into dealing with failure. I hope this encourages you to take a look at how your ETL deals with problems. Does it handle it gracefully, or does it leave you with an emergency?

Author: Pierre LaFromboise Categories: Blog Tags: ,

Looking To Learn PowerShell?

February 10th, 2010
Comments Off

Microsoft recently released an updated version of the PowerShell Quick Reference Guide. Essentially, it is a printable booklet that has an overview of commonly used PowerShell commands. So, if you’re learning PowerShell or just need a helpful reminder, check it out.

By the way, I cannot stress enough how useful PowerShell can be when working in a Windows Server environment. It really is worth learning even if it isn’t something you plan on using on a daily basis. If you don’t know it, now is a good time to start!

BI Style Guides

January 21st, 2010
Comments Off

While catching up on blog posts I came across a post by Patrick Husting from last month. The post titled “Better looking charts in Excel 2007/2010” provides a before and after example of a chart in Excel. The simple example is meant to show the importance of adding a little style to your reports.

I think this is an often overlooked aspect of a complete BI initiative. Too often the focus is only on the technical aspects and does not ultimately address user adoption. While there are several things that can contribute to low user adoption having ugly and unintuitive reports doesn’t help.

With this in mind, I would argue that taking the time and effort to design a comprehensive style guide is well worth the investment. If done properly it should help a project realize ROI. So, when you’re planning your next project consider budgeting time for style planning.

Anyhow, check out Patrick’s blog and let me know what you think.

SQL Server 2008 R2 Official Release Date

January 20th, 2010
Comments Off

Just a heads up for those who didn’t notice: yesterday Microsoft released the official release date for the next version of SQL Server. It will be generally available May 2010 and should appear on the May pricelist.

I have been looking forward to some of the improvements in the upcoming release and am particularly excited about Master Data Services. Here is a quick overview of the key features:

If you’d like to give the last CTP a try you can download it here.

Author: Pierre LaFromboise Categories: Blog Tags:

T-SQL Snippet: Strip Time from Datetime

January 15th, 2010
Comments Off

I would have thought that this would be fairly common knowledge but I am often asked for a quick example of how to strip off the time element of a SQL datetime type. So, here is an example followed by an explanation of how and why it works:

SELECT DATEADD(d,DATEDIFF(d,0,GETDATE()),0)

Technically, this doesn’t strip the time but instead sets it to midnight of current date. So, what is this snippet doing? To start we need to know a little bit about how datetime is stored in SQL Server. The datetime type is an 8 byte type. Essentially, it is stored as two distinct 4 byte integers. The first 4 byte integer represents the number of days since the base date for SQL Server. The base date for the datetime type is 01/01/1900. The second 4 byte integer that represents the milliseconds since midnight.

With that in mind, the following snippet should return this base date:

SELECT CAST(0 as datetime)

Now, back to dissecting the original snippet, I am using the built-in DATEDIFF function to return an integer. The integer is the number of days that have elapsed since the base date of 01/01/1900. With the knowledge of how a datetime is stored you might be tempted to just CAST directly from the datetime to an int. However, depending on the time of day, it might cause the int to round up. So, it is better to just rely on the DATEDIFF.

Finally, to convert this integer back to a datetime type I am using the DATEADD function. Once again, we are using the base date and adding the integer to it to give us today’s date with a midnight time component. Pretty simple, right?

Author: Pierre LaFromboise Categories: Blog Tags: