I went to the XTech 2006 conference last week.
I had booked my flights well in advance assuming that there would be no non-tutorial conference activity on Tuesday. I had an evening flight, so I missed the Mozilla reception that took place on Tuesday and was announced late.
On Wednesday, the main keynote was given by Paul Graham. His topic was recreating Silicon Valley elsewhere. (See Suw Charman’s slightly condensed write-up.) I think there was insight and some truth in his points—perhaps not 100%, though. Considering the recent events in France, his point about the freedom to fire people went probably the most against the European relationship of business and people. It appears that at least one person (reacting in English :-) considered Graham’s language comment offensive.
Interestingly, Graham said that the tolerance of lawlessness (e.g. using illegal Mexican construction workers) is an advantage for the U.S. Certainly slow bureaucracy is not good, but I doubt that having a culture of breaking the law is good especially if it means that some people live without the protection of the law. In 2000 (IIRC) I heard Jaakko Rytsölä, who made a lot of money out of Saunalahti during the Bubble, speak about what was great about Finland when starting up a business. One of his points was that the infrastructure ran and things worked out like they were supposed to by default without having to grease the wheels with bribes (think Russia) and without having to fight slow telcos (think France—in the past at least).
The second opening keynote was given by Jeffrey McManus of Yahoo! He talked about Yahoo!’s sites where the value is in collective user data and about the code and specs / documentation that Yahoo! has released recently for others to use.
There were four tracks in the conference. I mainly followed the browser technology track, which meant I missed interesting server-side stuff on the core technology track. Compared to the WWDC, it is certainly nice that the proceedings are not under an NDA, so here are a few notes.
Robert Sayre spoke about the feed user experience. Gecko is getting a feed parsing service, which is nice. I do have some concerns about the API abstraction, though. Even though we now have Atom, the problems of RSS still take presentation time.
Myk Melez’s microsummary session was a moment of learning, because the subject matter had totally flown under my radar.
Jonas Sicking had a session about XBL 2.0. In general, XBL came up here and there to the extent that, despite all the politics, there now seems to be a reason to believe that XBL could finally make its way into Opera and WebCore as well. According to Dean Jackson, sXBL is dead, which clears up the politics quite a bit.
Benjamin Smedberg talked about XULRunner (which should be expected to get a new name). Firefox will be a XULRunner app and the main gateway app for building an installed base. Questions focused on how updating XULRunner will work.
Vladimir Vukićević spoke about rich graphics capabilities.
Beyond this session, in general, it appears that people are very
interested in the canvas
element. Text rendering is an
issue. One of the possible solutions is adding the ability to draw
styled HTML fragments so that CSS text layout would be inherited in
canvas
.
David Baron talked about the fundamental assumptions in CSS layout, which was interesting, because usually the fundamentals are taken for granted and not analyzed.
Robin Berjon had a session about the process of developing efficient XML—an alternative non-XML infoset serialization, that is. (I jumped tracks here.)
The process was very interesting and it sounded carefully considered.
They don’t want everyone rolling their own.
Schema-aware candidates depend on XSD. Not cool.
The candidates do better in terms of size and speed than gzipped XML.
The mobile use case assumes the origin server to accommodate mobile UAs (unlike Opera Mini which solves the problem by being a distributed UA). I don’t really believe in a model that requires the origin servers to jump through mobile hoops, but perhaps there could be some merit to a standardized compressed format that would allow higher range mobile devices to use a compressing proxy without having to commit to a single vendor for both the browser and the proxy. I still think Opera Mini makes a lot of sense for devices that are positioned below S60.
I think that the Compact Syntax for RELAX NG and text/html
serialization for HTML5 make a lot of sense, but I still have
doubts about generic alternative infoset serializations.
Daniel Glazman presented Etna, the RELAX NG-based XML editor he and Laurent Jouanneau have been working on.
Very, very cool!
Daniel was not shy to say that Etna solves some really old markup editing problems.
Competing products sold with training because they are so hard to use.
Etna performs RELAX NG validation on a DOM tree.
Document is valid before and after each editing operation.
The schema engine allows the editor to query for legal operations and natural-language labels for elements.
Schemata can be annotated using elements for natural-language labels, flagging defaults and blank templates. Templates handle caret position and initial selection. Annotating schema is the right way to go, because this stuff needs to be available in the context given by the grammar derivations that lead to the node in the document that is being edited. There is no point in duplicating the selection (as in Selectors) mechanism.
From the point of view of my master’s thesis, supporting Etna is scope creep, but I think I should still look into it.
Mark Birbeck demoed XForms, XBL and SVG in Forms Player. Forms Player seemed to work well, but it was still in practice pretty implementation-specific stuff.
Thomas Meinike from Merseburg University of Applied Sciences talked about SVG in Firefox. I was disappointed, because the presentation focused too much on the very basics of SVG.
Ryan King of Technorati spoke about designing microformats. As he pointed out himself, teaching people how to design them is more interesting that just going up there and telling people to use particular class names. I think the microformat design procedure made a lot of sense. However, I’d still like to see format consumer use cases getting more attention. Now the focus is still slanted on the side of expressing things. I also complained about the lack of precision in the hCalendar and hCard specs. (I was unable to extract machine-checkable conformance criteria.)
Donna Benjamin from Open Source Industry Australia gave a presentation about ODF and digital preservation. (I jumped tracks again.) I took interest in this topic, because in 2002 in the National Archives of Finland my job was to look into this sort of thing. Moreover, back then I recommended against using the OpenOffice.org word processing format for long-term preservation. (If you want to play it safe, store CCITT Group 4-compressed monochrome TIFFs for appearance [unless, of course, there is color] and NFC-normalized UTF-8 plain text for search.)
The question I had was this: Four years ago I recommended against archiving the OOo format and, sure enough, it is already obsolete. The ODF format is so complex that it is non-trivial to write independent implementations after a hundred years. How do I know the OOo folks don’t innovate so much in the next four years that ODF is obsolete in four years? (Note to the OfficeXML proponents out there: Please don’t quote me out of context. OfficeXML is at least as problematic for long-term preservation.)
I got an answer from another member of the audience. The answer was that, yes, there is already a new version of ODF in the spec pipeline, but when there’s a new version of the format, migrating documents from the previous version is sufficiently easy.
I still have serious doubts about archiving documents with spreadsheet formulas, etc. But at least the word processing format without generated content is not worse than plain text, because salvaging the text out of ODF is pretty easy.
Dean Jackson talked about the status of the W3C Rich Web Client Activity. Politics!
The workshop on compound documents was mentioned. At that time the browser vendors were voted down and the WHAT WG was born. Dean quoted Brendan Eich from that time. Later there was on-the-mic dialog with Dean and Brendan and the tone was much friendlier.
The page for The Björn Höhrmann Project was shown. The umlauts were broken due to a Safari bug, which somehow fit the situation.
Dean, in his W3C role, actually said “HTML5”. Great!
He talked about evolutionary and revolutionary approaches (WHAT WG and W3C, respectively, of course). However, it seems to me that the evolutionary approach required an organizational revolution.
Everyone seemed to be looking at Hixie when Dean talked about small focused specs.
The HTML WG will be rechartered!
The W3C is looking into adopting Web Forms 2.0! (Perhaps as an XHTML 1.x module to avoid touching the HTML-as-SGML-but-not-really issue.)
Mark Birbeck said something about innovation. (I guess the implication was that XForms is innovation but WF 2.0 isn’t.) Dean asked if standards are supposed to be innovative. Birbeck said he wished he had known to go elsewhere. Innovation, according to him, is going on in a different plane.
Brendan said no to declarative things in stone tablets. Must have scripting.
Brendan asked about patents. Dean wouldn’t comment on specifics. Brendan (IIRC) said that Microsoft is asking their lawyers if they can cooperate.
Erik Bruchez of Orbeon talked about doing Ajaxy stuff by developing an XForms app and having Orbeon’s server-side translation layer between the XForms app and a real Web browser so that the browser sees Ajaxy stuff and the app sees XForms. Technically, it seemed like quite a trick they’ve managed to pull off. He talked about not wanting to know how to do this or that in JS. I had flashbacks of enterprisey J2EE promises of not having to write Java and instead writing these nice declarative XML files. Anne van Kesteren, who was himself there, was quoted on a slide saying “XForms is the semantic counterpart to Ajax.” (Follow the link to see the actual context.)
Michael Smith of Opera Software spoke about bringing Web 2.0 to mobile devices. People should have mobile access to the real Web instead of access to walled garden “Mobile Web”. With Opera, you get the real Web. The mobile scene in Japan is different. There are services, but they are in walled gardens.
Håkon Lie talked about various Web issues.
Canvas 3D was demoed. It wraps OpenGL ES. (Implementations coming up in both Opera and Firefox.)
Ajax is a misnomer.
Canvas and JS enable interesting new things.
Opera’s installed base on mobile devices has grown a lot.
Widget packaging format ripe for standardization.
Most text on the Web is rendered using MS fonts.
Browsers should get the ability to download free ($0) fonts (referenced from CSS) from the Web and load them to the underlying font engine on the fly. (An audience member expressed doubts about security. MS has TrueType fonts that cause infinite loops—presumably in the TT hinting engine. Opera has asked MS to share them. Not shared yet.)
A typical Norwegian newspaper site uses more bytes for images than a font would take.
According to research by an unnamed corporation, there are “only” 500 free ($0) fonts on the Web. Wow! 500! How many do you need?
Browsers should be able to address into zip files served on HTTP. A guy with a Mozilla t-shirt pointed out the jar URI scheme in Mozilla. (I tend to think that’s the way to go.)
Opera, Mozilla and Apple should work together.
Andrei Popescu from Nokia Research Center presented the Mini Map navigation method in the new S60 browser that uses Web Core. I have not had a chance to use Mini Map myself, but it looked useful. As usual, writable static data in DLLs was cited as a problem when porting to Symbian C++.
I did not see anyone recording the sessions, and they probably were not recorded. However, it would be great if the sessions on the other tracks were available through e.g. IT Conversations. I’d be particularly interested in MP3s of the presentations by Uche Ogbuji, Steven Pemberton, Eric van der Vlist, Mark Nottingham and David Megginson.
More important than the sessions were the people. I had a chance to meet, for the first time, many people with whom I have been discussing Web issues online for years. I don’t even try to list everyone here, but as an extreme example, Hixie and I have been on various mutual fora for about seven years and my upcoming master’s thesis is based on his specs, but we hadn’t met f2f before.
I met many people, which was very nice. Still, there were people on the other tracks who I know were there and whose blogs I read or whose libraries power my code but who I didn’t get a chance to meet. Well, time was limited.
Overall, the various unofficial discussions were a very significant part of the conference. After all, having the people in the same place is the whole point.
I had breakfast every day in a small café next to the conference hotel. I had Italian-style coffee and French-style pastry. Interestingly, that place seemed to be the only option near the conference hotel in the morning. One would think there’d be more business opportunities selling breakfast in the city center.
I did not buy the official lunches, because they would have cost about €50 per day. I did miss out on the social aspect of the official lunches, but I don’t particularly regret it. On Wednesday, I had a social lunch with other students who hadn’t paid for the official lunches. On Tuesday, I accidentally didn’t catch anyone who was eating out, so I had on unsocial lunch. On Friday, I spent the entire lunch time recovering from rain that had soaked parts of my clothes.
On Tuesday, I joined a mostly Operatic group for dinner, which was nice. The restaurant was chosen by applying Flipism in real life, which was cool. Minting namespaces over dinner seems to be very unbureaucratic way to do it.
On Wednesday, I joined a mostly Mozillan group for dinner, which was nice. A restaurant that served Dutch food was chosen. Dutch pancakes inspired a discussion about what constitutes a pancake, about standardization and about local freedom in the EU. It seems that Dutch pancakes and French crêpes at the ends of the spectrum and the Finnish style is in between. (The diameter increases and the thickness decreases towards crêpes.)
I liked the low-rise old architecture. Having channels here and there looked good. The city was very pedestrian and biker-friendly. Pedestrian-friendly cities are always more pleasant than the unfriendly ones (like Los Angeles).
In general, the city was very nice. (Photos)
Except for the weird side, of course.
In Finland, when I said I was going to Amsterdam, people seemed to associate the name Amsterdam with drugs and prostitution, so I guess those issues are going to be the elephant in the room if I don’t comment on them somehow. (I don’t really know what the Dutch feel about this association. I figured the topic might be like Bush for Americans—something you are totally tired of discussing with every foreigner—so I didn’t try to get a large sample of opinions. However, my sample of two suggests it isn’t like Bush for Americans. Hmm…)
“Coffee shops” were here and there. They were a strange phenomenon, but they didn’t really bother me that much. One guy wanted to sell me drugs on the street, which I didn’t like.
Several people told me that if you go to Amsterdam, you really should walk into the Red Lights District, too. So I did. It was very surreal and disturbing. I’ll omit a longer analysis. Here’s one observation, though: To avoid supporting the operation, I didn’t buy anything—not even a post card—in the area. Yet, I realized afterwards that just by being there as an observing tourist one contributes to the image of normalcy of the whole thing, which caused a feeling of complicity.
In fairness, people also associate Amsterdam with bicycles. There were a lot of those, which seems healthy. They were older style and lower tech that the ones you see in Helsinki but they had heavier lock chains. I guess the moment your bike stands out of the others, the probability of your bike getting stolen increases significantly, so everyone wants to have the same kind of bike. One guy wanted to sell me a bicycle on the street, which I didn’t like.
On Wednesday the weather was very nice even though it rained late at night. On Thursday it was colder, but the weather was still nice, because I had appropriate clothing. On Friday the weather was terrible. In the morning it rained heavily and my shoes, lower parts of my jeans and my jacket got soaked. It was very windy the whole day.
Next year, XTech will take place in Paris.
Apple and IBM were by far the two most popular laptop brands.
Ubuntu, as far as I noticed, was the most popular GNU/Linux distro.
No participants from Apple or Microsoft. (WebCore was represented by Nokia, though.)
There’s still some tipping going on in the Netherlands. Tipping always gives foreigners an opportunity to appear as total jerks when they get it wrong (either way). I think I got it wrong at least once. In Finland, the prices include tax and service. I like that. The customer sees the real price, and rude customers (or clueless foreigners like me) can’t forgo paying for service. In the last decade, some other EU countries have moved away from tipping. Perhaps with time the entire EU will get there.
WLAN in the conference hotel required people to use a HTTP-based login hack every now and then. That was not nice at all. It was particularly uncool when it disrupted presentations. When a venue is that expensive, I think they should have an open WLAN indoors and perhaps use the positioning of the base stations to curb usage outside the walls (if they really care). I mean you don’t have to log in separately to get water or to use the toilets.
People said things like: “We are working on this cool thing foo and it would be nice to standardize it through the WHAT WG.” and “We are implementing this cool thing foo which is being standardized by the WHAT WG.”
Strangely, credit cards were not widely accepted. (They wanted Maestro which appeared to be an online light version of MasterCard—like Visa Electron is for Visa.) I used my credit card only once: to buy the ticket from Schiphol to Centraal. However, when I tried to do the reverse (reasonable expectation, I thought), I could not buy a ticket from Centraal to Schiphol using credit card. The option in the vending machine UI was disabled. Not cool. Delayed my schedule. I still caught my plane, though.
In general, it was possible to speak English to a random person in Amsterdam and to get a reply in intelligible English.
To facilitate the mobility of people, the EU could require English labeling of various groceries. The stuff that they put next to milk—how do you know what it is? Yogurt? (Yes, the labels don’t have English on them in Finland, either.)
Jeff Barr of Amazon gave a closing keynote on Amazon’s Mechanical Turk service. (Yes, it appears they have gotten the name into production past the corporate political correctness police.) The Mechanical Turk is a service that allows software to delegate tasks that require human intelligence to actual humans. For example, if you have a catalog of photos of chairs and tables, you can have humans tell you which are which. Another example is transcribing podcasts and reviewing transcripts.
As an idea this makes a lot of sense. There are some tasks that are best handled by humans even if the tasks are so boring that a software developer would intuitively want a machine to take care of them. I guess there isn’t even anything inherently wrong about hiring people to carry out boring work, even if software developers tend to prefer less boring (even if harder) work. (Here people aren’t hired. They just pick tasks from a Web page and get paid on a per-task basis. Not having to hire people was advertised as a benefit.)
However, what gave at least me an uneasy feeling was how little the people who carry out the tasks get paid. The speaker even touted as a presumably good thing how much people are willing to do for as little as one cent. I did some quick approximative math in my head based on the sample tasks and figured that the pay is really lousy. (Yes, I have done useful work without pay myself, but the intrinsic satisfaction of the tasks in those cases has been very different form the tasks available on the Mechanical Turk and my own interests have been the deciding factor in what to do.)
After the presentation, there was one question about REST and SOAP. Otherwise, the questions concerned labor issues. One person asked how can someone who submits tasks to the service know that tax laws aren’t being violated. I asked two questions: What country are the transcriptionists in who are willing to transcribe podcasts for the little money offered? How much did Amazon offer for a task that required the person to be a software developer? Barr dodged both questions leaving them unanswered. (I guess he did not want to say “United States”.) He did, however, say that this is market economy at work and no one is forced to do anything. Another person asked about screening for child labor. Barr replied that participation requires an Amazon account, which requires a credit card and kids don’t have those. Yet, earlier he had said that the Mechanical Turk is banned at his son’s school.
Brendan Eich gave the main closing Keynote on JavaScript 2.0. Lots of interesting technical stuff. The slides are available, so I don’t try to summarize. A few points, though: JS 2.0 will be compatible with JS 1.x but won’t be compatible with a previous 2.0 proposal implemented in JScript.Net. Spidermonkey will get the new stuff (obviously). Opera is on board. It is not clear whether Rhino is. E4X won’t be a part of the core spec.
The conference was well worth attending. I am very happy that I went there. Last year I felt I was missing out on something important. I’m hoping to go to Paris next year.