Windows Azure Geo-Location shipped

Over the last several months, I had been working on a major feature for Windows Azure which I couldn't talk about in public. I' happy to announce that as of last week, it has been shipped to our production clusters and anyone can use it now. I'm a bit late in posting about it but hey- better late than never.

Around six-seven months ago, my manager called me into his office and asked "Hey - do you want to the Program Manager on this geo stuff?" At that time, I really didn't have any idea what I was getting into. Thankfully several smarter people on the team had been working on this for some time so I got to jump onto a moving train.

Through the holidays and the first half of the year, we worked through several technical challenges and I'm proud of the team and what we have accomplished. It was a *big* deal to get this out there and I'm very happy to have been a part of it.

For the official post and a semi-tutorial, see here.

 

CLR Binder internals

Its been a long time since I did just a link in a post. Aarthi has a great article in MSDN Magazine on the internals of the CLR Binder. It's a must read if you're coding with .NET

Understanding the CLR Binder

 

What I've been working on - a book on Windows Azure

It's been close to 5 months since I last posted but I have a good excuse this time. Back in November, I was recovering from PDC 2008 and the launch of Windows Azure. One morning, I had this crazy idea. Like all new Microsoft platforms, Windows Azure was going to need a book. Why not write it? I sent out a few feeler mails and O'Reilly was quick to respond and talk to me. Of all the publishers I spoke to, they were definitely the easiest to work with and I wound up signing a deal with them to write a book on Windows Azure.

Facts about the book

  1. We're targeting the book for a release in January next year. Now, I'm a Microsoft employee and you know how good we are at meeting dates <grin/>. Seriously though, the goal is to launch the book a month or so after PDC 2009 which is in November this time. All this depends on one person - me. But more on that later.

  2. We don't have a final title yet. I expect it would be called 'Programming Windows Azure' or something along those lines. Decisions on that and what is very important to me - the animal on the cover will be taken a lot later in the process

  3. This will be a comprehensive look at Windows Azure - all the pieces and technologies that make up the platform along with tips on how to use it effectively, patterns, etc. If you're new to cloud computing, you should be able to pick up this book and come out of it with a good understanding of what in blazes Azure actually is. My personal goal is to do a book which doesn't get outdated very son.

    How do you do that with a platform which ships features every month? Well, take a look at people like Jeffrey Richter or Mark Russinovich or Charles Petzold in the Microsoft world. Or look at the Camel book or the High Performance MySQL book or Cal Handerson's scaling book. Some books are just so darn good that they are relevant even when you look at them years later. If my book is even a quarter as good as those books, I'll be satisfied. In fact, I keep these and other classics around me when I write to remind myself of what makes a good book great

  4. All the proceeds from this book will be going to charity. In specific, they'll be going to Asha. So when you buy your copy (and I'm sure you will :-) ), you'll be helping with lending small amounts of money to people who really need it.

Where are we now?

Well, right now, its very early going. I've just sent in two chapters for review and trust me, writing is very hard. I've a long , long way to go. Thankfully, I've an awesome team to help me out. The O'Reilly folks have been great and Brian Jepson, my editor, has been very tolerant with all my goof-ups to date (thanks Brian!). We also have a great team of reviewers set up. I'll keep this blog updated with progress on the book.

How can I help?/ When can I read it?

I would love to know what you guys expect in a book on Windows Azure. Feel free to leave a comment or mail me at mail@sriramkrishnan.com. I'm trying to make it as useful as possible. Examples? Have a lot of them. Sections on what design/architectural patterns to use? They're in there too. Sections on when NOT to use the cloud? Yes, I wrote a lot about that. Silly jokes and Battlestar Galactica references? Have them too.

As for when you can get the book, we plan on making it available over Safari (O'Reilly online book service) as a preview at some time but a lot of details need to be worked out (and frankly, I just need to write more). Of course, once the book is done, I'll be linking to the Amazon page.

Update: Updated charity information

Labels:


 

Erlang bindings for Windows Azure

Background

I'm a procrastinator. Where others see an obstacle to surmount, I see an opportunity to put something away for later. Which is exactly what I did for my Erlang wrapper around the Windows Azure a few days ago. I discovered that Erlang didn't support SHA 256 out of the box, necessary for the HMAC-SHA256 needed for authenticating storage requests, I threw up my hands in a mediocre blog post, filed away my code for a later date when either Erlang added SHA 256 support to the crypto module (likely) or when I got around to implementing SHA 256 myself (not likely).

However, my procrastination this time was short lived. Steve Vinoski showed up in the comments and to my astonishment, whipped together a SHA-256 implementation. Having run out of excuses, I spent some time and finished up my client. Along the way, I wrote a HMAC-SHA256 module in Erlang which was an interesting exercise as well. You can find the GitHub project here. It's in its infancy and can only deal with blobs at the moment. But I am taking feature requests so holler if you need something.

Sample

I'm still unsure of the right idiomatic way to do most things in Erlang. I've created it using the gen_server OTP framework though in retrospect, a simple module would have sufficed. Here's some sample test code which accesses storage (the key and account for the local development storage which runs on my machine).

-module(winazuretest).
-export([test/0]).

test() ->
winazure:start({"devstoreaccount1",
"Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==",
true}),
winazure:create_container("test",true),
winazure:put_blob("test","blob1","Hello!","text/plain"),
"Hello!" = winazure:get_blob("test","blob1"),
winazure:delete_blob("test","blob1"),
winazure:delete_container("test").

Observations


Archives

November 2004   January 2006   June 2006   July 2006   August 2006   September 2006   October 2006   November 2006   December 2006   January 2007   February 2007   March 2007   April 2007   May 2007   June 2007   July 2007   August 2007   September 2007   October 2007   December 2007   January 2008   February 2008   March 2008   April 2008   May 2008   June 2008   July 2008   August 2008   September 2008   October 2008   November 2008   December 2008   January 2009   April 2009   May 2009