Friday, June 1, 2012

Estimating the VS2012 RTM release date

So after trying my luck on estimating the VS 2012 RC release date, with mixed results, I thought I would have a go at the RTM release date. So I hope this prophecy will be slightly more convincing, not being made on the same day of the release. :P

The new estimate is done almost the exact same way as with the RC estimate. The only 2 things that have changes is; firstly, we now have an extra sample point for the historical data which makes the estimate slightly better. Secondly, the date that I am estimating from, is now the RC release date; May 31st, instead of the Beta release date.

The new estimate is:

So as you can see this estimates that there is a 50% probability thet the RTM will be delivered before September 9th, or 95% probability that it will be delivered before November 1st. Finally there is a 0,02% chance that it won't be delivered in 2012. :)

Another thing I would like to mention is that the new chart is made using LinqPad and the OxyPlot library, which is by far the best and most versatile charting library I've ever tried for .Net. The previous chart was made using LinqPad and Excel which is ok, but lacks versatility and the ability to add annotations, which I had to add in Photoshop. Also the Excel charts suffers from the lack of anti-aliasing.

Thursday, May 31, 2012

Visual Studio 11 RC release date revealed (sort of)

UPDATE

Hehe, so literally minutes after posting this. Brian Harry makes the announcement on his blog; the VS 11 RC is out now! So my estimate were only 11 days of. Get the RC here.
So I guess I'll have to try and predict the final release date now. ;)

Original Post

I was interested in trying to find out when the RC of VS 11 is coming out and I couldn't find any MS employees who were willing to tell... So I made this simple probabilistic model of the release date based on the previous VS versions and their release cycles to guess when it might be. I did this by making a normal distribution based on how many days there had been between beta, rc and final releases in past versions of VS. Then I added the predictions to the release date of the VS 11 Beta.

The result was the following graph that sets the 50% mark at June 11th 2012, which means there is a 50% chance of the release being before June 12th. After making the prediction I noted that this is the exact date TechEd North America is scheduled to start. Coincidence? Maybe, maybe not.

Disclaimer: The normal distribution is very spread out, which means the uncertainty in the estimate is fairly large. Actually the predicted probability for June 11th being the actual release date is just about 1.16%. The 95% mark is at August 7th.

The data used for the estimate is:

VS2008

Beta 1 was released 19-04-2007
Beta 2 was released 26-07-2007 (98 days later)
Final was released 19-11-2007 (116 days later)

VS2008 SP1

Beta was released 12-05-2008
Final was released 11-08-2008 (91 days later)

VS2010

Beta 1 was released 18-05-2009
Beta 2 was released 21-08-2009 (95 days later)
RC was released 09-02-2010 (172 days later)
Final was released 12-04-2010 (62 days later)

VS2010 SP1

Beta was released 07-12-2010
Final was released 03-03-2011 (86 days later)

Normal Distribution Properties

Samples = 98, 116, 91, 95, 172, 62, 86
Sample Mean = 102.86
Sample Std. Deviation = 34.48

Friday, September 9, 2011

How to update SysinternalsSuite on a regular basis using a simple PowerShell script

I often use the excellent tools in the Sysinternals Suite from Microsoft TechNet. Especially the tools, DbgView, ProcMon and ProcExp, though there are many more extremely usefull tools in the package.

However, I've always been annoyed by the fact that the tools din't update themselves on a regular basis. So I've made a simple PowerShell script to handle the update process for me.

The script uses Robocopy to synchronize the files from "\\live.sysinternals.com\tools" to the a local folder called "%programfiles%\SysinternalsSuite". I guess this means that the script is only compatible with Windows 7 or Windows Server 2008.

On my computer, I've scheduled the script to run every night using the task scheduler. This way I always have the latest updates. Please note that the script needs to run as administrator, it will ask for elevation if it doesn't.

You can find and contribute to the the script here: SysinternalsSuite Updater on GitHub

Monday, February 7, 2011

My experiences with the Kindle DX

Image representing Amazon Kindle DX as depicte...Image via CrunchBase

I bought an Amazon Kindle DX (2nd Gen.) a couple of months ago, and I thought I would write a "little" entry of my thoughts about the device so far.

I set out to buy a Kindle based on recommendations from a couple of friends. Usually more than one recommendation from friends means that it is at least worthwhile looking up some information on a product, so I did, and I finally decided to purchase the Kindle Graphite DX from Amazon.com.

So far I have only read a couple of books all the way through on the Kindle, and it has been a fairly good reading experience. It is certainly much more like reading an actual book than any back-lit or led-based technology could ever be. Whether that is a good thing I don't know. I personally like the experience better than reading from a laptop or an ordinary LCD display, but you might not.

