Saturday, March 31, 2012

Mind Cloud: This Changes Everything

Emerging Tech News The mobility revolution was just the beginning--now we can really take the web with us everywhere. If you haven't heard the news about direct mental connection to the web, read this illuminating article from Emerging Technology News Magazine. This changes everything!

Scientists Unveil First Human Mind Connection to the Internet

“Mind Cloud” Predicted to Replace World Wide Web by 2015
Web Jack Threatens Mobility Market

HELSINKI, FINLAND—Researchers announced today the first successful human mind connections to the Internet, ushering in what they called the successor to the web as we know it today: a “Mind Cloud” where humans interact with clouds and each other through direct thought.

According to Dr. Horst Jurgens, the breakthrough is the result of seven years of cooperative research from a Finnish-Scandinavian medical-technology consortium that has been working in secret until now. “We were tasked with finding what might come next after smartphones, some form of implant-based approach that would not require people to carry around a device.”, Jurgens said.


Test Subject Demonstrates Original Mind-USB interface

Demonstration

Members of the press were invited to witness a demonstration of the breakthrough achievement. Several test subjects who had undergone procedures for a mind-web interface were connected to the World Wide Web and were able to interact with it convincingly. Reporters were encouraged to ask questions and confirm the answers with their own web searches. This reporter asked several questions that test subjects could not have known the answers to in advance but can be found through online searching. All were answered correctly in a matter of seconds.

In another part of the demonstration, several test subjects were connected to the same local network and were able to chat, share information, and sense each others’ presence all without utterlng a word.

Initial Success and Second Generation

The original implant (pictured above) provided a mind-USB interface capability only that would allow the subject to be connected to a local area network hub, and required an interface processing unit that had to be carried outside the body. “Due to limitations in our initial approach, we also had to locate the jack right in the middle of the forehead, an admittedly inconvenient location.” said Jurgens.


Test Subject Demonstrates Second-Generation “Web Jack”
that connects to World Wide Web

Once initial experiments showed subjects could successfully interact with computers and each other over the network, researchers quickly got to work on the next phase. The second generation uses an altered procedure that allows an Ethernet cable to be attached at the base of the neck, which is more convenient. It also has a smaller interface processing unit that fits within the braincase, removing the need to carry a unit outside the body. Most importantly, the second generation can connect to the World Wide Web.

“Our ultimate goal, of course, is to be wireless.” said Dr. Jurgens. “The third-generation device will likely resemble a Bluetooth earpiece.”

Procedure

Currently, the procedure to receive an implant is fairly radical and expensive brain surgery that involves inserting hardware into the brain and connecting it to a cable interface on the head or neck (researchers call this a “web jack”). Jurgens  said he is confident the procedure will become less intrusive and expensive over time.



Surgeons Perform Delicate Brain Surgery Required to Install Web Jack

The most visible result of the surgery, the web jack, is the smallest part of what is actually installed. The processing unit located within the braincase is the interface that mediates neural signals and network signals. Researchers said this was the trickiest puzzle to solve. Apparently one individual was permanently damaged in early experiments due to an overload of information the team has since learned to throttle. “The interface now acts as both mediator and protector.” said Jurgens, “It is a kind of firewall.”

Test subjects insisted there was nothing uncomfortable about the web jack. One subject said, [translated to English], “Not only is it not uncomfortable, the web jack is a vital part of me. I was not whole until it was put in.”

Remote Control Humans?

One area of related research the consortium mentioned is that of one person being able to influence or control another through the Mind Cloud. “We have already performed a successful experiment where one person can remotely control another, with their permission. The controller subject was able to perceive sensory input from the subservient subject as well as control their speech and movement.” said Jurgens. He added that while the initial results were crude he was confident they would become refined over time.
When asked about the obvious concern such a capability might generate, Jurgens said “Of course, we will need careful controls to be in place, but you’re missing the bigger picture.

