Thursday 13 December 2007

Extensibility, extensibility and once again extensibility

It looks like the new MVC framework from Microsoft is very extensible which is great. I hate frameworks that have no built-in extensibility points and basically force you to do things their way. WCF is a perfect example that proves that extensibility can be very powerful and to be honest this particular feature has saved my life :) a few times.

Friday 30 November 2007

ASPNIX thanks for bringing my web site down

My blog was down for nearly 72 hours. No response from the support and they phone is "temporary out of service". The name of the company that still hosts my web site is ASPNIX.  I suppose no more comments needed. I need to find a better hosting company soon enough. I will describe the whole issue later on.

Wednesday 28 November 2007

LINQ and its diverse incarnations

LINQ as a concept is highly extensible and every now and then a new LINQ to WhatEverYouWant gets announced. Just a few examples to show how fast people are adopting this technology: LINQ to LLBLGEN, LINQ to NHibernate, LINQ to Filckr, LINQ to Amazon, etc. Within a few days I've come across 3 more projects:
  • SyncLinq - it returns collections that implement INotifyCollectionChanged which lets you track changes
  • PLinq - it lets you specify that a given LINQ statement should be executed concurrently and it's up to the runtime to decide how many CPUs will be used
  • DryadLinq - the same as PLinq, just replace CPU with PC, basically it lets you specify that your query should be executed on many machines
It looks like LINQ is a powerful platform itself. It has enabled people to create many different levels of abstractions that are based on nearly the same syntax. It's amazing because if I want to stay close to bare metal I can go for Linq, if I want to get some additional services like change tracking I can go for SyncLinq. If I want to take advantage of my N > 1 cores without messing with threads I can go for PLinq and finally if I have N > 1 machines that nobody uses :) I would definitely go for DryadLinq. Diversity in its best shape.

Tuesday 20 November 2007

I can use Microsoft Surface but I can not nest directories as deep as I want

Microsoft Research is surprising us nearly every month. Just to name a few of their great products: PhotoSynth and Microsoft Surface. But you know what every day I hit the #$%@ limitation on the length of the path. 260 characters and that's all I can get in the .NET framework. Guys, can we back up a bit and solve the basic problems?
Resharper - click on the picture to see the details:

MsBuild - click on the picture to see the details:

Monday 12 November 2007

Irish Java Technology Conference launch from .NET engineer perspective

After the Joel Spolsky presentation that launched IJTC there was a panel discussion which meant to explore all the future directions that Java as a platform might take. The participants were talking about the future in a kind of sad way and the discussion toured out to be mainly a never-ending stream of complaints. Basically people were concerned about:
  • Java 6 is not implemented on Leopard
  • mobile phone specs on the vendors web sites don't list Java as a feature, something like Java ready sticker
  • lack of tools
  • diversity of frameworks and their life-span uncertainty
  • growing complexity of the language itself
  • dynamic languages that from their perspective are taking over Java current and future believers
  • etc.
One of the listeners asked how to anticipate the life-span of a given framework. The answer was that it's impossible, that's fine, and that his company needs to be more agile. Excuse me? If you build a house you don't want to change its foundation too often. As far as I know Microsoft provides 10 years of support for every framework they release. The next interesting statement was that Java is developing itself quickly because it's community driven. I think that this is not true and the best example is C#. The first version of it was way behind Java at that time it was released. Nowadays C# is way ahead of Java and the main reason is that there are a few smart guys at Microsoft who listen to developers but at the same time they are able to make quick decisions when it's needed. I love diversity but it looks like Java is going in so many different directions that even its believers are kind of lost. What is more, exploring (too)many directions at the same time always affects your velocity and you always have to find the right balance. I can not recall a single statement which would mention a framework/solution/approach which is a breakthrough and it will make the developers life much easier.
I might be wrong because I don't follow the Java world on daily basis but my overall impression was that both audience and guests were not really happy what they came up with. But there is a good chance that they weren't actually upset but simply tired :) because of the fact that the discussion finished around 10 pm. I hope that a few pints after the launch let them recharge the batteries because the conference itself looks interesting.

Two talks of Joel Spolsky in Dublin

