Marek Latuskiewicz, a senior development lead on our AdCenter team, has recently launched a blog about programming with Silverlight and C#.
Marek plans to blog regularly on:
1) Ready to use, generic architectures to address interesting problems, which will include working code.
2) Short posts about certain aspects of Silverlight/C# programming.
In his first post, Marek outlines how to create generic animated panels in Silverlight 2 and 3.
Here’s a short extract from Marek’s first post:
I’ve always had mixed feelings toward animations in cases of generic controls, panels or item controls. From one side it is extremely easy to define standard animations associated with visual states. From the other implementing any more sophisticated animation means that a generic control becomes a user control. In this first article in series I shall present ways we know in our team to make Framework Elements with non-trivial animations without sacrificing theirs genericness. In short - it is easy to create a generic FrameworkElement, but it is hard to create such with advanced animations so it is still generic. In part number one we shall deal with animations in Panels. (Read the full post)
There is a funny thing that happens when people mention the terms “test”, “tester”, or “quality assurance” in the computer programming industry. Groans can be heard about laborious, manual point-and-click activities. A cutting remark is almost always heard that insinuates a person who performs testing is a “click monkey.” Well, I work in test at Microsoft, and I’m a hard-core software developer.
At other companies, “quality assurance” and “test” may mean different things, but at Microsoft the Software Development Engineer in Test (SDET) is a regular developer. In my group at Microsoft (GPD-E, a European R&D hub based in Dublin, Ireland), we expect the Software Development Engineers (SDE) to make sure their code does what it’s supposed to do in trivial cases, either by producing unit tests or by performing some manual verification.
Then we call in the SDETs. SDETs are Microsoft’s answer to the question of how to achieve and maintain quality for our customers when shipping software and services that scale to tens of millions of users. The SDET is tasked with both product quality and team productivity. The SDET uses their development skills to build systems that advocate for the customer in all aspects of a project, from inception through to shipping. SDETs act as a key interface between customers and the engineering team and are the real “last line of defense” before a product goes out the door. The SDET has accountability for ensuring the product is ready to ship or if it needs more time, and he or she is responsible for blowing the whistle if something looks wrong.
As SDETs, we spend most of our time writing code for automation frameworks and testing tools, whether running on a mobile phone, a virtual PC image, or across a data center of thousands of servers. We develop tools that improve productivity and uncover bugs; many of these tools are highly sophisticated and widely utilized both inside and outside of Microsoft. For example, we develop tests that evaluate system security, performance, resilience, functionality, standards compliance, and accessibility, to name a few broad types. Under the banner of productivity, for instance, we have written a tool for improving CSS cohesion and manageability for serving to mobile devices. Of course, we sometimes do need to rely on manual testing to evaluate for things like usability or interoperability corner cases. In those cases, we often rely on the input and assistance from the rest of the engineering team, taking advantage of Microsoft’s quality-conscious culture.
I’m proud to say that at Microsoft, SDETs solve the big problems of ensuring our products work for all of our customers and our development and quality processes are as efficient as possible. So, the next time you consider what it means to “be in test” or “be a tester” and whether that’s a good job for a software developer, think about Microsoft and the SDET role.
PD-E’s Mobile Browse Platform team is excited to be releasing the Mobile Device Browser File, an XML file containing the web browsing capabilities of 500+ of the most common mobile phones, such as screen width and height, supported image and video types, and level of HTML support. ASP.NET developers can use this XML file (called a browser file, or “.browser”) to easily optimize their mobile web sites for 100s of different mobile devices.
Chris Woods, a program manager on our team in Dublin, presented a session on this service at the MIX ’09 conference (click here for Chris’s video presentation), and you can read more and download the file off our CodePlex site here.
This solution was originally developed for Hotmail, Live Search, and other Windows Live and MSN services, and is used extensively within Microsoft. This represents a major opportunity for the .NET developer community.
Sami Vaaraniemi, a software developer on our Hotmail Mobile team in Dublin, is presenting a paper titled “Designing for Testability” at ACCU, the pre-eminent European software development conference, in Oxford, England, on April 23. Read about Sami’s talk here, and learn more about the conference here.
Sami’s presentation will detail how to write code so that it will be amenable to unit testing. One key point is that by writing testable code, the code also becomes more maintainable and reusable.
Justin Saunders, a software test developer on GPD-E’s mobile services team in Dublin, presented a talk at the Software Quality Conference 2009 in Dublin on March 4. The conference is the largest quality-focused conference in Ireland and hosted representatives from major software firms in Ireland and the UK.
Justin’s presentation, on “The Software Quality Discipline at Microsoft,” described how Microsoft’s R&D teams approach software quality, including different roles, processes, tools, and strategies. Click here to download the slides from his talk.
Diego Colombo, a software developer on our Experimentation Platform team in Dublin, presented a talk at the ACM Symposium on Applied Computing Conference (SIGAPP) on March 10th.
Diego’s paper, “Aspect-Oriented Procedural Content Engineering for Game Design”, discussed how aspect oriented programming techniques can be used to drive the content creation process for 3D scene rendering by mapping each data peculiarity to the code to generate it. Click here for more information on the conference.
Microsoft Ireland was recently voted the Best Workplace in Ireland for 2009, as determined by the Great Places to Work Institute. This award is recognition of the importance Microsoft Ireland has placed on its people for the past 24 years – developing people, growing people and investing in people in Ireland. Click here to see why our employees voted us #1.
Microsoft also won first place in the European Great Place To Work survey for 2008. Based on the top rankings in many countries (Belgium, Denmark, Finland, France, Germany, Greece, Ireland, Italy, Netherlands, Norway, Portugal, Spain, Sweden) Microsoft has won this award for the first time at a European level, beating competitors like Google and Cisco.
Flavien Charlon, a software developer on our adCenter team team recently wrote a series of articles on his blog after completing SQL Server training by Kimberly Tripp.
Each blog post outlines the different query execution plans.
Part 1: SQL Server Data Structures
In SQL Server, data is organized in pages. A page has a fixed size (8 KB). Each page contains records. The number of records that can be stored in a page depends on the size of the records. The operation of reading data from a page is called a logical IO. The smaller the size of a record is, the more records can be read with the same number of logical IOs. (See full post here)
Part 2: SQL Server: Scans and seeks
The most primitive operation in SQL Server is retrieving from a table a set of rows that satisfies a given search predicate. This can be achieved using two basic strategies: scans and seeks. (See full post here)
Part 3: SQL Server: Data access strategies
SQL Server can use different data access strategies when retrieving rows from the table. The strategy that will be used depends on the columns of the table, the available indexes, the query, the data in the table, and the statistics. There are 7 basic data access strategies. (See full post here)
Microsoft’s Global Product Development team in Europe recently completed its Treemap control for visualising hierarchical data, seen below. You can read more about it here and leave your feedback.

