Entries in Microsoft (2)

Monday
Feb022009

Work Life and "3 chords" -- They Tattoo You

We all work, but sometimes the collaboration of teamwork leads to something bigger, something life-changing for everyone involved in it.

When I was at Microsoft I was part of one such life event. Every year, Microsoft holds a big conference the attendees all call "Field Day" -- it is basically a get-together of all of Microsoft's field operations: Support, Education and Consulting. Anyway, Microsoft was about 50,000 people back in the day, and getting even just the field organizations together was enough to fill a stadium.

So, in 1997 or so the event was held in Charlotte, and a stadium we did fill -- the old Charlotte Civic Center. Steve Ballmer came in and fired up the troops, and following Ballmer's "Field! Field! Field!" presentation everything got quiet, as we waited for whatever was coming next.

What we got next was this:

Imagine just 3 chords, at modest volume - you could clearly hear them, but it wasn't loud enough to shake anybody up. All the same, the effect was electric -- but not because of the artist, or the volume.

The effect was electric because The Rolling Stones' "Start Me Up" was used by Microsoft with the launch of Windows 95 - and everybody in the crowd who'd been part of that launch had a frisson of recollection -- you could literally see the ripple of memory move through a crowd of maybe 5,000 people.

We were all part of it. It was part of all of their lives, and would never be forgotten.
And the best part of the launch was that it created a life experience and memories so vivid ... so vivid that you could see it.

The presentation that followed "Start Me Up" was pretty cool too, but the moment was already made....

Wednesday
Jan072009

Breathless Predictions for 2009

Since a new year beckons, and this is a blog, it follows that predictions for the new year must follow. Hey, rules are rules. And so, with no further adieu, here are my predictions for 2009:

1. Browser time of transition Part 1 - IE6 finally heads to the boneyard

A whole - cottage - industry has arisen to beat up on Internet Explorer 6, and IE6 support for standards is questionable (see Google Browser Security Handbook for all the brutal facts), but with a 10-year history behind it IE6 is one of the most successful software rollouts of all time.

Still, there comes a time when enough is enough. The tipping point isn't reached when whiny sites like 37Signals take their ball and go home, nor even when real competitors like Apple Computer cry "havoc", but it might be reached when a mellow giant like Google does.

The real deal here is that IE has had a majority of browser usage for the past 10 years, and it has come to define standard web behavior (iehacks and all). A clydesdale like that won't be replaced by some better kind of horse -- for any kind of transition you need a motorcar. "Web 1.0" and "Web 2.0" didn't require a motorcar, but "Web 3.0" will. Read on for a bit or what "Web 3.0" motorcar-ness looks like...

2. Browser time of transition Part 2 - Firefox++ invents a new web experience for the masses

Firefox has always been a nice browser, awesome for development and great for home use, but not much doing on the PC at work. The world hasn't needed another browser, or even a better browser. To get the world's attention you need nothing less than a whole different kind of application.

ForecastFox was a nice start -- a cool weather app add-in that made FFox a weather machine. Firebug was even better -- turns your FFox into a developers' console. Flock goes all the way -- "A one-stop app for staying connected with your online world." All good, but still only the stuff a 15% share is made of.

Enter Ubiquity -- the software that should bring mashups to the masses. With Ubiquity you can say: Hey Firefox -- Select this page, translate it to Spanish, encrypt it with my mom’s public key, email it to her, and save this chain of commands as a new command so I can use it later. Let’s call the new command garblify.

Plug-in functionality has long been one of Firefox's most compelling features. In 2009, this capability starts turning Firefox into a whole new application.

3. Browser time of transition Part 3 - Google Chrome heralds a new web experience for the enterprise

Google made some noise in 2008 with the release of a new browser, Coogle Chrome. The most remarkable thing about Chrome isn't that it was released with a comic book for documentation (though that was cool -- very graphic novel) -- what's remarkable about Chrome is that it solves the fundmental have-enough-tabs-and-you're-begging-for-a-crash problem.

With Chrome, each tab is a separate process, so that if (when) any tab process crashes, it only brings down that tab -- not the whole browser. This is a big deal as browser use becomes more mission-critical, and more tabbed. Think of the old '80s movie War Games, but with WWIII launch sequences simulated on a buggy browser and you'll understand why I'm grateful and why I expect big things from Chrome-like advances in 2009.

"Shall We Play A Game?"

4. Increasing Cloudiness

Much has been written about the rise of cloud computing, including here: The Economist, here: Cloud Computing: The Rise of Cloud Platforms and Why the OS Doesn’t Matter, here: SMBs Will Rise To Cloud Computing and my favorite here: Cloud Time, but the real breakthrough in hosted "cloud" computing (Amazon AWS, Google AppEngine and others) doesn't really come from running virtual servers in virtual data centers.

The real, 2009-immediate value of cloud computing is that it provides the first good estimates for the cost of running real computers in real data centers. Hosting costs have long been the "great unknown" in SMB-enterprise computing budgeting, and the cloud providers give the first decent formulas for guesstimating what "starting the next eBay" will cost.

What should your next "petstore.com" cost per year? We'll start with one wild swag -- a small site takes 3 servers to run reliably, a medium site takes 6, and a large site 12 servers. Typical cloud costs (Amazon, in this case) run $0.10/hour for a small server, $0.40/hour for a medium server, and $0.80/hour for a large one.