The ability for one person to proxy through another is major. Generals could control front-line soldiers in
the field without risk to themselves. A parent could audit how things are going in their child’s school day.  An expert could help a novice learn by showing them what to do in a whole new way.“

Jurgens even foresees pets being outfitted with web jacks. “Imagine being able to command your dog to sit, even if you are halfway around the world.” he said (several human and animal rights groups have since complained heatedly about these statements).
Another form of remote control that is possible is affecting the emotions of a person outfitted with the web jack. In one of the researchers’ demonstrations, test subjects were able to foster positive or negative emotions by directing Facebook “likes” and posts at one individual. “Think of the implications on voting, public opinion, and feedback to organizations” said Jurgens.

Ethical Concerns

Despite the consortium’s rosy predictions, there has been plenty of negative reaction to the announcement ranging from mild concerns to outrage.
U. S. Congressman Tim Downey said his constituents and colleagues were concerned about abuse by governments, major technology providers, and terrorists. “People are already up in arms about Echelon monitoring of their phone calls and email. What will happen when our thoughts can be tapped as well? Do you really want Google or the government knowing what we think?”
Several technology firms announced immediate plans to develop or adapt malware suites for the Mind Cloud, and at least two have already asserted the web jack infringes on existing patents.

Impact and Predictions

The consortium, which includes commercial development organizations, expects general availability of mind-web interfaces to the public by mid-to-late 2013 and is predicting a mammoth revolution that will turn the World Wide Web into a “Mind Cloud”.
If this prediction is correct, the current mobility phenomenon may be over as suddenly as it came upon us. Stocks fell across the board for mobile device manufacturers within hours of the announcement. “Mobile devices gained popularity because people could take the web with them.”, said a consortium spokesman. “Now they can do that without having to carry around anything.”

When asked what this might mean for the mobile industry, Jurgens was quick to point out the consortium has already filed patents on its work. He also said, “We have already heard concerns expressed by mobile manufacturers in response to our announcement, but we actually see them as our most important partners going forward. We are simply taking the mobile revolution to its logical conclusion.”


Artist’s Conception of Mind Cloud

In addition to convenience, another benefit of the Mind Cloud is speed. “At the speed of thought”, said Jurgens, “the web is amazing. To think is to act.”

One test subject said he regularly tweets with his mind, and said he looks forward to the day when social interaction worldwide is near-instantaneous.

“We already have interesting group problem-solving going on today through social network approaches.” said Jurgens. “Imagine what it will be like when we can harness the combined power of our thoughts to solve any problem  we choose to through the Mind Cloud."

Aprille Foowell and Gully Bell contributed to this article.

Thursday, March 29, 2012

Blob Drop: Sync Local Files to Windows Azure Blob Storage

I'm pleased to announce a new community donation, Blob Drop. Blob Drop is a Windows Service that monitors a file folder and pushes file changes up to a blob container in Windows Azure Storage. Currently, this sync is only in one direction, up to the cloud.

Here's how Blob Drop works:

• Configuration: the folder to watch, blob storage account to use, and blob container are specified in the config file for the service.
• Initial Sync: upon initializing, blob drop will scan the folder it is configured to watch and see if any files in it are missing in the blob container - if there are, it queues upload tasks for itself.
• Ongoing Sync: Blob Drop watches for file events on the drop folder (file creates, updates, renames, deletes) and queues corresponding upload or delete tasks for itself.
• A pool of background worker threads handle queued tasks, such as uploading a file or deleting a blob.


Blob Drop Service

To install the service, run installutil BlobDropService.exe from a command window. After installation the service will be visible in the Services control panel. By default, the user is LocalSystem and start-up is Manual. To uninstall, run installutil -u BlobDropService.exe from a command window.



Blob Drop Command

There is also a console command edition of Blob Drop. It can do what the service does, with the added benefit that you can see activity on the console (see below). You can also run the console command with an option to just do an initial sync and exit. With the command line edition, you can use config-based parameters or specify them on the command line.

BlobDrop -r
BlobDrop -r <folder> <storageAccountName> <storageAccountKey>

