October 2008

Monthly Archive

It is a cold winter day in Dublin. A good friend of mine, an excellent software architect and entrepreneur, is finally ready to deploy his application. The last few months had been the toughest. He had spent almost 3 years building his dream. Being a perfectionist is not easy.

Dealing with those new damned servers was the hardest part. High scalability, reliability and availability do not come cheap, he thinks. Although they are essential concerns to his business however, they are not core.

Sometimes, during the process of building his application, I politely challenged his views. My Agile attitude screams for a “build cheap and fail fast” approach: build incrementally, release, see what works, and adapt.

Way too many startup companies waste tons of energy upfront setting up expensive hardware infrastructures. One day, their applications will handle all the extreme scalability problems that success will bring. Sadly, for most startups, that day will never come.

On the other side of the ocean, the Microsoft Professional Developer Conference (PDC) is taking place. I’m there, in a huge room with thousands of other developers. Ray Ozzie announces Windows Azure, the new “operating system” for cloud computing. People beside me take pictures, clap, and type on their keyboards frenetically. By now, many will have already twitted or blogged about Azure’s capabilities and features: automated service management, service hosting environment, load balancing, cloud storage, rich developer experience, and so forth.

Listening to the announcement, I begin to realize that it has never been so easy to attain load balancing, massive scalability and availability for any of my applications. Ever.

Expensive data centers will be completely replaced or augmented by “the cloud”, a set of pay-per-use configurable servers that companies won’t have to maintain directly. Microsoft is not the first company to provide a cloud computing solution but, for what I have seen so far, Windows Azure raises the bar to a whole new level.

In the next few months, Microsoft will evolve the product based on community feedback and, even more importantly, will disclose the pricing model and service level agreements. Windows Azure may allow us to affordably defer important decisions about how many servers we need to reliably support and scale our applications to the very latest responsible moment: when the popularity and needs of our applications will justify it. I have great hopes.

Add this post to: del.icio.us:Notes from PDC: Windows Azure improves agility digg:Notes from PDC: Windows Azure improves agility spurl:Notes from PDC: Windows Azure improves agility simpy:Notes from PDC: Windows Azure improves agility newsvine:Notes from PDC: Windows Azure improves agility blinklist:Notes from PDC: Windows Azure improves agility furl:Notes from PDC: Windows Azure improves agility reddit:Notes from PDC: Windows Azure improves agility Y!:Notes from PDC: Windows Azure improves agility google:Notes from PDC: Windows Azure improves agility technorati:Notes from PDC: Windows Azure improves agility stumbleupon:Notes from PDC: Windows Azure improves agility windowslive:Notes from PDC: Windows Azure improves agility

If you’re one of 6,000+ developers, software types, and vendors attending Microsoft’s signature PDC 2008, be sure to stop by the InnerWorkings booth #113 — it’s lime green, you can’t miss it! With keynotes from Ray Ozzie and Bob Muglia, I’m expecting a forecast of heavy showers and dense cloud cover!

I’ll be hanging around our booth to chat, swig coffee, and dispense a motley collection of free stuff and daily prizes. We’re actually raffling off some full-year subscriptions to InnerWorkings Developer (an $1,875 value) and hosting a Safari Books Online raffle for a free subscription. Our good friends at Safari have kindly given us some quality programming books to reward lucky show attendees, so don’t go home empty handed.

Lastly, we’ll be showing new demos and great InnerWorkings schwag like compact pocket tools and USB flash drives. So make sure to stop by the booth and say hello! I’m told there will be candy (or sweets for the Europeans) on offer also, so don’t let me eat it all myself.

To get in the mood for this trip, I’d recommend the following classic from my old favorite, Randy Newman:

http://www.youtube.com/watch?v=-aegiztiE58

Enjoy the show…I’ll see you in LA!

Add this post to: del.icio.us:Meet and greet at PDC 2008 in LA digg:Meet and greet at PDC 2008 in LA spurl:Meet and greet at PDC 2008 in LA simpy:Meet and greet at PDC 2008 in LA newsvine:Meet and greet at PDC 2008 in LA blinklist:Meet and greet at PDC 2008 in LA furl:Meet and greet at PDC 2008 in LA reddit:Meet and greet at PDC 2008 in LA Y!:Meet and greet at PDC 2008 in LA google:Meet and greet at PDC 2008 in LA technorati:Meet and greet at PDC 2008 in LA stumbleupon:Meet and greet at PDC 2008 in LA windowslive:Meet and greet at PDC 2008 in LA

Threading has emerged as a red hot topic in our roadmap as increasing numbers of developers seek to build applications with multiple threads of execution.

What exactly are threads you ask? Wikipedia defines threads as “a way for a program to split itself into two or more simultaneously (or pseudo-simultaneously) running tasks.” I’m not sure what “pseudo-simultaneous” really means, but I do know that threading is one of the least understood aspects of programming today.

The latest news from our R&D team is that we’ve just released 6+ hours of self-paced developer learning that covers the following core aspects of threading:

Threading in the .NET Framework

You’ll learn how to use the .NET thread pool, the BackgroundWorker component, thread safe programming techniques, and asynchronous delegates. You’ll also learn how to perform thread synchronization with wait handles, as well as how to create and control threads manually.

Concurrency Patterns

You’ll learn about the Event-based Asynchronous Pattern, the Countdown Latch, and the Producer/Consumer relationship. You’ll also learn how to parallelize data by using Loop Tiling, avoid deadlocks with Lock Leveling, and work with immutable types.

I encourage you to check out both of these Drills on threading, which are available in C# immediately. They will soon be followed by their VB compatriots, so stay tuned for that release announcement shortly. Enjoy…

Add this post to: del.icio.us:Threading in the .NET Framework digg:Threading in the .NET Framework spurl:Threading in the .NET Framework simpy:Threading in the .NET Framework newsvine:Threading in the .NET Framework blinklist:Threading in the .NET Framework furl:Threading in the .NET Framework reddit:Threading in the .NET Framework Y!:Threading in the .NET Framework google:Threading in the .NET Framework technorati:Threading in the .NET Framework stumbleupon:Threading in the .NET Framework windowslive:Threading in the .NET Framework