Swagging again and adding some bandwidth, a small site then costs about $240/month to run, a medium site is about $500/month, and even a large site only looks like about $2000/month to run -- hosted. Keep in mind that these are only hardware costs, and software must (or mustn't, in the case of an open-source stack) be applied.

Anyway, the cloud vendors are doing a great service by setting a "standard price" for computing, and this will really help planning in 2009.

5. Web 1.0 revisited - the rise of JavaScript and HTML5

I can remember, back in days of old, competing in (and winning :-) better living through technology...) an Advertising contest at Stanford by writing and filming a commercial, and showing it on a pre-release version of Quicktime, courtesy of relationships at Apple.

Those were the days, but the problem (then as now) is that my video really didn't live anywhere -- you could show it on a screen, but it really didn't integrate with any applications very well. And so it has been in all the time since, and neat graphic technologies like Flash, Silverlight and embedded video are resident in web pages, but don't really LIVE in them.

YouTube gets part of their $1.65 billion acquisition fee for driving an integration technology (embedding) at just the time network video reached its tipping point, but the picture is still grim. Finally, all that is changing, from the coincidence of three remarkable technical evolutions:

1. Cheap, ubiquitous graphic hardware. My MacBook Pro has 2 cores of Pentium, and 16 cores of NVIDIA on the backup CPU. New next generation of the Mac OS will be able to work with all those cores. Om nom nom.

2. Wicked fast JavaScript engines emerging.

"We just did some benchmark runs today," Bak says a couple of weeks before the launch. Indeed, V8 processes JavaScript 10 times faster than Firefox or Safari. And how does it compare in those same benchmarks to the market-share leader, Microsoft's IE 7? Fifty-six times faster. "

3. The rise of HTML 5. Sure it's been coming in pieces, but adding bot-transparent video and audio presentation in HTML has to put a cold chill into Adobe(Flash), Microsoft(Silverlight), and Apple(Quicktime).

Google keeps smiling all the way to the bank.

6. REST - Godzilla of APIs

Prediction: APIs rule, and REST will increasingly rule APIs in 2009.

Back in 2005, Google Maps ignited the mash-up concept in Web 1.0, and changed the face of web apps we see today.

Google is wise and omnipresent, but they aren't omniscient. Back in 2002, when the current round of API design decisions were made, Google had the choice of creating an API in well-known media-darling SOAP, or the little known academic paper-protocol REST. They chose SOAP.

SOAP (originally Simple Object Access Protocol(protocol) was a neat idea—to replace the bulk and complexity of integration schemes such as CORBA with a simple combination of XML and HTTP. Great idea, but to provide fully-functional enterprise integration SOAP had to expand, eventually absorbing much of the complexity of the protocols it meant to replace.

Enter REST. Representational State Transfer is the brainchild and 2000 PhD dissertation of Roy Fielding. Fielding observed that one of the great advantages of the HTTP specification (of which he was also a contributor) was that the client-server, stateless, cacheable, and layered design made access and architecture for the specification straightforward. REST extends these concepts to application-application communication. Very broadly, REST maps the basic CRUD operations (create, retrieve, update and delete) to familiar HTTP operations (POST, GET, PUT, and DELETE). As an additional conceptual benefit, these operations also map analogously to the database operations INSERT, SELECT, UPDATE, and DELETE.

Boiled down, the idea is to have applications interact through conceptually simple HTTP calls for exchange of resources—remote resources, as opposed to remote procedure calls. API creation is then a breeze, because the access methods are already broadly familiar, and the receiving applications need only be ready to respond to requests based on the request information in the HTTP header - say for HTML (web pages), JavaScript (Ajax requests) or XML (application requests).

Basically then you collect up all the publishable "nouns" that you have, and most development platforms (.Net, Ruby, Django) can "RESTIFY" the collection and do all the rest -- provide authentication, standard URLs to access the collection, and XML and JSON support to respond to http requests made by a machine rather than a (html-loving) person. BINGO! All the access you could ask for!

For more on REST, see RESTful Web Services (the classic), and for a Microsoft implementation of REST see
RESTful .Net.

Conclusions

It's hard to ever conclude much with technologies, but some trends do seem to be shaping up:

  1. Google is goosing the browser development efforts of (Firefox, Safair, Opera) to keep web-platform-development rolling.
  2. The "open" (Google) vs. "closed" (Facebook, Microsoft) battles will be with us for some time to come
  3. Little browser apps that live in a tab and are fed by the cloud emerge - giving Google Docs (which will never be MS Office) a whole new meaning
  4. "Desktop" applications take on a whole new meaning, with whole new 'verbs'
  5. The "operating system" keeps moving to the web, and the desktop continues its transition to a large, relatively immobile handset
  6. General-purpose computing moves to the cloud - Start a doc of any kind on any device, save to the cloud, access later from any other device attached to the cloud
  7. JavaScript becomes fast enough to power virtual machines - now powerful enough for both client- and server-side programming
  8. Looks like multicore and more must lie ahead (combination of 50% avg broadband cost drop/year + Moore's Law)

Happy New Year!