Both of them took place on November 7th. The first one was in the morning and Joel Spolsky was presenting FogBugz. Explaining the product on feature by feature basis Joel managed to tell the audience a little bit about how he thinks the software development process should look like. And you know that people like him are right in 99% of cases and you can follow them blindly ;).
FogBugz is a great piece of software that provides many desired by every software house functionalities like bug tracking, project tracking, Wiki, discussion groups, evidence-based scheduling and even a small help desk system. All these features are seamlessly integrated together in a way that the user is not aware when he/she moves from one part of the system to the other. Every activity that requires user attention is as simple as possible and what is very important as natural as possible. It's enough to say that whenever you need to specify an end date you can simply type word "week" and the system will calculate the date based on the current date. Adding new tasks to your to-do list is simpler then firing notepad (actually I do this every morning to keep my 5 most important task always in front of me). When you start working on a task you just hit start button and when you are finished you hit stop. The system calculates everything for you taking into account lunch break, scheduled meetings, your working hours, etc.  Those are small things but they show how the whole application has been build. Basically, FogBugz tries to be as transparent as possible to let you focus on your real tasks.
The next thing that impressed me a lot was the evidence-based scheduling. If you work with FogBugz you will never get just the end date of your project. Instead, you will get a set of dates and probability assigned to every of them. Taking into account how many IT projects are completed on time and on budget then this must be a better approach than what we have now. Needles to say that it does make sense especially when you take into account Quantum Physics.
The second presentation was part of the IJTC launch and Joe was talking about a topic that is as incomprehensible to software developers as the fact that they should not spend half of their life in front of a computer :). He explained how Companies take advantage of misattribution to sell us more of their products. His example was based on comparison of iPhone and a phone X of company Y. It's X and Y because I don't remember their names which is the best evidence that misattribution works :). Basically iPhone has fewer features, it's not extensible for the time being, it doesn't have a replaceable battery, it's 4 times more expensive and the features that are present in both phones are better implemented in the phone X. Why Apple has sold millions of iPhones and the company Y can only dream of something like that? iPhone looks way better and it's much more user friendly. People then attach the UI experience to the rest of it and that's how iPhone as the whole seems to be perfect in their minds. That's what Joel calls misattribution. Although I suppose that the marketing success of iPhone is a little bit more complicated beast I still think that his point is valid and it was certainly refreshing to me.

Monday 29 October 2007

What's new in Orcas release of WCF

Christian from Thinktecture prepared a list of new features and improvements that are part of the Orcas release of WCF. My favorite one is Custom username over transport security. The reason is that I've been trying to integrate WCF and PHP in a secure, standards based way and I've learnt that it's not easy because Custom username in WCF 1.0 forces you to use a mix of transport and message security (TransportWithMessageCredential). As we all know support of WS-* specifications in PHP world is far less than perfect and going directly to the transport security might make my life easier. I will write about my PHP/WCF/Java story later on.

Wednesday 24 October 2007

O2 broadband - pros and cons

Quite a few people asked my to describe my O2 broadband user experience. Sure. I've been using O2 broadband for a month and I'm happy enough and I can not really complain about it though it's not perfect. Let me provide some data that I gathered using a small app I wrote. The test app was sending every 10 seconds a unique (to avoid caching) query to google and measured the response time.
The first test was running for 24 hours in my house which is located in Dublin 14. As you can see in most cases the response time was below 1 second though there ware a few periods when the response time exceeded 10, 15 or even 20 seconds. Fortunately, as I said there ware only a few of them and they lasted for around a minute.
Click on the picture to see the details.
Next I checked how the response time is dependent on the location in Dublin. I got on the Aircoach in Sandyford and went with my laptop to the Dublin Airport. The exact route can be found here. During the trip I applied the same procedure as the one described before. The results are again decent but they could be better.
Click on the picture to see the details.

In general I would recommend O2 broadband to people who:
  1. need to be able to connect to the Internet in nearly any spot in Ireland. If 3G is not available it falls back to GPRS.
  2. don't need great responsiveness at all times
  3. don't download/upload huge amount of data
  4. don't need to share their broadband and if they do they can dedicate a PC or laptop for that purpose
  5. as myself on the one hand don't appreciate how Eircom acts and try to avoid it but on the other hand need to have access to the Internet that works most of the time.
Hope this helps.

Thursday 11 October 2007

Bunch of Scotts talking about the new Microsoft MVC framework

