Contracts, Where Windows 8 Gets It Right

I've mentioned before that Windows 8 Metro is going to be a very disruptive UI switch for most Windows users to make and is likely going to cause some headaches for Microsoft due to customer backlash. The timing is off, though Microsoft is making an effort to get the word out early and work to make the interface as knowable as possible well in advance. Only time will tell if they succeed well enough to avoid the complaints. That said, I should make something clear... I don't oppose or even really dislike the Metro concept. The most visible change in Metro, and the one that I think is most likely to draw the ire of those who complain, is that of essentially devoting the entire screen to a single application at a time, a concept most mobile device users are already very familiar with. It's only on the desktop where this paradigm becomes less common. In any event, one interesting concept in Windows 8 that I like in particular is the concept of "contracts".

In Windows 8, an application can expose features through a contract. The contract details what the offered feature needs to work and what it will produce. Think of it like the input/output paradigm in Apple's Automator but able to be tapped into by any application on the system, not just through a single central authority like Automator. More importantly, these features can be tapped into seamlessly, the user never having to leave the current application but still being able to tap into the full functionality present on their device. In the Metro interface, where only one application has the screen at a time, this will be a boon to developers and users alike, working to increase the usefulness in situations where one app owning the screen at a time is necessary.

Move Over Bacon, There's Something Better ( in Windows 8 )

Sharing features between apps is of course something that's been around for awhile. Even the earliest operating systems allowed applications to talk to one another by opening connections between apps and sending data cross. Over time, protocols were established to be able to send higher level data across instead of having to reconstruct data manually on the receiving end. By the early 90's, Microsoft released their OLE (Object Linking and Embedding) technology, allowing the sharing of complex features between various applications. This required considerable effort to do well, though. OLE is not the only such technology though. There are many to choose from. But it seems as though the focus here is more on how it will affect the end user and less on how to integrate apps. It may seem like one and the same, but the focus drives the implementation. Here, Microsoft got the focus right.

Absent on the list of IPC protocols is OpenDoc. OpenDoc was a consortium created in the 90's after OLE became popular and gave Microsoft a big advantage with Office. It tried to unite a number of vendors to create a standard that would rival OLE's capabilities and allow them to offer a comparable feature set without having to bend to Microsoft's will. Microsoft began using their OS dominance to full advantage by requiring certain compliance criteria for OS verification of an app that resulted in practically requiring use of OLE as opposed to OpenDoc. After awhile, OpenDoc went away. Why mention a dead protocol? Because Apple was a major driver behind OpenDoc and didn't seem to learn much from it.

We see some of what Apple came away with in Services on OS X, Apple events, and a few other supported features. Automator touches on this concept of feature sharing though it's really just a workflow tool. We don't see any sort of attempt by Apple to nail down a standard method of allowing one app to provide full featured functionality to another app to be called out at will. As I said, Services touch on this concept, but not to the extent that OLE or Windows 8 Contracts provides. And that's the shocker. Heck, iOS lacks even these more basic elements, allowing only the registration of a URL type and the ability to send a simple string to that URL as the only means of sending a message to another app. And that ends up causing a full context switch, pushing the user out of whatever app they were in, and doesn't provide any means of dynamically finding feature availability. Apple should have learned more here. I imagine they're listening though.

On the desktop, I don't see this as as huge a deal as it will be in mobile. As far as I know, no mobile devices currently have this level of integration between apps and if it ends up working nearly as well as the hands on demos indicate, it's going to be a nice feather in Microsoft's cap.


Android Malware, Life Outside the Walled Garden


Android figure with malware critter embedded

Android malware is on the rise

There's a new instance of Android malware on the loose, targeting your SMS messages, intercepting them and attempting to use them for profit. It isn't the first instance of malware on the Android platform; there have been a number of apps posing as other innocuous, even useful, tools that harvested your data for less than honorable purposes. In fact, this latest incarnation of Android malware, named SpyEye, follows on the footsteps of Zeus, an Android version of desktop malware. TheRegister reports that Android malware exploits are set to rise precipitously over the next six months. In that same article, it is surmised that Google dare not "lock down" its applications for fear of developer reprisal, intimating that the problem won't be rectified with a "walled garden".

