Welcome to MSDN Blogs Sign in | Join | Help

David Szabo's [MSFT] blog

A Consultant's Diary
Zune is not syncing with Windows 7 Beta 1

More precisely – it’s charging but not syncing (the little Zune icon doesn’t display in the Zune app). Starting the Zune app as an Admin solved the problem. Phew … :)  I hope that it helps.

UC&C Conference, SharePoint – the Implementation Journey, Links and Resources

Thank you very much for those who came to see our session on the UC&C conference. These are the resources that I’ve promised to share:

If you have any questions, feel free to contact me!

David

SharePoint Designer Workflows are Not Working

I’m in the process of preparing for my SharePoint conference presentation and came across an odd behavior which is caused by an introduction of a security consideration into SP1. The symptom is that SharePoint designer workflows are not starting automatically (they do start manually though).

This is the KB article that explains the behavior and the trick:

A declarative workflow does not start automatically after you install Windows SharePoint Services 3.0 Service Pack 1

You can find the resolution in the CAUSE section. I’ve been running my demo box on a DC (which is not supported anyway), therefore, I couldn’t avoid running the application pool under a domain account (there are no local accounts on a DC box), but I’ve changed the application pool account to a new user and logged on by a non-system user. These two steps did the trick.

I’m the Second Microsoft BVPS Certified in Ireland! :)

I'm happy to announce that I've finally passed my BVPS exam. To date, I'm the second BVPS certified person in Ireland, the first one is Paddy Baxter, who have finished the exam 2 minutes earlier (and 23 points higher) than I did. Well done Paddy and David! This means, that from now, Microsoft Ireland is officially qualified for delivering Business Value Planning services. I also encourage partners to take advantage the opportunity and work with us to bring companies to the next maturity level! For more information on BVPS, feel free to contact me!

What is required for a successful SharePoint Deployment?

I’ve been through many SharePoint projects in the last 2 years and learned many lessons and seen good/bad practices. When I’m talking to Customers I always mention the four pillars (or four quadrants) of successful SharePoint deployments – it helps to put a structure around what I want to articulate. These are my quadrants:

Four Quadrants

In a little bit more details:

  • Infrastructure: this component represents a strong infrastructure design/implementation, good network planning, etc – everything that makes sure that your servers can host the expected amount of content and can serve the expected number of users.
  • Governance: this one makes sure that you have logical structures (information architecture, taxonomy) in place to host data, retention policies to not end up with a hundred terabyte mass and millions of sites (does it ring a bell? Yes, to not end up like in the age of file shares!), a common look and feel, navigation structure, you fulfill all important roles and responsibilities within your organization and so on. You can read my earlier article on Governance here.
  • User Adoption (Value Realization): you have rolled out SharePoint in a strong infrastructure, you have perfect governance guidelines in place, but you realize that nobody is going to use it. And which is even more important: your company won’t realize the value – the initial investment won’t return. User Adoption is the piece that makes sure that your users are trained and your business leaders important and appreciate the value that this infrastructure brings to them. This is a very important and complex area and varies from Customer to Customer – based on their culture, level of maturity, and so on. For example, there are different training best practices, based on your audience – but first you need to identify the “personas” that you are working with to make sure that you target the right level and right style. I could talk about this area for days …
  • People (Champions): this is the most important one of each of the quadrants. You need to identify those people who are usually ahead of the others (like you, dear Reader – has the latest gadgets, passionate about productivity, etc) within different business departments/teams. Yes, it’s important that these people are sitting outside of IT! You can give extensive and focused trainings to these people and get them to implement anything that makes their lives easier. This investment will pay back itself! Within a month or two, these people will come up with brilliant solutions (probably, they’ll ask you many questions during this period – which is good) that you can demonstrate to their Senior management. The focus of the demo needs to be on the value proposition, as opposed to the technical details: demonstrate the existing process and tell them how much this process have cost them in the past and how much it costs today by using the SharePoint implementation. The goal is for Senior management to understand the value that SharePoint brings to their organization, therefore they’ll urge people to use it. As soon as you get their support, you can celebrate the success of your project. I suggest a glass of nice Rosé (or a beer) for your lunch on that day – you deserve it! A relevant Microsoft offering to deliver this area is BVPS – for Customers with SA benefits, it’s already included in your SA training vouchers – so, it’s free of charge!

