Compliments Through Criticism

Technical criticism, even when direct and unpadded, is not rude. Indeed, it can be a form of flattery: the critic is saying, by implication, that the target is worth taking seriously, and is worth spending some time on. That is, the more viable it would have been to simply ignore someone’s post, the more of a compliment it becomes to take the time to criticize it (unless the critique descends into an ad hominem attack or some other form of obvious rudeness, of course).

— Karl Fogel, Producing Open Source Software

Browser Buster II – Add-on Version

Browser Buster, the stress-testing page for Firefox Mobile I mentioned a week or two ago is now an add-on.

You can stress-test Firefox Mobile by visiting http://bit.ly/LH7Kmc , installing the add-on, opening 3 tabs on any web page and then leaving your phone running. Make sure you are on WiFi, and plugged in to power.

Geeky Details

Unfortunately, the Jetpack API for Firefox Mobile is not all there yet, and so I’ve had to implement it in a rather unusual way, using PageMod rather than the Tabs API. The add-on inserts a bit of JS into every page loaded telling it to redirect to a new random URL after 7 seconds.

So this version is not vulnerable to frame-busting scripts, but it is vulnerable to onload modal popups (“Hey! We have an Android app!”) and to pages failing to load entirely. Still, it seems to have better uptime than the iframe-based version. Once the Tabs API is implemented for Jetpack on Firefox Mobile, I can revise it again to be even more robust. It could also now be changed to interact with the page more – clicking links, changing the DOM etc. A good project for someone who sees potential here and wants to take this further.

Top tip: have it running in 3 tabs at once, and keep the tab dropdown open. The thumbnails don’t update (Boo!) but the page titles do, so you can see if it’s got stuck on a page, e.g. “Problem loading page”.

You can enable and disable it via about:addons. Note that because of the way I’ve had to implement it, it makes normal browsing pretty much unusable (“stop redirecting me to random pages!”), so you’ll want to disable it when not testing.

Firefox Mobile’s stability seems to have improved recently; I’ve not seen any crashes with Nightly all morning.

Feelings Affect Productivity (And Other Things)

It may seem odd to focus as much on the participant’s feelings as on the surface of what they say, but to put it baldly, feelings affect productivity. Feelings are important for other reasons too, but even confining ourselves to purely utilitarian grounds, we may note that unhappy people write worse software, and less of it. Given the restricted nature of most electronic media, though, there will often be no overt clue as to how a person is feeling. You will have to make an educated guess based on a) how most people would feel in that situation, and b) what you know of this particular person from past interactions.

— Karl Fogel, Producing Open Source Software

Mobile Market Reports

“thinkinsights” and Google have released some fascinating data about smartphone usage, gathered from detailed consumer surveys.

All the presentation reports (right hand column) have roughly the same format. Why not download the report for your country, and the one for Brazil (the launch country for B2G) and see how different things are there compared to where you live?

Compared to the UK, in Brazil:

  • Far fewer people have smartphones (14% vs 51%)
  • Smartphones are used less often (40% vs 59% daily)
  • They are used on-the-go less often (64% vs 86%) – poorer network coverage?
  • Social networking is proportionately more popular than email
  • Smartphone gaming is significantly less popular (39% vs 62%)
  • They use fewer apps, even free ones (14 vs 23 installed)
  • Almost all smartphone users are urban
  • Cohabitation is significantly less common (20% vs 11%)

Thoughts: reading between the lines, network coverage is poorer and data-on-the-go is harder to find. We need to make sure B2G phones and apps are solid in absence of a good network connection. Also, the phone will be the only computing device for many users.

The ‘other-licenses’ Directory: Don’t Use It

This is a public service announcement. There is a top-level directory in mozilla-central (and similar repos) called “other-licenses”. Don’t put any more code in it. Really. There’s now even a README saying so.

Longer version: this directory is not for non-MPLed code, it’s for non-MPL-compatible code, of which we have very little. There is some stuff in there which shouldn’t be, but let’s not make it worse, OK? :-) Keep your code where it logically lives; don’t make your life harder than it needs to be. If you really think you are importing code which needs to be in there, you should be talking to licensing@mozilla.org first (as with any code import) and explicitly saying you think that this is where it should go, so they can tell you that you’re wrong ;-)

WikiProject Mozilla: Help Wanted

A week ago I lamented the sad state of the Mozilla-related articles on Wikipedia, and suggested it would be good to form a “WikiProject Mozilla” to clean them up. Robert McKay was kind enough to write a proposal on Wikipedia for such a project. If you are an existing regular or semi-regular Wikipedia editor and would like to help Mozilla by working on this, please add your “~~~~” to the Support section of that page, and keep an eye on its progress.

Mozilla Grows Too Big For Summit

A quick Public Service Announcement, just in case anyone still has their summer plans on hold: Mozilla is now too large (yay!) to get us all in one physical location. So there won’t be a Mozilla Summit this year. Instead, the hard-working Contributor Engagement team is stepping up the pace on regional MozCamps – we’ve already had one in Latin America, and they are planning one for Europe, one for Asia and one for Africa/The Middle East before the end of the year. I won’t steal their thunder; look for more details very soon :-)

Lindholm’s Law

If you are a software engineer, or in fact any sort of engineer, I strongly suggest you take careful note of what I will call “Lindholm’s Law”:

Never send a recorded communication containing a statement of opinion or decision on an IP-related legal question to someone who is not a lawyer.

Tim Lindholm’s unfortunate statement, contained in an email which was the subject of heavy legal argument in Oracle vs. Google, was:

We conclude that we need to negotiate a license for Java under the terms we need.