BlobDrop -r runs the service as a console app, with visible display of activity. If parameters are specified on the command line, they are used in place of configuration settings.


As files are added, changed, or deleted from the drop folder, file events are detected and blob actions are triggered.


If BlobDrop encounters file system errors, blob storage errors, or file-in-use errors, it will dutifully retry the operation a number of times before giving up.



BlobDrop -s
BlobDrop -s  <folder> <storageAccountName>  <storageAccountKey>

BlobDrop -s runs an initial sync and then exits.


BlobDrop -h

BlobDrop -h or -? displays help.


You can verify your files have made it into blob storage using an explorer tool such as Cloud Storage Studio or Azure Storage Explorer.



This is the initial drop of Blob Drop. As Blob Drop is new and has not yet been heavily tested, please treat this as prototype code and protect your data.

Blob Drop is another community donation from Neudesic. For support or inquiries, contact me through this blog.

Monday, March 26, 2012

Outside-the-Box Pizza, Part 1: A Social, Mobile, and Cloudy Modern Web Application

In this series we’ll be showing how we developed Outside-the-Box Pizza, a modern web application that combines HTML5, mobility, social networking, and cloud computing—by combining open standards on the front end with the Microsoft web and cloud platforms on the back end. This is a public online demo developed by Neudesic.
Here in Part 1 we’ll provide an overview of the application, and in subsequent parts we’ll delve into the individual technologies individually.


Scenario: A National Pizza Chain
The scenario for Outside-the-Box Pizza is a [fictional] national pizza chain with 1,000 stores across the US. All IT is in the cloud: the web presence is integral not only to customers placing orders but also to store operation, deliveries, and enterprise management.

Outside-the-Box Pizza’s name is a reference to the company’s strategy of stressing individuality and pursuing the younger mobile-social crowd. In addition to “normal” pizza, they offer unusual shapes (such as heart-shaped) and toppings (such as elk and mashed potato). The web site works on tablets and phones as well as desktop browsers. The site integrates with Twitter, and encourages customers to share their unusual pizzas over the social network. The most unusual pizzas are given special recognition.


Technologies Used
Outside-the-Box Pizza uses the following technologies and techniques:

• Web Client: HTML5, CSS, JavaScript, jQuery, Modernizr
• Mobility: Responsive Web Design, CSS Media Queries
• Web Server: MVC4, ASP.NET, IIS, Windows Server
• Cloud: Windows Azure Compute, Storage, SQL Azure DB, CDN, Service Bus
• Social: Twitter

Again, we’ll go into detail about these technologies in subsequent posts.


Home Page
On the home page, customers can view suggested special offers as well as videos showing how Outside-the-Box Pizza prepares its pizzas. The first video shows fresh ingredients, and the second video shows artisan pizza chefs practicing their craft.


The web site adapts layout for mobile devices, using the techniques of responsive web design. Here’s how it appears on an iPad:


And here’s how it appears on a smartphone:

Ordering

On the Order page, customers can design their masterpiece. Pizzas come in round, square, heart, and triangle shapes. Sauce choices are tomato, alfredo, bbq, and chocolate. Toppings are many and varied, a mix of traditional and non-traditional. Customers click or touch the options they want, enter their address, and click Order to place their order.



Order Fulfillment
Once an order has been placed, customers see a simulation of order fulfillment on the screen. Since this is a demo and we don’t actually have stores out there making pizzas, the ordering process is simulated. It’s also speeded up to take about a minute so we don’t have to wait 30-45 minutes as we would in real life.

The order is first transmitted to the web site back end in the cloud and placed in a queue for the target store.

As the order is received by the store, the pizza dough is made and sauce and toppings are added. After that, the pizza goes into the oven for baking.


After baking, the pizza is sent out for delivery. Once delivered to your door, order fulfillment is complete.


Social Media
On the Tweetza Pizza page, customers can view the Twitter feed for the #outsideboxpizza hashtag or post their own tweets.


