Firefox 4 and the Add-ons Manager at Add-on-Con

As I mentioned before I was part of a presentation at Add-on-Con this year. Myself, Boriss and Justin talked about the new UI changes in Firefox 4 and about the main changes to the add-ons manager. If you’re particularly interested the slides are available here though I guess slides are often just tiny snippets of info from the actual session so if anything catches your eye you’ll need to get in touch and ask us about it.

Add-on-Con is here!

Next week is Add-on-Con 2010 and if you do any work in the add-ons space then you’re probably going to want to take a look at what is going on and hopefully sign up to attend. There are two days this year, one for some training and then the traditional day for keynotes and business/development tracks. I’ll be there for all of the main day and while I don’t think I am going to make the training day I should be there in the evening for the Mozilla party, be sure to sign up.

Mozilla are going to be there in full force of course:

  • Myk Melez will be talking about developing with our new Add-ons SDK
  • Jorge Villalobos will be talking about how to update for Firefox 4
  • Mark Finkle will talk about developing for Mobile
  • Pascal Finette will talk about business development
  • Justin Scott will be in the main keynote as well as talking about making add-ons that people will love
  • Justin, Jennifer Boriss and myself will be giving an overview of Firefox 4 and some of the new features you should be excited about
  • Jay Sullivan will be on the panel talking about the future of the browser

I’m quite looking forward to this. It’s been a long hard slog getting to the end of Firefox 4 (and we aren’t even there yet!) and one of the problems of being focused on all the blockers all the time is that all you are seeing is the bugs that users are hitting and features that really should be there. It’s quite a pessimistic way to see the project. I remember last year at Add-on-Con being really inspired to see all the great things that add-on authors were doing with the tools we give them (or sometimes in spite of the tools we give them!). It really was quite an uplifting experience and I’m hoping it happens again this year, don’t let me down!

Brussels bound

This weekend is FOSDEM 2009 and I’m actually managing to attend this year. It’s kind of weird, I keep doing all this travelling to the states yet I end up having to miss all the awesome stuff that goes on in Europe for various reasons (often because I am all travelled out from the states). But I’m going to be at FOSDEM even if it kills me, which considering the snow on the roads and serious travelling I have over the next few months is a possibility. Thankfully the jetlag from Europe is a lot easier to recover from.

I’m not giving any presentations however if you want to grab me to talk about extension development, XULRunner applications or anything else then feel free. Hopefully the lack of beard won’t leave me too unrecognisable.

Ruminations on a fortnight

It’s been a hectic couple of weeks for me and I wanted to touch on a few of the highs and lows before I forget them all.

It started with flights to get me to Toronto (for those of you that don’t know I live and work out of the UK). I was speaking at the Toronto Developer Day as well as attending a Firefox team work week (two things that conflicted more than I would have liked unfortunately). I normally manage to find direct flights but this time I had to connect through Amsterdam which wasn’t too bad, even if they seem even more mad for security than Heathrow. Incidentally terminal 4 at Heathrow is miles nicer than 3 where I normally come from, even if the 6 police officers armed with automatic weapons was a little disconcerting.

The Developer Day seemed to be a success and I hope all the attendees got something out of it. I’d encourage those that didn’t to let us know where we went wrong of course, not point in us running these things if they don’t give you anything. I think the people at my session found it useful, though I suspect I really need to work on my presentation style for such things. I feel kinda bad though that I’m not more confident about speaking and so could have taken some of the massive workload that Mark Finkle took on off his shoulders.

The rest of the week was spent with the rest of the Firefox team either figuring out concrete plans for the immediate future or working on those plans, interspersed with pizza, barbecue and poutine (Who’d have thought that Canadians would mash together some of the quick takeaway foods I used to get here and serve it in a restaurant!).

Next stop was Mountain View, via Detroit this time. I have to say that Detroit is a really nice airport to change at, even if it does mean that you’re probably flying Northwest if you do so.

I had a weekend to kill so on the Saturday a friend took me to a Renaissance Faire. I thought it might be a bit too geeky even for my tastes at first but it turned out to be a lot of fun, not sure you’d ever get me dressing up to attend like many do though. Fairly fun to watch Americans celebrating a history they never had.

Sunday I headed to the Winchester mystery house. I probably wasn’t in a good mood for it to be honest, jet lag had hit me and then the tour guide was a stereotypical over the top American tour guide trying to make every little oddity out to be spooky. Still it was an interesting place to walk around and the gardens were quite spectacular.

