Jan 26

Microsoft is a mammoth company and ever so often the release tools and free things that I would never be without on my system… Here are a list of them in no particular order..

Do you spend your days writing tests?  if so this next one is for you..

image

 Features & Benefits

Spec Explorer 2010 is a tool that extends Visual Studio for modeling software behavior, analyzing that behavior by graphical visualization, model checking, and generating standalone test code from models. Behavior is modeled in two ways: by writing rules in C# (with dynamic data-defined state spaces) and by defining model scenarios as action patterns in a regular-expression style.

One of Spec Explorer’s major features is the ability to compose models written in these two styles. This technique enables users to slice out test cases from large state machines to achieve test purposes by defining relevant scenarios, thus tackling the notorious state-space explosion problem that is so pervasive in model-based testing. Spec Explorer also supports combinatorial interaction testing with a rich set of features.

image

Workflow and Modeling is important so don’t forget to download the UML extension for this software as well..

image

Probabilistic Programming got you down ? Try Infer.Net

Get Microsoft Silverlight

Infer.NET is a framework for running Bayesian inference in graphical models. It can also be used for probabilistic programming as shown in the video above.

Infer.NET can solve many different kinds of machine learning problems, from standard problems like classification or clustering through to customized solutions to domain-specific problems. Infer.NET is currently being used in a wide variety of areas including information retrieval, bioinformatics, epidemiology, vision, and others.

Here’s a short example quoted  from Mr. Winn found at

http://research.microsoft.com/en-us/um/cambridge/projects/infernet/docs/A%20simple%20example.aspx

“Here is an example of using Infer.NET to work out the probability of getting both heads when tossing two fair coins.

Variable<bool> firstCoin = Variable.Bernoulli(0.5);
Variable<bool> secondCoin = Variable.Bernoulli(0.5);
Variable<bool> bothHeads = firstCoin & secondCoin;
InferenceEngine ie = new InferenceEngine();
Console.WriteLine("Probability both coins are heads: "+ie.Infer(bothHeads));

The output of this program is:

Probability both coins are heads: Bernoulli(0.25)

which correctly gives the probability of two heads as 0.25 or 1/4.

image

example output model from the inference engine

This short example contains the three key elements of any Infer.NET program:

  1. Definition of a probabilistic model
    All Infer.NET programs need a probabilistic model to be defined.  This is done in the first three lines above by defining the random variables firstCoin and secondCoin and the specifying the dependent variable bothHeads as a function of these.  You can read more about defining models in the Infer.NET modelling API.
  2. Creation of an inference engine
    All inference is achieved through the use of an inference engine.  This must be created and configured before any inference is performed.  The fourth line above creates an inference engine which uses the default inference algorithm (expectation propagation).
  3. Execution of an inference query
    Given an inference engine, you can query marginal distributions over variables using Infer().  In the last line of the example, the engine is used to infer the marginal distribution of bothHeads i.e. the probability that both coins turned up heads.  The engine returns a Bernouilli distribution which is then printed to the console.  You can read more about inference in the section on running inference. “

Learn more at Microsoft Research’s Infer.NET site..

http://research.microsoft.com/en-us/um/cambridge/projects/infernet/docs/default.aspx

Skype + Microsoft SharedView to the Rescue

Microsoft SharedView is a fast, easy way to share documents and screen views with small groups of friends or coworkers; anytime, anywhere. Use SharedView to put your heads together and collaborate - create, convey, and communicate…across physical boundaries, through firewalls, and down to the smallest details.

image

Now here is a goody which still works well with Office 2010 and Windows 7. I find it helping me out all of the time when I am trying to connect with and work with associates. I find myself conferencing from time-to-time with people in different regions of the country and the world. We end up usually in some office app working on a power point or presentation together.

image

I still haven’t figured out why this isn’t a standard capability built into the Office 2010 apps but someday I might ask why.. Anyway I am usually using Skype to conference with these folks and we usually want to see each others screen or contribute to each other apps, not just see it.. I don’t find this easy to do with just Skype alone..

Benefits of Skype + SharedView (true screen share collaboration and voice and video convo at the same time)

image


So I use a free utility called SharedView from Microsoft to do this. It lets small groups share documents and make presentations. I find it much nicer and free than something like GotoMeeting.. I still haven’t figured out why people use these third party products when they can use something that actually responds quicker and is available for free (if you aren’t dealing with a “Mac Person”) in which case I use Skype and something like Teamviewer which is not completely a free option...

SKYPE

image

A view of Skype’s new multi-user conversational Capabilities.