Axel Hecht Mozilla in Your Language

October 26, 2006

Thanks

Filed under: L10n,Mozilla — Axel Hecht @ 9:01 am

The short post I want to get out is “Thanks”. I’ll definitely try to get around and do the long post, but that requires me to have a dictionary by my side, it seems.

Thanks to the localizers, thanks to the developers, thanks to the drivers, thanks to the l10n team, thanks to the QA folks, thanks to build, thanks to IT, thanks to the web folks. And those are just the folks that pulled all-nighters just to get Firefox 2 out there in 37 languages, in one go, with support from web sites side.

Each of these deserve a paragraph or a post. I may end up doing short paragraphs, but given the “better is the evil of good” thing we have, let me just post the short version now.

Thanks.

October 21, 2006

Thoughts on APIs

Filed under: Mozilla — Axel Hecht @ 11:10 am

I guess it would be a good idea to share a few general baseline concepts I think I have learned while thinking about an RDF API.

Query results should be queryable (does that word exist?). E4X does a great job here. .foo returns a XMLList, which you can query again with a .bar.

The funny trick is to actually

  • do that somewhat performant,
  • get really usable individual results.

The first item may be done by doing the actual queries as soon as you start using real results. The second item can be done by using WANT_CONVERT on nsIXPCScriptable cleverly.

One challenge in doing a “nice” API is that

foo.bar.baz

is the same thing as

var tmp = foo.bar;
tmp.baz

Doing late queries helps here, too.

There is no good query API described in XPIDL. Design your interface to “just work” for C++ and to deliver the right data for the scriptable helper to provide the actual API to js clients.

October 20, 2006

Why RDF?

Filed under: RDF — Axel Hecht @ 11:04 am

As brendan has asked, here goes my reasoning why Firefox should have RDF, independent of what other browsers do. Or at least the part that I didn’t forget.
The main difference is the extensions ecosystem that makes Firefox such a great browser. Extensions come and go, they change, and they interact with the user and the browser. Spot the missing arc? I haven’t seen a whole lot extensions out there making use of each other. But they should. They shouldn’t have to depend on each other, they should just be a tad happier and snappier when the buddy they know about is there.

Why would that be a reason to use RDF? Because the strong point of RDF is the ability to gather assertions from independent sources and to through them together independent of whether they belong together or not. RDF doesn’t require the data to be connected, essentially, which enables you to mumble stuff about stuff that don’t necessarily make sense in that context, but are way cool if you add a few arcs that somebody else knew.

I’m convinced that we will see a new stage of development in our ecosystem if we enable this loose communication. Yes, because despite the fact that we have an RDF implementation, and that we’re using an RDF/XML file to describe extension metadata (install.rdf, which really has more information in it than just install stuff already), we’re not permitting information not targetted at the extension manager itself to survive. For reasons that make a great other post, tentatively titled “a bunch of nonos”. But hey, install.rdf is there, and we should use it. Dictionaries used to fall back to install.js, before we actually hacked dictionary support into extensions. Or say, an there is an extension that does a whole bunch of stuff to make a particular site even better. And if it could install a greasemonkey script, it could even …. . Why would anyone have to check if greasemonkey is installed and if it knows about your script, and whatnot, when just adding an arc to install.rdf would be good enough to enable greasemonkey to just grab those when it’s there? Microsummaries are similar. Anything that is “small helper text file for big cool feature.”

So much for the extensions itself, another good use I see are community building extensions, we all know Matthew is going to jump up and down here. Anything that wants to work on relations of stuff could choose to use an RDF backend.

I personally don’t see any good model for communicating information between microformats parsers and microformats consumers than something that will at least looks and smells like RDF.

That said, I’m not of the opinion that Everything should be done in RDF. I don’t want to solve sparse systems of linear equations by using SPARQL queries on a world-spanning assertions store. Use the right tools and concepts at the right place.

We’re lucky to have a dynamic and agile ecosystem, with players going in and out, and RDF is made to model that. That’s why we want it, and others may not. IMHO.

October 19, 2006

make this semantic

Filed under: RDF — Axel Hecht @ 4:12 pm

Brendan’s recent post caused a few ripples. Not necessarily in the world, but at least in the pond of planetrdf.com. Out of context, a few statements from my POV.

  • Decisions on RDF in Mozilla are made now.
  • There are folks using RDF. Not necessarily from JS.
  • I’m not creating the RDF implementation for Mozilla 2.
  • Neither is bsmedberg.
  • There is no implementation of an RDF standard in Mozilla. It’s closer to, say -//Netscape Comm. Corp.//DTD HTML//EN than to -//W3C//DTD HTML 4.01//EN.
  • The attack surface of the existing RDF implemention is not in C++, but in it’s design decisions.

What I’m doing? I’m still hoping to see a design discussion that is open to participants with other goals than “kill RDF first”. And to participate in this discussion, I’m working on at least enough code so that one can seriously evaluate that option.

I’ll continue to do snippets posts on particular aspects in the near future, I have drafts in my head talking about attack surface in terms of design decisions, good uses or RDF in Mozilla, pointing at some bad examples of using RDF (/XML), too.

L10n sign-off today

Filed under: L10n — Axel Hecht @ 3:09 am

If you’re a localizer, please look at my post in .l10n on what to do to sign off on your localization. As we’ve been doing quite a few QA and testing cycles so far, there should be very little work left to do but actually closing the bug. Nevertheless, the use of litmus to structure and report your testing efforts is quite inconsistent between teams. The current lead in localized test reports is Finnish with some 300 tests. That’s not really the target count, but given that quite a few others haven’t submitted reports, it shows the variation that we have in our community. If you haven’t submitted test results yet, please try to go at least through the l10n tests.

If you’re in the release team, the interesting bug queries are resolved bugs and open bugs blocking the Firefox 2 l10n release tracking bug. 13 signed off and counting, 25 remaining.

October 18, 2006

Yay

Filed under: L10n — Axel Hecht @ 10:24 am

One bug down, 38 to go.

October 17, 2006

sneak preview

Filed under: RDF — Axel Hecht @ 1:42 pm

Letting all the overall agenda aside, how does this sound?

js> ds = new RDFSimpleTripleDataStore();
js> em = new RDF.Vocabulary('urn:x-moz:em#');
js> ds.assert(RDF.resources[document.location], em.title,
               RDF.getLiteral("Some English string", null, "en-US"));
js> c = ''; ds.forEach(function(t) {c += t;}); c
   <about:blank> <urn:x-moz:em#title> "Some English string"@en-US.

October 13, 2006

Back to life

Filed under: Uncategorized — Axel Hecht @ 5:43 pm

As my old private blog doesn’t seem to come back up, I’ll start talking about stuff here. Not only about l10n, but even more so about the upcoming shoot-out in RDF-land.

Powered by WordPress