Mozilla L10NTeach yourself L20n at L20n.org

Language can be very difficult to capture within software localization. Each natural language in the world evolves at its own pace and in its own unique way, creating vibrant and rich means of expression. Sadly, simple static string translation is often ill-equipped to properly accommodate gender, conjugation, plural, or case changes required within the language by changing string variables and other run-time string composition issues. This is why we created L20n.

We’re super happy to announce that we’ve released an amazing tool to help localizers, engineers, and localization tool developers learn and practice L20n themselves! l20n.org contains a real-time text editor that allows you to edit L20n code and visually see how it impacts localization. The real-time editor is part of the “Learn” section of l20n.org dedicated to walk you through what L20n has to offer, feature by feature, and give you a chance to try these features out in real-time.

L20n is a localization framework (comprised of a pseudo-programming language) meant to transfer the ability to localize software using the fullness of any language from the developer to the localizer. L20n empowers localizers to be more independent of source language developers and have more control and flexibility in localizing software according to their native language’s demands.

l20n.org is live and running now! Go give it a try! Not only is it live, but its hosted on github for you to fork and contribute to. Enjoy testing out L20n!

 

Firebug BlogFirebug 1.12 alpha 6

getfirebug.com has Firebug 1.12 alpha 6

Firebug 1.12a6 fixes 11 issues
Firebug 1.12a6 is compatible with Firefox 20-23

 

Couple of highlights from this release

This feature allows referring various objects from the command line using new $p variable.

Use in Command Line

See also detailed description of this feature.

 

    • Precision for Console API %f log pattern (issue 6439)

Floats can be rounded by using the %.xf pattern inside the first console.log() argument. Here x denotes the number of decimal places the number should be rounded to.

Precision pattern

console.log("amount: %.2f", 4.3852)
will output
amount: 4.39

You may want to get to know about the other patterns available inside the Console API.

 

Please post feedback in the newsgroup, thanks

Jan ‘Honza’ Odvarko

 

QMOFirefox 22.0 Beta 2 Testday, May 24th

Greetings Mozilla contributors,

On Friday, May 24th we are organizing Firefox 22.0 beta 2 testday. We will focus on testing the overall functionality of the browser, with main focus on plugins.

We’ve set up an etherpad with all the details about the event.

No previous testday or testing experience is needed, so feel free to join us on the #testday IRC channel where our moderators will provide guidelines for you and answer your questions.

See you on Friday!

When: May 24, 2013.

BlueGriffonBlueGriffon EPUB Edition 1.7

I just released BlueGriffon EPUB v1.7 for all platforms. Purchasers of older versions can safely download and install it over their existing install, it will not reset profile or license credentials.

Note to Windows users: you may have to install the MSVC10 Redistributable Package since we moved to VC10. See the download page.

Mozilla SecurityMixed Content Blocking in Firefox Aurora

Firefox 23 moved from Nightly to Aurora this week, bundled with a new browser security feature. The Mixed Content Blocker is enabled by default in Firefox 23 and protects our users from man-in-the-middle attacks and eavesdroppers on HTTPS pages.

When an HTTPS page contains HTTP resources, the HTTP resources are called Mixed Content. With the latest Aurora, Firefox will block certain types of Mixed Content by default, providing a per-page option for users to “Disable Protection” and override the blocking.

What types of Mixed Content are blocked by default and what types are not? The browser security community has divided mixed content into two categories: Mixed Active Content (like scripts) and Mixed Passive Content (like images). Mixed Active Content is considered more dangerous than Mixed Passive Content because the former can alter the behavior of an HTTPS page and potentially steal sensitive data from users. Firefox 23+ will block Mixed Active Content by default, but allows Mixed Passive Content on HTTPS pages. For more information on the differences between Mixed Active and Mixed Passive Content, see here.

Mixed Content Blocker UI
Designing UI for security is always tricky. How do you inform the user about a potential security threat without annoying them and interrupting their task?

Larissa Co (@lyco1) from Mozilla’s User Experience team aimed to solve this problem. She created a Security UX Framework with a set of core principles that drove the UX design for the Mixed Content Blocker.

When a user visits an HTTPS page with blocked Mixed Active Content, they will see a shield icon in the location bar:

Shield Icon Doorhanger shown on HTTPS page with Mixed Active Content

Clicking on the shield, the user will see options to “Learn More”, “Keep Blocking”, or “Disable Protection on This Page”:

Shield Doorhanger Drop Down UI

If a user decides to “Keep Blocking”, the notification in the location bar will disappear:

If the user decides to Keep Blocking, the shield will disappear.

On the other hand, if a user decides to “Disable Protection on This Page”, all mixed content will load and the lock icon will be replaced with a yellow warning sign:

Yellow Warning Triangle appears after the user Disables Protection

When a user visits an HTTPS page with Mixed Passive Content, Firefox will not block the passive content by default. But since the page is not fully encrypted, the user will not see the lock icon in the location bar:
A page with Mixed Passive Content will show the Globe icon instead of the Lock icon.

Compatibility
We have a master tracking bug for websites that break when Mixed Active Content is blocked in Firefox 23+. In addition to websites that our users have been reporting to us, we are running automated tests on the Top Alexa websites looking for pages with Mixed Active Content. If you run into a compatibility issue with a website involving mixed content, please let us know in the master bug, or take a step further and contact the website to let them know. Chances are, their website is also broken on Chrome and/or Internet Explorer. Chrome and Internet Explorer also have Mixed Content Blockers, but their definitions of Mixed Active and Mixed Passive Content differ from slightly from Firefox’s definition.

Want to learn more?
Still curious and want to learn more details about the Mixed Content Blocker in Firefox? Check out this more detailed blog post or feel free to ask us questions on mozilla.dev.security.

Software CarpentryWrapping Up at UC Davis

Jenna Lang has posted a great wrap-up on the boot camp at UC Davis — with Python cookies!

cookies

Software CarpentryExperiences with the Oxford DTCs

Mario Antonioletti has posted his experiences on being a first-time instructor at our boot camp for the Oxford doctoral training centres, our second in Oxford, last week.

Mozilla ITRFO: DNSSEC Resolution failures (mozilla.org) 20130515@1800 PDT [872818]

On May 15 at 1800 PDT Nagios  alerted the start of sporadic DNS resolution failures.  This post summarizes the events, the impact and specific steps Mozilla IT is taking to avoid future disruptions of this nature.

This post is intended to be technical in nature.  DNSSEC is fairly technical and DNSSEC failures tend to be similarly technical. As we’ve done before, we hope to share the failures we encounter in production so you don’t have to experience the same.

SUMMARY

An SOA mismatch between SVN and the nameservers was caused by the DNSSEC signer refusing to sign with an expired ZSK. This was misdiagnosed as a KSK issue, leading to a DNS outage for DNSSEC-verifying resolvers.

DETAILS

In the afternoon of May 15, the nameservers refused to load SOA update 2013051500 for the mozilla.org DNSSEC-signed zone.

Investigation found that the DNSSEC signer was refusing to sign the zone, providing only the error “fatal: cannot find SOA RRSIGs“. In hindsight, this undocumented error indicates that the zone’s ZSK has expired.

Mozilla’s domain registrar publishes DS records for the mozilla.org KSK. When the expired key was found at 16:44, it was misunderstood to be a KSK, rather than a ZSK. A new KSK was generated and its DS record added to Mozilla’s domain registrar.

The new KSK did not resolve the signing errors. Mozilla’s domain registrar was found to rate-limit DS record changes, preventing the new KSK from being reverted. DNS lookups began showing invalid DS records from Mozilla’s domain registrar, but this was later found to be internal DNS only.

After examining the keys (both current and expired) more closely, the expired key was found to be a ZSK, rather than a KSK. Renewing the ZSK fixed the DNSSEC signer. The mozilla.org SOA 2013051500 was signed by both KSKs and the new ZSK, and then published.

Comcast users began reporting DNS resolution issues of mozilla.org, complicating access to various Mozilla properties. DNSSEC validation tools showed unexpected issues with the signed mozilla.org zone.

The DS records were confirmed to be correct externally, so the mozilla.org zone was re-signed without the old KSK, leaving only the new KSK and new ZSK. This resolved the validation issues for reasons unknown, and Comcast users reported DNS working correctly again.

Bugs have been filed to document the KSK/ZSK renewal process, to monitor the expiration times of those keys, and to monitor that the zones validate.

BUGS
  • 872818: mozilla.org SOA mismatch, DNSSEC signer refusing to sign
  • 872831: alarm when DNSSEC signing keys are expiring soon
  • 872884: document ZSK and KSK renewal/rollover process
  • 872832: regenerate mozilla.org DNSSEC ZSK (resolved)
  • 872885: regenerate mozilla.org DNSSEC KSK (resolved)
  • 872927: monitoring: add full validation of DNSSEC zones
TIMELINE (PST8PDT, UTC -0700)
  • 15:32 – SOA mismatch detected between nameservers 2013051402 and svn 2013051500.
  • 16:03 – Found DNSSEC signer refusing to sign mozilla.org 2013051500
  • 16:44 – Found expired key preventing signing of mozilla.org
  • 16:52 – Added new KSK to Mozilla’s domain registrar alongside existing KSK to renew expired key
  • 17:06 – Found that expired key was ZSK, not KSK as previously thought.
  • 17:27 – Signed mozilla.org with both KSKs and new ZSK
  • 17:45 - Mozilla’s domain registrar publishing incorrect hash for new KSK (misleadingly, for internal lookups only)
  • 18:00 – Comcast users reporting sporadic DNS resolution failures
  • 18:20 – Validation issue found with signed zones
  • 18:25 – Signed mozilla.org with new KSK and new ZSK
  • 18:30 – Comcast users reporting DNS resolving successfully
  • 18:35 – Validation issue confirmed resolved
NOTES
  • ZSK and KSK are “zone signing key” and “key signing key” for mozilla.org. DNSSEC permits multiple KSKs and autoselects the latest ZSK. We sign with a single KSK, outside of 17:30-18:25 above.
  • There is no filesystem difference between ZSKs and KSKs. The distinction is the word “zone” or “key” in the comment in the first line of the keyfile.

hacks.mozilla.orgBuilding a Notes App with IndexedDB, Redis and Node.js

In this post, I’ll be talking about how to create a basic note-taking app that syncs local and remote content if you are online and defaults to saving locally if offline.

notes app sample

Using Redis on the server-side

When adding records in Redis, we aren’t working with a relational database like in MySQL or PostgreSQL. We are working with a structure like IndexedDB where there are keys and values. So what do we need when we only have keys and values to work with for a notes app? We need unique ids to reference each note and a hash of the note metadata. The metadata in this example, consists of the new unique id, a creation timestamp and the text.

Below is a way of creating an id with Redis in Node and then saving the note’s metadata.

// Let's create a unique id for the new note.
client.incr('notes:counter', function (err, id) {
 
...
 
    // All note ids are referenced by the user's email and id.
    var keyName = 'notes:' + req.session.email + ':' + id;
    var timestamp = req.body.timestamp || Math.round(Date.now() / 1000);
 
    // Add the new id to the user's list of note ids.
    client.lpush('notes:' + req.session.email, keyName);
 
    // Add the new note to a hash.
    client.hmset(keyName, {
      id: id,
      timestamp: timestamp,
      text: finalText
    });
 
...
 
});

This gives us the following key pattern for all notes on the server-side:

  1. notes:counter contains all unique ids starting at 1.
  2. notes:<email> contains all the note ids that are owned by the user. This is a list that we reference when we want to loop through all the user’s notes to retrieve the metadata.
  3. notes:<email>:<note id> contains the note metadata. The user’s email address is used as a way to reference this note to the correct owner. When a user deletes a note, we want to verify that it matches the same email that they are logged in with, so you don’t have someone deleting a note that they don’t own.

Adding IndexedDB on the client-side

Working with IndexedDB requires more code than localStorage. But because it is asynchronous, it makes it a better option for this app. The main reason for why it is a better option is two-fold:

  1. You don’t want to wait around for all your notes to process before the page renders all elements. Imagine having thousands of notes and having to wait for all of them to loop through before anything on the page appears.
  2. You can’t save note objects as objects – you have to convert them to strings first, which means you will have to convert them back to objects before they are rendered. So something like { id: 1, text: 'my note text', timestamp: 1367847727 } would have to be stringified in localStorage and then parsed back after the fact. Now imagine doing this for a lot of notes.

Both do not equate to an ideal experience for the user – but what if we want to have the ease of localStorage’s API with the asynchronous features of IndexedDB? We can use Gaia’s async_storage.js file to help merge the two worlds.

If we’re offline, we need to do two things similar to the server-side:

  1. Save a unique id for the note and apply it in an array of ids. Since we can’t reference a server-side id created by Redis, we’ll use a timestamp.
  2. Save a local version of the note metadata.
var data = {
  content: rendered,
  timestamp: id,
  text: content
};
 
asyncStorage.setItem(LOCAL_IDS, this.localIds, function () {
  asyncStorage.setItem(LOCAL_NOTE + id, data, function () {
    ...
  });
});

The structure of the IndexedDB keys are very similar to the Redis ones. The pattern is as follows:

  1. All local ids are saved in a localNoteIds array
  2. All local note objects are saved in note:local:<id>
  3. All remote/synced ids are saved in a noteIds array
  4. All remote/synced note objects are saved in note:<id>
  5. Local notes use a timestamp for their unique id and this is converted to a valid server id once Redis saves the data

Once we’re online, we can upload the local notes, save the remote ones on the client-side and then delete the local ones.

Triggering note.js on the client-side

Whenever we refresh the page, we need to attempt a sync with the server. If we are offline, let’s flag that and only grab what we have locally.

/**
 * Get all local and remote notes.
 * If online, sync local and server notes; otherwise load whatever
 * IndexedDB has.
 */
asyncStorage.getItem('noteIds', function (rNoteIds) {
  note.remoteIds = rNoteIds || [];
 
  asyncStorage.getItem('localNoteIds', function (noteIds) {
    note.localIds = noteIds || [];
 
    $.get('/notes', function (data) {
      note.syncLocal();
      note.syncServer(data);
 
    }).fail(function (data) {
      note.offline = true;
      note.load('localNoteIds', 'note:local:');
      note.load('noteIds', 'note:');
    });
  });
});

Almost done!

The code above provides the basics for a CRD notes app with support for local and remote syncing. But we’re not done yet.

On Safari, IndexedDB is not supported as they still use WebSQL. This means none of our IndexedDB code will work. To make this cross-browser compatible, we need to include a polyfill for browsers that only support WebSQL. Include this before the rest of the code and IndexedDB support should work.

The Final Product

You can try out the app at http://notes.generalgoods.net

The Source Code

To view the code for this app feel free to browse the repository on Github.

Firefox FlicksFirefox Flicks 2013 Staff Pick - Tobi

The Flicks team gets to see every entry that comes in for the contest. While there’s still a few months left in the contest we thought we’d share some of our favorites. Being featured as a staff pick has no bearing on the Firefox Flicks voting process. It’s just Flicks we’ve seen come in that we think are really interesting and wanted to share them with Flicks fans. We hope you find them inspiring.


“I’m Tobi, part of the Firefox Flicks team. I work on the project in general and I help the community with their activities around Flicks 2013. I chose Scooter from the USA as my pick.

The idea seems a bit odd first of all. But I like it. The video is nicely produced as well. It gives a quite different perspective on things. I respect it a lot when people from older generations are still exploring new technologies. Actually it looks like he has a jailbroken iPhone running FirefoxOS. That’s bad ass. I can understand that when you get older you might not always want to go with the latest “trends” anymore. You might be tired of that. It’s a pitty. Mobile computing is really something that can make everyones’ life a little easier, no matter if you’re young or old. This man is doing everything right.

Having seen all the Flicks entries so far, I think we can be really happy about having such an engaged community. It takes a lot of effort to create a submission, so I already wanted to say thanks to everyone who contributed to far!”

Mozilla UXHerding UX: How to Plan a Workshop for a Diverse Creative Team

A few weeks ago, the entire User Experience Team came together for our UX Summit to reflect on our work and our organization. As part of the week’s activities, I planned and led a day-long workshop around the goal of creating and shipping products that our users love.

Running a successful workshop for a large group of designers, researchers, prototypers, and UX managers who work on different products in Mozilla can be quite a challenge. This is my reflection on how I tried to help a diverse group such as ours discuss common challenges and begin creating a shared process.

Plan activities that are relevant to each person’s work

This suggestion seems obvious, but it’s often overlooked in many workshops, especially ones led by those who don’t know the participants well. It’s not uncommon to learn new skills in a great workshop then realize later on that you have no clue how to integrate that learning into your own product process.

I wanted to make sure that my colleagues would walk away feeling like they had something tangible to take back to the product teams they work with. Thus, many of my activities began with individual (or small team) reflections where I asked everyone to apply a framework or process I put together to their own product experiences. This approach provided us with some common tools and language to evaluate our impact as a UX team, while allowing each person to introspect on his or her own work.

Self reflection

Individual worksheets help our diverse team reflect on specific projects while discussing informally

Not everyone has to speak up to be an active participant

I’ve never liked workshops where each participant is forced to share, one after another. I understand the reasons for doing so (such as allowing each person to be heard, not just the majority voice), but it’s hard to scale this approach, introverts hate being required to speak up, and everyone’s answers tend to be verbose variations on the same theme. Besides, with a diverse organization such as ours, things that are meaningful to one product team can be irrelevant to another.

I still had a large group discussion at the end of each activity, but rather than asking everyone to report out, I made sure that it was only one of multiple ways that people could voice their thoughts and observations to the rest of the team. During the individual reflection portion of an exercise, participants had worksheets that they could fill out alone or talk to others about as they saw fit. This task gave people the opportunity to reflect specifically about the issues they cared about. Afterwards, I also asked each person to contribute their thoughts (on post-its or name tags) to a large group visualization. These maps gave everyone a chance to share their point-of-view and quickly see the bigger organizational picture from everyone else’s contributions.

In the end, I think the balance between reflecting on individual team needs and visualizing patterns within the larger UX organization created a richer discussion about issues that were relevant to the entire group.

Group mapping

About 40 participants share their ideas quickly through a group map

Scaffold difficult tasks (don’t shy away from them)

Not every activity in a workshop is going to be easy to explain or easy to do. Some activities are hard because they tap into uncomfortable/sensitive team issues. Others require complex thinking that cannot be compressed into the time you have for the workshop.

For my workshop, I wanted to do a particular activity that I knew was challenging but useful in the long run. So I tried to break it down into smaller tasks that were easier to understand. I also provided written instructions, examples, and worksheets to help my colleagues get started. Despite my preparation, people were still fairly confused in the beginning, but I persisted in explaining the task and why the activity was important, until eventually everyone tried it out. Later on, some participants told me that this challenging activity was one of the most useful components of my workshop for them.

Don’t shy away from activities that challenge the team; they often lead to the most meaningful changes. Instead, acknowledge the difficulty of what you’re asking people to do, give them enough time to do it, and (as cheesy as it sounds) have faith in your team’s ability to figure it out.

Practical Tip: I scheduled my hardest activity about an hour before lunch so that everyone had time to wake up but weren’t sluggish from having eaten or exhausted from thinking. I think the promise of a lunch break encouraged people to power through the challenging task. (Just don’t end late for lunch, or else you will have some very unhappy participants!)

C’est La Vie

I’m a planner so I spend a lot of time preparing for the workshops I lead. Planning the right activities and making sure they run smoothly ensure that a workshop meets its goals and isn’t just a waste of time for everyone involved.

But it’s also important to remember that a successful workshop isn’t one where you hit every bullet point in your agenda; it’s one where the participants get something valuable out of the time they spend with you. As a facilitator, you have to be responsive to the needs of the group as the workshop progresses. Let the discussion go longer if everyone’s energy seems to be there. Cut the activity short if people look like they’ve checked out. If it seems like the group isn’t getting to insights, modify the activity on the fly so that they do.

During breaks and individual activities, I like to get the temperature of the room by talking to individuals and seeing whether they still find the exercises relevant for their particular group. As much as I try to plan beforehand, my activities can still be slightly biased towards an interaction designer’s perspective. It’s important that I check my own assumptions about what other disciplines within the UX team need.

Drawing Insights

During breaks, people wandered over to the group maps and shared their insights informally

As a parting thought, remember that your workshop isn’t and shouldn’t be the only opportunity you have to accomplish whatever goals you set. Instead, it’s a starting point for later conversations and activities with individuals and smaller teams. The art  of facilitating the workshop is in figuring out where to focus the group’s energy  so that you build that great starting point for change to ripple through your organization.

Software CarpentryAnnouncing Hack4ac

Hack4ac is a one-day hackathon in London, England, on July 6. Its goals are:

  • Demonstrate the value of the CC-BY licence within academia. We are interested in supporting innovations around and on top of the literature.
  • Reach out to academics who are keen to learn or improve their programming skills to better their research. We're especially interested in academics who have never coded before.

It looks like fun—if you're in the area and interested in getting involved, they'd be happy to have you there.

Mozilla Add-ons BlogAdd-ons Update – Week of 2013/05/15

I post these updates every 3 weeks to inform add-on developers about the status of the review queues, add-on compatibility, and other happenings in the add-ons world.

The Review Queues

  • Most nominations for full review are taking less than 3 weeks to review.
  • Most updates are being reviewed within 1 week.
  • Most preliminary reviews are being reviewed within 1 week.

These stats are taken from the last queue report:

  • 88 nominations in the queue awaiting review.
  • 59 updates in the queue awaiting review.
  • 57 preliminary review submissions in the queue awaiting review.

If you’re an add-on developer and would like to see add-ons reviewed faster, please consider joining us. Add-on reviewers get invited to Mozilla events and earn cool gear with their work. Visit our wiki page for more information.

Firefox 21 Compatibility

The compatibility blog post for Firefox 21 is up, and the the compatibility bump for AMO add-ons was run last week. Firefox 21 was released yesterday, so all compatibility updates should be uploaded to AMO as soon as possible, if they haven’t been already.

As usual we recommend using the Aurora and Beta branches to test your add-ons ahead of time.

ESR Compatibility

There are a couple of compatibility issues that are related to the ESR and other business deployments that are worth mentioning:

  • In Firefox 21, certain folders in the Firefox install directory where moved under browser/. You can read more about it on this bug. This affects installers that drop add-ons or other customizations in the install directory.
  • We’re planning on changing the version number scheme for ESR releases. The idea is that, if we have ESR 24, ESR version 24.1 would be the security upgrade that corresponds to Firefox 25. This way it is easier to associate an ESR version with its mainline equivalent in security patches. For add-ons, this means that maxVersions should always be in the form 24.*, rather than 24.0.*. This is especially important for add-ons with binary components, which don’t have default compatibility.

Hive Learning Network NYCWebmaking as Connected Learning

This is re-posted from Matt Thompson’s blog. Connected Learning wants to revolutionize the way people learn. How can Webmaker be a part of that movement? These new resources on Connected Learning are highly recommended reading for anyone interested in the … Continue reading

about:communityLetting go to make room for what’s next- New thoughts on Knowledge Share

Change.  For some it’s a bad word.  For some it’s exciting.  Lately I’ve been stuck, and now I see that change was the next step to stuck.  I had to get stuck in order to change.  Change will take some letting go.

So what’ the change?  Capture Mozilla is Air.Mozilla too.  Duh you say?  Sounds simple! Simple yes, easy no.  Capture Mozilla was a brain child of mine born from the need to scale knowledge and know how, not in the form of formal training, but in the voice of the Mozillians who are sharing.  Here are some things I’m learning that lead to a (change) wider view of knowledge share:

1) Ownership matters.

When we build a video, either really scrappy or really produced, we want some ownership. Maybe we don’t want to hand it over to the Capture Mozilla project.  Maybe we want to share it, but curate it from a place that is our own, that we have ownership in.

2) It’s hard to know what’s C-Mo.

There are 4 distinct channels for Capture Mozilla.  Well, what if YOUR knowledge share doesn’t fit?  Do we cram you into the C-Mo box?  Do we shape your share into the C-Mo mold?  No.  We follow you.  Like Mozillians ourselves, there are many variations of video knowledge share and putting us in a box is limiting.