Scott Hanselman recorded two sessions about the new Microsoft MVC framework.  Both of them look interesting though you need to take into account that they are showing really rough bits. If you just like me don't want to watch them in a browser you can download them directly to your local disk:
  1. Scott Gu - MVC
  2. Scott Hanselman - MVC + DLR

Friday 5 October 2007

Microsoft .NET framework goes open source - kind of :)

Scott Guthrie doesn't stop surprising me. Nearly every month he publishes something that makes me think that Microsoft is not that bad at all :). Today topic is the .NET source code. One could say that Reflector provides that functionality since it came out. That's true but Microsoft goes beyond that and they actually integrate debugging symbols + source code with VS.NET 2008. This feature will let you seamlessly step into the .NET framework code while you debug your own application. What is more they provide code with all the comments which from time to time can make huge difference. Of course they don't go mad completely and the licence the code will be released under prevents you from copying it. No hope for a quick catch up for Mono :).

Sunday 30 September 2007

A great .NET architect - Udi Dahan - is waiting for our invitation

I hope Philip or Clare or one of the other guys who run MTUG will be able to invite for free (via INETA) Udi Dahan. I've been reading his blog for over a year and I have to admit that this guy is just brilliant. All he is interested in is architecture that is technology agnostic. It's really something unique these days when so many people rush to use the latest technology because they think it will automagically solve their problems which we all know is not true :).

Friday 21 September 2007

Short explanation why VS 2008 is going to be of much better quality then VS 2005

Emma Williams is talking about how and why Microsoft has changed the way they develop Visual Studio. My favorite change is feature teams. The feature team is a small team of a few people that are responsible for delivery of a feature. The team comprises of developers, testers and project/product managers. They all work very closely together until they deliver which makes them emotionally bound to their task and that's good. There is nothing worse then a bunch of people who don't care what they work on. If testers wait for developers to be finished and then developers wait for testers to be finished and so on then every person works on its own without any notion of being part of a team. If you hear a few times a day "who cares", "I don't care" or "I don't give a s..." then unfortunately most likely you work in such an environment. BTW she was born in Ireland :).

You can't get rid of memory leaks

There are still people out there who think that by having GC they don't have to bother about memory leaks. Well that's not entirely true. I would even say that's a false statement. Next time someone says something like that I will send him/her to Mike Stall

Sunday 16 September 2007

Voice of the Silverlight team in Dublin

Martha Rotter will be presenting Silverlight in Dublin on 27th of September. It might be interesting, depends how deep she wants to dive :).

Wednesday 5 September 2007


I'm just back from London where I had really great time with my friends that live in a squat and are busy with their small independent theater. But the thing I want to talk about is the public transport in Dublin. We all know that it sucks but only when you go a city like London you realize how bad it is. To make a long story short it's enough to say that if Dublin was as big as London I would probably have to spent 6 hours on a bus from Cherrywood to the Dublin Airport.

Windows XP - no memory and no CPU required :)

This has happened to me a few times recently. My PC is equipped with 4GB of RAM and every time I use more then 2.5 GB XP starts being unpredictable. Needless to say that actually I was running 5 of 6 VS.NET 2005 instances at that time which more then likely consumed some resources :)

Friday 24 August 2007

Security B&B way :)

I'm going with my friends over the weekend to climb up the highest mountain in Ireland - Carrauntoohil. I volunteered to book B&B. I sent an email to a few B&B owners and waited for a reply. Majority of them were booked out but one woman offered a family room for us. The interesting part of this story is how she wanted me to send my CC details. Below I show the best snippets from the email conversation.
The women:
"(...)Please give your cc number and expiry date if you wish to secure the booking.  Cash is paid on morning of departure."
"Is there any website that I can use to book the room? Sending CC number in an email is not secure. Emails are not properly secured and encrypted"
The women:
"People usually send 2 emails with half the number on each"
Just brilliant :)

Monday 20 August 2007

From forestry to IT - channel 9 show

Peter Spiro is one of these guys who took unusual steps to get into IT. It's enough to have a look at him to figure out that he is more then interesting :) .  The whole conversation is about people and how to manage them in a way that both the Company and they benefit from it. It's first time I heard that we need to build properly layered systems just because there are some smart guys out there that want to unplug an old component and replace it with their own - better :).  
The next thing that absorbed my attention was his list of features that a good team should be characterized by:
  • trust
  • diversity
  • no single man show
  • shared responsibility
  • passion
