Neil's Place

October 2, 2003

2:07 PM Election Day

There's an election today. It was called exactly one month ago. That's thirty days. It wasn't delayed at all. Every single poll location uses the same high-tech equipment where one writes a mark on a piece of paper and puts it in a box. And as far as I know, no celebrities are running. Where I live, I could vote for someone who used to work at the same place I did, or someone who looks like Jerry Springer. There are other people too but they can only be distinguished by their opinions on real politcal issues which makes them less interesting.

Comments ( 6 )

October 1, 2003

12:46 PM XUL Template Building

There's been some discussion over the XUL template building process in various newsgroup threads. I've added some additional information about builders in the template section of the tutorial. A brief overview here:

When you have an element with a 'datasources' attribute, it acquires both a database and a builder object, responsible for holding the RDF datasources and constructing the content with a template respectively. The <template> tag is just a placeholder for the content to be generated. It has style 'display: none'. If you change this style, the template will appear in the document as well.

One trick many people don't know about is to move the template outside the element like this:

<template id="btem">
  <button uri="rdf:*"
          label="rdf:http://home.netscape.com/NC-rdf#Name"/>
</template>
<vbox datasources="rdf:bookmarks"
      ref="NC:BookmarksRoot" template="btem"/>

There are two types of builders, the content builder and the tree builder. The latter may only be used with trees, the former may be used with any kind of content, including trees. The default is the content builder. You can select the tree builder using flags="dont-build-content".

The content builder generates the content by cloning the DOM nodes in the template and inserting them into the document at the necessary position. The tree builder does not do this and gets the labels of the tree cells directly from the RDF datasource when necessary. For this reason, the tree builder is more efficient for trees with hundreds or thousands of rows. However, you can't use functions that deal with DOM elements such as those in tree.contentView since no content is generated.

Comments ( 6 )

September 28, 2003

11:44 PM Weblog Milestone 1.0

Hmmm. I finally managed to mess up my weblog temporarily. I posted a link with a missing closing quote and this caused the edit page to not display so I couldn't fix it. This was also the time when I found that the backup system wasn't working. So I had to edit the files manually. All on the 200th entry.

Anyway, congratulations to me for managing to fit 200 posts into one year. That's just over one every two days.

Comments ( 27 )


11:28 PM RDF Introduction

OK. Since you asked, I created a more detailed guide to RDF. It has two parts. The first page describes the model including triples, types and so on, in enough detail to understand RDF, without barely a mention of syntax. The second page describes the RDF-XML syntax, using examples and terms from the previous section.

The goal is so that people can understand the purpose of RDF without getting distracted with XML syntax. So, if you are reading it, make sure to read the first page first, or you'll be confused.

I include it as part of the Mozilla SDK Guide, although it isn't particularly specific to Mozilla.

Comments ( 8 )

September 25, 2003

3:53 PM RDF is like pointers

A lot of people get confused about RDF. Many don't understand why one can't just use some other XML form to accomplish the same thing. For instance, one advantage of RDF is that one can freely mix terms from one RDF vocabulary with another. You can't really do this with XML. Of course, XML people will think you can.

One reason for this is that the XML people are thinking only in terms of syntax. RDF, however, is actually just a model, but happens to have a serialization syntax (there are several actually). If you think solely in terms of syntax, RDF-XML might not offer any advantages since it is just XML too. When thinking in terms of the RDF model being a set of triples, or as a graph, then there becomes a difference.

Unfortunately, thinking this way requires an intuitive leap that many may be unable to take. This is similar in some sense to how people look at pointers in C. Some people are just unable to grasp pointers, no matter how hard they try. Likewise with RDF. With the usage of HTML, XML and so forth, people have grown accustomed to thinking in terms of syntax. It's unlikely, for instance, that someone writing some HTML is thinking about the DOM tree the code produces, rather they are thinking about tags and text. When people start to use RDF, learning syntax is the first thing they learn.

People that are new to RDF, ask questions about problems they have, but are often thinking only about syntax. Often, they ask, 'how do I produce this RDF?' and give an example of RDF-XML. In can be difficult to answer since it's unclear what they have already and what they are trying to do. If the person doesn't understand the RDF model, it can be difficult to explain in terms they can understand.

Comments ( 11 )

September 23, 2003

5:51 PM OK. This is the last one.

There are so many different groups of people using or writing for different aspects of Mozilla, it's impossible to cater to everyone's needs. My recent posts have been based on comments made by others, not necessarily my thoughts. In fact, I didn't have strong opinion on the developer issues I raised until recently.

However, I did want to ensure that comments by dbaron, Boris, Pete Collins and mozdev.org project owners were addressed. There is a rift between groups, whether it be between Seamonkey and Firebird, user and developer, or something else. There are various developers (application, extensions, theme, or otherwise) that "think Mozilla.org is [not] doing a good job *clearly* articulating at a higher level the direction the project is heading."

Axel Hecht tried unsuccessfully to get mozdev developers to come up with a set of goals and requirements so that we'd know what issues needed to be addressed. I think that is a great idea. What happened though? The discussion quickly went off-topic and a new Mozilla branch/fork/project was created.

Sure, end-users are important. You can debate about gaining market share for months. Maybe Firebird will achieve world domination. Maybe it won't. There wouldn't be many developers without any end-users. (Of course, there wouldn't be any end-users without developers either.)

The point is, whatever the developer rift is, there is one, and we need to find a way to address it. Petending it doesn't exist isn't helping.

Comments ( 30 )


2:27 PM So many thoughts, so few bullets

There are so many thoughts going on in my head over the last few days. It's hard to come up with a clear response to things. So I won't.

I will, however, do what Danny does by Turning a Blogger Off.

Comments ( 33 )

September 22, 2003

2:44 PM Using Sockets in Mozilla

Now available: a simple guide to using sockets in Mozilla, with an example.

I also added some links to the book Creating Applications with Mozilla in the SDK guide.

Comments ( 5 )