Conclusion

As a conclusion: I hope that this article helped to understand the four quadrants. The funny thing (maybe not funny at all) is that I’ve realized that there are many failed SharePoint implementations (some of them are not failed officially, but nobody is using it – which is a failure to me) because companies tend to focus only on the first quadrant (the Infrastructure). Ping me if you have any questions, anything to add or if you need any help (including explaining the importance of these areas to your project manager/boss :) )  We also have very good experience deploying SharePoint and delivering these important areas – ping me if you want to schedule a meeting! Thanks!

David

Windows 7 Rocks!

I’ve installed the M3 build of Windows 7 a week ago. I’ve installed it on my production laptop – all or nothing! :)  I had no problems with it at all, in fact, it’s a little bit faster than Vista was on the same hardware – will see how it changes after I install SQL and a few other apps.

I’m in a state of playing with it at the moment and found a funny feature that I couldn’t find documented so far – if I grab a window and shake it a little bit, all windows will minimize, except the one that I’ve grabbed.

I had one issue so far – it was with Windows Internet Explorer. It was crashing after I’ve installed the Adobe Viewer and Skype. I’ve disabled both add-ins and the problem was solved. I guess, there’s some compatibility issue with IE 8 extensibility which the guys will sort out in the next Beta releases.

One small issue that I’d note and I couldn’t figure out so far, was with video playing. The video is breaking up sometimes, like if the processor was not strong enough to play it. I’ll keep you posted if I find a solution.

These features were the most exciting in the last week:

  • The new taskbar: quick start and running programs are integrated. A good example: even when Outlook is running, I have only one Outlook icon on my screen (even if the Start menu is opened). In the past, I had one in the quick launch, one in the taskbar (running) and one in Start menu. It’s just much more logical and simple
  • Audio improvements: applications can be associated with different output devices (Media Player will use the speaker and Communicator/Skype will use your USB headset). When you receive a call, the music will automatically pause/lower
  • Network Centre: it’s just much more logical
  • Improved desktop search experience: if I type “encrypt”, BitLocker is coming up. You can simply write around what you are looking for and Desktop Search will find it for you
  • Ribbon everywhere: Paint has a ribbon and have you seen the new calculator? :)

So, if you ask me – I do recommend installing Windows 7. It’s very exciting and quite stable!

eircom New World of Work Case Study

A Microsoft case study has been published about the New World of Work project at eircom in Ireland. This is a project that I'm very proud of. The Microsoft project team was Paul Mason, Paul Flavin, Phillip Fitzpatrick, David Nagle, Mark McCrory, Jussi Roine, Aidan Nolan, Mateusz Kantecki and myself. The eircom project team was John McIntyre, Stephen Mulligan, Paudie Roberts and Declan Rea. Well done everyone!

Podcast: Speech Server 2007 and Office Communications Server

Martha Rotter interviewed me on Speech Server and Office Communications Server and released the audio here. Enjoy it!

SharePoint Governance Part I

In this series, I would like to outline what's SharePoint governance, what happens if you don't think of it, what are the benefits of having a governance guide for your environment and I'll also give you a hint on how to start thinking about it. Microsoft Consulting Services (MCS) developed a standard offering, called SharePoint Enterprise Portal and Collaboration Technology Planning (EPCTP), which covers the governance planning and design from A to Zed. We also have a Governance Center available on our webpage here. If you plan to roll out SharePoint or you already have rolled it out, it's time to think about these topics.

What is SharePoint Governance anyway?

