Archive for the 'Web Technology' Category

The Conversation Station Lives…

Friday, August 1st, 2008

P1010603

More pieces are getting installed. The mid-line of the HDTV is at my eye level. The vertical distance between the camera and the eye mid-line is a problem. To look directly at the person, you need to look at the camera. It feels very unnatural to be looking up while your peer is looking at your throat. Though she is looking at the camera too. Of course, if you look at the screen you aren’t meeting the eye of your peer. I once tried to file a patent on a screen with a hole drilled in the middle to solve this problem. But AT&T already held patents in this area.

Isn’t the Wii cute in its little cubby?

The Conversation Station Takes Shape

Thursday, July 31st, 2008

P1010589

My stand-up desk is just about done. (It only needs pulls for the drawers.) The desktop is 42 inches off of the floor. A normal desk is 30 inches high.

I’m involved with a research project in advanced web media integration and user interface experimentation. A conversation station is used for a one on one video conference. It is intended to be the proverbial water cooler of the remote/home worker.

The custom mount for the high definition video camera is being fabricated. It will be centered above the screen. The screen is on an articulated mount. By the way, that is a Wii light bar mounted on the top of the screen. While I do use it to play games, the Wiimote is also one of the most interesting UI input devices developed in a long time. It is only rivaled by the iPhone and its accelerometers.

Are You In?

Friday, July 25th, 2008

Nda-Club

The first rule of NDA Club is,

you do not talk about NDA Club!

Photoshopping by my friend:

Steve Stedman

Stedman Design.

Twiku - Twitter Haiku

Wednesday, January 2nd, 2008

140 characters
obscure, personal events
Ahh… social software.

The rules are simple:
1) Use as few characters as possible. 70 characters are a preferred maximum but 140 are allowed.

Networds, such as lol, w00t and FTW, are explicitly encouraged.

2) Use a 3 line form.

The Great American Western Roadtrip: iPhone and AT&T FTW!

Tuesday, November 27th, 2007

I’ve been trying an experiment ever since I got my iPhone. I always try it before opening a laptop. By and large, I have had uneven results. That is until I went to west Texas, southern New Mexico and southeastern Arizona for Thanksgiving 2007.

The AT&T network gets a well deserved criticism that it is low bandwidth and is, hence, implied to be of little value. The flip side of this argument is that AT&T can deploy this technology in more places, such as west Texas, southern New Mexico and southeastern Arizona. These arid zones have been poorly served by cell phone carriers for the last 20 years or so. Yet, the iPhone, being the Wi-Fi network seeking device that it is, is able to sniff out the faintest whiff of internet availability. It found little Wi-Fi but found EDGE data service wherever it had phone service. (The predominant Wi-Fi source was roadside motels. Unlike fancy city hotels, motels have all gone Wi-Fi for the road traveling set. Apparently, no one was going to pay for Wi-Fi and the first chain that flipped got a competitive advantage. Now all of them offer free Wi-Fi.) What I think has happened is that as AT&T’s network gets more usage in cities, AT&T moves its lower bandwidth equipment to the hinterlands. In any event, it was a pleasant surprise where we had web service.

As others have noted, the most valuable feature of the iPhone is the Google Maps application. This is even more useful when traveling on a road trip. It was trivial to type in an address and the word restaurant - Google put down the push-pins for a reasonable selection. Even in west bumf*&^! Safari found us restaurant reviews. (Yes, there is always a local blogger/civic booster that will publish something about the local dining scene.) We were able to look up closing times for parks and winery tasting rooms. (The Blue Teal 2003 Shiraz is mighty fruity and we bought 8 of them.)

There was a snow storm in New Mexico and Texas while we were returning home (November 24-25). The New Mexico Department of Transportation has a simple but effective web site, New Mexico Roads. It was able to give us real-time updates on road closures. It gave us the confidence to take the scenic path instead of the safe path. In particular, AT&T’s EDGE network made this critical safety service possible. (There was a rendering problem that is not on desktop Safari. I’m sending them email bug report.)

Surprisingly, iPhone and AT&T FTW!

Did the Web fail the iPhone?

Friday, October 19th, 2007

Chris Messina has written a thoughtful but, I think, wrong post about Apple changing course and allowing native applications on an iPhone.

The Issues:

The first major issue that we all have to get over is whether Apple was planning all along to allow the iPhone to run native applications. Because Steve Jobs has always desired closed systems, we can be pretty sure that his plans for AJAX development on the iPhone were the main plan. (Most everyone I know who has ever worked with “The Steve” agrees that he does not really want developers on any platform he’s built.) Now a technical reason that this wasn’t planned is that the platform is actually new. It is not a Mac nor is it NextStep. It may exploit that codebase but it does not claim to have any guarantee of compatibility with that base. Furthermore, they are not supporting anywhere near as many frameworks as the full Mac platform. Nor were they guaranteeing any kind of robustness outside of the APIs they use in the way they use them. In other words, their testing budget is restricted to their applications. As we know from Brooks’ “Mythical Man Month”, moving a codebase from being just a product to being a platform can take upwards of three times the effort - test and documentation alone are significantly larger expenses for a platform. Native apps were never ‘in plan’.

Second, Apple’s experience with the Dashboard in Tiger would lead anyone to believe that you can build excellent ‘native-looking’ apps using just web technologies. In my opinion, dashboard widgets are extremely impressive. I believe that supporting these widgets on the iPhone was always in plan and still is. Since Dashcode is fully supported in Leopard and, for reasons I detail later, the iPhone will use the Leopard kernel and runtime in early 2008, the Dashboard will emerge as a second programming model on the iPhone. In fact, there is a good chance that it could be released in the firmware update following Leopard’s introduction.

Third, the iPhone is truly the first phone to expect an always-on, effective internet connection. This is a major competitive advantage for the iPhone over every other phone and also gives AT&T an edge too. Web apps are the way to exploit this always on connection. A native app, while perhaps compelling for a user, does allow the 3rd party community to ignore this advantage of the phone.

Apple changed course in the face of customer pressure and that AT&T publicly disputed “The Steve’s” claim that you needed to isolate the network from rogue programs. AT&T has obviously had to engineer their network to be robust in the face of both fraud and outright attacks.

Finally, by allowing folks onto the platform in a controlled way, they directly remove most of the pressure to hack the phone from their customers. Most people don’t care about the lock-in until they get to the end of their 2 year contract. Then, I expect you will get a clamor from the iPhone hoi polloi for a formal, supported unlock.

Did the Web fail the iPhone?

Chris spends a great deal of time complaining about deficiencies of the Web platform - that collection of standards implemented by browsers. Yes, he is right. The web is deficient in many UI elements. Yes, the overly complex CSS environment lacks many natural layout patterns, such as columns. I support him in his call for web frameworks to redress these web weaknesses. Nonetheless, the web platform will move slowly because of the necessarily conflicting agendas of the browser developers. The browser war is still with us and always will be. Apple and Nokia combined with Firefox now have enough leverage to bring Microsoft to the web standards table but that doesn’t mean this will be a quick process. Furthermore, having actually been on multiple web standards activities (XHTML, SVG and XForms), I know firsthand how parochial committee members are and their attachment to pet features. That is part of why CSS is such an ornate and baroque standard. That said, the implemented subset of CSS features on most browsers is rather capable. It is good enough for almost all structured data applications and is pretty good for free-form data apps.

iPhone Futures:

iPhone is moving to the Leopard kernel and runtime. That is, in my opinion, part of why Leopard was delayed. They had to rationalize any differences at the low level between the platforms. We also have “The Steve’s” public acknowledgment that there will be an application ’sandbox’. This is a Leopard-only security feature. If I was putting constraints on the iPhone runtime, I would require that all apps use the new Objective C 2.0 runtime and further require all apps to use memory garbage collection. In other environments this is a proven way to make applications more robust - not bullet proof but robust. Isn’t everyone tired of iPhone Safari crashing on them?

By the way, the rumor mill is rife with speculation that Adobe’s Flash Lite will appear on the iPhone with the next release. The walls separating the iPhone from being a full fledged internet platform are all falling down.

Summary:

While I understand Chris’ frustration with Apple’s decision and his fear that web app development on the iPhone will grind to a halt, I think he is too alarmist. The always on nature of the web on the iPhone and the switch of many web sites to rich AJAX applications will always bring a set of interesting features and mash-ups to the iPhone. (Web app folks will try to avoid special coding for any device.) The iPhone platform just got richer. It didn’t lose a constituency but gained a new market and mechanism to lock customers on the iPhone. Apple will enjoy added profits from this switch. And even more than a closed platform, “The Steve” loves profits.

Web Applications - A Strategic View…

Thursday, September 20th, 2007

Joel Spolsky recently wrote a strategic analysis of web applications and the battle for market dominance on the web called Strategy Letter IV. My friend David Shayer asked for my response to Joel’s analysis.

