Tuesday, 30 September 2008

Chronicle Update

I don't have any big-ticket items rushing the beta 1 freeze on Tuesday PDT, and I'm temporarily not slammed with reviews for other people's big-ticket items, so I'm investing a little time in Chronicle and Chronomancer, partly because other people keep trying to use them.

Today I updated Chronicle to Valgrind 3.3.1. This makes it work on more recent Linux distributions and fixes a few bugs. I also changed the Chronicle build system and file layout so that all the Chronicle support programs are built as part of Valgrind's build system. This simplifies the build and means that "make install" will now install Chronicle's programs somewhere useful. The steps for building and running Chronicle are now simpler and hopefully more robust.

Another thing I'd like to do is to make it easier to get started with Chronomancer. There are two main usage scenarios I want to address:

  1. User has no existing Eclipse project and wants to debug from a saved database
  2. User has no existing Eclipse project and wants to run their app under Chronicle and debug the results

For the first case I need a discoverable command to browse to a database file in the file system and spawn chronicle-query on it automatically. For the second case I need a discoverable command that prompts for a command line. The latter is tricky though since applications that interact with the console would get stuck unless I implement some kind of Eclipse console. It might be better supported by setting up a proper Eclipse run-target, or even having the user use CDT to set one up and then piggybacking that. Hmm. For now I think I should focus on the first situation since it's the one I care about the most and it's the most broadly applicable.

I'm also hoping to write some Gecko-specific debugging extensions. It would be interesting to visualize frame trees and find a way to somehow integrate their history at the same time.

Monday, 29 September 2008

Dear Nat Torkington

... and other attendees of the 2008 New Zealand Open Source Awards:

Ridley Scott, not James Cameron, directed Gladiator.

I just had to set the record straight. My claim that Nat was mistaken met considerable controversy at my table.

Friday, 26 September 2008

New Zealand Open Source Awards

I'm very grateful to have received an award for "Open Source Contributor" in last night's New Zealand Open Source Awards.

This kind of event --- with a fairly heavy business and government presence --- was rather foreign to me, but nevertheless the evening was a lot of fun.

In accepting, I mentioned that I'm already well rewarded for my open source contributions, and thanked all the people who labour away tirelessly on useful projects without much reward or recognition.

Monday, 22 September 2008


On Saturday our family went back out to Whatipu, out on the west coast near the Manukau Harbour entrance, for the first time in years. It was a marvelous spring day and we just had to go somewhere to spend all day outside. On the way there we took the short detour to Mt Donald McLean. The view there is amazing --- all the way back to Auckland to the west, with Rangitoto and the Sky Tower clearly visible, and to the south all the way to Mt Karioi near Raglan and even --- on an extremely clear day, which this wasn't --- to Mt Taranaki.

At Whatipu itself we checked out the sea caves to the north, then went to the beach itself for a walk around. The beach, dunes and swamp are all so immense. So are the headlands marching off into the distance on the southern side of the Manukau harbour. We also climbed the southern ridge to visit the Signal House lookout --- a great walk through scrub and manuka forest to another great vantage point overlooking the beach.

View from Mt Donald McLean of waves breaking on the sandbar at the entrance to the Manukau harbour:

Sandbar at the entrance to the Manukau Harbour with waves breaking on it

Headlands along the coast to the north of Whatipu:


Sunday, 21 September 2008

Whiny Expats

I get grumpy when some NZer based overseas presumes to lecture his former compatriots about how to run the country. In the same vein I got extremely grumpy about the "lost generation" controversy several years ago. If these people cared, they'd put their money and energy where their mouths are, come back to NZ and actually do something positive instead of just absconding with their skills and upbringing and then hectoring those who remain here to make a contribution.

Their plans always seem to be self-serving and/or wrong, as well. At least the plans related to gestating high-tech industry, which I know something about, are invariably wrong.

I also get annoyed by the cringey way the media reports this stuff. It's classic gloomocrat material.