It looks like a list of obvious things but you would be surprised how many teams lack 2 or more of them. And the last but not least, he knows what the work-life balance is. It was a well spent hour :).

Saturday 28 July 2007

80 characters long line is gone

I remember that not so long ago everyone was saying that a line of code should not be longer then 80 characters. The problem with this approach is that it leads you to cryptic method/class/variable names because of the 80 characters hard limit. I could justify that rule back in the epoch of 15 inch CRT monitors because there are not too many things more annoying then constant scrolling from right to left and left to right to be able to read a piece of code. But even nowadays there are people who would stick with that rule which doesn't make sense for me because it's just a waste of space of your 17/19/20 or 24 inch LCD monitor. 24 inch is a really great one and 2 of them are just brilliant :).

Friday 27 July 2007

Joel Spolsky will come to Dublin

Great news. Joel Spolsky will (more then likely) come to Dublin to promote FogBugz. I don't use FogBugz personally but I've been following Joel's blog for more then one year and I can always learn something from him. It's not about the technology itself. It's rather about how the technology is related to our real life and how we can take advantage of it :).

Friday 20 July 2007

Dynamic nature of C# I bet you don't know :)

Yesterday I read a blog post that meant to discuss possible naming conventions for LINQ but it turned out that the most interesting part of it was something completely different. Namely, Krzysztof Cwalina wrote that we don't have to implement IEnumerable and IEnumerator to be able to iterate through an object(collection) using foreach statement. It's enough that a class exposes GetEnumerator() method. It doesn't have to implement IEnumerable interface. At the beginning I thought that it's just another example of syntactic sugar and that the C# compiler generates implicit IEnumerable declaration on our behalf. But then I opened ildasm.exe and saw that that's not the case. IEnumerable wasn't there. That's it. Have a look at the code snippet and screen shot below to check it out.
The bottom line is that I learn every day and .NET doesn't stop surprising me which is fun :).
EDIT: I've modified the image because it looked horrible.

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
class Program
    static void Main(string[] args)
        FakeEnumerableClass enumerable = new FakeEnumerableClass();

        foreach (object o in enumerable)

            //works perfectly fine :)
class FakeEnumerableClass
    public FakeEnumerator GetEnumerator()
        return new FakeEnumerator();
public class FakeEnumerator
    public bool MoveNext()
        return false;

    public object Current
            return null;
class RealEnumberableClass : IEnumerable
    public IEnumerator GetEnumerator()
        throw new Exception("The method or operation is not implemented.");


Tuesday 17 July 2007

DTrace - an interesting tracing solution

I've just come across an interesting article about DTrace which is a tracing solution developed by SUN. I still need to dive into it deeper but it's key features are:
  • zero overhead when it's turned off
  • C based query language that allows you to query available probes
  • it allows you to analyze the whole system at very low(kernel level operations) and/or high level (number of garbage collections)
  • it gathers probes only when it's safe for the system
  • it's built-in into Solaris 10 and will be part of the next operating system from Apple called Leopard
It's been awarded many times and it really looks great because it provides very precise picture of the system.

Sunday 8 July 2007

Model View Controller ?? Model View Presenter

Jean Paul Boodhoo explains what the Model View Presenter design pattern is and what's the difference between it and Model View Controller. I've never been a big fun of MVC because it tightly couples View and Model.

Great book: C# via CLR

As I mentioned earlier I always wanted to read C# via CLR by Jeffrey Richter. Finally I got it a few months ago and while I was sick I read it. I think it's just brilliant because:
  • I like the way Jeffery explains problems.He is strict and precise whenever it's needed but no more.
  • As far as I know he is not a Microsoft employee which lets him express criticism of everything that deserves it.
  • It reveals lots of things that you will never be aware of unless you start thinking in an illogical way. Unfortunately CLR and/or C# not always behave in a predictable way.
  • The books touches nearly all the .NET internals that you can come across during your everyday job as long as you don't work on compilers and runtimes :).

Thursday 5 July 2007

You always struggle with formatting strings?

Check this out. It's a great crib sheet and I've even downloaded it to my machine. Just in case it disappears from the Internet :).

Monday 2 July 2007

Rough but enough explanation of WS-* standards

