Category Archives: web authoring

Tafiti: search as a rich internet application

Tafiti is fascinating. Imagine what Google search would look like, if re-designed as a Flash application. This is it, except that it’s Live Search, not Google, and Silverlight, not Flash.

Let’s start with the good stuff. I ran this on a machine without Silverlight installed, and the installation of the plug-in was fast and smooth (though it restarts IE without remembering the open tabs, which is mildly annoying). The Tahiti app looks good and scales nicely. I searched for Silverlight, and results came back fast. You can easily filter the results, or drag and item onto a “shelf” for future reference, and the shelf persists between sessions.

The best feature is a carousel at bottom left. This modifies the search by different types: books, news, feeds, web or images. The layout of the search results changes to match the type of search, so you get book covers and a print-like font for the book search, big headlines for a news search, and so on.

What’s bad about Tafiti? The biggest irritation comes when you actually want to navigate to a site you’ve found. The generic problem here is that you typically want to keep the list of results as well. I normally solve this by right-clicking and opening the site in a new tab. But this is an application, not HTML, so when you right-click you get a single menu option, “Silverlight configuration.” If you left-click it is even worse:

Tafiti is trying to show the site you chose. Please disable your popup blocker to see your selection.

It wants to open the site in a new window, see, and that triggers the popup blocker. Easily fixed with “Always allow popups from this site”, but still a jarring experience.

These are actually minor quibbles. The more fundamental issue is, do you want search as an RIA? The problem is that search is a basic utility. What I want is quick results and easy navigation, never mind the frills, so I will take some persuading. Still, it could work if the application adds real value. Maybe a way of displaying more results on a page, without clutter, or categorising the results in some sensible way. It’s difficult, because attempts to be helpful often end up being counter-productive – and Microsoft is a specialist in over-helpful UIs, sadly.

Despite these reservations, I think Tafiti is a great Silverlight demo, because the technology is nearly invisible. On my system at least, it just works, and at this stage that is what counts for most.

PS: I am not sure what Tafiti is meant to mean, but according to Wikipedia it is a dialect of a Polynesian language and means the strangers, or people from a distance. Perhaps Microsoft is talking about its search market share vs Google?

Update: in the comments here and on the official faq it is said that Tafiti means “do research” in Swahili, and that the app is specifically aimed at “research projects that span multiple search queries and sessions”.

Technorati tags: , , ,

Flash gets hardware-accelerated H.264 video

Adobe’s Ryan Stewart reports on H.264 video support in Flash, including hardware acceleration. Another report suggests that Flash will get DRM, but not quickly. Part of the interest of these two reports is that superior video quality and DRM support are key features of Microsoft’s Silverlight, so this represents Adobe’s determination not to get left behind.

Silverlight’s video story is not just about quality. I reported earlier on how Microsoft is wooing media providers with cheap or free hosting, encoding and streaming software. Another facet is that Silverlight allows video content to be used as just another graphics brush, giving programmers great freedom over how it is presented.

Either way, it looks like high quality web video is getting easier to show in the near future. I only wish the BBC would use either Flash or Silverlight for its troublesome iPlayer – I suspect either one would offer a much better user experience.

Playing with a new Smartphone has reminded me of the downside of Flash and other proprietary web content. Its web browser does not support Flash, and in fact even visiting Adobe’s site makes the browser seize up temporarily with a Javascript error. This is the tension between richness and reach. Looks like we are heading for richness.

Technorati tags: , , , ,

Amazon FPS – is this the micropayment revolution?

Amazon.com has announced the beta release of the Flexible Payment Service, an addition to the range of web services which already includes on-demand computing (Elastic Compute Cloud) and Simple Storage (Amazon S3).

At first glance, this looks like big news for the Internet. It bears all the Amazon hallmarks: low price, developer-friendly, and easy to adopt. Here’s the pricing:

For Transactions >= $10:

  • 1.5% + $0.01 for Amazon Payments balance transfers
  • 2.0% + $0.05 for bank account debits
  • 2.9% + $0.30 for credit card

For Transactions < $10:

  • 1.5% + $0.01 for Amazon Payments balance transfers
  • 2.0% + $0.05 for bank account debits
  • 5.0% + $0.05 for credit card

For Amazon Payments balance transfers < $0.05:

  • 20% of the transaction amount, with a minimum fee of $0.0025

There is no up-front fee. All these prices are reasonable, but the last one deserves particular scrutiny. If both buyer and seller have an Amazon Payments account, then you can receive a tiny payment at a realistic cost. You could even pay me a single cent, three-quarters of which I would get to keep.