One Android Malware To Go Please

In contrast with Apple's "walled garden", Google has adopted what could be termed an "untamed jungle" approach. While there are multiple app stores with varying levels of vetting by the operator, there are ample methods for Android owners to download apps from any location fully on their own recognizance to determine the genuineness and safety of the app in question. This has several positive effects. First, the barrier to entry for developers is lowered as they can offer applications directly from their website without having to register and receive approval from a third party operator. Second, the user has a potentially larger pool of applications to draw from since apps that otherwise might have been rejected are now available (I'm looking at you PhoneStory).

There are downsides, too, though, as Android owners are finding out. When an app store operator vets an app, there is a much lower chance that it will be approved if it will adversely affect a user's device. There are quality checks made which wouldn't be outside of an app store environment. Of course, it helps if the app store operator has reasonable standards and a habit of enforcing them but any app store operator worth their salt is going to make the effort in order to preserve their reputation, else customers will bring their money to another app store that serves them better. Outside of these app stores though, anything goes. Without a formal vetting process in place, the bar is lowered for malware authors to infect users' devices.

Of course, not even Apple requires you to enter through their gates for all of their devices. End users can just as easily install apps from a developer's website on their iMac as any Windows user could on their PC. There is an App Store for OS X users, but it isn't required. It offers a degree of comfort, of safety, but isn't the only way. Users are left to fend for themselves. But the argument that Google would necessarily lose developers if they chose to lock down Android is without merit. Apple took some heat for what was perceived to be a strong handed approach in terms of what apps were allowed to do but seems to be doing quite well in spite of this. Even when Android first arrived and all of the comparisons of openness vs not-so-openness were cropping up, Apple has still done very well. Developers did not leave the platform in droves. Apple's world did not end. So it's not the openness, per se, that Google fears. Rather it's that they have hyped it so much they can't back down now. They've worked to convince everyone that they champion openness, and the free distribution of Android apps outside of an app store is a major part of that campaign, that any backing down now would seem like a retreat of sorts. And that, Google can't have.


Google Dart Misses the Mark

Google has revealed they are working on a new programming language, Google Dart, which one can surmise will be targeted at web development, likely on both the back end and front end. The first indication was the release of the speaking schedule for the Goto Conference in October, where two speakers will be presenting the keynote concerning this new language. If it turns out that Dart is in fact targeted at replacing Javascript on the front end, regardless of any other platform targets it might have, it is not going to transform the client side development experience without more support than just Google's Chrome.

What is Google Dart Targeting, Really?

Based on an alleged leaked memo discussing a project codenamed "Dash", it seems that Google is trying to supplant Javascript in the browser in order to fight the "encroachment of other, less open platforms". This appears to be referring to native apps and in the case of mobile, iOS apps in particular. According to the "Dash memo", the plan will be to have Dash cross compile to Javascript in order to continue to support Javascript centric browsers until such clients are capable of natively running Dash. The intent, then, is to create a new environment, entice developers to jump in and use it, and use that momentum to move vendors like Apple, Microsoft, Mozilla and Opera to incorporate Dart VMs in their browsers. There are some problems with this approach though.

A Twenty Mule Team

Google is going to be pulling against several different, very powerful forces if they make an attempt such as they seem to be undergoing. To begin with one of the problems they cite as a reason to consider Dart, a multitude of frameworks and libraries to perform various functions, is also one of the reasons many developers will want to stick with the language as they have already invested time and effort in learning and deploying these frameworks. Moreover, Google points to the use of myriad incompatible design patterns. Based on this statement, it suggests they want to perform some sort of enforcement over which patterns might be used or perhaps create alternative frameworks which use a common pattern and provide them as a means to allow developers to use a consistent set of frameworks. This suggests Google is looking to create "the One True Way" for web development by fiat rather than by allowing for the development of a standard which other entities might have a say in. If they were truly concerned about asserting the homogeneity of the Javascript ecosystem they would proffer their own such frameworks using compatible design patterns.