If you are excited by what you see us doing, check us out at www.joinmicrosofteurope.com/.
Jonathan, a PM on our adCenter, recently wrote a blog post for the adCenter Community blog about the new "path visualization" feature in adCenter Analytics (see below for a picture). The full post can be read here: http://adcentercommunity.com/blogs/analytics/archive/2008/09/18/Understanding-Visitor-Behavior-_2D00_-The-adCenter-Analytics-Path-Report.aspx

Microsoft's Experimentation Platform team, which includes developers in Dublin, recently published a paper in Data Mining and Knowledge Discovery.
The paper, titled "Controlled experiments on the web:survey and practical guide", discusses how Microsoft uses controlled experiments to allow end users to guide the development of features.
Summary: http://exp-platform.com/hippo_long.aspx
Full text (PDF): http://www.springerlink.com/content/r28m75k77u145115/fulltext.pdf
On April 16th, Mary Jo Foley published an article called "Microsoft looks to make product planning more science than art" where she talks about the technology, the opportunity and interviews Ronny Kohavi, the General Manager of ExP. The article goes into the history of the team and the project at Microsoft. A big part of the new technology development for this team goes on right here in Dublin. We are glad that the word is getting out!
More recent news: Randy Henne, one of the founding members of ExP and manager of the ExP program in Dublin recently talked at IMTC 2008. Slides for the IMTC talk can be found here.
One of the developers on our adCenter project, Paolo Severini, created an amazing new tool for detecting memory leaks in JavaScript. It can be installed as an Internet Explorer band and it is designed to find memory leaks in JavaScript code that runs in Internet Explorer.
Read more about it on this page and provide your feedback! And if you're excited by what you see our team doing, check out our job openings at www.joinmicrosofteurope.com.
We're excited to announce a new initiative here on the GPDE team -- Experimentation. We're going to be shipping a key part of Microsoft's new Experimentation Platform, which is a system for testing out different web designs and other experiments on real live users. It will initially be used by MSN and other online sites from Microsoft, and we have plans to eventually roll the service out to any developer using Windows Live.
Experimentation is both a technology and a philosophy. The technology is based on randomized experimental design, in which a small set of users get a new version ("treatment") of a site or service, while the rest get the old version ("control"). The system measures how effective the experiment is (by evaluating metrics designed by the site owner, like number of clicks on a page or number of purchases), and then does some analysis to see if the results are statistically significant. The platform also includes the ability to quickly auto-abort an obviously failing experiment, and even suggest other hypotheses to be tested by new experiments.
The philosophy of experimentation is simple -- "let the users decide". Traditionally, decisions are made based on the HiPPO (the Highest Paid Person's Opinion). The Experimentation Platform means our customers can instead make decisions based on the results of controlled experiments. The hippo stress toy (see picture) is for those moments when an opinion-based decision happens anyway.
Click over to exp-platform.com to learn more about experimentation at Microsoft and read some recent papers. And check out the open jobs on our recruiting site.
This week, Microsoft executive Debra Chrapaty visited our site in Dublin. We got a chance to sit with her and get her feedback on the great work we're doing for adCenter and Windows Live Mobile.
However, Debra's main purpose for visiting Dublin was not for our group (although we do like to think that J). In fact, she was here to open up Microsoft's new European data center, one of the cornerstones of Microsoft's global online presence and the first outside the US. When completed in May 2009, the data center will occupy 51,000 square meters, and Microsoft will spend €350 million to build it. One interesting aspect of the data center is that by using air cooling, it will be 50% more energy efficient than similarly-sized facilities.
Read more in the Irish Times article, and look for an upcoming guest post on our blog from Debra!