Neil's Place

July 11, 2004

11:14 PM Updated ReoPath Expression Language Release

Since someone brought it up, I thought I'd release a new build of ReoPath, which is a Mozilla component which adds an XPath-like expression language for RDF. ReoPath consists of two parts, an expression language, which you can use to evaluate and retrieve results from RDF, and a template language, which you can use to bind RDF data to XUL or XML nodes, as a databinding system. Here is an simplified example which displays a list of the titles of things.

<listbox id="theList" rp:repeaton="%*[dc:creator='Neil']">
  <listitem rp:assignattr="label" rp:assign="dc:title"/>

This version has a number of new features. It is much more efficient, much less crashy, and it auto updates when the RDF changes. And more interesting, it also supports templates using XML sources and XPath as the expression language. In addition, it's also possible to use custom expression languages.

It's also now available for both Linux and Windows. Mozilla 1.7 or Firefox 0.9 are needed.

Install: Linux | Windows

Once installed, and you've restarted your browser, you can go to the URLs below to try the samples. The first displays a list of actors and you can select one to see a bit of information about them. The second is a very simple RSS 2.0 viewer implemented in less than 1K.


There's some documentation on the project page. If someone is interested, I can write some more.

Comments ( 25 )

July 3, 2004

12:39 PM Ideas with nowhere to go

People have asked recently if any of my ideas have had any kind of influence over Mozilla developers. Probably not, but it's hard to tell.

I've noticed that there tends to be three types of developers in the Mozilla community. At the top you have Mozilla Foundation employees and anyone that used to work at Netscape. In the middle are the people that don't fit that group but are key developers. Finally, you have all the extension and XUL developers. I find that communication between two adjacent tiers is fairly decent, but communication between the upper and lower tiers is poor. This is a big generalization, of course; some people don't fit that model.

The more interesting question is that the various people building XUL applications feel that they don't have any way of expressing their opinions either. They ask me if I have any contact into Mozilla rather than than just asking Mozilla folks directly. Mozilla doesn't have any clear way for these voices to be heard. The best idea Mozilla folks have come up with is Bugzilla voting and mailing lists apparently about screen savers. Are there other options? Probably. Does any one know what they are? Unlikely.

I have all kinds of grand visions for what I'd like to do. I've posted many of them or hints about them over the last year or so. Remote XUL, improved templates, a canvas tag, and so forth. In some cases, I started an implementation only to be blocked by some non-implementation related issue. I actually started implementing something so that chrome URLs could be mapped onto http URLs but I stopped after it seemed unlikely that it would ever make it into Mozilla. I started working on some features for XUL templates, but Axel said that "creating template enhancements [is probably not] the right thing to do at the moment", so I didn't continue. I did get to the point where I posted a patch about the canvas tag, but then other developers seemed to take over and the patch disappeared into the Pit of Forgotten Patches. When Alex Vincent created a serverpost tag, no one seemed to want to accept it so it never got any where.

Anyway, various factors have made it very discouraging to try to improve Mozilla in some way, even though I think I'm able to.

Comments ( 17 )

July 2, 2004

NextIs - A XUL front end for handling audio from a server database
As posted in the XULPlanet forums

June 25, 2004

12:08 PM Updated XUL Tutorial Intro

I just rewrote portions of the first few sections of the XUL Tutorial (sections 1.1 to 1.4). Hopefully, this will make the chrome system clearer. Some people were having problems understanding how the chrome URL relates to files. In addition, I've added a bit more detail about the difference between chrome and non-chrome content, as well as a bit about XUL documents in general.

Comments ( 9 )

June 22, 2004

10:27 PM Some UI for a Remote XUL whitelist

Some recent remote XUL discussion (here and here) inspired me to create some dialogs for a whitelisting UI for web sites.

When a site wants extra permission:

Clicking the OK button does not allow the application to do privileged operations. Instead, the user must click the Allow button and then click Add in the resulting whitelist dialog, as shown here:

The idea is that the user has to click a series of buttons before the site can do anything, yet isn't particularly tedious. In my opinion, the icons, which are just the site icons, make the dialog look nicer and, in some cases, allows sites to be distinguished better.

Comments ( 27 )

June 19, 2004

1:04 AM Server Push and Server Sockets

Someone was asking about server sockets, so I wrote some info about how to use them in Mozilla. In addition, this document describes how to use the 'multipart/x-mixed-replace' content type with XMLHttpRequest. In case you're wondering, both features may be used as a form of sending data from a server to a browser client.

Comments ( 38 )

June 16, 2004

Interview with Scott Collins
Talks about Mozilla/Netscape history and decisions made.

June 9, 2004

Why JavaScript isn't the worst invention ever
Good document about HTML, Javascript and web applications.

June 7, 2004

11:15 PM Web Applications Workshop Minutes

Minutes of the recent W3C Workshop on Web Applications and Compound Documents (Part 1 and Part 2). Interesting read.

Comments ( 9 )

June 6, 2004

3:13 PM What is the WHAT?

I think I've finally understood what the new WHAT group is trying to accomplish. At first, I thought it was intended to be a group for defining ways to create sophisticated applications but using HTML. In effect, what one might do with XUL, or what Macromedia wants to do with Flash, or what many at the recent Web Applications Workshop want to do overall with other languages. That is, build standalone applications separate of browsers that communicate to servers. I was a bit worried that WHAT was essentially trying to do the same thing but use HTML instead, which wouldn't be a good idea. This, I think, is fortunately not the case.