3)  Making your own box makes sense.

Maybe your knowledge share fits into a C-Mo box.  Maybe you and your group or initiative, or subject deserves it’s own box.  And that box comes in the form of channels.   Checkout Air.Mozilla channels and see what I mean.  They are in their infancy and can only grow with your participation.  Someone’s got to go first, it could be you.

Notice all the “maybe’s” in my post?  That’s because I’m still thinking.  Less stuck, at the beginning of change and  thinking of all the “what’s possible” and “maybe’s”.  What I do know now is that Capture Mozilla is a project, not a place.  Making implicit knowledge explicit though video storytelling can and does happen in channels too.  By the way, changing the thrust of my work takes some letting go.  And that hurts a little.  Change, there’s that work again.

And so now I see that the first iteration of Capture Mozilla was the baby version.  The version that said all short videos live here.  The idea of  Capture Mozilla is growing up and it’s next stage is the freedom of channels.

It’s a project, an intention, not a place.  Whew.

no..this one“So, in a given time frame, plan to achieve something worthwhile in half the time, throw it away, then rebuild what has to be a better version, given the advantages of hindsight.” – from an essay in the MythicalManMonth

about:communityGrow Mozilla discussion this Thursday

If you’re interested in helping people get involved with Mozilla, join us tomorrow to discuss community building at Mozilla.

Firefox FlicksWhat Can You Win? — Firefox Flicks 2013 Prizes

You’ve spent days and nights planning the perfect flick. You’ve called in all your personal favors and created a winner. But what does winning Firefox Flicks actually get you? Fame, (a modest) fortune and opportunities to work with film industry luminaries — all this and more. We’re really excited to give you more details on the fantastic prizes you can win this year.

Just for participating, you’ll receive an exclusive, limited edition Firefox Flicks sticker sheet that was designed for the 2013 competition. That’s a little thank you from us. Keep reading for all the details.

People’s Choice Awards

People’s Choice is a new award category this year and will include flicks chosen by the public. The three People’s Choice winners will receive a limited edition Flicks 2013 prize package and have their videos promoted on our channels. They’ll also be featured in the Flicks gallery on Givit and on MovingArt channels.

Early Entry Awards

This year, we’re choosing three Early Entry Award winners. Each winning team will receive $1000 USD and have their flick promoted on our channels. They’ll also get a special edition 2013 prize pack and will automatically qualify for one of the 40 finalist spots.

The 40 Firefox Flicks finalists will have their films evaluated by our panel of judges and all finalists will receive SnagIt and Camtasia software licences from TechSmith (one per person).

Finalists

From the 40 finalists, the judges will choose four regional runners-up, four regional winners and a Grand Prize winner.

Regional Winners

The four regional runner-up teams will each receive $2500 USD, a one-year Shooting People membership for each team member, a special edition Flicks 2013 prize package and have their flick promoted on our channels.

The four regional winner teams will each receive $5000 USD, a one-year Shooting People membership for each team member, a limited edition Flicks 2013 prize pack and have their flick promoted on our channels. Their videos will also be featured in the Flicks gallery on Givit and on MovingArt channels. Additionally, the four regional winners will be flown to Toronto, Canada, for the 2013 Toronto International Film Festival for the award ceremony and celebration.

Grand Prize Winner

Finally, there is the Grand Prize winner. Make sure you’ve got your passport ready, because the Grand Prize winning team will fly to Los Angeles to work with Flicks judges Couper Samuelson (Producer) and Franklin Leonard (Founder, Black List), as well as representatives from Panavision, to professionally produce their winning entry using a comprehensive Panavision digital camera package. If timing allows, the winning team will also get a two-day training session at the Dolby Institute in LA, as well as an invitation to a movie premiere and after-party at the Dolby Theater.

The Grand Prize winner will also receive a one-year Shooting People membership for each team member, a limited edition Flicks 2013 prize pack and have their flick promoted on our channels. Their videos will also be featured in the Flicks gallery on Givit and on MovingArt channels. Additionally, the Grand Prize winner will be flown to Toronto, Canada, for the 2013 Toronto International Film Festival for the award ceremony and celebration.

Sound amazing? Want to win? You still have a few weeks to get your flick in for the next round of Early Entry Awards and before the contest closes on July 31, 2013.

The DenSpring Theme for Firefox

In the Northern Hemisphere, spring has sprung! People are basking in longer days, excited to be able to spend more time outside and taking time to smell the blooming flowers.

Speaking of flowers, there’s a featured Firefox theme that will be sure to make your browser bloom — it’s called Fine Fractal Flower. Even if it’s not spring where you are, this nature-inspired theme is sure to make you smile.

Here’s what the theme looks like:

Fine Fractal Flower Theme

And what it looks like once installed:

fractalflowerbrowser

If this theme isn’t for you, there are thousands more available!

Meeting NotesFirefox Status: 2013-05-14

General Topics

  • Work week agenda

Friends of the Firefox team

Give a shoutout/thanks to people for helping fix and test bugs.

  • mconley giving a shoutout to ge3k0s (Guillaume C.) for keeping us on our toes in Australis land. He’s doing great work filing bugs and catching regressions.

Stand ups

Suggested format:

  • What did you do last week?

  • What are working on this week?
  • Anything blocking you?

Please keep your update to under 1 minute!

gavin

  • reviews

  • work week organization
  • new hire stuff
next week
  • actually followup on test pilot

  • more work week/hiring

felipe

  • AddonRepository bug 853389: feedback from Blair implemented and going through tests now, met with Irving to discuss file writing stuff and with Irving and Mossop to discuss downgrade concerns

  • Fixed intermittent bug343515.js orange (bug 765192)
  • Reviewed all 31 GSoC applications once and two-pass reviews on the project I’m gonna mentor

markh

  • Landed a couple of “panel” features and patches to make Social use them.

  • Landed the async form history patch after fixing an orange which caused it to be backed out.
  • Getting my head around the e10s work and made a start on moving the form observer and autocomplete to an out-of-process message-based model.

mconley

  • Jamun branch is dead – Australis work is happening solely on UX branch now.

  • As per UX request, I’ve moved the star button back into the URL bar for now while I work on the new bookmark widget for Australis. Merged this change into UX.
  • Fixed strange appearance of popups on OSX
  • Been tackling randomly failing tests under browser/base/content/test. Very frustrating.
  • Laid out a rough roadmap for the rest of the Australis work – viewable from line 330 onwards here.
  • Started conversations with ZER0 from the Jetpack team about Australis impacts to the SDK
  • Lots of reviews

mikedeboer

Last week:

This week:

  • take as many Australis related bugs as…

  • Async perf meeting

gijs

Last week:

  • One public holiday

  • Australis
    • bug 855683 (JP tests) and bug 869939 (migrate stuff from addon bar to navbar) – blocked on decisions regarding addon-bar removal, talked with jetpack folks and mconley, posted to fx-dev, waiting on finalizing discussion there + ux feedback

    • landed bug 853083 (tabs left margin on windows without the app button)
    • lots of stuff about bug 853415 (weird overflow bug), seems we’re now going to able to fix it by never hiding the navbar
    • Started work on never hiding the navbar in bug 870545 and bug 752434.
    • behind the scenes stuff about bug 658467 (tab label fadeout rather than ellipsis), looking hard to make work in a performant manner
  • Other
    • landed bug 865316 (polish for OS X menubuttons)

    • still waiting for reviews on Fx reset tab restoring, and UX response from Limi on whether we care enough about tab groups

This week:

  • More Australis customization stuff (navbar, tab scrollbar fixes after that’s done)

  • Want to tackle UX orange/red and get it just as green as the trees outside my window.

MattN

Last week:

  • all Australis, all the time

    • bug 858089 = Tab stroke polish is very close. Little issues keep popping up.

    • Australis OS X LWT landed
    • Bug triage
  • Intern phone screen
  • Finish bug 858089 = Tab stroke polish

  • Fix bug 864608 – Tab drag placeholder
  • bug 857886 – HiDPI OS X tabs
  • More Australis follow-ups
  • Review Gijs’ clip-path patch

jaws

This past week:

  • Gave a presentation at Mobile Monday Detroit

    • Should have a video of the presentation uploaded to YouTube and blogged about
  • The UI for customization mode is near-finalized for Windows, OS X, and Linux. Some minor bugs here and there.
  • The location bar and search container now have a minimum width (on UX)

This week:

  • Look at GSoC proposals

  • Work on toolbar overflow for Australis
  • Lots of smaller but nice wins for Australis to work on (bug 870865, bug 870866, bug 870869)
  • Add some more functionality to the History widget (Clear recent history…, etc)

UX Updates

lco

  • Back from vacation, trying to catch up!

  • How many sites is Mixed Content actually breaking?

Details

  • Tuesdays – 10:00am Pacific, 1:00pm Eastern, 17:00 UTC

  • Dial-in: conference# 91337
    • US/International: +1 650 903 0800 x92 Conf# 91337

    • US toll free: +1 800 707 2533 (pin 369) Conf# 91337
    • Canada: +1 416 848 3114 x92 Conf# 91337
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 91337
  • irc.mozilla.org #fx-team for backchannel
  • “Firefox” Vidyo Room

Meeting NotesSeaMonkey: 2013-05-14

Agenda

  • Who’s taking minutes? -> Ratty

  • Nominees for Friends of the Fish Tank TBA

Action Items

(who needs to do what that hasn’t been recorded in a bug) We should assign people to the open items.

NEW

OPEN

  • Need to reward the nominees of the friends of the fish tank from this year!

CLOSED

Status of the SeaMonkey Buildbot Master and Tree

  • No Windows langpacks since 8th April on trunk. Needs investigating.

    • Comment from mcsmurf on this: Not clear what is meant by this, please clarify. xpi/win32/ folders on FTP server look fine. Also file a bug if something needs to be investigated/fixed.
  • The Java on Linux bug has been tracked down to being due to our (SM’s) build config. Basically our RelEng team needs to check whether we can switch to linking libstdc++ dynamically, like FF and TB do. See: bug 754622 Oracle/Sun Java jre1.7.0_04 and later does not work in SeaMonkey.
    • In the mean time, InvisibleSmiley has added the workaround to the 2.17 and 2.18 release notes.
  • Tinderbox is going to be EOLed. We need to move the SeaMonkey tinderboxpushlog off.
    • Mostly done now, just a few loose ends.

    • Callek has gotten up and running a newer version of TBPL (that doesn’t depend on tinderbox) for testing. This will be deployed eventually to replace the current TBPL code we are running.
    • Mcsmurf needs to talk to Callek to see if tbpl can get more memory (some PHP(?) setting?) as sometimes fetching a log fails due to not enough memory (See bug 845844).
  • Intermittent issue with Mac OSX64 Debug Leak log comprehension. Issue tracked in bug 774844. Also see possibly related Thunderbird bug 806492.
  • Two remaining machines on Parallels are the buildmaster (cb-seamonkey-linuxmaster-01) and Linux64 (cb-seamonkey-linux64-01). These need to be migrated to ESX. Specifically:
    • sea-vm-linux64-1 will replace cb-seamonkey-linux64-01 (and running jobs now).

    • sea-master1 will replace the current buildmaster.
    • Both our buildmaster and cb-seamonkey-linux64-01 are down due to hardware failure. This means no builds and no releases until they are replaced. After two days of help from DCOps, Callek has decided to cease all recovery operations and concentrate on setting up the puppetmaster to get the ball rolling on getting our new buildmaster out. Therefore, our 2.18b5 and our 2.18 release are cancelled. instead will go directly to the 2.19 series of betas.
  • bug 740633 set up seamonkey HPs in scl3. Hardware installed and iLO configured. CentOS 6.3 installed.
    • Awaiting puppetmaster fully prepared to instantiate as Linux Mock-Based slaves
  • sea-puppet (one of said hp machines) is ready to be configured as a puppet master (bug 827079), needs audit of the manifests and settings creation.
  • comm-* will be building out of mozilla-* eventually. Jcrammer is working on this.
  • release.mozilla.org does not track the SeaMonkey project anymore (bug 850339) [WONTFIX]. Instead SeaMonkey URLs pointing to releases.mozilla.org have been redirected to ftp.mozilla.org bug 871120.
  • bug 865976 Cannot build SeaMonkey on Linux since Bug 842927 (Implement DOM3 KeyboardEvent.key only for non-printable key, first)

Release Train

  • SeaMonkey 2.18b4 shipped May 3.

  • Due to hardware failure, SeaMonkey 2.18b5 and SeaMonkey 2.18 are cancelled.
  • Instead will go directly to 2.19 series of betas and by the 24th June, the 2.19 final. This means that users of 2.17.1 will be going directly to 2.19.
  • If Firefox decides to do a dot release, we might go for a 2.18 later.

Extensions Compatibility Tracking

  • See Basics page. Please only list current changes here.

  • Addon Compatibility Listings
  • There are now Lightning versions for both SM 2.17.x (Lightning 2.2b1) and SM 2.18 betas (Lightning 2.3b1) available on AMO.
    • Might need to point out in release notes that users needs to install the Lightning beta versions for the SeaMonkey releases (as Lightning follows Thunderbird 17.0.x release schedule)
  • Shipped extensions (DOMI, CZ, Venkman) compatibility:
    • Extensions are now compatible by default thus mitigating the issue. Although some people still disable c-b-d and run into issues.

    • SeaMonkey 2.18 will ship ChatZilla 0.9.90
  • Our build team needs to automate DOMI branch selection rather than having to tweak the client.py every 6 weeks. bug 763506
    • Meanwhile Callek made some changes to the tags that SM pulls (CZ, Venkman, DOMI) for comm-central. See comm-central changeset 347b255c4810.
  • Nightly Tester Tools is being actively developed by xabolcs (coder) and whimboo (reviewer) to make it more compatible with comm-central in general and SeaMonkey in particular. See Issues · mozilla/nightlytt · GitHub.

2.x (Last, Current, Next)

  • [From a previous meeting:] There is a problem with the metrics server, so no current data is available

  • See Basics page for the usual reminders.
2.17

open tracking (0)
tracking requests (1)
targeted (0)
fixed (10)

2.Next
  • Current breakages:

    • Nothing significant at the moment.
  • Mozilla-central bugs that affect us:
    • Note: Please file bugs if you notice any landing on mozilla-central that might break us. Please don’t depend on Ratty noticing such landings.

    • bug 769764 move proxy resolution to separate thread and remove sync api. Tracked in:
      • MailNews bug 791645 Rewrite calls to synchronous nsIProtocolProxyService::DeprecatedBlockingResolve with Async code before DeprecatedBlockingResolve disappears as well.
    • bug 737615 Remove use of synchronous cache API from unit tests. Tracked in:
      • bug 804972 Remove synchronous calls to nsICacheSession::openCacheEntry in SeaMonkey tests.

      • Mcsmurf says this is almost fixed but there was a test failure. He will close this bug and open a new one for the failure.
    • bug 793634 Force builds to be compatible with gtk 2.18/glib 2.22. Tracked in:
      • bug 795354 Migrate SeaMonkey Linux builders to CentOS 6.

      • bug 794772 Port |Bug 713802 – Build with GIO support (and drop GnomeVFS)|. This is dependent on bug 795354.
    • bug 795144 default –disable-gnomeui icon theme support
      • porting bug needed for the two configure.in changesets? Changes could be folded into bug 794772 above. *** IanN and Ewong are looking into this..
    • bug 839034 move markPageAsXXX methods to nsINavHistoryService. Tracked in:
      • bug 845895 Fix markPageAsXXX usage in Seamonkey.

Feature List, Planning

Private Browsing is now mostly complete and uplifted to 2.18. Most things should work but some edge cases have probably been missed. Hopefully any remaining bugs will be found before its release.

  • Testing would be appreciated! Please file bugs as blocking the meta bug 460895.

  • We need to figure out if we want a new about:privatebrowsing page which someone will have to write (bug 842439). We also don’t have any help content yet.

Bug statistics for the last two (full) weeks: 35 new, 14 fixed, 14 triaged.

  • Low-Medium triaging effort.

Open reviews/flags:
23 review
7 super-review
2 ui-review
6 feedback

  • bug 847546 Support Retina Display (HiDPI) on SeaMokney on MacOS X.

    • Ratty thinks we will need 2x PNGs as well as other changes. See Core Tracking bug 785330 for supporting HiDPI mode (Retina Display) on Mac OS X.
  • See Feature List page for major wanted/needed features.
    • Ratty suggests featuring one or more bugs from that page at each meeting.
  • Featured helpwanted bugs:

Good First Bugs

  • Note: The GFB list is open to all including our regular contributors.

  • Ratty is working on an updated GFB list, suggestions welcome.
  • New GFBs recently added:
  • Currently there are 24 GFBs open, 2 are being actively worked on. bug 735333 needs some help getting this running on the try-server. Mcsmurf is assisting.
  • List of Open mentored bugs.
    • Ratty notes that there are 23 bugs that are GFBs but without the mentor keyword. These need to be audited to see if they are really suitable as GFBs.
  • Mentors of stalled bugs should try to communicate with the assignees and if they can’t work on them any more to unassign/free up those bugs.

Roundtable – Personal Status Updates

Status Updates from developers – what are you working on, what’s the progress, any other comments? (feel free to add yourself to the list if your name is missing and you have interesting status).

Callek

Fixed:

  • bug 867870 Add SeaMonkey 2.18 Beta 4 to bouncer.

Working on:

  • bug 870191 Add SeaMonkey 2.18 Beta 5 to bouncer.

To Do:

  • bug 740633 set up seamonkey HPs in scl3.

  • bug 817383 SeaMonkey needs new (public) GPG key, in order to support signing releases properly.
  • bug 827079 Setup SeaMonkey PuppetMaster.
  • bug 827178 Update stage.m.o cron to match recent changes with ffxbld cron.
  • bug 845844 Deploy updated tbpl to tbpl.drapostles.org.