To post a tweet, the user clicks the Connect with Twitter button and signs in to Twitter. They can then send tweets through the application.

The most impressive pizzas are promoted on the Cool Pizzas page.



The Store View
In the individual pizza stores, each store can view online orders. Orders are distributed to each store through cloud queues: each of the 1,000 stores has its own orders queue. The appropriate store is determined from the zip code of the order.


Once a pizza has been prepared, a delivery order is queued for the driver.

Driver View
Drivers get a view of delivery orders, integrated to Bing Maps so they can easily determine routes.


Enterprise Sales Activity View
Lastly, the enterprise can view the overall sales activity from the Sales page. Unit sales and revenue can be examined for day, month, or year; and grouped by national region, state, or store.


Summary

Outside-the-Box Pizza a modern web application: it's social, mobile, and cloud-based. Together the use of HTML5, adaptive layout for mobile devices, and cloud computing mean it can be run anywhere and everywhere: it has broad reach.
Outside-the-box-Pizza can be demoed online at http://outsidetheboxpizza.com. We aren’t quite ready to share the source code to Outside-the-Box Pizza yet—it’s still a work-in-progress, and we need to replace some licensed stock photos and a commercial chart package before we can do that. However, it is our eventual goal to make source available.

Next: Part 2: HTML5, CSS, and Browser Compatibility

Thursday, March 22, 2012

Presentation: The Modern Web, Part 2: HTML5

Today I gave Part 2 in our Neudesic webcast series on The Modern Web (you can get webcast details and after-the-fact recordings at Neudesic.com). In each part I talk about one of the four pillars (Mobility, HTML5, Social Networking, and Cloud Computing). Here is the presentation for Part 2: HTML5 that was given today.
The Modern Web, Part 2: HTML5
View more presentations from David Pallmann.

Friday, March 16, 2012

A Tale of 2 iPads: First Impressions Review of iPad3 & Comparison to iPad2

My iPad3 arrived today, and here’s what I think of it after 4 hours of use. I’ve been an iPad2 user since 2011, so my review will focus on comparing the previous generation with the new iPad. (If you’re wondering why I need more than one iPad, it’s part of my job to ensure our web/mobile development approach and the tools we select are doing the right things across different devices).

My iPad2 is a 16GB WiFi model and the iPad3 is a 16GB WiFi+4G model.

Looks Like a Duck, Swims Like a Duck, Quacks Like a Duck
The first thing that hits you about the new iPad is it reminds you strongly of the iPad2. Nothing really strikes you as different about it as you open it, set it up, start using it. It feels extremely familiar. More than once I kept checking to see that it was in fact the new iPad I was using. The box doesn’t even say iPad3, just “iPad”.

If I didn’t have two different color covers, it would be hard to identify the iPad3 over the iPad2. They look nearly identical. The iPad3 is slightly wider, taller, and thicker—but only by a hair. Weight-wise, the iPad3 is just a little bit heavier but I believe that’s partly due to my having the 4G option on the iPad3 whereas my iPad2 is WiFi only. By far the easiest way to tell an iPad3 apart from other iPads is to look at the back, where there is a black area at top.

iPad2 (left) alongside iPad3 (right)
The Display

The iPad3 features a “retina display” with a stellar resolution of 2048 x 1536 pixels (more than most desktop or laptop displays) whereas the iPad2 was 1024 x 768. This is its major feature. This should mean stunning images and video. But to be honest, absolutely nothing about the display jumped out at me when I first started using the device: sure, it looked great--but then again the iPad2 had always looked great too.

