Neil's Place

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 )

May 29, 2004

4:03 PM Effective use of text replication tools

Compare this with this.

Mind boggling.

Comments ( 36 )

May 21, 2004

11:55 AM I'm tired of updating Mozilla

The Mozilla Foundation has finally managed to release an alpha version of a later release before the previous release. What does this mean to end users? It means confusion as people don't know what to download. What does this mean to people who want to file bugs? It means that unless you've been involved with the project for a while, you have no idea what you should be testing. What does it mean to extension authors? It means that your users will be using 25 different versions of Mozilla. Is there a way to test your extension or theme with all of these? No. Same goes with web sites actually. They've been known to break between versions. I know of one web application that only worked on Netscape Communicator 4.06 and no other version. Of course, if you're an extension author, you could try only building only to the stable API releases. Do you know which the most recent one is? (Hint: The version number begins with 1 and ends with .4) I doubt many people knew that, since this isn't indicated anywhere. But, of course, don't file bugs on it, since it's too old.

In the world of Mozilla, software that was released two months ago is considered old and outdated. For other software, two months is considered new. If your file a bug on a build that is a month old, you get chastised for using an old product and the bug often gets marked invalid. Sure, some bugs are invalid (or duplicates) since they were fixed recently; many others aren't.

I stopped upgrading Mozilla a long time ago, opting instead for an occasional update. I used Mozilla 1.4 up until a month after 1.6 was released. I could have updated to get a few features or security fixes, but I didn't. Why? I'm tired of updating software. And just for the Firefox crowd, I'm also using Firebird 0.7 (still the old name). Why don't I update? I'm tired of updating software. Will I update to 1.7 or 1.8 or Firefox 1.0? I don't know. Perhaps if it's the one or two days a year when I'm not tired of updating software, I will.

