SkyDrive, Windows 8 and Domain Account

I am running Windows 8 on my primary work machine now, which is domain joined. When I try and use the SkyDrive metro app (which ships with Windows 8), it does not like that fact I am domain joined and wants me to switch accounts, which is something I don’t want to do. This of course works great for those who are not domain joined and essentially are personal machines. For many of us who will be using this on ‘work’ machines, this seems like we will be ignored.

Of course I can install the desktop app, but that is not Metro and I am then in the ‘old’ world. Also the free 25 GB has now dropped to 7 GB, if you already have a Live account, I suggest you login and upgrade your account back to 25 GB for free!


Enabling Win 8 Metro on a Netbook

When you install Win 8 on a Netbook the screen resolution would be too low for Metro apps to run which is a bummer. One way to get around this and “fix” this is to update the registry (and you thought that was so XP!) :).

Run Regedit and search for “display1_downscalingsupported” (without quotes). Find all occurrences of this entry and change its value from 0 to 1.

Reboot when finished and you should have more options on your Screen Resolution choosing which will allow you to run Metro. 🙂

Kinect SDK

Microsoft recently release the Kinect SDK which allows you to implement a Natural User Interface and program against it! There is a lot of interest  around including claims on how Robotics will change to how you can integrate a light sensor.

You can use Visual Studio (C++, C# and VB.NET supported) and get quite interesting results.

Here are a series of links below which will help you get started.

  1. Download and install the Kinect SDK
  2. Download and install Quickstart Samples and Slides (zip file)
  3. Understanding the Kinect hardware
  4. Setting up your Dev Environment
  5. Understanding the basics of skeletal tracking using the Kinect sensor
  6. Understanding camera fundamentals
  7. Understanding the audio fundamentals
  8. Playing with the Coding4Fun Kinect toolkit and seeing how one can build cool apps such as:

Keep and eye out on the Coding4Fun Kinect blog.

Debugger Canvas–Quick Tour

Debugger Canvas is a new user experience for the debugger in Visual Studio Ultimate. It pulls together the code you’re exploring onto a single pan-and-zoom display. As you hit breakpoints or step into code, Debugger Canvas shows just the methods that you’re debugging, with call lines and local variables, to help you see the bigger picture.

Check out the quick demo below to see what it is capable of and read up on the guide on how to use it.

Using cached domain (active directory) credentials or not?

If you are ever in a situation where you want to find out if you logged into using cached domain credentials (AD) or authenticated against the domain controller then the easiest way is to open Event Viewer and look for the entry where the source is NETLOGON and Event ID 5719.

The description would be something like:

Log Name:      System
Source:        NETLOGON
Date:          27/05/2011 08:53:17
Event ID:      5719
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      YOUR-Full-Qualified-Computer-Name

This computer was not able to set up a secure session with a domain controller in domain YOUR-DOMAIN-NAME due to the following:
There are currently no logon servers available to service the logon request.
This may lead to authentication problems. Make sure that this computer is connected to the network. If the problem persists, please contact your domain administrator. 

If this computer is a domain controller for the specified domain, it sets up the secure session to the primary domain controller emulator in the specified domain. Otherwise, this computer sets up the secure session to any domain controller in the specified domain.

Here is a screenshot (on Win 7) showing a (filtered) view of the same event.


Troubleshooting WCF Performance – Part 1

More related details on Dustin’s post – WCF scales up slowly with bursts of work.

How to create a Mini Dump?

If you ever want to get a Mini Dump of a process (of course for debugging purposes) the easiest way to do so is to use Task Manager (or use Sys Explorer). Just find the process you are interested in, right click and select “Create Dump File” and voila.

One thing to be careful – make sure you are using the same version of the Task Manager (or Sys Explorer) as the process. For example if your process is x32 (and you are running on a x64 system), then make sure you are using x32 version of Task Manager and not the x64 as that will cause issues.

Creating a mini dump

BizTalk 2010

I was wondering what new features of BizTalk 2010 do you like the most? Also are they any must have tools now? I am interested in the following:

  • Automated deployment (of interfaces)
  • Automated testing (regression and functional where possible)
  • Automated configuration management (across various environments – development, various testing, pre-prod and of course prod).
  • Coordination with AppFabric?

Free (technical) Microsoft Courses

Channel 9 has a number of free technical courses on a number of emerging MS technologies covering a wide range such as Azure, Win7, Identity, SQL Server 2008 R2, Visual Studio 2010, .NET 4.0, Silverlight 4, MOSS 2010, Office 2010, etc.

These cover a number of the features and essentially have everything to get a developer quite comfortable with the stack. In some areas they go a little deep as well. I think its an excellent way to come up to speed.

Here is a quick example of the topics covered in some of the tracks:

  • Win7 – how to use the Taskbar, Multitouch, Ribbon, Sensors and Location, Session 0 Isolation, etc.
  • Azure – Azure Overview, Azure Storage, Deployment, SQL Azure, etc.
  • VS 2010 and .NET 4 – F#, ASP.NET 4, Parallel Computing, ALM, etc.

Bing Maps adding Flickr images, live video, stars

Bing Maps adding Flickr images, live video and stars – very cool.

Update: The official TED video below is quite cool and in addition to the one above, also adds more interesting features such as video – check it out.

Extending WCF Adapters in BizTalk

I know a little bit about WCF 🙂 but never really used it in anger in BizTalk and also did not get an opportunity to extend the adapter.

I was looking for something else and came across this post form Paolo which explains in a lot of detail how does one go about extending and customizing WCF adapters. If you don’t know anything about WCF the first part explains that in general before going in to the BizTalk specific things.

BizTalk Flat File schema optional attribute issue

I encountered this interesting issue and thanks to Colin we were able to resolve it. There will be situations you will encounter when adding additional optional attributes to a Flat File (FF) schema in BizTalk will cause problems. To get around this you basically will need to set the following properties to relax the parsing of the attributes which break.

  • parser_optimization="complexity"
  • allow_early_termination="true"
  • early_terminate_optional_fields="true"

This got me thinking more and wanting to understand what does changing these attributes mean under the covers. Below is what I found out on each of these.

On parser_optimization:

  • Setting the parser_optimization to complex essentially generates a more complicated grammar (it uses both a top down and bottom up parsing); this grammar is then used to parse the FF.
  • The complicated grammar is better when parsing records with more optional nested options – however it still cannot handle all the layout conditions and can still break in some situations.
  • And given the runtime is doing more things, this will be slower than the other option called ‘speed’ (yeah no kidding Sherlock!).
    • The reason the ‘speed’ option is faster is because it uses top-down parsing only.
  • In addition you should also set lookahead_depth to zero (more on this below) to avoid validation failures (against a schema) when there are many optional nodes in the same group/record.

Changing the lookahead_depth itself is trivial but you need to be a little more aware of what this means:

  • This essentially tells the parser when making a parsing prediction how far ahead to look in the token stream.
  • Setting this to Zero essentially means ‘infinite lookahead’ which in turn means more memory will be consumed.
    • Depending on how busy your BizTalk servers are and how much memory pressure you already experience processing various files (and their sizes), this might be an issue.

Basically, the FF parser is a streaming parser and implemented as a leftmost derivation which takes in a CFG. Essentially when we change the lookahead_depth to zero we change do not restrict this and the parser can recognize tokens using DFA perhaps (of course we don’t know the real implementation).

For those old school like me, and have played with yacc – that is a LL(1) parser – essentially parse the grammar with one token lookahead.

On allow_early_termination="true":

  • When working with FF’s BizTalk expects that every line is of the same length (either because of the data contained padded with spaces). However if it finds a newline (CR + LF) character then it breaks and you get an error something along the lines of “Unexpected data found while looking for: \r\n”.
  • Adding the allow_early_termination setting helps fix this. Read more here.
  • Also note that only the right-most positional field is allowed to early terminate.

Lastly, the early_terminate_optional_fields attribute enables early termination of optional trailing fields. A couple of points to note on this:

  • If your schema does not have this annotation and you open that in the BizTalk editor, then it will automatically add this annotation explicitly and set it to the default value of False.
  • This only takes affect if you also have the allow_early_termination annotation set to True.
  • More details on this here.

And in case you were wondering this is a supported option by Microsoft as shown in this KB article.

Win 7 and loading ISO’s

If you are on Win 7 (any build) you will find quickly that Daemon tools don’t work on that. Even if it was working, I would in any case recommend ditching Daemon tools and recommend using Virtual Clone Drive which not only is free but also works like a champ. I use it on Vista as well.

Enabling Bitlocker Pin on Win 7

You should be using Bitlocker on your machine (which btw is faster on Win 7 compared to Vista). When I enabled this on my laptop running Win 7 – I did not get the option to also add a PIN – not sure if I did something wrong or by default it does not ask for it.

In any case, if you also want to add the a PIN on boot up then you can use the following command in a command prompt or power shell (with admin privileges) to enable this. Of course replace the “c:” with the drive you want to do this for.

manage-bde -protectors -add c: -TPMAndPIN