Now look at PayPal’s fees. $0.30 fee plus a percentage for any transaction. Google Checkout? Complex, because Google wants to hook you into its AdWords advertising by giving free transactions up to a proportion of your AdWords spend, and because it is subsidizing the service to buy market share from PayPal. But the fees include $0.20 per transaction plus a percentage, which means you cannot do micropayments.

Amazon FPS is based on web services, so that developers can easily build it into their web applications.

FPS is interesting to me as a writer. It means I could self-publish and change a small amount per article – maybe just a few pennies. It is also interesting as a means of monetizing web services. A neat feature is that buyers can limit their risk by specifying both transaction limits and the total amount transferred over a period, for a particular recipient.

If Amazon FPS takes off, then Amazon becomes a major identify provider (because you will use your Amazon ID for payments to third-party sites) as well as becoming an Internet bank.

I think Amazon is a sufficiently well-trusted name that this could work. I should add, though, that nobody is sure of the significance of micropayments – we’ve just speculated that they might be a key enabler of (ugh) Business 2.0. See Wikipedia for a discussion and links. So far, it has been advertising rather than micropayments that has changed the game. But that was before Amazon FPS. What do you think?

PS – see Jeff Barr’s post for more information and early adopter examples.

PHP Zend Framework will go visual

I spoke to some of the guys at Zend on the launch of the Zend Framework, a class library for PHP. I wrote this up for The Register.

The Zend Framework is a non-visual library, but I asked whether it will handle visual controls in future. I was told that it will: Zend’s Zeev Suraski spoke about a forthcoming “Visual Component Model” along with “WYSIWYG tools” (though WYSIWYG is always a stretch with web applications).

Of course I was reminded of Delphi for PHP and its Visual Component Library. If Zend achieves its aim of making the Zend Framework something of a standard in the PHP community, that will be a blow for CodeGear’s product, unless somehow it could be re-worked to become a Zend Framework IDE. It seems to me that Zend’s framework has better chances than CodeGear’s. The documentation is incomparably better, and my early experiments suggest that the quality is good.

It is also interesting to see that the Zend Framework has built-in support for Google services.

Salesforce.com + Google + Adobe Flex and AIR = New Internet platform?

I spoke to Adam Gross, vice president of developer marketing at Salesforce.com, about the new Summer 07 release. This includes the first full release of Apex Code, a server-side programming language which lets you customize and extend Salesforce.com applications. Currently Apex Code is only available in the high-end Unlimited Edition.

Gross told me that Apex Code has acquired some interesting new capabilities since we last spoke about its preview release. This includes the ability to make outgoing web service calls, a capability which is particularly interesting because it enables mash-ups with third-party web applications that also expose a web services API. Salesforce.com is a big user of SOAP, by the way, in contrast to all the negative press that SOAP seems to get elsewhere. You can develop Apex Code in Eclipse, though debugging is still fairly painful.

The mash-up idea is compelling. One of the key challenges of hosted applications is integration with local applications. Things like complex Outlook connectors are common, along with the ability to export data as Excel or Word documents. That friction can be reduced by moving more of your data online. For example, Gross told me that developers have already devised ways to export Salesforce.com reports directly into Google’s Documents and Spreadsheets. From there, you could easily share it with colleagues. In fact, the same application could email the link to a list of recipients. That makes more sense than exporting to Excel, attaching it to an email in Outlook, and sending it out again. Note that Google and Salesforce.com announced a strategic alliance in June, but this focused on AdWords which is less interesting.

Another key Salesforce.com partner is Adobe. Gross tells me that he sees wide take-up for Flex and AIR among Salesforce.com developers. There is a Flex Toolkit which simplifies the development of Flex or AIR applications that call Salesforce.com APIs. “The take up of the Flex Toolkit has been breathtaking,” says Gross. “We are already seeing companies create offline applications written in AIR, even though that product is still in beta.” He also praises the productivity of Flex – apparently some developers use it for that reason alone.

The offline aspect of AIR is vital, as it addresses the most obvious weakness of the Salesforce.com platform. Google Gears could be used for this as well, though I got the impression that Gross sees more take-up for AIR at the moment. He says there will be further announcements on both at the Dreamforce conference in September.

The vast majority of Salesforce.com usage seems still to be CRM, though there is no inherent reason why the platform should not support ERP or other application types. Its strength is the vast amount of pre-built functionality. Concerns include the cost – especially if the company reserves key features like Apex Code for its high-end edition – and the risk of vendor lock-in. See here for a good overview of the Salesforce.com platform.

Adobe AIR security concerns

Adobe’s Paul Robertson has a thoughtful response to my complaint about AIR security. The point I made is that any AIR application has the same access to the file system as the user. This includes local SQLite databases as well as other documents. Robertson’s response:

In order for a user to access an AIR application, he or she must first choose to install the application, including going through a security dialog that will describe whether the application was signed with a security certificate. In this way, an AIR application is comparable to any other desktop application, such as one written in C++. Since any C++ application could theoretically include the SQLite library, installing an AIR application is no different from installing any C++ application in the sense that, by doing so, a user opens himself up to possible abuses and security risks.

The security risks of desktop apps are well-known, and that’s why users have learned to be cautious about installing them. A possible concern though is that Adobe wants to make installing AIR applications really easy. Here’s the description in the docs for seamless install:

The seamless install feature lets you provide a link in a web page that lets the user install an AIR application by simply clicking the link. If the AIR runtime is not installed, the user is given the option to install it. The seamless install feature also lets users install the AIR application without downloading the AIR file to their machine.

I’ve seen how much kids love playing Flash games on the Web. Some of these games would be a natural fit for AIR: play the game from a desktop shortcut, option to save your game locally, no browser baggage. What if a lot of these games turn into AIR apps? Suddenly, instead of online Flash games being relatively safe, they become relatively risky. If users become complacent about passing the AIR install dialog, then all the bad guy needs to do is to create a whizzy game that does a background search of your computer looking for online banking passwords.

The risks will be mitigated if Adobe restricts AIR to signed applications. That’s not the case with the beta:

A further point is that despite the scary dialog, AIR apps are actually tightly locked down from a developer perspective, with no access to native code such as the operating system API, scripts, or native dynamic libraries. While that’s good in one way, it’s arguably the worst of both worlds: not secure (because of full file system access), and not extensible either.

The appearance of the words “System Access: UNRESTRICTED” in the above dialog suggests that Adobe has or is planning a richer security model. If the default were no file I/O, or file I/O isolated to the source domain of the AIR application, that would help considerably. Add compulsory application signing and it would look better still.

I’ll add that I’m most impressed with Paul Robertson’s willingness to enter into this dialog. I wish other software vendors were equally responsive. AIR is in beta so there’s time to fix problems.

Technorati tags: , ,

 

Bringing paper and ebook together

There’s a buzz building about a session at the O’Reilly Tools of Change for Publishing Conference (which looks great, I wish I could have attended) from Manolis Kelaidis on his “blueBook”. Kelaidis is a designer at the Royal College of Art in London. His idea is to bring electronics to the book, rather than making books virtual. Here is the brief, from his presentation:

  • Design a book consisting of sheets of paper with printed buttons (hyperlinks), which when touched allow the user to access and control digital information.
  • Information accessed in this way could then be stored either locally (within the book) or remotely (PC, handheld devices, Web, other books).
  • The book should have the look-and-feel of a regular book, with flipping pages and conventional binding, while technology should be non-intrusive, portable and robust.
  • Manufacturing should be based on traditional bookbinding techniques minimizing complexity and costs.

Using conductive ink and embedded electronics, such a book can include multimedia (play music or video) and live links to web content or interactive discussions, perhaps in conjunction with a wireless-connected PC. Printed words become hyperlinks. The presentation is amazing and thought-provoking. See also Tim O’Reilly’s post on the subject and its comments.

Update: Presentation seems to have been removed; if it reappears I imagine it will do so here.

Technorati tags: , , ,

The version problem of today: browser compatibility

David Berlind reports on a case where 35% of developer time is spent on browser compatibility issues.

It’s a huge problem, though I’m cautious about attaching too much weight to a singe anecdotal report. Of course it’s nothing new. Browser compatibility issues are as old as the Web; it was getting better, until AJAX and a new focus on the web-as-platform meant greater stress on advanced browser features. For that matter, version issues are as old as computing. Yesterday, DLL Hell. Today, web browsers.

What’s the solution? All use the same browser? Not realistic. The browser developers could fix the incompatibilities? It’s happening to some degree, but even if Microsoft came out with a 100% FireFox-compatible IE8 tomorrow, there’s still a big legacy problem. My web site stats for this month:

IE7 24%

IE6 22%

IE5 4%

FireFox 2.x 22%

FireFox 1.x 3%

Opera 3.9%

Safari 2.3%

etc

Interesting that the FireFox folk seem to upgrade more quickly than those on IE – but even so, there are a lot of older browsers still in use. I suspect a lot of those IE6 users are corporates with conservative upgrade policies.

Another idea is to use AJAX libraries that hide the incompatibilities. That makes a lot of sense, though if you stress the libraries you might still find compatibility issues.

Finally, you can bypass the browser and use some other runtime, most likely Java or Flash. Unfortunately this doesn’t remove all version issues, but at least it means you are mainly dealing with one vendor’s evolving platform (Sun or Adobe). Silverlight could help as well, though its “cross-platform” only means Windows or Intel Mac at the moment, which is not broad enough.