With some trepidation, I pulled up a variety of my web sites to see how they looked. We create adaptive web/mobile web sites using the principles of responsive web design, and I’d been worried about how things would render on the iPad3 with its greater resolution.  Would it be seen as a desktop display and cause non-touch-friendly UI decisions to be made? Well, the majority of the sites came up just fine and looked like they always did. This puzzled me, and when I visited a web site that shows detected resolution I was surprised to see 1024 x 768 and not 2058 x 1536 reported. After double-checking I had in fact been sent an iPad3 and not an iPad2, I found confirmation online that the iPad3 reports its resolution as 1024 x 768 even though its true resolution is higher. I haven’t had enough time to decide if I really like that or not, but I can’t deny it makes a lot of existing web sites for prior-generation iPads just work correctly and that’s something of a relief. We web developers are still going to have to contend with that larger resolution when it comes to images and being careful not to over-consume bandwidth serving them up.
I still hadn’t really seen the greater resolution in action, so I decided to pull up the same site on both the iPad2 and iPad3, capture screen shots, and compare them side-by-side. And this is where the difference becomes very clear. Below you see a portion of the screen captures side by side, slightly magnified. On the iPad2 (left) you clearly see pixels and on the iPad3 you don’t.


To give you an idea of the difference, a screen capture image on the iPad2 is 401KB and on the iPad3 it is 1.3MB. On the portion compared above, the iPad2 captured image is magnified to 400% and the iPad3 to 200%.

Speed
Is the iPad3 faster or more powerful than the iPad2? Maybe, I’m not really sure yet. The one area of performance testing I investigated was web browser speed. I visited http://www.speed-test.com on both iPads expecting faster results on the newer generation in areas such as JavaScript execution. To my surprise, they scored nearly identically and I ran the comparisons several times to be sure.

iPad2
Calculate 14.03
Store 30.57
Render 2.51
Overall score 47.11

iPad3
Calculate 14.03
Store 32
Render 2.61
Overall score 48.64

4G LTE
I have the 4G option on the iPad3, and was curious to see what that would be like. After turning off my WiFi and enabling the 4G, I tried surfing the web for awhile and was quite pleased (astonished, really) at how fast the response was. It felt just like my broadband DSL.

Dictation
The iPad3 has a nice dictation feature. When the keyboard is displayed, there’s a microphone butter for voice entry. It does a fairly good job of interpreting speech—it went from fair to excellent when I made a point of enunciating clearly.



However, the iPad3 performs its speech processing  by going over the Internet to Apple’s back end from what I understand, and that seemed to get very slow at times—perhaps because lots of people were trying out the feature today.
Conclusions

A first impression review is just that—a first impression. I’m sure I’ll notice lots of other things as I use the device more. If you haven’t had an iPad, or are using a first-generation iPad, you’ll be amazed and delighted with the iPad3. If you’re going from an iPad2 to an iPad3, you’ll find an awful lot of familiarity. You’ll certainly appreciate the display and (if you opt for it) 4G LTE—but it won’t feel like a major new generation to you. That’s not to say the iPad3 isn’t magical—it is—but much of the magic was also in the iPad2.

Wednesday, March 14, 2012

When Worlds Collide #4: HTML5 + Cloud = Personal Cloud

In Part 1 I wrote about the dual revolutions going on in web applications: HTML5 and Mobility on the front end, and Cloud Computing and Social Networking on the back end—how they influence each other and are together changing the design of modern web applications. In Part 2 we looked at the shared perspective of elasticity and in Part 3, location. In this fourth post we’ll discuss another aspect both worlds share, which is making the web personal.

The web has been about many things over its history, including publishing, search, applications, e-commerce, and media. Today, there are many things going on but I’m going to argue that they all revolve around people and enabling their digital lifestyles. The modern web is about people.
There are two areas in particular that are clearly making the web personal: mobility and social networking. It might seem less clear how HTML5 and cloud computing tie into making the web personal, but as we’ll see shortly they do in fact play critical roles, albeit less prominently.

There’s a new term out there, personal cloud (maybe so new we don’t have a good definition for it yet). I see this as a great term for the social / mobile / global phenomenon (and definitely easier to pronounce than SoMoGlo!). With the web’s focus shifting to people and their connections, thinking about the user and their “personal cloud” as a central design consideration makes a lot of sense.




