Most Popular Posts

Sep 11, 2009


Undoubtedly virtualization is coming to change the software industry. The question is how soon and how deep it will penetrate our lives.

The main hypervisor customers at the moment are web hosting companies. What they offer to their customers is virtual machines. As a user of such a virtual machine, you can utilize the “machine” resources as much as you want. The host couldn’t care less because they have already limited the available capacity based on how much you’ve paid. Additionally, as a “machine” administrator you can create additional user accounts. Again, the host doesn’t care, because all those accounts can access is the virtual hard drive which is technically just a file. That latter fact also makes it easier for the host to save “snapshots” of the virtual machine, so when you screw up, they can restore your virtual machine in no time.

The next area hypervisors will penetrate is software development. Software developers typically maintain at least two machines – one “office” machine for office work – mail, web, documents, etc., and a “lab” machine where intermediate builds are installed. The latter one gets reimaged quite often because it gets into an irreparable state so often. In addition to that if a developer wants to try a third-party’s beta release, they would need yet another “lab” machine. You get the point - a hypervisor can allow a developer to have all that luxury on a single physical machine and even save time managing the virtual machines compared to managing physical machines. Should I mention how much cheaper it will be for the corporate IT department not to buy N machines for each developer?

Let’s take Hyper-V even further. Your home computer. You’ve created a separate user account for your wife so that she can’t mess up your desktop settings. So far so good. Until one day you discover that something is not right on that computer. She admits something popped and required to be installed to which she agreed. Now you have to reinstall the OS. (Add your kids to this scenario too to get the real picture.) When you reinstall the OS, consider setting up Hyper-V, will you. You really need everyone in your household to have their own virtual machine.

So my bet is this:

Hyper-V will become an essential part of every desktop OS and the full set of hardware devices will be available through virtual machines so the virtual machine experience will be virtually identical to physical machine.

Sep 9, 2009

About Me @ Microsoft

I work for Microsoft. Any knowledge I gain I may use in my work.

I’ve been working for Microsoft since 2005. All this time I’ve been a program manager on the SQL Server in Redmond, WA.

From 2005 through 2008 I was a program manager on Entity Framework. Entity Framework has three major layers:
  • Entity Data Model (EDM) – a domain modeling language and a runtime API to creating and reasoning over a model.
  • Entity Services – a programming platform in the space between database and objects. It includes the Entity SQL query language, the EntityClient ADO.NET provider, and the plumbing underneath.
  • Object Services and LINQ – the entity-level programming paradigm materialized as .NET objects.
I was the program manager for Entity Services. At the time we shipped v.1 (.NET Framework 3.5.1) it accounted for more than 50% of the codebase of the entire product. Check out my blog – I truly enjoyed Entity SQL. It resurrected an old passion of mine for languages. I got to interact with language gurus like Erik Meijer and Mark Shields. Honestly, I think SQL belongs in the database space. It was great that we had a functional query language in the entity space, but the SQL-like constructs inhibit people from thinking functionally (at least at first.). So I suggested that the language should be a typical functional language. The problem was I couldn’t get Erik and Mark to agree which one is better - Haskel or OCaml :). All jokes aside, I did download both Haskel and OCaml and started digging into how one writes meaningful queries in those languages. SQL didn’t look so bad after all. :)

After we wrapped up Entity Framework v.1, I decided to move lower in the connectivity stack. Thus I landed right at the bottom of it – SQL Server Protocols. SQL Server Protocols is a broad area that includes the networking layer in SQL Server and the client data providers, the wire protocols that the SQL Server core engine speaks, and the SQL Browser service in its entirety. To put it in developers perspective – when our things work, you don’t even know we exist; when we screw up, the whole world becomes aware of it.

A wire protocol is very similar to a programming language. The most signifficant drawback of protocols is that there is no functional protocol [yet] :). Check out the team blog - If you have questions on SQL Server Protocols or SQL Server data access in general, join the SQL Server Data Access forum.

In addition to SQL Server Protocols I also work on some new SQL Server connectivity stuff that I’ll be the first one to blog about once it goes public.

Sep 8, 2009


For the record, my name is Zlatko Michailov. This is my personal blog. My employer is not affiliated with it. (I’ll blog separately about my employment history.)

I’ve been scattering content throughout the Internet since 2002. My search for the right combination of original ideas, minimum cost of hosting, and good discoverability has lead to the creation of four public web sites/blogs. This one seems to be number five. Hopefully it will last longer than its predecessors. LOL

I launch them in the following order:


Each of them contains original and unique content. So they are still worth checking out. I may eventually consolidate what’s worth it under one roof, but for now I have several areas that I want to explore first.