It's especially galling to be lectured from Russia. I hope no-one sees the Russian situation as a model for New Zealand's future!

Monday, 15 September 2008

CSS Transforms

We landed support for CSS Transforms over the weekend. This is our implementation of a spec spec proposed by Apple that allows authors to apply affine transforms (e.g. scaling and rotation) to the rendering of Web content. This feature is useful and usually can't be achieved using SVG and <foreignObject>, because wrapping HTML content in an SVG wrapper tends to mess up CSS layout and other things...

This is almost entirely the work of one intern, Keith Schwarz. We've had a great bunch of interns this (northern) summer and Keith's work was really outstanding. Not only was there are lot of work to do in the style system and rendering pipeline, but also various places in the code had to be tested and modified to be transform-aware. Not only that, but we wanted to make sure that -moz-transform wasn't just hacked in, so we made Keith create general infrastructure for handling transformed content that can cover -moz-transform, SVG <foreignObject>, and whatever else is needed in the future. So we now have an nsIFrame::GetTransformMatrix API to express transformations within the frame hierarchy, that we can build on whenever we need that information.

There are still a few loose ends. Transforms applied to windowed plugins just don't work (unsurprisingly). Combobox dropdowns and other popups such as XUL menus aren't transformed --- fixing that is possible, using transparent widgets, but would be a ridiculous waste of time in my opinion. If someone mad wants to contribute a patch, I'd review it though :-). There are issues with the construction and placement of native widgets that can cause transient rendering glitches --- they should go away with compositor. There are definitely performance issues because with a lot of the transforms you'll fall off all graphics fast-paths. A big chunk of those problems can only be solved with hardware-accelerated graphics.

Update Here's the source file for the demo.

Friday, 12 September 2008

Auckland Web Meetup Summary

A quick summary of tonight's meeting, before I forget...

The Microsoft program manager went first. There was projector trouble at the start, which was unfortunate because it led to his talk running over time which meant he didn't get to demo probably the best IE8 features, per-tab crash recovery and the privacy features.

The first part of his talk was about standards and CSS 2.1, but this part was short. I think that's mainly because this is just not his personal focus area, although part of the problem is that IE8's not doing a lot of exciting new stuff here. It's certainly great if they can improve the interop situation, but that doesn't create excitement in a talk.

Most of the talk was about UI improvements. He spent a lot of time on the Accelerators feature, which to be quite blunt is no big deal. Web Slices looks a bit more interesting. The Visual Search or whatever they call it --- per-site incremental searches showing results in a dropdown as you type --- looked cool.

There was a short demo of their new developer tool. It's incredible how much it looks like Firebug. Frankly I was surprised they haven't done more here --- they haven't even matched Firebug yet, it seems. But we still need to invest more here to maintain our lead and for the sake of the platform.

Our talk seemed to go pretty well, although it's always hard for me to tell when I'm speaking. The demos looked good --- we used a trunk build with just the addition of John Daggett's CSS downloaded fonts patch, so Acid3 was visually correct, and I demoed SVG effects for HTML which landed today (more about that another time). People sounded impressed, but it's always kind of embarrassing to show demos I designed myself to a gang of Web designers, since my graphic design skills are ... limited.

Our talk was far lower-level and more technical than the IE talk and we didn't talk at all about UI work. In fact, when I started showing actual CSS rules I suddenly got a feeling we might have pitched it wrong. However during the demos people asked to see the source, so I guess we were OK :-). (That also let me say "at Mozilla we like to show you the source", which I'm proud of coming up with off-the-cuff!)

Chris Double talked about JS performance, which was perhaps the trickiest part of our talk. We had a slide comparing Sunspider performance for the latest available browser builds. He talked about how performance is rapidly improving in most cases and politely ignored the "anomaly", although the audience obviously picked it up.

Chris finished by showing off his 8080 video game emulator in Javascript and <canvas>. It's a great way to end since it combines HTML5 features with fast JS performance to show what Web apps can do now. It will be even better when some <audio> bugs are fixed on trunk so the sound effects work.

