Thursday, March 06, 2008
Ben Longoria: Inside RIA: Mozilla Series Part 3
Heads up. The last part to the series Iâve written, entitled âWhy Mozilla Deserves Our Attentionâ, is up on InsideRIA now.
Heads up. The last part to the series Iâve written, entitled âWhy Mozilla Deserves Our Attentionâ, is up on InsideRIA now.
Just a heads up, Iâm writing a series of articles dealing with Mozilla and RIAs over on InsideRIA entitled âWhy Mozilla Deserves Our Attentionâ.
Go check it out!
[Update]âŠand theyâre gone, Matt in the comments was right. Didnât quite have their game together.
Caught this news this morning. A service called Qtrax that allows unlimited, permanently free music downloads that apparently has the support of all the major record labels.
What I see as interesting is the client technology they are using and requiring for use. ReadWriteWeb mentions that itâs built on Songbird.
On the Qtrax site as well, they highlight in multiple spots itâs âA Mozilla Web Browserâ, and a âMozilla Based Browserâ.
This is cool as itâs another use of Mozilla technology. Too bad it has so much press and is associating together Songbird, Mozilla, DRM, and Windows-only support not even including iPods. This is in direct opposition of some of the strongest aspects of Mozilla technology.
![]()
I have been working on an authoring tool code-named TabPress. This is being built on XULRunner and is meant to be a relatively simple tool to create small learning objects delivered in a tab container.
I am experimenting with a different way of editing structured/complex content utilizing the editor and overloaded images. So far itâs working decently, but I need to conduct some more usability tests to flesh things out further.
Some quick points about the app:
Itâs in an alpha state without any user documentation at the moment. Feel free to play around with it though and see whats discoverable. Just wanted to get this early version out there and make sure it doesnât end up as dark matter.
Updated!
Now at 0.3, there has been some bug fixes, enhancements with visual editing capabilities and support for themes when publishing.
Iâm continuing with my XUL Dark Matter series, which I started with TabPress, a visual editor for simple tabbed content. (Which is at 0.3 now and has theme support)
Now Iâll be looking at Phloneme. Phloneme is a desktop authoring tool as well. It is currently configured to work hand-in-hand with Vocab Collab. Unlike the other XUL projects that Iâve done, Phloneme and Vocab Collab are personal projects that Iâve done in my scant personal free time. I wanted to discipline myself in sticking with something and finishing it through, and this combo was the guinea pig!
(Now, evangelizing a project is a whole different beast and Iâm not really pushing that real hard right now with Phloneme and Vocab Collab, but if you know someone interested in the subject domain, pass it along!)
So the whole point of Phloneme (Combination of flow and phoneme), is to write rhymes. It allows you to create, edit, save and publish rhymes directly to Vocab Collab.
The interesting part of the whole thing comes from the ability for the author to easily create structured content, and then push that structure online in the form of a special microformat Iâve created just for rhymes. The structure they add are user-defined rhymes.
The authoring tool allows the user to designate rhyming words in a highly visual way. This is all edited and kept track of through microformat style overloaded class attributes. The document format is XHTML. The editing is taken care of via the awesome Mozilla Midas Spec.
So when the user publishes online, you get all the structured rhymes inserted into the database. The visual display of the rhyme also matches that in the authoring tool, since they can use pretty much the same CSS and everything.
One of the cool advantages of the structured content can be seen in the search feature in Phloneme. You can search for rhyming words for a particular word, and it will return live results from Vocab Collab.
If the user simply wants to copy and paste some rhymes from a search result into his own document, an automatic attribution and link will be created, so once published it will link to the work it derived from. That brings up another feature that Iâve added, which is the ability to select a Creative Commons license when publishing.
This was just one of those personal project ideas that I thought would be cool. Donât really know what to do with it now. I sure did learn a lot about XULRunner, XUL, and the Midas spec while working on it though.
If you would like to play around with Phloneme, go ahead and have fun. You donât need a Vocab Collab account unless you plan on publishing. Bust a rhyme!
Getting started tutorial on Phloneme. (With some screenshots)
Iâm not done with the XUL Dark Matter series, still have a couple to go yet!
Iâve already received some encouraging feedback to my latest Mozpad post (Iâll be posting a followup soon). Further positive news is that Iâve made good, in a small way at least, on my pledge to devote some time to the Mozpad documentation project.
Having labored to get Prism to build using the Mozilla build system, I was struck by the lack of documentation on this topic for XULRunner developers in general. Thereâs a blog post by Songbirdâs Ben Turner and thereâs Dave Townsendâs McCoy project, which is a great practical example of how to do it. But nothing comprehensive on the documentation site.
So I decided to turn my original âCreating Custom Firefox Extensions with the Mozilla Build Systemâ article into a franchise with âCreating XULRunner Apps with the Mozilla Build Systemâ. The article has yet to be reviewed, and to quote Douglas Adams, âit has many omissions and contains much that is apocryphal, or at least wildly inaccurate.â (Unfortunately I didnât think to adorn it with a prominent âDonât Panicâ label, although this would certainly have been apt.)
Stay tuned for new additions to the series, including âTraditional Chinese Calligraphy with the Mozilla Build Systemâ, âMastering the Mental Game of Golf with the Mozilla Build Systemâ and the much-anticipated â12 Days to a Flatter Stomach with the Mozilla Build Systemâ.
Iâve already received some encouraging feedback to my latest Mozpad post (Iâll be posting a followup soon). Further encouraging news is that Iâve made good, in a small way at least, on my pledge to devote some time to the Mozpad documentation project.
Having labored to get Prism to build using the Mozilla build system, I was struck by the lack of documentation on this topic for XULRunner developers in general. Thereâs a blog post by Songbirdâs Ben Turner and thereâs Dave Townsendâs McCoy project, which is a great practical example of how to do it. But nothing comprehensive on the document site.
So I decided to turn my original âCreating Custom Firefox Extensions with the Mozilla Build Systemâ article into a franchise with âCreating XULRunner Apps with the Mozilla Build Systemâ. The article has yet to be reviewed, and to quote Douglas Adams, âit has many omissions and contains much that is apocryphal, or at least wildly inaccurate.â (Unfortunately I didnât think to adorn it with a prominent âDonât Panicâ label, although this would certainly have been apt.)
Stay tuned for new additions to the series, including âTraditional Chinese Calligraphy with the Mozilla Build Systemâ, âMastering the Mental Game of Golf with the Mozilla Build Systemâ and the much-anticipated â12 Days to a Flatter Stomach with the Mozilla Build Systemâ.
Mike Shaver asked me about Mozpad the other day, and a few hours later Brian King posed the same question on his blog. Clearly itâs high time to take a step back and evaluate where we are and where weâre going.
The short answer is that not much has happened on the Mozpad front recently. To some degree this is just a case of things taking time. There is definitely ongoing interest in a XULRunner IDE, and ActiveState has brought this a whole whack closer to reality with their Open Komodo initiative. But the initial excitement and momentum has largely dissipated.
I was musing months ago that the group lacked a clear raison dâĂȘtre. The problem isnât so much a dearth of things to do, but the commitment and time investment that would be necessary to do them right. This isnât just a case of setting up some discussion forums for technical support (Mozilla already has them) or an IRC chat room (Mozilla has several) or a great, user-editable documentation site (cause, well, you get the point). Turning XULRunner into a real product with branding, packaging, development tools and marketing is perhaps too big a task for a volunteer organization without any full-time participants. Once folks realized how hard it was going to be to achieve anything substantive without jeopardizing their other projects (including the ones that pay the rent), their initial enthusiasm cooled. I canât claim to be an exception in this regard.
There are other issues as well. First of all, where are all those XULRunner projects weâve heard so much about? When we started Mozpad, I was expecting a lot of that XUL dark matter to come out of hiding and express interest in what we were up to. This simply didnât happen. We got a lot of love from Mozilla die hards who find the idea of an open, multiplatform application development framework appealing, but virtually none from companies that are actually using the technology. It has to be said that Robert OâCallahanâs speculation about âhundreds or even thousandsâ of stealth XUL projects was based on rather scant evidence. Or perhaps the main interest is in developing intranet applications using a web server and XUL, rather than desktop apps on top of XULRunner. Or, equally plausibly, people are using XULRunner but werenât aware of Mozpad or were waiting to see concrete results before making their interest known.
Moreover, I have to admit that Iâve cooled somewhat on the idea of XULRunner as a general purpose framework because Iâm so excited about the potential of Prism. Since I believe rich web apps are the future, Iâd rather spend whatever time I have for Mozilla platform work improving Prism rather than documenting XULRunner APIs and the like. And whereas Mozilla has stated unequivocally that a standalone XULRunner product is not a priority, Prism clearly is. I proposed Mozpad to a large degree because I felt that Mozilla had dropped the ball on the whole âfuture of appsâ thing. Now Iâve got crow casserole heating in the oven as they pick up the ball and sprint for the goal line. (And with that let me pledge publicly: no more ball metaphors in 2007.)
(To be absolutely clear: none of this should be construed in any way as diminishing the heroic work that has been put into making XULRunner a viable platform and getting Firefox to run on top of libxul. Apart from anything else, Prism is a natural consequence of this extraordinary vision, which has been gestating for over three years.)
All this to say that a lot has changed since May, and Iâm not sure that we need a Mozpad to further our goal of helping Mozilla to play a defining role in the future of applications. ActiveState has expressed interest in helping out with the development of a XULRunner IDE on top of Open Komodo. All the usual mechanisms are available for those who want to contribute ideas, bug reports and code to the Mozilla platform. Personally Iâve been spending a fair amount of time working on Prism. From my perspective, things are going great despite Mozpadâs lackluster second act.
It goes without saying that Iâm extremely keen to hear what others have to say about this. While youâre tucking into your Christmas goose, please take a minute to give this some thought. Nothing would make me happier than an impassioned rant or two about why we desperately need Mozpad after all.
I'm working on a simple extension for Firefox that would notify the user when an SSL/TLS site's certificate changes. This way an informed user could decide if the certificate change was valid / expected and opt out of an ssl session in questionable circumstances. Is there any interest in such an extension? My friend ask me whether there was a way to do it so I'm working on proof of concept code, I will release it as open source if anyone cares.
Some random snippets/observatiosnâŠ
Googleâs new Android mobile platform chose Java for itâs application development language. But whatâs lacking in developing a Java GUI app? Oh, but of course, something that Mozilla and Adobe have implemented already as part of their platforms, an XML based user interface language!
I made up the name of course, since I couldnât find a name for it: AXUL.
The format looks a little like SWIXML without the Swing.
This reinforces the whole strategy of using a markup language to layout interfaces and custom widgets, taking advantage of a nice box layout mechanism. But one thing I donât see is the ability to create new AXUL components by simply composing other AXUL components. (without a hosting Java class)
But why didnât they choose HTML 5? Ha.
Hi folks !
A generous artist, Marianne Thoyer, has made some work about the Mozpad identity. She works on some Mozpad logo attempts. Here some drafts:
And my favorite one:
After seeing these pictures, I thought the 'cell' ones could fit for a XulRunner logo, so, just for fun, I've asked her to change the label mozpad to xulrunner:
Before going forward, she needs to know the community feeling. Feel free to comment :)
Just read the NYTimes write-up on Prism.
Interesting comments by Mark Finkle:
if the Web canât do it, Prism canât do it
and
Weâre not asking Web apps to change at all.
So thats the big thing really. Itâs an incremental nicety to classic web browsing. This is really not in competition to Adobe AIR at all.
Itâs more in line with something like Mac OS Xâs new Safari Web Clips. Yank an app out of the browser and run it by itself.
As a real-world example, imagine Google Analytics without browser chrome, and then look at the Google Analytics AIR app. Designing an experience more with the user in mind, than browser limitations. And this is using Open Internet protocols and APIs. Maybe thatâs not as good as the Open Web though, not sure?
Wow, a lot of writing and discussion over Prism lately! And to think, all from a new name, logo, and a Labs post. (And I guess some weight from being an officially sanctioned experiment too.)
Of course, Iâll follow suit. Partly because I am interested in the technology, and partly because I am interested in how this relates to Adobe AIR, and Mozillaâs own technologies, like XUL. How is it integrated? How can some important features and functionality be integrated with HTML/JavaScript only?
I thought I would start by comparing the installation story with Adobe AIR. A lot has been made of how easy it is (or will be?) to make a web app into a desktop app. (A simple menu command from Firefox, and voila!) But thatâs not the whole story. How does Prism get installed in the first place?
With Adobe AIR (which runs web apps as well on the desktop, built with HTML/CSS and JavaScript), there is a really cool installation story. You can create a special badge that a user can install your app (with permission of course) from a web page. The cool part though, is if they donât have the Adobe AIR runtime, it will be installed auto-magically (with permission of course) along with your app! No need to direct them to a different website, instruct them to download something, then come back and get your app.
So how will Prism get installed? Sure, after itâs installed itâs somewhat smooth sailing. But getting software installed is a hurdle which should not be ignored. Adobe has excellent experience with this. Heck, installs of Firefox are dwarfed by Flash Player. So whatâs Prismâs installation story?
I was waiting for this to happen. Didnât think it would happen this soon though.
The very first Prism app built with Flex.
Speaks to the pervasiveness of the Flash Player, since in the first batch of Prism apps out of the gate, one is built with Flex. It also speaks to the flexibility and strength of the Prism idea, especially since itâs already wooing prime Adobe AIR candidates: Flex developers.
A Flex app as a Prism app?! This doesnât fall in lock step with the shining goal of the âopen webâ as defined by some folks.
But, man wouldnât that be cool if Mozilla had their own user interface markup language? Oh, wait they do, XUL. Does something like this, and that Mozilla doesnât even mention XUL with Prism mean that itâs pretty much lost the fight to Flex/MXML?
Daniel has posted his unpleasant surprise about eBay using Adobe AIR for their internet desktop application instead of XULRunner.
Here are two lists attempting to document the application landscapes with each technology:
Mozpadâs Mozilla App List
AIRApps Adobe AIR App List