Then there are the other browsers. If you take a look at the speakers list as well as the list of sponsors, you will notice some absences. Namely any other browser vendor. Barring a last minute surprise, it doesn't seem as though Dart has the backing of anyone but Google which means that the best we could hope for would be for Chrome to have Google Dart support out of the gate. Chrome is doing well, but Chrome alone will not be sufficient to convince the majority of developers to switch to its environment. What about the other vendors?

Microsoft has continued to release additional details about development on their upcoming platforms and it seems that it is going to focus on .NET and WinRS on the backend and for native code and use of HTML5/CSS/JS for UI development. It seems unlikely that Microsoft would have a great deal of concern for moving toward adoption of yet another VM for their front end functionality. Not to mention Microsoft has their own development toolchain which they want to see in use as opposed to a Google Dart based toolchain which would allow for more cross platform oriented development.

Apple, too, is focusing on HTML5/CSS/JS for support in their browsers and given the competition between iOS and Android, I wouldn't imagine they would want to provide a leg up for developers to create apps using Google Dart that would function equally well on either platform. On top of that, Apple has already dealt with another company who owned a toolchain which focused on cross platform development. Adobe still has yet to compel Apple to release a Flash compatible update on iOS and in fact has started making overtures to the HTML5/CS/JS crowd through their announcement of Edge as well as the recent changes to their Flash Media Server to deliver alternative content to iOS devices on the fly. Apple isn't going to let their major mobile competitor install a competing VM platform on iOS devices when that means that competitor will have a distinct edge in keeping support for it more featureful and up to date on Android.

Mozilla could possibly accept Google Dart as a native VM in their browsers, simply because they have the least to lose in such an arrangement. Unlike Microsoft and Apple, Mozilla as an organization is not pushing a competing development environment or toolchain, isn't competing in the mobile space and in fact is really only going head to head with Google with regard to browser market share. Still, that may yet be reason enough not to jump in bed with Google. Plus unless Google Dart is made part of a standard of some kind, it's possible that there will be even less traction in this space.

The same argument goes for Opera, perhaps even more so. Opera has a reputation for being one of the most standards compliant browsers available and again, unless Google Dart is made a standard, Opera may not wish to incorporate this VM into their product.

What's the End Game?

Google isn't stupid, so if it seems so obvious that uptake of Google Dart is going to be difficult to achieve, why bother? As the "Dash memo" points out, this is a high risk/high reward option. Given how many different projects Google has going at one time, creating a new VM to include in their browser and to make available for back end development isn't asking much in terms of time and money. The risk is in the reputation. Google is going to put their name behind this and try to get developer muscle to push it into other browsers. In essence it is going to test how much weight they actually have to throw around. If it succeeds, they will have grabbed a commanding position, providing a toolchain which can target apps on their platforms to their liking and which other vendors would need to tailor their systems around. If it fails, it will be a sign that while they are big, they can't yet force the other big players to play their game. High risk, high reward. I don't see a bullseye in the making.

Image by renjith krishnan

Windows 8 Metro Interface, The Wrong New Thing

Microsoft has been revealing more and more features about Windows 8, including the new Metro interface shown above. That is what the standard desktop interface is going to look like in Windows 8. You'll be able to click a 'Desktop' link to interact with older legacy applications (i.e. anything developed for Windows 7 or earlier) but clicking on the 'Start' menu is going to land you back in this tiled world. Microsoft is trying to add a breath of fresh air to their interface but I think they've simply introduced the wrong new thing.

Direction of Change

Introducing change to your UI is never a decision made lightly. Companies enter legal fights over 'look and feel' to make sure they have a unique design, something easily recognizable to anyone sitting down to use their product. Microsoft no doubt is hoping to make their UI memorable but I'm sure is nervous about how it will be received. In fact, they were so nervous about the upcoming changes to Windows Explorer in Windows 8 that they posted a blog entry about it. In it, they didn't just go into detail about the changes, they discussed the entire history of the interface, the commands most often used, and then ended with an attempt to convince us why we needed the new ribbon UI on a file and folder browser. Microsoft is anxiously trying to get the word out now before the product's release, likely to avoid any user backlash over getting used to the new way of doing things.