In the spirit of full disclosure, I need to lay out a bit of my background. I have been intimately involved with web application architecture for a very long time. As a Web Theorist at IBM, it was my responsibility to craft a technical strategy to respond to the ‘missing browser problem’ (e.g. Navigator went poof in December 1997 and we needed to make sure that our customers always had choices in how they deployed web applications). We started a multi-pronged effort involving web standards (JavaScript, SVG, XHTML and Xforms) and browser platforms (IE, Mozilla and HotJava). In addition, in 1998 I promoted active DOM programming. Initially, I proposed creating weblets in Java to manipulate the DOM. We chose Java to enable a secure bi-directional web. Then JavaScript grew up and we put Java weblets on the shelf. Shortly after this, IBM assigned me to help spin Mozilla out of AOL. One of the key points I kept making to potential investors in the Mozilla foundation was that the next evolution of web technology was to become a bi-directional web. We now call this AJAX. In other words, I have an informed opinion on web application architecture and its affect on business. This blog opinion is personal and is not endorsed by IBM in any way.

Technology is the source of business value. Every analysis of the strategic positions of companies needs to start here. Furthermore, technology comes in many forms. Many of which are not obviously tied to the competitive situation between companies. Joel focusses on three areas: software architecture’s exploitation of hardware resources, programming languages that hide platform differences and the emergence of unifying interaction APIs (e.g. common cut and paste methods, etc.). Also, I’ll try to ignore Joel’s sniping at Google’s success (Googleccinos? Oh puleeze.) Hubris happens. It affects the choices folks make but does not change the playing field. It is more like dropping a pass because you did not train sufficiently before the game.

Software Responds to Hardware Largess:

The classic conceit by software architects is to claim that hardware will solve the performance issues introduced by feature creep. (The classic ‘Andy giveth and Bill taketh away’ argument. [Andy is Andy Grove of Intel and Bill is, of course, Bill Gates of Microsoft].) Yet, this is a simplistic view of the technology battle shaped by one’s commercial interests. It is an appropriate view when you are in a race to fill an empty niche created by a platform transition. Since platform transitions are increasingly rare events, I want to look first at the steady state interaction between software features and hardware improvement.

Our friends in the open source community provide some clear examples of this steady state interaction. Because they are frequently not paid, they focus on spare, feature sufficient code. Their benefit from Moore’s law is that as hardware improves their code commensurately improves. For example, a sophisticated commercial database with über algorithms which have significantly overcome many of the limitations of previous generations of hardware benefits less from hardware improvement than simpler algorithms. Hence, the simpler code, being accelerated by hardware relatively more than the sophisticated product, undermines the financial value of the sophisticated, commercial product. The rise of MySQL, which many database professionals disdain, is a good example of this effect.

At some point, a product reaches a point of diminishing returns on feature investments. Most economically important applications have long passed this point. Furthermore, most mature products have features that turned out not to be as valuable to customers as the authors expected. In other words, mature products have cruft. But because some customers actually use those features, the cruft cannot be excised. And finally, because hardware has improved so much faster than their business, customers can get by with much less capability than the software can provide. In other words, there are plenty of reasons not to upgrade when your system works. (The Oxford University Press is a good example.)

In other words, the race to add features in a mature market may actually hurt your product. Factoring your product to meet specific niches is frequently the path to follow.

In a race to fill an empty niche, the winner is frequently the one who can field enough new features fast enough to capture a large amount of market share. Since Joel focusses on emerging APIs being the battle for dominance in UI interaction, I think he is framing the niche based upon historical myopia - i.e. UI was the last battle and, hence, it is the next battle. I take issue with whether there is an empty UI niche to fill here. Many of those choices are constrained by the browsers. The battle is about mash-up APIs and that is starting to settle down via the OpenAJAX alliance. The webapp products I see are more about bringing network capabilities (mash-ups, etc.) to modest function productivity apps. In other words, it is about building a bi-directional web to increase organizational productivity. The personal productivity problem has been long solved and it is well past time that we actually refined the tools to express just the features we have found to be useful. For example, how many people use more word processing features than those provided by an email application on a regular basis? Web apps are for the ‘hoi polloi’ in a company. In other words, company and personal technology choices are now being made on obtaining value from the bulk of the users. The sophisticated users will end up buying different tools.

Platform Hiding Programming Languages:

The holy grail of commercial software developers is the programming language and environment that hides platform differences from the programmer while expressing platform advantages to the user. Both Java and Firefox/Mozilla have attempted to do this. And both have failed. Joel proposes that some mythical platform will emerge that will allow this to happen. He calls this NewSDK. There are, actually, several attempts to do this: Adobe’s AIR, Google’s GWT, Microsoft’s SilverLight. Of the three, AIR, née Flash, has the strongest position. Yet, while the jury is still out on any of these choices, the web, as it always does, is evolving underneath these efforts. For example, one of Flash’s strengths was its video capabilities (essentially H.263 with a Flash wrapper). But the next version will support H.264, the HD video encoder, that has much more uptake by the content community. Learning from the music industry and its dependence on Apple, the media content community does not want any vendor control over their future. H.264 will be where they are all going and will eventually become a part of the base browser. Now the question is, will the application development community embrace AIR? I expect that decision to be a business one and not determined by technology.

