Thursday, 7 February 2008

So long, Flex

Well so much for Flex! I've now spent three or four days looking at it, reading about it, finding my way around the publicly available resources, and I don't like it.

I've had a simple form ready for hooking up for the last three days, and for the last three days it's had the same two problems: controls that were perfectly well aligned before I put them in an accordion or in a tab set become badly aligned when I put them in one, and Flex's HTTPService (their version of an XMLHttpRequest) seems unable to provide credentials to a url protected by basic authentication, even though it has a setCredentials(userid, password) function that looks as though it is supposed to do just that (but rumour has it that it only works when talking to Adobe's own LiveCycle data services).

So that's just not good enough. I can only conclude that people using Flex, who presumably care about things like form layout if they are using a tool that maxes teh pretty, are willing to spend inordinate amounts of time aligning child controls by hand in code (or by setting the parent's layout to Absolute and then moving the children around in the IDE, which amounts to the same thing), and that their RIAs are busily communicating with unsecured web services on the server - or that they've given up trying to make secured communication work on their own, and have stumped up the money for LiveCycle.

Honestly, Java can do that sort of stuff in its sleep. If only it didn't look so bad! Oh well, I'm still not going to go the applet route (hear that, Sun?) so it's back to making the YUI tabs work with my crappy html content, by loading their content via an xmlhttprequest after the page has loaded, rather than by including their content with the page, which somehow buggers the tabbing up.

Tuesday, 5 February 2008

Web 2.0 RIAs - the brave, new world.