Mobility Makes the Web Personal: It’s Always With Us
With mobile devices becoming so pervasive, we can bring the web and our favorite apps and services with uswherever we go. We’re no longer limited to using the web when we happen to be at home or at work. The web couldn’t really become an entrenched part of our lifestyles if we could only use it when we happened to be near a desktop computer: we want a 24 x 7 web we can use when we’re at restaurants, at concerts, at ballgames, when we’re taking a walk, when we’re traveling. Mobility makes that possible.

Mobility also lets us tie location into our apps, which is another dimension of making things more personal. We can use location to cue maps, find out what’s nearby, give area-specific advice, coordinate events, and many other useful things.

Social Networking Makes the Web Personal: We’re Connected
Social networking allows us to keep in touch with friends, family, organizations, and birds of a feather (people with similar interests)without regard to physical location. It has become the #1 activity on the web.

Social media is not only important to individuals, it’s also very important to businesses—especially for marketing, brand management, and client retention. In modern marketing, social media is the tool for customer retention (see Flip the Funnel by Joseph Jaffe). Getting a customer to the sale is not the end result of sales and marketing efforts, it’s the beginning of an ongoing relationship. We can learn a lot about customers from their social interactions; the older practice of using neighborhood data for demographics is primitive in comparison.

Word of mouth is nothing compared to word-of-social-network, which can lead to massive surges of interest very quickly. Of course, that cuts both ways: a social network can also destroy a business if it gets a bad reputation. This seems to be a self-governing system where social participation is a must for businesses today but customer service is a vital ingredient in achieving success.


HTML5 Makes the Web Personal: Web Apps that Work on Any Convenient Device
If making the web personal includes being able to use it anytime and anywhere, it follows that users won’t always be using a single device. A phone might be most appropriate when outdoors, a tablet when relaxing on the couch, and a desktop computer or laptop when in your home office or at work. This means it isn’t realistic to assume just one platform or browser for a user. The best bet is to support a wide variety of modern browsers and devices. But that can be expensive, unless you use HTML5.

With mobile applications you can choose to leverage native applications or you can write a single HTML5 web application that runs across modern browsers, tablets, and phones. Techniques like responsive web design and progressive enhancement allow you to provide a first-rate experience across the board with adaptive layout and equally strong support for mouse, keyboard, and touch. I’m not going to claim one approach or the other is right for everyone: there certainly are times when you need a native app for a certain level of experience, or to integrate with device hardware and the operating system, or to be in the app store. But make no mistake, HTML5 apps are giving native apps a run for their money. There’s an obvious economic advantage to writing something once that runs everywhere, as opposed to separate development projects in separate languages for each mobile platform. It is in fact possible to combine these two approaches, where you create native apps for your priority mobile platform(s) and use HTML5 to cover the rest of the world. Again, the important thing here is to make your apps available and acccessible to users as many ways as possible.


Cloud Computing Makes the Web Personal: The Dynamic Platform Social + Mobile Require
The nature of social and mobile use of the web is potential large scale, and sudden surges of activity without warning. This out-of-the-blue increase in load and equally sudden drops in load simply doesn’t fit the traditional way of doing IT. It no longer works to get out our crystal balls and forecast some steady level of load for the next few years, then hope to buy the right amount of hardware to cover it. Our modern constituencies ebb and flow like ocean waves. Clouds are absolutely essential for handling the scale changes, and doing it rapidly. Being social and mobile isn’t good enough: we must be social, mobile, and global (SoMoGlo).

Cloud computing is needed to power the social networks, but they’re also needed to power your sites and applications. If you’re going to leverage social networks, you’ll either be driving traffic to your sites or integrating with social networks directly in your web and mobile applications. Either way, that means software of your own that has to be able to match dynamically changing load and surges.