Installing SharePoint is a very easy procedure - sometimes, even too easy and we tend to forget the planning part if tomorrow's solution is only a click-next-next-finish away. Governance is something that we haven't thought about 10 years ago when we have rolled out our file shares across companies all around the world. And we ended up with terabytes of unstructured and unclassified data that nobody knows where it came from and what can be done with it. It's a headache today and costs a lot for both IT and business. My favorite example is a Customer of mine, with thousands of public folders, a folder called Christmas 99. Imagine, how much these folders can cost, in terms of storage and maintenance, especially if they are held on a high-cost DR solution (in some DR solutions, the storage space used is 12 or more times the actual size of the data - just imagine, how much it is). Another example is a large international company who have rolled out SharePoint with automatic site provisioning turned on and they haven't thought about how to manage and retire them. They have ended up with roughly 100,000 sites - Imagine, what does it cost to manage those if you have no plans to retire them. Governance is not only about storage and information lifecycle though ... It's also about unified look and feel, a site and site collection structure that reflects the organization's layout and allows charging back the costs to the business, the definition of the infrastructure's SLAs and operation procedures, good training plan and a lot more. Briefly, it is something that allows the IT department to provide a cost effective, well managed hosted SharePoint infrastructure to business divisions.

What are the benfits?

Briefly - cost savings. In more details, it's mostly savings in the following areas:

  • Disk storage
  • Support calls: ensuring availability, minimal downtime, outsourcing to business
  • Cost re-allocation to business through chargeback of costs

Besides costs, there are other benefits, even if at the end all benefits land as a cost saving:

  • Consistent look and feel
  • Better performance
  • Well thought-out taxonomy that allows further stretch
  • Clear definition of what can be deployed and customized in your SharePoint infrastructure, who is allowed to do it and what processes needs to be followed
  • You can focus on improvements and not on maintenance and support

Governance Areas

There are many different governance areas that we cover through a Governance Design. They mostly depend on the way you want to use SharePoint. The following areas are the must-have ones for Collaboration environments:

  • Roles and Responsibilities: define who is responsible for what. Be very specific and get this signed off by the role owners and by their managers to make sure that they are committed to do what they need to do
  • Taxonomy, Information Architecture: covers authentication, web application and site collection structure, quotas, locks, content databases, permissions, site provisioning settings and site retention approach
  • Portal, UI: focuses on site look and feel, navigation, site templates and definitions
  • Document Management: mainly focused on document management standards and on the document retention and archiving approach
  • Operations: how to manage the infrastructure
  • Development and Customization Standards: what is allowed to customize, how to package customizations, who can use SharePoint Designer, how to choose and manage vendors, how to QA their work, where to host source code, assemblies and artifacts, development standards and many more
  • Search: what is in scope, who manages scopes and content sources, what is the indexing structure, keyword search, whether there is anything in scope that SharePoint can't provide or handle, IFilters for special document types, etc.

There are many other topics as well, but these are the ones that you must cover. You can capture and design these and the other areas yourself, however, if you can afford, I do recommend to involve us in the development of your Governance guide. MCS not only covers the governance areas, but also provides best practices and knowledge transfer to your team through the Governance workshops - we have done this many times. Keep in mind: even a small Governance is better than no Governance at all - obviously, you don't want to find yourself in the 'file share' situation again.

How to Start?

First, understand what topics you need to cover, prioritize them and understand the efforts required to secure resources in IT and Business. Then, understand the Roles and Responsibilities, understand how the business wants to use the product, cover the Information Architecture area, then keep it going until you have covered everything.

Summary

In this article, I highlighted the importance of SharePoint Governance, outlined how to approach it and gave you some tips on how to start doing it. Again, keep in mind: even a small Governance is better than no Governance at all. Feel free to ping me if you have any questions!

My New Speech Blog

Tadadaaaam! I've got a new blog where I'll blog only Speech Server and OCS topics - it's on Marshall Harrison's site at http://gotspeech.net site, the blog's URL is http://gotspeech.net/blogs/dszabospeaks. Enjoy it!

A Thought on Tools

A friend of mine (a Senior Developer in the Visual Studio/Nav product group) said this to me a year ago:

You can do what your tools allow you to do. In other words, your tools are your best friends.

I remember, Kalman told this to me in a better form, but this was the point. It's funny how much more tools we use nowadays as we build more and more layers and more complex applications on the same platform.

Microsoft Office Communications Server 2007 Speech Server Development - Introduction

