Splitting the Atomic User Interface

No comments:
There is a war waging in the technosphere between those who favor thick clients (or rich clients as they are now called), and those who favor thin clients. Thin clients, and the server-mediated UI frameworks which support them, meet a singularly important requirement - to be understood by other programs, especially search engines. A large part of the utility of the internet is search, and search is only possible because web spiders can understand the simple structure of HTML and those internal relationships expressed as hyperlinks. These spiders cannot understand rich clients. Another increasingly useful part of the internet are mashups, where one application is used to decorate another with useful information. This, too, is rendered impossible by indivisible, atomic rich clients.

Indivisability, or atomicity, is what you get with a binary image, or a Flash SWF, aJava applet, a Canvas element, or a big hunk of generative JavaScript (like GWT). These elements are basically inscrutable by other programs. The DOM comes to an abrupt stop, and so does all ability to index, manipulate, or extend. When one of these elements expands to consume the entire page, the utility of the internet goes down a little bit because now there is information locked away, inaccessible. The entire page becomes an atom, and completely inscrutible.

And yet, these atomic technologies enable some truly beautiful interfaces, and in some cases are a joy to program with, so we don't want to give them up. Most applications should just use them and be happy, because 80% of searches are informational (as opposed to navigational or transactional - see http://live.psu.edu/story/29879), and most of these programs are transactional (that is, getting the user to fill out a form).

For informational rich clients, it's more complex. The bottom line is that you have to expose the information in the traditional way, too. This is less "cloaking" and more "exposing" internal state to the programs that need the info. Tacking on a trivial, non-beautiful HTML exposure of your data should be pretty easy, especially if your app is done in the SOFEA style. You have each page redirect to your rich client internal anchor. This is a valid use of a server-side framework.

This approach makes (almost) everyone happy. The data and it's relationship to external sites is exposed to search engines and mashups. The only person who is unhappy is the one who wants to use your UI in a mashup, along with the the data. But in the end, this is a minor impact. The importance of UI reuse is much less than the importance of information reuse.

Another approach is for the atom to finally be divided - for the web spiders to break the UI atom and release it's power. Unfortunately, this demands a great deal of computational effort on the part of the spiders, and is not scalable. If Google uses 20 megawatts today, expect this to increase an order of magnitude to break all the UI atoms out there, repeatedly. And then expect some information to be lost or misrepresented. From the mashup side it's a better picture - it is possible to analyze a running Java Swing program, for example, and expose a containment hierarchy as a DOM structure. No doubt a similar possibility exists for Flash, etc. Of course, JavaScript already exposes itself as a DOM structure, so it's a bit ahead of the game.


Two disturbing comments from Obama and a ramble about Afghanistan

No comments:
Obama made a comment about the economy today that tough times are a "great opportunity". I agree, but I think that's a message that requires a subtle discussion or it risks sounding like an empty platitude. A platitude coming from someone as smart as Obama is chilling news indeed - it sounds like a last resort when all other options have been exhausted.

The second comment about the Taliban is more serious: Obama is considering opening dialogue with moderate Taliban. I feel that to do so would be a critical error. The Taliban is a sworn enemy of the US, had harbored al queda, and needs to be eliminated. Granted, this is an emotional response, and I don't know the actual situation in Afghanistan. I know for certain my reaction is colored by a recent reading of The Kite Runner which depicts a Taliban which is wholly evil, a force of thuggish brutality and chaos, and which contains no moderate elements. Of course, that was a work of fiction and I may be mislead. But still, that is my instinct.