I've spent my free time over the last couple of days looking at Adobe's Flex technology, and the ecosystem surrounding it. I'd always known about Flash of course, and I'd read the occasional article on Flex, Flux, AIR or whatever Adobe is calling it nowadays (they seem to have a really high churn rate on products, or maybe it's just product names). But as a Java guy, I'd never been able to understand what was wrong with the good old applet — perhaps not the very oldest, AWT-based applets, but certainly the (slightly) newer Swing-based JApplets. Sure, the flash-based stuff looked good, but I didn't see anything I couldn't do with Java.

So I was in for a bit of a shock. Java, which let's remember invented the whole idea of sectioning off a rectangle of window and offering it as a UI to a program embedded in the web page, seems to have completely lost the minds and hearts of browser-side developers. Java developers of 10 or more years standing are saying that Flex is the way to go for RIAs (rich internet applications) now.

It seems that after a decade of Java programming, while Sun has more or less abandoned the browser and chased the server, people have finally given up waiting for usable in-browser technology. Sun let themselves be distracted by Microsoft, and failed to see that Adobe was quietly taking their market. Applets still look clunky, they still have funny fonts, they still take forever to load, as the browser has to load and run the complete JRE (at least)... Meanwhile the Flex developers have noted all these failings of Java and quietly ensured that Flash/Flex doesn't suffer from them.

Well the market was Sun's to lose, and they lost it; indeed, they seem not to have cared about it at all. I suppose you could say that Sun was a more server-oriented company, while Macromedia and Adobe were more desktop oriented. But Sun has always made workstations too... It's shocking really: for a fraction of what they must have spent buffing Java for the server, they could have licensed some decent fonts, told a few designers to make the graphics look sleek and sexy, and licensed a decent codec for movies. Instead they jumped aboard an ill-conceived server-side beans bandwagon and ended up producing the J2EE monstrosity — its latest addition, Java Server Faces, piling yet another badly designed, badly implemented and altogether half baked piece of cack on top of all the rest.

(I mustn't go on about JSF, but please, someone tell me, when the entire rest of the industry was conspicuously moving towards client-side processing, with first DHTML and then Ajax, why did Sun adopt a model where even little things like a combo box dropping down its list portion required a complete page refresh from the server? What idiot thought that was a good idea?) ... I'd better rest a while, and wipe some of the froth away from my mouth ... I'll be alright in a moment ...

So, yes, I wasn't prepared for the degree of, frankly, hatred of in-browser Java that I found, even amongst ex Java developers. Like lovers who've been deceived, strung along, and humbled once too often.

But serious questions remain. A long time ago, early on in browser-centric Java, Sun spent a lot of effort on the Java sandbox. A poorish initial implementation gave way to a flexible one with fine-grained permissions, one that eventually most people felt they could trust. I've not done a lot of reading about Flex, but I haven't heard anything about sandboxing. I understand that it does have one, but I haven't heard any discussion about how good it is. And then of course, the entire world + dog moaned at Sun to open source Java, and it's finally done someting about it. Beyond open sourcing the basic flex product, Adobe has kept all the value-add stuff and the flash player itself closed. If Flex/Flash becomes the standard delivery mechanism for RIAs, Adobe will make a lot of money and we'll all wish we had stayed free.

Sunday, 3 February 2008

Compute cloud is the end for Microsoft on the server

Every so often I look at Amazon Web Services (AWS), and though the traffic on my web site doesn't justify even their smallest offering, it's still intriguing to think about how this offering will affect other peoples' businesses.

The most obvious is web hosting. There was a time, several years ago, when I thought that the hosting business was dead except for the largest players. Nobody else would be able to achieve the economies of scale necessary to compete. But there are a lot of hosting companies around, of all sizes. Absurdly many of them seem to offer the same combination: Apache, Linux or BSD, and MySQL for if you're really advanced :). It took me a while to find someone that could offer me both Postgresql and Java servlets.

I don't pretend to understand why it is that so many so similar hosting providers can coexist, though I suspect at least some of them are rebranding efforts, reselling services from the bigger boys. Even so, there seems to be money in it.

The latest thing to hit the world of the smaller hosting provider, at least as far as the somewhat glacial state of affairs at gedsguides is concerned, is virtual hosting. That's actually been around for some years, but about a year ago everyone started to offer it, as the virtualisation products matured (and, I suppose, as the open source ones became viable). Gedsguides.com will be moving from a simple hosting account to a real virtual server just as soon as I can be bothered to do it.

With a virtual server though, the competitive landscape changes. The model now is that you get administrator access to your own Linux server, and though it may well have the usual trio of Apache, PHP and MySQL installed on it as standard, you can install pretty much anything you want on it. Suddenly I don't have to go to California to find a hosting provider that supports the software I want to use. With virtual server products in other words, hosting providers are differentiated less by the software you can use for your web site and more by their pricing, reliability, knowledge and support.

And that's it, up to the limits of a single physical machine. But supposing, just supposing, gedsguides.com became wildly successful, on the order of a wowwiki or a thottbot. Would I order a second, a third, a fourth machine at my current hosting provider? Would they be interested in supporting a distributed database, a distributed application server, a distributed file system? What sort of support could they provide? And I would be sure to need to acquire a new set of programming skills for such a distributed, failover-prone world.

Much more likely, assuming the site was showing a profit, I'd finally bite the bullet and move everything to Amazon Web Services, where new servers and new storage are available at the drop of a hat; where the failure of a single box would be invisible to me, as it would be swapped out and another one prepped and swapped in in minutes.

So AWS stands to take the high end from the current crop of hosting providers. And because each AWS server is just another virtual server as far as the user is concerned, there's no worrying about whether it will provide the right software environment. You just package your website software up into an installable binary, and it gets distributed as necessary across machines.

Of course, there's no reason (other perhaps than using http as a data transfer mechanism) why only web sites and web applications should be using AWS. Sun has recently been talking about eating its own dog food by moving its in-house IT to its compute grid (Sun's version of AWS). I'm sure the idea will catch on, even if Sun fails there will be others who succeed.

For the purposes of a thought experiment, let's take this idea to its logical, if absurd conclusion. Let's say Amazon, Sun, Google and Microsoft all enter this market (Amazon and Sun are already in it, Google and Microsoft are rumoured to want to enter it). And then let's say that everybody — all businesses that is — rather than starting up their own IT and support department simply buy services from them. So, no server software sold to businesses any more, just billing for the computation done and storage used. Sure, some of this billing would cover the cost of server software, but in the form of capabilities available to your applications.

Now look at what software everyone would be using. For Amazon and Google it would be Linux (maybe BSD too?) and a software stack that runs on top of that, almost all of it open sourced. For Sun it would be Solaris, also open source and, if not blessed with developers to the same extent as the Linux world, at least largely compatible with it due to their shared *nix heritage, and able to incorporate any advances made in the Linux world fairly easily and quickly. Not so Microsoft. Microsoft would be the odd man out, using proprietary software all the way from Windows at the bottom to IIS and SQL Server in the middle to whatever in-house developed accounts, CRM, content-management etc. solutions they chose to supply at the top.

Microsoft suddenly looks awfully lonely there. What used to be a competitive advantage — user lock-in — suddenly becomes a liability: they are the ones locked in! They will have to do a lot of running to stay abreast of their competition. Nobody will be using their server software except them. They'll major on ease of use of course. Since everything is developed in-house, there is the potential for all the bits to fit together much more smoothly than with their competitors. Well, they'd better start coding all that now then, because that scenario is at least a couple of complete rewrites away. Vista, anybody?

The thing is, if you're providing a compute cloud environment to users, you need to provide either best of breed or cheapest (or a choice) at every level of the stack. For sure, Microsoft will be providing Windows at the bottom, but will they permit you to use alternatives to IIS and SQL Server in the middle? They could, but it would hurt their pride an awful lot. And what about areas where their offerings are complete also-rans? Who uses Microsoft Content Management Server anyway? Everyone uses Documentum. If you wanted to move your content management needs to the MS compute cloud, could you use Documentum or would they shove Content Management Server down your throat? It's easy to see that in the compute cloud scenario, Microsoft's less competitive offerings would be witheringly exposed.

Of course, such a massive and complete move away from in house IT to compute cloud IT may not ever happen. But something along those lines will, I think; the question is how far it will go, and how quickly. To the degree it does, Microsoft's ecosystem will shrink, its ability to compete on all fronts will be reduced, and its ability to be the first and the biggest, and to impose its standards, will diminish.

Oh, and if I was Documentum? Or SAP or Sage? I'd be talking to Amazon really nicely, right about now.

Monday, 28 January 2008

Nokia buys Trolltech

For 105 million euros, apparently.

The main interest is presumably Trolltech's Qtopia, but hopefully it's also good news for their Qt product (Qtopia is based on Qt) and KDE (a community-developed free software desktop also based on Qt) as well. I'd expect Nokia to be able to make a better fist of KDE than Sun has with Gnome, should they choose to do so.

Perhaps it wouldn't be altogether too fanciful to see this as Nokia's answer to Google's Android. It's interesting that Google Earth is said to be written in Qt — I wonder if there's any Trolltech technology in Android at all?

Trolltech's stock price shows something typical for a new technology company: a nice, steady decline from its initial IPO after a (very) brief burst of enthusiasm in the hours immediately following it, and reaching some kind of support level at about May 2007. There was still a slight decline going on even after this, so I doubt I'd have picked it. I wonder if there's now going to be a burst of purchases in this sector?

Sunday, 20 January 2008

Pat Robertson on why the sky is blue

A morning surf brought me to Phil Karn's site, wherein he hat tips James Randi for this quote from the ever-amazing Pat Robertson, explaining why the sky is blue:

I think the sky is blue because it's a shift from black through purple to blue, and it has to do with where the light is. You know, the farther we get into darkness, and there's a shifting of color of light into the blueness, and I think as you go farther and farther away from the reflected light we have from the sun or the light that's bouncing off this earth, uh, the darker it gets . . . I think if you look at the color scale, you start at black, move it through purple, move it on out, it's the shifting of color. We mentioned before about the stars singing, and that's one of the effects of the shifting of colors.

The thing is, even if by some extreme chance everything else Robertson believes were completely true, I still wouldn't expect him to be able to articulate his beliefs faithfully, based on that example.

Thursday, 10 January 2008

Android

If Android does well in the mobile phone arena then it will pretty soon move to set-top boxes and, eventually, perhaps even as a native OS on a PC near you.

I've been looking a little bit at Google's Android OS for mobile phones. It seems to use a Be-developed technology called OpenBinder that puts a rich object layer between the kernel and the applications (including the OS-level applications themselves). OpenBinder handles threading and IPC too, and seems to make it natural to use a multithreaded approach to the UI - something you're explicity told *not* to do in the less-capable UI development environments that I'm used to.

Just read this fascinating interview (with Dianne Hackborn, a key engineer in the creation of PalmOS Cobalt) for much more about OpenBinder — a name that I think we're all going to hear more often in the next few years.

One of the most intriguing paragraphs in the article is where Dianne states that OpenBinder lets "an application ... put parts of itself it may not trust (a web browser UI, video player, etc.) into a separate process without any visible difference seen by the user". Now let's think... Who might want to be able to have applications distributed between your mobile phone and its own hyperfarm of servers... Why, Google might! If you think of the way Google's been going with online disk space and online apps for your browser, it's not so far fetched to think that one day soon those browser apps might just be front ends for OpenBinder objects running natively on their server farms, and that you'll also be able to access them from your mobile phone — not just from your mobile phone's browser but from its native applications too.

Dianne states in the interview that the Be engineers hadn't yet network-enabled OpenBinder. I presume Google have rectified that situation. Hmm, I would dearly love to know if perhaps OpenBinder forms part of the heavily-modified Linux distribution that they are supposed to run internally. It may be one of their secret weapons against Microsoft: a better .Net than .Net...

I also wonder if the use of OpenBinder is linked to the "All applications are equal" philosphy that developers were shaking their heads over when the Android SDK first came out.

And then, and then... If Google know where your phone is, they also know who else is nearby, and applications could potentially distribute themselves over a nearby mesh of mobile phones. Great for games and business cards, less good for your medical records.

It also becomes apparent that the mobile phone "emulator" in the Android SDK could turn out to be a Trojan horse against Microsoft. There's nothing that limits OpenBinder to a quarter-vga screen. I doubt there's any hard limit in the rest of the Android SDK either. So, what if some genius hacker changes it to a 1280 x 1024 display? Suddenly you've got a VM and a UI as good as anything in Java or Flash/Flex running full screen on your PC, with network communication and distributed execution built in.

If you read to the bottom of the article linked above, you'll see that Dianne went on to work at ... Google. Hmm. We're used to thinking of Microsoft as the ocean, isolating and gradually drowning out everyone else. Suddenly they look as though the water is rising on them. There are already more mobile phones than PCs; if Android does well in the mobile phone arena then it will pretty soon move to set-top boxes and, eventually, perhaps even become the native OS on a PC near you.

Friday, 19 January 2007

The Burning Crusade

So The Burning Crusade (this year's expansion for World of Warcraft) has arrived chez Ged and, like most other folk, I've headed off to the Outland for experience, phatter lewt, higher skills, new types of pets, and the simple, touristic desire to just go there and have a look at the place.

And, also like most other folk, I do a few simple quests and see that the items you get as rewards for the most ordinary of quests have better statistics than the items I've spent months chasing down in assorted dungeons, raids and high-end instances back on Azeroth. That leads to a certain ... cheated .. feeling. No doubt it will soon go away, but I do wonder if The Burning Crusade is going to kill instances like the Molten Core and Black Wing Lair stone dead? In a few months time Zul'Gurub may be as empty of senior players as the Deadmines.

That wouldn't matter if these instances were, like the lower-end instances, places where you went to do a bundle of quests, and maybe you got some phat lewt but it didn't really matter if you didn't. But they weren't. You went to Molten Core, time and again, for the drops. The loot was shared out between guild members, and that way, every few visits, you got a rare, epic or even heroic item.

Blizzard have seen this coming, of course, and that's presumably what the new "Heroic" difficulty level on instances is for: better drops. So Molten Core will still get raids of 40 level 70s on Heroic difficulty level. Whether any level 60s will go there on ordinary difficulty level seems doubtful. Maybe we'll see a raft of new quests to take them there?