With the ability to elastically scale up or down, and to do so rapidly, the characteristics of cloud computing exactly matches the nature of social and mobile networks. Mobile, social, and cloud computing were made for each other.
Moreover, cloud computing allows us to have a global presence—even at small levels of scale. Since our modern web applications need to serve people wherever they go, and since social networks connect people even in different parts of the world, being able to provide global presence is very necessary today. Cloud computing helps with this through worldwide data centers and supporting services. On the Windows Azure platform, we have worldwide infrastructure: 6 Windows Azure data centers (two in the US, two in Europe, and two in Asia) and a 24-node edge cache distribution network. We have services that help with content delivery, traffic management and data synchronization. It’s now easy to be available worldwide, and it doesn’t have to be expensive.


Personal Cloud
Now let’s put it all together. Mobility and social networks, strongly supported by HTML5 and cloud computing, are bringing us toward a planet-wide nervous system—not just the web, but people out and about interacting with the web through their mobile devices and sharing collective thoughts over social networks. News, ideas, reputations, and trends ripple around the world in real-time, sometimes bursting to mammoth levels or ebbing as quickly. But this is not The Borg from Star Trek: We join the communities of our choosing and connect with the parties we wish to. The portion of this mobile, social, global phenomenon we carve out for ourselves is our personal cloud.

Your personal cloud, then, is your digital world--your apps, your data, your social networks, your memberships, your licensed content, and your published digital content--not bound to any one machine and available to you wherever you are on whatever device is convenient. For me, my personal cloud includes social memberships (Twitter, Facebook, LinkedIn), movie content I've licensed on vudu and Netflix, music content licensed on iTunes and Zune, my Kindle digital books, games I've bought on XBox Live, my blog, my public code contributions, my email, my documents, and my pictures and videos. Some of my personal cloud is public and can be viewed by anyone; and some it is accessible only to me or my family. My personal cloud is at its best when I can get at it from anywhere on any device. My iTunes, vudu, and Kindle memberships are like that: while they don't allow an unlimited number of machines, they let me enlist a reasonable number of personal devices so I can get at my content and apps in multiple ways.

"Personal cloud" isn't really any kind of new idea or technical breakthrough; rather, it's simply recognizing that people want their digital world to be extremely portable and constantly available. This is not exactly a new dream (recall the Network Computer?), but the combined effects of mobility, social networking, and cloud computing have finally put it in reach. We're used to having online content already, but we don't have a very good combined experience for the individual yet in managing their digital world. It will be interesting to see what develops on that front.

Personal cloud implies a style and vision that should inform how we design things. What does a ‘personal cloud’ view mean for the modern web applications we create? I can think of some very good consequences of making this a central design consideration:

• Design user experiences that reflect the modern digital lifestyle. Stay relevant to your users before someone else does.

• Use social/web identity, so users don’t have to create and remember yet another username and password. You can use the Windows Azure Access Control Service for this.

• Learn about users by inspecting their social activity. Use that data to serve the user in a better and more targeted way.

• Integrate with social content – search, view, post, aggregate, monitor, manage.

• Support a broad set of browsers and devices well. Do this with HTML5 and embrace techniques like responsive web design, mobile-first, and progressive enhancement.

• Ensure a user can easily move between different devices and maintain application and data continuity. Think through how you want state and data and caching to work, there are more choices than ever.

• Consider how you can keep your apps running even when disconnected and whether you need to provide synchronization.

• Take advantage of location. Use device location to personalize the services you deliver. Use location to route to the nearest cloud deployment.

• Track levels of activity on your applications and services and have a scaling process in place.

• Extend to regional or a worldwide presence to match where your users are.

• Proactively manage your brand and your relationship with your users through social media.
• Be able to react in near real-time. React to shifts in the market, ideas that are gaining ground, and changes in the level or nature of activity.
What are your thoughts on the concept of personal cloud? I’d love to hear from you.

Sunday, March 4, 2012

On the Recent Windows Azure Leap Day Outage

On February 29th Windows Azure suffered a widespread service disruption, which as per a Microsoft statement appears to have been caused by “a time calculation that was incorrect for the leap year”. By the time a fix was devised and rolled out and consequences of the original problem were dealt with, customers were back up and running as early as 3 am PT (most customers, as per the Microsoft statement) or as late as 5-6pm (which is what I and my customers experienced). From what I understand, there was an availability impact only and no data loss.