Even though one of the addressees of the email was a lawyer, and even though the email said “Attorney Work Product” and “Google Confidential” at the top, the court ruled that it was not attorney-client privileged, and could be used by Oracle in court. Read why.

GSoC 2012 Project List

The Google Summer of Code kicked off two weeks ago, and I am pleased to list the 18 projects being done under the Mozilla banner. This is a 50% increase on last year; we are very grateful to Google for being so generous with slots. The name of each student is linked to the location where they will be posting weekly updates on their progress, if you want to follow along with a project you are interested in. (Apart from those students who have not yet sent me this information; consider this a public reminder.) I’m sure they would appreciate any help or advice you have :-) Please make them feel welcome!

Project Student Mentor
Thunderbird: ‘No Reply’ Reminder Han Lin Jonathan Protzenko
Thunderbird: App Tabs Nguyen Ngoc Trung Mike Conley
Calendar: Improve Invitation Support Christian Kulpa Ludovic Marcotte
Dynamic MathML – Support <maction> Andrii Zui Fred Wang
HTML5 and CSS3 Examples on MDN Vikash Agrawal Jean-Yves Perrier
Get ISPDB Into Production Sergio Charpinel Blake Winton
Graphical Timeline of Browser Events Girish Sharma Panos Astithas
Improve Gmail Interoperability Atul Jangra David Bienvenu
Instantbird: Account Import Wizard Will Nayes Florian Quèze
L10n Tool for Standardization of Terms Gautam Akiwate Philippe Dessante
Meemoo Improvements Vilson Vieira Forrest Oliphant
Native Webapps Support on Linux Marco Castelluccio Felipe Gomes
Networking Dashboard Jiten Thakkar Patrick McManus
OpenBadges Back End Improvements Matthew Ramir Chris McAvoy
Port SuperTux to the Web Xingxing Pan Alon Zakai
Slide Drive Improvements Jeremy Banks Greg Wilson
User-Specified Content Security Policy Kailas Ravsaheb Patil Tanvi Vyas
WebSocket Testing Tool Robert Koch Yvan Boily

“Witness” Web App: Hackers Wanted

We need a “witness” web app which provides proof that person A has agreed to legal document X.

There are loads of applications for this:

  • Proof that a Mozilla contributor has agreed to our Committer’s Agreement
  • Proof that someone has agreed to the IPR policy necessary for contributing to a standards body mailing list
  • Proof that someone has agreed to a trademark licence

These things can be done without an app, but it’s dull and tedious for the person doing the paperwork. Much better to get a computer to do it.

In its simplest form, the app would just require a Persona login, show you the document, have you click “I Agree” and then store that information, with metadata such as time, IP address, document hash etc., perhaps sending a data bundle off to a timestamping service to prove it couldn’t be falsified later. There would also be a confirmation email sent out to the email account which would allow people to repudiate the agreement within a certain length of time. in case something had gone wrong.

There are loads of potential additional features – extra logging, a mechanism to email everyone to come back if the document is updated, notification of the document uploader when someone signs it, etc. But the basic idea is very simple, and could be really useful.

I asked for help on this at the start of last year, and got one response, but then the person turned out not to have time. Are there any web app hackers out there who would like to build a generally-useful piece of open source software?

Moar Crashes Please

I’ve heard it would be helpful to the Fennec Native team if they had more crash data. So I’ve written the world’s simplest random website loader. Load it up on your phone or tablet and just let it go. It loads a new random page every 10 seconds. Glance at it every 10 minutes and submit any crashes that appear, or hit “Back” if a frame-busting script broke it. You can test Fennec while doing something else! :-)

I’ve been running it on my phone and tablet for an hour and a half, and submitted 2 tablet crashes (one Flash, one in libdvm).

Of course, it may not produce a high crash volume because it doesn’t interact with the page. Ideally, it would be an add-on, so frame-busting wouldn’t affect it, it could dismiss pop-ups, follow links, crash reports would have the correct URL, and perhaps it could even auto-submit crash reports and restart itself. Suggestions for better tools to use would be most welcome.

Accepting Zimbra Meeting Invitations

I use Google Calendar, and am very happy with it (I can share it with my wife and vice versa, which is helpful). I use Thunderbird, and use the excellent “Google Calendar Tab” extension. All my Mozilla mail forwards to my own mailserver, and is not stored at Mozilla.

I regularly get meeting invites from Mozilla employees, which are sent out using Mozilla’s Zimbra installation. They come as a plain text summary plus an attached .ics file. How do I make the meeting owner happy by indicating that I am attending?

There’s no link in the email to click to say “I’m coming”. I can’t log into Zimbra, find the message and click “Attending”, because copies of my email are not stored at Mozilla. I could change that, but it seems like a sledgehammer to crack a nut, and anyway, it would be a pain to have to log in and find the mail. Also, it should be a regular occurrence that people not using Mozilla’s Zimbra get invited to Mozilla meetings – what do they do?

I don’t want to switch to using Lightning, and I’m not sure it would solve the problem even if I did.

Is this even possible? Does anyone know?

As a bonus, it would be awesome if I could double-click on the .ics attachment and have it passed to Google Calendar and added to my calendar. Do we yet have the technology for that sort of thing?

It’s even worse when receiving invites from Exchange, which does happen occasionally when I’m on a call run by Microsoft people. That _just_ comes as a icalendar file, and the date and time are not in the plain text, so I have to base64-decode it manually and then read the source and do the timezone maths to work out when the meeting is! I think Lightning handles these better, but as I said, I don’t want to use Lightning…