I want to get to the criticisms I have of the Kindle and follow up by listing some of the things I like about the Kindle because I sorta want to leave on a high note as much as possible.

One of the things that don't like about the Kindle is the monopolistic government of both the hardware and software platform by Amazon. This is also the main reason I don't yet own an iPhone. I simply don't think it is a good thing that one company rules the entire platform be it Apple, Amazon or Microsoft for that matter. I like the Android model much better where Google provides an OS (open source or not) but leaves everything else up to the imagination of both software and hardware developers. Its not that I don't see the benefits of controlling both software and hardware, I just simply think it's too big brother'y and closed minded that Apple or Amazon should decide what kind of software is best for me to run on my device.

The second gripe I have about the Kindle, is the performance of the screen. As I mentioned earlier the screen succeeds in one area, readability. However, if the truth must come out, and it must, the screen is as slow as a dead kangaroo, updating the display takes ages compared to a modern LCD display (or even an ancient LCD display). I know e-paper is a relatively young technology so the next generation screens will most likely be not only a lot faster, but also sport a much wider spectrum of colors. :) I'm sure many of these improvements will come sooner rather than later, based on the announcements from various e-paper manufacturers.

When it comes to the actual functionality, the Kindle could need some work in a couple of areas. Mainly the navigation area. First of all a touch screen would be nice. Currently, if I want to go to a specific page when reading a book, I have the following 3 options:

  1. Press the forward/back button until I reach the page
  2. Go to the index of the book and find the link to the page
  3. Open the go-to panel and enter a page number

"Hmm, three options doesn't sound that bad", you might think. But that's only till you realize that they are all dreadfully slow due to the slow display refresh rates. This can be very frustrating, especially if you are using your Kindle as a technical reference. In technical books you often don't read the book from end to end, but rather use the book as a reference, which means you must be able to quickly go from one part of a book to another, for example between the index and various chapters of the book. For now you can forget that on the Kindle, it simply isn't capable of doing ANYTHING fast... However, not all is lost, and I'll get back to that.

A final feature I would like to see improved in coming generations of Kindle is the interoperability with non-Kindle e-book formats. See this is why I don't like the Apple and Amazon strategies, they get too invested in their own formats and technologies and try as hard as they can to keep everybody else away from the platform instead of trying to enrich the platform which benefits both them AND the consumer. Granted, Amazon have included a PDF reader but lets just say there's room for improvement. Where is the support for in-document links and the shortcut to the index? And Amazon, please include support for more types of e-book formats so we don't have to use poorly written 3rd-party e-book converters, or at least make it possible for other e-book formats to make plugins for the kindle.

When all that's said I still think the Kindle is a product with a bright future. Amazon is on the right track with some of the features you get when buying a Kindle. First of I have to say the battery life is incredible. I've recharged my Kindle like 4 or 5 times since I got it, and its not like I didn't use it. In comparison i offer my phone which I've recharged maybe 100-150 times in the same period (once a day, even if i don't use it). As long as you turn off the wifi/3g connectivity the Kindle will last a looong time on a single charge. Which brings me to maybe the main reason to buy a kindle over another e-reader.

The Kindle have FREE 3G connectivity in a HUGE portion of the world, which makes it ideal as a travel companion. How Amazon pulled this feature off, is beyond me. They would've had to make deals with at least one phone company with a 3G network in each covered country, and they apparently succeeded in a lot of countries. Their own sites states that they have 3G coverage in more than a 100 countries on all continents except Antarctica. If 3G isn't available you can also use a regular WIFI network or as a last resort a USB cable to get your books to your Kindle.

I mentioned earlier that the Kindle wasn't the best reader for technical books. The solution, is the software reader you can download to your PC or Mac. This let you read all of the books you bought, for your Kindle, on your computer. I'm a software developer, so most of the time I just need to quickly look up a specific piece of information. And while the device currently fails in this regard the PC software is much better. I mean, I'm already sitting at my computer anyways, so the Kindle for PC software simply makes more sense for me in that context.

Finally I like the fact that you can carry ALL of you books with you or download them, free of charge, almost anywhere in the world. I'm definitely not sorry I bought a Kindle, I just wanted to express specific pain points that I wish Amazon will correct in future versions.

Friday, June 25, 2010

How to serialize a JSON string into a dynamic object in C#

I wondered how you would go about deserializing a JSON string into a dynamic object and I came up with the following solution using the built-in JavaScriptSerializer.

Then you could just use it like so:

There are other solutions to this problem by Nikhil Kothari and Peter Goodman, I suggest you check those out for yourself and see if they are a better fit.