This will be an important factor in the RIA (Rich Internet Application) wars.

Why doesn’t Adobe’s AIR dev guide mention SQLite?

I’ve been trying out the Adobe AIR (formerly Apollo) SDK.  It’s a confusing business. There are two varieties of AIR apps, Flex, or HTML. The HTML kind is essentially a browser app that runs in WebKit, as wrapped by the AIR runtime, instead of in the browser, while the Flex kind compiles Adobe’s MXML into a Flash SWF which again runs within AIR. The AIR SDK only supports HTML AIR apps, so for the full experience you also need the Flex 3 beta SDK.

But I digress. I have a long-standing interest in SQLite so one of the first things I looked for was how Adobe is using this in AIR. It is there: it’s mentioned in the press release, which emphasizes that AIR has some of that open source fairy dust:

Key elements of Adobe AIR are open source, including the WebKit HTML engine, the ActionScript™ Virtual Machine (Tamarin project) and SQLite local database functionality.

However, you wouldn’t know it from the docs. The word SQLite does not appear in either the Flex or the HTML developer guides. Here’s how it introduces the “local SQL databases” section:

Adobe Integrated Runtime (AIR) includes the capability of creating and working with local SQL databases. The runtime includes a SQL database engine with support for many standard SQL features.

The SQLite library itself appears to be compiled into the main AIR runtime library, Adobe AIR.dll.

Why do I mention this? A few reasons.

First, it stinks. Let me emphasize: Adobe is entirely within its rights in not crediting SQLite in its docs. The main author of SQLite, Dr D Richard Hipp, has disclaimed copyright. So it is not illegal, but it is discourteous. By contrast, here’s how the Google Gears docs introduce the database module:

The Database module provides browser-local relational data storage to your JavaScript web application. Google Gears uses the open source SQLite database system.

Second, it’s unhelpful. As a developer familiar with SQLite, I want to see an explanation of how Adobe’s build of SQLite differs from what I am used to – what is added, what if anything is taken away. I also need to know how easily I can access the same database from both AIR and from another application, using the standard SQLite library.

Third, I’m increasingly sceptical of Adobe’s claim that it is somehow “aligning” its API in AIR with that in Gears. Here’s what Michele Turner, Adobe’s VP of developer relations, told me:

Adobe, Google, Mozilla and others will be working to align the APIs used to access local database storage for offline applications, so this functionality will be consistent for developers both in the browser and via Apollo on the desktop.

Perhaps, but there’s really no sign of this in the current beta. The AIR database API and the Gears API are totally different. The full text search extension which is part of Gears seems to be missing in AIR. Another key difference is that unlike Gears, AIR makes no attempt to isolate databases based on the origin of the application. In AIR, a SQLite database may be anywhere in the file system, and it’s equally available to any AIR application – a big hole in the AIR sandbox.

This is all beta, of course, so it can change. I hope it does. Here’s my wish list:

  • Proper credit for SQLite in the docs.
  • Use the Gears code – full text search could be very useful – and deliver on the promise of aligning the API.
  • Failing that, set out exactly how AIR’s SQLite differs from the standard build.
Technorati tags: , , ,

Apple iPhone needs Google Gears

At its developer conference Apple announced that the forthcoming iPhone will support Web 2.0 applications. In this context, “Web 2.0” means at a minimum an embedded web browser (Safari) that runs JavaScript, but that’s no big deal; we expected nothing less. It’s at least a little more than that though:

Developers can create Web 2.0 applications which look and behave just like the applications built into iPhone, and which can seamlessly access iPhone’s services, including making a phone call, sending an email and displaying a location in Google Maps.

The emphasis is mine. This implies some sort of hole in the sandbox, but web apps on the iPhone needs more than just the ability to make phone calls if they are going to be useful. They need to work offline. In fact, a mobile phone (ironically) is one environment where offline web apps will be particularly useful. Nobody is always-on when travelling; it varies from mostly on (urban travel) to mostly off (trains, planes). As a regular train traveller, I find attempting to run web apps on a mobile utterly frustrating.

Fortunately Google has come up with an answer to this with its Gears initiative. Here’s how you write a good Gears app:

  1. Write your app to work offline.
  2. Add synchronization with the server that happens transparently when connected.

This is perfect for a mobile app. Running web apps rather than local apps also bypasses one of the main obstacles to mobile development: the need to get your binaries approved by a telecom provider before they can be installed.

Now, I have no idea whether Apple plans to include Google Gears, or an equivalent, in the iPhone (I’m not at WWDC). But I do think it is a great idea, for this or any mobile device. Combine it with Flash or Silverlight and we will wonder why we ever wanted more.