This is different than having dialogue with Iran, which by all accounts is run by Islamic militants no less brutal than the Taliban regime (both are Shi'a, BTW), but hasn't yet attacked US soil. To be sure things are as tense as they could be - Iran is constantly threatening Isreal, a close ally, and threatening the US as well. Iran has a history of attacking Americans in incredibly cowardly ways. But - and this is a huge but - Iran didn't bring down the twin towers, or directly harbor those that did. So sure, send a diplomat to talk to Iran. But send a soldier to 'talk' with the Taliban.

I am no expert on Afghanistan, but it seems that the problem is a real lack of focus. Armys are best at beating other armies in relatively short conflicts. It seems that the people of Afghanistan have been badly beaten down by first the Russians, then the Taliban, and the survivors are bound to be scarred, fearful, and unwilling to trust. And interpersonal trust is the key to a stable system. Nothing can get done when everyone is scheming to cheat their neighbor. And such people may not have the sophistication to understand the old "the tide raises all boats" sort of argument.

It seems to be that the West would be well served by introducing a new sort of business, the nation building business. Given a set of resources, a certain culture, a tricky security situation, can you build a nation? Obviously the business would be well served by expatriots of the country in question, and success is measured in how quickly and completely stability is achieved. Incentives should be in place for employees to move to the target country, and integrate into the society. Nothing motivates someone to achieve peace than the prospect of living in a warzone. Competition could occur as different companies take responsibility for rebuilding different nations. As they would be directing vast sums of government treasure, they would need to submit detailed plans, and to detailed audits of their activities. They would need to be very high tech to remain high-functioning despite the scrutiny.

One possible solution is the Genghis Khan solution. In his day, Temudjin's homeland of Mongolia was ruled by many small khans, or tribal cheiftans. Temudgin gradually won the loyalty of ever-larger groups of warriors by essentially offering them better working conditions (staying alive) and better compensation (a bigger cut of the spoils). Other clans would join him because they saw that their odds of winning battles and feeding their families would improve if they joined rather than fought.

Rebuild-afghanistan.com could offer the Afghans the same choice Temudjin offered his fellow Mongols: join us, or your odds of surving and feeding your family go down. Let us tell you of the prospect of long term prosperity, a time when the fighting will end, and the land will flow with milk and honey. Our culture is your culture. We are muslims. We have families. We speak Farsi and eat kabob and fly kites in the winter. We are fierce warriors, and we are used to winning. So either join us and live a life of plenty, or run to the hills and take your chances against our military. It's your choice.

The problem of course is that the west is viewed as evil. Demonstrating goodness is bound to be met with skepticism or violence. It is easy to imagine building a hospital, for example, and having it bombed. The irony is that you must build the 'good stuff' close by to be appreciated. And yet when it is close it is vulnerable, and it only takes a small group of people to decide to destroy it. There are always small minded khans who have only enough cleverness to manipulate their friends to maintain their power and authority. It is tribalism of the meanest kind, and those khans won't give up their power willingly, and they are happy to believe (and support) any story that helps them maintain their positions. I'm not sure if there is any solution other than to replace such people with leaders loyal to the overtaking regime.

Finding such leaders is the tricky part. The irony is that such replacement leaders must be selfless - they are giving up a lot to take up the mantle of tribal power. Those with leadership ability are rewarded extremely well in the west, and yet don't have to face the prospect of murder - the job pays better and is less challenging. To give up the rewards and assume the risks of tribal leadership can only come out of selflessness. (of course some people might be drawn to the raw brutality of that sort of existance, but I imagine they would be in the minority.)

Psychologically the opponent must be given something to think about rather than opposition. If opposition to authority is all they ever known, then it will be a difficult habit to break, even if the authority is demonstrably not evil. After all, if you get up every day and are driven by an abiding hatred of something, rather than say, ambition or even laziness, it's a different lifestyle. It's an easier life because you have a singular purpose: to destroy something. And too your own well-being and even that of your family can be ignored, and any discomfort blamed on the opposition. When you are faced with the prospect of building something, it's much harder. What to build? is a hard question because, by definition, the thing doesn't exist yet. It requires imagination and courage to build. But destruction only requires the basest literal thinking, and a gun. I think this was the point Goerge Orwell was trying to make in 1984. It may be that the tribes of Afghanistan (and to a lesser extent the Iraqis) are stuck in this sort of viscious cycle.