Instead, WHAT is just trying to build a few additional features onto HTML, CSS and the DOM to allow more sophisticated interaction, perhaps what XHTML really should be. Specifically, the goal is to allow better interfaces for web pages and not to build applications like image editors or web browsers. This will certainly be simpler for web developers and is a much better transition. I personally would like to see HTML include much more document oriented features, and even XHTML 2.0 doesn't provide much of this.

The folks in the standalone web applications camp that prefer using XForms and SVG and the like seem to want to build an entire platform. That's fine, but that is rather a lot of work, and may not have a lot of return value considering that there are lots of platforms already. The biggest disadvantage is that they are starting fresh without much of an existing base to build on. Sure, they have XHTML and SVG and the like, but these are fairly new, don't have a lot of implementations to 'harden' them and are hardly the right languages to form the basis of an application. For instance, I don't know many popular Windows or Mac applications (or those of other platforms) that actually have any vector graphics in them. XForms may be sophisticated, but unfortunately a form is only one style of UI, one which doesn't necessarily fit all of the web applications that the advocates want people to create with it. It fits well when the UI is a set of fields to fill out (which is why it's called a form, since it mirrors the paper forms you need to fill out in order to communicate with the government.) Very few applications outside of web pages use this UI paradigm however. For this, an event model is generally more appropriate, since the user interacts with the UI in a fairly random fashion. Click a button here, choose a menu item there, that sort of thing. Which is why I think server side events are a good thing. In fact, I had started an implementation of XUP a while ago; I wrote everything except the part that required SOAP.

I was also wondering how all of this fit into Mozilla's plans described at the recent developer day. In fact, it does. Mozilla as a platform has the advantage that it's not starting fresh -- I doubt they want to go through that again -- it already has a base which implements much of what is necessary. For instance, Mozilla already implements much of the features listed in the requirements section of the WHAT's Web Applications work. As a platform, Mozilla succeeds since it is actually implemented and has much of the needs of a platform already in place. The WHAT's new features will be a benefit to Mozilla as a web browser and as a platform. And, atcually, due to XUL's design and implementation, don't conflict much at all.

One of the interesting aspects about XUL is that there is very little native code in its implementation. All of the box layout code could be considered part of CSS, since these layout types can be used outside of XUL as well. In fact, this flexible box model is already being worked on as part of CSS. The only code of any considerable size specific to XUL is the template builder and the tree widget, as well as some smaller features such as overlays and listbox handling. The template builder and overlays are perhaps application specific while the tree and listbox code could be adapted in a compatible manner to be useful outisde of XUL.

The WHAT is specifically not trying to define any eleborate UI widgets such as toolbars or progress meters and so on. In fact, those would be better defined in libraries of XBL, much as XUL widgets are currently. I think the eventual goal is to make as much as possible be implementable in CSS or XBL such that HTML, XUL and other languages, even XForms, could build upon them. In addition DOM APIs to do drag and drop, server side events and popups would be available to use. With all of these available in the base browsers, it might be possible for someone to implement XUL in another browser such as Opera, simply by porting the XBL to that browser. OK, this isn't really the goal, but it would be a good indicator that the base web application features were of sufficent capability.

Comments ( 9 )

June 2, 2004

11:18 PM Some Web Application thoughts

Here are a number of thoughts on web applications, inspired from reading the recent discussions of the W3C Workshop on Web Applications.

  • The people who will be making the user interfaces for web applications in the future will be the same people who currently make the user interfaces for web sites today.
  • The people who make the user interfaces for web sites today are not very technical and frequently have non-technical backgrounds. The people who do have technical programmer-type knowledge are confined to writing server-side code.
  • Most of the programmers who work on a web site are young (20-35), the younger of which have no experience working on software that isn't for a web site. Usablity and accessibilty are generally poorer on web sites and will continue to be so as less of the required expertise to improve usablity and accessibilty can be transfered to new developers from experienced developers, since such experience doesn't exist.
  • The technical department (engineering group as it's often called) working on the server side code tends to prefer to leave the user interface of a web site (the HTML and CSS) to the other group (the web designers) as these tasks do not require programming skill. In the future world of web applications, the 'engineering group' will likely do the same.
  • No existing web designer currently nor ever will understand any technology that begins with the letter X. Thus, if the people who will be making web application UI (the web designers) don't understand these technologies, those technologies will have a hard time getting anywhere.
  • Technologies that are seeking a market are very likely to fail. Technologies that have a market seeking it are very likely to succeed. The important market is always the end user and never those making the implementations or the tools. New technologies or specifications with few to no implementations are of the former category. The latter tends to have less well-defined specifications, is poorly implemented or is less powerful, yet since there is demand for it, is actually used. Consider HTML, or email, both of which just appeared and then defined in more detail over time.
  • Developers have a tendency to believe that an application that requires communication between a client desktop machine and a server is best run within a browser, leading to applications that require a browser on a specific platform to operate, despite that development costs might be lower and the application would have a better user interface if it were written directly using the platform toolkit.

So what will generally happen in the future is that client-server applications will be run in a browser and they will be just as awful to use as they are today.

Perhaps I'll have more thoughts later.

Comments ( 11 )