Unlike previous platform transitions, everyone has learned from the past. The platform choice is much more likely to be vendor neutral rather than vendor-philic.

Unifying Interaction APIs - The Case for NewSDK:

Unfortunately, while Joel spends the bulk of his argument here, because it depends upon willful, ego driven blindness at Google and other players, it is also his weakest argument. OpenAJAX, even though it is a standards organization, is exclusively about fragment/mash-up interoperability. All of the big players are there - Adobe, Eclipse, Google, IBM, Microsoft, Mozilla and Zimbra (now Yahoo). Apple and Amazon are notable by their absence. Will this interoperability process happen quickly? No. But then the magic NewSDK of Joel’s paper does not emerge quickly either.

I do want to address the conceit of this last section that the big players sipping their Googleccinos are going to allow someone to steal this out from under them. I don’t think this is going to happen. The data that people want to mash-up has, heretofore, been exclusively available from the big players - Amazon, Google, Microsoft and Yahoo. These people watch their business like hawks. Every click-through is measured and categorized. In other words, this is about much more than the APIs - it is about access to the data. Joel’s model does not even acknowledge this difference between now and his historically analogous analysis. This has a huge stickiness that a mere API cannot overcome. And since they control the data, they control the APIs to access the data. Furthermore, the API challenges have already occurred and brought to a standards ‘activity’ with all of the delaying tactics that entails. These standards ‘clash of will’ really preclude small players from getting any leverage. NewSDK doesn’t stand a chance.

What I think will happen:

Having dispensed with Joel’s paper, allow me to promulgate my own view.

The battle is about keeping the browser open and evolving. This means that Firefox/Mozilla and Safari/KHTML have to keep growing and innovating. Firefox with its Google search bar revenue and Apple with its new found market share in PCs and phones can stay in this game a long time. (By the way, Apple gets about $20 million a year from their Google search bar. In other words, the Safari team is already self-funding.) I have no worries here.

NewSDK is about 2 things - good UI and good interoperability. The UI for many applications is already quite good. Google Docs and Zimbra’s apps are examples of good UIs created with today’s AJAX technology. It will only get better. Interoperability is being handled by OpenAJAX and market realities. I have no worries here.

JavaScript. Ahh… JavaScript. I have worries about JavaScript. JavaScript has had some very impressive capabilities on display since around 1999. The first JavaScript desktop libraries were being deployed by startup companies in 1999. I saw multiple sophisticated libraries being offered for sale or soliciting investment. Yet performance has not been one of its strong points. Building on long experience with language interpreters, the industry is focussing on interactively compiling JavaScript. These efforts may be successful. I think there is an easier way. Multi-core processors are being deployed on every computer sold today. (Heck, even the iPhone has upwards of 6 processors.) But my multi-core laptop is now twice as idle as it was before. In other words, the second processor is free and idle. The browser/JavaScript folks need to focus on how to multiply performance by exploiting this ‘free’ resource. At minimum, the compiler needs to run in a separate thread. The second thing that we need to do is simplify the interpreter so that it can run out of the cache memory on these processors. Safari has a fast JavaScript yet it’s interpreter is simpler than the Firefox interpreter. Microsoft’s JScript is, judging by it’s performance, similarly complex. Adobe and Mozilla are collaborating on bringing the Adobe ActionScript engine to Firefox. While I think it’s complex structure will result in slower execution on modern AJAX applications, I would like to be happily surprised Mozilla/Adobe. Safari keeps it’s interpreter small and it, hence, disproportionately benefits from Moore’s law performance improvements. They now need to figure out how to simply exploit the extra processor. I see challenges here for the browser community but I also see them trying to rise to the occasion. Perhaps my worries are unnecessary.

Summary:

Back in 1995 on Pearl Harbor Day, Bill Gates raised an alarm inside Microsoft about the internet and tried to turn the ship of state. He succeeded in killing Netscape and Navigator. But the industry learns and exploited Netscape’s last gift to the internet - Mozilla. We now have a vendor neutral web. That web preserves many billions of dollars of business. There are entrenched interests defending their bottom line. This battle will be very interesting to watch but it most definitely is not going to turn out like the PC business. The internet has changed everything.