main mozilla tech

Hard Blockers Counter 1.0

A little bit more of coding, a few bug reports later, HBC is ready for its prime time. Version 1.0 fixes the nasty toolbar height problem, it gives a user an indication of the interval covered by his plot and is just overall better.

It can be downloaded from an listing, and the source code is available at 🙂

A few of the lessons learned and thoughts:

  • builder is awesome, but it needs more real life users. A lot of bugs are only reproduced after you write your extension for some time, hundreds of revisions etc.
  • AddonSDK is excellent for this kind of extensions. It has everything you may want and makes the whole code extremely clean and simple to write and maintain. Just look at it – about 50 lines of core code – your cat could read that.
  • AddonSDK needs more real life users. Like with the builder, bugs show up only when you really use the extension you created.
  • AMO is an excellent developer friendly platform – it gives me a lot of satisfcators in a form of stats, and ability to manage my extension release process.
  • AMO-builder bindings need more real life users. I felt like I’m the first to try to push builder based extension to AMO – many trivial bugs that can be only revealed if you try to go through the whole thing.
  • AMO’s review/release process is excellent for the extension of the Old Days. It gives us a pool of high quality, verified extensions, that are easy to find and safe to use. It does not work with agile development. Builder and AddonSDK makes creating ad-hoc extensions super simple and quick (literally, 2 hours and you’re done with the first version, every new version is about 15 minutes of work). When you then push it to AMO it feels like Matrix slow motion then – you suddenly wait days for a preliminary review, not to mention almost two weeks you have to wait for a full review. My last revised version is super old comparing to what I claim to be the “stable” one now 🙁

This issue requires a little bit of description. I do not try to say here, that what AMO reviewers are doing is wrong – quite the opposite, I believe the whole process is excellent and anything that is exposed to the millions of users should get some time to season and be tested and be reviewed. It’s just that AddonSDK/Builder gives you a totally different setup that fits different needs. I believe AMO will need a workflow for extensions that are created in 10 minutes, distributed in 20 minutes, updated 5 times during 4 hours and are becoming useless after one or two days.

Think of a conference where schedule is updated often and people have hard time to track it. Using AddonSDK/Builder you can create an extension for it in literally 20 minutes (xhr, panel, widget). AMO is excellent for distributing it, updating your users etc., but it requires very different approach than say, AdBlock or Firebug. Then, you add a feature (ability to mark the talk you want to attend and get a notification when its room/time changes) and upload a new version 15 minutes later. You want to switch all your users to the new one now. Then you fix a small bug affecting linux users, and update users once again.

It’s amazing that Firefox is becoming a platform where it is possible, and I can’t wait for such application for AMO 🙂

  • AddonSDK requires a lot of users with their use cases. Myk’s approach is to iterate often which means to get version 1 ASAP and then add new features for version 2 instead of trying to build an ultimate solution without a release. I love this approach and it serves AddonSDK well, but now we need version 2 of many of the packages there – it can only be done if people start using the packages for a real life extensions and report what they miss. Like – Widget content cannot be easily themed. Or, you cannot control Panel’s scrollbar appearance. Jetpack team cannot plan for those use cases, they have to come from jetpack users. So be brave! Try things, report everything you need! 🙂
  • There is a group of at least 500 people who deeply care about our release process. They’re ready to increase the amount of items on their screen to have a continuous updates on our progress toward Firefox 4. And it’s been just two days. It can motivate people to help, make them feel the sense of progress, help them understand the challenges better. It sucks outsiders closer to the inner circle. I believe we can do much more and the nightly users, mozilla planet readers and the audience of my extension deserve the chance to get more info which can help them start contributing! 🙂

main tech

Will companies start exploiting linux packaging systems?

Today I was working on some yet_to_be_announced project for a KnownCompany.

I was also updating my flash player basing on the latest releases from Adobe, and realized that this company, and many others will have to exploit packaging model of modern distributions in order to achieve what they want.

See. Modern, user-oriented linux distros like OpenSuSe, Fedora, Ubuntu, are preparing set of packages for the release, and then “half-freezing”. When I use Ubuntu 7.04, I use a set of software that was ready by April 2007. There are two exceptions – security patches, and community contributed backports of the newer packages , but for the latter, I have to manually select that I want to get them.

It means that being a company, that wants to upgrade users browser, mail client, game, or office package, I should claim  that it’s a security release. It’s not an issue right now, since linux is not popular enough to be on most product managers radar, and the releases happen pretty often (half a year in case of Ubuntu), but as Linux will become more popular, I’m more than sure that it will start to happen. All companies I was working for would like their latest versions to be deployed for all users soon after the release. Not half year later. Also, what about users who will not upgrade?

Look at the browsers. Browser X ver 3.5 has been released on Sep 2010. The Ubuntu (by the time used by 35%  of end users on Earth!) release 10.10 uploads it and uses in their release. Users are happy, confetti is everywhere and We Are The Champions can be heard in the background. Win-Win.

Then, the vendor of Browser X prepares release 4.0, and they’re ready on Apr 2011. Unfortunately  the release cycle of Ubuntu says that Ubuntu is already freezed and will not use ver 4.0 in Ubuntu 11.04. So this release is delivered to the users with Ubuntu 11.10, 6 months after original release!

At this point, many can say “Yea, Mark is calling for synchronizing releases”, but that’s not a solution. What if 11.04 is so great, that people don’t want to migrate to 11.10? If it’s a LTS and majority will want to stick to it for a loong time? (see XP-Vista migration rates) or if it’s simply not good for some reason, and journalists advice to stick to 11.04 and wait for 12.04?

I think that the only proper solution is a vendor controlled backporting highway. A process that would allow a vendor (or vendor licensed volunteers) to backport apps (usually the more front-end user oriented ones) and deliver them with the updates to all users of a release.  Otherwise, vendors will start pretending that such a release is fixing some Scary and Serious Security Vulnerabilities  that might kill your cat or grandpa.

Business is business… :/