Tuesday I headed into San Francisco proper and went to meet up with the guys at Songbird. One of the things I really want to do is avoid writing the add-ons manager for just Firefox so it was good to chat with them about what they would like to see and how important they find the future plans that we’ve already toyed with.

That evening I had a great meal with some new friends at a German restaurant (yes I had to go to California in order to eat at a German place for the first time). I also got to experience the fun of driving out of the city back to MV at eight in the morning. I think I’ll be avoiding that in the future.

Thursday it was fun to attend one of the monthly labs meetups. Pretty cool to see plans for what is coming both in experimental stuff and in Firefox itself. I think it’d be really useful to stream these events so more people can get an insight in what is coming and why. Too often we can land things in the nightlies seemingly without any discussion when in actual fact a lot of thought does go into pretty much everything.

Finally Friday morning was painful. I maybe took people too seriously when they advised me on how long it would take to get to the airport and to check in, and then I added some for safety leaving me getting up at 5am and then ending up waiting at the gate for an hour and a half.

Seriously, why are so many people carrying on multple bags rather than checking them. I suppose I understand the risk of lost luggage but it is getting really annoying when I have to stick my single carry-on bag under my feet, decreasing the already sparse space there, because the overhead lockers are filled with trolley cases.

Northwest has to be one of the worst airlines I have flown. Poor food, very little movie selection, no tv episodes available at all. Thank god I have taken to putting movies onto my iPod so I always have something decent to watch.

Now I’m sat in a hotel room trying to stay awake for a bit longer. After I get back to Heathrow, after some 20 odd hours travelling (and I can never sleep on planes) it seems to be a good idea for me to sleep before taking the final 3 hour drive back home. But I also need to start the shift back to UK time. I shall probably be waking myself at around 3am for a leisurely drive back to Wales and then slowly shifting myself a couple of hours a day for the rest of this week.

Toronto Developer Day

In case you hadn’t heard Mozilla are running a developer day in a week or so’s time in Toronto. The first day is aimed at giving a good overview of the Mozilla platform and what technologies it offers. The second day will be a more hands on workshop where you can try your hand at extensions, applications and testing with friendly experienced people around to lend a hand when you hit problems. It isn’t far off now so get yourself signed up if you’re coming.

I’m in the midst of trying to put together what I’ll be talking about so if you have anything you particularly want to hear then make a suggestion.

Add-ons Manager session notes

My head is slightly less fuzzy now and I’m almost back on UK time so I thought it would be a good opportunity to give a quick review of how the Add-ons Manager session I ran at the summit went. I won’t go into too much detail, just a look at the main points of discussion and how I felt the room reacted to the ideas. You can also see the slides I prepared or the notes that Basil kindly took for me without me needing to remember to ask. Most of the session was about things we might want to implement and what problems/benefits we might encounter.

Add-on locale packs

The idea of developing the UI for locale packs specific to extensions received a less enthusiastic response than I had expected. This may have been because there were more add-on developers and less localisers in the room, but the general feeling seemed to be that there was not a large benefit and the potential complications, particularly around updating, could cause some large problems.

Dependency resolution

The current add-on dependency implementation is a very rough start. Being able to automatically find and install dependant add-ons for the user, with clear UI to show what is happening, seemed to be something that didn’t have many downsides. There were also suggestions that AMO could handle dependencies and deliver sets of add-ons as multi-xpi packages, though this could cause issues in upgrades.

Add-on conflicts

The moment I mentioned the suggestion of a system to mark two add-ons as incompatible with each other half the room said they wanted it. It was pointed out that some add-ons were already disabling things they don’t like on install (if you hear of that happening without appropriate warning please let us know). It was also quickly realised that under the author’s control it could just become a means to avoid having to work to fix incompatibilities and to disable the competition. The suggestion of Mozilla maintaining a central list of incompatibilities seemed like a good way to go.

Install without restart

No surprise that this was seen as useful, particularly in non-Firefox applications that don’t have the wonder of session restore. We also started talking about the potential for lower impact extensions that just had a small sandbox to work in with a little piece of UI which could make loading and unloading dynamically far easier.

Install/uninstall hooks