Office Communications Server 2007 is Microsoft's IP communication solution and it allows companies to leverage their network infrastructure for voice, video communication, instant messaging, audio/video calls and for much more. You may ask what's the benefit of using the computer network as opposed to the internal telephony network - you don't pay after the minute at neither of them. However, if it's the computer network, it's only the matter of software to integrate the telephony, video and IM with desktop applications. By routing the IP packages through a server in the DMZ, users can call each other at not cost wherever they are. The presence is also very important to mention - users can see each other's status (whether they are online, busy, away, on a meeting with their laptop, out of the office, etc). The presence icon is integrated into every Office applications and it tells the caller in advance whether the other party will be answering the call or not, or if it's not the right time for the call. This is integrated to every piece of the Office System (SharePoint and the Office client products). Online users will stop using mobiles, there's a whole change in the communication culture. This article outlines OCS 2007 Speech Server, which is an additional server role for Office Communications Server.

OCS 2007 Speech Server

Every software client/device is a UC endpoint in OCS - whether it's an IP phone, Office Communicator (the client of OCS, like Messenger), a video camera in an A/V meeting room, etc. Imagine that you have not only these endpoints, but that you also have non-human endpoints connected to your OCS/telephony infrastructure. These endpoints are software-driven and can communicate with callers on the phone. An example of such an endpoint is Exchange Server Voice Access, where you can get Exchange to read up your emails and you can do other clever things (say "Clear my calendar for today" - which sends a cancellation to every attendees of your meetings for today). You can write these applications using managed code and these application can be deployed and enabled in your OCS infrastructure. These numbers can be even enabled for callers outside of your organization (this is how Exchange Server Voice Access works at Microsoft).

How to write programs for Speech Server?

There are 3 important areas in a voice enabled system:

  1. Speech: the quality of the speech engine
  2. Voice recognition: the quality of the voice recognition engine and
  3. Programmability - how easy to develop voice-enabled applications on this platform.

I'll start with the programmability one and I let you to judge on the other two. There are two programming models that you can use: the web-programming model where the voice application is hosted in IIS as a web page and the dialog is represented by a set of post backs. The other programming model is using Windows Workflow Foundation to design the conversation's flow. I'll focus on the latter today and will skip the web-based one. For the workflow programming model, you need Visual Studio 2005 SP1, IIS, MSMQ and Speech Server installed on your PC (see the pre-requisites section).

Fire up your Visual Studio, there's a project template called "Voice Response Workflow Application" after you have install the development components. You can already start dragging and dropping workflow activities into your workflow designer to describe the conversation's flow. There are many workflow activities that you can use: Statement activity, QuestionAnswer activity, GetAndConfirm activity - this one won't step to the next activity unless the caller is confirmed his/her answer, Menu, etc. When your workflow asks something, you define the question for the activity, like "Can I have your employee ID please?", then you need to define what format you expect the answer in - this definition is called "Grammar". The grammar is a pre-defined pattern that defines the different ways the answer can be said. For example, "yes, it's 1234", or "my employee id is 1234", or "1234", or "it is 1234" and so on. We define a placeholder in this pattern for the number because that's the only thing that we are interested in, and we define the different options how the answer can be said. There's a designer that helps you creating the grammar.

The grammar will have an output variable which you can get when the caller is answered your question. Here, you need to write code - when the caller answered the question, you will get the employee ID into a variable that you can convert to a numeric value and you can do your actions based on this number - for example, you can look up this employee ID in Active Directory, etc.

I've prepared with a small application just to show how this thing works. What it does, it calls you up and it asks you about the number of computers and persons in your household and it submits the answers to a database. I could have written a more intelligent application as well, but this will be enough to understand how it works.

Prerequisites

To be able to play with the product, you need to install all components of it on your development environment.

In order to install the Speech Recognition Server component, you need to enable a few features if you don't have them already enabled. You need to re-start the installer every time you have enabled a feature - it won't refresh automatically. To save some time, copy my features list (Vista):

Enable for OCS VR