I used to get excited when a new version of something arrived. I don't any more, as the new version is more of the same. Ordinary users aren't going to update software either. (People who have at some point posted a message on Mozillazine.org aren't ordinary users in this sense). They're not going to update unless there's a compelling reason to do so. And that reason has to be more than my urge not to update since I'm tired of updating software.

This is also why people don't switch from IE. Popup blocking is the only real advantage that any end user would care about, and that advantage is going away with the next IE update. Mozilla has lots of great features like tabs and type ahead find and DOM inspectors, but the reality is that advantages don't sell a product. Actually, the disadvantages of the competitor are what makes people switch. An IE user might say "Look at all these popups and ads; this makes it very difficult to use; perhaps there's something better out there." Then, they might start using Mozilla (or Firefox). However, I can't imagine any ordinary user saying. "Look at how I have to select the Find command and then type in what I want to find on the page. I wish there was a way I could find text by pressing the slash key and then typing what I want and having it find the text incrementally." No user thinks this way, since most people aren't creative enough to think of the easier way. You have to show them the easier way. And make sure to show them, since ordinary users won't know which of the many Mozilla versions to try.

I'm sure there's some reason for having a new release or pseudo release every month. Perhaps it's for QA purposes so that people who aren't tired of updating software will always get the latest versions and test them. Maybe it's to get more feedback as people who aren't tired of updating software will always get the latest versions and provide feedback. Maybe it's for marketing purposes so that slashdot and other tech news sites post articles about the newest release. I'm not sure about the latter. Mozilla has so many releases that it hardly qualifies as news any more. Reporting about a Mozilla release is like reporting that the month ended.

In my opinion, if there is still a need for frequent releases, why not make the version numbering more sensible and release ten alphas and betas, then release a final build once a year or every nine months, like most other sofware? I'm sure someone will tell me that I'm all wrong, but, as an end user, I'm tired of updating software.

Comments ( 20 )

May 19, 2004

8:42 PM Investigating the XUL Template Builder

A few weeks ago, someone was asking some questions about XUL templates. In the process of answering, I had a revelation and finally understood completely how templates work. I also decided it was finally time to try to understand the template building code. This code is rather complicated, involving about 20 - 30 different data structures. I still don't understand what all of them are for, and I don't think it's possible that anyone ever will. I think the complexity comes from the code needing to be scalable for templates with lots of rules and conditions, and ensuring that only the necessary parts need to be reevaluated. Most templates only have a few consitions so I'm not convinced that the complexity is worth it. But then again, I wouldn't be able to tell for sure without ripping it all out and changing it, which I don't think I want to do.

I am, however, more sure that the template builder actually does work as it's supposed to. Any problems people have are caused by errors either in RDF or template syntax. Common problems include using the wrong RDF content type, using the different parts of the RDF triple incorrectly, or putting the wrong values or variables in the template itself.

Many people would agree that templates need some kind of debugging aid. This would involve two things. First, the simplest, would be to print template syntax errors on the Javascript console. This would catch some types of errors, but wouldn't be able to catch RDF usage errors. The second would be to have a way of enabling a log of what the template builder is doing, allowing one to determine where in the process things are going wrong. Debug builds of Mozilla already have such a feature, but the output is very cryptic and is intended more for someone who is debugging the template builder code itself. I like the idea of a template builder log, but I'm not sure where it would be stored. One possibility is to add an attribute 'debugtemplate' or somesuch and, if true, store a log in a string field in the template builder, accessible via script.

That said, I'm in the process of creating some patches for the template builder, one patch to print template syntax errors to the JS console, and another nice patch for the enhancement bug 86435.

Comments ( 38 )

May 18, 2004

XULPlanet Forums
The XULPlanet forums have also now returned.

May 14, 2004

6:54 PM XULPlanet has returned!

After a long time off, XULPlanet.com has returned in all of its glory!

Well, almost. There's a few things that don't work quite right yet. The forums aren't up yet for instance. These should be fixed soon.

In case you were wondering, the old host decided to suddenly go out of business. Fortunately, we were able to make a backup of all of the content and move it onto a new host. We got numerous requests to help and I'd like to thank everyone who offered. However, we decided to go with a dedicated machine for XULPlanet. With a dedicated server, this should eliminate bandwidth issues such as those we had in February. I might even be inclined to provide downloads of the XPCOM reference. Or, perhaps I should go back to some XUL templates work.

Comments ( 67 )

April 17, 2004

Bug 221619 - tree widget improvements checked in
Removes need to put ids on columns, improves drag/drop, and paves the way for tree editing

How to automate the organization of information
Is the solution to build a Google engine for your own system?

April 15, 2004

11:44 AM Huge XULPlanet.com Changes!

I haven't been posting much lately. That's because I've been busy working on lots of big changes and improvements on XULPlanet. Here are some highlights:

  • I have personally gone through every XUL tag, attribute and property and combed through the XBL bindings and C++ code that implement them, to ensure that the element reference is complete and accurate.
  • A new Scriptable Object Reference lists objects that are available to unprivileged JavaScript. This is a work in progress and is mostly generated from the XPCOM reference.
  • The element reference now lists inherited attributes and properties along the side.
  • The element reference lists the types of most attributes and properties as well as the return types of methods.
  • The element reference now lists some common style classes that can be applied to elements. These classes work in at least the Classic and Modern themes and should in others as well.
  • Two new sections about commands and command updaters have been added to the XUL tutorial.
  • The tutorial sections on focus, and broadcasters have been reworked.
  • Sidebars have been added to the reference pages for better navigation.
  • Comments are now available on the XPCOM reference and the new scriptable object reference.
  • An index of frozen interfaces has been added.
  • Components in the XPCOM reference now list all the methods of all the interfaces that they implement. For example, see the reference for the local file component.
  • Interfaces now provide a cross reference of other interfaces that refer to them, either via a property, a method argument or a return type. For an example, see the nsIRDFDataSource interface.
  • A bug where unscriptable properties were not marked as such in the XPCOM reference is fixed.
  • The main page has been reworked a bit to make it clearer as to what information is available.

Comments ( 19 )

April 12, 2004

A Manifesto for Collaborative Tools
Thoughts on where to go with applications in the future.

April 7, 2004

11:13 AM Software Economics Poll Results

After looking at the results and comments from the last poll, I'm not sure that people really understood the choices. The Linux choice was inspired by comments made by Microsoft employees and others, where Linux was being compared to communism on the basis of it being free and it promotes sharing of code. The second choice was centered about the idea that packaged software is generally not given to people to use, but licensed for use. In this case, people are not given any private property; it is instead owned by one collective body, in this case, the software developer.

Both comparisons are actually stretching definitions quite a bit. By carefully selecting parts of the free/open source model, or parts of the commercial software model, we can suggest that either is communism. In fact, everything is communism if you really wanted to find a similarity. One could just as easily say that they worked under communism since, at work, one doesn't own anything (their desk, their pens, their other tools,...) and everyone works for the common good of the company.

The point is that free/open source isn't communism. It's a licensing model for distributed software.

By the way when I read Steve Ballmer's line "Linux sort of springs organically from the earth," I wondered if that means that Windows doesn't and is therefore unnatural. See, I can easily stretch things to fit my own agenda.

Comments ( 7 )

April 5, 2004

Mozilla and the potential for interaction
Discusses XUL applications

April 2, 2004

MozNGW - Firefox-based Cross Platform Client for GroupWise
Always nice to see what great things those people in the Mozilla newsgroups were working on.

101 Things Mozilla can do - Korean Edition
Someone -- not sure who -- has written a Korean version.

April 1, 2004

11:52 AM Software Economics Poll

Which of the following is more like communism?

The way Linux is free and encourages sharing of code.
The way Microsoft licensing doesn't allow one to own software they purchase.

Results

Comments ( 18 )