We discussed how the current mechanisms for running setup and cleanup code for extensions were poor, there is no way to deal properly with uninstall in all situations. It was felt that add-ons should be able to provide a full uninstall script that would even run if uninstalled when disabled or in safe mode, but would not run if the add-on had been blocklisted. We also talked a little about sandboxing what this script might be able to access.

Replace RDF

I was surprised that there seemed little to no resistance to the prospect of introducing a new plainer XML form for install.rdf and update.rdf given some of the comments I had when I blogged about it last. We would of course still support the old forms for a time and make converters between the forms available. There didn’t appear to be any benefit in using JSON instead of XML.

Much of the rest of the slides were skimmed over as we had unfortunately run out of time by this point, but thankfully that was most of the more important stuff completed anyway. For the immediate future I think introducing replacements for RDF into Firefox 3.1 is potentially on the cards. None of the other items were ruled out, far from it, though the locale packs seemed less interesting to everyone, and I think there needs to be some very careful thought about the prospect of running an uninstall hook for an add-on in safe mode or when disabled.

Thanks Canada (no, really)

It’s 6:30am Sunday UK time (though in my weird method of getting over the jet lag that works out as just after lunchtime) and I’ve just got home to Swansea. As many others are I’ve been thinking back over the great times I’ve had over the past two weeks. Needless to say I got out alive, as I believe everyone did (though apparently some are still stranded in Vancouver), despite Canada’s attempts to break us.

After a short visit with my sister trying to avoid getting licked to death by her new puppy I spent a week in Toronto at the Mozilla offices there. Thanks guys for having me, it was a fun week and I’m sorry I brought the Welsh rain over with me. Although I do have a shared office that I work from for most of the week I forget how good it is to actually be in a place where others are working on the same stuff. Maybe I’ll give in to Beltzner and move out there.

The summit was nothing short of amazing. So much larger than the last one and so much more enjoyable for it. As with all of these events I never got chance to do the things I had planned on and missed meeting many of those I wanted to, but met others I had never known and did more interesting things anyway. Dan and the rest of the organising team should be seriously proud with how the event went and how they coped with the upsets.

I think the Add-ons Management session I ran on Tuesday went pretty well all things considered. I have never really done interactive sessions before and combined with the hangover I was sporting I was a little nervous about it. Thankfully you can always rely on the Mozilla community to be talkative so in the end we actually ran out of time to talk over some of the ideas for the future of the Add-ons manager. Hopefully those there found it useful, I know I will take a lot from being able to get feedback and suggestions on my plans.

I guess the only minor disappointment (which is always the case since it would be impossible to avoid) is that there were many sessions I wanted to attend but conflicted with others. I hope there are some notes around for some of them so I can skim over what I missed.

Somehow I managed to find the journey home easier than normal. I suspect it helps that there were so many of us at the airport and I did the journey in a couple of stages to avoid the drive home immediately after getting off a plane which always turns into a dangerous race between traffic and my body trying to fall asleep.

I forgot how cool it is to drive down the motorways at 4am in the pitch black with nothing but good music and your thoughts to enjoy. Now, if only there were some shops open so I could actually get some lunch and a decent cup of English tea…

Firefox Developer Conference: Worth losing sleep over

Last night (or I should say early this morning) I got a chance to watch some of the webcasts from the Firefox Developer Conference in Tokyo. I had been wanting to attend one of the previous developer days but had to pull out due to accomodation problems so it was really great that webcasts were available, I believe this is the first developer day to do so.

I managed to catch most of the sessions on FUEL and XULRunner and some of the presentations on the development environments that extension authors use. The first two were good to watch, simple overviews of topics that can often get too bogged down in details. I won’t say I learned a great deal new from them, but then given my background I wouldn’t expect to. I really hope they make the recordings available so when the next person comes onto IRC asking what XULRunner is we can point them to it.

The presentations on development environments were somewhat more challenging to watch remotely, the webcast didn’t really have the resolution to bring out the detail of what the authors were doing and there was some time lagging on the video so what was being described didn’t correlate with what you could vaguely see on screen. Plus it was nearly 9am here so I had to call it a day at that point and get some sleep.

All in all what I saw of the event looked excellent. Top work by the translators, I don’t know if they were volunteers or hired in but they did a great job of handling all the technical terms that were flying about. I hope to make a dev day soon but till then lets keep up this theme of webcasting them so those who can’t be there still get a chance to be involved. One thought from the future, how about taking questions from the remote viewers over IRC?