Part of their problem, though, is that they are introducing change in a way that most folks don't appreciate. Windows 8's Metro interface is essentially the Windows Phone 7 UI writ large. The problem is Windows Phone 7 hasn't been in use long enough nor by enough people for the interface to feel more at home to more people. In fact, Microsoft just recently announced plans to increase sales personnel to push additional sales. And now, before the public has really had a chance to become used to this new tiled way of doing things, they are attempting to push it into the new Windows 8 deployment.

At first blush, it would seem to be an attempt to steal a page from Apple's playbook. Recall Steve Jobs' "Back to the Mac" theme, where they discussed introducing iOS UI elements into OS X Lion? And in fact Launchpad is pretty much an iOS home screen with all of your apps and no groups. The difference is in the timing. Apple let the iOS experience percolate on iPhone, iPod Touch and then iPad before deciding to bring any elements back into the desktop. And even then, they didn't make a radical departure. Perhaps bigger changes are coming. In fact, I'm certain of it. But Apple made the right move by easing folks into the iOS way of doing things first before introducing similar changes to an interface OS X users are very familiar with. In any event, the Windows 8 Metro interface is going to receive some pretty critical pushback from their userbase.


AOL Yahoo Merger, Doing It Wrong Online

According to a Guardian post, an AOL Yahoo merger is being considered. Yahoo is worth $17 billion. AOL is valued at $1.68 billion. You can imagine, then, the chutzpah it takes to say they're doing it wrong online. But they are. I co-own a Houston based computer support company which you've probably never heard of. It isn't valued nearly as highly. So why call these two out? Simply, they deserve it.

Yahoo seems to be going through Kubler-Ross' stage 3, bargaining, staving off the end just a little bit longer. AOL has been in decline for what seems like forever. It's like an ant's view of watching a human tumble to the ground. It must seem like eternity. In any event, now the rumor mill has it that the two Internet giants are considering merging. It seems a feeble gesture somehow. The problem isn't that either of them needs what the other has. The problem is that neither is doing the right thing with what they've got.

Both companies provide a multitude of services to their viewers. Yahoo provides myriad social and information services including their mail service. AOL provides content from many sources which they have either developed or acquired over time, in addition to their mail service. In AOL's case, they don't need additional services to beckon readers into their content-laden maw. They need to improve their content by shooting for more quality and less quantity. I don't know that anyone drops by AOL because they have the hottest stories, best blogging or most ground breaking journalism. They go there because of inertia. And Yahoo doesn't need AOL either. Instead they need to take the multitude of services they provide now and streamline them, turning them into a single cohesive experience.

No, these two companies are strange bedfellows. They have overlap in areas where merging won't help and their differences aren't complementary areas. What we're seeing is one more stage of dying. Let's hope it's relatively painless.

Tagged as: , , No Comments

Google Docs Outage “Mea Culpa”

Google has made a blog post concerning the reasons for their Google Docs outage last week. In essence, a bug in their software was exposed when they added an enhancement, a bug that was only visible under heavier load than seen in the test environment. One of those "Wait, that didn't happen in the simulator" moments. I don't see this as an indictment against Google. Everyone makes mistakes and this is just that kind of ornery bug that is very hard to find without actually pushing your systems to max. But it still raises the question of how the cloud should be used.

Google's concept of cloud services, where not only is the data entirely stored remotely but the functionality is accessed there too, demands a full time connection to the remote server to work. While losing access to your stash of poetry or your grandmother's cache of recipes isn't likely to have caused you too much upset, being unable to grab the most recent copy of the contract on your way to the merger meeting might be a little more unsettling. Sure, you probably have a copy somewhere locally... right? The fact is, when you rely on this sort of arrangement, you are potentially putting some of your most critical digital possessions in the hands of another company. Even a company as well established as Google can fail. But surely it's more likely that your own machines would fail before Google's would. Okay, let's grant that. Google even outlined the steps they were taking to try to prevent this sort of problem (I hesitate to call it a disaster given what all is happening in the world these days, but some may feel the description fits) happening in the future. Are they going to also put into effect a plan that prevents a backhoe from severing my company's connection to the outside world and thus Google's servers? Will they also provide a plan that will prevent an accounting error from inadvertently shutting off my internet pipe? The fact is Google is not the only link in the chain between me and their servers and they're not even the weakest link. They are only one link and one part of the problem.