Michele Leroux Bustamante presents a rather short article about WS-* standards. It's great because it allows you to see the big picture and how all of these standards fit together. There are so many of them that it's easy to get lost if you don't deal with them directly on daily basis.

Tuesday 26 June 2007

What kind of software development have you experienced?

Scott Berkun published his list of unofficial software methodologies :). Regarding these mentioned by him I've experienced: ADD, CDD, CYAE . Don't forget to check comments, especially: NMP, CPM and NIH.

Silverlight is getting smaller and smaller...

The BCL team has announced that they've removed quite a few collections from the Silverlight version of the framework. It makes prefect sense to remove all non-generic classes but I can get why they've removed Stack<T> and Queue<T> as well. These 2 are very useful and people should not write them from scratch. That defeats the whole purpose of the .NET framework - leverage it. I don't know all the numbers but I can imagine it wouldn't harm Silverlight if they left them.

Wednesday 20 June 2007

Friday 1 June 2007

Irish Microsoft Technology Conference - go there to see people

Irish Microsoft Technology Conference is taking place next week. Though it's an overview what's out there in terms of Microsoft technology and thus there are not many sessions that explains things in depth it's worth going there. I can see really great speakers there that can reveal a few secrets having a pint with you :). I'm off to Spain for two weeks thus I will miss this conference.

How the relationship between Apple and Microsoft has developed over the past 25 years

Check out this video.

Saturday 26 May 2007

How to pollute C#

You can call me a purist but from my point of view the most valuable feature of C# is its consistency and explicitness. It seems that there are 2 teams at Microsoft that work on C#. One of them introduces great features like LINQ but the second one seems to support laziness of any kind and keeps introducing features that may(will) confuse software developers. Unfortunately it looks like the 'bad' team is not going to stop its activity. Their last idea which is called partial methods and is dedicated to code generator vendors smells like a C/C++ concept. Why? Because a partial method consist of method declaration(C++ header file) and method implementation(C++ cpp file). If you don't provide an implementation then the C# compiler will remove all calls to that method from your code! This means that your C# code that sits in a.cs file doesn't correspond to the C# code compiler sends to MSIL generator. Maybe it's me but I am not mad about at least half of the features Microsoft ships with Orcas(.NET 3.5).

Saturday 19 May 2007

Working long hours

I've just finished my 11 hours long Saturday working day. In general it's an exception that I work at a weekend but from time to time there is a need and I don't mind but nothing again comes for free. My brain is burnt and it was really hard to be innovative today which perfectly fits into the first paragraph of Roy's post. Needless to say that the rest of the post is valuable as well.
I know people that work long hours for months and they still claim they are productive. Maybe there is something wrong with me but I do believe that everyone needs to find time to recharge its batteries. And it doesn't matter whether you like/hate/love your job.

Wednesday 16 May 2007

64 bits doesn't come for free

Nothing comes for free. This is obvious but I still see a lot of people thinking that 64 bits architecture is going to solve all their performance problems which is not true. Maoni is explaining this in terms of .NET.

Sunday 13 May 2007

SQL Server and lock escalation

A few weeks ago Kevin Kline gave a talk in Dublin about SQL Server performance and how to make the most of it. The talk was very interesting because Kevin touched a few times on SQL Server internals. The most surprising one was related to how SQL Server escalates locks. Kevin mentioned that if SQL Server has acquired around 4000 locks within a table then it escalates them into a table level lock. What is even more more surprising is the fact that this value is hardcoded. I've tried a few time to prevent SQL Server from escalating locks and I've always failed. Now I know why :)

Tuesday 1 May 2007

My .NET goes to other platforms prediction was right

I was right :). I've just seen a channel 9 video with Scott Guthrie talking about how Microsoft ported nearly the whole .NET to Mac OS X and made it possible to host it inside IE, Firefox and Safari. It's just awesome. At last I will be able to write everywhere using my favourite language which of course is C#. A few snippets just in case you are to lazy to watch it:

The ported .NET framework has but is not limited to following features:

  • CLR runtime which means that VB.NET guys are not out of the game ;)
  • Garbage Collector
  • Threading support
  • Network stack support
  • LINQ
  • A little bit trimmed Base Class Library, for example COM interop is gone which makes perfect sense
  • The same format of binaries as in full .NET framework
  • The same namespaces as in full .NET framwork
  • Cross platform process debugging
  • Based on .NET 3.5