You also need Visual Studio 2005 with SP1 (VS 2005 RTM is no go), and the Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation) package in order to be able to install the Development Tools component of the product. Installing Visual Studio 2005 Service Pack 1 Update for Windows Vista is also recommended if you run Visual Studio 2005 on Vista.

After the product is set up, at least one language pack needs to be installed (you can find them on the installation DVD or your can download them from the Internet) for the Windows services to start. I've installed the English/UK pack. There's also a US and Australian English available on the DVD and 11 additional languages. The full list is:

  • Chinese (People's Republic of China)
  • Chinese (Taiwan)
  • English (Australia)
  • English (United Kingdom)
  • English (United States)
  • French (Canada)
  • French (France)
  • German (Germany)
  • Italian (Italy)
  • Japanese (Japan)
  • Korean (Korea)
  • Portuguese (Brazil)
  • Spanish (Spain)
  • Spanish (United States)

What is a Grammar? What is a Rule?

The "grammar" is a collection of "rules". A rule is a mini workflow where you can describe the expected sentence's structure. In my case, I expect the answer "I have X computer at home" or something similar from the end user. I designed my rule to accept a more sophisticated answer as well, like "I have only 2 computers at my household" or "I have got no computers". It's up to you how you make your rules finer and more resilient. The result of the rule is a value which is the number of computers in my case. The following is a screen shot of my rule from the Visual Studio Rule Editor:

image

The green shapes are called Lists, the white ones are Phrases. Only one of the Phrases apply inside a List shape. The pink shapes are Rule references (RuleRefs), they are used to reference to other rules. The two RuleRefs in my case are references to numeric rules, they are used to recognize the number 0 and the numbers 1 to 999 and convert the recognized words to a numeric value. Looking into those rules, they have several lines where they combine the recognized words and calculate the numeric result. The result is written to the $$._value member variable which is then copied to the $._value member variable by a Script Tag (blue). The value in $._value then can be referenced in the Voice workflow and can be used for further tasks (in my case, confirming the number of computers to the end user). After compiling the grammar, the outcome is an XML file, with a .grxml extension.

What is the Voice Workflow?

After designed the rule, let's work on the workflow part, which is the one that controls the main flow. The Rule that I've described above is evaluated in the HowManyComputers QuestionAnswer activity.

image

How can I start?

I recommend to install the developer samples. After installed, I suggest opening the HelloWorld project from the C:\Program Files\Microsoft Office Communications Server 2007 Speech Server\Samples\Workflow\HelloWorld folder and playing with it.

You can test your application by pressing F5 key - you'll get the Voice Response Debugging window where you need to click on the Call button:

image

When the workflow starts and the server asks you a question, you are redirected to the second tab and need to click on the Start Recording button. Say your answer and Speech Server will recognize it.

image

When your answer is recognized, click on the Submit button to post back your input to your workflow.

Questions?

Don't hesitate to ask!

TOC Web Part is Not Working

I did a search on the Internet about the problem and couldn't really find anything useful.

Symptoms

You navigate to the Team Sites page and click on the "Site Map" link, you get the following message:

Unable to display this Web Part. The Table of Contents start location, /default.aspx, is unavailable. Check to see if this resource was moved or deleted.

Resolution

The TOC web part has a default.aspx at the end of the “Start From” location by default and it cannot handle this Url (it needs to be a site Url without a page name). This is how you can fix it (put the page into Edit mode first):

“Open the web part properties and see that the root ("start from") is
indeed set to /default.aspx. Simply change this to / and then the ToC works as
expected.”

Some More MOSS Gotchas

Happy New Year! I hope that you had fun during the holidays and you didn't eat too much - or at least you can balance it with some gym exercise in the upcoming days. :)

A few weeks ago, I installed MOSS at a Customer here in Ireland and I had more difficulties than I ever expected. Part of the problems were due to product problems (hopefully, they will be solved by SP1), the other part was caused by a very strict Group Policy configuration. I chose the best ones and blogged here to help you guys out from the trouble:

SharePoint Timer Service Fails to Start

After the first restart on my fresh MOSS box, I got the famous error message on the logon screen: "At least one service failed to start". It turns out that it's the SharePoint Timer Service that failed to start. I get the following error message in the application log:

Source: Office SharePoint Server.
Category: Office Server Shared Services.
Event ID: 6482.
Application Server Administration job failed for service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance (894b2244-ea64-4466-8aa3-99db5c7f6706).
Reason: Logon failure: the user has not been granted the requested logon type at this computer

Techinal Support Details:
System.ComponentModel.Win32Exception: Logon failure: the user has not been granted the requested logon type at this computer
at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.SynchronizeDefaultContentSource(IDictionary applications)
at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize()
at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)

