30 October 2009

HOWTO: Fix OS X by uninstalling Adobe Flash

Adobe Flash just ruined my day for the last time... I've just arrived in Paris and needed to do some work before a meeting this afternoon. As it's noisy here I didn't hear the MacBook's fans running at full speed trying to compensate for a single rogue Flash ad in a tab in Google Chrome. The result was that my full 4 hour battery was reduced to less than 40 minutes and I now have no chance of getting everything I wanted to do done. Instead I'm going to use the remaining 20 minutes to tell you how to rid yourself of Flash once and for all, and in doing so enjoy the following benefits:
  • Significantly improved security (Snow Leopard even shipped with a vulnerable Flash player!)
  • Significantly improved performance (Flash regularly consumes most of the resources of even the most powerful machines)
  • Significantly longer battery life (the CPU consumes a lot more energy when it is busy)
  • Significantly less noise (MacBooks crank up the fans to deal with the extra heat)
  • No more annoying and invasive advertisements (virtually all of the most annoying ads are Flash)
  • Less distractions (while sites like YouTube have legitimate uses, the overwhelming majority of time spent there is procrastination)
  • A better Internet (Adobe's penetration figures are already complete bullshit but by voting NO to Flash you're sending developers a strong message)
  • An open Internet (Adobe Flash is a proprietary plugin that hampers the adoption of open standards like HTML 5)
  • A level playing field with one less monopoly (Adobe was the first company to achieve near-ubiquitous penetration rate with a proprietary plug-in, and it will hopefully be the last. Late entrants like Silverlight don't stand a chance because there is just no incentive.)
Without further ado (as I'm running out of juice):
PS: You might be surprised to find that (provided you're using a recent browser like Safari 4, Chrome, Firefox 3.5, etc.) videos such as those at Apple.com (including the Get a Mac ads) as well as sites like DailyMotion's OpenVideo will "just work", natively, in the browser, without Flash. That's the future right there...

PPS: For the fanbois on whom the message that I'm not interested is lost, feel free to flame away below. The demise of Flash is going to happen, probably sooner than you would like, so why endure another day?

Update: After 2 weeks without Flash I've had far fewer problems, can open many more tabs and have not had to restart my browser at all. Even YouTube has its own HTML5 video demo pages up now so it's only a matter of time before Flash will be relegated to the wonderful world of Internet advertising. For those who are stuck with Flash for whatever reason I recommend ClickToFlash which at least prevents it from being loaded without user interaction.

29 October 2009

A quick word on Windows 7 launch parties...

Many of you have already seen this cringeworthy video of some PR flak's interpretation of what a "Windows 7 Launch Party" should look like:



Unsurprisingly they fizzled as a "complete and utter failure", but we didn't hear much about this - either because so few were held or because of the reams of legalese that apparently even those RSVPing had to commit to.
Remember high school--cool kids went to parties and had fun while nerds hung out at math club and played Dungeons and Dragons? Well, the two don't mix. Hosting a party where you play Dungeons and Dragons or discuss algebraic functions doesn't make you cool just because you put the word ‘party' on it.
Apple is cool. Microsoft is not.

Thanks Krishna Subramanian, Devan Sabaratnam and YouTube's badicalindustries for this blast from the past:



The critique writes itself. Learn from your mistakes people.

27 October 2009

An open letter to the NoSQL community

Following some discussion on Twitter today I posted this thread to the nosql-discussion group. You can see the outcome for yourself (essentially, and unsurprisingly I might add, "please feel free to take your software and call it whatever you want").

While I don't want to mess with their momentum (it's a good cause, if branded with an unfortunate name) this isn't the first time the issue's been raised and I doubt it will be the last. I do however think that "no SQL" is completely missing the point and that the core concern is trading consistency for scalability. At the end of the day developers and users will deploy what is most appropriate for the task at hand.

There'a already been a question about alternatives to SQL, and knowing how Structured Query Language (SQL) came to be (consider the interfaces before it existed and compare that to what we have today) I figure it's only a matter of time before history repeats itself and we end up creating something like Cloud Query Language (CQL) (a deliberate play on words). The closer this is to ANSI SQL the better it will be, both in terms of technology reuse and of the bags of bones that need to understand how it works... for the same reason the Open Cloud Computing Interface (OCCI) tries very hard to be as close as possible to HyperText Transfer Protocol (HTTP).

---------- Forwarded message ----------
From: Sam Johnston
Date: Tue, Oct 27, 2009 at 3:33 PM
Subject: An open letter to the NoSQL community
To: NoSQL

Afternoon NoSQLers,

I write to you as a huge fan of next generation databases, but also as someone who doesn't associate in any way with the "NoSQL" moniker. I don't particularly care for SQL and appreciate the contrived contention it creates, but I think it misses the point somewhat and alienates people like myself who might otherwise have been drawn to the project.

I assume that by "NoSQL" we're referring to the next generation of [generally cloud-based] databases such as Google's BigTable, Amazon's SimpleDB, Facebook's Cassandra, etc., in which case the issue is more the underlying model (e.g. ACID vs BASE), where we are ultimately trading consistency for scalability.

To me this has nothing to do with the query language (which would still arguably be useful for many applications and which may as well be [something like] SQL, albeit adapted), nor the relational (as opposed to navigational) nature of the data (which is still the case today - it's just represented as pointers rather than separate "relation" tables), and to focus on either attribute is missing the point. This is particularly true with today's announcement of Amazon RDS.

Perhaps it's too late already, but I'd like to think we can come up with a more representative name to which everyone can associate (and which isn't so scary for fickle enterprise customers). There's already been a couple of decent suggestions, including alt.db, db-ng, NRDB[MS], etc.

Sam

Twitter's down for the count. What are we going to do about it?



What's wrong with this picture?
  • There's not a single provider for telephony (AT&T, T-Mobile, etc.)
  • There's not a single provider for text messaging (AT&T, T-Mobile, etc.)
  • There's not a single provider for instant messaging (GTalk, MSN, AIM, etc.)
  • There's not a single provider for e-mail (GMail, Hotmail, Yahoo!, etc.)
  • There's not a single provider for blogging (Blogger, Wordpress, etc.)
  • There's not a single provider for "mini" blogging (Tumblr, Posterous, etc.)
  • There IS a single provider for micro blogging (Twitter)
  • And it's down for the count (everything from the main site to the API is inaccessible)
  • And it's been down for an Internet eternity (the best part of an hour and counting)
What are we going to do about it?

24 October 2009

How lobbyists are denying you a voice and destroying democracy

I came across an unsurprising but nonetheless disconcerting revelation today that is gives a very good example of what most of us knew all along: that "public comment" process are routinely subverted by commercial interests, generally at the public's expense. It comes in the form of a smoking gun courtesy DSL Reports: Who Knew Senior Citizens Hated Net Neutrality?

There is currently an extremely important battle underway over securing Net Neutrality regulations and another where big media are actively attacking (by way of three-strikes policies like HADOPI in France) what is fast becoming a legal right: broadband access (thanks to Finland for getting the ball rolling: Fast Internet access becomes a legal right in Finland).

Us (US?) consumers recently had a big win with the FCC getting on board the Open Internet bandwagon but not afraid to flog a dead horse, industry lobbyists have rolled out an army of puppets parroting their position; that Net Neutrality is somehow opposed to broadband adoption (which could not be further from the truth). In this case it's the Arkansas Retired Seniors Coalition, purporting to represent (surprise, surprise) retired seniors in Arkansas, ignoring the fact that your average senior quite probably doesn't know what net neutrality is, let alone care about it!

They do care about Internet access though and as the slowest state in the south all it would take would be a seemingly suitable scapegoat and you'd have pitchforks in the streets. My guess is they don't even know the position taken by their representatives which makes this letter sent on their behalf at least deceitful:

The problem which such astroturfing is that it makes public opinion both harder to reliably collect and easier to dismiss. Such shenanigans appear far more prevalent in the US than other countries I've lived in, but regulations there (e.g. DMCA) tend to flow on to the rest of us eventually so it's in everyone's interest to have their say.

There really should be something done about the issue, however most solutions are relatively difficult to enforce. Examples include requiring a statutory declaration component such that egregious abuses can be punished (and to make people think twice about misrepresenting others), or requiring the individuals represented to make an overt act such as signing a petition. Rejecting messages that are too similar, and therefore obviously templates, raises the bar somewhat but does not stop determined attackers.

The long term solution likely comes in the form of digital identity, whereby each individual can be reliably authenticated and the cost of involving them in decisions trends towards zero. As referendums are extremely expensive and inefficient (despite the availability of technology that could put them within reach for routine decision-making) we appoint representatives who we hope will accurately reflect our views on each of the topics. Obviously this is rare - for example your representative might share your views on fiscal policy but reject gay marriage in which case you have to choose what is more important to you.

An arguably better solution is where individuals can take part in all decisions they care about, which is called a direct democracy (or pure democracy), and the use of technology to achieve better representation is a separate but related concept known as e-democracy. We should be paying more attention to both as it's like we only got half way there by establishing representative democracies in most of the western world.

13 October 2009

Cloud or Not?

As it seems people still just don't get what is, and what is not (*cough*Sidekick*cough*) cloud computing, I've put together a (tongue-in-cheek) flowchart to help you decide:

12 October 2009

If it's dangerous it's NOT cloud computing


Having written something similar over the weekend myself (How Open Cloud could have saved Sidekick users' skins) I was getting ready to complement Reuven Cohen on his latest post (really), but fear-mongering title aside (Cloud Computing is Dangerous) I was dismayed to see this:

"Let's call it what it is, it's a cloud app -- your data when using a Sidekick is hosted in some elses data center."

I simply can not and will not accept this, and I'm not the only one:

Help me out here. I'm seeing really smart people I totally respect jump on this T-Mobile issue as a "Cloud" failure. Am I losing my mind?

Reuven: I'm disappointed that you feel this way, particularly as people (for better or worse) do actually listen to what you have to say. As such you owe it to the community you [unofficially] represent to think (or better yet, ask) before you speak on its behalf - what you consider "partly kidding" others take very seriously. I'd swear I spend half my life cleaning up after things like the Open Cloud Manifestation (albeit granted if we all agreed from the outset we'd have nothing to talk about!).

For a start, Sidekicks predate cloud by 1/2 a dozen *years*, with the first releases back in 2001. Are we saying that they were so far ahead (like Google) that we just hadn't come up with a name for their technology yet? No. Is Blackberry cloud? No, it isn't either. This was a legacy n-tier Internet-facing application that catastrophically failed as many such applications do. It was NOT cloud. As Alexis Richardson pointed out to Redmonk's James Governor "if it loses your data - it's not a cloud".

While I know that this analogy is inconvenient for some vendors it works and it's the best we have: Cloud is resilient in the same way that the electricity grid is resilient. Power stations do fail and we (generally) don't hear about it. Similarly datacenters fail, get disconnected, overheat, flood, burn to the ground and so on, but these events should not cause any more than a minor interruption for end users. Otherwise how are they different from "legacy" web applications? Sure, occasionally we'll have cloud computing "blackouts" but we'll learn to live with them just as we do today when the electricity goes out.

As a more specific example, if an Amazon DC fails you'll lose your EC2 instances (the cost/performance hit of running lock-step across high latency links is way too high for live redundancy). However the virtual machine image itself should be automagically replicated across multiple geographically independent availability zones by S3 so it's just a case of starting them again. If you're using S3 directly (or Gmail for that matter) you should never need to know that something went wrong.

But Salesforce predates cloud by almost a decade you say? This data point was a thorn in my side until I found this article (Salesforce suffers gridlock as database collapses) and the associated Oracle press release (Salesforce.com’s 267,000 Subscribers To Go On Demand With Oracle® Grid). With wording like "one of its four data hubs collapsed" in what "appears to be a database cluster crash" I'm starting to question whether Salesforce really is as "cloudy" as they are claim (and are assumed) to be. Indeed the URL I'm staring at as I use Salesforce.com now (https://na1.salesforce.com/home/home.jsp - emphasis mine) would suggest that it is anything but. NA1 is one of 1/2 a dozen different data centers and their "cloud" only appears as a single point when you log in (http://login.salesforce.com/) at which time you are redirected to the one that hosts your data. Is it any wonder then that it's Google and Amazon that are topping the surveys now rather than Microsoft and Salesforce?

Don't get me wrong - Salesforce.com is a great company with a great product suite that I use and recommend every day. They may well be locked in to a legacy n-tier architecture but they do a great job of keeping it running at large scale and I almost can't believe it's not cloud. I see it as "Software. As a Service", bearing in mind that it's replacing some piece of software that traditionally would have run on the desktop by delivering it over the Internet via the browser. SaaS is, if anything, a subset of cloud and I'm sure that nobody here would suggest that any old LAMP application constitutes cloud. But we digress...

I honestly thought we had this issue resolved last year, having spent an inordinate amount of time discussing, blogging, writing Wikipedia articles and generally trying to extract sense (and consensus) from the noise. I was apparently wrong as even our self-appointed spokesman has foolishly conceded that what can only really be described as gross negligence in IT operations and a crass act of stupidity is somehow a failure of the cloud computing model itself. I agree completely with Chris Hoff in that "This T-Mobile debacle is a good thing. It will help further flush out definitions and expectations of Cloud. (I can dream, right?)" - it's high time for us to revisit and nail the issue of what is (and more importantly, what is not) cloud once and for all.

11 October 2009

How Open Cloud could have saved Sidekick users' skins

The cloud computing scandal of the week is looking like being the catastrophic loss of millions of Sidekick users' data. This is an unfortunate and completely avoidable event that Microsoft's Danger subsidiary and T-Mobile (along with the rest of the cloud computing community) will surely very soon come to regret.

There's plenty of theories as to what went wrong - the most credible being that a SAN upgrade was botched, possibly by a large outsourcing contractor, and that no backups were taken despite space being available (though presumably not on the same SAN!). Note that while most cloud services exceed the capacity/cost ceiling of SANs and therefore employ cheaper horizontal scaling options (like the Google File System) this is, or should I say was, a relatively small amount of data. As such there is no excuse whatsoever for not having reliable, off-line backups - particularly given Danger is owned by Microsoft (previously considered one of the "big 4" cloud companies even by myself). It was a paid-for service too (~$20/month or $240/year?) which makes even the most expensive cloud offerings like Apple's MobileMe look like a bargain (though if it's any consolation the fact that the service was paid for rather than free may well come back to bite them by way of the inevitable class action lawsuits).

"Real" cloud storage systems transparently ensure that multiple copies of data are automatically maintained on different nodes, at least one of which is ideally geographically independent. That is to say, the fact I see the term "SAN" appearing in the conversation suggests that this was a legacy architecture far more likely to fail. This is in the same way that today's aircraft are far safer than yesterday's and today's electricity grids far more reliable than earlier ones (Sidekick apparently predates Android & iPhone by some years after all). It's hard to say with any real authority what is and what is not cloud computing though, beyond saying that "I know it when I see it, and this ain't it".

Whatever the root cause the result is the same - users who were given no choice but to store their contacts, calendars and other essential day-to-day data on Microsoft's servers look like having irretrievably lost it. Friends, family, acquaintances and loved ones - even (especially?) the boy/girl you met at the bar last night - may be gone for good. People will miss appointments, lose business deals and in the most extreme cases could face extreme hardship as a result (for example, I'm guessing parole officers don't take kindly to missed appointments with no contact!). The cost of this failure will (at least initially) be borne by the users, and yet there was nothing they could have done to prevent it short of choosing another service or manually transcribing their details.

The last hope for them is that Microsoft can somehow reverse the caching process in order to remotely retrieve copies from the devices (which are effectively dumb terminals) before they lose power; good luck with that. While synchronisation is hard to get right, having a single cloud-based "master" and a local cache on the device (as opposed to a full, first-class citizen copy) is a poor design decision. I have an iPhone (actually I have a 1G, 3G, 3GS and an iPod Touch) and they're all synchronised together via two MacBooks and in turn to both a Time Machine backup and Mozy online backup. As if that's not enough all my contacts are in sync with Google Apps' Gmail over the air too so I can take your number and pretty much immediately drop it in a beer without concern for data loss. Even this proprietary system protects me from such failures.

The moral of the story is that externalised risk is a real problem for cloud computing. Most providers [try to] avoid responsibility by way of terms of service that strip away users' rights but it's a difficult problem to solve though because enforcing liability for anything but gross negligence can exclude smaller players from the market. That is why users absolutely must have control over their data and be encouraged if not forced to take responsibility for it.

Open Cloud simply requires open formats and open APIs - that is to say, users must have access to their data in a transparent format. Even if it doesn't make sense to maintain a local copy on the users' computer, there's nothing stopping providers from pushing it to a third party storage service like Amazon S3. In fact it makes a lot of sense for applications to be separated from storage entirely. We don't expect our operating system to provide all the functionality we'll ever need (or indeed, any of it) so we install third party applications which use the operating system to store data. What's to stop us doing the same in the cloud, for example having Google Apps and Zoho both saving back to a common Amazon S3 store which is in turn replicated locally or to another cloud-based service like Rackspace Cloud Files?

In any case perhaps it's time for us to dust off and revisit the Cloud Computing Bill of Rights?

09 October 2009

"Bare Metal" cloud infrastructure "compute" services arrive

Earlier in the year during the formation of the Open Cloud Computing Interface (OCCI) working group I described three types of cloud infrastructure "compute" services:
  • Physical Machines ("Bare Metal") which are essentially dedicated servers provisioned on a utility basis (e.g. hourly), whether physically independent or just physically isolated (e.g. blades)
  • Virtual Machines which nowadays uses hypervisors to split the resources of a physical host amongst various guests, where both the host and each of the guests run a separate operating system instance. For more details on emulation vs virtualisation vs paravirtualisation see a KB article I wrote for Citrix a while back: CTX107587 Virtual Machine Technology Overview
  • OS Virtualisation (e.g. containers, zones, chroots) which is where a single instance of an operating system provides multiple isolated user-space instances.
While the overwhelming majority of cloud computing discussions today focus on virtual machines, the reason for my making the distinction was so as the resulting API would be capable of dealing with all possibilities. The clouderati are now realising that there's more to life than virtual machines and that the OS is like "a cancer that sucks energy (e.g. resources, cycles), needs constant treatment (e.g. patches, updates, upgrades) and poses significant risk of death (e.g. catastrophic failure) to any application it hosts". That's some good progress - now if only the rest of the commentators would quit referring to virtualisation as private cloud so we can focus on what's important rather than maintaining the status quo.

Anyway such cloud services didn't exist at the time but in France at least we did have providers like Dedibox and Kimsufi who would provision a fixed configuration dedicated server for you pretty much on the spot starting at €20/month (<€0.03/hr or ~$0.04/hr). I figured there was nothing theoretically stopping this being fully automated and exposed via a user (web) or machine (API) interface, in which case it would be indistinguishable from a service delivered via VM (except for a higher level of isolation and performance). Provided you're billing as a utility (that is, users can consume resources as they need them and are billed only for what they use) rather than monthly or annually and taking care of all the details "within" the cloud there's no reason this isn't cloud computing. After all, as an end user I needn't care if you're providing your service using an army of monkeys, so long as you are. PCI compliance anyone?

Virtually all of the cloud infrastructure services people talk about today are based on virtual machines and the market price for a reasonably capable one is $0.10/hr or around $72.00 per month. That's said to be 3-5x more than cost at "cloud scale" (think Amazon) so expect that price to drop as the market matures. Rackspace Cloud are already offering small Xen VMs for 1.5c/hr or ~$10/month. I won't waste any more time talking about these offerings as everyone else already is. This will be a very crowded space thanks in no small part to VMware's introduction of vCloud (which they claim turns any web hoster into a cloud provider) but with the hypervisor well and truly commoditised I assure you there's nothing to see here.

On the lightweight side of the spectrum, VPS providers are a dime a dozen. These guys generally slice Linux servers up into tens if not hundreds of accounts for only a few dollars a month and take care of little more than the (shared) kernel, leaving end users to install the distribution of their choice as root. Solaris has zones and even Windows has MultiWin built in now days (that's the technology, courtesy Citrix, that allows multiple users each having their own GUI session to coexist on the same machine - it's primarily used for Terminal Services & Fast User Switching but applications and services can also run in their own context). This delivers most of the benefits of a virtual machine, only without the overhead and cost of running and managing multiple operating systems side by side. Unfortunately nobody's really doing this yet in cloud but if they were you'd be able to get machines for tasks like mail relaying, spam filtering, DNS, etc. for literally a fraction of a penny per hour (VPSs start at <$5/m or around 0.7c/hr).

So the reason for my writing this post today is that SoftLayer this week announced the availability of "Bare Metal Cloud" starting at $0.15 per hour. I'm not going to give them any props for having done so thanks for their disappointing attempt to trademark the obvious and generic term "bare metal cloud" and due to unattractive hourly rates that are almost four times the price of the monthly packages by the time you take into account data allowances. I will however say that it's good to see this prophecy (however predictable) fulfilled.

I sincerely hope that the attention will continue to move further away from overpriced and inefficient virtual machines and towards more innovative approaches to virtualisation.