Apple's take, using the cloud as a form of automated storage, is a better bet. You get the convenience of local access plus the comforts of remote storage and availability. I won't care (as much) if my link to Apple gets cut because my Word document (or Pages for you purists) is resting peacefully in my Documents folder. Let the backhoes come and let destruction break forth upon my internet connection. I am prepared.

That's not to say that view isn't without its problems of course. It means my hardware purchases will still require more hard drive capacity which means greater expense. It means that I will be responsible for keeping my software up to date instead of simply hitting a website where the software is always up to date. But hard drives are getting cheaper for the most part. It's a downward trend for price, even for SSD devices. And the automatic update functionality for any major OS these days provides plenty of convenience for staying patched. For apps that I didn't get from an App Store, there are still options. Developers have been including update checks in their software for years. And of course, for those that don't, yes there will be a gap. The gap is shrinking over time.

The fact is that Google cannot guarantee that I will always be able to access my data and software anytime, from anywhere. They can hold up their end of things and frankly I trust them to do that. Not just because they have shown a penchant for being able to put together solid deployments but also because it's becoming their lifeblood. What they cannot do is ensure I will always be able to read my poetry at 3AM. And that's just unacceptable.


Flash on iOS, Adobe Throws in the Towel

Techcrunch reports that Adobe has changed their Flash Media Server to stream Flash based content to iOS devices by essentially removing the content from a Flash container and reformatting it on the fly to something palatable on iOS. Two quick comments.

First, the opening quote from Techcrunch:

Ardent iOS supporters have been clamoring for true Flash support for years

I would respectfully disagree with. Ardent iOS supporters probably haven't missed Flash support much, and even less so over time.

Second, this marks a potentially significant departure for Adobe from their stance of pushing their format across all platforms as the end-all be-all. This combined with their announcement of Adobe Edge, their tool to create content using HTML5, JavaScript and CSS instead of Flash, are indicators that Adobe seems to be pushing away from Flash and trying to stay on the lead of creating the tools developers will use going forward. I don't see this as a bad thing, frankly.


Mobile Ads, The Next Flash Killer

Recently, the Flurry Blog released a report indicating the sharp rise, both actual and anticipated, in spending on mobile ads. Of particular note, they pointed out, was the potential for mobile ad spending to dwarf other internet ad spending within the next year. As spending increases on mobile advertising we will see a concurrent increase in spending on the technologies needed to deliver that advertising in the mobile space. For any serious contender for mobile ad development, HTML5, not Flash, is the only reasonable path forward.

Flash is ubiquitous. It is used for a number of tasks on websites, from printer control, to copying text to the clipboard. It is also commonly used for the Flash based games you run across all over the net. And it is, of course, used for advertising. Flash provides a simple method of packaging animated multimedia content that can be seen by most viewers, and can be used to alter the viewer's experience enough to grab their attention and force them to view your ad, characteristics which advertisers naturally find desirable. While the Adobe Flash Player has been the source of many security holes and is reported by Apple to be a leading cause of crashes of their Safari browser, the experience has been "good enough" that most users end up installing it if it isn't already on their system. That's the desktop experience.

The mobile experience is quite different. First, iOS, one of the most popular mobile platforms today, does not currently support Flash and likely never will. There has been plenty of push and pull between Adobe CEO Shantanu Narayen and former Apple CEO Steve Jobs concerning Flash's performance on mobile and that may have had something to do with the decision not to include it on iOS. If it wasn't the only reason it was certainly sufficient given the performance of Flash on the only other mobile platform currently poised to compete significantly with iOS... Android. To date, the Flash experience on Android has been, by most accounts, tolerable at best. In most cases, playback puts a serious strain on any mobile hardware that has the software capable of playing Flash content, such that any such content is essentially unusable. That's not something likely to be a major selling point for advertisers looking to take advantage of the mobile space.