If I fix it by re-typing the username and password, I get a popup saying the the account is granted a "Log on as a Service" right. Then after another restart, the problem starts again.

Resolution: for the first look, it seems the Windows forgets the password that I typed, but after some research, it turns out that the reason is that the account used to run the SharePoint Timer Service lost the "Log on as a Service" privilege due to Group Policy restrictions. Make sure that your service account has this right granted in the Local Security Policy snap-in.

SharePoint Doesn't Crawl People

The symptoms are that even if people objects were successfully imported, they are not crawled by MOSS search. The following error entry can be found in the crawl log and event log:

sps3://mysite/site$$$people
Error in PortalCrawl Web Service
Event ID: 2436
Category: Gatherer
Source: Office Server Search
The start address <sps3://did-spt-01:6376> cannot be crawled.
Context: Application 'Default SSP', Catalog 'Portal_Content'
Error in PortalCrawl Web Service. (0x80042617)

The content source Uri starting with sps3:// is the people database's content source. For some reason, by default, it's pointing to the SSP's Uri (address and port).

Resolution: changed the default sps3://did-spt-01:6376 to sps3://did-spt-01:80

DCOM Activation Errorsin the System Log:

I got an error in the system log:

Type: Error
Source: DCOM
Category: None
Event ID: 10016
Description:
The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID {61738644-F196-11D0-9953-00C04FD919C1} to the user XXX SID {XXX}. ...

Resolution: found that the GUID points to the IIS WAMREG admin Service DCOM app (dcomcnfg), however this user already had all activation permissions on it. Now, I granted all access permissions as well which solved the problem.

Access is Denied to the User Profile DB:

Event Type: Error
Event Source: Office SharePoint Server
Event Category: Office Server General
Event ID: 7888
Date:  9/01/2007
Time:  2:12:07 PM
User:  N/A
Computer: xxxxxx
Description:
A runtime exception was detected. Details follow.
Message: Access Denied! Only site admin can access Data Source object from user profile DB.

Techinal Details:
System.UnauthorizedAccessException: Access Denied! Only site admin can access Data Source object from user profile DB.
   at Microsoft.Office.Server.UserProfiles.SRPSite.AdminCheck(String message)
   at Microsoft.Office.Server.UserProfiles.DataSource._LoadDataSourceDef(IDataRecord rec)
   at Microsoft.Office.Server.UserProfiles.DataSource._LoadDataSourceDef(String strDSName)
   at Microsoft.Office.Server.UserProfiles.DataSource..ctor(SRPSite site, Boolean fAllowEveryoneRead)
   at Microsoft.Office.Server.UserProfiles.DataSource..ctor(SRPSite site)
   at Microsoft.Office.Server.UserProfiles.UserProfileConfigManager.GetDataSource()
   at Microsoft.Office.Server.UserProfiles.BDCConnector.RefreshConfiguration(String sspName)

Resolution: added the user profile import account to the local admins group on the MOSS box

Microsoft NX-6000 webcam incompatibility with Office Communicator 2007

By working together with one of our favorite Customers, we realized that the Microsoft NX-6000 webcam doesn't work with Office Communicator 2007. I'll address this to the product groups and ask them to publish it officially if they haven't yet.

By the way, it's a really nice piece of hardware and I love to use it with Messenger, but it seems that it's not Communicator's cup of tea. Hopefully you found this post early enough. My Customer went back to the hardware shop straight away and bought 3 pieces of VX-1000. We also tested and found that VX-6000 works fine with Communicator 2007.

More Posts Next page »
Page view tracker