Now, armchair technologists everywhere are weighing in with their opinions, which range from “See, I told you so: the cloud is just hype. You’re a fool to use it for anything mission critical.” to “This isolated incident is not a big deal.” and even “It’s your fault for not knowing better and having a contingency plan.” Many rendering their opinion are exhibiting a bias, and while it may be human nature to color your opinion based on whether you are pro-Microsoft or not, I’m going to try to rise above that. While I am a Windows Azure MVP and a fan of the platform, and certainly wish this hadn’t happened, I’m going to offer my take with a sincere attempt to neither minimize the real problems this caused businesses nor overstate the implications.

Acknowledging the Impact

First, I want to openly recognize the impact of this outage. If you’re running your business on a cloud platform and it goes down for some or all of a business day, this is extremely devastating. The reimbursement a cloud provider will give you for downtime is nothing compared to the business revenue you may have lost and the damage to reputation you may have incurred. Moreover, if your business is down your customers are also impacted.

One aspect of this particular outage that may have been particularly upsetting to customers is that some services were out on a worldwide basis for a time, including service management and the management portal. That interfered with one of the recovery patterns in the cloud, which is to switch over to an alternative data center. It also made it impossible to make new emergency deployments. This appears to be due to the nature of the problem being a software bug that affected all data centers, rather than the “equipment failure in a single data center” scenario that often gets a lot of the attention in cloud reliability architecture.

How Reliable Should We Expect Cloud Platforms to Be?

Microsoft certainly isn’t the only cloud provider who has an occasional problem. Last April, Amazon had a significant multi-day outage due to a “remirroring storm”. The gallery of online providers with problems in recent years includes SalesForce.com, Google Gmail, Twitter, PayPal, and Rackspace. Think about your own data center or the company that you use for hosting, and they probably have had issues from time to time as well.

Yet, cloud providers make a big deal about their failure-resistant architectures, which feature high redundancy of servers and data, distribution of resources across fault zones, intelligent management, and first-rate data centers and  staff. Is it all hype, as some contend? Are cloud data centers no more reliable (or less reliable) than your own data center?

The truth is, cloud platforms are superbly engineered and do have amazing designs to uphold reliability—but, they have limits. Microsoft (or Amazon for that matter) can explain to you how their architecture and management safeguards your cloud assets so that even a significant equipment failure in a data center (such as a switch failure) doesn’t take out your application and data. This is not hype, it is true. But what about the statistical unlikelihood of multiple simultaneous failures? Or a software bug that affects all data centers? Cloud computing can't protect against every possibility. This does not mean the cloud should not be used; it does mean its reliability needs to be understood for what it is. Cloud data centers are extremely reliable, but they aren’t infallible. Just as it is statistically safer to fly than drive, we still have air disasters from time to time.

This recent outage illustrates the human factor in IT: people can and do make mistakes. While much of the magic in cloud data centers has come from automation and taking people out of the loop, people (and software written by people) will always be part of the mix. Since we won’t be minting perfect people anytime soon, the potential for human error remains. Of course, this is true of all data centers.

What Can Customers Do?

Having acknowledged the impact, let’s also point out that cloud providers do not promise 100% availability in the first place: typically, cloud platforms promise 3 to 3 ½ 9s for their services. That means you might be without a cloud service 6-8 hours a year even under the best of conditions—and need to plan for the possibility of being down for a business day, not knowing when that might be. While this recent outage was a bit longer than 8 hours for some customers, it was essentially being down for a day. Customers who took the SLA seriously and had made emergency provisions should have been able to switch to a contingency arrangement; those who never made those plans were stuck and felt helpless.

What should a contingency plan provide? It depends on how mission critical your cloud applications are and what you’re willing to pay for the insurance of extra availability. You can choose to wait out an outage; guard against single data center outages using alternative data centers; or have an alternative place to run altogether. Let this outage be the wake-up call to have an appropriate contingency plan in place.