Archive for Tag ‘AJAX‘

Ajax and PHP: Building Modern Web Applications, 2nd Ed. (Review)

Photo by Mike Johnston -

Just found this long overdue review of Ajax and PHP: Building Modern Web Applications – Second Edition sitting in a drafts folder – looks like I never published it. (Full disclosure – Packt sent me a review copy).

This is the successor to the wildly popular Ajax and PHP: Building Responsive Web Applications, which came out back in 2005. The authors of this edition are Bogdan Brinzarea-Iamandi, Christian Darie, and Audra Hendrix. (Brinzarea-Iamandi was also one of the authors of the first edition).

Read more…

Flash, Flex, Open Source?

(Via Alex Russell’s blog I came across Mike Shaver’s “Being Open About Being Closed,” which is an excellent discussion of Adobe’s positioning of the Flash player and Flex in Top 10 Adobe Flex Misconceptions.

As Mike points out, the fact that the Tamarin is an open source project, and that various people in the community have over time deciphered the SWF file format, does not make Flash anything other than a proprietary product.

In many of the presentations I give about rich Internet applications, I use a slide which looks something like this:

Ajax and RIA Frameworks

It’s intended to communicate two key concepts:

  1. There are a huge number of mature, professional open source toolkits and frameworks for building RIAs.
  2. There is strong pressure on proprietary, closed, commercial toolkits and frameworks in this space to open up, at least in terms of source code visibility and modifiability, if not in terms of redistribution.

Read more…

Mozilla Prism vs Adobe AIR

A few weeks back, Mozilla introduced into Mozilla Labs an application called Prism, which essentially rebrands the old Mozilla WebRunner as a desktop container for web applications.

As the following image (from the Mozilla Labs Prism page) illustrates, the idea is that Prism splits apart the light coming from the cloud into separate apps. (I know, light doesn’t really come from clouds, but you get the point):

Mozilla Prism

In essence, what Prism does is simply to create a single-url loading instance of firefox without all the browser chrome – so that the application gets an icon of its own, has an entry in the Start menu, is accessible via alt-tab application switching, and the like.

Its an interesting direction for WebRunner, and a good step forward for some specific use cases along the desktop application / web application continuum. Take an app which has offline sync via GoogleGears, run it inside Prism, and you’ve got a desktop application which syncs to the cloud but can also be accessed from other non-prism browsers when you are away from your machine.

(For more info on Prism, see Read/Write Web, Geeks are Sexy, Alex Faaborg’s discussion of its UI, feature suggestions on Prism Brainstorming, Mark Finkle’s discussion of changes from the existing WebRunner, and the forums at Mozilla Labs).

In the process of explaining what Mozilla Labs is up to, the (anonymous?) Mozilla Labs blog entry author said:

Unlike Adobe AIR and Microsoft Silverlight, we’re not building a proprietary platform to replace the web. We think the web is a powerful and open platform for this sort of innovation, so our goal is to identify and facilitate the development of enhancements that bring the advantages of desktop apps to the web platform.

This got the attention of Adobe’s Mike Chambers, who first posted in the comments on the Mozilla announcement, taking issue with the idea that Prism is fundamentally different from AIR. After all, he noted, AIR also runs applications developed on web standards and runs them in a desktop container with some additional desktop-like features:

So, is the main difference between something like Prism and Adobe AIR, that Adobe AIR is being primarily developed by a company (Adobe), and that Prism is being developed by Mozilla?

Later, he expanded on this issue in a blog post: “Mozilla Prism and the Disingenuous Web,” repeating the notion that AIR and Prism seem quite similar in goal and usage, and complaining:

Come on Mozilla, the web development community deserves better than that. Adobe has been an active supporter of the web development community, of open source, of web standards and of Mozilla (donating the ActionScript virtual machine from the Flash Player (Tamarin)). Adobe AIR leverages a number of open source technologies (including Tamarin, SQLite and WebKit) and we actively participate in both of those development communities, and we have been open with our development process for some time.

So what does differentiate Prism from AIR? (See also “AIR, and a Prism” at Technological Musings for another comparison)

Mozilla Prism, for now, is Windows only; Adobe AIR, for now, is Windows and Mac OS only. Both have promised Linux support in the near future.

As several readers pointed out in comments threads on both Mike Chambers post and the one at Mozilla labs, the Mozilla foundation has a better track record at porting applications to Linux than Adobe does. (Flash Player 9 notwithstanding).

(Note that Linux and MacOS X installers are already listed in the Mozilla Labs Wiki – I’m trying one out in Linux now, and it seems to work just fine).

Adobe AIR is based on WebKit (also used in Safari, originally from the Konqueror browser in KDE) for rendering HTML; Mozilla Prism is based on Firefox. AIR can handle flash content, pdf content, or Ajax (HTML/JavaScript) content; Mozilla Prism can as well, though it relies on the same plugins the Firefox browser does to support these other content types.

One significant difference is that Adobe AIR applications are created by developers, who do some “extra work” to create and package their application as an AIR application, whereas Mozilla Prism applications are created by end users, who take an existing web application and tell Prism to run it.

Finally, and perhaps most importantly, while AIR “leverages a number of open source technologies (including Tamarin, SQLite and WebKit) and [Adobe] actively participate in both of those development communities, and [Adobe] have been open with our development process for some time” (quotes from Mike Chambers’ blog post), Mozilla Prism is itself an Open Source project (Mozilla Public License).

What this means it that if the development community is unhappy with the directions in which Prism is going, they can fork, and take the existing code base in different directions.

Or, working in collaboration with the existing project, they can extend that code base, taking it to other platforms or contexts.

In other words, I’d say the difference isn’t, to answer Mike Chamber’s question, that one is developed by a company (Adobe) while the other is developed by a foundation (Mozilla), but that one consumes and participates in open source (Adobe AIR), while the other is itself fully open source (Mozilla Prism).

That’s not to say Adobe has not been a good open source citizen or contributed appropriately to WebKit, SQLite, and others – I believe they have contributed substantially to a number of projects. It’s just that an implementation which is fully open is preferable, for many folks, to one which is mostly open except for where it isn’t.

I’m surprised that is still so hard to understand.

Webinar Presentation – Rich Internet Applications

A few weeks back, on Oct. 30th, my colleague Hugo Schotman and I presented an Optaros Webinar on Rich Internet Applications.

Unfortunately we weren’t able to record the audio of the whole presentation, but the slides themselves are now available on the Optaros site: “Rich Internet Applications: The What, Why, When, and How” (pdf, 3.37 MB).

It’s under a creative commons license.

Douglas Crockford on Google Gears and the Mashup Problem

Douglas Crockford is always an interesting speaker. At AjaxWorld last week he gave a talk about the good parts (there are a few) and the bad parts (there are many) of the current JavaScript standard. (That talk was similar to this Yahoo! Video of the Keynote from the 2006 Konfabulator Developer Day).

My favorite pearl of wisdom from that talk: The best thing about JavaScript is that there have been no new design mistakes since 1999 (when spec was last updated).

In addition to being highly knowledgeable (Brendan Eich called him the Yoda of Lambda Programming and JavaScript, he “discovered” JSON) he’s also entertaining, funny, and thought provoking.

In this video, after about 10-12 minutes of broad background on why the fundamental nature of security on the web is broken, he dives into the specific problem of mashups, the same origin policy in JavaScript, the global namespace and shared DOM, and suggests a method for using Google Gears to craft a solution.