Scott leads a great team of engineers at Microsoft that seems (thank God) to pay no attention to their Marketing department. All I can say is keep doing this !!!!

Monday 23 April 2007

Microsoft is going to port .NET to other platforms?

Microsoft is going to announce something very interesting at Mix07. Well at least half of the .NET world has been talking about that for last 2 months. Today in the morning I listened to the Scott Hanselman's podcast and taking into account what I've heard I bet that the announcment will be related to the Silverlight (AKA WPF\E) which is Microsoft framework for building rich Internet applications. It will change the way we perceive Microsoft. What do I mean?  I think they may have decided to port some pieces of .NET to other platforms to enable developers to write C# code instead of JavaScript code in XAML based web applications. Maybe that's my dream only, well we will see.

Monday 16 April 2007

You are not an ecosystem your are only a part of it

It looks like Microsoft has finally understood that they are only a part of the .NET ecosystem. They used to think that every single .NET piece must come from them which is not obtainable and doesn't bring any value. But recently I've seen a few blog posts (for example Scott Guthrie) and a few podcasts (for example Daniel Simmons) where Microsoft employees freely mentioned OpenSource projects and how they fit into what Microsoft is trying to achieve. At last.

Saturday 24 March 2007

We won another programming competition - it's getting boring ;)

The Warsaw University Team has won the 31st ACM International Collegiate Programming Contest World Finals.

Sunday 11 March 2007

Automatic properties? No, thanks

Scott described a few new features of C# 3.0 a few new features of C# 3.0 on his blog. I'm happy that Microsoft tries
to improve C# all the time. But C# architects needs to be careful as much as possible in order not to overload the language and keep it as clear as possible. The syntax of Automatic properties is very similar to that we use nowadays to declare abstract properties. And this is confusing. I don't see any reason that justifies that move. Since VS.NET 2005 we don't have to create properties on our own. Instead we can just right click and choose Refactor->Encapsulate field. Needles to say that ReSharper supports that as well. Then what's the problem? Please don't change C# towards VB.NET and be as explicit as possible.

Monday 26 February 2007

Performance Architect Rico Mariani on channel9

The interview is great because it shows how to approach performance problems and how to talk about them to other people.

Below my favorite snippet from the interview.

"If you aren't measuring you aren't engineering"

Sunday 25 February 2007

Blog Tag - 5 Things You Don't Know About Me

I've been tagged by Michal Osmenda and here you go:
  1. I have no iPod because if I have let’s say 2 devices/toys then I immediately loose one of them. I suppose iPhone can solve my problem.
  2. I used to professionally practice swimming. When I was a child I qualified to the final of Polish National Swimming Championships.
  3. I started programming when I was 15 because swimming took over my whole free time before. Some people say that it was late but I disagree. Not quantity but quality matters :)
  4. I think that the best way of travelling is to stay in a target place for at least 1 year.
  5. I love Guinness and I hate Whisky.

Friday 23 February 2007

The best possible .NET documentation

Of course I'm talking about Reflector 5.0 that I use on daily basis and to be honest I don't really need the official MSDN documentation any more :)

Saturday 17 February 2007

Rihno Mocks 3.0 on the horizon

Ayende never sleeps :) which is good because a new release of his great tool Rhino Mocks will be released shortly. Check that out!

Thursday 15 February 2007

How lack of attention/professionalism can constrain your business

I've been trying to purchase a mobile phone from O2 website since last Sunday. Only today I've finally figured out how to complete it. What was the problem? My delivery address was too long but the website didn't say a word about that. Every time I tried I got the same generic error message: "Unfortunately we are currently unable to process your transaction. Please try again later. "  The whole process consists of 5 steps and delivery address is typed during the 2. step and the error appears when the final confirmation button has been pressed. I'm still shocked by the fact that there is not validation of delivery address in terms of its length and that it prevents some users from's just unbelievable

Monday 12 February 2007

Quo vadis C#?

The video doesn't provide any specifics but shows what directions the programming language architects in Microsoft are interested in. I like the idea that they are willing to introduce new features but there is no rush :).


Friday 9 February 2007

VS.NET finally targets multiple environements

Have a look at Scott's review of the most important new features/improvements of Orcas. Finally Microsoft decided to support more then only one environment which means they are listening to us :)