ewong
  • Fixed:
  • Review:

    • bug 739056 – Port |Bug 715099 – Convert nsProfileMigrator to JS so we can use JS modules on migration| to SeaMonkey
  • Working On:

    • bug 633937 – Port bug 562048 to suite.

    • bug 796994 – Use filepicker’s open() instead of the obsolete show() in /suite/*
    • bug 834690 – Port |Bug 569342 – Find bar should not be enabled in about:addons| to SeaMonkey
    • bug 834691 – Port |Bug 632233| to SeaMonkey (XULBrowserWindow.onLocationChange looks for a “disablefastfind” attribute in all content documents before ruling them out)
    • bug 837649 – [Tracking Bug] Stop OSX 10.5 support for SeaMonkey project
    • bug 837650 – Stop support for OSX 10.5 in suite/ tree
  • To Do:
IanN
  • Some testing, reviewing and commenting.

  • Fixed:
  • Checked in pending review:
  • Waiting for feedback/review:
  • Fixing review comments before checkin:
    • bug 757230 When using add button for permissions in Data Manager set a displayHost

    • bug 798147 Switch to correct pref pane if pref window already open
    • bug 778534 Use image instead of html:img in instant messaging
  • Working on:
    • Various SM Council documents.

    • bug 606683 Allow customization of toolbar in Composer and MailNews Composition
    • bug 639690 [META] Re-arrange code between editor and editorOverlay
    • bug 773979 [META] Switch to new drag and drop api in SeaMonkey
    • bug 657234 Move pasteQuote and pasteNoFormatting into contentAreaContextOverlay
    • File/Folder selection in windows.
  • To Do:
    • bug 639395 Get cmd_fontSize to reflect current state of selected content / content at caret.

    • Prefs-in-a-tab.
    • Create FAQ for Friends of the Fish Tank.
    • Help get composer standalone builds working with –enable-tests.
mcsmurf
  • Fixed bug 867008 Remove previous calls to PlacesUtils.backups and move them to PlacesBackups (SeaMonkey)

  • Fixed bug 864271 Permanent orange: TEST-UNEXPECTED-FAIL | browser_dataman_basics.js | Test timed out
  • Fixed bug 863426 Port test fixes from |Bug 854467 – can’t un-set the clicktoplay flag on an nsIPluginTag| to SeaMonkey
  • Fixed bug 863672 Port configure.in changes to comm-aurora
  • Worked on bug 840474 Clicking on new mail notifcation opens two MailNews windows when no MailNews window is open (new feature disabled for SeaMonkey 2.18 due to this bug)
  • Filed bug 868205 Click-to-play pref (plugins.click_to_play) broken in SeaMonkey}}
  • Filed bug 869965 New: Background url bar color when vitising a SSL page does not cover the whole url bar
  • Filed bug&created patch bug 870290 [SeaMonkey] (perma-orange) TEST-UNEXPECTED-FAIL test_hang_submit.xul | Test timed out. (Broken plugin crash reporter submit link)
  • Filed bug&created patch bug 871291 Replace CSS selector -moz-locale-dir with chromedir selector inside pluginProblem.css
  • Created patch for bug 867068 Switch SeaMonkey to new Places async API
  • Created patch for bug 798278 Implement multiple plugin doorhanger UI (Port Bug 797677 and Bug 754472)
Ratty

Waiting for check-in on CLOSED TREE:

  • bug 870728 The Geolocation prompt should not offer action in PB mode if the action remembers permission for more than a session.

    • Landed on comm-beta (2.18b) a=CLOSED TREE.
  • bug 871536 Mitigate clickjacking of about:certerror.
  • bug 871541 Remove updateIcon from tabbrowser since it has only one consumer.
  • bug 871548 Query params sent when reporting a phishing site could contain sensitive info.

Working on:

  • bug 870413 Implement permission prompt for desktop notifications in SeaMonkey.

Other stuff:

  • Did some reviews.

  • Bug triage and Bug discussions.
  • Usual end user support and PR in newsgroups and Mozillazine.
rsx11m

Fixed on trunk:

  • bug 867210 Put “Display emoticons as graphics” in a new line.

Fixed on comm-beta:

  • bug 849359 Print button is misaligned in the Composer and Message Composition toolbars with the Modern theme.

Working on:

  • bug 868419 Update Help for Mail & News Message Display preference pane.

Filed:

  • bug 868486 Session restore logic appears broken in Browser preference pane.

  • bug 868495 Browser main preference pane cut off in Windows 7 with hardware acceleration.

Follow-up discussions:

  • bug 861471 Update the SSL preference pane after bug 733642 changed preference names and semantics.

Other:

  • Bug triage, testing, and commenting for SeaMonkey and MailNews Core.

  • End-user information and discussion on MozillaZine

Any other business?


SeaMonkey Meeting Details

Meeting NotesMozilla Platform: 2013-05-14

Actions

  • jst and lmandel to find owner for Orange Factor bug 858948

Notices/Schedule

24 bugs (?? bugs last week) 38 bugs (32 bugs last week)
Unresolved Aurora 23 Trackers (non-security, not tracked for Beta) Unresolved Beta 22 Trackers (non-security)

Key Issues

Threads

Products/Projects

Firefox Desktop

  • Social API

    • Shane Caraveo landed the “Share panel” (bug 818675), which significantly improves the social API’s “share” capabilities
  • Form history/autocomplete back-end changes

    • Mark Hammond chased down the last few test failures blocking back-end refactor of autocomplete/form history (bug 566746, bug 697377)
  • Australis

    • Work continues. Star button changes were reverted, several changes to the toolbar and find bar behaviors landing now.
  • XUL Panel improvements

Firefox Mobile

Usability, Responsiveness, and New Features
  • Lots of WebRTC patches landed last week

    • bug 862883 Enable webrtc mochitest automation for FxAndroid

    • bug 866093 application crashed [@ webrtc::VoEExternalMediaImpl::SetExternalRecordingStatus(bool)]
    • bug 869477 WebRTC UI permissions no longer shown
  • Reflow on Zoom on double-tap only patch has been r+’d, Scott is working through some breakage in the vkbOverlap test before landing bug 847872.
  • ANR Reporter is ready for privacy review: bug 863777 – Teach ANR reporter to use the profiler to get a native stack
  • Implementing WebSockets for bug 834033 – Implement Push Notifications for Android
Stability Wins

bug 778459 – java.lang.OutOfMemoryError: at org.mozilla.gecko.AwesomeBarTabs.updateFavicon()
bug 827248 – java.lang.OutOfMemoryError: at org.mozilla.gecko.AboutHomeContent.getTopSitesThumbnails()

Stability

  • Benjamin Smedberg’s patch from bug 831768, which reduced Flash crashes and hangs by a quarter on beta, is shipping on release today with Firefox 21.

  • Jan de Mooij deduced a testcase for #4 topcrash bug 851934 (outlook.com) from full dumps within 24h of being assigned there, and realized he had already fixed this for 22 in bug 867482! Unfortunately too late for 21.
  • Is there anything more we can do about : bug 752828 – android.database.sqlite.SQLiteDatabaseLockedException: database is locked at android.database.sqlite.SQLiteStatement.native_executeSql(Native Method) on ICS ?
    • it’s one of the top bugs for all channels for FFX for Android.

OrangeFactor

  • Past week’s OrangeFactor: 8.66 (Previous Week: 7.63).

  • No significant changes from last week.
  • bug 861176 – “Intermittent cppunittests TEST-UNEXPECTED-FAIL | TestSTSParser.exe | test failed with return code 4294967295 | Couldn’t get the profile directory.” Affects all branches. Needs an owner from RelEng.
  • Suggestions for moving OF downward?
  • 17 intermittent failures fixed in the last week – List – Thanks!.

Roundtable


Platform Meeting Details

  • Tuesday 2013-05-1411:00 am Pacific

  • Dial-in: conference# 98411
    • US/International: +1 650 903 0800 x92 Conf# 98411

    • US toll free: +1 800 707 2533 (pin 369) Conf# 98411
    • Canada: +1 416 848 3114 x92 Conf# 98411
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 98411
  • Engineering Vidyo Room / Warp Core / SFO-Boardroom / Tor Commons
  • join irc.mozilla.org #planning for back channel

Burning Edge - FirefoxFirefox Nightly 23, weeks 1-6

Speed & memory:

  • Fixed: 805241 - JS: Merge the new baseline compiler.
  • Fixed: 804676 - JS: Remove dependence of Ion compilation on ScriptAnalysis::analyzeTypes.
  • Fixed: 825928 - Graphics: Layers refactoring.
  • Fixed: 865546 - Graphics: Large scaled images in SVG's cause choppy scrolling.
  • Fixed: 854803 - Graphics: Images on slow network continously use 1 full core.
  • Fixed: 600307 - Rewrite and cleanup DOMStorage code.
  • Fixed: 566746 - Form history should use asynchronous storage API.
  • Fixed: 697377 - Form Autocomplete should use asynchronous storage API.

For more, read Taras's Snappy blog and MemShrink blog posts.

New web technologies:

  • Fixed: 765780 - Enable plugins and JavaScript in designMode.

For more, read Firefox 23 for developers.

Security & privacy:

  • Fixed: 838692 - Don't allow navigating named targets from sandboxed iframes.
  • Fixed: 549697 - Add click-to-play plugin UI to the addon manager.
  • Fixed: 834836 - Turn on pref to block mixed active content.

Other notable fixes:

  • Fixed: 858538 - Download-attribute kills WebSocket connections.
  • Fixed: 560072 - Object.getOwnPropertyDescriptor throws for many DOM objects.
  • Fixed: 485149 - Using box-shadow on a <fieldset> with <legend> does not follow box shape.
  • Fixed: 857820 - Drop only blink effect from text-decoration: blink; and completely remove <blink> element.
  • Fixed: 369180 - Proxy Authentication required while typing Search String.
  • Fixed: 649216 - Remove unnecessary delay when clicking tab close buttons sequentially.
  • Fixed: 636564 - [Mac] Lion-style floating scrollbars.

Sources:

Mozilla Add-ons BlogJetpack Project: weekly update for May 14, 2013

WE SHIPPED!!

Unless you’re hiding under a rock, you are probably aware that the Mozilla Project has released Firefox 21 today. Additionally, unless you’ve been completely ignoring my recent posts on this blog, you might also realize that Firefox 21 signals a new chapter in the life of the Jetpack project, as we ship the SDK’s module loader and APIs in Firefox 21.

To me this is a big deal, for add-on developers, for Firefox developers, for the entire project. I’d like to thank everyone involved for all the hard work, but in particular there are a few people who deserve special mention:

  • Atul Varma & Aza Raskin started Jetpack in 2009 in Mozilla Labs, then rebooted it in 2010, ushering in the modern era of content scripts, CommonJS modules the command-line cfx tool and Add-on Builder.
  • Dietrich Ayala, David Mason, Myk Melez & Brian Warner who guided the project through the ‘re-boot’ phase, always with an eye to landing Jetpack’s capabilities in Firefox and revolutionizing how Firefox features are made.
  • Dave Townsend, Irakli Gozalishvili and the rest of the current Jetpack team who have done a ton of work coordinating a series of important changes to make the SDK fit nicely into mozilla-central.
  • Various Mozilla Labs engineers including Shane Caraveo, Anant Narayanan, Andrew Sutherland & David Ascher who kicked the tires and built prototyped their own crazy ideas based on our shaky prototypes and beta releases.
  • Our fantastic contributors who keep showing up with great code for new features and bug fixes.

Now that we ship with Firefox I have decided to dial back the frequency of these posts to every 6 weeks on uplift and instead highlight for developers the new features and bug fixes that have landed in the recent Nightly cycle. As always if you have questions, feedback or want to get involved you can find us on the wiki, on the email list and of course in #jetpack on irc.mozilla.org.

Quick Stats

Note: the stats above are based on the queries I linked to for each item. If you have suggestions on how these queries might be made more accurate,please comment below. Stats generated at 2013-05-14 10:39:08 PDT

hacks.mozilla.orgPushing Firefox OS Apps to the Geeksphone

A push to device feature was added in the 3.0 release of the Firefox OS Simulator. This feature allows web apps to be pushed to a connected device by clicking one button in the Simulator Dashboard. Availability of the Developer Preview Phone from Geeksphone has raised interest in the feature, so this post will detail how to configure your Geeksphone and the computer running the Simulator to make use of it.
Firefox OS Simulator on a Mac

Setting Up the Geeksphone Device

To push apps to the Geeksphone Firefox OS Developer Preview phone, you first need to enable Remote debugging. This can be done from the Settings app by selecting Device information > More Information > Developer -> Remote debugging. Now we are ready to configure the computer running the Simulator.

Windows

The team at Geeksphone recently released a set of drivers for Windows to support USB communication with their phones. The drivers are available at Geeksphone’s Web Site (direct ZIP link).

To install them, first download and extract the zip file to a known location on your system. Next, connect the phone to your machine using the provided USB cable. Click on the Start Button and enter “Device Manager” in the Search programs and files text entry field and press enter. This will launch the Windows Device Manager. Alternatively, you can launch the Device Manager from the icon located in the Windows Control Panel.

Device Manager before driver installed

The connected phone will be listed under the Other Devices category. Right click on the Android label and select Update Driver Software….

Right Click options

In the Update Driver Software dialog, choose Browse my computer for driver software.

Update driver dialog

Locate the usb_driver folder from the Geeksphone download and make sure the Include subfolders checkbox is checked. Click on the Next button.

Locate Driver

You will most likely receive a Windows Security alert. Select the Install this driver software anyway entry.

Windows security alert prompt

This will install the proper USB drivers and list the phone as Geeksphone Device in the Device Manager.

Device manager with drivers updated

Launch the Firefox OS Simulator. The Dashboard should now contain a Push button and a Device connected message, and you should be able to add your Firefox OS app to the Simulator and push it to the phone.

Linux

If you are running the Simulator on a Linux machine, you will need to create or modify a udev rules file for the device. This process is described in “Setting up a Device for Development” (Steps 3.a and 3.b). The Geeksphone Firefox OS Developer Preview phone idVendor attribute is “05c6”, so your android.rules file should contain an entry similar to:

SUBSYSTEM==”usb”, ATTR{idVendor}==”05c6”, MODE=”0666”, GROUP=”plugdev”

After making the above changes, either reboot the system or restart the udev service:

sudo service udev restart

If you make these changes and the push to device button does not show up in the Simulator Dashboard, please see this workaround.

Mac

If you are running the Simulator on a Mac, no additional configuration is required to enable push to device.

Reference

Additional information about setting up and using the Firefox OS Simulator, including installing, adding apps, debugging and using the push to device capability can be found on the MDN page for the Firefox OS Simulator.

SUMO BlogWhat’s up with SUMO – May 13

Big things this week

The Mozilla BlogFirefox for Android Includes Open Source Fonts and HTML5 improvements

Firefox for Android comes with the custom, open source fonts Charis and Open Sans to make the Web more beautiful and easier to read on your small screen. The Web is made up almost entirely of text and sometimes reading text can be difficult on small phone and tablet screens. These new fonts will replace the three available Android default fonts to enable a more visually appealing and clear reading experience on the Web. The difference is subtle, but beautiful.

Firefox for Android includes HTML5 compatibility improvements as tested on HTML5test.com, the leading industry HTML5 compliance test. Firefox Firefox scores 421 and 14 bonus points (out of a total of 500).

Thanks to the hard work of the many Mozillians who contribute to building the best mobile browser, Firefox for Android now has an average rating of 4.5 stars in the Google Play Store. Whoo-hoo!

For more information:

The Mozilla BlogStay Social with Firefox

Social sites are a key part of online life and with Firefox we want to make it easier to use the Web the way you want.  Mozilla developed the Social API to enable social providers to integrate directly into Firefox to make your browsing experience more social, customizable and personal. The Social API makes it easy for your favorite social providers to add a sidebar with your content to Firefox or notification buttons directly on the Firefox toolbar.

Last year we launched with Facebook as the first social integration partner in Firefox. Today, we are adding multiple new social providers Cliqz, Mixi and msnNOW to Firefox, in addition to Facebook Messenger for Firefox, to help you stay connected to your social networks, no matter where you go on the Web.

The new social providers in Firefox make it even easier for you to keep up with friends, family, news and events while you surf the Web. You can get real time updates about news activity, entertainment or your personal network while you browse the Web.

New providers you can now add to your Firefox include:

Cliqz:

CliqzFinal

Cliqz delivers a real-time stream of the most relevant articles, stories, and videos based on your interests directly to Firefox. In the upper left of the sidebar, you can personalize your news feed by selecting categories, keywords, websites, and specific people you want to follow. Share links across your social networks or by email; preview Twitter commentary; and save articles for later without ever leaving Firefox.

To activate, visit the Cliqz activation page and click “Activate Cliqz.

Mixi:

Mixi

The Mixi sidebar let’s you easily stay in touch with your friends on the Mixi social network in Japan. It provides a real-time activity stream of all comments and photo shares from your personal social network directly to your Firefox browser. Mixi for Firefox is only available to users in Japan.

msnNOW:

MSN Screen shot

msnNOW makes it easy to stay up to date on the things people are talking about, searching for and sharing the most on Web. MSN scours the most interesting trends from real-time sources like Facebook, Twitter, Bing, and BreakingNews.com, so you’ll always know what’s happening and get the jump on what everyone is talking about. You can customize the activity stream to watch for particular types of trending content from the sidebar dropdown menu.

 To activate, go to the msnNOW page and click “Turn it On.”

The Social API has endless potential for integrating social networks, e-mail, finance, music, cloud possibilities, services, to-do lists, sports, news and other applications into your Firefox experience.  We designed the Social API to make it easier and more convenient to use the Web the way you want.  Soon we’ll add even more ways to integrate your favorite Web services into your Firefox Web experience.

For more information:

BlueGriffonBlueGriffon 1.7

I just released BlueGriffon 1.7 for Windows (XP, 7, 8), OS X (10.6 to 10.8) and Ubuntu (12.04 and 13.04, 32 and 64 bits). You can find it here.

about:communityJean-Claude Van Damme loves Mozilla

TintinI’m making that up of course.

Brussels is home to Tintin (image on the right), a chocolate museum (Mozilla tour please), and Fosdem,  giant Open Source event.)  It’s the capital of the European Union and the likely host of the Mozilla Summit 2013 (it’s also the birth place of Jean-Claude!)

Yes, after an amazing search for just the right spot for the third Summit location, we are focusing our attention to Brussels, Belgium.  The event venue we have our eye on is called The Square.  Check it out, seems spot on for Mozilla (creative, colorful, fun.)  We will have about 5 hotels (rather than one large one like we’ll have in Toronto and in Santa Clara.)  Here’s a map of where they all sit relative to the event space — each walking distance from it.  Think Olympic Village.  And, the best news is that Brussels is 1.5 hours from Paris, 2 from London and close to many others by train.

Next up, invitations.  Volunteers who have been selected to attend the 2013 Summit will receive email notification on May 20th.  The email will be linked to a list of assigned venues by person.  There will also be an option to participate in a lottery to attend an alternative Summit location (somewhere other than where you were assigned.)  We will select about 10% of the group (~90 people) to attend an alternative site by the end of May.

As for staff, we will kick off the site-selection process the last week in May.  Most of Mozilla’s staff will know where they are headed prior to the Planning Assembly (June 14th).

We are aiming for official registration to kick off in early July after which time we’ll start booking travel and hotels and kicking off any immigration proceedings that need to be proceeded.

As always, if you need anything or have questions, please ping me on IRC #summit2013.

Meeting NotesMozilla Project: 2013-05-13

All-hands Status Meeting Agenda

Items in this section will be shared during the live all-hand status meeting.

Friends of the Tree

  • Thanks to all of the new contributors who helped with Firefox 21 and thanks to Josh and Seif for creating the report on activities for the release.

  • Anthony Hughes would like to thank (hopefully I don’t forget anyone) Simona Badau, Bhavana Bajaj, Juan Becerra, Carsten Book, Ioana Budnar, Raymond Etornam, Mike Hommey, Cornel Ionce, Michael Kaply, Alexandra Lucinet, Manuela Muntean, Phil Ringnalda, Gavin Sharp, Paul Silaghi, Hong Tang, Nick Thomas, Mihaela Velimiroviciu, Justin Wood, and Hector Zhao for working hard over the weekend to ensure we ship a top-quality Firefox 21 to all of our users on Tuesday.

Upcoming Events

This Week
  • JavaScript team work week in Santa Cruz – AGENDA
Monday, 13 May
Tuesday, 14 May
  • 13:00 Security Champions

    • “MTV-2J JK”; “SFO-7B The Warfield”; “TOR-5N Spadina”

    • Vidyo: 2J
    • Dial-in Info (phone):
      • In office or soft phone: extension 92

      • US/INTL: 650-903-0800 or 650-215-1282 then extension 92
      • Toronto: 416-848-3114 then extension 92
      • Toll-free: 800-707-2533 then password 369
      • Conference num 95227
      • IRC Backchannel: #security
Wednesday, 15 May
Thursday, 16 May
  • Grow Mozilla discussion at 10 AM pacific — a forum for discussing community building at Mozilla

Friday, 17 May

Product Status Updates (voice updates)

Firefox Desktop/Mobile

Speaker Location: Vancouver (johnath)

  • Release week!

    • Thanks for the last minute push, everyone
Webmaker

Speaker Location: Ryan Merkley, Toronto

Firefox OS

Speaker Location: No Audio. Yo.

Grow Mozilla

Speaker Location: San Francisco

Help us build a history of Mozilla told by Mozillians. Please share your memories about this Mozilla milestone:

60 Seconds with Mozilla IT

Speaker Location: mrz in SF

  • Mozilla IT made some changes last week.

Speakers

Presenter Title Topic Location Share? Media More Details
Who Are You? What Do You Do? What are you going to talk about? Where are you presenting from? (Moz Space, your house, space) Will you be sharing your screen? (yes/no, other info) Links to slides or images you want displayed on screen Link to where audience can find out more information
Diane Bisgeier Program Manager, WebFWD Help us recruit the next cohort for WebFWD – deadline is June 5! http://webfwd.org Mozilla San Francisco No screen share – just showing off the schwag you can get if you refer a team to our next class. Here’s the messenger bag :) > https://www.facebook.com/photo.php?fbid=361822707265407&set=pb.218655251582154.-2207520000.1367814592.&type=3&theater Details on WebFWD at http://webfwd.org
Dethe Elza Lead Developer, Collusion Sneak peek at Collusion 1.0 Pre-recorded demo video Yes, playing video from Toronto Popcorn demo video version learn more about Collusion
Dia Bondi (IRC thejudge) Head of Knowledge Cultivation Capture Mozilla is Air.Mozilla too! + Badges San Francisco No https://air.mozilla.org/channels/culture_and_context/
https://badges.mozilla.org/en-US/
https://air.mozilla.org/channels/

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Travis Choma Bill Walker Mountain View San Francisco Software Architect, Apps
Peiying Mo Chris Hofmann Mountain View Mountain View Senior Localization Program Manager
Sole Penades Frederic Wenzel Mountain View London, UK Senior Web Developer, Developer Ecosystem
Candice Serran Sheila Mooney Mountain View San Francisco FirefoxOS

Introducing New Interns

New Intern Introduced by Speaker location New Hire location Will be working on
David Zbarsky Fabrice MV MV FFX OS
Mohammed Almeshekah Camilo Viecco MV MV Security Engineering
Subhadeep Paul David Zeber SF SF Metrics

<meta>

Notes and non-voice status updates that aren’t part of the live meeting go here.

Status Updates By Team (*non-voice* updates)

QA
Test Execution
WebQA
Automation & Tools

  • Dial-in: conference# 8600

    • US/International: +1 650 903 0800 x92 Conf# 8600

    • US toll free: +1 800 707 2533 (pin 369) Conf# 8600
    • Canada: +1 416 848 3114 x92 Conf# 8600
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 8600

Software CarpentryA Mention in Science Careers

Vijee Venkatraman has written a good article for Science Careers titled "When All Science Becomes Data Science", which mentions Software Carpentry.

hacks.mozilla.orgSpeed Up App Development with X-Tag and Web Components

In the last few years we’ve witnessed an evolution in what ‘app’ means to both developers and consumers. The word app evokes the idea of a rich, task-oriented user experience with highly optimized user interface that responds to its environment and can be used on an array of common devices. In order to make development of rich app experiences easier, native platforms have generated many of their own controls and components that Just Work™.

For other native technology stacks, extensible components are all but assumed – not so much for the web. Soon, that all changes. We are on the verge of a declarative renaissance that will dramatically advance app development for the web platform, and Web Components will drive it.

X-Tag and Web Components offer features that obliterate the status quo for layout, UI, and widget development – here’s a few notable Web Component features:

  • Create real custom elements the browser understands
  • Stop the instantiation madness: $$(‘button.super’).initSuperButton()
  • Remove unmanageable HTML widget guts from your app’s view files
  • Work with sharable components, based on standard technologies

Meet the Web Components Family

Web Components is a group of W3C specifications, quickly moving toward standardization, that provide a robust HTML component model. You should not assume the following specs are implemented in your browser of choice. While these specifications are in various stages of implementation across browsers, you can use X-Tag (with either Mozilla or Google’s prollyfill) today to create custom elements that work well in recent version of Firefox, Chrome, Safari, and stock mobile browsers. X-Tag is a powerful sugar library primarily focused on wrapping and enhancing one of the draft-state Web Component specs: Custom Elements (document.register). We’ll get to X-Tag shortly – but for now, let’s quickly review the key features of each spec:

Custom Elements

Custom Elements provides you a way to create new elements for use in your environment. There are two ways to declare a new custom element, the imperative DOM API – document.register(), and the declarative HTML tag – (whose DOM constructor is HTMLElementElement). After declaration, new custom elements can be created in the same ways native elements are, such as document.createElement, presences in original source (the markup of a page), and innerHTML, etc.

Here’s an example of what a custom element registration looks like in both the declarative and imperative styles:

document.register('x-foo', {
  prototype: Object.create(HTMLElement.prototype, {
    readyCallback: { 
      value: function(){
        // do stuff here when your element is created
        this.innerHTML = '<div>Barrrr me matey!</div>';
      }        
    },
    bar: {
      get: function() { return 'bar'; },
    },
    // add more properties to your custom prototype
    // ...
  })
});
<element name="x-foo">
  <script>
    if (this !== window) {
      this.register({
        prototype: {
          readyCallback: { 
            value: function(){
              // do stuff here when your element is created
              this.innerHTML = '<div>Barrrr me matey!</div>';
            }        
          },
          bar: {
            get: function() { return 'bar'; },
          }
        }
      });
    }
  </script>
</element>

Shadow DOM

The Shadow DOM allows you to encapsulate structural and supporting elements within components. Elements within nodes remain visible for purposes of display UI (depending on the type of element and your styles), but are hidden from the rest of your application code, unless you explicitly cross the shadow boundary.

HTML Templates

HTML Templates bring simple DOM templating and markup reuse to the web platform – which are often shimmed today using the HTMLScriptElement + DocumentFragment hack-pattern.

HTML Imports

HTML Imports are external HTML documents that contain declarative component definitions. HTML component documents can by imported using the link element with the rel attribute value import. Imported resources may themselves contain additional sub-imports, which the browser then retrieves and performs automatic dependency resolution upon.

Web Components + X-Tag = WINNING

Mozilla’s X-Tag library enhances the imperative (JavaScript) route for creating custom elements. X-Tag’s primary interface is the xtag.register() method – it wraps the soon-to-be standard document.register() DOM API with features and functionality that make development of amazing custom elements effortless.

Creating a Custom Element

Here’s a quick example of what registering a custom element looks like using X-Tag:

xtag.register('x-pirate', {
  lifecycle: {
    ready: function(){
      this.innerHTML = '<blockquote>' +
                         '<img src="pirate-1.png"/>Barrr me matey!' +
                       '</blockquote>';
    }
  },
  accessors: {
    src: {
      // X-Tag's attribute sugar relays any value passed to the src 
      // setter on to the src attribute of our <x-pirate> and its
      // <img> element (specified by CSS selector), and vice versa.
      attribute: { selector: 'img' },
      set: function(){
        // When a <x-pirate>'s src attribute/setter is changed, we 
        // stop everything to announce the arrival of a new pirate.
        // Ex: doc.querySelector('x-pirate').src = 'pirate-2.png';
        alert("There's a new captain on deck ye scurvy dogs!");
      }
    }
  },
  events: {
    // This is an example of X-Tag's event and pseudo systems. The
    // "tap" custom event handles the dance between click and touch,
    // the ":delegate(img)" pseudo ensures our function is only 
    // called when tapping the <img> inside our <x-pirate>.
    'tap:delegate(blockquote > img)': function(){
      alert("A pirate's life for me!");
    }
  }
});

To the Democave Batman!

We’re actively working on a custom element UI toolkit and style pack that will make development of app interfaces a breeze. It’s still in very early stages, but we have a few demos for you.

Get the Code

Head over to X-Tags.org and grab the code to develop custom elements of your own. After you get the hang of things, start contributing to our open source effort!

QMOContributor Spotlight: Glenn Howard

ghowardThis month WebQA would like to extend thanks to Glenn Howard, and to highlight some of his work for our team. Glenn is an automation engineer who has made a big impact on our wiki-tests repository! You can see the projects he’s helped out with on Github:

https://github.com/glennhoward

Glenn has been contributing for a year and a half so far. He manages to fit it in on top of his job- and we really appreciate the time and effort he puts in! He puts in a few hours per week, whenever he has spare time. This kind of regular contribution makes a big impact. Any contributor who can help out, even for short bursts of time, makes all of the difference in our projects. Our volunteers make it possible to extend both the depth and breadth of our testing!

“As busy as he undoubtedly is, Glenn still finds time to contribute more than just the great tests for our critical wiki.mozilla.org site — he contributes ideas and exudes enthusiasm for Web testing (and not just Mozilla’s) in a lot of different aspects; we’re always grateful to have him participate in our meetings and mailing-list discussions!” – Stephen Donner

Glenn currently resides in Dublin, Ireland where he works as a full time Automation QA Engineer with Gilt.  While Mozilla headquarters is located in California, our contributors and employees cover the globe. We have people helping out in many different timezones. While our IRC channel definitely has prime times for being busy, you can always try connecting with us there. If you’d like to contribute and have questions about the info on our team page, you can try clicking this link to get into our IRC channel. IRC is where our community comes together to find work, ask questions, and to get to know one another.

We always like to ask our primary contributors how they found us, and what got them started contributing to our team. Here is what Glenn had to say:

 I was looking for some Selenium/WebDriver examples and came across Dave Hunt’s blog, from this I found the mozwebqa team. I had used Firefox for quite some time and when I discovered that I could help give back, as well as learn some python, I couldn’t wait to help out and it went from there.

My favourite type of issue to work on is one that lets me contribute with others and that really gets me thinking. Being able to work with others on tough issues is great as it pushes you and well as lets you learn from others.

When asked what he’d tell a newcomer who was thinking of contributing:

Do it! Not only will you get a chance to work/contribute with some really amazing and passionate people, you’ll also get a chance to expand your own knowledge in the process. I’ve met some really great like-minded people which makes it fun to contribute and help out.

This is an important part of contributing- the ability to network with others. You get the chance to contribute work, but you also meet new folks and learn a lot in the process. Our contributors help knit the fabric of our community and play an important part in getting new folks started.

Glenn has been an incredible addition to our community. His passion for Mozilla’s mission is apparent as he fluently works on projects, helping identify coverage gaps and creating test automation. I’ve enjoyed spying on him and watching as he helps on-board new community members, helping untangle the Mozilla fire-hose of information overload and sharing his infectious excitement with new community members. ~ Matt Brandt

Glenn’s contributions span far beyond his github pull requests! We value all of the people who make the time to become a regular part of our community. Particular thanks go to Glenn for all of his help, the whole QA team appreciates your work!

 

 

 

 

 

 

 

 

 

 

 

 

about:communityMilestone: Phoenix 0.1 released, first version of Firefox

September 23, 2002: Phoenix 0.1 is released, the first version of a browser that will be renamed to Firebird and then Firefox

2002_phoenix

Share in the comments any memories you have of this event, photos of any t-shirts from this period or any other interesting pieces from this time in Mozilla’s history. The information shared here will help us visually create the history of Mozilla as a community.

Firebug BlogFirebug 1.11.3

Firebug 1.11.3 has been released (archive).

Firebug 1.11.3 fixes 15 issues
Firebug 1.11.3 is compatible with Firefox 17-22
 

All users subscribed to AMO beta channel should be already updated to version 1.11.3 beta 1 which is exactly the same as 1.11.3.

 

One little problem related to browser page context-menu slipped into this release. If you experience the menu being unexpectedly long, just restart your browser.

 

Please post feedback in the newsgroup, thanks!

Jan ‘Honza’ Odvarko

 

The Mozilla BlogPersonalization with Respect

Mozilla’s mission compels us to provide people with an Internet experience that puts them in control of their online lives and that treats them with respect. Respecting someone includes respecting their privacy. We aspire to a “no surprises” principle: the idea that when information is gathered about a person, it is done with their knowledge and is used in ways that benefit that person. People should be made aware of how information is collected and used. Each individual should also be able to decide whether the exchange of personal data for the services received in return feels fair. This can be challenging to achieve, especially when balanced against convenience and ease of use: people expect a fast, streamlined user experience without excessive prompts and confusing choices. But we are always striving toward this ideal.

Mozilla is an active participant in the ecosystem of today’s Web economics. Much of the content and information that people enjoy and benefit from is funded by digital marketing and sponsorship. This is a valid business model. We simply believe that when personal data is collected to deliver these services, the collection should be done respectfully and with the consent of the consumer. Commerce works best when users understand the transactions they engage in. The best long-term customer relationships are built on trust.

Mozilla aspires to enable personalization — the customization of ads, content, recommendations, offers and more — that doesn’t rely on the user being in the dark about who has access to that information, and with whom that information is shared. As a major Web browser provider and, now, OS developer, Mozilla’s role is to experiment and innovate toward that aspiration. As an open source project, where contributions are welcomed by all, we encourage all in the industry to help, by constructively proposing approaches and collaborating with us in the open.

Here are a just a few examples of the work Mozilla is doing to explore personalization with respect:

  • Persona is an identity system for the Web. It gives people control over their Web logins. People choose what identity to present to a given service. In particular, people can keep their work, personal, and other facets of their lives distinct.
  • Do Not Track allows you to tell a website that you would like to opt-out of third-party tracking for purposes including behavioral advertising. It lets users express how they would like information about themselves to be handled. It has many benefits. People who use Firefox must actively enable Do Not Track, making it very clear that the user has made an explicit choice Also, Do Not Track is independent of any particular technology, providing resilience in the face of technology evolution. We continue to work with a broad range of interested parties to see the Web adopt Do Not Track.
  • Third party cookie policies are being evaluated to strike a better balance between personalized ads and the tracking of users across the Web without their consent. For example, an experimental version of Firefox allows cookies to be set by first parties and by third parties where Firefox has stored a cookie for the party’s domain, but to block by default third-party cookies whose domain is not known from Firefox’s cookie store. We’ve been evaluating that approach, as well as others, working with stakeholders from across the industry.

It should be possible to delight users (and yes, the right offer at the right time can be a delight), while treating them with respect. We continue to experiment with and evaluate new ways to put users in control of their Web experience and encourage you to join us in building toward this vision. We will share more updates soon.

Mozilla WebsitesA few UX changes. A single page. Millions of new downloads.

We recently designed, tested, and released a new version of our our primary download page for Firefox for Desktop. In our tests, we improved the download conversion rate of the top 3 non-Firefox browsers by over 12%! This alone results in millions of additional downloads annually.

Focusing on the entire funnel leading up to a product download and not just the product itself, is as important as the efforts taken to improve retention of a product. This is one of the approaches that the Websites team at Mozilla is taking to improve and support our products.

 

What is the /new page on Mozilla.org?

This is where the majority of our desktop browser downloads are initiated. For instance, if the user searches for “Firefox”, “Mozilla Firefox”, or “download Firefox” from a desktop browser, the /new URL is the top search result.

 

What did we change?

Though a relatively simple page, we were able to make number of changes across visual design, interaction, technical improvements and overall user experience that had substantial results. How did we do this?

  1. reduced the number of steps to download
  2. simplified number of actions displayed on page and reduced distractions to funnel user directly to download (ie: no link to Fx for Android or other products displayed)
  3. focus on our product – the last page design did not display visuals that focused on the product, but focused more on Mozilla community.
  4. significantly faster page load time
  5. updated style to our responsive Mozilla style guide
  6. inline page interaction that responds immediately to the user’s request for download, resulting in no page refresh for confirmation and installation instructions.

Old Experience – includes page refresh:

Old: landing page Old: file modal Old: thank you, confirmation, download instructions

New Experience – inline interaction, no page refresh:

New: landing page New: inline thank you, confirmation, download instructions

* To experience the inline page interaction yourself, visit the Firefox for Desktop download page.

 

Design Decisions & Testing

We could infer that the outcome of changes such as updating this page to a consistent style as our other Mozilla.org pages and improving page load time alone would have a positive result. However, some of the other changes were more subjective and required testing and validation before releasing to 100% of our users.

Based on common interaction patterns, what we know about how users respond to pages that “feel” responsive to their actions, as well as minimizing distraction, we were able to make many initial design decisions.  To validate the more subjective changes, such as button placement, button style, and animations, we ran A/B tests using Google Analytics Content Experiments.

​An important part of testing is not just validating our work, but exposing interesting facts about our users and issues that may need further attention. For instance, we learned that large percentage of users downloading Firefox already have Firefox for Desktop. This could mean that the user is not aware that we run silent updates, that they are not aware that their version of Firefox is already up to date, that they wanted a fresh copy of the browser, or a number of other possibilities. This is just one of the interesting things we learned that we are looking into for further improvements.

Given the success of these tests, we were very confident in releasing the new experience to all of our users. Our initial improvements to the /new page and download funnel are just the beginning. We will also continue to test improvement possibilities, such as the style of the download button, to learn more about our users and improve the performance of the download funnel.

 

A few stats:

Across the top 3 browsers, we saw a 14% download conversion improvement.

Across all browsers and operating systems, we saw an average of a 4% improvement.​

​Considerable improvements to page load time:

  • ​Time to be able to interact: 46% decrease
  • Time to load page content: 71% decrease
  • Time to execute JavaScript: 35% decrease

Next Steps:

Testing download button styles and placement, translate page for non-english languages, add logic and conditional messaging for all platforms to move towards a unified Firefox download page, improve other touch points within the onboarding funnel by using a similar process of testing and validating with real users.

 

Software CarpentryGit vs. Subversion and Feedback in General

Software Carpentry's mission is to help scientists teach other scientists how to be better programmers. If we want to do that successfully, we need to be scientists ourselves. In particular, we need to base what we teach on evidence, not anecdotes or personal preferences.

For example: we taught Git at the Toronto boot camp last week, and once again I think our learners would have absorbed more if we'd taught Subversion. Why? Well, take a look at this diagram by Oliver Steele (which I found on this page written by Nick Quaranto):

Git Transport

Four locations are in play, and eight different commands are used to move information around or compare what's in one place to another. Now look at the corresponding diagram for Subversion:

Subversion Transport

There are only three locations for people to keep track of, and the basic workflow involves only four commands. If you believe complexity is partially multiplicative (because people have to keep track of the interactions between things, as well as the things themselves), Git is at least twice as complex for people to understand. Slicing it another way, there are more opportunities for people to do the wrong thing with Git, and more they have to understand to undo it. And that's before we introduce branches...

But that's just my point of view, and the fact that I can wrap a plausible story around it doesn't make it true. Matt Davis and others believe they've been successful with Git in front of the same kinds of people. We need to find out who's right, so our major goal for the next three months is to poll and interview boot camp attendees to find out who was taught what, who tried what, who's still using what, and why. Caitlyn Pickens will be leading this effort, and many of you will get email from her in the next few weeks. When it arrives, please take a few minutes to tell us what you're actually doing, even if it's not what we told you to do—especially if it's not, because that'll tell us what we need to fix.

about:communityFirefox 21 New Contributors

We are pleased to reveal that Firefox 21 is brought to you through the hard work of 326 developers. Of these, we welcome the 41 who contributed their first code change to Firefox in this release, 34 of whom were brand new volunteers! Please join us in thanking each of these diligent and enthusiastic individuals, and take a look at their contributions (thanks to Seif Lotfy for collecting this data):

Andreas Wagner: 550175

Benedict Singer: 787134, 795360, 803677, 794180

Catalin Iordache: 813019, 821269, 821396, 821901

ChangZhuo Chen: 778053

David Guo: 747835

Dustin L. Howett: 812647

Ian Patterson: 712748

Jan-Ivar Bruaroey: 794240, 817429, 817430, 816112, 824955, 800538

Jonathan Kamens: 823042

Jorge Luis Mendez: 820117, 820285

Julien Levesy: 811753

Julien Wajsberg: 824695, 825237

Lawrence Mandel: 819732

Marius Gedminas: 364845

Matej Cepl: 800557

Michal Jaskurzynski: 424712

Mohit Gahlot: 818106

Nikolay Bryskin: 650935

Peter Retzer: 784297

Rafael Gieschke: 791419

Ravisankar Sivasubramaniam: 803078

Rik Cabanier: 748433, 809927

Sergiu Dumitriu: 826563

Soumya Deb: 818660, 821968, 821969, 821971

Sriram: 715736

Stefan Arentz: 807659

Stephen Pohl: 813322

Steve Singer: 817356

Thomas Zimmermann: 758103, 809367, 817730

Ting-Yuan Huang: 815473

Tobias Netzel: 812932, 817045, 818004

Usurelu Catalin: 820197

Virgil Dupras: 801450

Walter Chen: 816514

Yura Zenevich: 803067

alex: 815131

groodt: 686228, 813946

ithinc: 656222, 819907, 822068, 822914, 824480

rfw2nd: 553917

zeyu: 813801

zmgmoz: 804845

hacks.mozilla.orgPhones for Apps for Firefox OS

Update: Today, Monday, May 13 at 11:00am PDT, we closed the submission form for the Phones for Apps program. Thanks so much to all of you for your interest and enthusiasm. Your response has been overwhelming! We’ve received thousands of applications, more than we’re equipped to review in a timely fashion.

We’ve started reviewing your proposals, and in the next few weeks we plan to notify application builders and porters who’ve been selected. We regret we can’t respond to the thousands of you with great ideas for apps for Firefox OS. There will be other opportunities to get access to the the Developer Preview device. Please keep working on your apps. We can’t wait to see them in Firefox Marketplace.

Hello HTML5 app developers, the open mobile web is calling.

We know you’re out there, chomping at the bit, coding, testing, reading documentation, downloading and running the Firefox Simulator. And you’re ready to ‘Send to Device.’ You just need to get your hands on a device.

Today we’re announcing a new program with you in mind. We call it: Phones for Apps for Firefox OS.

Firefox Marketplace on the Geeksphone

Firefox Marketplace on the Geeksphone Keon

Maybe you’ve built apps in the past for Chrome, webOS, Blackberry WebWorks, or the PhoneGap store. Maybe you’ve created beautiful web apps for a desktop environment and now you want to port them to mobile. Maybe you’re a student about to start a summer break. We know you may not live anywhere near Bogota, Colombia or Warsaw, Poland, locations of upcoming App Workshops.

Wherever you are

Wherever you are, if you can show you’ve got a great app idea and the skill to build it, we’d love to see your apps in the Marketplace when the Firefox OS launch begins later this summer. And to sweeten the deal, we’ll send a Firefox OS Developer Preview device for you to work with now.

When Firefox OS phones become available to consumers in select locales this summer, you’ll have an opportunity that only comes around once—a first-mover advantage in Firefox Marketplace. End users in Latin America, Eastern Europe and other launch locations will be on the lookout for playful and practical apps to install: games, tools, and utilities as well as locally relevant news, sports, travel, entertainment, review apps, and social sharing experiences. And you can build and submit them now!

Apply now

Tell us about the Firefox App you’d like to build or port. If your proposal is accepted, we’ll send you a Geeksphone Keon. Our device inventory is limited and our launch dates are approaching fast, so act now. This program will close at the end of May or when our limited supply of Geeksphones runs out. There’s a limit of one phone per app proposal. We can’t wait to see what you’re working on. There’s never been a better time to get started.

Apply here.

Mozilla IT60 Seconds with Mozilla IT – May 6

From the May 6 weekly Project Meeting:

Sometimes Mozilla IT shows a different side and brings Mozilla to the classroom.

Meeting NotesMobile: 2013-05-08

Schedule

  • Next merge: 2013-05-13 (3 BUSINESS DAYS!)

  • Next release: 2013-05-14

Friends of the Mobile Team

Give a shoutout/thanks to people for helping fix and test bugs.

  • Chen Dai contributed patches to

    • bug 866487 – MOZ_UPDATER always set to true in AppConstants.java

    • bug 869322 – Screen can’t read the text in input box
  • Abir Viqar landed his first patch! (bonus points for an r+ on first attempt)
    • bug 839434 – Private browsing page opens the pop-ups in normal browsing
  • Tetsuharu OHZEKI continued to file and fix multiple bugs
    • bug 865250 – Clean up BrowserApp.get/setPreferences()

    • bug 867875 – Add the pref to switch reader mode
    • bug 868936 – Use strict equality operator in JSDOMParser.js

Stand ups

Suggested format:

  • What did you do last week?

  • What are working on this week?
  • Anything blocking you?

Please keep your update to under 2 minutes!

GBrown

  • Last week:

    • Investigated bug 867626 Expose Shumway in navigator.plugins

    • bug 865944 Use foreground activity to determine if browser has terminated
    • –> Panda failure rates much better this week
    • bug 868681 Offline apps doorhanger not shown
    • bug 868767 Unable to uninstall org.mozilla.fennec_aurora/firefox_beta and reboot
  • Working on:
    • bug 867626 Expose Shumway in navigator.plugins

    • Follow-up on bug 865944 Use foreground activity…
    • bug 869030 Robocop testDoorHanger causes future reboots on pandas
    • bug 867360 Watcher dies sometimes on Pandas

Chris Lord (cwiiis)

  • Doing

    • bug 866461 – Bing.com constantly resizing with the dynamic toolbar

    • bug 803299 – Use 24-bit colour on 24-bit screens (patches r+’d but backed out due to reftest failures)

Chris Peterson

  • Done

    • Fixed bug 778459 – java.lang.OutOfMemoryError: at org.mozilla.gecko.AwesomeBarTabs.updateFavicon()

    • Fixed bug 827248 – java.lang.OutOfMemoryError: at org.mozilla.gecko.AboutHomeContent.getTopSitesThumbnails()
    • Fixed bug 868604 – JavaScript Warning “test for equality (==) mistyped as assignment (=)?” in “chrome://browser/content/downloads.js”
    • Fixed bug 868673 – Fix -Wtype-limits “comparison of unsigned expression >= 0 is always true” warning in XPFE
    • Implementing WebSockets for bug 834033 – Push API for Android
  • Next

    • Implement System Messages for bug 834033 – Push API for Android

JChen

  • Past week

    • Finished bug 863777 – Teach ANR reporter to use the profiler to get a native stack

      • Doing privacy review now
    • Worked on bug 860879 – ANR @ org.mozilla.gecko.PromptService.finishDialog
      • Have patches for review

      • Going to file follow up bugs
    • Worked on bug 847983 – IME in designmode doesn’t seem to work very well
  • Next
    • Finish bugs from above

    • bug 868566 – Cannot create a new paragraph in a text box on Motorola Support Forums
    • bug 868569 – Cursor selection buttons in Swype don’t work
    • bug 846660 – java.lang.InstantiationException: cant instantiate class char
    • PTO starting next Wed

GCP

  • This week:

    • WebRTC

    • bug 862883 Enable webrtc mochitest automation for FxAndroid
    • bug 866093 application crashed [@ webrtc::VoEExternalMediaImpl::SetExternalRecordingStatus(bool)]
    • bug 863290 crash in webrtc::videocapturemodule::DeviceInfoAndroid::NumberOfDevices
    • bug 869477 WebRTC UI permissions no longer shown
  • Next week:
    • bug 863290 crash in webrtc::videocapturemodule::DeviceInfoAndroid::NumberOfDevices

    • bug 867185 Camera names should percolate upwards to the UI
    • bug 862808 Local Video is upside down on Android when in portrait mode

Brian N

  • Done

    • Ouya bugs

      • Bug 849847 – Make about:home scrollable with the analog stick

      • Bug 868230 – Map gamepad X button to show/hide tabs tray
  • In progress
    • Bug 868553 – Make about:home use a ViewPager
  • Next
    • Other about:home rewrite work

    • Ouya bugs

Sriram

  • Back from vacation

    • More coffee, more sleep, more cricket
  • Exploring quick share menu.

WesJ

  • Vacation

  • Bug 813756 – Payments frontend for Android – Landed! yay!
  • Bug 757481 – Tests for prompt service – have some new wip up
  • Bug 798358 – Hardcoded add-ons on about:home links to author’s desktop site with desktop add-on installs – Landing now
  • Bug 826325 – Decide where window.open should open content – Still trying to find the right solution here
  • Bug 808636 – Update visual style of mobile error pages – http://people.mozilla.com/~wjohnston/netError/index.html

LucasR

  • Last week

    • Bank holiday

    • bug 869166 – Add space between URL bar and tab curve
    • bug 869022 – Fade tabs button and menu away when tabs panel is open
    • bug 868460 – Tidy up animation bits
    • bug 867554 – New sidebar animation on tablets
    • bug 860121 – Animating the landscape tab menu on tablets yield a white gap between the sidebar and the tab count button
    • bug 866466 – Opening a remote-tab from tab-menu overlays view onto the regular and private tabs menu
    • bug 867141 – Unable to close regular tabs after closing last private tab
    • bug 865228 – Misc improvements in the browser toolbar animations
    • (In progress) bug 869494 – Add editing mode to browser toolbar
  • Next week

Margaret

  • Done

    • bug 867249 – Improve BitmapUtils.getDominantColor to avoid returning gray-ish colors

    • bug 867627 – Dominant color favicon backgrounds are really slow to update
    • bug 867650 – Search list still shown on Awesomescreen when clearing search string
    • bug 867125 – Unpinning a site from about:home removes it from about:home regardless of the number of visits
    • bug 867059 – “Set as Default” option still available in context menu after disabling a search engine
    • Helped interview devtools candidates
  • In Progress

    • Crash in BrowserToolbar.setTitle – bug 868342

    • Blog post about dominant color favicons
  • Next

    • Update empty favicon style – bug 869634

    • Use better default thumbnails on about:home when we don’t have a screenshot – bug 837392

Scott (jwir3)

Last Week:

  • bug 847872: Reflow zoom on double tap only (r+, but I’m having some difficulty with tests – specifically testVkbOverlap on Android and I’m kind of blocked on this before I can land).

  • Looked into bug 864595: Assertion failure in caretPositionFromPoint. I have a solution, but it’s not quite ready for review.
  • bug 862763: Performance of nsLayoutUtils::FontSizeInflationEnabled needs some work (in review).

This Week:

  • Land reflow-on-zoom on double-tap only.

  • Land HResize performance enhancement for reflow-on-zoom.
  • Finish implementation of last solution for bug 836565 that queues one event for each document to be reflown in nsDocumentViewer, for responsiveness (this might not be necessary).
  • bug 766599: Reframe to prevent crash in nsFontInflationData (this will allow us to dynamically change font inflation prefs without a reload).

BLassey

MFinkle

Done:

  • bug 869477 – WebRTC UI permissions no longer shown

  • Looking into bug 862377 – Android WebRTC permissions UI will only respect first doorhanger

Next:

  • Metro work week in Vancouver

Ian Barlow

  • Work in progress

    • bug 864958 Some subtle adjustments to the PB chrome

    • bug 808636 Reviewing work in progress on mobile error pages
    • Some discussion around WebRTC doorhanger permissions
    • Continuing work with Product on some UX prerequisites for Mozilla Apps on Android
    • Standing by for any and all questions about Multipage About:home
    • Usability testing plan for Multipage about:home
    • TV design concepts
    • New tablet concepts

WebRT

  • There is a meeting on Friday (11a PT) to discuss the “synthesizing APK” approach to delivering Apps on Android.

PiCL

  • Work week in Vancouver this week.

Feature Focus

Fx21
  • [ON TRACK] bug 834681 – Add support for basic distribution modifications

  • [ON TRACK] bug 831354 – Ship fonts for content in Firefox for Android
  • [ON TRACK] Amazon Search URL
  • [PLANNED]bug 867604 – [Meta] HTML5 Compat
    • Note: thanks for the uplifts last week!
Fx22

Pet bug: Bug 862996 – Put text headings back in the tab menu

Fx23
Fx24

Tradeoffs: Finishing the last 3 Reader Improvements and moving About:Home Redesign
Need to create a project plan for Shumway and Dynamic Snippets

Round Table

SUMO

Meeting this week to plan a strategy around replying to 1-star reviews on Google Play.

Thought we had a small spike in crash feedback but it turned out to be nothing.

Getting ready for Firefox 21.

QA

  • bug 853522 regressed h.264 videos on JB devices. need to uplift fix to all channels

  • working on a test matrix to cover release coordinate on multiple stores:
  • bug 856445 – Lg optimus black crash confirmed, over to mfinkle
  • bug 845729 – SGS2 blocklist confirmed, awaiting beta uplift to retest

Details

  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC

  • Dial-in: conference# 99998
    • US/International: +1 650 903 0800 x92 Conf# 99998

    • US toll free: +1 800 707 2533 (pin 369) Conf# 99998
    • Canada: +1 416 848 3114 x92 Conf# 99998
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 99998
  • irc.mozilla.org #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2013-05-08

Schedule & Progress onUpcoming Releases

Firefox Desktop

Beta (21)
    • FF21.0b7 Desktop is ready to go

    • FF21.0b7 Mobile was shipped yesterday
    • FF21.0 final RC build’s have gone to build and are with QA

Firefox Metro

  • Iteration #7: May 02 – May 23

    • 14% of the iteration work (20 points across 10 stories) has been completed to date (see table below).

    • 35% of the total project work has been completed to date.
    • We will be releasing figures on the project’s quality performance and defect levels at the conclusion of Iteration #7.
    • Product Manager is reviewing release build to determine which ‘out of scope’ legacy features to turn off in V1.
    • Team on Work Week from May 13 – May 17.
  • Iteration #6: Finished on April 30
    • Team completed 74 story points across 20 features.

    • Team achieved a new average velocity of 51 story points per iteration which was an 8% improvment from the previous iteration.
    • Overall performance gain has resulted in a new expected production release forecast of November 19, 2013 – a reduction of 2 iterations from the previous status update.
    • Production Release Forecast now includes Best Case and Worst Case scenarios – View Release Forecast
ID Summary Priority Status
862209 Defect: Unloaded websites reloading after closing them while using “tabs from last time” P1 ASSIGNED
867115 Defect – Context menu in snapped view shows the tab bar for an instant P1 ASSIGNED
831909 Story – Text selection in Firefox app bar (touch) P1 ASSIGNED
866065 Defect – ms-windows-store:// links should not need to be opened with an application P1 ASSIGNED
860899 Story – Fixup all failing mochitest-metro-chrome tests in automation P1 ASSIGNED
831915 Story – Implement Tile Widget and Groups – Part I P1 ASSIGNED
831905 Story – Secure site indicators in the Firefox app bar P1 ASSIGNED
855147 Defect: Settings do not persist when closing Firefox from desktop application bar P1 ASSIGNED
835623 Story – Combine page contextual items (URL bar, bookmark star, etc.) into single app bar P2 ASSIGNED
850737 Story – Smoothly scroll the Firefox Start screen – Part I P2 ASSIGNED
833182 Story – Updating Metro Firefox P2 ASSIGNED
849395 Story – Allow updates via about flyout P2 ASSIGNED
855297 Story – Provide a consistent OSK experience for when users have no keyboard and mouse P2 ASSIGNED
781002 Story – Apply metro styling to the context menu P2 ASSIGNED
831913 Story – Use the Firefox app bar in snapped view P2 REOPENED
867163 Defect – Restore tile button doesn’t work when context app bar is visible on a second time P1 RESOLVED
833130 Story – Sync passwords P2 RESOLVED
833131 Story – Sync bookmarks P2 RESOLVED
833132 Story – Sync history P2 RESOLVED
833133 Story – Sync tabs P2 RESOLVED
849312 [tracking] Backlog – Various sync issues P2 RESOLVED
856049 Defect – Lower border of “Pair a device” input box is missing P1 VERIFIED
867121 Defect – Snapped view: Favicons too close to text in awesome screen P1 VERIFIED
858598 Defect – Select popups near the bottom of the screen are unusable P1 VERIFIED
856267 Defect – Context Menu overlapping with the Tab App Bar when visible P1 VERIFIED

Firefox Mobile

Current Releases
Google Star rating is *visual* 4.5 stars. We are tracking 4.25 for GA in actuality but the visual tipping point is a result of lot’s of hard work
https://medium.com/what-i-learned-building/f4488e366b91
Beta (21)
  • We are backing out the fix for this crash because it blocks too many JB devices. We are considering doing a final beta to increase our confidence prior to GA: bug 853522 – crash in mozilla::MediaPluginHost::DestroyDecoder @ libstagefright.so@0xd… on Samsung Galaxy Tab 2 with espresso & espresso10 hw running JB

  • Otherwise, we just signed off on Fx21, this will include a push to the Yandex Store
Aurora (22)
  • The Dynamic URL bar (a.k.a Toolbar) has been deferred from Fx22. It remains enabled in Fx23 for testing and convergence

  • Slovak will replace Turkish as the next locale to add support for and it is slated for Fx22
  • Otherwise, double tap reflow-on-zoom, New Tab UI, ANR reporter, Async Canvas Playback
Nightly (23)

Services

Firefox Health Report
  • On track to ship in desktop with Fx21

  • Will hit Android for either 23 or 24
  • Dashboards are still coming, but we can get useful data for Nightly/Aurora/Beta, ask mconnor+gps if you have questions.
Product Announcements
  • No updates.

Feedback Summary

Desktop

USR 20 should be available later this week.

  • Flash – We are still seeing as much (or more) negative feedback about flash stutter or generally causing a poor experience. Crashkill team reports that Flash crashes are down on beta but it seems to just result in more jerkiness complaints on beta, not sure it’s actually improved the feedback.

  • Popups – We are seeing a significantly increased amount of popup reports in both Release and Beta. Assuming it is new malware.

Mobile

Meeting this week to plan a strategy around replying to 1-star reviews on Google Play.

Getting ready for Firefox 21.

User Experience (Design and Research)

  • [WebRTC] Ramping up! (Boriss)
  • [metro] (yuan)

    • Sync UI adjustments:

    • Solution for Auto-complete page: mockup.
    • Notification for adding a bookmark: video
    • Solution for a new Metro & desktop update preference bug 866229

Market Insights from the Product Marketing Strategy Team

Desktop / Platform

Google
  • On iOS, Google has now enabled app developers to integrate Chrome within their mobile applications.

  • Chrome Beta on Windows and Mac now supports the Chrome Office Viewer, an extension which provides seamless viewing of Microsoft Office files in the browser.
  • Google Translate added Bosnian, Cebuano, Hmong, Javanese and Marathi, bringing the total number of languages supported to more than 70
Microsoft
Tizen
WebKit
  • WebKit released SunSpider 1.0, an updated version of the Javascript benchmark. Among other improvements, delays between tests have been eliminated so it runs up to twice as fast.

Mobile

  • 2013 is the first year that people will buy more tablets than PCs. There will be 256 million tablets sold and 183 million PCs this year. By 2017 the number of tablets shipped will reach half a billion. This is part of a larger trend of sustaining big growth for tablets, at the rate of 67% year – over – year and a decline in PC shipments, by 10% a year.
  • New Android version distribution numbers put Gingerbread at 38.5%, Jelly Bean at 28.4% and Ice Cream Sandwich at 27.5%.
  • Shipments of smartphones in 8 major developed markets and China put Android ahead with 64.2% on average and 68.8% across the EU, 45.8% in Japan, 61.7% in Australia and 49.3% in the US. iOS is shipped on between 19.4% of devices in the EU to 49.2% of them in Japan. Top device models in the surveyed countries are the iPhone 5, the Samsung Galaxy S III, the iPhone 4S, the Galaxy S III Mini, the Galaxy Ace, iPhone 4, LG Nexus 4, Galaxy Ace 2, Galaxy s II and the Blackberry Curve.
  • Developer builds of Chrome OS feature a touch – screen keyboard. Important because it could mean plans to deploy the OS on tablets.
  • Google has hired a Chief Game Designer. Gaming is one of the top app categories downloaded through the Play Store
  • The first two Tizen phones will be in the mid – end to high – end range and code – named Redwood and Melius.
  • Opera partnered with 7 Indian phone and tablet manufacturers such as Celkon, Karbonn, Lava, Intex, Fly, Zen and HCL ME to have Opera Mini pre – installed on their Android devices.

Marketing, Press & Public Reaction

Firefox 21 highlights from the consumer and industry perspective

Questions, Comments, FYI

  • No surprises [johnath]

Planning Meeting Details

  • Wednesdays – 11:00am PT, 18:00 UTC

  • Mountain View Offices: Warp Core Conference Room
  • Toronto Offices: Finch Conference Room
  • irc.mozilla.org #planning for backchannel
  • (the developer meeting takes place on Tuesdays)

Video/Teleconference Details – NEW

  • 650-903-0800 or 650-215-1282 x92 Conf# 99696 (US/INTL)

  • 1-800-707-2533 (pin 369) Conf# 99696 (US)
  • Vidyo Room: ProductCoordination
  • Vidyo Guest URL

QMOResults of the Firefox 21 Plugins Testday

I’m writing today to publish the results of yesterday’s Firefox 21 Plugins Testday. Overall it was really successful. This was the first time in recent memory that we’ve tried to have a testday on a day of the week other than Friday. In spite of this we still managed to attract 17 testers who managed to test Firefox 21 with several plugins (Flash, Java, Silverlight,  etc) on a wide array of websites.

I would like to thank everyone who made this event possible, especially Jayakumar, MarioMi, Swarnava, and Tiziana. These four volunteers made up the lion’s share of the testing and deserve appreciation for their hard work.

If you weren’t able to make it to this testday, stay tuned to QMO. We’ll have another testday coming up soon.

Thank you

CalendarLightning 2.3b2 with fixed localization

Hello Folks. If you have been using Lightning 2.3b1 with a localized version of Thunderbird, you probably had troubles with undefined entities. This happened due to a glitch with the Mozilla localization dashboard, the wrong changeset was used.

I have just uploaded Lightning 2.3b2, which should fix the issue. As always, you can download beta versions from the addons.mozilla.org site in the “Developer Channel” box. If you have previously installed a beta, you should get the update via automatic updates.

https://addons.mozilla.org/en-US/thunderbird/addon/lightning/#install-beta

The Den5 Firefox Settings to Keep You Safer Online

When you browse the Internet, you leave a trail of personal data behind. Here at Mozilla we value your security and privacy on the Web. That’s why we have so many features built into the browser to keep you safe and secure online. Here are just a few of those features, and how to make them work for you.

  • Do Not Track: Many sites track your online behavior and sell that data to advertisers. If that makes you uncomfortable, Firefox lets you tell sites you want to opt out of that tracking and keep your browsing habits private. When you turn on Do Not Track, Firefox tells every website you visit (as well as their advertisers and other content providers) that you don’t want your browsing behavior tracked. It’s up to that site whether to honor your request, but the more people that tell the site, the more likely that site will listen.  Learn how to opt-out of tracking.

  • Clear your history (or just a single site): As you browse the web, Firefox helpfully remembers lots of information for you to make browsing easier (we don’t sell that data.) All of this information is called your history. But then oops! You clicked a link expecting one thing and you got another. You can delete that single site from your history. Or, you can delete your entire history. This article gives step-by-step instructions on how to manage your browsing history.

  • Private Browsing: Sometimes, it’s nice to go undercover on the Web. Private Browsing allows you to browse the Internet without saving any information about which sites and pages you’ve visited. Learn how to protect your browsing history.

  • Customized security options: We give you control the level of scrutiny you’d like Firefox to give a site with a variety of customized settings. Learn how to take control with your security settings.

  • The Site Identity Button: This is a Firefox security feature that gives you more information about the sites you visit. A color-coded system makes it easy to check on suspicious sites and avoid Web forgeries. Learn more about how to use the Site Identity Button.

These are just a few of the security features included in Firefox. Read more about our commitment to your privacy and security.

Meeting NotesMozilla Platform: 2013-05-07

Notices/Schedule

32 bugs (37 bugs last week) 13 bugs (27 bugs last week)
Unresolved Aurora 22 Trackers (non-security, not tracked for Beta) Unresolved Beta 21 Trackers (non-security)

Key Issues

Threads

Products/Projects

Firefox Desktop

Australis progress
Performance
  • Drew landed the background tab thumbnailing service. Uses a remote browser to capture thumbnails without main-thread impact (bug 841495).
  • The JS Internationalization API has been enabled (bug 853301); there may still be some issues to work through, but people should start experimenting with it now

Firefox Mobile

Blog shout out
Usability, Responsiveness, and New Features
  • We stopped packaging a whole ton of files as part of the multi-locale builds. If you see any regressions, please file a bug and CC :Pike. bug 792077, bug 848297

  • Fixed regressions to async canvas updates bug 863223
  • Add a force override preference for Reader Mode availability on low-mem devices landed in Fx23 bug 852417
  • Dynamic Toolbar is being disabled for Fx22 but is still enabled for Fx23 so please keep on using it so we can make it great!
Stability Wins
  • Uplifted to Fx22 Bug 863288 – java.lang.OutOfMemoryError: at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method) at org.mozilla.gecko.AboutHomeContent/TopSitesView.getThumbnailsFromCursor(TopSitesView.java)

  • Landed in Nightly: bug 864339 – Crash on ‘New PrivatTab@org.mozilla.gecko.mozglue.NativeZip.createInputStream(NativeZip.java:71
  • Also landed in nightly: bug 863477 – SurfaceCaps assertion failure in GLContext::UpdatePixelFormat() when playing Flash video

Stability

  • Nothing this week, we look decent on all channels right now (we need people to work on the harder, long-term issues, of course).

OrangeFactor

  • Past week’s OrangeFactor: 7.63 (Previous Week: 7.31).

  • No significant changes from last week.
  • bug 858948 (frequent Windows mochitest-2 leak) still needs an owner. Previous attempts have failed.
  • bug 866470 (ASSERTION: Should not be trying to paint a background color if we don’t have one: ‘drawBackgroundColor’ in layout/reftests/bugs/289480.html) is recent, frequent, and un-owned.
  • 15 intermittent failures fixed in the last week – List – Thanks!.

Performance

  • bug 852467: nsDisableOldMaxSmartSizePrefEvent runs on the gecko main thread, blocks for long periods of time

  • bug 649216: Remove unnecessary delay when clicking tab close buttons sequentially
  • bug 699331: Reduce impact of font name enumeration at startup

Metro

  • Although Metro work is riding the trains, it’s all behind an ifdef (MOZ_METRO) which is only turned on in Nightly.

  • Current expected work complete date for v1 is November 19th, although it has been moving up due to faster velocity in the recent iterations (so it may move up more).
  • Tier 1 status? No, but we will be. The main step in progress towards this is releng work to turn on mochitests (bug 864418).
  • Waiting for OMTC to land for a bunch of panning/zooming work.
  • Other than OMTC, largely what’s remaining for v1 work is front end work.
  • Most of the progress from the Metro team is in the form of front end work.
  • Elm users (Where Metro development began) have been migrated from elm to m-c.
  • Software updates through the Metro interface, will be offered trough the about flyout and silently in the background.
    • Some changes for that included upgrading while another browser from the same install is open.
  • May 13th – May 17th will be the 2nd Metro work week in the Vancouver office.
  • Sprint 5 and sprint 6 were recently completed, and Sprint 7 is in progress.

Roundtable

Build system PSA

  •  :joey and :mshal from RelEng are focusing on work that :gps are initiated on migrating Makefile.in -> moz.build

    • bug 847009

    • what other pain points are you hitting with the build system? PGO? universal builds? tests? please get in touch with Joey, Mike or Gregory

Should we switch from hg to git?

It’s becoming more and more clear that the version control system of choice for open source development these days is git. The question is, should Mozilla engineering switch from Mercurial to Git?. As most people already know, lots of Mozilla hackers already use git for various types of work, and some of our significant projects also already use git (Gaia, Rust, Servo, etc). Lots of Gecko hackers also already use git for their work on mozilla-central, through various conversions from hg to git.

One inevitable question that this raises is whether we’re also switching to hosting Gecko development on Github, and the answer to that question is no. We’ve been in talks with Github, but we will not get the reliability guarantees we need nor the flexibility we need if we were to host Gecko development on Github, i.e. Github issues not being powerful enough, pull request data outside of our control, etc).

As for switching the source control system from hg to git, here’s some of the benefits:

  • Simplified on-boarding, people generally know git, but generally don’t know hg.

  • We already mirror hg to git (in more than one way), git is already a necessary part of most of our lives and unifying our tools where we can is a good thing.
  • Branches! The ability to have “everything you want” in a single local repository (independently of how the repositories are hosted remotely). I.e. m-c, aurora, beta, release, user repositories, project branches and more as needed, no matter where the different branches are hosted.
  • No need for multiple local repositories, many working directories per repository.
  • Simplifies the path for better review tools and change workflows.
  • Opens the door for a pull-request like model for accepting changes.
  • Better merge algorithms, no more orphan patches that no longer apply cleanly.
  • Easier collaboration through shared branches.
  • Full history, all of hg and CVS!
  • OMG interactive rebase (squashing, removing, reordering, editing commits)
  • ZOMG git add –patch (selective change committing for splitting changes into multiple commits).
  • Works well with github, even though we’re not switching to github as the ultimate source of truth.
  • New tool to learn for those who have not already needed to learn it.

  • Performance of git on windows is sub-optimal (we’re already working on it).
  • Need to incorporate git into our windows build tools.
  • Lots of infrastructure work needed to make this switch.

Platform Meeting Details

  • Tuesday 2013-05-0711:00 am Pacific

  • Dial-in: conference# 98411
    • US/International: +1 650 903 0800 x92 Conf# 98411

    • US toll free: +1 800 707 2533 (pin 369) Conf# 98411
    • Canada: +1 416 848 3114 x92 Conf# 98411
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 98411
  • Engineering Vidyo Room / Warp Core / SFO-Boardroom / Tor Commons
  • join irc.mozilla.org #planning for back channel

hacks.mozilla.orgEmbedding WebRTC Video Chat Right Into Your Website

Most of you remember the Hello Chrome, it’s Firefox calling! blog post right here in Mozilla Hacks demonstrating WebRTC video chat between Firefox and Chrome. It raised a lot of attention. Since then we here at Fresh Tilled Soil have seen a tremendous amount of startups and companies which have sprung up building products based WebRTC video chat technology. Tsashi Levent-Levi who is a WebRTC evangelist has been interviewing most of these companies on his blog, the list is quite impressive!

WebRTC chat demo

Much like most of early adopters we have been playing around with WebRTC for quite awhile now. We have of course created our own WebRTC video chat demo and have also very recently released WebRTC video chat widgets.

The widgets work very simply, anybody can take the following HTML embed code:

<!-- Begin Fresh Tilled Soil Video Chat Embed Code -->
<div id="freshtilledsoil_embed_widget" class="video-chat-widget"></div>
<script id="fts" src="http://freshtilledsoil.com/embed/webrtc-v5.js?r=FTS0316-CZ6NqG97"></script>
<!-- End Fresh Tilled Soil Video Chat Embed Code -->

and add this code to any website or blog post. You’ll see the following widget on their website:

From here it’s dead simple to start a WebRTC video chat, just make up a name for a room, type it in and click start chat. Tell the other person to do the same and you’re all set.

As always make sure you’re giving this a try in Firefox Nightly or the latest stable build of Google Chrome. If you are on a tablet make sure you are on Google Chrome beta if you are using the Google Chrome browser.

Something else to note is that for this first version our video chat is limited to just two participants per a room. If a room name is occupied by two people the third person who tries to connect to this room simply won’t be able to connect.

How It Works

Without getting too deep into the code behind how WebRTC video chat actually works, let’s briefly go over what is actually happening behind the scenes when you click the start chat button and how WebRTC video chat actually works. Here is a step by step timeline of what actually happens to give you a better idea:

A quick note about this step: “Once remote media starts streaming stop adding ICE candidates” – this is a temporary solution which might result in suboptimal media routing for many network topologies. It should only be used until Chrome’s ICE support is fixed.

A quick and very important tip to remember when you are trying to get this to work. We used a ‘polyfill’ like technique as shown in this article by Remy Sharp. As Remy describes we wrote a piece of code to adapt for the Firefox syntax to get cross-browser functionality.

Issues We Ran Into and How We Solved Them

As you might expect we ran into a number of problems and issues trying to build this. WebRTC is evolving quickly so we are working through a number of issues every day. Below are just some of the problems we ran into and how we solved them.

PeerConnection capability in Google Chrome

While working with the new PeerConnection capability in Chrome we discovered a strict order of operation for it to work; more specifically:

  • Peers must be present with local streaming video before sending SIP (offer/answer SDP)
  • For ‘Answerer’; Do not add ICE candidate until the peer generates the ‘Answer SDP’
  • Once remote media starts streaming stop adding ICE candidates
  • Never create peer connect for answerer until you get the ‘Offer SDP’

We fixed it by handling those issues and handling the connection in the order described above. This was crucial to making the connection work flawlessly. Before we did that it would work only every once in a while.

Added latency due to lag

When streaming to a mobile device there is added latency due to lag and limitations of surfing the net via mobile phone.

We solved this by making the resolution of streamed video reduced via a hash tag at the end of the URL. URL can optionally contain '#res=low' for low resolution stream video & '#res=hd' for HiDefinition streaming video as an optional URL parameter. A quick note here that other configurable properties are now available such as frames per second which you can use for this same purpose.

Recording the WebRTC demo

We’ve been dabbling with recording video WebRTC demo. When recording video we used the new JavaScript type arrays to save the streaming data. We quickly discovered that it is only possible to record the video and audio separately.

We solved this by creating two instances of recording, one for the audio and one for the video, that utilized the new javascript data types and recorded both streams simultaneously.

Conclusion

It’s exciting to dabble in this stuff, we love WebRTC so much that we created an entire page dedicated to our experiments with this technology and others which we believe will transform the web in 2013. If you have any question please give us a shout.

Firefox FlicksFilm School Visits in London

Last week Tobias from the Flicks team went to London to say hi to some of Londons’ most prestigious film schools, to meet with teachers and to inspire film students to create submissions for Flicks 2013. Here’s his report:

Goldsmiths

My first stop was at the Department of Media & Communications at Goldsmiths, University of London to meet 2 film professors there. Beautiful campus:image

Met School

Second stop was at the Met School, which is located on the campus of the Ealing Studios. They had organized a talk for me, and although the weather was beautiful, many students sacrificed their lunch break to hear everything about Firefox Flicks. Photo:

image

London Film School

Located in the center of London is the The London Film School, only a short walk from the Mozilla London office, in the area called “Covent Garden”. It was actually really cool to see our Flicks posters hanging at most of the universities I visited so far. (We did a mailing earlier this year, which apparently worked.)
image

London College of Communication

My next stop was the BA Film and Television department at the London College of Communication, University of the Arts. If I was interested in becoming a film student: I’d have trouble deciding for which school to apply to.
image

National Film and Television School

The final visit was at the NFTS, the National Film and Television School. The director gave me a tour around their studios which was very inspiring. I don’t know if theres’ a more successful film school around in terms of Oscar nominations that their (former) students have received. Truly impressive.image

Actually - One of our 2012 Firefox Flicks winners came from NFTS! Enjoy “Paranoid” from the team of Sean O’Riordan:

Special thanks to Dogwoof Film, who helped us organize this trip.

Web FWDOur Scouts Charge On

As we approach our June 5 deadline to apply for our next class (aka WebFWD IV), our Scouts are getting the word out around the world! We’ve even welcomed some new ones to the Cause! Below is a brief profile on our newest Scouts as well as recaps of some of our team’s recent activities. We are so grateful for them!

Of course, you needn’t be a Scout to spread the word about what we’re doing. If you know of developers, entrepreneurs and startups that:

  • Are building products / services that make the web (including the mobile web) better and more open;
  • Have open source products (at least, a component) or are leveraging the power of HTML5;
  • Have built at minimum a working prototype

….please encourage them to consider WebFWD. Teams can be located anywhere, as participation is remote and with the exception of the San Francisco Bay Area for Orientation (July 2013) and Graduation (November 2013).

To the web!

Meeting NotesMozilla Project: 2013-05-06

All-hands Status Meeting Agenda

Items in this section will be shared during the live all-hand status meeting.

Friends of the Tree

  • Gloria Meneses in Bogotá, CO, for her work & leadership in Mozilla Reps & her support of the FxOS launch in Colombia

  • Sammy Tuman, our awesome Mountain View Shipping Wizard.

Upcoming Events

This Week
  • Security Assurance team meet up in San Francisco office this week. Please stop by and say hello. “Open house” & demos on Thursday 2pm (SF 7th floor) w/ cupcakes & cookies!
Thursday, 09 May
  • 2pm – San Francisco – 7th Floor: Meet the security assurance team, watch demos of tools & techniques, FAQ and discussion. Cookies & cupcakes will be provided. Open to all.

  • 5:30pm – San Francisco – 7th Floor: we’re hosting a patent reform party at Mozilla SF with the Electronic Frontier Foundation. More Info
Next Week

Product Status Updates (voice updates)

Firefox Desktop

Speaker Location: toronto (johnath)

Firefox Mobile

Speaker Location: toronto (johnath)

  • Release is now four and a half stars!

  • I thought I told you that we won’t stop
    • Lucas and Ian each wrote about the UX hackathon last week, it’s chock full o’ delicious.

    • New tab counter, tab tray transition, tab increment animation
    • URL display in location bar
    • Dominant-colour backgrounding for favicons
    • Still setting records on stability
Webmaker

Speaker Location: Ryan Merkley, Vancouver

Sunday is Mother’s Day! Why not send Mom a hand-crafted web page to show her how much you care? Mozilla makes a tool that makes it easy to tell mom you love her — Webmaker! We’re working on a prototype this week that will help people make a page for Mom — and learn a little HTML and CSS along the way. We’ll share a sneak peek in today’s lightning presentation from Jacob Caggiano.

  1. Sign up for Maker Party 2013. Or invite your Mom! :) June 15 – Sep 15. Get together at thousands of big and small webmaking events around the world.

  2. Join our new “Teach the Web” open online course. Boot camp for Maker Party. Growing a small army to teach the web: programmer mentors, techie grandmas, teachers, novelists, girl scout hackers and you. Meet them and check out highlights here.
  3. 8 other fun ways to get involved with Webmaker this week.
Firefox OS
  • 1.0.1: In certification testing with OEMs, trying to fix bugs turned up by that process as quickly as possible.

  • 1.1.0: Entering first phase of chipset vendor testing next week, so focus there is getting any regressions and new features cleaned up before it begins.
    • MMS Workweek in Portland ongoing this week.
  • Geeksphones seem to be flying off the virtual shelves as fast as they can restock them.
Grow Mozilla

Speaker Location: San Francisco

Help us build a history of Mozilla told by Mozillians. Please share your memories about this Mozilla milestone:

60 Seconds with Mozilla IT

Speaker Location: mrz in SF (on the couch)

Speakers

Presenter Title Topic Location Share? Media More Details
Who Are You? What Do You Do? What are you going to talk about? Where are you presenting from? (Moz Space, your house, space) Will you be sharing your screen? (yes/no, other info) Links to slides or images you want displayed on screen Link to where audience can find out more information
Diane Bisgeier Program Manager, WebFWD How you can get a WebFWD tshirt and hopefully MESSENGER BAG Mozilla San Francisco No screen share – just showing off the schwag you can get if you refer a team to our next class. Here’s the messenger bag :) > https://www.facebook.com/photo.php?fbid=361822707265407&set=pb.218655251582154.-2207520000.1367814592.&type=3&theater Details on WebFWD at http://webfwd.org
Jacob Caggiano Lead Makesmith, Webmaker.org Our simple template for making your Mom proud on Mother’s Day My Aunt’s apartment, New York, NY Yes, screenshare indeed. https://thimble.webmaker.org/p/lrxw/edit
Mike Morgan Director, Web Development Manager Hacking Session 2 in SF Mountain View No https://wiki.mozilla.org/Manager_Hacking
Dia Bondi (IRC thejudge) Head of Knowledge Cultivation Capture Mozilla is Air.Mozilla too! + Badges San Francisco No https://air.mozilla.org/channels/culture_and_context/ https://badges.mozilla.org/en-US/

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Meadhbh Hamrick Sid Stamm Mountain View Mountain View Security Engineer
Jannis Leidel Laura Thomson Mountain View Germany Web Developer
Justin O’Kelly Mike Manning Mountain View San Francisco Managing press relations and media strategy
Jason Weathersby Mark Coggins San Francisco Inman, SC Firefox OS Technical Evangelist
Marcos Cáceres Andrew Overholt San Francisco Lisbon, Portugal Platform API Designer/Engineer
Shyam Mani mrz San Francisco Mountain View IT Developer Services

<meta>

Notes and non-voice status updates that aren’t part of the live meeting go here.

Status Updates By Team (*non-voice* updates)

QA
WebQA
  • Engagement

    • New ReMo release with some new features like events display, and auto-filtering on user’s interests + bug fixes

    • New Flicks release with Early Award winner posted, plus winners, partners and awards pages added.
  • Firefox OS
    • keep up-to-date with all the latest in a nice, digestible format, here:

    • have Unagi commercial-RIL builds in our CI, with runs against them
    • apart from an annoying “ding”-on-notification issues (each restart), they look good
    • now we can troubleshoot the modem issue
    • Inaris requested from ServiceNow
    • have an engineering build on 1.0.1 for them
    • will soon set up a download job and run against them
    • 3 new tests (Marketplace, Settings)
    • Some good coverage re-enabled as devs repaired regressions
    • Full-steam ahead on Payments testing although no significant coverage in place yet
    • Dave Hunt made good gain in reliability by configuring device state before the testrun
    • mbrandt 1.1 manual testing and testcase creation
  • Marketplace
    • Work continues on automating the app installation and payments flow using Marionette
  • Mozillians
    • Several issues with the dev cluster – https://bugzilla.mozilla.org/show_bug.cgi?id=864422

    • Near continuous deployment – small bug fixes, multiple releases over the last week
    • Team is actively scoping the UI refresh work that will be accomplished this quarter. UI Mockups forthcoming in the next few weeks.
  • Mozilla.com
  • MDN
  • Socorro
Automation & Tools

  • Dial-in: conference# 8600

    • US/International: +1 650 903 0800 x92 Conf# 8600

    • US toll free: +1 800 707 2533 (pin 369) Conf# 8600
    • Canada: +1 416 848 3114 x92 Conf# 8600
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 8600

SUMO BlogWhat’s up with SUMO – May 6

Big things this week

  • Notes and video from this SUMO meeting.
  • Work continues on new Topic and Subtopic information architecture. Hopefully there will be designs ready to share later this week.
  • Tom’s presentation about live chat (starts at 4:47).
  • Brazilian Portuguese community reboot is amazing. If you want to reboot your community or get it to be more active, contact us and we’ll be more than happy to help.
  • Current SUMO development sprint – 2013.9
  • Next SUMO meeting – Monday, May 13th (call in details & meeting notes) at 9:00 am PDT. Please add your comments, questions and updates to the wiki. You can also participate in #sumo during the meeting. We’re going to record and post a video of the meeting.

about:communitySummit by the numbers – status report out

It was a pretty quiet week on the Summit planning front for me, although I know there are many others working VERY hard to pull it together.  The Summit Planning Assembly invitations have gone out, responses gathered, flights booked.  Should be an amazing event the outcome of which will inform almost everything we do at the Summit.

From my end, we are still searching for space (hotels and venue options) within the EU.  Right now, we’ve narrowed our search to Brussels and Dublin.  Interesting locations for Mozilla, but options, for a group our size, for this specific week in October, are quite slim.  What I’m also learning about Europe in general is that hotels tend to offer much smaller, more quaint, room blocks, vs. the “go big” approach of North America.  I should know more middle of this week on what each city can offer so I will keep you all posted.

I am headed to Toronto next week with our event planning partner to visit at our two venue-options for the Toronto Summit (the Fairmont Royal York and the Sheraton).  Both look beautiful so again, I will report back.  Once we have the venues, in all locations finalized, I will feel much relief and we can start pushing forward.

On numbers: the Mozilla Reps and Community Builders have come up with a list of ~850 volunteers who will be invited to the Mozilla Summit.  Because we have about 45 volunteers, who joined the group after the deadline, that we still need to decide upon, we will postpone communication on invitees until May 15th.  If you have been invited to the Summit, we will send you an email to let you know.  In general, because of cost and immigration-related issues, volunteers will be invited to the Summit location that is closest to their home country.  We will hold a lottery for about 10% of invitees who will be able to select their Summit venue.  More to come on that this month.

So, that’s my update for this week.  Lots to come.  As always, you can find me and others in the #summit2013 IRC channel.

 

about:communityBadges and a Short Vid!

The Capture Mozilla project is now awarding badges for all versions of awesome video knowledge share submitted to the project.  And, you don’t have to be on camera to make a meaningful contribution.

Capture Mozilla Badge

Capture Mozilla Badge

Can you hold a recording device? Can you put together a story flow or short curriculum? Can you help someone use IMovie or record something on Quicktime?  Can you just cheer someone on while they capture their knowledge on video? Than you can help and get a badge for it!

Think you need to be fancy to make a video?  David Boswell proves fanciness and artistic prowess are not required to help another Mozillian navigate the culture.

Here David gives an insider tip on getting things done in the Mozilla way.  Thanks David!

about:communityMilestone: Netscape 6 released based on open source code

November 14, 2000: Netscape 6 is released and is the first Netscape product based on open source code

2000_netscape6_shirt

Share in the comments any memories you have of this event, photos of any t-shirts from this period or any other interesting pieces from this time in Mozilla’s history. The information shared here will help us visually create the history of Mozilla as a community.

hacks.mozilla.orgHow to Spread The Word About Your Code

You spent an entire weekend building a library, jQuery plugin, build tool, or other great piece of code you wanted to share far and wide, but after some tweets and a failed attempt to make the front page of Hacker News, your creation languished, unloved, in a GitHub repo. A common situation for many developers nowadays, but one you can avoid.

As the editor of several programming newsletters, I frequently get two types of e-mails from developers. Those reaching out to ask if I can mention their projects, and those expressing surprise and excitement that their work has been featured. If you’re a developer doing good work but feel more like you’d be in that second group, the three steps in this article are for you.

Before we get started, there’s a stumbling block we need to kick away. Terms like ‘marketing’ and ‘advertising’ are dirty words for many developers and it’s not uncommon for developers to be reluctant to do much promotion. ‘Build it and they will come’ used to work when exciting open source projects were few and far between but now everyone seems to be working on something and making a noise about it. Few of the successes you see come through pure luck but because developers are actively promoting their work or, at least, making it discoverable. It’s time to join them!

Step 1: Get your project ready

Before you can promote your project, you need to make it attractive to potential users and evangelists (including general wellwishers, the media, and other developers).

A good name

Ensure your project has a palatable name. It doesn’t need to be clever or even descriptive, but it’s worth avoiding innuendos that may present a problem down the line. For example, the popular Testacular and Authgasm projects, are now named Karma and Authlogic respectively after users raised a fuss.

You should perform a search for the name you choose to be sure you’re not clashing with anything else that’s popular or trademarked (did you know Firefox was called Phoenix and Firebird prior to Firefox?). The US Patent and Trademark Office has an online trademark search facility.

A benefit of having a relatively unique or uncommon name is so you can search for it over time (or even set up a Google Alerts notification for the name) and find mentions of your project without many irrelevant results popping up. If you want to have something descriptive but unique, consider joining two words together. For example, when I created a Ruby library to do natural language detection, I called it WhatLanguage and it’s easy to search for.

An official homepage or project URL

The term ‘homepage’ is a bit outdated but you ideally need a single ‘home’ URL that you can promote and point people to in relation to your project. You don’t need to splash out on a fancy template or even a domain name, but your project needs a focal point. That could be an entire site with its own domain, such as those for Yeoman or HTML5 Boilerplate, a simple single page on an existing domain, such as that for RoughDraft.js, or even a regular GitHub repo, such as for vague.js.

If you have the freedom to do so, make sure your site looks good on the major browsers (including mobile), hook up some analytics to your page and ensure the <title> tag is well written. Use a title like “MyProject – A JavaScript Library to X, Y and Z” instead of just “MyProject – About” or a blank title. With social bookmarking, this matters as you can’t guarantee your evangelists will write a good title of their own.

If you’re not a Web designer, don’t have the time to spend making a complete design, but still want a complete site rather than just a GitHub repo and README, consider using a framework like Bootstrap as it’ll provide a clean layout out of the box and you can forget about many cross browser and device issues.

Documentation and copywriting

It’s only just a cliché that developers don’t like to write documentation, but you need something for potential users to fall back on, and time invested in producing useful documentation up front will pay dividends later.

At a cynically bare minimum, you need to write enough documentation that someone will be confident about sharing your link or promoting your project and not feel like they’re sending their own followers into a black hole of misunderstanding. This means your homepage or README needs to cover a few angles. You’ll need to:

  • Prominently feature a “[noun] is” paragraph. An alarming number of project homepages don’t explain, in simple terms, what the project is actually for or does. If you’ve built a JavaScript library that does language detection, say, you have to say so. For example: “LanguageDetect is a JavaScript library for detecting the natural language of text.”

    An excellent example of this in action is on libcinder.org where it states right up front: “Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.” Perfect!

  • Write clear titles, subheadings, and support copy. At a bare minimum, ensure titles, subtitles, and any sort of writing on your homepage are straightforward and clear. Write for the lowest common denominator on your homepage. You can get more advanced elsewhere.

  • Write a beginner’s tutorial and link to it from your home page. Unless everything’s simple enough to explain on a single page, quickly write a tutorial that covers basic installation and usage and either include it in your README file or put it on the Web and link to it from your README and/or homepage.

  • State dependencies and requirements clearly. Does your library only work on a specific version of Node? Is it a browser extension for Firefox? Does your code require PostgreSQL, Redis, or another specific database? Be sure to include a bulletpoint list of dependencies and requirements for your project to be usable so as not to disappoint potential users.

  • Specify the license for your code. While you could get away with keeping your licensing information tucked away in a LICENSE file in your GitHub repo, specifying what license your code is released under up front and center will help put many developers at ease. Likewise, if your project is commercial is nature and costs money, don’t hide that detail away and mislead visitors.

  • If your project is a library or API, feature some example code on the homepage. Unless your library is particularly complex, let visitors see an example of its usage on the project homepage. If your API is good, this could be a great way to get an ‘easy sale.’ I’m not a huge fan of the code example chosen but the homepage for Ruby shows off this technique.

Extra materials

A blog post is a great way to introduce a project that might need more background or have more of a story than it’s practical to tell on a homepage or within documentation. If there’s any sort of story behind your project, a blog post is a great way to tell it. Be sure to link to the post from your project’s homepage and consider promoting the blog post separately to relevant sites within your niche.

If you have the ability, recording a screencast or other sort of video can help. Could you put together a simple 5 minute screencast of how to install and use your library? Or have you built a game that could be demonstrated in a few minutes of gameplay? Record a simple video, put it on YouTube, and embed it on your homepage. Your accent doesn’t have to be as crisp as a newsreader’s and you don’t even have to appear within the video. All that matters is you get to the point quickly and your audio is tolerable (not muffled, clipping, or drowned in background music).

As the editor of several programming newsletters, I look at thousands of projects each year, and it’s still uncommon to see simple screencasts, yet they certainly help a project stand out and, as a consequence, make it more likely for me to talk about it. You can see a perfect example on Punch’s homepage. The early popularity of Ruby on Rails also depended upon a popular ‘build a blog engine in 15 minutes’ video, back when the concept of using video to promote an open source project was very novel.

If you’re sticking to the straight up, GitHub README approach (and it’s certainly not a bad idea for a simple library), a bonus tip is to create a tiny screencast of your code in action and convert it to an animated GIF for inclusion in your README. Richard Schneeman outlines this technique in Use GIFs in your Pull Request for Good, not Evil. The result is striking and could help your README stand out.

For further ideas on how to make your project stand out before you begin promoting it, check out the great How to Make Your Open Source Project Really Awesome by Michael Klishin. It digs into more detail about versioning, announcements, having a changelog and writing good documentation.

Step 2: Get the word out

You’ve polished your project, got a URL to promote, and you’re ready to get the news out.

A word of caution, however. Don’t use every technique on day one. You could overload your site with traffic or, worse, be subjected to a barrage of online criticism if your work or site is broken. With something like a library or tool, a gentler approach will work well and building up small streams of visitors and users over time will give you a much better time.

Social networking

Your own social networking profiles are always a good place to start if you have them. You’ll get more immediate feedback from people who actually know you and if your project is particularly interesting, it could go viral even from a single mention.

A great example of a simple project going viral was YouTube Instant by Feross Aboukhadijeh. Feross built YouTube Instant quickly, mentioned it on Facebook before going to bed, and woke up to a flood of traffic and press mentions.

If you like to experiment and have several bucks going spare, you could also consider paying for a promoted post on Facebook. This will give your post more visibility in your news feed, but is best reserved for if your Facebook friends are mostly developers or people likely to be interested in your project. If not, and you’d still like to spend some money, consider an ad on Reddit or a relevant programming blog instead.

Influencers, bloggers, and niche media

Whether you’re working on a JavaScript library, Firefox extension, backend app in Rails, or a theme for Bootstrap, your code will fit into one or more niches and every technical niche has a variety of ‘influencers’, people and publications who are popular and well known for the topic at hand.

Getting a tweet, retweet, or even an entire blog post from an influencer could have a significant impact on your project, as could being invited to blog elsewhere (Mozilla Hacks, for example!). If Brendan Eich tweeted about your JavaScript library, Lea Verou wrote a blog post about a CSS trick you discovered, or Paul Irish mentioned a Web development tool you built in a talk, you would attract a lot of interest quickly. It is key, however, to realize there are many great influencers in every space and you’ll achieve nothing by hounding any one person so be prepared to move on.

Spend some time working out who the influencers and key publications are in your niche. For Twitter, Followerwonk is a handy tool that searches Twitter biographies for certain words. If you search for “javascript” the first page includes several users who would be useful to reach out to if you had a particularly interesting JavaScript-related release to promote. Reaching out on Twitter can be as simple as a single tweet and many busy folks prefer Twitter as it takes less time to reply than an e-mail. A single tweet from @smashingmag could drive thousands of visitors your way, so consider tweeting them, and other similar accounts, when you have something relevant.

I’d also advise looking for blogs and e-mail newsletters in your niche. Start with something as simple as Googling for “javascript blog”, “javascript newsletter”, “css blog” or whatever’s relevant to your project. Most bloggers or e-mail newsletter publishers will not be offended by you sending them a quick note (emphasis on quick) letting them know about your work. Indeed, some weeks there can be a shortage of interesting things to write about and you might be doing them a huge favor.

If you choose to e-mail people (and your project will probably be more substantial than a few hours’ work to justify this), take care not to make demands or to even expect a reply. Many bloggers and influential people have overflowing inboxes and struggle to reply to everything they receive. Make your e-mail as easy to process as possible by including a single URL (to your now superb homepage or README) and include your “[noun] is” paragraph. Don’t take a non-response as an insult but keep moving on to the next most relevant person. You might even consider taking a “Here’s my project that does X, Y and Z. No reply needed, I just thought you might like it” approach. Softly, softly works here, as long as you get to the point quickly.

How to get attention from internet celebrities by Jason Cohen and How to Write the Perfect Outreach Email by Gregory Ciotti go into more detail about e-mail etiquette when promoting your work to influencers. While you might not need to contact any ‘celebrities’ in your niche, the principles of keeping it short, including a call to action, and ensuring your work is appropriate to the person are really true for anyone you’re sending unsolicited messages to.

Podcasters are an often forgotten source of promotion opportunities too. While some podcasts don’t cover news or new releases at all, many do, and being on the radar of their hosts could help you get a mention on a show. Smashing Magazine has put together a list of tech podcasts covering the areas of design, user experience, and Web development in general. Again, keep your e-mails short and sweet with no sense of expectation to get the best results.

User curated social news sites

As well as reaching influencers and niche media, sometimes reaching the public ‘firehose’ of news can work too, and there are few better examples of these in the modern world of development than Hacker News or Reddit.

Hacker News in particular is notoriously hard to reach the front page on and ‘gaming’ it by getting other people to vote up your post can backfire. (Indeed, it will backfire if you link people to your post on Hacker News and encourage them to upvote. They have ways of detecting this behavior. Get people to manually find your post instead.) If you do reach the front page of Hacker News, of course, you can certainly expect an audience of many thousands of developers to be exposed to your work, so be sure to try.

With Reddit, the key isn’t to dive straight into a huge sub-Reddit like /r/programming but to look for sub-Reddits more directly related to your project. For a JavaScript library, I’d post to /r/javascript or possibly /r/webdev. Reddit ads can also perform well if you’re OK with spending some money and these can be targeted to specific sub-Reddits too.

There are many similar sites that are less well known but which are respected in their niches and can drive a lot of interested visitors, including Designer News (mobile and Web design), DZone (general developer stuff), EchoJS (JavaScript), RubyFlow (Ruby and Rails), and Lobste.rs (general hacker and developer stuff). Finding the right site like this and taking time to make an on-topic, well written post will help a lot.

The mass media / press

This article is primarily focused on the promotion of open source and front-end projects and these are typically not frequently covered in print or on the TV or radio. If, however, you think the mass media would be relevant for your project, here are some other articles packed with handy tips:

Step 3: Maintain momentum

You’ve built up some interest, your GitHub stars, Reddit votes, and pageviews are all rocketing up, but now you want to capitalize on the attention and maintain some momentum.

User support

Whether you’ve built an open source project or a cool tool, you’re going to end up with users or fellow developers who want to provide feedback, get help, or point out issues with your work. On GitHub, the common way to do this is through the built-in ‘issues’ tracker, but you might also find people start to e-mail you too.

Be sure to define a policy, whatever it is. Users won’t feel good about opening issues on your GitHub repo if there are already many unresolved issues there and your project could stagnate. Ensure you respond to your audience or at least make your policy clear within your README or on your site. If you don’t want issues raised or code contributions, make this clear up front.

Extending your reach

For many projects, create a dedicated Twitter account, blog, Facebook page, or Google+ page in advance is overkill, but if your project starts to take off, consider these things. They’ll provide an extra way not only for users to remain in touch with your project but also a way for them to help promote it by retweeting things you post or by directing potential new users your way.

You can also extend your reach in person by going to user groups and conferences and, if you’re really lucky, you can speak about your work too. This is a great way to get new users as people are much more likely to look into your work if they’ve met you in person.

Avoid being defensive

If your project does well on sites like Hacker News or Reddit, you’ll be tempted to read all of the comments your peers leave, but be careful. Comments about your work will, naturally, seem magnified in their intensity and critical comments that might not actually be mean spirited may seem as if they are to you.

It’s hard, but the best policy is to not let any overtly mean comments get to you, duly correct any observations that are wrong, and to thank anyone who goes out of their way to compliment your work. Even if you’re in the right, with the lack of body language and verbal cues, being too defensive can look bad online and result in the post becoming a lightning rod for drama. Engage as best you can, but if it feels wrong to reply to something, listen to your gut.

Be careful if you go into a new community to promote your work and get negative feedback. Most communities have rules or expectations and merely entering a community to promote your work is frequently considered a faux pas. Be sensitive to people’s environments and try to abide by a community’s rules at all times.

The long term

If your project does particularly well, you could be presented with the opportunity of turning it into a business in its own right. Many simple open source projects, often started by a single developer, have turned into long term work or even entire companies for their creators.

Back in 2010, Mitchell Hashimoto released Vagrant, a Ruby-based tool for building a deploying VirtualBox-based virtualized development environments. In late 2012, Mitchell launched Hashicorp, a company providing Vagrant consulting services to enterprise customers. An even higher profile example is Puppet Labs, a company built around the Puppet open-source configuration management tool and which has taken total funding of $45.5 million so far.

If your project becomes respected and heavily used within its field, you might also be approached to write a book or article about it or even speak at a conference. This is a good sign that your project has ‘made it’ to some extent as publishers and event organizers are in the business of working out what it makes business sense to present.

Putting it all together: A checklist

This has only been a basic introduction to promoting your work and with practice you’ll come up with tons of tips of your own (it’d be excellent if you could share some in the comments here). Based on all of the ideas above, here’s a basic checklist to run through next time you release a new project and want to get some added exposure:

  • Focus most of your efforts on your project’s homepage or README.
  • Check your project’s name doesn’t clash with anything else and is unique enough to find references to your work later.
  • Promote your work to your closest social group first to unbury any problems with your work.
  • Record a screencast or write a blog post about your project if some extra background would be useful for others.
  • Work out a perfect *”[project name] is”* sentence to describe what your project is or does.
  • Use your *”[project name] is”* sentence to give your page a descriptive title.
  • Find influential people, blogs, podcasts, and e-mail newsletters in your niche and send them a short, pleasant note.
  • Post to social news and bookmarking sites. Ensure your title is descriptive.
  • Use your *”[project name] is”* sentence in e-mails and contacts with influencers.
  • Take a positive, “look on the good side” approach to responding to comments about your work.

Good luck!

Mozilla Web DevelopmentAvoiding Dependencies

Avoid code duplication and reusing code is always an admirable goal. However, in some occasions, it’s not a bad idea to duplicate a little bit of code in order to make your software better.

An Example

When writing a Node app, accessing a directory listing is fairly simple: the fs.readdir command provides a list of objects in a directory, and a call to fs.stat will tell you whether each object is a directory or a file.

That’s fairly straightforward, but recursing (especially when using callbacks) can require some mental yoga. Each directory needs to keep track of how many subdirectories it expects to receive callbacks for and results need to be aggregated in pieces rather than sequentially.

When I needed a recursive directory listing this past week, I was tempted to use a library: why solve a solved problem? The glob library provides this functionality with very little effort:

Why would you use anything else? Here’s what I saw when I did an npm install glob:

    • glob
        • minimatch
            • lru-cache

           

        • sigmund

       

    • grafeful-fs
    • inherits

Simply by adding glob to my project, I’ve added a total of six modules. That’s not unexpected, though, since glob does a whole lot more than I need it to do. In the end, I ended up simply writing my own, and including it in the single file that requires the functionality:

Why are dependencies not good?

First, and most importantly, is the security of those packages. If the SSH keys of the developer of those packages are compromised, an attacker could provide an “updated” version of the library which includes malicious code. At Mozilla, we use internal mirrors of PyPi and NPM to make sure we’re not installing arbitrary modules. Avoiding dependencies helps to avoid requiring a solution.

Second, there’s a performance hit for libraries. If you’re building a one-off fix for a simple problem, using a library increases the overhead of your app’s load and use. If you’re building a web app on Node or Django, you might use an auto-reloader to restart your local server when script files change. In many projects, this takes an imperceptibly small amount of time to reload. As your codebase and dependency list grows, your auto-reloader can take precious seconds to run (we have projects that take almost five seconds to reboot).

Each dependency increases the time it will take to install your application. Zamboni (the code behind addons.mozilla.org and marketplace.firefox.com), for instance, takes 12 minutes to install libraries and dependencies. What starts out as a small number of libraries can very quickly grow out of control and become a serious nuisance. time npm install glob, to reference my earlier example, tells me that glob adds four seconds to my install time. Some simple and unscientific benchmarks from popular node libraries:

  • socket.io: 33s
  • mongoose: 9.5s
  • connect: 5.7s
  • jade: 5.3s
  • express: 4.4s
  • glob: 3.9s

And some from popular Python libraries (run with time pip install <module>):

  • numpy: 110s
  • django: 96s
  • pycrypto: 18s
  • flask: 14s

Third, you’re taking the gamble that the libraries that you depend on don’t have conflicting versions. A great example of this can be illustrated by a web app that I was building: the HTTP requests that I was creating with Python’s requests library didn’t have a .json property, as the docs state. An hour of hair-tearing later, I discovered that another library that I was using had already installed a much older version of requests which lacked the property. Unfortunately, the library wasn’t compatible with the latest version of requests and I had to settle for the old version.

The consequences could have been much worse, and this is a not-well-solved problem (for the Python community, at least).

Last, if your project is used as a library, including dependencies decreases the re-usability of your code. If your code uses a third-party library when it could have taken advantage of some slightly-gnarly standard library tools, all of the above reasons make it that much more difficult for a developer to justify using your tool.

Now hold on just a minute.

Does this mean you should never use an external library? Not at all! You should use libraries whenever it’s appropriate. Sometimes the effort required to perform a task correctly and thoroughly (or at all) is simply too much work to do on your own. OAuth? You’ll probably want a library. Database work or ORM? Use a library. But what if you need to serve a single static HTML file over HTTP? You can probably use Node’s http or Python’s SimpleHTTPServer without too much heartache.

Sometimes it’s just irresponsible to write code yourself: would you trust a developer’s one-off method or a mature ORM’s SQL sanitization code? What about code to generate secure random numbers for encrypting sensitive data? Or code that protects against XSS attacks? There are a lot of instances where it’s in your users’ best interest to use a trusted solution rather than your own solution.

A double-edged sword.

Another reason for choosing libraries is the community: if there are bug fixes to a third-party library, dependents can relatively easily update to the latest version of the library and take advantage of the improvements immediately.

That can be a good thing and a bad thing, though. Libraries without a community around them can contain bugs that don’t get patched in a timely manner. Fixes may be difficult or impossible to upstream.

TL;DR

  1. If you can easily get by without a dependency, you don’t need the dependency.
  2. If you’re building a library, you should avoid dependencies.
  3. Don’t avoid dependencies if it means potentially putting your users at risk.

Mozilla Web DevelopmentFirefox Marketplace: April 19th – May 2nd

This is a regular post focusing on the status of the Firefox Marketplace.

  • Total bugs open: 538
  • Total bugs opened last two weeks: 237
  • Total bugs closed last week: 159

Payments testing was conducted in the field and that caused a large number of bugs to be filed.

Some specific changes of note:

  • API for the simulator to create app receipts (865498)
  • Users languages are now persisted for Marketplace and AMO so emails can be localized (833049)
  • API now works correctly with geo location (863775)
  • App locale listings improved in the developer pages (866287)
  • A whole bunch of payment fixes from Bango.
  • Product icon API makes payment pages so much prettier (864451)
  • Fireplace shows new apps (867272)
  • Review queue for themes improved (841185)
  • A parser for the new app feature detection (862459)
  • New design for the details page (860384
  • If users abort during PIN, make them start again (867727

Payments with an icon:

Screen Shot 2013-05-03 at 4.14.27 PM

Web activities are coming to the Marketplace.

Check out the documentation for more.

Mozilla UXPolish All The Things!!1

Firefox for Android UI Hackathon, Spring 2013

 

Hackathons are a great way to get a bunch of people sprinting through a very focused body of work, and they’re also just great fun to do.

And much to the UX team’s delight, our engineering team recently organized one that was focused solely on UI polish bugs! We almost always have a backlog of subtle but important refinements we’d like to add to Firefox, and while we are incredibly lucky to work with an engineering team that values good design, there are still only so many hours in the day and only so much of peoples’ time available to make fixes. This was a great opportunity to sand down some of the rough edges we had been thinking about for a while.

The hackathon bugs had to be simple enough fixes that could be made in the short time frame of the hackathon, so brand new features were off the table. This was all about polish. And in order for the sprint to be successful, there couldn’t be any road blocks or missing details, so I made sure that whichever ones people wanted to work on had the most up to date instructions and designs ready to go.

This was our short list when we kicked off the hackathon. https://bugzilla.mozilla.org/buglist.cgi?quicksearch=sw%3Aui-hackathon

Over the course of a few days, the team knocked off *19* of these bugs. Some of the most visible improvements included:

New tab counter icon

We recently simplified the title bar area to use a single ‘background layer’ colour. For the hackathon we also revisited the icon design to more clearly communicate what would happen when you tapped it, using a visual metaphor that has become more or less the standard for tabs on mobile web browsers. Some earlier design explorations are shown below.  / http://bugzil.la/863379

icon tests

New tab increment animation

We also wanted to add a little dimension to the new tab counter icon, so we added a fun transition that appears when you create a new a tab.  / http://bugzil.la/863828

tab-increment

Refined tab tray transition

We have been exploring ways of making the tab tray opening feel more fluid and interesting. Below is an example of a parallax-like transition we experimented with for opening the tab tray. A slightly simplified adaptation of the animation below is in our Nightly build. / http://bugzil.la/864960

tab-tray-opening

Text labels in the tab tray

The tab section icons that existed in the previous design didn’t communicate the section contents as clearly as we would have liked, so we replaced them with text labels. / http://bugzil.la/862996

Screen Shot 2013-05-03 at 3.02.24 PM

Increased Reader Mode touch target size

Kind of a no brainer, but for some reason the touch area was tiny here for a long time. / http://bugzil.la/862755

Screen Shot 2013-05-03 at 3.05.29 PM

Reader Mode refinements

We recently added an option to use Charis — a serif typeface — in our Reader Mode, and it makes for a very pleasant read. / http://bugzil.la/862445

reader

Dominant colour sampling for favicon backgrounds

We display large favicons whenever we can, but many websites still only provide 16px favicons. This often makes for rather dissonant looking lists in our UI. Adding a tint of the favicon’s dominant colour to the background makes individual list items more quickly recognizable, and makes the lists look a little more designed overall. We’ll also use this approach for thumbnail boxes in cases where a screenshot of the website is unavailable. / http://bugzil.la/837392

Screen Shot 2013-04-19 at 3.46.44 PM

Optional title bar URLs

We added a setting to let users display URLs in the title bar, instead of page titles. / http://bugzil.la/778216

Screen Shot 2013-05-03 at 3.23.15 PM

Not bad for a couple of days’ work, right? A huge thanks to Lucas Rocha for organizing the event, and to the Firefox for Android front-end team and all the contributors who participated in our hackathon. Each one of these tweaks are wonderful refinements on their own, and having watched all of them land in the course of a few days was truly delightful. The next few releases are shaping up to be pretty special on Firefox for Android.

Of course, as always if you don’t want to wait for the update on Google Play, you can try out all of these enhancements _right now_ by downloading one of our Firefox Nightly builds. Enjoy!

Firebug BlogFirebug 1.12 alpha 5

getfirebug.com has Firebug 1.12 alpha 5

Firebug 1.12a5 fixes 22 issues
Firebug 1.12a5 is compatible with Firefox 20-22


Some highlights from this release

  • Filter for DOM event logs (issue 229)
  • This feature allows to filter DOM event logging that is set for specific element.

    We are not entirely sure if the UI/UX is OK and so, please read this post to help us.

    Filter DOM Events


  • The CSS panel displays file with @media elements (issue 1717)

  • @keyframes rules are now displayed inside the CSS panel (issue 5290)
  • @keyframes rules inside CSS panel


  • Autocompletion for Firebug’s CommandLine API (issue 5416)
  • There is a new auto-completion support for Command Line API.

    Command Line Autocompletion

  • @-moz-document rules are displayed inside the CSS panel (issue 5429)
  • @-moz-document rules inside CSS panel



Please post feedback in the newsgroup, thanks

Jan ‘Honza’ Odvarko


Firefox FlicksWhat does “Get Mobilized” mean to us?


Some Flicks participants have been wondering, “What does Get Mobilized really mean?” So we thought we’d write a post expanding on the idea to help you create your flick.

But before we talk more about that, you should check out the Creative Brief and the first Early Entry winners as a starting point. We think it’s great inspiration and a chance to see some good examples of other contestants’ interpretations of the theme.

Once you’ve done that (take your time, we can wait), read on for more insights.

We’ve broken this post into two sections: themes within the Get Mobilized concept and Get Mobilized dos and don’ts.

Themes within the Get Mobilized concept

Get Mobilized might seem like a lofty, abstract idea at first glance. And while it’s definitely open to interpretation, there are also some specific themes we think it should capture.

One of those themes is connectivity. Getting mobilized is about bringing people closer to take us all further in life and higher in our goals — together (that last part is key).

The concept of connectivity in the mobile world can happen through something as simple as collaborating on a project using emails and instant messaging, but it can also be demonstrated through more complex ideas, like changing or improving your existing personal relationships.

Two other important, connected themes within Getting Mobilized are accessibility and the democratization of the Web. We believe that everyone should have equal access to the Web and all of its amazing resources. We also think that there are unlimited possibilities of what can be made, done or discovered with the power of the Web.

At the same time, we realize that Web access is undergoing a shift from desktop computers to mobile devices. And we don’t think it’s fair that only people who can afford expensive smartphones should have access to the new frontiers of the Web on mobile.

So the themes of accessibility and democratization are the keys to this shift — we believe it doesn’t matter where you’re from, what you do or how much money you have; everyone should be able to Get Mobilized.

Get Mobilized dos and don’ts

DO make your video 60 seconds or less — we can’t approve videos longer than that.

DON’T show any branded devices — we want the concept of getting mobilized to speak for itself and not rely on specific phones or manufacturers.

DO focus on the concept and possibilities of mobile. Think of this as an inspirational video that demonstrates the power of mobile, not a video about Firefox.

DON’T focus on Firefox specifically. This isn’t an ad for Firefox in the mobile world. Instead, it’s a demonstration of the potential of mobile computing in real life settings and situations. It’s also a demonstration of the themes within Get Mobilized: connectivity, accessibility and the democratization of the Web.

DO use any style of filmmaking you want — it can be live action, animation or anything else you can think of.

DON’T limit yourself to videos shot with a mobile phone — you can use any equipment you like. If you’re just submitting videos made on a mobile device, but the content doesn’t demonstrate the concept of Get Mobilized, we can’t approve your submission to Flicks.

DO make your video in any style you want — it can be funny, serious or a little weird. The only thing we’re specifically looking for is that it be inspirational, hopeful, forward-looking and that it evoke feelings and emotions from the viewer around the power of the Web on mobile.

DON’T make a video that talks to Web experts, like programmers or hackers. In fact, you should think about people who are just coming online — your video should demonstrate what the Web can do for them and why it is or will be an important, essential tool in their everyday lives.

We hope this post clarifies our thoughts around the Get Mobilized theme and helps you to think strategically about the content of your submission. We can’t wait to see how you interpret the theme — so get out there, get creating and together we’ll Get Mobilized!

WoMozWoMoz Meeting Notes (April 30)

Meeting Agenda and Notes can be found here: https://womoz.etherpad.mozilla.org/30-04-13

Our next meeting will be on Wednesday MAY 15TH AT 16:00 UTC, irc channel #womoz

Project Highlights:

  • Our new logo creation is looking good! Good progress there. Mozilla Creative team is going to help out and give us some design options from which to choose from within the next few weeks
  • Swag will therefore be created and distributed for local WoMoz events, once the logo is done
  • WoMoz committee is now formed. We are still open for one more person, in order to have an uneven number in the committee (for the moment we are 4). In the meantime the committee will start getting organized and start performing its tasks. Some of the things the committee will initially focus on are:
    • Coordinate WoMoz effort around the world, in local communities
    • Driving ideas for increased participation of local WoMoz Reps
    • Work with Recruiting/Engagement teams to grow women’s presence at our events (that aren’t organized by WoMoz) eg: Hack Days
  • Want to join and help out in the WoMoz project? Choose an area here to participate!

Mozilla UXDiscovery in the Marketplace

iStock_000005209088Medium

Shopping for apps is a different experience for everyone. Sometimes it can be easy — you know what you want right then and there, a couple of clicks and you’re done. But what if you don’t know exactly what you want, or you’re just window shopping? If this is you, you may have found that the majority of app stores don’t cater to casual shoppers such as yourself. As a frequent app buyer, I will share a few of my recent shopping experiences and how they have influenced the future design and functionality of the Firefox Marketplace.


Finding Apps 

Last month, I recall painstakingly shopping for the “ultimate” To-do app. I was surprised to find that not only are there tons to choose from, but several also came with high ratings. Because there was little to distinguish these top rated apps from one another, I was left with no other option than to download a few and discover for myself which one best suited my needs. Nothing like a little trial and error experiment when all I really wanted was a quick solution for tracking my Honey-Do list from the fiancé.

We all have our favorite bloggers, columns and influencers that we trust to lead us to next “big thing”. I kick my mornings off every day with a cup of coffee and reading the daily Verge. One feature I especially look forward to seeing is The Verge’s weekly “Best New App”. A couple of weeks ago a new weather app called “Haze” was profiled. After quickly reading the blog’s brief synopsis, I dashed off to the app store to see what all the fuss was about. As usual, The Verge did not steer me wrong; “Haze” not only looks great, but provides a new and unique way to view weather patterns. This “Influencer Experience” shows us the power of recommendation.

A couple of months ago I was browsing through the gaming category of an app store, searching for a game to please my wandering mind, and hopefully waste a few hours of time. Page after page nothing caught my eye. Then all of a sudden — like finding a five in your pocket — there it was: A Super Nintendo RPG port called “Chrono Trigger”. Besides being a RPG classic, the sight of the game brought me back to my childhood and I immediately felt an emotional connection to it. Would I expect a game that came out twenty years ago to be on top of the digital shelf? No, but I couldn’t help but wish I had known about this app earlier. Don’t get me wrong, I’m glad I found my little childhood treasure, but what if apps could find you?


Apps Finding You: The Feed

There will always be room for the in-and-out app shopper, but what if the casual shopper could have apps come to them? Not just any apps, but specific apps based on your interests. “Apps Finding You” is a major theme that the Marketplace team has been exploring. We have been thinking about how to serve the casual shopper with a smarter Marketplace discovery; one that presents you with the apps you want to see and the apps you didn’t even know existed. One of the many ideas the team has been exploring to implement this theme is a Marketplace feed. This feed would start out generic, but would quickly become customized based on the user’s interests. Users would not only be presented with apps, but also with app collections, featured apps, editorials, and third party recommendations — providing additional context to inform their purchases.

Apps Based on Interest

Apps Based on Interest

App Collections

App Collections

Third Party Recommendations

Third Party Recommendations

Localized Apps

Localized Apps

Feeds have been utilized for content consumption with apps like Zite and Flipboard, so why not utilize them for the app shopping experience? What we are talking about is simplifying the app discovery to be what you want it to be. Instead of presenting me with the entire store, I’m telling the Marketplace that I have a need to find my ultimate To-do app, or that I would love to see my favorite app reviewers give me their “in-store” recommendations, or yes, that I have desire to conquer every Super Nintendo game from my childhood on my smartphone. Hey, no judging — what would I find in your app feed?


 

Software CarpentryMake It Easier to (Re)use Your Data

Software Carpentry has focused on computing for most of its 14 years (primarily because that's what I'm most familiar with) but it's increasingly clear that we need to tackle other parts of the research cycle. One is the new ideas clustered around publication, discovery and metrics, which I'll discuss in a future post. The other is data management; we only touch on the topic right now, but it's as important to most scientists as crunching numbers, and how best to do it is changing rapidly. Luckily, a few of our friends have written a guide for the perplexed:

Ethan P. White, Elita Baldridge, Zachary T. Brym, Kenneth J. Locey, Daniel J. McGlinn, and Sarah R. Supp: "Nine simple ways to make it easier to (re)use your data". PeerJ PrePrints, v1 received 2013-04-11, DOI: 10.7287/peerj.preprints.7.
Sharing data is increasingly considered to be an important part of the scientific process. Making your data publicly available allows original results to be reproduced and new analyses to be conducted. While sharing your data is the first step in allowing reuse, it is also important that the data be easy understand and use. We describe nine simple ways to make it easy to reuse the data that you share and also make it easier to work with it yourself. Our recommendations focus on making your data understandable, easy to analyze, and readily available to the wider community of scientists.

Their nine specific recommendations (elaborated at readable length in the paper) are:

  1. Share your data.
  2. Provide metadata.
  3. Provide an unprocessed form of the data.
  4. Use standard data formats.
  5. Use good null values.
  6. Perform basic quality control.
  7. Use an established repository.
  8. Use an established and liberal license.

It's a great outline for a half-day introduction to data management as part of an "extended play" Software Carpentry course, particularly when combined with William Stafford Noble's "A Quick Guide to Organizing Computational Biology Projects". We hope to turn the pair into lessons by September.

Software CarpentryMore Detailed Feeback from Melbourne

The hosts of our February boot camp at the AMOS conference in Melbourne have collected some more detailed feedback from participants. I'm pleased that two thirds thought the content was just right, and even more pleased that 83% thought version control "must be taught".


How useful did you find the online software installation instructions?

76%Very useful: I required no assistance with installing the software
24%Somewhat useful: I required minimal assistance with installing the software
0%Not very useful: I required significant assistance with installing the software I was unable to get most of the software installed

How did you feel about the schedule?

Too earlyFineToo late
9:00am start3%93%3%
4:30pm finish0%97%3%

The lunch and tea breaks were:

3%Too short
93%A good length
3%Too long

What do you think is the ideal length of time for a boot camp?

3%1 day
33%2 days
50%3 days
13%1 week

Rate the following topics in terms of how important you think they are for a weather/climate science audience.

Must be taughtTake it or leave itTake it out
Intro to Python86%7%7%
Program design and testing97%3%0%
Version control83%14%3%
Regular expressions43%50%7%
Databases31%48%21%
Numpy57%32%11%

In general, you found the content:

0%Much too hard: I was struggling to keep up!
14%Slightly too hard
66%Just right
17%Slightly too easy
3%Much too easy: I was struggling to stay awake!

"Online office hours" is a service provided by Software Carpentry where you can get online assistance over a 2 hour period once a week. Which item best describes your current engagement with that service?

0%I've attended in the past but probably won't again
7%I've attended in the past and will do so again
55%I've never attended but probably will in future
38%I've never attended and probably never will

If a boot camp (of similar content) was held in conjunction with the AMOS conference in Hobart next February, do you think you would attend (i.e. as a refresher)?

18%Yes
32%No
50%Maybe

hacks.mozilla.orgFirefox OS Simulator 3.0 released

About 6 weeks ago, we wrote about the preview of Firefox OS Simulator 3.0 and now we’re happy to release it!

New features

In our preview coverage, we listed the new features for this version:

  • Push to Device
  • Rotation simulation
  • Basic geolocation API simulation
  • Manifest validation
  • Stability fixes for installation and updates to apps
  • Newer versions of the Firefox rendering engine and Gaia (the UI for Firefox OS)

Since then, apart from verifying and making the above functionality stable, other notable improvements are:

  • Keyboard shortcut to repackage/reinstall/restart the current app – drastically improving workflow speed, especially for packaged apps
  • Significantly reduced download/installation size of the Firefox OS Simulator
  • Faster start time (partly due to above with smaller size)
  • Much newer versions of Firefox OS and Gaia
  • General bug fixes, making it more functional and reliable
  • OS-standard ways in the menu to close the Simulator, with corresponding keyboard shortcuts (Alt + F4 on Windows, Cmd + Q on Mac, Ctrl + Q on Linux)

Firefox OS Simulator documentation

As part of this release, we’d also like to highlight our updated Firefox OS Simulator documentation on MDN and also our Firefox OS Simulator walkthrough example.

Download/install the Firefox OS Simulator

You can download version 3.0 of the Firefox OS Simulator from our add-ons web site.

Please let us know what you think in the comments! If you encounter any bugs or problems, please file a bug.

Firebug BlogFuture of Firebug Lite

Firebug Working Group (FWG) has always been maintaining two projects.

  • Firebug – The Firefox extension
  • Firebug Lite – Pure web application compatible with all major browsers

Firebug has always had a lot more features since it’s a Firefox extension and as such it has the ability to use Firefox API that are not accessible for web applications (e.g. debugging API, HTTP monitoring API, etc.).

Firebug Lite on the other side runs in all major browsers as a standard web application. It’s a great advantage for developers who want to debug their applications in more browsers and stick to the same UI/UX.

 

Firebug Lite can be also used as a bookmarklet (click the link to open Firebug Lite at the bottom of your browser).

Firebug Lite

Firebug Lite

 

Firebug Lite has always been a very interesting project for us and we think that it has great future and the ability to compete with all existing developer-tools offered by various browsers. It has a future because it’s different and here is what we think makes the project unique:

  • Firebug Lite supports more browsers, so developers don’t have to switch between different tools (and different UI/UX) when implementing an application for more browsers.
  •  

  • Firebug Lite uses extensible architecture and it’s possible to develop extensions or integrate existing tools (e.g. bookmarks) all running across various browsers.
  •  

  • As browsers expose more APIs to the content (web apps), Firebug Lite can heavily profit from it.
  •  

  • Firebug Lite could support various remote debugger protocols (V8, RDP, etc.) to access more browser features, support remote debugging and implement the same features for different browsers.

 

FWG is a relatively small group of enthusiastic developers and for pragmatic reasons we decided (some time ago) to focus on one project only: Firebug – the Firefox extension. Of course, this helps us to keep Firebug a great tool and deliver stability as well as new features, which is already a lot of work on our plates. This means there is currently no one working on or providing support for Firebug Lite.

However, this opens a great opportunity for any enthusiastic developers looking for an open source project to contribute to and/or become a leader of it.

 

Does it sound interesting to you?
If yes, just contact me (odvarko at gmail dot com).

Resources

 

You can also post feedback in the newsgroup.

 

Jan ‘Honza’ Odvarko

 

Meeting NotesMobile: 2013-05-01

Schedule

  • Next merge: 2013-05-13

  • Next release: 2013-05-14

Major Topics for This Week

UI Hackathon
Looks like we fixed 19 ui-hackathon bugs during the sprint. Lucas has a wrap-up post that goes into more detail. The general consensus seems to be that the Hackathon was a success, and we are looking forward to doing more of them.

L10n repack changes
We stopped packaging a whole ton of files as part of the multi-locale builds. If you see any regressions, please file a bug and CC :Pike.

We’re only using those toolkit l10n files now that are explicitly referenced. Please be mindful when trying to use more files from there, you’d need to add them to the magic in http://mxr.mozilla.org/mozilla-central/source/mobile/android/locales/jar.mn#32

Friends of the Mobile Team

Give a shoutout/thanks to people for helping fix and test bugs.

  • Federico Paolinelli landed bug 731491 – Extract shared ContentProvider superclass

  • Tetsuharu OHZEKI filed and fixed bug 863242 – Implement three-state UI for DNT
  • Tetsuharu OHZEKI filed and fixed bug 864097 – Use String.startsWith/contains instead of regexp in browser.js
  • Mark Capella fixed bug 828325 – The state of the -/+ buttons from text size in reader mode should be greyed when the action is not possible
  • Amod and Capella worked together to land bug 789980 – Remove empty title tag from aboutReader.html

Stand ups

Suggested format:

  • What did you do last week?

  • What are working on this week?
  • Anything blocking you?

Please keep your update to under 2 minutes!

James W. (snorp)

  • Bug 848482 – [SkiaGL] SourceSurface doesn’t currently work with SkiaGL

  • Bug 863223 – [layers-refactoring] regressed async canvas updates
  • Bug 848652 – Implement the ArrayBuffer version of AudioContext.createBuffer
  • Other SkiaGL stuff

Kats

  • April 24 – May 1:

    • interviews and debriefs

    • landed bug 839641 (wire up APZC to fennec). broken by bug 861727, landed bug 867269 to fix it
    • bug 865337 – assertion failure in b2g
    • continued working on bug 833795 (content jitter in B2G browser)
    • looked into bug 834243 and bug 797615 now that the cache blockage on gecko thread is fixed (bug 852467)
    • tried to reproduce bug 850659 (but failed). :mw22 reproduced it and reduced it
    • continued to help nrc debug bug 861919
    • discussed async subframe panning (meeting on friday + followups with BenWa)
    • bug 852417 – add a pref to allow reader mode on low-mem devices
  • Next:

    • PTO

GBrown

Chris Lord (cwiiis)

  • Done

    • bug 865298 – Fix-ups after dynamic toolbar refactor

    • bug 850783 – Scrollbar gets clipped when toolbar is visible
    • Got build env of b2g setup and building Keon images
    • Interview
  • Doing

    • bug 803299 – Enable 32-bit colour on Android

    • Looking into more dynamic toolbar regressions
    • Merge dynamic toolbar work to Aurora
    • Enable OMTA on Android?

Chris Peterson

  • Done

    • Push API for Android; need to discuss with dougt

    • Debugging Flash topcrash bug 827407 and upside-down video bug 863498
    • Fixed bug 863288 – OutOfMemoryError: at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)
    • Fixed bug 864339 – Crash on ‘New Private Tab’ @ org.mozilla.gecko.mozglue.NativeZip.createInputStream(NativeZip.java:71)
    • Fixed bug 863477 – SurfaceCaps assertion failure in GLContext::UpdatePixelFormat() when playing Flash video
  • Next

    • Continue Push API

JChen

  • Past week

    • Fixed bug 743158 – Awesome Screen should select/deselect URL text on address bar focus on change

    • Fixed bug 864666 – Two characters entered when typing into password field with ‘Phone’ type keyboard
    • Bisected bug 867084 – Problem with text entry on Persona password
    • Fixed bug 852597 – Hard to debug webapps in jimdb
    • Kept working on bug 863777 – Teach ANR reporter to use the profiler to get a native stack
    • Looked at some ANR reports (e.g. bug 860879 – ANR @ org.mozilla.gecko.PromptService.finishDialog)
  • Next
    • Try to get a native stack for bug 860879

    • Revisit bug 847983 – IME in designmode doesn’t seem to work very well

GCP

  • Last week:

    • WebRTC debugging:

    • Bug 862883 – Enable mochitests (https://tbpl.mozilla.org/?tree=Try&rev=286bad8d4740)
    • Bug 866093 – Error in Android 2.2 path, some video crashes
    • Bug 863290 – Crashes when Camera is stuck
    • Review of Plantronics Bluetooth patches: Bug 859430
  • Next week:
    • Bug 863290 – Crashes when Camera is stuck

    • Bug 867185 – Camera names in UI backend
    • Bug 862808 – Video upside down

Brian N

  • Done

    • UI polish bugs (865923, 856572, 862761, 814165, 835012, 866854)
  • Next
    • Change about:home to use ViewPager

WesJ

Last week

  • Bug 857165 – Highlight domain name when we show urls

  • Bug 813288 – Fennec’s Doorhanger animations should follow desktop
  • Bug 863828 – New tab increment animation
  • Bug 778216 – create a pref that will show the full URL in the awesomebar instead of the title
  • Bug 851581 – “This link needs to be opened with an application” is an awful message

This week

  • Bug 808636 – Update visual style of mobile error pages

  • Bug 826325 – Decide where window.open should open content – Have patch. Working through reviews
  • Bug 813756 – Payments frontend for Android – fixing some b2g bugs and tests

LucasR

Last week

  • UI polishing hackathon

  • bug 866466 – Opening a remote-tab from tab-menu overlays view onto the regular and private tabs menu
  • bug 867141 – Unable to close regular tabs after closing last private tab
  • bug 865228 – Refine animations in toolbar
  • bug 858687 – BrowserToolbar’s menu button is optional
  • bug 862755 – Reader mode icon from the URL bar corner is almost impossible to access
  • bug 860308 – Content leaks through small gap between tab button and the address bar in the private-browsing-mode theme
  • bug 858978 – Regression: Vertical line on URL bar

Next week

  • bug 867554 – Change sidebar default behavior to slide the browser chrome partially offscreen

  • New about:home – Move awesomescreen into about:home fragment

Margaret

  • Done

    • Text handles for text-selection in the AwesomeBar should be orange – bug 777975

    • Remove ellipsis from “Site Settings…” menu item string – bug 786999
    • Add character encoding menuitem icon – bug 863857
    • New favicon styling – bug 839855
    • Crash regression in TopSitesView – bug 866150
  • In Progress

    • Improve BitmapUtils.getDominantColor to avoid returning gray-ish colors – bug 867249
  • Next

    • about:home redesign

    • Working from New York next week (maybe some PTO)

Scott (jwir3)

Since Apr 17:

  • bug 836568 landed: Reflow-on-zoom has issues with events being queued up.

  • bug 862763: Font inflation checking is showing up way too much (~15%) in profiles (complete, but hasn’t landed yet – still in review).
  • bug 836565: Performance problems with reflow-on-zoom (finished hresize solution, about a 35% performance increase… in review).
  • bug 861106: Crash in nsDocumentViewer::SetMinFontSize (finished, will be in review by the end of today)

This Week:

  • bug 864595: Assertion failure in caretPositionFromPoint

  • Other minor issues with font inflation and reflow-on-zoom (crash bug 794693, etc…)
  • Begin work on additional performance improvements for reflow-on-zoom.
  • Still looking into getting started with reflow-on-zoom only on double tap.

BLassey

Done
  • bug 867517 Gecko based WebView for Android, WIP patch up

  • bug 860067 Enable WebSMS using helper service, no progress
  • bug 866957 Collect and report cell tower and wifi location data, patch r+’d, need to land

MFinkle

  • Interviews and planning

Ian Barlow

  • Last week

    • Great job on the hackathon everyone! Great to see all the refinements in Nightly now :)

Round Table

PICL

There will be a PICL kick-off meeting Friday, if you are interested please let blassey or mfinkle know.

Feature Focus

Fx21
  • [ON TRACK] bug 834681 – Add support for basic distribution modifications

  • [ON TRACK] bug 831354 – Ship fonts for content in Firefox for Android
  • [ON TRACK] Amazon Search URL
  • [PLANNED]bug 867604 – [Meta] HTML5 Compat <== need help tracking these down
Fx22
Fx23

QA

  • Beta 6 work is on schedule

  • Split Java/chrome string changes undergoing testing

Details

  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC

  • Dial-in: conference# 99998
    • US/International: +1 650 903 0800 x92 Conf# 99998

    • US toll free: +1 800 707 2533 (pin 369) Conf# 99998
    • Canada: +1 416 848 3114 x92 Conf# 99998
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 99998
  • irc.mozilla.org #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2013-05-01

Schedule & Progress onUpcoming Releases

Firefox Desktop

Beta (21)
  • We Shipped FF21.0b4 last week

  • Fx21.0b5 for Desktop was shipped on Monday due to build specific AMD Radeon top-crasher – bug 865701
    • The avg crash-rate per 100 ADI was roughly doubled compared to earlier beta’s which was a strong driver for shipping 21.0b5
  • Fx21.0b6(our second last beta) went to build yesterday, planned to release before Friday

Firefox Metro

(Read Only)

  • Iteration #6 ended on April 30.

  • Status report to be distributed on Friday May 3.
  • Review and planning session for Iteration #7 is happening today.
  • We have enough performance data to add Best Case (no later than) and Worst Case (no earlier than) scenarios to our release forecast.
  • Product Manager conducted a major review of Story Backlog to adjust priority levels of feature stories.

Firefox Mobile

Beta (21)
Aurora (22)
  • Uplifted: bug 850489 – Settings page background switches between blue and white on Nexus S and bug 863095 – Don’t refresh AboutHomeContent in onResume()

  • Also fixed for Fx22: bug 863490 – Unloading page with embedded YouTube Flash video logs “grabbing the JNIEnv from the wrong thread” errors
  • We opted to also uplift a stability win: bug 847834 – java.lang.NullPointerException: at org.mozilla.gecko.BrowserApp.onActivityResult(BrowserApp.java)
  • Decision made: we are disabling Dynamic Toolbar for Fx22 and will work on getting it to a shippable state for hopefully Fx23. Great progress on fixes but it is too risky to uplift them this late in the cycle: bug 716403
Nightly (23)
  • UI Hackathon last week, lot’s of great fixes landed so check us out: ui-hackathon bugs during the sprint. Lucas has a wrap-up post that goes into more detail.

  • L10n repack changesbug 792077 : We stopped packaging a whole ton of files as part of the multi-locale builds. If you see any regressions, please file a bug and CC :Pike.
  • bug 858687 – BrowserToolbar’s menu button is optional
  • Nice A4A fix: bug 853456 – target=_blank doesn’t work with <img> links
  • We heard from a few folks on IRC about having issues with browsing on Nightly, this fix should take care of things so check the latest nightly and report any further problems you run into: bug 863803 – LayerView not shown after resuming from an OOM kill

Services

Firefox Health Report
  • Final Fx21 readiness/sign-off discussion today at FHR meeting

  • Still working on the long-term roadmap
  • Android version moving forward
Product Announcements
  • No update this week.

Feedback Summary

Desktop

Desktop is quite stable. This week we are working on Firefox Sentiment Report 20. Should be available early next week.

  • Beta Snippet survey went out.

    • 4.1 star average

    • No specific question so very little useful feedback
    • Some interesting points:
      • Possibly an issue with hanging

        • “for the last few days it has been creating problems like whenever i open it and go from one tab to second tab it hangs and i have to shut down my computer to start it again.”

        • “Firefox does not respond when opening more than 50% of the time. Had to open and close it 5 times. At other times one restart fixes it. Also hangs when more than 6 tabs open. I even try with all other apps closed.”
        • “Also, when a website has a lot of content or I am loading many webpages at once the interface at the top (the part with the tabs etc.) goes Not Responding for a few seconds.”
      • New malware? Quite a few busted search/redirected pages/fake ad-links in content complaints.
  • Aurora snippet survey only has 50 responses, 4.2 stars but that’s hazy.
    • No mention of cookie-related issues but there’s very little actual commentary, a few feature requests.

Market Insights from the Product Marketing Strategy Team

Mobile

  • Intel has showed its support for the acquisition of US carrier Sprint by SoftBank, a Japanese network operator. The move comes as the Dish Network, a TV and satellite service provider, has also entered a bid. Sprint is the third largest US mobile broadband provider, with 12% of the market. SoftBank is one of the backers of Tizen.
  • Samsung is preparing to launch a water- and dustproof version of the Galaxy S 4, which would be called the Galaxy S 4 Active. Similar are rumored to be in the plans for some of the tablet and of the Note line devices.
  • Google has explicitly banned the update of apps through means outside of the Play Store, if they had been installed through it. This has been interpreted short – term to be a measure to affect the Facebook app, which had been doing so.
  • Q1 smartphone shipment numbers are out. Samsung sold most devices (70.7 million), with 32.7% of the market, according to IDC. It is followed by Apple (37.4 million) with 17.3% and LG (10.3 million) with 4.8%. The last 3 in the top 5 are the Chine OEMs, Huawei and ZTE, with 4.6%, and 4.2%, respectively. In the overall phone segment, Samsung is also number 1, with 115 million and 27.5% of the market, followed by Nokia with 61.9 million and 14.8%. Apple is on 3rd place with 8.9% and LG is fourth with 3.7%.
  • Opera released stats about its Indian user base: top domains visited are for social networking, search and cricket. 21% of the traffic is for Facebook, followed by Google at 5.8% and ESPNcricinfo at 1.7%. Almost 50% of the top 100 domains visited are related to news and information, search, price comparison and e-commerce. 9 out of the top 10 Android handsets used are from Samsung, followed by Sony and Micromax. Each of the top 10 Android devices cost less than 186 USD except the last one, the Galaxy S 2, which ranks last. The typical profile of an Opera Mini Android user in India is between 18 to 24 years old, lives in an urban area, attends college or works as a full-time employee and surfs the Web at least 1 hour every day. Opera is the top used mobile browser in India according to StatsCounter.
  • Microsoft released an app and marketing campaign to entice users to switch from Android to Windows Phone. The app lets the user check whether her apps are available in the WP store and recommends similar ones if they are not.

Marketing, Press & Public Reaction

Another Badge Unlocked — 15 Million Facebook Fans (Who Are Mostly Young Dudes)

  • This week, Mozilla Firefox reached 15 million Facebook fans! Congrats to everyone who helped make this happen over the years

  • The stronger we can make our “owned channels” like this, the more power we’ll have to spread the word about our mission and products
  • The UX, Web and Product teams are working on a in-product Australis onboarding experience with the aim to help users learn about the new design by interacting directly with it via the web

  • What do I mean? Imagine hovering over a graphic on a web page and then seeing the Awesome Bar light up.
  • This is a best practice in software since it’s an extremely effective way to share product changes with users.
  • See a rough concept in action here http://people.mozilla.com/~csonne/firstrunv2.mov

Planning Meeting Details

  • Wednesdays – 11:00am PT, 18:00 UTC

  • Mountain View Offices: Warp Core Conference Room
  • Toronto Offices: Finch Conference Room
  • irc.mozilla.org #planning for backchannel
  • (the developer meeting takes place on Tuesdays)

Video/Teleconference Details – NEW

  • 650-903-0800 or 650-215-1282 x92 Conf# 99696 (US/INTL)

  • 1-800-707-2533 (pin 369) Conf# 99696 (US)
  • Vidyo Room: ProductCoordination
  • Vidyo Guest URL

Software CarpentryTranslucent Badges

Digital badges are a hot meme right now. They let anyone, anywhere, issue credentials that are finer-grained than degree certificates or driver's licenses. Want people to know that you can change the oil in a car? There's a badge for that. Or that you can speak conversational Frisian? There's a badge for that too. And "backpack" sites make it easy to aggregate badges, including the ones that show you've created content for Software Carpentry, that you're qualified to teach it, or that you've helped to organize and run a boot camp.

In discussion with Cameron Neylon earlier today, another use case for badges came up—one that will require a bit of tooling, but would be useful in a lot of contexts. When I submit a paper to a scientific journal, the reviews that come back are usually anonymous (i.e., I don't know who the reviewers were). There are good reasons for this, but it creates a problem: how do I know how to assess those reviews? To borrow Cameron's example, if my physics paper gets one review from Richard Feynman and one from Joe the Mechanic, I probably ought to pay more attention to Feynman's—unless the paper is describing an experimental setup, in which case I should probably care more about Joe's, because Feynman was notoriously bad at doing experiments.

I can't solve this problem with badges right now because each badge identifies the person it was issued for (which is kind of the point). But what if Jane, as a reviewer, could go back to the badge issue (or to the backpack site she's using to aggregate her badges) and say, "Please give me a token I can attach to this review to show that I have an Expert Experimentalist badge"? The token would be digitally signed, so that people could confirm its authenticity, but no personal identification.

By analogy with Peter Wayner's "translucent databases", we can think of these tokens as "translucent badges": they let some light through, but they're not completely transparent. I can see lots of other ways they'd be useful. For example, I would really like to know whether a lengthy comment on Slashdot about software patents was written by a patent lawyer or a teenager in a basement in Saskatchewan—except what I really mean is, "I'd like to know how much the commenter knows about the subject," because that kid in Saskatchewan just might be a self-taught expert. Badges give her a way to validate her expertise; translucency would give her a way to share it more safely.

Software CarpentryA Rational Computing Process: How and Why to Fake It

Parnas and Clement's 1986 paper "A Rational Design Process: How and Why to Fake It" [1] is one of the most widely read in the history of software engineering. In it, they argued that designing software according to some particular process isn't what matters; what does is creating documentation after the fact to make it look as though a rational process was followed so that other people can retrace the designers' thinking without heroic effort. Acknowledging the messiness of reality wasn't new: a century ago, Poincaré wrote that most mathematicians figured out the proof after they had figured out the answer, and everyone knows that the description of the experiment that's put in the paper is almost never how the experiment was actually done [2]:

How Experiments Work

A conversation with Cameron Neylon has got me thinking about how this relates to Software Carpentry. We don't know how scientists actually use computers day-to-day. We only know what they report after the fact, which (a) isn't much, and (b) is almost certainly a rational reconstruction rather than the messy reality.

What's more, traditional lectures don't show scientists how to navigate the false starts and circuitous by-ways of real coding. Instead, just as most mathematicians only show students finished, perfect proofs, most lectures and textbooks only show the program that worked, rather than its half-dozen incomplete or not-quite-right ancestors. (One of the reasons we now do most of our teaching via live coding is that it lets learners see the "two steps forward, one step back, google for a solution, and repeat" of real life.)

I think we need to teach people that there is a fundamental disconnect in all software development between repeatable, describable processes with flowcharts and checklists and the messy improvisation we all actually do. The problem is, many people crave the former even when they know it's a lie. As James Scott wrote in Seeing Like a State [3], large organizations almost always choose uniformity over productivity. From Stalin's forced collectivization of farming in the 1930s to the Rational Unified Process for software design, centralizers would rather have everyone do the same thing, even if it's wrong, than cope with the information overload and loss of control of individual agency.

The reason we don't teach people that rules are really just guidelines is that improvising requires judgment, which requires a deep knowledge of the problem domain and related solution techniques. Almost by definition, researchers are doing things that haven't been done before (at least, not exactly). This means that end-to-end "best practices" for scientific computing probably don't exist, because everyone's ends are different.

The best we can do, I think, is to show people the pieces out of which most of their competent peers assemble their daily work. What would help us do this is a collection of profiles of competent scientists' computational workflows—of how people who know what they're doing fit the pieces together when solving particular problems in particular domains. They would take time to produce (I think they'd have to be done by a neutral third party, since self-reporting is unreliable), and we'd have to be very careful that "this is how Jane does it" wasn't interpreted as "you must work this way", but showing people the actual process as well as its rational reconstruction would accelerate uptake of better practices like nothing else could.

  1. Paywalled, of course, since that's how the IEEE helps ideas spread, but PDFs are available on the web.
  2. This rational reconstruction is similar to program slicing, which is the process of extracting just those bits of a program needed to reproduce some specified subset of its output.
  3. Scott's Two Cheers for Anarchism presents many of the same arguments in a shorter but more scattered way. If you only have time for one, read it instead.

QMOFirefox 21 Plug-ins Testday

I’m writing today to announce that this Tuesday, May 7, 2013 we will be having our next testday. We need your help finding bugs in the latest desktop Firefox Beta builds related to various plug-ins. The testday will be very exploratory in nature, meaning that you will be encouraged to be creative, explore the web, and have fun. We are trying to cover as many different plug-ins and websites as possible.

The event is open to everyone, so if you don’t have any testing experience please join us. We’ll have seasoned testers and developers on hand to help answer questions, providing guidance and assistance.

If you have any questions about this event and getting involved please do not hesitate in responding to the mailing list. Alternatively you can contact me in the the #testday channel on IRC.

Thank you in advance for your help!

Event Details

When: Tuesday, May 7, 2013 from 1:00am to 5:00pm Pacific Time (UTC-7)
Where: #testday channel on irc.mozilla.org
What: Plug-ins testing in Firefox 21 Beta
How: For more details please see our testplan

When: May 7, 2013.

Mozilla Add-ons BlogFeatured add-ons for May

May is here, and it’s time for a new batch of featured add-ons! Featured add-ons are selected by a community board, which nominates and votes on great add-ons that appeal to a wide audience. We’re taking applications for the next board, so this is your chance to participate.

Anyone can nominate add-ons for the board’s consideration, so don’t be shy! Simply email amo-featured@mozilla.org with your suggestion (you’re welcome to submit your own for consideration).

Featured add-ons are promoted in rotation on the homepage of addons.mozilla.org, as well as in the monthly Firefox & You newsletter, our fan page, among other places.

Pick of the Month: New Tab Plus

New Tab Plus is an extended application of the Firefox browser that is based on HTML5. It offers features such as speed dial, cloud addition, and cloud backup to enhance the original New Tab function of Firefox.

This app is very useful and beautiful. I like the wallpaper so much.”

Get New Tab Plus »

Runners up:

TableTools2
Does everything for HTML tables: Copy, sort, search, filter, chart, statistics, rearrange, combine and compare. Get it now »

Tube Enhancer Plus
Tube Enhancer Plus improves not only YouTube, but also your browsing experience by letting you watch your favorite videos and playlists in the sidebar while surfing. Get it now »

Web FWDMMoM = May Mensch of Month

Today we are celebrating not only May Day but the fact that we have so many menschen involved with WebFWD! We’re super happy to say that this month’s distinction goes to Telemachus Luu.

We were introduced to Telemachus last year by the amazing team at Hackers and Founders. Telemachus is a big supporter of H/F and their accelerator, Co-op. He’s also a founder of Nephoscale, an Infrastructure-as-a-Service provider which became a WebFWD partner after we met.

Since then, Tele has gone on to attend our orientations, our graduations, and even coach our teams on their pitching! That’s because - in addition to being a husband, dad and startup founder (phew) he also happens to be an angel investor. But he still has taken countless hours out for our teams at these events and on our team call. The best part? He’s the nicest guy you will ever meet. Promise.

Thank you Telemachus for all you are for us!

hacks.mozilla.orgAnnouncing the winners of the March 2013 Dev Derby!

This past March, some of the most creative web developers out there showed us what they could do for the mobile Web in the March Dev Derby contest. After looking through the entries, our our three expert judges–Craig Cook, Franck Lecollinet, and Guillaume Lecollinet–decided on three winners and two runners-up.

Not a contestant? There are other reasons to be excited. Most importantly, all of these demos are completely open-source, making them wonderful lessons in the exciting mobile experiences you can create today using only the skills you already have.

Dev Derby

The Results

Winners

Runners-up

The March Derby saw some great entries, from games to productivity applications to wonderfully useful location-based services and more. Please join me in congratulating these winners and all of our contributors for making the wireless world a better and more exciting place.

Want to get a head start on an upcoming Derby? We are now accepting demos related to getUserMedia (May) and WebGL (June). Head over to the Dev Derby to get started.