iOS has a significant enough amount of the mobile market that no advertiser would dare consider giving up advertising on the platform. Even if they were willing to give up such a huge market, using Flash on Android is hardly going to be a positive experience either. As a result, the push for advertisers is going to be toward HTML5, not toward Flash. And as developers are tapped for increasing numbers of advertising engagements, they are going to be required to perform at least some of that engaging without using Flash. Speaking from experience, programmers like consistency in their environment. Reuse is more easily achievable when you're sticking to one development platform. Since Flash is out of the picture for at least part of these campaigns, you can look forward to a subsequent decrease in Flash usage in the desktop space, something I imagine many of us will be happy with.


You Are Twitter’s Product

From Techcrunch:

When asked about how an advertiser should view Twitter’s liberal pseudonym policy versus that of Google+ and Facebook, both of which require users to sign up with their real names, Costolo said that the primary difference between how the companies make money is that is that brands like Virgin America pay Twitter when someone, whether it be @bozo123 (his example) or @johnsmith clicks on a link. “We’re not wedded to pseudonyms. Other services are declaring that you have to use your real name, because it will help them monetize. We want to serve our users first.”

Just remember, the advertisers are the users. You are the product.

Tagged as: No Comments

Android Cut By The Splinters

So it seems Eric Schmidt, chairman of Google, accidentally gave notice that Android 4.0, the next release of the search giant's mobile OS, will be released in the October/November timeframe. Of course, that may change but regardless it appears to be coming soon. Whether it comes soon or not, without major uptake by a lot of handset vendors and service providers, it's simply going to add to the growing pileup of currently deployed Android revisions, increasing the fragmentation even more.

Android 4.0, code named Ice Cream Sandwich, is intended to, among other things, refine the APIs with an effort to reduce fragmentation. Android 2.0 (Eclair) was released in October 2009, 2.2 (Froyo) was released in May 2010, while 2.3 (Gingerbread) came out in December 2010. 3.0, aka Honeycomb, was a tablet only version first released in February 2011. 2.2 (Froyo) is currently deployed on roughly 50% of Android devices with 2.3 (Gingerbread) installed on another 30% or so. Honeycomb, the tablet version, is only deployed to about 1.5% of Android devices, a fact which leads to its own conclusions, but that's for another time. The fact is, the APIs were originally supposed to be forward compatible. Something written to target an older revision of the OS should work on newer revisions, until a major release comes along which might break API compatibility. The API, therefore, is intended to provide shelter to developers hoping to deploy against the largest possible number of devices. The problem, though, isn't developer application support for various OS's. The problem is the hardware.

The handsets are targeted at a given revision of the OS and a lot of time and money is put into making sure the handset works as intended with that version of the OS. Even between minor releases, as evidenced by the already existing fragmentation, it has been difficult to get the various parties involved to consider revisiting existing handsets, some of which might not even be marketed any longer and therefore unlikely to provide further revenue through additional sales, in order to incorporate a new Android revision.

Android 4.0 is supposed to address this, allowing one OS to target both handsets as well as tablets. That's great, but realistically is not going to reduce fragmentation very quickly. To begin with, Android tablet sales have been something just shy of anemic but even then it is doubtful that without some potent new features unlocked with 4.0 any Android tablet manufacturer will want to revise the OS on tablets currently in the sales channel, much less those no longer being sold. As for handset developers, they're in a worse boat since many deployed devices are much older than any tablet currently out there. And it's not like current handsets will suddenly drop dead of electronic heart attacks now that 4.0 is available. They will continue to perform as they always have. So Android 4.0 is really only expected to solve fragmentation moving forward.

And yet, even with the release of 4.0 imminent, major manufacturers who must have had access to beta versions of Ice Cream Sandwich, have still elected to roll their own with forked older versions of Android (vis-a-vis the upcoming Kindle). Sure, eventually Android 4.0 will become the mainstream version rolled out on new devices. But by then Google might have already been working on Android 5.0, aka Monster Truck Rally (who knows?). Meanwhile, the Android ecosystem will be falling to pieces.