Overall I was pleased. As I'd expected, this encounter was fairly easy since we have a strong story, especially for Web developers.

Update I've uploaded my slides and made some of the demos available: (which I hereby place in the public domain)

They should all work in trunk Firefox builds. (The more complex SVG effects demos now also work on trunk: clipPath, mask, filter.) I've added -webkit and -o rules for the CSS3 bling and border-image demos, but I haven't tested them in those browsers.

Tuesday, 9 September 2008

Some Boring CSS/Acid3 Stuff

I landed the fix to bug 243519 last night. This fixes our treatment of the root element in CSS. The main thing it does is make the viewport (or more precisely, the "initial containing block"), not the root element, the default containing block for absolutely positioned elements. This was the last layout bug affecting the display of Acid3. The last remaining visual Acid3 bug is support for CSS @font-face downloadable fonts (which is well under way!).

As a side effect, since it was pretty easy to do I enabled absolute, fixed and relative positioning of the root element. This is optional according to CSS but since Opera and Webkit do it, it's the right thing to do for interop. I haven't really thought of a use for it though. As a bonus we also got -moz-columns working on the root element, hooray!

Friday, 5 September 2008

Auckland Web Meetup

Chris Double and I will be speaking at the next Auckland Web Meetup on Thursday September 11 --- one week away. We'll be talking about Firefox 3.1 and the many new features and improvements it brings to Web developers.

When I sent the blurb to John Ballinger a few weeks ago, I added "Plus Tracemonkey, the world's fastest JS engine." I'm glad that that's still true! (Yeah, I know Sunspider is just one benchmark, but still.) Now I hope it's still true next Thursday :-).

Microsoft evangelists will be giving a presentation on IE8 at the same meeting. The whole meeting should be very interesting and a lot of fun --- especially for us, since I think that Firefox 3.1 has a strong story over IE8, especially for Web developers. I'm really looking forward to this.

Thursday, 4 September 2008


A few people I know have asked me what I think about Google's Chrome browser.

Technically, it looks good on paper. There are some interesting architectural problems they haven't solved yet, especially with the process separation model, especially with regard to windowless plugins, and also Mac. These are problems that will be encountered by anyone doing process separation so it will be interesting to see how that goes. V8 seems overhyped when you take into account the JS work being done by other browser vendors.

I'm not sure how the competitive landscape is going to play out. Mozilla's in a strong position now and the immediate future looks great. We just need to stay focused, keep making smart decisions, and keep shipping great software.

Overall, I'm actually really excited. No matter who gains and who loses, there's no doubt that this innovation and investment and energy is great for the Web (especially when it's delivered in free software).

(Admittedly, there are moments when I half-wish for a nice quiet job where I'm not competing against the world's biggest tech companies and I don't have to worry about the future of the Internet. But that would be so boring. Having a job I'm passionate about is worth the stress.)

Monday, 1 September 2008

Kitekite Falls

On Saturday we took advantage of a predicted break in the weather to head out to the west coast (an hour's drive each way) --- we hadn't been out there for a while. At Piha there was a stiff breeze and some spots of rain, so not a lot of people about, but nonetheless we had a great time. There was big surf and the offshore wind was whipping the tops off the waves most spectacularly. We mucked around on the beach at the foot of Lion Rock and then went back to the Glen Esk Road carpark to walk to Kitekite Falls.

I don't recall ever doing that walk before, and I was most impressed. It's a lovely walk, just half an hour each way beside the Glen Esk stream, and the falls are spectacular. I can't believe we've been to Piha so many times and not seen them! The track was in great condition even after all the rain we've had. The only problem was that to close the loop you have to cross the stream at the base of the falls. It's narrow so I think normally you can step or jump, but the water was running high so we had to cross on a judiciously placed log. It did add some excitement.

Piha beach, nearly deserted

Kitekite Falls