hacks.mozilla.orgTake the Developer Economics 7th Global Survey

I’ve always preferred to think of myself as anything but a Marketer. In business school, there was a clear hierarchy assigned to the functional classifications amongst us. At the very top sat the investment bankers, commanding the most respect and highest paying job offers. And always at the very bottom the Marketing folks groveled, earning less and often viewed by their peers as having a “softer,” less competitive skillset.

However much I disagreed with this classification — knowing that the digital age has made modern day marketing every bit as analytical and numbers-intensive as corporate financing jobs — it didn’t change the fact that I didn’t want to be called a Marketing person anyway. With the success of the Mad Men series and the constant headlines about privacy invasion and digital media, it seemed impossible to completely shake the Marketing job function from the stereotype of scumbag executives on Madison Avenue, or even a dirty car salesman whose only real skill is the ability to smoothly tell lies.

In corporate America, no matter what job function you’re in, you’re all there for the same purpose – to drive profits (also referred to by business-schoolers as “maximizing shareholder value”). But the Marketing folks are more directly involved with sales metrics, and so the stereotypes live on. But being a Marketer at Mozilla is different. As a non-profit, mission oriented company, we’re not trying to sell you anything at all. Our only goal is to provide greater value – to our developers, our users, our community, and the world.

As a Developer (un)Marketer, my job is to make you successful. Does this mean I’m never going to try to get you to do anything? Or could this mean I’m ready to be embrace the Marketing title? Okay, no on both counts. But it does mean that when I ask you to do something, I’m really asking just so I can, in the end, help you.

Take the Survey

Surprise – the Marketer that won’t call herself a Marketer writes her first blog post asking you to do something. Mozilla has teamed up with research company VisionMobile to get the latest, most accurate facts and insights surrounding the mobile app economy and developer ecosystem. We need this to make sure we’re prioritizing our efforts to provide you with the tools and resources that help you the most. The research relies heavily on developer surveys, and we want to ensure we get a representative sample of Firefox OS and HTML5 developers around the world. We also need this sample to be large enough to for the data to be statistically significant.

If you’re an HTML5 or Firefox OS developer, we’d love you to participate in this 10-minute survey for their research report on Developer Economics. This report provides a comprehensive analysis of the app economy and developer ecosystems based on the largest and most global developer surveys. The results of the survey will be available as a free download in July, plus I’ll be back to talk about some of the best challenges and opportunities for developers based on insights from the full report.

The survey will run until May 9th, and there is also a lucky draw for survey respondents to win prizes! Please help us generate the best research possible with your participation. And please comment or tweet us (@mozhacks) with any thoughts or ideas on the survey questions!

Survey Methodology

The research in VisionMobile’s Developer Economics report is based on survey responses from its global developer survey, in addition to one-to-one interviews with mobile app developers. The developer survey is entirely administered online. Respondents for the 5th edition of Developer Economics came from 115+ different countries, led by the US (18.7%), India (13.9%), and the UK (5.9%), followed by Russia, Germany, and France. This is outlined in more detail in Developer Economics: Methodology.

About the Survey

Developer Economics is a semi-annual report series published by VisonMobile, providing benchmarking of developer attitudes, trends and monetization by region. The report is now the largest and most global research available on the apps economy, surveying over 6.000 developers worldwide. You can also download a free copy of the 5th Edition (Q3 2013) of the report.

About VisionMobile

A leading research firm in the app economy and mobile business models, VisionMobile’s team includes PhDs, MBAs, economists and engineers that analyze the strategies behind the world’s most successful technology companies. Visit their website to learn more.

Rumbling Edge - Thunderbird2014-04-23 Calendar builds

Common (excluding Website bugs)-specific: (34)

  • Fixed: 392418 – Sluggish response on rapid clicking of several checkboxes in the calendar list.
  • Fixed: 476937 – Support optional default Start and Due dates for Tasks
  • Fixed: 641665 – Caldav synchronization error in cached calendars
  • Fixed: 680201 – test_webcal.js fails due to redefinition of Cc
  • Fixed: 702348 – Accepting an event invitation does not respect “Bcc these email addresses” account setting
  • Fixed: 818688 – Commands that allow to create new events/tasks don’t always reflect the calendars read-only status
  • Fixed: 841995 – getItems calls can block UI with large calendars
  • Fixed: 876508 – Remove l10n for Sunbird
  • Fixed: 924837 – Update internal timezone database from version 2013d to version 2014b
  • Fixed: 938459 – Lightning Calendar Edit Events : Unable to update changes to invited attendees
  • Fixed: 949444 – [Today Pane] Create new event/task from agenda list box by double click is not covered by command controller
  • Fixed: 966292 – Cancellation are sent out even the user cancels notification sending in OL-comp popup
  • Fixed: 969823 – Attendee Dialog: attendee list entries are not properly aligned with time grid
  • Fixed: 974816 – right click in the calendar list bring up wrong calendar property dialog after toggle offline
  • Fixed: 979262 – Store large integer values as strings (you cannot set the XXX pref to the number YYY, as number pref values must be in the signed 32-bit integer range -(2^31-1) to 2^31-1)
  • Fixed: 980008 – Adjust event status handling in calendar event dialog
  • Fixed: 983715 – Make findAlarms Asynchronous
  • Fixed: 983969 – Remove “Click here to…” clutter from unifinder trees
  • Fixed: 984105 – Undisclosed Attendee checkbox should be hidden instead of disabled.
  • Fixed: 984119 – When creating e-mails from event dialog/summary dialog sender identity is preset with standard mail user
  • Fixed: 984154 – Remove traces of OS/2 from Calendar Makefiles
  • Fixed: 984917 – Remove Sunbird code Redux
  • Fixed: 986584 – Use the new OS X buttons
  • Fixed: 986710 – Splitter gone between today-pane and 3-pane window
  • Fixed: 986850 – Use correct pluralization in preferences menus
  • Fixed: 986852 – Email invitation only sent to the first attendee, if “Separate invitation per attendee” is checked
  • Fixed: 986908 – Lightning modifies Thunderbird’s min-width when installed (failing TB mozmill tests)
  • Fixed: 987275 – Make test_deleted_items more resistant against timing issues
  • Fixed: 988280 – Use node.remove(), especially instead of node.parentNode.removeChild(node)
  • Fixed: 989953 – [mozmill] testLocalICS fails on mac
  • Fixed: 991723 – After a (caldav) password change multiple password dialogs are shown
  • Fixed: 994200 – Changing calendar in event dialog may cause an inappropriate organizer/attendee set
  • Fixed: 995137 – Attendee dialog: freebusy-timebar doesn’t always expand to 24 hours
  • Fixed: 998974 – Property duplicate in offlineCachedProperties

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

Rumbling Edge - Thunderbird2014-04-23 Thunderbird comm-central builds

Thunderbird-specific: (37)

  • Fixed: 414865 – Attachment will lose file extension when renamed in “Save as” dialogue and “hide extension for known file types” is set (default for Windows Explorer)
  • Fixed: 530629 – Ctrl+F when composing should just show find bar as usual (with “Find and Replace…” button)
  • Fixed: 581940 – Drag and Drop of message to OS folder (e.g. Desktop) truncates filename prematurely and omits the .eml file extension if subject has ampersand character (&) or is empty
  • Fixed: 586131 – Quickfilter bar has lost OR functionality using | (Pipe character)
  • Fixed: 601263 – Add options for Thunderbird Mac dock icon.
  • Fixed: 686851 – Implement “Open containing folder” contextual action for messages in search results, own tab, or standalone win (faceted search, open in conversation, open as list, advanced search messages dialogue, saved searches) [Show found message in folder location]
  • Fixed: 742746 – Directed messages should be able to hook into system prompts/give notifications (similar style to new mail alerts)
  • Fixed: 883670 – Account wizard does not allow manual config of SMTP username
  • Fixed: 894306 – Filelink: YouSendIt is now Hightail
  • Fixed: 927876 – Focus on filter editor does not move to new filter field
  • Fixed: 950455 – Make thread-pane “snap to last page” behavior optional
  • Fixed: 953102 – external api build bustage: ../../../mail/components/build/libmailcomps.a: No such file or directory
  • Fixed: 953126 – Error: [Exception... "'<error>' when calling method: [nsIContentHandler::handleContent]” nsresult: “0x805d0001 (<unknown>)” location: “native frame :: <unknown filename> :: <TOP_LEVEL> :: line 0″ data: no]
  • Fixed: 961143 – remove test pilot from thunderbird profiles
  • Fixed: 961666 – Chat notification sound should be customizable
  • Fixed: 975381 – Use DOM_VK_RETURN/NS_VK_RETURN instead of DOM_VK_ENTER/NS_VK_ENTER
  • Fixed: 976579 – Port bug 955182 (replace mutation events with mutation observers in chat conversations) to TB
  • Fixed: 980491 – Use Australis styling for the menu button
  • Fixed: 981405 – “Recent Folders” sorting has switched from case insensitive to case sensitive
  • Fixed: 982077 – Set up DLL blocklist before LoadAppInitDlls (Port Bug 932100 to Thunderbird)
  • Fixed: 983086 – mailnews/resources/logHelper.js | Error console says [stackFrame mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create]
  • Fixed: 984155 – Build Thunderbird with frozen linkage / external API – Windows fixes
  • Fixed: 985595 – Toolbarbutton-icon is to small
  • Fixed: 985902 – xpcshell/tests/services/common/tests/unit/test_hawkclient.js | test failed (with xpcshell return code: 3)
  • Fixed: 986234 – Thunderbird trunk build currently fails with “ERROR PROCESSING MOZBUILD FILE[...] ldap/moz.build The error appears to be part of the mozbuild.frontend.reader Python module itself!”
  • Fixed: 986756 – Remove DataContainerEvent dependency from Mail
  • Fixed: 986927 – test-attachment-menus.js fails if message reader size changes
  • Fixed: 989653 – send filelink attachment always triggers the attachment reminder
  • Fixed: 990676 – No crash reporter on Windows after Thunderbird crash
  • Fixed: 991449 – TBPL Windows builds fail due to excessively long path names
  • Fixed: 991491 – Fix the CSS variables after bug 985838
  • Fixed: 992080 – Use @import for shared files instead of %include
  • Fixed: 992127 – Add a LaTeX-to-MathML dialog box to the mail composer
  • Fixed: 992675 – Tab is missing end stroke
  • Fixed: 992889 – Shared mailWindow1.css not imported
  • Fixed: 993646 – possibly unnecessary preprocessed css files after bug 992080
  • Fixed: 995681 – Hovering over a separated toolbar button hides the separator even in its disabled state.

MailNews Core-specific: (18)

  • Fixed: 441437 – Provide a non-rdf way to go from a URI to a msgFolder
  • Fixed: 499995 – fix signed/unsigned compiler warnings in mailnews
  • Fixed: 745301 – Show favicon next to RSS/Atom feeds
  • Fixed: 765471 – Mail Compact exhausts disk space, and stays full until response to “”unable to compact mail folders” dialog
  • Fixed: 802266 – Review NS_* definitions in nsComposeStrings.h
  • Fixed: 842963 – Crash loop/repeats in libxul.so nsMsgGroupThread::RemoveChildAt
  • Fixed: 865972 – Incorrect use of error code generation macro.
  • Fixed: 946279 – Implement autotagging of feed <category> tags
  • Fixed: 952735 – Autocomplete does not work in address book for lists
  • Fixed: 957184 – Replace |.getService() .QueryInterface(iid)| by |.getService(iid)| in comm-central
  • Fixed: 959309 – Finish JSMime 0.2 and land it on comm-central
  • Fixed: 966276 – pop3 account advanced deferring dialog broken
  • Fixed: 968993 – selecting spans of different color in HTML message compose produces CSS warning
  • Fixed: 980356 – Make nsMessengerWinIntegration.cpp compile with frozen linkage.
  • Fixed: 983443 – cleanup some unused includes in .idl files of comm-central
  • Fixed: 991070 – followup fix for Bug 955869
  • Fixed: 993371 – Instantly get and use favicon for feed after importing feeds from opml file or adding single feed manually, don’t require restart
  • Fixed: 999524 – client.py should default to https urls

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac

Meeting NotesMobile: 2014-04-23


  • Merge: 2014-04-28 (Days away!)

Topics for This Week

Merge Week
Fx31 merges to Aurora on Monday. Now is the time to finish the small patches and decide on backing out the big patches that aren’t working well enough. Only you can prevent poor quality!

UI Telemetry
Some patches have landed, others are very close. What’s the current status of data being collected? What’s the plan for handing off post-analysis knowledge?

Friends of the Mobile Team

Give a shoutout/thanks to people for helping fix and test bugs. Make sure friends also get awarded a badge. New contributors are highlighted in bold.

  • Clemens Wilding fixed bug 920855 – Replace java.net.URL with java.net.URI wherever possible (first patch!)

  • Alex Deaconu fixed bug 959185 – Audit API access levels in the toolbar package (first patch!)
  • Christian Ascheberg fixed bug 971743 – Do not clear the download history with the browsing history
  • Anuj Sahai fixed bug 995347 – Allow domain auto completion when entering “h” in url bar
  • Alexandru Chiriac made a new contributor hat trick
    • bug 897515 – Remove unneeded pixel format set on the LayerView surface holder (first patch!)

    • bug 964100 – Reading list is sorted unexpectedly
    • bug 931244 – Improved BrowserApp.onCreate() readability
  • Eduard Neculaesi fixed bug 920930 – “Switch to tab” loads the page in the current tab from Reading List
  • Vivek fixed bug 997996 – Make ToolbarComponent.dismissEditingMode use the cancel editing mode button
  • Dave Townsend fixed bug 993533 – Add remote add-ons to the list of targets on a remote device (https://twitter.com/FennecNightly/status/458285656368619520)

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)

<Read Only>

  • Have Service Workers (partially) working with headless Gecko

  • Planning an experiment to use headless gecko as a shim to provide fast startup
  • Working on bug 952721 – crash in gfxContext::gfxContext(mozilla::gfx::DrawTarget*)

Alan K. (ack)

  • CloudSync API up for review (minus some UI changes that are still pending)


Working on


Past two weeks
  • Flame H264 support
Working on
  • WebRTC 3.50 uplift

  • Some SafeBrowsing leftovers

Randall Barker

  • Last Week: Continued work to separate WebRTC from code base. Met with Roku engineer.

  • This Week: Continue to try and cleave the WebRTC code from the code base.

Brian Nicholson

<Read Only>

  • WIP: bug 997447 – Modify EditText to shrink hint when text is not empty

  • WIP: requestAutocomplete (bug 939351 and bug 946022)
  • bug 995741 – If Fennec crashes and loses tabs, there’s no way to restore said tabs


<Read Only>

  • bug 998063 – Feed parser should support media:thumbnail

  • Second screen stuff. Getting Chromecast up and running. Close to a prototype implementation.
  • bug 990642 – Regression: ‘Share Image’ shares link and not actual image. Some basic patches up. Looked into reusing cached images here (r.e. bug 901824 – Use image cache for ‘Set Image As’). Back burnered based on that investigation.
  • bug 985867 – Regression: Tapping in the add-ons page opens the same page in a new tab, unable to search for add-ons. Fix backed out for regressions on some devices.
  • Playing with reflecting (selected) dom properties/nodes into Native UI for potentially doing a native add-on settings screen.
  • Lots of reviews (lots more to do)



- Search activity / widget work


<Read Only>

  • bug 994195 – Add tests for RawResource class

  • bug 999398 – Rename RawResource.get() to RawResource.getAsString()
  • bug 994734 – Centralize change notification for dataset cursors
  • bug 997660 – Update TopSites grid to use row types from TopSitesCursorWrapper
  • bug 997772 – Bootstrap suggested sites framework
  • bug 997777 – Optimize moveToPosition() performance in TopSitesCursorWrapper
  • bug 997782 – Use suggested sites in the top sites panels
  • bug 997782 – Use suggested sites in the top sites panels
  • Async layout/rendering experiments on Android
  • Patch reviews
  • More suggested sites

  • Some hub, if necessary


This week

  • bug 994273 – Home panel sessions not being properly closed

  • bug 988909 – Context menus for dynamic panels
  • First run/contextual hints


<Read Only>


Working on


<Read Only>

  • investigate bug 968951 – Intermittent testBrowserProvider | application timed out after 330 seconds with no output

  • investigate bug 995820 – Intermittent testJavascriptBridge | GeckoEventExpecter – blockForEvent timeout: Robocop:JS
  • bug 970973 – Empty space in toolbar where lock icon would go
  • bug 994989 – Move Save as pdf to the Page menu
  • investigate bug 979621 – Android 2.3 testNewTab |junit.framework.AssertionFailedError: EditText is not found!
  • bug 965548 – Add a way to close edit mode in one tap on phones
  • Herding bug 941155 (fix talos on mobile to have pageloader tests working in regular mode and nochrome mode) along

  • bug 939350 – Create Python linter wrapper
  • bug 997487 – Add UI telemetry to editing mode cancel button
  • bug 998000 – Add UI telemetry for editing mode go button
  • bug 996313 – JavascriptMessageParser does not immediately end the test when a js assertion fails
  • bug 997477 – Add a way to close edit mode in one tap on tablet
  • bug 998426 – Use same constructor across API levels in shrunken BrowserToolbar’s LayoutParams
  • bug 999750 – Recycle MotionEvents
  • bug 1000149 – Simplify edit mode
  • bug 958889 – Make Fennec “Synced Tabs” tray display entry point to Firefox Account + Sync when user has no existing accounts
  • bug 983437 – Delay FHR pruning until the screen is off

  • bug 989441 – Centralized documentation for writing tests


  • Holidays…

  • Landed zoom session history
  • Working on tests for zoom and zoom session history
  • Preparing refactoring patch to move resolution out of PresShell
Working on


  • New bug components!

  • Sync user transition planning and bug stuff.
  • Locale switching UI stuff. Well underway. One bug I’m trying to nail down…


  • e10s planning

  • e10s printing
  • looking at FirefoxOS second screen dongle


  • Project incubation

    • Retention

    • Contextual Hints
    • Search Activity/Widget
  • Second Screen: Status

Ian Barlow

  • Search Activity

    • Early design explorations
  • Hub
    • refinements to RSS and World Cup panels

    • wading into other stuff
      • promoted panel UI

      • service-specific panels
      • thinking about a panel add-on hack day :)
  • Contextual tips
    • Working with Sola on some tips prototypes
  • First run
    • Brainstorm session with Yuan and Anthony tomorrow
  • Tablet refresh
    • Refining tabbed browsing spec
  • General UI polish
    • bug 1000149 visual refinements to “close edit mode”

    • bug 997447 *awesome* little form enhancement by bnicholson
    • bug 965377 wading into some Settings copy refinements


<Read Only>

  • “make mochitest-robocop” and “make mochitest-remote” are broken, but a fix is landing today

  • eideticker has been down for a few weeks now…still trying to fix it in bug 988606

Feature Focus

<Read Only>
You guys are rocking on Fx29 and Fx30. Jenn is setting us up for success for Fx31, and Fx32: https://wiki.mozilla.org/Mobile/Roadmap


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

  • Dial-in: conference# 99998
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 99998

    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 99998
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 99998
    • CA/Vancouver: +1 778 785 1540, x92 Conf# 99998
    • CA/Toronto: +1 416 848 3114, x92 Conf# 99998
    • UK/London: +44 (0)207 855 3000, x92 Conf# 99998
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 99998
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 99998
  • irc.mozilla.org #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2014-04-23

Schedule & Progress onUpcoming Releases

Firefox Mobile

Beta (29)

We are good to go.

  • FxA/Sync Recent Findings which have been escalated to SUMO in time for GA:

    • bug 999172 – Create account and sync results in reauthentication flow

    • bug 999198 – delete firefox account gets user stuck in reauth loop
  • New WebRT, Synthetic APKs: First item below is a fix we’d like to take before GA and unfortunately, it’s too late for the last beta; stay tuned for a plan on this. There’s work to be done to stabilize for Fx30, Fx31:
    • bug 991397 – launching app installed outside Firefox Beta hangs firstrun

    • Not Fx29, just a FYI: bug 991394 – previously-installed apps stop running
    • For Fx31 bug 995803 – crash in java.lang.IllegalStateException: Already registered Webapps:Preinstall at org.mozilla.gecko.EventDispatcher.registerListener(EventDispatcher.java)
Aurora (30)
Nightly (31)
  • We’re rejiggering scope for Fx31, we know it will not require a permissions bump

  • We have a new EPM! Jenn Chaulk, she owns solidifying the feature list and should be communicating the details next week

Developer Tools

  • Outbound

    • All quiet, gearing up for the upcoming Aurora 31 post and Angelina’s spring tour.

Feedback Summary


A Small redesign of Firefox is coming next week, we are gearing up for an intensive feedback gathering process. Let us know if you have any last minute requests!

Our reports in this meeting will soon be getting nicer! Stay tuned :)

User Experience

Market Insights from the Market Strategy Team


  • A cloud-based Windows is in the works [1] with potentially different revenue models for Microsoft [2] along with universal Windows apps. [3] Microsoft has also been accepting input about the return of an authentic Start button. [4]
  • Browser add-ons made news in the context of Heartbleed with an extension for Chrome [5] and for Firefox [6] automating the check for sites with Heartbleed vulnerability. Safari and Internet Explorer lacked these add-ons.
  • Recent Chrome updates [7] include an onscreen keyboard, side-docking and sticky keys, suggesting potential use in touchscreen Chromebooks or Chrome tablets.

Marketing, Press & Public Reaction

Come to the Countdown to Fx29 overview tomorrow! Invite should be in your inbox or already on your cal.

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

CalendarThe 2014 Google Summer of Code Students are here!

I am particularly excited to announce that this year the Calendar Project has received two slots in Google Summer of Code 2014. Both projects target our backend code. This means users won’t have a chance to complain about user interface changes and instead will be blown away by performance and interoperability improvements.

I would like to take a few minutes to introduce our awesome new students to the community, please join me in giving them a warm welcome!

Reid Anderson: Improve Calendar Provider Backends

This project is about performance and stability for our calendar storage. Here is what Reid has to say:

I have been a student at the University of Minnesota since 2012 studying Chemistry and Computer Science. Outside of the classroom, I spend a lot of my time both watching and playing a variety of sports. I also enjoy reading, talking to friends, or playing a quick game of Civilization. I heard about Google Summer of Code before I entered college, and participating in the program had always been a goal of mine.

I was introduced to the Mozilla community when I started submitting patches to Songbird, a desktop media manager built on the Mozilla framework. Throughout the entire community I saw a consistent message of an open web powered by open technology and open software. This is something that I am excited to be a part of, and I am looking forward to contributing. My project is to improve the cached mode for online calendar providers to the point where it can be used as the default setting. This should allow Lightning to function effectively in an offline environment, while also bringing significant performance improvements. Hopefully these will be a useful contributions to the community, and I’m looking forward to getting started.

Isn’t that wonderful? I’m particularly excited about the performance improvements this will bring.

Malintha Fernando: Update Invitations to the latest Specification

This project will not only improve our invitations support, it will also guard us from future regressions through more tests. Here is an excerpt from Malintha’s blog post:

My name is Malintha Fernando and I am a student developer from Sri Lanka, currently studying at University of Moratuwa. I started contributing to Mozilla some months back (Still got a lot to learn) as my first contribution in open source and glad to be a part of the Lightning project in GSoC 2014.

The objective of this project is to improve Lightning’s scheduling system by updating the available features to the latest RFC specifications. As we know most of the Lightning’s implementation were done referring to the draft version 4 of the RFC 6638, there are some features lagging behind from the final RFC document.

Do you remember the mess we had when 2.6.x was released? At least one of the bugs we had to fix quickly was a regression in the invitations code. With Malintha’s help this won’t happen again!Whats next?According to Google, we are currently in the “Community Bonding Period”. This means we have a little time to set things up and make preparations. Coding officially begins on May 19th. You can follow progress on the projects as mentioned above, I will also blog about major updates here as we get closer to completion. Lets have some fun with this and continue to make Lightning better. Its about time!

WebmakerLet’s teach the web, offline!

Reposted from blog of Webmaker Curation and Co-design Lead Kat Braybrooke at kaibray.com.

At Webmaker, a group of us has been scheming and discussing potential solutions to a key design challenge — how can we empower educators to teach the web using peer-to-peer methods in regions where computers and web connectivity aren’t a given?

Enter this Design Canvas, an analog effort to help makers prototype Webmaker Teaching Kits together on paper before going online. I situate this Canvas within a larger hands-on prototyping exercise which implements some pretty radical participatory design methods, in the hope that it can improve the in-person experiences of mentors and participants alike…

Best of all, this Design Canvas and other activities like it will also help us build a brand new (and very salient) Lo-Fi Teaching Kit, codesigned with a team of Webmaker community members, that will highlight a series of remixable, modular group activities that empower educators to address different parts of the Web Literacy Map using analog materials.

Example of pre-kit brainstorms on paper at a Webmaker Training.

What I find most exciting about these efforts is the fact that in each case, the community has really been a core partner from the beginning. The Design Canvas activity has already been translated into Spanish thanks to community member Alvar Maciel, and it is being prototyped at various events, including a digital leadership training for National Citizen Service youth in London recently facilitated by the ever-talented Laura Hilliger.

Filled out Design Canvasses from Webmaker Training in London.

Next on the agenda is the creation of a paper-based canvas to help build out more granular Teaching Kit activities, and further work on the Lo-Fi Teaching Kit with our community co-authors.

Want to get involved?

We are already looking forward to the prototypes, discussions, learnings and global translations yet to come!

QMOIntro to Web Testing

On Friday, May 2nd, 2014, come learn more about how to do web testing with Mozilla’s WebQA team:

  •  Meet from 16:00-21:00 GMT, 8am-noon PST
  • Talk about ways to start testing
  • Find a project – look over the tests we have
  • Answer questions you might have about testing, MozTrap, Bugzilla and more

Bring your questions about web testing. We’ll review our how-to documents and answer questions about web testing.

You can expect to discuss Exploratory testing as a way of getting started.  Talk about getting a Persona account for testing. Log into MozTrap to run a few test cases.

To find out how to connect with us, and to learn more about what we’ll be doing checkout the etherpad:


Hope to see you there!

When: May 2, 2014.

Air MozillaBugzilla Development Meeting

Bugzilla Development Meeting Help define, plan, design, and implement Bugzilla's future!

hacks.mozilla.orgWhat Mozilla Hacks is

With the Mozilla moniker, many people believe that the Hacks blog is only about Mozilla products or news. Therefore, I wanted to take the chance to enlighten you and also invite you to be a part of creating content here.

What we cover here

The goal and objective of Mozilla Hacks is to be one of the key resources for people developing for the Open Web; talking about both news and in-depth descriptions of technologies and features. This means that as long as it’s about open technologies, we want to share all that information, tips, tricks and learnings with you.

We’re Mozilla, and for us it is key to be a web browser agnostic resource, and it’s exactly the same with MDN (Mozilla Developer Network). The content here is written by a lot of different authors, where about half of them aren’t part of or associated with Mozilla in any way – they just do good things for the Open Web, and we believe that deserves exposure, and that it will be beneficial to you.

Allow me to also emphasize that Mozilla Hacks is not a press release channel, we work hard to make everything we cover to be informational, practical and inspirational for you.

More information is outlined in the guidelines for Mozilla Hacks.


Mozilla Hacks is a place based on mutual respect and understanding, and the way we address each other is supposed to reflect that. We expect anyone writing or commenting to use proper language and refrain from insulting other people. If you ask a question here, give feedback and more, you deserve a reply from us. And when we talk about things – even though we might disagree – we all should and are entitled to always be met with respect and a proper behavior.

Write for us!

We know that a lot of you reading this have great knowledge, skill sets and experiences, and we would be very happy to help and support you in sharing it with the world and fellow developers.

We have had hundreds of people writing and collaborating in content for Hacks, and if you write two posts or more, you’ll show up in great company among all our fantastic authors!

Talk to me

For me personally, I’ve been running Mozilla Hacks as its Editor for about two years now, and I’m constantly on the lookout for good content that web developers writing for the Open Web, with open technologies, can learn from. I.e. topics that I’d love to read about myself.

I would be very happy for you to reach out to me at robert [at] mozilla [dot] com or via @robertnyman on Twitter – I’m always interested in discussing the web, technology and the ideas you might have. Talk to me. :-)

Meeting NotesMozilla Platform: 2014-04-22

Hot Bugs

(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)

Orange Factor



The Need To Know

(Release and system issues that may impact engineering this week.)

Notices/Schedule (lsblakk/sylvestre)

  • FF29.0 RC is built & with QA – will ship to Beta audience later today or tomorrow for data collection

  • FF Android 29.0b10 with QA – also aiming to ship Wednesday
  • Merge day next Monday!
Next Merge: April 28, 2014 Next Release: April 29, 2014
Central: 31 Aurora: 30 Beta: 29 Release: 28
33 bugs (?? bugs last week) 12 bugs (?? bugs last week)
Unresolved Aurora 30 Trackers (non-security, not tracked for Beta) Unresolved Beta 29 Trackers (non-security)

Build Changes (gps)

(Build changes of which engineers should be aware.)

RelEng (catlee)

(Repo, test, and other information for engineers from the release engineering team.)

  • git.m.o outages bug 985864

    • IT/RelEng working on it

    • Immediate cause seems to be git-upload-pack eating up all physical RAM and causing the box to start swapping.

Upcoming Outages/Upgrades

(System outages/upgrades and tree closures that impact engineering.)

Team Stand-ups

(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)

A*Team (jgriffn)

<Read Only>

  • Android

    • Android 2.3 reftests run too slowly on VM’s, so we’re moving them to IX hardware slaves also – bug 992969

    • More Android 4.0 debug mochitests unhidden on TBPL
    • Eideticker for Android still down due to networking problems in MV; see bug 988606 for progress. Eideticker for B2G is hosted in London and is not affected.
  • B2G

    • Because media mochitests often end up being CPU-starved on B2G emulators running on AWS VMs, we plan to break them out into a separate chunk and run that chunk on IX hardware slaves – bug 994920

    • Resolved a problem that was causing ssltunnel-dependent tests to fail on B2G emulators – bug 987406
    • New test suites in the process of being added to TBPL:
    • On May 13 – 16 in MV, there’s a build-out of a new group of flame devices that will be used in power and performance testing for B2G; stop by the QA Lab if you want to see how all the pieces fit together.
    • New bugzilla dashboards for B2G: http://people.mozilla.org/~klahnakoski/b2g/B2G-Blockers.html#

Accessibility (dbolter)

<Read Only>

  • Around 1:30 PT on airmoz Jonathan Wei will present about his internship with us, focusing on his math accessibility work.

Developer Tools (robcee)

  • Many Mochitest-DT tests fixed and uplifted to Aurora. Mostly green.

  • front end for web audio inspector bug 980503
  • eyedropper tool on color pickers bug 939040
  • several console output enhancements

Firefox Desktop (felipe)

  • Australis will be on release next week!

Firefox Mobile (mfinkle/blassey)

<Read Only>

  • Fx29 readiness, known issues for FxA/Sync:

    • bug 999172 – Create account and sync results in reauthentication flow

    • bug 999198 – delete firefox account gets user stuck in reauth loop
  • Fx29 Dev Release readiness, known issue for WebRT, Synth APKs
    • bug 991397 – launching app installed outside Firefox Beta hangs firstrun

    • Not Fx29, just a FYI: bug 991394 – previously-installed apps stop running
    • For Fx31 bug 995803 – crash in java.lang.IllegalStateException: Already registered Webapps:Preinstall at org.mozilla.gecko.EventDispatcher.registerListener(EventDispatcher.java)
  • Tracking the gfx issues for Fx30: https://bugzilla.mozilla.org/showdependencytree.cgi?id=996062&hide_resolved=1

Firefox OS Devices/Porting (ericchou)

<Read Only>

  • Device porting (Gonk team)

    • Partner support at SPRD Shanghai

    • Kept solving and negotiating Tarako issues.
  • Bluetooth (members: Shawn Huang, Ben Tian, Jamin Liu, Jocelyn Liu)

    • All BlueZ/Bluedroid PTS certification issues were marked as 1.4+. Should be able to solve them on time. (http://goo.gl/X9z3yV)
  • Media Playback (members: Bruce Sun, Blake Wu, Star Cheng)

    • Added a parameter ‘AudioChannel’ to AudioContext API to solve several AudioChannel issues. (bug 984498, bug 997701, bug 993293, bug 981885)

    • WIP patch to enable HW decoder for high resolution WebM video clips. (bug 986381)
    • Found the root cause about why .amr files can’t be set as ringtone on Tarako. (bug 990957)
  • Device Storage & Stability (members: Alan Huang, Alphan Chen)

    • Partner support (SPRD: Tarako and Dolphin).

Firefox OS Performance (mlee)



  • On-device Tarako Performance Automation Enabled

    • b2gperf and ‘make test-perf’ are both reporting to Datazilla

      • These tools report per-app memory use and launch time metrics.
    • Eideticker
      • This tool reports fps and launch time metrics based video capture analysis using a high-speed camera during tests.
  • Datazilla Automated Alerts

    • Datazilla test result ingestion failures now being alerted by email.

    • Datazilla Regression alerts are currently being tested.

Firefox OS Telephony/WIFI/NFC (kenhkchang)

<Read Only>

  • 1.3+/1.3T/1.4,

    • bug 998244 – [ZTE][OPEN C_1.3]MMS cannot be sent in the network of Join operator.

    • bug 997791 – Regression on wifi enable/disable.
    • bug 987760 – [v1.4] Investigate test_settings_wifi.py failure.
    • bug 996421 – [B2G] [RIL] [Tarako] assign options to Buf.newParcel() in sendDialRequest() otherwise options.number is missing in the response handler.
    • bug 997584 – [B2G] [RIL] mobileConnection::setCallingLineIdRestriction() doesn’t work well on DSDS. SIM_1 is affected if set on SIM_2.
  • Others,

    • bug 784429 – [WebAPI] WebTelephony: Hang-up while connecting, call is not terminated.

    • bug 977085 – B2G RIL: remove nsIGonkTelephonyProvider::notifyCallError.
    • bug 996444 – [B2G] [RIL] remove gTelephonyList.
    • bug 997003 – Refactor: setupConference in telephony test code.
    • bug 992772 – [B2G][RIL][NetworkManager] ResolveHostName with the DNS of the specified NetworkInterface.
    • bug 824717 – WebSMS: When sending a SMS fails, it would be handy to have the message in the error event object.
    • bug 995486 – CDMA MO MMS is not working on reference ril.
    • bug 790056 – Enable WPA-EAP.
    • bug 984397 – [NFC] Fix rf_discover in NFC emulator.
    • bug 993330 – [NFC] support notify tag discover by emulator console command.
    • bug 996452 – [NFC] Add emulator rf_discover test case.
    • bug 898445 – B2G RIL: Move mozMobileConnection/MozMobileConnectionInfo/MozMobileNetworkInfo/MozMobileCellInfo to WebIDL.
    • bug 998239 – Follow up of 877193 to refine RtspTrackBuffer size.
    • bug 992568 – Refactor RtspChannel to support HTTP->RTSP redirection and rendering inside the browser
    • bug 991025 – Enable WiFi test on emulator
    • bug 981519 – [CDMA] Number and name presentation

GFX (milan)

  • OMTC

    • On XP in decent shape; we will probably create a separate (temporary) pref so that we can just enable it on that platform.

    • On Windows 7, we have some performance regressions we’re still trying to figure out if they’re real or not; switching to OMTC default on that platform will likely be delayed by a week.
  • Skia

    • The main vector of work is going through reftest failures and fixing them. So far, great majority (all) have been actual Skia “bugs” (in some cases, Skia purposely plays loose with the results in order to gain performance, though not all of those cases actually result in improved performance.)
  • V-sync (butter, silk, whatever we’re calling it today)

    • Implementation details being discussed between Taipei and the rest of the graphics team.
  • APZ

    • low-res tiling in progress

    • discussing what homescreen changes proposed for 2.0 mean for APZ
  • E10S

    • Beyond OMTC, we haven’t yet scheduled anything to provide support for the E10S effort.

    • Still need to complete the prioritization conversation.
  • B2G debug tests issues

    • There are a few crashes/hangs/issues with B2G debug tests, shutdown mostly, tracked with 999215.

    • No good way to deal with those fast enough without effecting some of the committed feature work.
    • Stay tuned.

Identity (jedp)

<Read Only>

No updates from Cloud/Identity that pertain to platform this week. Keep on being awesome, and Be Excellent to Each Other.

JS (naveed)

<Read Only>

  • Compiler (JIT)Compiler

    • bug 976536: Fixed the #1 (multiple signatures) beta/aurora/central topcrash, just in time for the 29 release. Hard to repro and Windows-only, so this took some time.
  • Garbage Collection

    • bug 989484: Report number of minor GCs in between major GCs
  • Front End and Other
    • Mostly done porting irregexp source to spidermonkey.

    • Wrote patches for making stacking-walking include all asm.js frames
    • bug 918987: String.prototype.normalize
    • bug 996438 bug 996430 bug 996989: Removed some unneeded compartments at start-up

Layout (jet/dbaron)

<Read Only>

  • Notable Bugs:

    • bug 991046 – Combine the display item clips when we flatten an nsDisplayOpacity.

    • bug 913138 – Correct imagelib & gfx shutdown at the end of layout shutdown.
    • bug 769194 – update reftests for @font-face src:local, now working on Android and B2G.

Media (jesup)

  • Initial H.264 hardware (OMX) support landed for B2G, preffed off — bug 911046

    • patch for vp8 OMX support in the works
  • Looks like we found the primary source for many media oranges – misuse of active timers (use from more than one thread) — bug 998168 – fingers crossed! Thanks to jwwang!
  • Expecting to land update for webrtc.org to 3.50 as soon as we have android video/audio capture merged
  • Some fallouts from MediaStreamGraph and AudioStream refactors that landed; being worked

Necko (dougt/jduell)

<Read Only>

  • Http cache2 still targeted for early May.

    • All devtools oranges fixed. Only a few remaining test failures left.

    • Most Talos performance regressions are fixed
    • about:cache patch in review
    • a couple more performance issues to fix.

Performance (vladan)

  • bug 962262, bug 867728: You can now capture longer profiles with the Gecko Profiler on B2G (1 minute+)

  • bug 935482: It’s now possible to log all Firefox main-thread I/O to a file, using the MOZ_MAIN_THREAD_IO_LOG environment variable. We’ll be using this functionality to create a Talos test that detects new sources of main thread I/O (bug 998794)
  • bug 989419: Removed main-thread IO from blocklist update operation

WebAPI (overholt)

  • No update this week.

Quality Programs

(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)

MemShrink (njn)

  • No update.

OrangeFactor (ryanvm)

  • Past week’s OrangeFactor: 11.23 (Previous Week: 11.82).

  • mochitest-bc chunking and devtools split successfully landed on Aurora. Some lingering issues remain.
    • Worst browser-chrome oranges that need dev attention:

      • bug 870205 – Intermittent browser_bug295977_autoscroll_overflow.js | e should have scrolled vertically, b should have scrolled vertically, | b should have scrolled horizontally

      • bug 949432 – Intermittent browser_upgrade_backup.js | upgrade backup contains the expected contents – Got browser_upgrade_backup.js, expected {“windows”:[{"tabs":[{"entries":[{"url":"about:blank","ID":2278454741,"docshellID":0,"docIdentifier":2795}],”lastAccessed”, blocked on review in bug 883609
      • bug 956157 – Intermittent browser_popupNotification.js | This test exceeded the timeout threshold. It should be rewritten or split up. If that’s not possible, use requestLongerTimeout(N), but only as a last resort. Other bugs affecting this test: bug 968915, bug 969608, bug 995819
    • See full list: https://ateam.etherpad.mozilla.org/worst-intermittent-oranges
  • Big thanks to pbrosset for rewriting many devtools tests and markedly improving their reliability!
  • 19 intermittent failures fixed in the last week – List – Thanks!.

Stability (kairo/bsmedberg)

  • Over numbers looks good, mobile trunk issues are being tracked.

  • Shoutout to Jan de Mooij and Till Schneidereit who fixed and reviewed the remaining major crash regression of 29 (bug 976536) late last week and into Saturday, so we could still get it into the release!
  • Mac Flash issue (bug 996637) is fixed, please update to if you are on OS X.
  • Thanks to Edwin Flores for fixing bug 812881 resulted in crashes per 100/adu dropping from 2.2 to 1.75 and fixing over 6 crash signatures


(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)

Introduce Syd Polk – New QA lead for platform QA

<Read only beyond this point>

Friends of the Tree

There were great changes by volunteers in Core and Toolkit during the past week. Thanks to all of these contributors for their passion and hard work! Here are some highlights:

  • Tom Schuster (evilpie) fixed a Firefox find UX weirdness (bug 935519).

  • Amod (greatwarrior) simplified a Places API (bug 552025).
  • Tatiana Meshkova (tatiana) added external GL buffer rendering support (bug 994856).
  • Giovanni Sferro (agi90) fixed an HTML input assertion failure (bug 856265).
  • Masatoshi Kimura (emk) enabled some kinds of JAR URIs to be viewed as directory lists (bug 997519).
  • Brian Bondy (bbondy) corrected some libmar problems (bug 996564).
  • Marco Castelluccio (marco) cleaned up some app code (bug 984464, bug 993326, bug 996109).
  • Emanuel Hoogeveen (ehoogeveen) optimized some trig operations (bug 997459).
  • Chiaki Ishikawa fixed a leak detector assertion (bug 998706).
  • Robert Longson (longsonr) improved the SMIL code (bug 974698, bug 974710, bug 997725).
  • Anuj Agarwal (anujagarwal464) cleaned up nsCrypto a bit (bug 897359).
  • Nochum Sossonko (Natch) improved some storage APIs (bug 481178).
  • Martin Stransky fixed a ghost image problem on GTK3.
  • [first patch!] Andrew Church improved word skipping behaviour (bug 981281).
  • YF (Yang) fixed a certificate viewer problem (bug 995528).
  • Danny Chen corrected some video player UX problems (bug 495593, bug 996122).
  • Birunthan Mohanathas (poiru) removed unnecessary null checks (bug 997208).
  • Maksim Lebedev corrected a test failure (bug 996457).

Mailing List Threads

(Threads that are likely to be of interest to engineering from various mailing lists.)

Good Reads

(Links to blog posts, books, videos, etc. that you think will be of interest to others.)

irc #planning Log From This Meeting

10:58 vladan: are we having the engineering meeting?
10:59 cpeterson: vladan: yes
11:00 RyanVM|sheriffduty: cpeterson: no verbal in the hot bugs
11:00 cpeterson: RyanMV: is that a first?? :)
11:01 RyanVM|sheriffduty: cpeterson: heh, no
11:01 RyanVM|sheriffduty: I'm just going to yap at the bottom instead :P
11:02 KaiRo: cpeterson: I have a short stability voice update today
11:02 cpeterson: KaiRo: ok
11:04 blassey: turning away to cough doesn't help when the mic is attached to my head...
11:05 KaiRo: blassey: hrm, bad design ;-)
11:06 dveditz: is there no meeting?
11:06 RyanVM|sheriffduty: dveditz: it's going
11:07 dveditz: ProductCoordination on vidyo? I seem to be the only one
11:07 Waldo: it's on! :-)
11:07 dveditz: am I failing at the new vidyo client?
11:07 RyanVM|sheriffduty: dveditz: Engineering :)
11:07 Waldo: naveed: String.prototype.normalize perhaps worth mentioning as in trunk now
11:08 naveed: k ty
11:08 Waldo: although to be honest, I don't actually understand the use cases enough to say how useful, exactly
11:08 dveditz: did it change? the wiki says product coordination
11:08 dveditz: oh... I'm on the wrong meeting
11:08 dveditz: dammit
11:08 Waldo: heh
11:09 Waldo: someone typing on the call
11:09 dveditz: someone needs to stop typing
11:09 Waldo: maybe lsblakk?
11:10 blassey: dveditz: there has been a lot of fail this week related to vidyo
11:10 lsblakk: sorry
11:10 lsblakk: triaging while listening
11:10 Waldo: :-)
11:12 RyanVM|sheriffduty: milan: What ever happened with reftest-omtc? It's running on Cedar, but has there been any work towards greening it up?
11:12 davidb: milan_ do those test failures require gfx knowledge to debug?
11:13 milan_: davidb: don't know.  the crashes are in the graphics code :), parent bug 999215
11:13 davidb: :)
11:14 davidb: (yeah hard to know until you got the patch)
11:17 RyanVM|sheriffduty: Waldo: looking good
11:18 robcee: nice sweater, waldo
11:18 RyanVM|sheriffduty: looks over his shoulder
11:20 robcee: hi
11:21 lizzard: dang it, did i miss a funny sweater?
11:23 Waldo: RyanVM|sheriffduty, robcee: \m/
11:23 Waldo: lizzard: quality Red Wings hockey support on display
11:23 robcee: lizzard: nope, it's a serious sweater.
11:24 robcee: for serious business.
11:24 lizzard: Waldo: what you  need is a bedazzler, sirt
11:24 lizzard: sir
11:24 lizzard: Gem sweater Red Wings hockey bling
11:24 lizzard: ok, back to serious business
11:24 Waldo: srs bsnss
11:26 bhearsum: red wings?
11:26 bhearsum: see you in the second round, if you make it...
11:26 Waldo: bhearsum: remind me how many Canadian teams made it again?  ;-)
11:27 bhearsum: Waldo: just one, but they also happen to be the only team that's looking at a first round sweep
11:27 bhearsum: they also happen to have an olympic gold medal goalie...;)
11:29 RyanVM|sheriffduty: bhearsum: I thought you were a Canucks man
11:30 RyanVM|sheriffduty: (we won't discuss their fate :P)
11:30 bhearsum: i'm both

Engineering Meeting Details

  • Tuesday 2014-04-2211:00 am Pacific Standard Time

  • Dial-in: conference# 98411
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 98411

    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 98411
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 98411
    • CA/Vancouver: +1 778 785 1540, x92 Conf# 98411
    • CA/Toronto: +1 416 848 3114, x92 Conf# 98411
    • UK/London: +44 (0)207 855 3000, x92 Conf# 98411
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 98411
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 98411
  • Engineering Vidyo Room / Air Mozilla / MTV Warp Core / TOR Finch / SFO Warfield / PDX Hair of the Dog
  • join irc.mozilla.org #planning for back channel

Software CarpentryMr. Biczo Was Right

I didn't have nearly enough time to enjoy everything that was going on at PyCon 2014 last week. One event I particularly regret missing was a sprint organized in part by the folks at Scrapinghub. They got a bunch of people to write little scrapers to go through old conference websites, pull out speakers' names, and run them through a gender identification library in order to plot changes in gender balance per conference over time. The code is all available on GitHub, and Gayane Petrosyan (currently at the Hacker School in New York City) has started plotting some of the results.

It's a really cool project, and you really ought to fork it, add a scraper for a conference or two, and send a pull request with your results. If you're going to do that on a Mac, though, you may run into a problem. If you're using Continuum's Anaconda installation of Python, then pip install scrapy fails with a lengthy stack trace and the cryptic message, "Reason: image not found." Matt Davis, eventually figured out that you have to set a shell variable before trying to install the Python cryptography library that Scrapy depends on:


This piece of information didn't appear anywhere on the Internet (at least not that we could find). The clue that set us on the right path was a fix recommended in issue #693 from the cryptography library:

env DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib/ \
    ARCHFLAGS="-arch x86_64 -Wno-error=unused-command-line-argument-hard-error-in-future" \
    LDFLAGS="-L/usr/local/opt/openssl/lib" \
    CFLAGS="-I/usr/local/opt/openssl/include" \
    pip install cryptography

When I started this post, I planned to enumerate all the bits of background knowledge someone would need in order to solve this problem. The list quickly became unmanageable: environment variables and dynamically-loaded libraries in general, this particular variable and library in particular, the fact that the operating system's search for the latter can be controlled by the former, the way Python libraries can depend on compiled C libraries... There's a lot going on here, and most people, even ones who've been through a bootcamp, would give up on contributing to this project before they got the required software stack to work.

This post isn't meant to be a criticism of Scrapy, the cryptography library, or Anaconda: they're all useful, well-engineered tools. Instead, my goal was to explain why we can't just teach people end-user tasks like data analysis. "Gender balance per conference over time" is a pretty innocuous question, but even someone who understands how to write a few lines of code to connect a scraping service to Python's Natural Language Toolkit would probably be defeated in this case.

Pre-configured virtual machines and all-in-one installers aren't a solution to this problem: they only give you what their creators thought to include, and as soon as you want to take advantage of anything else, you're right back in the minefield. The internet isn't a solution either: I've been programming for over thirty years, and I didn't know that the magic word I needed was DYLD_LIBRARY_PATH. What I do know is that every attempt I've seen to sprint for the finish line—to teach the skills people want to do before teaching the basic concepts those skills depend on—has produced more frustration than enlightenment. In the end, it turns out that my high school music teacher was right: if you want to play a solo, you have to learn your scales.

Postscript: there were several comments on this post on GitHub while it was still in draft; I've included them below, and more would be welcome.

Aron Ahmadia:

This is a good issue. I know you were just picking this dynamic library problem an example, but it's one that's near to my heart as somebody who helps develop cross-platform tools. Dynamic library loaders are very complicated pieces of machinery, and they present similar-yet-different interfaces on OS X, Windows, and Linux.

I do believe that we're getting a lot better at providing "batteries-included" platforms for developers to work on, without having to understand the underlying guts of their tools. It used to be that if you wanted to perform a computation involving solving a system of linear equations, you had to know how to write C or Fortran code, perhaps call the LAPACK library if you wanted it to be very fast, call the compiler, the linker, and maybe use a Makefile, all to run your code from the command line.

Nowadays, you can solve this system of equations in a single line of code in Python (using SciPy), MATLAB, or even on the web with tools like SageMathCloud or Wolfram Alpha. We're making progress in layering low-level library dependencies away from users, but we're not done yet. Tools like conda and hashdist are emerging specifically to help increase the range of experts, allowing developers to focus on building tools higher in the stack.

Packaging, interoperability, and portability remain as challenges in scientific computing, for all languages and platforms. I think advances in tools and techniques will continue to have significant impact in improving productivity, aiding replicability and reproducibility, and reducing the need for scientists to set arcane environment variables to get their web scraper going.

Titus Brown:

I think well-configured VMs and cloud computing machines are a solution; it's super hard to write software for everyone's individual laptop, but if I tell you "Ubuntu 12.04 with these packages, and here's how to install them with apt-get, and then build our software", well, that's just going to work.

Raniere Silva:

VMs can help but sometimes they just make the problem "worse" because you will need specific versions of virtualization software, network configured properly, ... since the VM was made to "Ubuntu X" and you are using "Ubuntu Y".

Titus Brown:

sure, but the Ubuntu Long Term Support releases should mitigate that quite a bit -- I'm now relying on 12.04 for our scientific software, and 12.04 is supported through 2017, I think.

Greg Wilson:

It comes down to numbers: is the percentage of packages that JFI (Just Install) high enough that most scientists, most of the time, don't run into problems whose solution requires 10X the knowledge they have? Python's `cryptography` library isn't a small or obscure package, and Anaconda on Mac OS X isn't a rare combination; how long until events like that on the VM of your choice are so infrequent as to be a non-issue?

Jonah Duckles:

Docker.io might one-day help on the Linux platform, but as you point out, Macs are well, different.

Additionally, when you write a piece of code people find useful then open source it. If it becomes popular you will be dealing with a torrent of correspondence as people try to run your code on every conceivable software platform under the sun.

Aron Ahmadia:

@gvwilson: I think we've crossed that bridge with the core SciPy Stack on the major platforms.

@ctb: The VM solution isn't a silver bullet, unfortunately. For one, VMs don't work on supercomputers. Additionally, as Greg alludes, when you combine more tools, you increase the risk that you will need a library at a version that isn't provided by the VM because the VM is too new or old, coming to the limits of "interoperability".

Despite this, I think it remains to be seen whether we see VMs emerge on major HPC platforms, or installation-isolating tools like Docker, HashDist, or Conda enter mainstream popularity.

Neil Chue Hong:

The message I get from your post is: "This isn't as easy as we'd want it to be",

The reason I don't think VMs are the whole solution is that they don't - in their present general usage - solve the issue of me making multiple difficult to install tools work together.

Another solution - not necessarily the right one - is having an expert in every group/department who installs new software on a central set of managed machines for the group (aka the SysAdmin model or HPC centre model). But it can create an artificial divide between those who know what they'd like to do, and those who know what's possible on their machines.

Titus Brown:

VMs don't solve everything. But they solve an awful lot, especially at the level that Software Carpentry students and instructors work at, and I wish I understood why people ignore 'em. EOM. :)

Davis Jones:

I would've much rather seen this interesting and useful discussion as comments on the published blog post, rather than in github on the draft blog post. :(

drlabotatory (real name unknown):

Something like this happened to my partner and I during the SciPy 2013 git/testing tutorial. We got in a situation where git was refusing to commit our changes, and none of the usual suggested solutions from the instructors worked. In the end, the instructor had to "drive" and fix the problem, but we were all in a rush. It got fixed, but we didn't learn how. So ultimately my take home message regarding git was "here there be dragons."

Software CarpentryMath Authoring Gap and MathUI

In a previous post Greg Wilson wrote about the writing gap

between people who value the "I can see what I'm doing" of Microsoft Word and those who care more about the "I can tell what I did" of version control.
For STEM (science, technology, engineering and math) folks there is also the gap related to math expressions (you can use LaTeX to deal with math expressions but for beginners who spent around 20 years using Microsoft Word moving to LaTeX can be challenging).

Do you know that some people are working to solve the gap with math expressions?

Some of this people will be at an international workshop about mathematical user interfaces (submission to works are still open) in July to discuss how users interact with mathematics represented on a computer and related topics.

Folks from Mozilla MathML Project have also worked to solve this gap (like enabling real time preview of LaTeX equations in web browsers) and invite you to take a look at the work they will submit soon which covers nice examples of the new web technologies that can be used to share knowledge.

Software CarpentryImport Lesson

Lorena Barba has done it again. Having created a wonderful 12-step introduction to the Navier-Stokes equations using the IPython Notebook, she has now published AeroPython, which teaches the use of potential flow for aerodynamic analysis via the panel method. You don't have to know what that is to appreciate the beauty of what she has built—I certainly don't, at least not yet—but I'd like to explore something that isn't in those notebooks. Before doing that, though, I need to introduce an acronym that never caught on.

Most programmers are familiar with the term "API", which stands for "Application Programming Interface". It's the functions, classes, and what-not that a library provides, i.e., the things a programmer can call or use after loading that library. The complementary term that never caught on is "XPI", or "External Programming Interface", which is the set of things a library needs in order to run. For example, the XPI of the Python glob library includes:

  • sys.getdefaultencoding()
  • sys.getfilesystemencoding()
  • os.curdir
  • os.error
  • os.listdir(dirname)
  • os.path.join(dirname, filename)
  • os.path.lexists(pathname)
  • os.path.split(pathname)

and a few things from the re and fnmatch libraries.

I sometimes think of lessons in terms of APIs and XPIs. A lesson's API is what it defines and explains; its XPI is the terms and concepts it relies on. As with code, APIs are usually explicit: "this library provides these functions" and "this lesson introduces these topics". In contrast, XPIs are usually implicit: programs don't list the things they use, they just use them, and the only way to discover exactly what concepts a lesson depends on is to read it through carefully. That takes so much time that it's often faster for people to write their own short lesson on a topic than to integrate with one someone else has written.

And then there's the maintenance problem. Software Carpentry's lessons are constantly evolving; how can someone who depends on them know whether everything they require is still there a year or two down the road? With software, they can recompile their program or re-run its unit tests and see whether things still work. There's no equivalent for lessons—no easy way to find out whether dependencies that used to resolve are still there.

Sooner or later, any large, multi-author project has to find a way to track and manage dependencies. Conversely, I believe that if a project can't do this, it won't be able to scale up. It isn't the only obstacle to collaborative lesson development, or the biggest, but it is an obstacle, even within Software Carpentry itself. If we can figure out how to solve it, we'll be one step closer to helping all the potential Lorena Barbas out there create a network of wonderful lessons.

Air MozillaRelease Readiness Dashboard

Release Readiness Dashboard Release Readiness Dashboard

Air MozillaThe Gecko Profiler

The Gecko Profiler Performance Team intern Viktor Stanchev presents "Gecko Profiler".

Air MozillaIntern Presentations from Mt. View and Toronto

Intern Presentations from Mt. View and Toronto 1 intern from MV and 2 from TOR present their Mozilla intern projects.

Air MozillaMathML Accessibility

MathML Accessibility Accessibility Team intern, Jonathan Wei presents "MathML Accessibility".

Air MozillaEngineering Meeting

Engineering Meeting The weekly Mozilla engineering meeting.

QMOFirefox Aurora 30 Testday results

Hello everyone!

Friday, April the 18th, we held a new Testday for Firefox 30 Aurora. Thank you for helping out with test execution and exploratory testing.

More details about the work done can be found in this etherpad.

Special thanks are in order for: florin_nechita, Ignacio Yagami, Iamjayakumars, and to all our moderators! Your work is always appreciated.

We look forward to seeing you at the next Testday, so follow us on QMO for details!

QMOMarketplace Stage Testday – Friday, April 25th, 2014

Hello Mozillians,

We are happy to announce that Friday, April 25th, we are organizing an Marketplace Stage Testday. We will be testing Marketplace (https://marketplace.allizom.org/).

Features under scope for testing include:

  1. Browse pages: Homepage, Category landing pages (for all apps), App details page etc
  2. Installation of apps
  3. Android APK: Install apps on Android device
  4. App submission and management
  5. User functions: Add/Manage User reviews, Report Abuse, Feedback etc

Testing will we done on both desktop and Android. Details are available in the etherpad created for this event.

No previous testing experience is needed. Just join us on the #testday IRC channel or the etherpad chat and our moderators will offer you guidance and answer your questions.

Join us and let’s make Marketplace better together!

When: April 25, 2014.

Air MozillaBeer and Tell - April 2014

Beer and Tell - April 2014 Webdev side-project sharefest funtime!

Mozilla User ResearchCustomizing Firefox

Customizing Firefox from Philipp Sackl on Vimeo.

One of the ideas behind the Australis redesign of Firefox was to allow more people to customize their browser. The all-new customization mode gives you control over almost all parts of the user interface.

This video explains how to use customization mode and what it can do for you.

WebmakerIntroducing new resources making use of the Web Literacy Map

The Web Literacy Map is the collection of skills and competencies that the Mozilla community believe it’s important to pay attention to if you want to get better at reading, writing and participating on the web.

Web Literacy Map

We’ve been working on ways that people can use the Web Literacy Map in their particular context. Here’s three resources we’ve come up with:

  1. The Web Literacy Mapper (or ‘WebLitMapper’ for short)
  2. A Web Literacy Learning Pathways resource
  3. Draft guidelines for aligning with the Web Literacy Map

These three tools and resources are very much still in development at the moment but let’s take a closer look at them as we’d appreciate your feedback.


1. The WebLitMapper

Web Literacy Mapper

This prototype by Atul Varma is a way of tagging resources around the web with the competency layer of the Web Literacy Map. Once logged in with your Webmaker account, you can copy-and-paste the URL, choose which competencies it fits with (e.g. ‘Open practices’) and add some additional details.

For added convenience, the WebLitMapper can be used as a bookmarklet so that you can tag things as you browse the web. There are already a good deal of community-contributed resources in there! – go check it out!


2. Web Literacy Learning Pathways

Web Literacy Learning Pathways

This resource was put together by Laura Hilliger and focuses on the skills layer of the Web Literacy Map. Learners can click on one of the skills and choose either ‘What should I know?’ or ‘What can I learn next?’. This visually highlights a basic learning pathway. Check it out here.

As this was made using Mozilla Thimble, you can hit the Remix button as I did. We’ll be doing some additional work on the skills underpinning each competency in the run-up to the Mozilla Festival later this year.


3. Draft alignment guidelines

Draft alignment guidelines


This resource is an attempt to scaffold people’s alignment with the Web Literacy Map. We’re working on four key questions, some mini case studies and a Web Literacy Canvas. As it’s still early days, we’d very much appreciate feedback as well as any examples you may be able to give from your context.



We’d love to know what you think about these tools and resources. Please do bear in mind that we’re sharing them early for your feedback and they’re very much still in development.

What works? What needs changing? What else would help you in your efforts to #teachtheweb?

QMOBug Verification Day

Hi everyone!

Wednesday, April 30th, we will be holding our weekly Bug Verification Day. This event is held on the #testday IRC channel and it’s addressed to everyone willing to get involved in improving Firefox.

You don’t need to have any previous experience in working with bugs. Ask for help on the #testday channel and someone there will give you assistance. More details are available in the wiki page we set up for you.

If you’re unable to attend these meetings and still want to get involved, you can verify bugs on your own time. Just add the [bugday-20140430] tag to the whiteboard or a comment for every bug you work on, so we know you participated to this event.

Join us and help make Firefox better!

When: April 30, 2014.

QMOBug Triage Day

Greetings Firefox friends!

Monday, April 28th we will be holding our weekly Bug Triage Day. Join us on the #testday IRC channel and get involved!

You don’t need to have any previous experience in working with bugs. Ask for help on #testday and someone there will offer you assistance. Details are also available in this event’s wiki page.

If you aren’t able to attend this event but still want to get involved, you can triage bugs on your own time.  Just add the [bugday-20140428] tag to the whiteboard or a comment for every bug you work on, so we know you participated to this event.

Join us and help make Firefox better!

When: April 28, 2014.

Meeting NotesMozilla Project: 2014-04-21

All-hands Status Meeting Agenda

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

Friends of Mozilla

  • Justin Potts (:justinpotts) for taking on the QA leadership role for the Webmaker project

  • Colin Frei, Alfredos (fredy) Damkalis, Andrew Truong (feer56), Andre Garzia, Gabriel Gómez, Viking KARWUR, Anuj Agarwal, Benlamara Abderahemane, Benny Chandra, Muhammad Mehmood Ali, Luigi Tedone, Steve Lee, Shahmir Khan, Sebastian Hengst, Jennie Rose Halperin, and Rami Khader have been managing the Tablet Contribution Program application review and awarding process with me (Asa Dotzler). They collectively developed the scoring/ranking criteria, reviewed over 1,200 applications, developed a communications plan including emails to awardees and those who didn’t make the cut, created much of the program documentation, and generally kicked ass preparing to empower 500 of our community to brave the tablet jungles ahead of the core Firefox OS teams.

Upcoming Events

Monday, 21 April
  • Intern presentations from 1:30-3pm in SF Commons, MV Commons and TOR Commons plus streamed & recorded on Air Mozilla – Come see Valentin Tsatskin, Olusola Ogunsakin and Joshua Dover present what they’ve been working on all Winter/Spring!
Tuesday, 22 April
  • HTML5MTL Meetup in Montreal, Canada

    • A group where technical people can come together to share, network and most importantly learn about the different aspects of HTML5.

    • Frédéric Harper speaking
  • Intern presentations from 1-2:30 PM PDT in TOR Commons, SF Commons and MV Commons plus streamed & recorded on Air Mozilla – Come see Viktor Stanchev, Jonathan Wei and Willie Cheong present what they’ve been working on all Winter/Spring!
Wednesday, 23 April
  • Homebrew Website Club Meeting, 18:30-19:30 simultaneously at Mozilla SF and ESRI PDX. Description:

    Are you building your own website? Indie reader? Personal publishing web app? Or some other digital magic-cloud proxy?

    If so (or you want to!), come on by and join a gathering of people with like-minded interests. Bring your friends that want to start a personal web site. Exchange information, swap ideas, talk shop, help work on a project…

    Any questions? See the wiki page or irc://irc.freenode.net/indiewebcamp.

Thursday, 24 April
  • Countdown to Firefox 29 – Eric Petitt, Director of Firefox Marketing, plus others from the Engagement team, will present a 29-minute preview of the go to market campaign for Firefox 29. Two options, both the same — one at 9:00am PT and one at 4:00pm PT. The event will be streamed and recorded via Air Mozilla. Open to vouched Mozillians.

Saturday, 26 April
Sunday, 27 April

Project Status Updates (voice updates)

Firefox Desktop

Speaker Location: toronto (johnath)

  • No

  • But
    • Seriously
  • FF29 in a week
  • Say something meaningful here about the beautiful balance between technology and product
  • Movie time!

Speaker Location: nonverbal

Open Badges

Speaker Location: nonverbal

  • Open Call for Badges Pilot Project for Pittsburgh City of Learning Initiative

    • This summer, Pittsburgh will join other Cities of Learning in a groundbreaking initiative to pair learning opportunities for young people with digital badges in ways that allow learners to think about, pursue, and develop their interests.

    • Read more on the blog.
Mozilla Science Lab

Speaker Location: non-verbal

  • We taught over 280 people over the course of 3 days last week at 6 events, from a women in science and engineering bootcamp in California, to five events at PyCon. Massive thank you to our 21 instructors and participants. Also, have a look at Lukas Blaak’s post on the instructor training for more: http://lukasblakk.com/learn-to-teach-programming/
Firefox Marketplace

Speaker Location:
Telefoncia purchased rights to the ‘What Does the Fox Say?” and created this video for LATAM markets. It features a number of Marketplace Apps.

Developer Relations

Speaker Location: San Francisco

  • DevPulse. Lots of people at Mozilla do things to help developers build the open web. So much that many people don’t know what is happening or how to get involved! So we’ve started highlighting some key developer-centric activities each month in what we’re calling DevPulse. We’ve published our 2nd edition today; please have a peek and get involved (see last section :).

And if you want to be added to the list to receive this by email let Diane know (diane@mozilla).


Speaker Location: mjeffries,MTV

Vidyo 3.0 Portal upgrade is now live!

The latest version of Vidyo Desktop (3.0.4) has been pushed to the Vidyo Portal (see [1] for new features). That means the next time you open the Vidyo Desktop client, you’ll be prompted to update to the latest version – please select “Update Now”. The download will start and you’ll see a confirmation message when it’s done installing. You will then need to enter your LDAP password to log into the new client to complete the setup process.

Please note all Vidyo calls are now managed through the Vidyo Desktop client (by clicking on the Vidyo icon on your desktop) and are no longer managed through the web portal (https://v.mozilla.com).

Thanks again to all who provided feedback over the past couple months to help test and provide feedback on version 3 of Vidyo Desktop.

Some Notes:

  • [1] Support Documentation: https://mana.mozilla.org/wiki/display/SD/Vidyo+Desktop+3

  • Linux Users: The update will only download the client to the home directory, but you will need to install the package manually to update.
  • Ample notice will be provide before v2 of Vidyo Desktop is no longer supported.
  • If a direct download of the Vidyo client is needed, browse to https://v.mozilla.com

IRC: #servicedesk
Phone: x7911
eMail: servicedesk@mozilla.com

Conference Room Survey QR’s are coming! (and we want YOUR feedback!)

Coming to a conference room near you will be QR codes that when scanned open a quick Google survey for feedback on your conference room experience. The QR codes are readable on any smartphone with a QR scanner installed. EUS wants to make sure your conference room experience is the best it can be, and giving us feedback is key.


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
Michael Verdi Help our users How you can help users when Firefox 29 launches Home No N/A Links coming next week and in your email
Eric Petitt Firefox Marketing Go to market plan preview for Firefox 29 presentation Thursday. SF No N/A Air Mozilla
Stacy Martin Privacy Help Needed – Browser Privacy and Safety Guide for Domestic Violence Survivors SF No N/A https://wiki.mozilla.org/Privacy/NNEDV
Javaun Moradi Product, Fx for Desktop Need volunteer developers/designers/UX for the NatGeo/U.N. food hackathon! Home (Nick Desaulniers will give update) Details and volunteer
Kristin Baird MozCamp Update on MozCamp strategy for this year SF No N/A
Robyn Chau, Vladimir Vukicevic GDC Planning Team GDC 2014 Recap Remote No http://bit.ly/1rfttkc
Asa Dotzler Firefox OS Participation Tablet Contribution Program MTV No n/a https://wiki.mozilla.org/FirefoxOS/TCP


Do you have a question about a Mozilla Project or initiative? Let us know by Friday- we’ll do our best to get you an answer.

Please note that we may not always be able to get to every item on this list, but we will try!

Who are you? Area of question Question
What’s your name? What do you work on? Is your question about policy, a product, a Foundation initiative, etc. What would you like to know?


Let’s say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.

Introducing New Volunteers

New Volunteer(s) Introduced by Speaker location New Volunteer location Will be working on
Who is the new volunteer(s)? Who will be introducing that person? Where is the introducer? Where is the new person based? What will the new person be doing?

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Aaron Turon Azita Rashed Mountain View San Francisco Research Engineer
Justin D’Arcangelo Diego Marcos San Francisco US Remote (PA) Media Team
Sydney Polk Clint Talbert Mountain View US Remote (TX) Platform QA


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

  • Dial-in: conference# 8600

    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 8600

    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 8600
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 8600
    • CA/Vancouver: +1 778 785 1540, x92 Conf# 8600
    • CA/Toronto: +1 416 848 3114, x92 Conf# 8600
    • UK/London: +44 (0)207 855 3000, x92 Conf# 8600
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 8600
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 8600

Software CarpentryGSoC Projects for 2014

We're very pleased to announce that two students will be working on Google Summer of Code projects we put forward, and that one of our regular contributors has received a GSoC as well. The projects are:

Student Project Mentor
Piotr Banaszkiewicz Peer Instruction on the Web Mike Hoye
Gabriel Ivanica Browsercast: a Web-Based Slideshow Replay Tool Greg Wilson
Raniere Silva Math Virtual Keyboard Salvador de la Puente González

It's going to be an exciting summer...

Software CarpentrySoftware Carpentry bootcamp at GARNet

The second week of April the University of Warwick in the UK hosted its first Software Carpentry bootcamp. The bootcamp was organised by GARNet which is a UK-based research network for the UK Arabidopsis and wider plant research community. GARNet facilitates collaboration and interaction between different researchers and supports skills development.

The bootcamp was open to all researchers from the domain and many out of 32 participants came from outside of Warwick. However, the longest journey prize goes to Christina Koch who came from Vancouver to co-instruct with Aleksandra Pawlik from the Software Sustainability Institute.

The two main organisers, Charis Cook and Lisa Martin did an amazing job making sure everything was in place for the bootcamp. Not only did the attendees receive a booklet with all essential information about the event, everyone had a chance to discuss and network at the end of Day 1 during the dinner which Charis and Lisa organised on the campus. The icing on the cake (almost literally)? The dinner was topped up with some fancy dessert.

The three helpers Leonor Garcia-Gutierrez, Krzysztof Polanski and Jason Piper helped make sure that things run smoothly. The participants were working either on Windows machines or Macs (with a slight prevalence of the latter). Some machines were problematic when it comes to the setup. Eventually, thanks to the helpers everyone had all necessary software up and running.

The pre-bootcamp questionnaire showed that around a half of the participants had no or very little experience with programming. Several had not used the command line before. For that reason, the module on using command line started with the explaining the basics of the environment and the simple commands. At the end of this session Christina taught how to write and run shell scripts. Showing the power of the shell to the attendees was very convincing. The only problem we encountered was the fact that the "chmod" command is not supported on GitBash which many of the attendees were using.

The next module, version control, was a new topic for almost all attendees. The module started at the right pace for everyone to follow, discussing Git workflow on a local machine. However, when we moved to working with remote repositories on GitHub, it became a bit too rushed. Git is not an easy start with version control for beginners and maybe this particular module should be extended at bootcamp where most of the audience is new to the topic.

Introduction to programming with Python was taught using the IPython Notebooks which everyone seemed to like. The only misunderstanding that emerged from using IPythong Notebooks was that some attendees were convinced we worked online (since the Notebooks open in a browser). Once the confusion was laid to rest, attendees were keen to learn more, especially once they realized they could use this tool anywhere, sans wifi.

Day 2 of the bootcamp covered more programming with Python and an introduction to the Pandas library. Using the latter we showed the participants how to easily manipulate large *.csv files which they are likely to use in their everyday research. The teaching finished with Christina discussing debugging and testing.

At the end of the bootcamp, participants were given a final exercise in which they had to fork a repository with an unfinished piece of Python code (which also included a small bug). The point of the exercise was to give the attendees an opportunity to see how the skills they learnt separately over the course of two days could be combined in one task. There was also time for attendees with specific questions to consult with the instructors and helpers about how to implement skills from the past two days into their work.

Software CarpentryOffice Hours for Code as a Research Object

Looking to learn more about how to get a DOI for your code? Interested in the underlying technology used to hook up GitHub (a code hosting service) and figshare (an open data repository)? Join us for our online office hours on Thursday, April 24. We'll be shedding light on the technical build done as part of our "code as a research object" project.

We'll be holding two sessions, one at 11 am ET for those in North America, Europe, and Africa, and another at 4 pm ET for our Australasian colleagues. These sessions are open to all, and are your chance to ask your implementation questions, gain a better understanding of how the prototype works, and peek under the hood at the codebase.

Have a question? Add it to the etherpad, where you can also find useful background on the project as well as dial-in information. We hope you'll join us.

Air MozillaAustralis Collaboration

Australis Collaboration Mozillians talk about how critical collaboration is to the ongoing development of the Firefox browser.

Air MozillaFiredroid: A More Seamless Mobile Web

Firedroid: A More Seamless Mobile Web Joshua Dover presents "Firedroid: A More Seamless Mobile Web"

Air MozillaUI Telemetry

UI Telemetry UI Telemetry

Air MozillaImproving Network Error Experiences

Improving Network Error Experiences Valentin Tsatskin: "Improving Network Error Experineces"

Air MozillaIntern Presentation

Intern Presentation 3 SF interns presenting the projects they have worked on the last few months

InstantbirdGoogle Summer of Code 2014 has Commenced!

Instantbird again has the pleasure of participating in Google Summer of Code under the Mozilla umbrella. In the past we’ve had a variety of exciting projects and this year is no different. Three students will be working with us this summer:

Saurabh Anand (sawrubh), mentored by Patrick Cloke (clokep), will aim to add support for reliable file transfer to Instantbird using FileLink as a fallback to standard file transfer.

Mayank Kumar (mayanktg), mentored by Benedikt P. (Mic), will be adding voice and video support to Instantbird by integrating WebRTC for XMPP. WebRTC makes it easy for us to have real-time communication without the use of additional plugins.

Nihanth Subramanya (nhnt11), who last year added the “awesometab“, will be looking to improve loading of conversations and history under the guidance of aleth. He will work on adding the ability to search across all logs of a contact and loading the previous context of a conversation when scrolling (“infinite scroll”).

Please feel free to stop by #instantbird on irc.mozilla.org to say hello and congratulate our students! Thanks again to Mozilla for allowing us to participate in Google Summer of Code with them!

Air MozillaMozilla Weekly Project Meeting

Mozilla Weekly Project Meeting The Monday Project Meeting

hacks.mozilla.orgFirefox OS App Workshop Prague

Back in March, Mozilla tech evangelist Frédéric Harper visited Prague in the Czech Republic and gave a talk at the local Prague JavaScript meetup. His presentation, Empower Mobile Web Developers With JavaScript and WebAPI introduced a roomful of Czech JavaScripters to Firefox OS, Open Web Apps, and our recent integration with Apache Cordova and Adobe PhoneGap. PhoneGap/Cordova developers who’ve built native apps for other platforms and stores can now port PhoneGap-built apps to Firefox OS.

Just as sure as the coming of summer, Firefox OS is coming to the Czech Republic in 2014, and Fred and friends are heading back to Prague to host a full-day, invitation-only Firefox OS App Workshop on Saturday, June 28. There will be phones! All participants will receive a developer device to test and demo their apps, and to keep for future app development. For free.

Requirements: Show us your app

REQUIRED: To qualify for this free hands-on, technical workshop, you must be able to show us a published HTML5 app that you’re porting to Firefox OS or a working Firefox OS app in progress. Show us a link to your existing app or to working code for the app you’re building.

Apply now for the Prague App Workshop, June 28, 2014.


NOTE: If you do not provide relevant links to working app code we will not be able to consider your application. Firefox Marketplace currently offers plenty of tic-tac-toe games, sliding puzzles, calculators, and to-do list apps. We love to be impressed by new, original, and locally relevant apps, for work and play.

In the Czech Republic, we need apps that are in Czech. And if you want to extend the reach of your app by translating it to other languages, we have a pilot localization program to help you.

What to expect

This workshop is open to individual developers and teams of up to 4 people. The workshop begins with a technical introduction in English in the morning; the rest of the time is for coding and testing your app using the App Manager that’s built in Firefox Developer Tools. Bring laptops and devices.

At the close of the day, there will be demos of all the apps in progress. After demos, we’ll all go to dinner. Mozilla will provide food and drink throughout the day of the workshop, but travel and lodging arrangements are up to you. And after the workshop, we will stay in touch while you complete your apps and submit them to Firefox Marketplace.


If you don’t have a Firefox OS app in progress, here are some resources to help you get started. There’s never been a better time:

Mozilla User ResearchUXIM 2014 Recap

Two weeks ago, I attended User Experience Immersion Mobile(UXIM) for the first time in Denver, CO. This is a conference organized by UIE (User Interface Engineering). Unlike other popular UX conferences, for example IxDA and UX week, UXIM has a strong and practical focus on tools and techniques to create great mobile experience, which I found to be quite useful and relevant to my daily practice.

My colleague Ian Barlow has put together a well summarized note of a majority of the talks. In this post, I will focus on a few that he has not covered.


Cyd Harrell, Conducting Usability Research for Mobile Apps

In this full-day workshop, Cyd Harrell introduced many latest mobile research techniques for intreviewing, gathering data, and involving the entire team.

Mobile Research Tools

And more importantly: Remember be graceful when all your technology breaks.

Designing a mobile-specific research plan
  • Come up with a script that is flexible for customization, for example “Please look for a gift you would like to buy for one of your family member”
  • New recruiting channel: Use Twitter and edit your profile to mention “UX Researcher” and “Current study: ______”
  • Use SMS to send out a mobile surveys. Keep it short(5 questions). Ask a pithy open-ended question.
  • Filling in the gaps: Test on mob4hire.com, mobtest, usertesting.com
Collecting user data with mobile devices

To gather user data, usually there are two approaches: use a lab device, or use the user’s own device. Using the user’s mobile device can provide a better context and make the user feel comfortable. In comparison, use a lab device will lose the personal context, but it will reduce installation time and enable more control for the researcher.

Tips for working with users’ own mobile devices:

  • Have a backup iPhone and Android device on hand
  • Make a power strip part of your testing station
  • Have chargers for all the phones you are expecting
  • Instruct participants to install necessary apps in advance, but leave time in case they don’t
  • Adjust the screen brightness before you start each session

Tips for offering lab devices:

  • Have a backup iPhone and Android device on hand
  • Charge devices between every session
  • Remove passwords, lock screens, etc
  • Dry-run every aspect of the test

For physical lab setup, Cyd mentioned this “Hug your laptop” approach for remote mobile testing. This was first adopted by firstly Mailchimp UX and then Mozilla UX team. I’ve personally participated in the testing session by our former researcher Diane, and it worked extremely smoothly.

Cyd's slide 1

Cyd also mentioned using Sleds to help observe and gather testing data. One example product is Mr. Tappy.

Cyd also mentioned a great community movement Open Device Lab, which is created to establish shared community pools of digital devices for testing products. Besides, she also mentioned some in-house practice on building a device lab, for example Etsy’s case study.

Conducting user interviews on-the-go

Through an interactive activity, Cyd demonstrated reaching to your participants via mobile can help you collect in-context and real-time results. She mentioned a great mobile case study: Trackyourhappiness.org. The study is completely conducted on the go via SMS and mobile survey forms. Besides, Blurb, dscout, and Usabilia are also effective tools to gain a contextual understanding without shadowing the users in person. This contextual technique could be particularly helpful in settings like public transit, food habits, shopping, exercise, etc.

As a designer who has experiences on usability study and research on mobile, I found Cyd’s workshop extremely informative and practical. I’m looking forward to exploring these tools and applying the techniques to my next research practice.


Jason Grigsby, Adapting to Different Types of Input

Nowadays people have touch screens, cameras, voice control, and sensors on their digital devices. How do we design for the explosion of these dynamic inputs?  Jason Grigsby shared some interesting facts about input and his forward-thinking strategies.

Jason Grigsby's slide 1

The Web never had a fixed canvas. Knowing the screen sizes doesn’t matter as much, since lines are blurred in between phones, tablets, and laptops. Resolution doesn’t define the optimal experience.

Jason Grigsby's slide 2

How to handle this challenge? Jason showed us several futuristic input technology and products that could potentially change the game.

Circling back, Jason dived deep into explaining what this input challenge means for the Web:

  • For TV remote controls, input patterns are difficult to detect.
  • There is still a gap in between touch input and desktop input(mouse and keyboard).
  • For many people in the emerging countries, mobile is their first smart device, not desktop.
  • People use laptops with mouse, keyboard, touch all together. Switching modes won’t solve the problem

Jason Grigsby slide 3

What if the product has lots of legacy and the users won’t let go? Some example Jason listed below demonstrated good product strategies in giving the users a choice.

The key benefit of giving this approach is: You are designing for user need not for a specific form factor or input.

Having been working on design UI for hybrid and convertible devices, I found Jason’s viewpoints about dynamic inputs quite valuable and relevant. The web is a continuous canvas, adaptive interface should not just belong to website. It’s time to break the boundaries in between desktop, mobile, and web, and rethink about the experience as a union.


As I mentioned, these two above are the talks that my colleague didn’t cover. I’ve also enjoyed brilliant talks by Ben Callahan, Brad Frost, and learned a lot from a hands-on jQuery workshop by Nate Schutta.

Overall UXIM 2014 was a delightful experience. It was eye-opening to share thoughts about mobile with people who do design in various industries, such as healthcare, energy, retail, etc.  Thanks Jared Spool and the rest of the team putting together a wonderful conference.

The Bugzilla UpdateRelease of Bugzilla 4.5.4, 4.4.4, 4.2.9, and 4.0.13

There are four new releases today. All of today’s releases contain an important bug fix discovered since the last release.

Bugzilla 4.4.4 is our latest stable release. It is a bug fix update for the 4.4 branch:

Bugzilla 4.2.9 is a bug fix update for the 4.2 branch:

Bugzilla 4.0.13 is a bug fix update for the 4.0 branch:

Bugzilla 4.5.4 is an unstable development release. This release has not received QA testing from the Bugzilla Project, and should not be used in production environments. Development releases exist as previews of the features that the next major release of Bugzilla will contain. They also exist for testing purposes, to collect bug reports and feedback, so if you find a bug in this development release (or you don’t like how some feature works) please tell us.

Software CarpentryWorkshops at SESYNC

Applications are now open for the 2014 Computational Summer Institute at the National Socio-Environment Synthesis Center (SESYNC). Small teams of researchers are invited to apply for spaces at the one-week institute which will be held July 7-11 in Annapolis, Maryland. The workshop will offer participants hands-on training in managing the lifecycle of their data and code with a focus on using open source tools, including R. Topics will include

  • best practices and techniques for collaborative code development;
  • developing and testing code for data management, modeling, and analysis; and
  • visualizing and disseminating results.

The beginning of the week will cover material in a typical Software Carpentry workshop. During the middle portion of the workshop, breakout sessions will convene to discuss additional tools of interest based on applicant responses. Participants will apply what they've learned to their own data and research problems in consultation with workshop instructors during the last two days of the workshop.

SESYNC will cover eligible travel expenses, such as airfare and accommodations, for all participants. For more information, please see the SESYNC website.

Mozilla KoreaMozilla 리더쉽 향후 계획

Mozilla는 현재 예상치 못한 리더십의 변화에 직면있습니다. Mozilla의 이사 멤버인 Reid Hoffman및 Katharina Borchert와 함께 저는 리더쉽 변화에 대해 새로운 소식을 전해드립니다. Mozilla Corporation의 이사회 멤버 겸 임시 최고 경영자(CEO)로서 Chris Beard가 취임하게 되었습니다.

사실 이사회 멤버의 일원으로서 Chris를 영입하는 방안에 대해서는 몇달 전부터 검토를 개시했습니다. Chris는 누구보다도 오랫동안 Mozillian로서 활동했으며, Firefox 1.0 제공 개시 전부터 현재까지 적극적으로 Mozilla 프로젝트에 참여해 왔습니다. Chris는 우리의 혁신적인 프로젝트의 대부분에 대해 지휘 관리를 담당한 경험을 가지고 있으며, 그의 Mozilla에 관한 비전이나 업무 능력은 뛰어납니다. 저는 10년 가까이 동안 Chris의 판단과 조언을 의지하여 왔습니다. Mozilla에 대해 숙지하고 있는 Chris를 이사회에 부르는데, 지금은 절호의 타이밍과 말할 수 있습니다.


또한, Chris에게 임시 CEO로서의 역할을 주게 되었습니다. 어려운 상황을 이끄는데, 그 이상에 적임인 인물은 존재하지 않습니다. Mozilla 미션을 이해하고 제가 이제까지 생각하지 못했던 아이디어나 커뮤니티 마케팅 활동, 제품의 아이디어로 승화시키는 방법에 대해 Chris는 가장 명확한 비전을 가진 인물 중 한 사람입니다. Chris의 경력을 잠시 이야기하자면, Mozilla의 초창기에 제품, 마케팅, 이노베이션의 각 팀의 지휘를 맡았습니다. 최근에는 최고 마케팅 책임자(CMO)로서 Android판 Firefox와 Firefox OS의 최초 발표를 Mobile World Congress(MWC)에서 진행한 바 있으며 사용자, 개발자 커뮤니티를 위한 글로벌 활동을 지휘했습니다. Chris는 이 시기를 이끄는 데 적임자인 강력한 CEO후보자입니다. (역자주, 크리스는 역사상 가장 성공적인 Firefox 1.0의 기부를 통한 뉴욕타임즈 광고 프로그램을 진행하기도 했습니다.)

현재 Mozilla에 요구되고 있는 것은 결단력 있는 신속한 행동입니다. 잠정적인지 여부에 관계 없이 CEO를 비롯해 Mozilla의 리더 모두에게 빼놓을 수 없는 요소입니다. Chris의 경험과 통찰이 우리의 목표로 지극히 부합하고 있습니다. 개방적인 웹 기술만이 실현 가능한 독특한 사용자 체험을 이해하고, 이를 통해 2014년도 Firefox OS를 새로운 시장을 열어야 합니다. 한편, Firefox 사용자 여러분에게도 웹의 풍부한 기능과 유연성을 전달하면서 서비스의 새로운 통합을 도모해야 합니다.

개방적인 웹과 Mozilla가 현재 직면하고 있는 과제는 우리가 Mozilla를 설립한 당초의 과제와 매우 비슷합니다. 즉, 일원화된 비즈니스 모델과 기술이 존재하고 상호 운용성 및 신규 진입 장벽이 일어나고 있습니다. 현재 온라인의 생활은 풍부한 기능이 제공되고 있지만, 집중화가 진행되고 있어 그 와중에 우리의 인터넷 체험의 거의 모든 측면에 대해 지배권을 행사하는 몇몇 거대 기업에 의해 좌우되고 있습니다. 이러한 환경에서 오픈에서 매력적인 대체 수단을 확립하고 개방적인 웹 기술이 이러한 상황에 무엇을 가져오는지를 이해 시킬 필요성이 있습니다.

Mozilla는 현재 이러한 문제를 해결할 대체 수단을 구축하고 있습니다. 그리고, 이것이 우리의 존재 이유입니다. 이것은 또 우리가 미션과 목표를 나누고 전원 한 덩어리가 되어 대응하는 이유이기도 합니다. 최근 일련의 사건에 대해서는 Mozilla의 리더십을 발전·확대시키기 위한 원동력으로서 살려 가고 싶습니다. Chris가 잠정 CEO에 취임하는 것은 이러한 프로세스의 첫걸음입니다. 다음으로 CEO직의 장기 계획, Mozilla의 성공을 후원하는 이사회 멤버를 더하는 것과 동시에 Mozillian한 사람 한 사람이 리더로서 자신의 잠재력을 최대한 발휘할 수 있도록 그들을 적극적으로 돕겠습니다.

의장 Mitchell Baker

본 글은 미국 Mozilla 블로그에 게재된 Mitchell Baker 의장의 Mozilla Moving Forward의 한국어 번역입니다.

The Bugzilla UpdateRelease of Bugzilla 4.5.3, 4.4.3, 4.2.8, and 4.0.12

Today we have several new releases for you!

All of today’s releases contain security fixes. We recommend that all Bugzilla administrators read the Security Advisory that was published along with these releases.

Bugzilla 4.4.3 is our latest stable release. It contains various useful bug fixes and security improvements:

Bugzilla 4.2.8 is a security update for the 4.2 branch as well as contains several bug fixes:

Bugzilla 4.0.12 is a security update for the 4.0 branch:

Bugzilla 4.5.3 is an unstable development release. This release has not received QA testing from the Bugzilla Project, and should not be used in production environments. Development releases exist as previews of the features that the next major release of Bugzilla will contain. They also exist for testing purposes, to collect bug reports and feedback, so if you find a bug in this development release (or you don’t like how some feature works) please tell us.

Software CarpentryWorkshop at University of Southern Denmark, Odense

The workshop at University of Southern Denmark, Odense was my first workshop for Software Carpentry, the same is true for Luis as well. We had taught before, Luis more than me, but it was still exciting for me to see how this workshop would go given that we never taught together before. While I taught bash, regular expressions and Git, Luis taught Python, unit testing and SQL. Initially, make was also on that list, but due to time constraints was kicked out to make room for a second Git lecture.

Around 30 persons attended the course, mostly from SDU and the Max-Planck Odense Center (MaxO). All in all, the workshop was well-received and the attendees as well as the instructors were highly motivated. But there is still lots of room for improvement:

  • The shell lecture was way too slow, so that I could not do any of the demos. This was bad for a couple of reasons, but mainly because people did not know about even the most basic things which were needed for the Git part.
  • The regular expressions lecture should also increase in speed. Also, we (= SWC instructors) must be aware that Apple ships old BSD versions of the commonly used command line tools. These lack essential features, so that grep output cannot be colored on OS X!
  • Git just cannot be taught in 1.5 h to people without any prior knowledge of version control, at least not in a comprehensible way. Git is so incredibly powerful and the concepts behind it are so intricate that it is easy to cognitively overload people. Therefore, I dropped the make lecture and did a ’Git Double Feature‘ instead. Also, I noticed that I am suffering from expert's blind spot: when asked about where one can see the files of different branches on the computer, I realized that this feature of Git was so obvious to me that I did not explain that at all.
  • Probably the most interesting/realistic way to show Git is to have a new repository created before the workshop. That repository already contains some linear commits with simple scripts. People will clone it during the workshop and do some work in a new branch. While they are doing that new commits are added to the master branch, which people should fetch/pull and see the effect.
  • Showroom: Now and then we need to be able to show people what great things they can do with tools we teach. This would serve two purposes:
    • People would see right away the usefulness of what we are teaching. This should boost motivation.
    • People have a moment to relax.

The workshop was held on a Thursday and Friday and it was obvious that people, especially after lunch break on Friday, were mentally quite exhausted already. At that time I noticed just how much information (as measured in the ’unit‘ mind map connections) we conveyed during the two days. And that is what the ’showroom‘ is thought to be for.

Big thanks go to Owen Jones from SDU for organizing, things really worked out great.

PS: Danish pastry is as good as its reputation.

Software CarpentryChanging the Channel

A lot of open source projects use an antiquated-but-reliable chat system called IRC for long-running conversations. We've had an IRC channel for Software Carpentry for a while, but it's never had very much traffic. It also hasn't done anything to help people get involved in the open science community at large. We are therefore retiring it, and encouraging people—all kinds of people, not just instructors and bootcamp alumni—to join us on the Mozilla Science Lab IRC channel instead. We hope this will become a place where people can swap tips on teaching programming to scientists, discuss new forms of publication, seek help on specific research problems, and everything in between.

Mozilla ResearchAnother Big Milestone for Servo—Acid2

Servo, the next-generation browser engine being developed by Mozilla Research, has reached an important milestone by passing the Acid2 test. While Servo is not yet fully web compatible, passing Acid2 demonstrates how far it has already come.

Servo’s Acid2 Test Result

Acid2 tests common HTML and CSS features such as tables, fixed and absolute positioning, generated content, paint order, data URIs, and backgrounds. Just as an acid test is used to judge whether some metal is gold, the web compatibility acid tests were created to expose flaws in browser rendering caused by non-conformance to web standards. Servo passed the Acid1 test in August of 2013 and has rapidly progressed to pass Acid2 as of March 2014.

Servo’s goals are to create a new browser engine for modern computer architectures and security threat models. It is written in a new programming language, Rust, also developed by Mozilla Research, which is designed to be safe and fast. Rust programs should be free from buffer overflows, reusing already freed memory, and similar problems common in C and C++ code. On top of this added safety, Servo is designed to exploit the parallelism of modern computers making use of all available processor cores, GPUs, and vector units.

The early results are encouraging. Many kinds of browser security bugs, such as vulnerabilities similar to Heartbleed, are prevented automatically by the Rust compiler. Performance comparisons on many portions of the Web Platform that we have implemented in single threaded mode are substantially faster than traditional browsers, and multi-threaded performance is even faster yet.

Servo has a growing community of developers and is a great project for anyone looking to play with browsers and programming languages. Please visit us at the Servo project page to learn more.


edited for clarity around Heartbleed

Air MozillaWebcompat Walkthrough: Old Tech Evangelism Bugs

Webcompat Walkthrough: Old Tech Evangelism Bugs See how you can contribute to the Web Compatibility effort by assessing old tech evangelism bugs.

Air MozillaCommunity Building Forum

Community Building Forum The Grow Mozilla Community Building Forum

Mozilla ServicesMozilla Location Service – The Next Wave

Today, we celebrate the first birthday of the Mozilla Location Service (MLS), our experiment in geolocation at Mozilla. Thanks to a lot of help from volunteers, MLS covers a large part of the Earth, proving that our work together can build a usable location service.

Starting from these foundations, we’re now working on building a production service that can provide location services to millions of web users. This is a good time to pause and look back on what we’re doing it, why we’re doing it, and how you can help.

First of all, what is a “location service”? A location service is how your device knows where it is relative to the things around it, like WiFi access points and cell towers. Having a location service is crucial when when you can’t get a GPS signal (like in some urban areas) or don’t have a GPS chip (like in a laptop). Right now, location services are closed, proprietary services, run by Google, Apple, Skyhook, and a few other companies.

There are a few reasons that Mozilla is developing a location service. Location in general has become a very important part of how we use the Internet, and the Mobile Internet is becoming an even more critical part of our lives. So it’s important for the world to have an open and trustworthy location service.

Having an open location service is also critical for some of our key initiatives such as:

  • The FirefoxOS initiative, which aims to bring user choice and the principles of the open web to mobile phones and the mobile ecosystem. MLS in conjunction with FirefoxOS has the potential to provide location services to the millions of users who are transitioning from a feature phone to a smartphone.
  • Providing location information to open-source operating systems.

However, as important as this project is, it can’t succeed without you. The MLS can’t locate phones if it doesn’t know where access points and towers are and we rely on the community to collect this data. We call the process of gathering data “stumbling”. When you stumble for Mozilla, it means you’re traveling around with a GPS device (like a GPS-enabled cell phone) and “listening” for WiFi and cellular signals. When a signal is found, it’s matched up with its GPS location and uploaded and stored in the location service database. Then whenever another device using the service sees that WiFi or cellular tower, the MLS server knows where it is (since it knows where the WiFi or cellular tower is).

You can help MLS get better in a few ways:

  • Stumble: If you’ve got an Android phone, you can install our Stumbler app and start collecting data. Check out the coverage map and see if you can brighten up some dark spots.
  • Contribute: Like all Mozilla software, the Stumbler is an open-source project, with many contributors around the world. Check it out on github and send us a pull request.
  • Discuss: We like to talk about geolocation, whether it’s about how to make MLS better, how to improve stumbling, or how to do cool stuff with location information. You can find us on our dedicated mailing list or come talk to us in our IRC room #geo on Mozilla’s IRC server.

This is an exciting time for geolocation in the open Web. Through the MLS, we’re making location services available to millions more devices, and with more transparency than ever. If you take a look at our roadmap for the year, we’ve got some other big ideas coming up, like an open, community-sourced IP-geo database.

Richard Barnes

Mozilla ServicesMozilla Location Service – First Anniversary

The Mozilla Location Service is an open service to provide geolocation lookups based on publicly observable radio signals. It complements geolocation lookups based on global navigation satellite systems like GPS. The project is both built as open-source software and relies on an open community crowd-sourcing approach to gathering signal data across the globe.

We publicly announced the project six month ago, but started work on it a year ago to this day.

In order to celebrate our tireless contributors, we created a little video to show how far we have come and what a small group of dedicated volunteers can accomplish (wait for October, around 16 seconds into the video):


We started with a small group of Bay Area and Vancouver Mozillians, early on attracting volunteers from Moscow and Athens. Over time a small number of especially generous contributors shared their pre-collected data with us in addition to using our own MozStumbler Android app.

The MozStumbler application attracted not only users, but over time an active number of contributors, improving the application and localizing it to 19 different languages. As a fun way to visualize the vibrant community, we created a small video using the gource code visualization tool:


And of course no community is complete without all the members engaging in discussions, sharing the news and some going above and beyond in creating alternative stumbler applications or integrating the service into operating system libraries.

If you have questions or want to engage with us, please contact us on our dedicated mailing list or come talk to us in our IRC room #geo on Mozilla’s IRC server.

Thanks to all past, present and future contributors. This project wouldn’t be possible without all of you!

Hanno Schlichting

P.S. We also generated bigger versions of the map progress in a 1024×768 resolution. You can download the webm or mp4 files.

Mozilla User ResearchEmerging Needs in Thailand & Indonesia

Mobile Phone Market in Bangkok, Thailand

Mobile Phone Market in Bangkok, Thailand

This research was led by Bill Selman & Gemma Petrie.

In Fall 2013, the Mozilla User Experience Research Team visited Thailand and Indonesia to conduct Firefox qualitative research. In addition to our team of Mozillians, we partnered with SonicRim, a global design research firm, on this research project. If you would like to learn more about the project planning phase of this study, please read the first post in this series. You can also read about our initial observations in Thailand and our initial observations in Indonesia in previous posts. Finally, you can also checkout this follow-up post on ecommerce in Indonesia.

Study Goals

The goal of this research project was to understand how people in Thailand and Indonesia experience the Internet and to learn about emerging trends that will provide insight into new and current product features for Firefox.

Home in Bandung, Indonesia

Home in Bandung, Indonesia

Research Activities

The Mozilla User Research team believes it is important to experience in-context research with a wide variety of staff members. We brought a diverse set of talents into the field with us and gave each person the opportunity to engage in cultural immersion activities and two or more qualitative interviews in Bangkok & Chiang Mai, Thailand or Jakarta & Bandung,  Indonesia. Our field teams were comprised of: Bill Selman (User Research), Gemma Petrie (User Research), Uday Dandavate (SonicRim Researcher), Larissa Co (UX Design), Zhenshuo Fang (UX Design), Holly Habstritt (UX Design), Bram Pitoyo (UX Design), Margaret Schroeder (Market Research), Gavin Sharp (Firefox Engineering), and Yuan Wang (UX Design).

We engaged in a variety of contextual inquiry and ethnographic research activities including:

  • Semi-structured interviews with 44 participants (22 buddy pairs) in their homes and offices.
  • We observed public, commercial, and educational environments.
  • We connected with local Mozilla community members and hosted community dinners in Bangkok, Thailand and Bandung, Indonesia.
  • We collected over 60 hours of audio and video and nearly 2,500 photographs.
  • Finally, we engaged in an extended analysis period with both field teams in our Portland, Oregon office.
Interview Participant in Bangkok, Thailand

Interview Participant in Bangkok, Thailand


In Indonesia and Thailand, changes are taking place with respect to how (and how many) people are accessing the Internet. Rapid technological and socioeconomic development has influenced technology adoption curves and technology-centric behaviors. Our research identified various themes that will help inform the future development of our products. Here are a few of them:


Key pieces of critical infrastructure are lagging, especially in Indonesia.1-5

  • Reliable telecom is unevenly distributed in both markets. Urban dwellers can’t easily connect with their rural relations (and vice versa).
  • Telecom infrastructure is generally lacking (though improving); Limited bandwidth is shared between a very large subscriber base.
  • In Thailand, data is cheap (less so, proportionally, in Indonesia). Certain kinds of data usage (like social networking) may be unlimited, while others are metered. People in both markets use multiple devices/telecom providers to maximize coverage/minimize costs.

This lack of stable infrastructure inhibits what can be done with technology and influences software adoption and software updates due to poor or nonexistent download speeds.

Software Market in Indonesia

Software Market in Indonesia

OS/Software Distribution:

Due to poor connectivity, downloading is often not the only software distribution channel in this region. Physical media such as DVDs and USB thumb drives still play a significant role in how software is distributed and installed. As a result, software packages are frequently installed in a shop, rather than at home. These packages can include everything from the OS, to multiple browsers, productivity tools, and games. In Indonesia, software being sold
 is often several versions behind the current version and may be compromised with malware.

Search & Navigation:

Participants have difficulty searching the Internet, because they don’t understand the pieces of the browser and the relationship of the browser to the Internet. This resulted in several beliefs:

  • The belief that Chrome is better for searching Google, because both are Google products.
  • The belief that search results are generated within the browser, thus searching in a different browser will produce different results.
  • Navigating to Google.com in order to enter Facebook.com in the Google search box.
  • Limited awareness that software can be customized or modified with add-ons.
  • Acquiring software based on popularity in their social circles rather than functionality or performance.
  • “It doesn’t work anymore” — There is limited knowledge of malware, malicious add-ons, etc., that may be severely impacting browsing experience
Restaurant Menu in Chiang Mai, Thailand

Restaurant Menu in Chiang Mai, Thailand


Internet users in both markets rely on a blend of English and local language sources in order to find information they need. Users often, but not always, use English language menus on their devices (especially among Thai users trying to save screen real estate). Yet, while many users can navigate effectively in English, translation is still critical to their browsing experience. People want content in a context appropriate language: Local content in the local language and international content In English. Overall, there was a distrust of machine translations and a desire for improved content translation that provided additional cultural context.

What’s Next?

Mozilla is committed to providing the best user experience possible to our global community of users. It is important for us to understand the unique challenges and unmet needs that our users face around the world. We are grateful to all of the participants we were able to interview during this project and to the valuable support of our Thai and Indonesian communities. Over the last few months, our research team shared all of our Thailand and Indonesia study results with various teams at Mozilla. In addition to our observations, we suggested opportunities for addressing the unmet needs in this region. We look forward to incorporating design solutions to these challenges in our products. Stay tuned!


  1. Get ready for traffic jams & long commutes. (Bangkok Post)
  2. Smartphone sales in Thailand gather pace with over 2.87 million sold in the first four months of 2013. (GfK)
  3. Smartphone sales in Thailand gather pace with over 2.87 million sold in the first four months of 2013. (GfK)
  4. Indonesia Has 2nd Lowest Average Internet Speed, Reactions. (Indo Boom)
  5. New GSA Evolution to LTE report: 2013 ends with 260 LTE networks in service. (GSA)

Firebug BlogFirebug 2.0 beta 2

getfirebug.com has Firebug 2.0 beta 2

Firebug 2.0b2 fixes 9 issues
Firebug 2.0b2 is compatible with Firefox 30-31


A few more reported issues have been fixed in this release and we also created some more automated tests to ensure stability.

Show/hide Firebug panels

One change we introduced in Firebug 2 is the way how to hide/show individual panels. Check out the next screenshot that depicts how it’s done in Firebug 1


The panel selector button is presented on the main Firebug toolbar. We believe that this feature doesn’t deserve so much attention and in order to clean up the UI and make it simper we decided to move it into Firebug menu in Firebug 2.


There are many other little improvements in Firebug 2 that make the overall user experience better and we’ll be explaining them here step by step, so stay tuned!


Please post feedback in the newsgroup, thanks.

Jan ‘Honza’ Odvarko


hacks.mozilla.orgHTML out of the Browser

Amongst my friends, I’m known as something of a Star Wars nerd. My longtime nick has been cfjedimaster (a combination of two passions, the other being ColdFusion), I work in a room packed to the gills with Star Wars toys, and I’ve actually gotten inked up twice now with Star Wars tats. That being said, it was another movie that had the most influence on my current career – Tron.


I had already discovered an interest in computers before then, but it was Tron that really crystallized the idea for me. All of sudden I imagined myself being the programmer – creating intelligent programs and dominating the grid. Yeah, I know, I was a nerd back then too.

My dreams, though, ran into reality rather quickly during my time as a Comp Sci major in college. First – I discovered that “Hey, I’m good at math!” means crap all when you hit Calculus 3, and secondly, I discovered that I really wasn’t that interested in the performance of one sort versus another. I switched to English as a major (always a good choice) but kept messing around with computers. It was during this time that I was exposed to Mosaic and the early web.

I quickly jumped into the web as – well – I’ll put it bluntly – easier programming than what I had been exposed to before. I can remember LiveScript. I can remember my first Perl CGI scripts. This wasn’t exactly light cycle coding but it was simpler, fun, and actually cutting edge. I’ve spent a good chunk of my adult life now as a web developer, and while I certainly have delusions of the web being a pristine environment, it has been good to me (and millions of others) and I’m loving to see how much it evolves over time.

One of the most fascinating ways that web technologies have grown is outside of the web itself. In this article I’m going to look at all the various ways we can reuse our web-based technologies (HTML, JavaScript, and CSS) in non-web based environments. While it would be ludicrous to say that one shouldn’t learn other technologies, or that web standards work everywhere and in every situation, I feel strongly that the skills behind the web are ones open to a large variety of people in different disciplines – whether or not you got that PhD in computer science!


This is typically the point where I’d discuss how important mobile is, but it’s 2014 and I think we’re past that now. Mobile development has typically involved either Java (Android) or Objective-C (iOS). Developers can also use web standards to build native applications. One solution is Apache Cordova (AKA PhoneGap).

Cordova uses a web view wrapped in a native application to allow web developers to build what are typically referred to as hybrid applications. Along with providing an easy way to get your HTML into an app, Cordova provides a series of different plugins that let you do more than what a typical web page can do on a device. So for example, you have easy access to the camera:

navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
    destinationType: Camera.DestinationType.DATA_URL
function onSuccess(imageData) {
    var image = document.getElementById('myImage');
    image.src = "data:image/jpeg;base64," + imageData;
function onFail(message) {
    alert('Failed because: ' + message);

You can also work with the accelerometer, GPS, contacts, the file system, and more. Cordova provides a JavaScript API that handles the communication to native code in the back end. Best of all, the same code can be used to build native applications for multiple different platforms (including Firefox OS, now supported in Cordova & PhoneGap).

To be clear, this isn’t a case of being able to take an existing web site and just package it up. Mobile applications are – by definition – completely different from a simple web site. But the fact that you can use your existing knowledge gives the developer a huge head start.

Another example of this (and one that is hopefully well known to readers of this site) is Firefox OS. Unlike Cordova, developers don’t have to wrap their HTML inside a web view wrapper. The entire operating system is web standards based. What makes Firefox OS even more intriguing is support for hosted applications. Firefox OS is a new platform, and the chance that your visitors are using a device with it is probably pretty slim. But with a hosted application I can easily provide support for installation on the device while still running my application off a traditional URL.

Consider a simple demo I built called INeedIt. If you visit this application in Chrome, it just plain works. If you visit it in a mobile browser on Android or iOS – it just works. But visit it with Firefox and code will trigger to ask if you want to install the application. Here is the block that handles this.

if(!$rootScope.checkedInstall &amp;&amp; ("mozApps" in window.navigator)) {
    var appUrl = 'http://'+document.location.host+'/manifest.webapp';
    console.log('havent checked and can check');
    var request = window.navigator.mozApps.checkInstalled(appUrl);
    //silently ignore
    request.onerror = function(e) {
        console.log('Error checking install '+request.error.name);
    request.onsuccess = function(e) {
        if (request.result) {
            console.log("App is installed!");
        else {
            console.log("App is not installed!");
            if(confirm('Would you like to install this as an app?')) {
                console.log('ok, lets try to install'); 
                var installRequest = window.navigator.mozApps.install(appUrl);
                installRequest.onerror = function() {
                    console.log('install failure: '+this.error.name);
                    alert('Sorry, install failed.');    
                installRequest.onsuccess = function() {
                    console.log('did it');
                    alert('Thanks, app installed!');    
} else {
    console.log('either checked or non compat');                

Pretty simple, right? What I love about this is that the code is 100% ignored outside of Firefox OS but automatically enhanced for folks using that operating system. I risk nothing – but I get the benefit of providing them a way to download and have my application on their device screen.

FF OS prompting you to install the app


Of course, there are still a few people who sit in front of a gray box (or laptop) for their day to day work. Many desktop applications have been replaced by web pages, but there are still things that outside the scope of web apps. There are still times when a desktop app makes sense. And fortunately – there’s multiple ways of building them with web standards as well.

So you know the code example I just showed you? The one where Firefox OS users would be given a chance to install the application from the web page? That exact same code works on the desktop as well. While still in development (in fact, the application I built doesn’t work due to a bug with Geolocation), it will eventually allow you to push your web based application both to a mobile Firefox OS user as well as the other billion or so desktop users. Here’s the application installed in my own Applications folder.

INeedIt as a desktop app

As I said though – this is still relatively new and needs to bake a bit longer before you can make active use of it. Something you can use right now is Node Webkit. This open source project allows you to wrap Node.js applications in a desktop shell. Executables can than be created for Windows, Mac, and Linux. You get all the power of a “real” desktop application with the ease of use of web standards as your platform. There’s already a growing list of real applications out there making use of the framework – some I had even used before what realizing they used Node Webkit behind the scenes.

As an example, check out A Wizard’s Lizard, a RGP with random dungeons and great gameplay.

Screen shot - Wizard's Lizard

Native App Extensions

In the previous section we covered applications built with web standards. There are also multiple applications out there today, built natively, that can be extended with web standards. As a web developer you are probably already familiar with Firefox Add-Ons and Chrome extensions. There is an incredibly rich ecosystem of browser extensions for just about any need you can think of. What interests me however is the move to use web standards to open other products as well.

Did you know Photoshop, yes, Photoshop, now has the ability to extended with Node.js? Dubbed “Adobe Generator”, this extensibility layer allows for a script-based interface to the product. One example of this is the ability to generate web assets from layers based on a simple naming scheme. If you’ve ever had to manually create web assets, and update them, from a PSD, you will appreciate this. The entire feature though is driven by JavaScript and all makes use of a public API you can build upon. The code, and samples, are all available via GitHub.

Generator running within Photoshop

What Next?

Coming from the perspective of someone who has been in this industry for way too long, I can say that I feel incredibly lucky that web standards have become such a driving force of innovation and creativity. But it is not luck that has driven this improvement. It is the hard work of many people, companies, and organizations (like Mozilla) that have created the fertile landscape we have before us today. To continue this drive requires all of us to become involved, evangelize to others, and become proponents of a web created by everyone – for everyone.

Meeting NotesFirefox/Gecko Delivery Planning: 2014-04-16

Schedule & Progress onUpcoming Releases

Firefox Mobile

Read Only
Beta (29)
Nightly (31)
    • bug 988471 – Action bar icons flicker while typing and scrolling with an active text selection

    • bug 928096 – UI for Tab streaming
    • bug 981028 – Add telemetry probes for Top Sites
    • Fix for Fx31 bug 933739 – Issues in URL domain autocompletion

Developer Tools

<Read Only>

  • no-meeting-week is glorious

  • glorious too will be Firefox 31, including this nice new eye-dropper by Heather Arthur

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

Mozilla Add-ons BlogAdd-ons Update – Week of 2014/04/16

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.
  • 148 nominations in the queue awaiting review.
  • Most updates are being reviewed within 2 weeks.
  • 118 updates in the queue awaiting review.
  • Most preliminary reviews are being reviewed within 2 weeks.
  • 142 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 29 Compatibility (Australis!)

This is a big one. The Firefox 29 compatibility update is here, and there are some additional posts explaining some of what’s new:

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

The Add-ons for Australis contest is now closed, and we have begun the judging phase. We will announce the winners on this blog in a couple of weeks. Good luck!

Mozilla User ResearchUX Book Club SF: UX Team of One

As UX designer, even if you are working at a large company with dozens of other designers, you often find yourself as the only designer on a project. It’s a lot of responsibility advocating for users, fighting for time and resources for research, and pushing for beautiful UI details with engineers and product folks that may have little to no experience with design and research methods. How do you create great product experiences when you are, to use the title of Leah Buley’s book, a UX Team of One? For Buley who joined us to discuss the book on April 8th in Mozilla’s San Francisco office it’s about involving people in the process and acting as a facilitator within the team.

The book is divided into theory and practice. The first two chapters of the book are geared towards newbies with little to no training but who desire to move into user experience or apply some of the disciplines’ methods to their work. Since I’ve been in the UX field for some years I skipped to the practice chapters where Buley describes activities and deliverables for planning, research, design and evaluation. What differentiates her book from others is that she sets up each method or deliverable as a group activity. The activities are lightweight and practical,  perfect for involving non-designer types that maybe skeptical or time-crunched. One of the hard lessons I learned from transitioning from graduate school to being a designer in industry is that, while in an academic setting rigor is paramount, in the professionally world you can alienate your team if you are too rigid. You need to meet people where they are and be flexible.

For me reading the book was well-timed. I’m starting a new project with a new team. After months of being heads down on features I had forgotten some of the basics of kicking off new work. Starting this week I’ll be using activities like the Opportunity Workshop, Storyboarding and 2 x 2 Prioritization for our product workweek.

If you have anecdotes from working as a team of one I’d love to read about your experiences in the comments. For more information on the book club you can join our Facebook group or follow us on Twitter @uxbookclubsf.

QMOAnnouncement: Web QA Team badges

We are very excited to announce the creation of our new Web QA team badges! They represent all levels of involvement with our team.


Each badge lists the criteria for qualification. Start with a One and Done task, or by attending a Web QA Test day! Start running our automation or submit a pull request. You can get involved by advertising our team activities, and joining the conversation in our IRC channel #mozwebqa. You could even submit a design for our next badge! There are lots of ways to start working with our team.

The team would like to thank Ivana Catovic, yet again, for her beautiful designs. We are lucky to have a contributor with such talent!

For more information on our team badges, visit our Web QA Badges profile. Nominate yourself for a badge! Make sure your badges profile includes the correct data so we can verify your work.

Start with the Web QA Enthusiast badge and work up from there! If you have any questions you can always contact the Web QA team.


about:communityGrow Mozilla discussion this Thursday

If you’re interested in helping new people get involved with Mozilla, join us Thursday for an open community building forum.

Mozilla Add-ons BlogAdd-ons for Australis contest has ended

Thank you to everyone who participated in the Add-ons for Australis contest! After the entries go through the review process, the judges will go over them and select winners. We’ll notify and announce the winners in the coming weeks.

In the meantime, you can check out the new design for yourself on Firefox Beta.

Meeting NotesSeaMonkey: 2014-04-15


  • Who’s taking minutes? -> mcsmurf

  • Nominees for Friends of the Fish Tank:
    • -

Action Items

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



  • http://weblogs.mozillazine.org/seamonkey/ has not been updated since November 2012, the last version listed is 2.14 (bug 956561); move blog to blog.mozilla.org if possible Assigned: mcsmurf.

    • Mcsmurf says that it looks like we might be getting a blog on blog.mozilla.com.

    • KaiRo will do some DNS magic to get it mirrored at blog.seamonkey-project.org
    • Ratty managed to get Kerz’s contact address but totally forgot to follow this up yet.


Status of the SeaMonkey Buildbot Master and Tree

  • Callek has been working on migrating our Linux builders to CentOS 6 bug 795354. Puppetmaster has been updated. Ewong is able to login to these hosts and buildbot is installed. We still need to get everything setup for parity and do some slight tweaks to the puppet config, but we’re pretty close to useable.

  • bug 983536 libpango version >= 1.22.0 required on Linux.
  • bug 977676 SeaMonkey’s puppet broken due to requirement of ffxbld ldap password.
  • Python has been updated on all buildboxen!
  • We are perma-orange on comm-central, comm-aurora and comm-beta due to problems with tests
    • Windows en-US builds are being successfully compiled but tests are not working due to a dependency on python 2.7.3.

    • bug 908090 ImportError: No module named json, on SeaMonkey Linux/Windows (all) test runs, due to (still) using Python 2.5. We do have python 2.7 installed but our build system is picking up python 2.5 instead.
      • ewong’s patch is waiting for review. It was manually patched on the master; but, was reverted and the buildmaster was reconfigured and so the changes are gone. Need to have the patch pushed officially in order for this bug to be fixed.
    • pymake is failing with “invalid syntax” again because of an outdated Python.
    • Priority on fixing this and l10n repacks after 2.24 release.(No ETA yet)
    • bug 943740 is tracking the progress (or lack of one) in building trunk and aurora on Linux & Mac from the downloading user’s POV. (Windows nightlies are still appearing on schedule — or were until a day or two ago.)
  • No langpacks since 29th August on trunk. Needs investigating.
    • Windows and Mac trunk langpacks directories have been removed on the FTP server, maybe for lack of recent XPIs (later than 2.20a1). Latest Linux langpacks are dated 29 August. Callek told Tonymec on IRC he has a hunch about why but more pressing things to do first.

    • In Bug 902876 Comment 12 Mcsmurf is waiting for feedback from the build team on how to proceed.
  • Buildmaster is up and running.
    • Callek is hand-approving requests for CLOSED TREE landings at the moment.

    • Due to the master having some mysql issues, Callek has put a halt on the mysql updates, which affects the tbpl. So nothing is showing in tbpl atm.
  • comm-* will be building out of mozilla-* (bug 648979 etc.). Jcrammer has mostly completed the coding. Next step is consultation with mozilla-central build peers on landing the patches and also getting implicit permission to add several new top level directories to mozilla-central.

Release Train

  • SeaMonkey 2.26 beta 1 was released on April 9.

  • SeaMonkey 2.26 beta 2 is scheduled for April 18.
  • Useful Firefox Release Schedule link: Releases Scheduling

Extensions and Plugins Compatibility Tracking

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.

open tracking (0)
tracking requests (2)
targeted (1)
fixed (7)

  • Current breakages:

    • bug 984948 folder pickers in the filter editor are empty.

      • This was caused by a TB bug: bug 878805 Check UI consistency across all Thunderbird folderpickers.
    • bug 995755 – adding new bookmarks is broken.
    • bug 995737 – adapt seamonkey for the ab remote content policy change; use permission manager instead of address book property.
    • bug 901332 – Google CalDAV OAuth2 authentication dialog not shown in SeaMonkey
    • bug 995706 – I am not able to read, compose or send e-mail from my Yahoo Mail accounts
  • 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 805374 Remove Character Encoding menu entries that are not in the Encoding Standard. Tracked in:
      • bug 943732 Port the new Character Encoding menu to SeaMonkey.
    • Our front end Sync UI needs to be updated as the old backend is going away in Gecko/Firefox 31. See: New Firefox Sync has landed in Firefox Nightly.
    • A lot of these bugs are due to mozilla-central switching from synchronous APIs to Asynchronous APIs.
    • bug 831208 (asyncContentPrefsUse) Refactor asyncContentPrefs consumers to use the async API. Tracked in:
      • bug 909093 Update SeaMonkey to use nsIContentPrefService2. Mcsmurf and Neil@parkway are currently working on this.
    • bug 566746 (asyncFormHistory) Form history should use asynchronous storage API. Tracked in:
      • bug 912031 Use Asynchronous FormHistory.jsm in place of nsIFormHistory2 in Suite.
    • 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 793634 Force builds to be compatible with gtk 2.18/glib 2.22. Tracked in:
    • 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 627699 Port GTK2 to GTK3. Tracked in:
      • bug 882036 Port GTK2 to GTK3 – SeaMonkey Part.

      • A Red Hat person seems to be working on the GTK3 integration.
    • bug 846635 Use asynchronous getCharsetForURI in getShortcutOrURI. bug 834543 Add asynchronous version of setCharsetForURI and getCharsetForURI. Tracked in:
      • bug 896947 Use asynchronous version of setCharsetForURI and getCharsetForURI in getShortcutOrURI and other places.
    • bug 825588 Asynchronous JavaScript API for downloads and bug 851471 Decommission nsIDownloadManager. Tracked in:
      • bug 888915 Move SeaMonkey to the new JavaScript API for downloads when nsIDownloadManager is decommissioned.

Bugs: Low Hanging Fruit

Not necessarily Good First Bugs but minor fixes that shouldn’t need advanced coding skills.

  • bug 795002 Improve detection of valid feed urls in messengerdnd.js (Port relevant bits of bug 737115).

  • bug 986509 On Linux GTK/KDE with zebra striping for trees and menulists when focus is lost the selected row highlight is also lost.
  • bug 986889 sidebarOverlay.js#1653 should be using urlLit, not titleLit. (One line typo fix)
  • bug 494424 Update help for geolocation
  • bug 528229 Want pref to narrow down quick search box to match sender only or all addresses.
  • bug 462629 Cannot access MIME-type and file associations in new Helper Applications pane.
  • Tabbed Browswing:

Needs investigation/QA wanted?

  • bug 986548 SeaMonkey 2.25 always crashes when trying to access email.

    • Need to followup on bug 964182 with mozilla/core developers.
  • bug 986816 when starting with mail window: some contents missing. (Intermittent bug).
  • bug 987464 Build scripts for Seamonkey Linux X86_64 fail for2.28a1.
  • bug 988599 new email window displays prior composed email.
    • Workaround: set mail.compose.max_recycled_windows to 0.
  • bug 986874 Message pane opens by itself after selecting a junk mail message item.
  • bug 990450 Update Seamonkey: Existing proxy settings lost.

Feature List, Planning

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

  • Low-Medium triaging effort.

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

  • See Feature List page for major wanted/needed features.

  • TODO: We will need to update our Sync UI code due to the new Sync API. Also we need to check if we are allowed to create FX accounts from our UI Since the new Sync accounts are FX accounts.[IanN] I’m sure I saw a question about FX accounts and branding.
Modern Theme rework (Patrick Dempsey)

Ratty has been tracking the Modern theme rework by Patrick Dempsey.

Attachment Reminders

Suyash Agarwal has started to port attachment reminders to SeaMonkey MailNews. bug 984016 Attachment Reminder: Help prevent forgetting inclusion of attachments (Port TB bug 244455)

MathML in Composer

Frédéric Wang (:fredw) has been working on impoving MathML support in the Website Composer.

  • Bug 986839 – Add a LaTeX-to-MathML dialog box in Composer.

  • Bug 992127 – Add a LaTeX-to-MathML dialog box to the mail composer.


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).

  • Fixed:

    • bug 665708 – Gopher links show “Launch Application” in SeaMonkey 2.1

    • bug 904338 – Empty port line when create a Blogs & Newsfeeds account
    • bug 938673 – Add context menu to status bar padlock icon
    • bug 957895 – Bug 633937 added unnecessary three strings to messages.properties. Remove them.
    • bug 985964 – No 2.27a2 aurora nightly builds since the last merge
    • bug 958128 – Jumplists stop updating when PC is idle
    • bug 967492 – Remove “Personas” from Help (Update text)
    • bug 970475 – Use unprefixed box-sizing internally
  • Review:

    • bug 840427 – Migrate SeaMonkey builders to using mock

    • bug 853720 – After bug 827446, SeaMonkey doesn’t know mozcrash.
    • bug 908090 – ImportError: No module named json, on SeaMonkey Linux/Windows (all) test runs, due to (still) using Python 2.5
    • bug 922076 – Switch tests to using moz.build and manifests
    • bug 934492 – Adjust the languages preference pane to take into account Bug 910192 which removes intl.charset.default and deduces the fallback from the locale
    • bug 949884 – disable pulseaudio in SeaMonkey
    • bug 956007 – Remove front end for removed x-user-def font preferences
  • Working On:

    • bug 110904 – attach signature fails silently on bad paths

    • bug 507676 – Port |Bug 435804 – Remaining rdf cleanup for FilterListDialog| to SeaMonkey
    • bug 837649 – [Tracking Bug] Stop OSX 10.5 support for SeaMonkey project
    • bug 837650 – Stop support for OSX 10.5 in suite/ tree
    • bug 863747 – Add option to disable Location bar history
    • bug 918474 – Default Search dropdown doesn’t get refreshed after adding new search engine
    • bug 928632 – When the birth year is empty, SeaMonkey puts 1900 and in English language
  • Usual testing, reviewing and commenting.

  • Fixed:
  • Pending check in:
  • 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
  • Working on:
    • bug 943335 [TB] Update icons used in searchplugins (Yahoo, eBay, Wikipedia, Amazon, Bing, Twitter)

    • 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.

Fixed on comm-central:

  • bug 943732 Port the new Character Encoding menu to SeaMonkey.
This patch needs to be uplifted to comm-aurora.
  • bug 909093 Update SeaMonkey to use nsIContentPrefService2.

Fixed on comm-beta:

  • bug 977048 Close icon only works for click-to-play plugins.

  • bug 943732 Port the new Character Encoding menu to SeaMonkey.

Working on:

Just bikeshedding over the shape and size of the volume slider.
  • bug 525124 Double-clicking in a blank space opens the advanced property editor.

  • bug 514280 NS_GET_IID can be used on classes which don’t actually declare their own IID.

Stalled due to broken test:


Fixed since the last meeting:

  • bug 973346 Use plural form for blocked pop-up notifications (Port bug 853126).

  • bug 980356 Make nsMessengerWinIntegration.cpp compile with frozen linkage. [MailNews]
  • bug 984155 Build Thunderbird with frozen linkage / external API – Windows fixes. [Thunderbird]

Working on:

  • bug 993971 Preview lightweight themes (backgrounds) when View Apply Theme menu is active.

  • XBLify folder selection in the Filter List Dialog.

Waiting for reviews:

  • bug 797240 Update suite/common/app-license.html to reference MPL2 and fix inclusion into about:license


  • Update our front-end SyncUI code.

  • Implement Fx Accounts (Branding? SM Accounts?).

Other stuff:

  • Did some reviews.

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

Fixed on trunk:

  • bug 989776 Move inline scripts for SeaMonkey’s main about.xhtml page into a separate file.

  • bug 989777 Move inline scripts for SeaMonkey’s aboutPrivateBrowsing.xul page into a separate file.
  • bug 989780 Untrust about:life and consider moving inline scripts and styles into separate files.

Waiting for check-in:

  • bug 994849 Move inline scripts and styles for security-related about: XHTML pages into separate files.

Waiting for review:

  • bug 995706 I am not able to read, compose or send e-mail from my Yahoo Mail accounts.

Working on:

  • bug 844098 Update about:rights content for Safe Browsing based on Toolkit bug 514817 and separate inline scripts.

  • bug 994093 Provide toggle for Geolocation service (geo.enabled) in Privacy & Security preference pane.


  • bug 993845 Move event handling for SeaMonkey’s aboutSessionRestore.xhtml page into aboutSessionRestore.js.

  • bug 993847 Move event handling for SeaMonkey’s aboutSyncTabs.xul page into aboutSyncTabs.js.
  • bug 993850 Move command and event handling for the Data Manager from dataman.xul into dataman.js.


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

  • Requested branch approval for bug 952735 to land for SM 2.26/2.27.
  • End-user information and discussion on MozillaZine.

Any other business?

  • [Ratty] KaiRo reminded us that we need to grow our contributor community. I’m not sure where we could discuss this. I have no idea on how to do this. Perhaps we can get some Engagement experts from Mozilla to give us some suggestions?

    • [IanN] might have a chat with some people and see if they can point me in the right direction.

SeaMonkey Meeting Details

Meeting NotesMozilla Platform: 2014-04-15

Hot Bugs

(Important bugs for which we need to find owners or additional help. If known, please include suggested team or knowledge needed to advance the bug.)

Orange Factor
  • bug 994300 – Frequent OSX browser_frameworker.js | application crashed [@ mozilla::dom::ContentParent::InitInternal(mozilla::hal::ProcessPriority, bool, bool)] “Assertion failure: opened, at /dom/ipc/ContentParent.cpp:1590″ since mochitest-bc split landed.

    • jst to help find owner


The Need To Know

(Release and system issues that may impact engineering this week.)

Notices/Schedule (lsblakk/sylvestre)

Next Merge: April 28, 2014 Next Release: April 29, 2014
Central: 31 Aurora: 30 Beta: 29 Release: 28
?? bugs (?? bugs last week) ?? bugs (?? bugs last week)
Unresolved Aurora 30 Trackers (non-security, not tracked for Beta) Unresolved Beta 29 Trackers (non-security)

Build Changes (gps)

(Build changes of which engineers should be aware.)

RelEng (catlee)

(Repo, test, and other information for engineers from the release engineering team.)

  • We’re disabling b2g reftests on the minis for m-a, b2g26 and b2g28

    • We have been running green for several weeks

    • We will not be running any more jobs on Mac Minis from 2010!
    • details on https://bugzil.la/818968

Upcoming Outages/Upgrades

(System outages/upgrades and tree closures that impact engineering.)

Team Stand-ups

(In <2 mins, what did your team accomplish last week, on what is your team working on this week, and on what, if anything, is your team blocked? No questions during the stand-ups. All questions should be asked during the roundtable.)

Accessibility (dbolter)

  • Accessibility desktop goals are finalized, FFOS goals will be prioritized soon after discussion with product.

  • Trevor is proceeding this quarter with work to make accessibility viable in a sandboxed FF.
  • We’re targeting an accessible FFOS/Gaia v2.0.
  • In the meantime FFOS a11y improvements and GAIA a11y works continues, for example bug 981015 landed, to improve our touch adapter.

Firefox Mobile (mfinkle/blassey)

Firefox OS Devices/Porting (ericchou)

  • Worked on Tarako(1.3T+) issues (which were reported on Bugzilla or on SPRD’s ITS)

    • bug 988110 – touch event lost in Tarako monkey test

    • bug 993312 – the USSD “*141#” can’t work
    • bug 993327 – unable to enable Data Connect after turning off WIFI
    • bug 993518 – When in a phone call, the proximity sensor does not turn off the screen
    • bug 990003 – [Perf][Dailer] It takes a long time for the call screen shows up
    • bug 990957 – ringtone does not play out when user set some amr file as ringtone
    • bug 994015 – some mp4 videos play not smoothly
    • Several audio issues which were reported on SPRD’s ITS
  • 1.3+/1.4+ issues

    • bug 984498 – The busy tone is not played when the device is in silent

    • bug 987545 – When headset is connected, uplink voice is picked up by handset mic instead of headset mic
    • bug 986381 – Frame drop observed for high resolution .webm video clips
    • Bluetooth certification issues. (1.4+)
  • It was a bug-fixing week for device team.

Firefox OS Performance (mlee)

<Read Only>

Firefox OS Telephony/WIFI/NFC (kenhkchang)

<Read Only>

  • bug 990472 – [B2G][RIL] mozTelephony.dial() should reject when there are more than 2 calls

  • bug 889737 – [MMI] Unify both sendMMI() and dial() functions
  • bug 784429 – [WebAPI] WebTelephony: Hang-up while connecting, call is not terminated
  • bug 992772 – [B2G][RIL][NetworkManager] ResolveHostName with the DNS of the specified NetworkInterface.
  • bug 995486 – CDMA MO MMS is not working on reference ril
  • bug 989717 – Wifi/Hotspot status error
  • bug 994564 – Use different thread for executing wifi command and netutil command
  • bug 984397 – [NFC] Fix rf_discover in NFC emulator.
  • bug 993330 – [NFC] support notify tag discover by emulator console command.
  • bug 993836 – [NFC] Emulator support for reading NDEF data from type 1 tag.
  • bug 987760 – [v1.4] Investigate test_settings_wifi.py failure.
  • bug 898445 – B2G RIL: Move mozMobileConnection/MozMobileConnectionInfo/MozMobileNetworkInfo/MozMobileCellInfo to WebIDL.
  • bug 995109 – B2G RIL: Don’t handle |dataInfo.connected| in DataConnectionHandler.
  • bug 992568 – Refactor RtspChannel to support HTTP->RTSP redirection and rendering inside the browser
  • bug 993732 – [B2G][Clock] Alarm set with clock app does not fire until user reopens clock app
  • bug 991025 – Enable WiFi test on emulator
  • bug 975778 – [B2G] [Emulator] Support CDMA_FLASH command for Cdma call waiting and 3way calling senario
  • bug 975779 – [B2G] [RIL] add marionette tests for CDMA call waiting and 3way calling
  • bug 939046 – B2G RIL: Data call and RILNetworkInterface enhancement
  • bug 993311 – Convert Network Stats API to WebIDL
  • bug 866938 – B2G MMS: Support email address in receiver field (in review)

Firefox OS Systems – Front End (gwagner)

  • new homescreen for Fx 2.0; regular app, not a certified app; vertical scrolling

  • new task manager for Fx 2.0
  • fixed last 1.4 blockers for download manager

GFX (milan)

<Read Only>

  • Additional items, escalated to preempt some of the scheduled work

    • B2G debug emulator related

    • Shutdown sequence for graphics ipdl
  • OMTC desktop
    • Accelerated windows in progress, looking at which performance issues can be remedied. Aiming to enable early in 32.

    • Some work also being done on Linux/XP software compositor (E10S).
  • Skia content
    • Greening try

    • Looking at performance results (no conclusions yet)
  • APZ improvements
    • In progress
  • v-sync on B2G
    • In progress

Identity (jedp)

<Read Only>

  • Fx Accounts on FxOS: First QA pass finds we fulfill committed user stories

  • Sync on Desktop: Please keep testing

JS (naveed)

<Read Only>

  • Garbage Collection

    • Continue stomping out remaing GGC crashes. More aggressive diagnostics added to Nightly.
  • Front End and Other

    • bug 995200: Enable strict mode for self-hosted code in opt builds, too

    • bug 911147: Implement ES6 Array.prototype.fill

Layout (jet/dbaron)

<Read Only>

  • Testing: reftest is now testing invalidation rects properly again bug 995410

  • Testing: interruptible reflow is now disabled in reftest harness bug 992324
  • Platform parity of Web features: @font-face { src:local(…) } now supported on Android bug 769194

Media (mreavy)

  • Landed major update of AEC we’d been expecting. AEC is now run on getUserMedia streams directly.

    • Was bounced twice and took a week to land due to b2g emulator issues (see m.d.platform)
  • Found that the fix for delays opening audio streams on Mac (bug 919215) didn’t solve that cubeb_init could take hundreds of ms or even >8 seconds, leading to permanent delay/echo on Macs, especially using speakerphone modes. Fixed.
  • MediaStreamGraph now resamples and mixes to the “preferred” output rate (typically 44100 or 48000) before passing audio to AudioStream.
  • Even moving some tests around from one dir to another broke B2G opt emulator (bug 963244 went perma-orange until the move was reverted)

Necko (dougt/jduell)

  • no update this week

Performance (vladan/avih)

  • IOInterposer non blocking observers – less interruptions for normal browsing when collecting IO data (nightly).

  • Reduced addons compatibility checks – most tests now pass.
  • Still fixing maintrhead IO bugs.
  • Still working on talos profiling. Phase one is likely to not support windows.
  • Improved telemetry dashboard: more analytics integration, slowSQL bugfix, jobs timeout notifications.
  • Handling talos regressions (bug 990644) – process hopefully in place, impact unclear.

Seceng (grobinson)

  • We’re working on an addon to help users protect themselves and learn more about Heartbleed. WIP on Github

WebAPI (overholt)

  • Tobie Langel started on a contract today to help advance our Service Workers implementation

    • speaking of Service Workers, the cache API design is coming along and the necko team is getting involved

Quality Programs

(An opportunity to hear about status with the various quality programs that do not have a formal team structure.)

CritSmash (dbolter)

  • Your attention to security bugs _is_ appreciated.

MemShrink (njn)

  • No update.

OrangeFactor (ryanvm)

  • Past week’s OrangeFactor: 11.82 (Previous Week: 11.88).

  • mochitest-bc chunking landed on trunk, yay! Trying to port to Aurora as well.
  • 21 intermittent failures fixed in the last week – List – Thanks!.

Stability (kairo/bsmedberg)


(Comments and questions that arise during the course of the meeting or otherwise do not have a section.)

<Read only beyond this point>

Mailing List Threads

(Threads that are likely to be of interest to engineering from various mailing lists.)

Good Reads

(Links to blog posts, books, videos, etc. that you think will be of interest to others.)

irc #planning Log From This Meeting

10:56 KaiRo: cpeterson: no stability audible today
10:56 cpeterson: KaiRo: ok
11:01 RyanVM|sheriffduty: mreavy: safe to say that the "right" media people aren't here for me to rant about the current state of the media mochitests? (not webrtc stuff)
11:01 RyanVM|sheriffduty: i.e. bug 994877
11:02 RyanVM|sheriffduty: I think I counted 6-7 bugs in the top 20 OF
11:02 mreavy: RyanVM|sheriffduty: they are sleeping, but I will be speaking to the media mochitests in my media update
11:02 RyanVM|sheriffduty: great
11:02 Waldo: woo taxes /o\
11:02 mreavy: RyanVM|sheriffduty: yeah, way too many :-(
11:02 RyanVM|sheriffduty: always skips hot bug
11:02 Waldo: https://wiki.mozilla.org/Platform/2014-04-15 for anyone who needs it
11:07 Waldo: woo for doing it right from the start in a11y \o/
11:07 davidb: :)
11:11 RyanVM|sheriffduty: bug 994877 is tracking mreavy's comments about media mochitest problems
11:12 davidb: mreavy: what is the best way to test webrtc?
11:12 davidb: (i use nightly)
11:13 mreavy: davidb: soon it will be Loop, which will be landing in the next week or so.  In the meantime opentokrtc.com is what I recommend.  For example, opentokrtc.com/davidb will give you a "room".  You can share that link with whoever you want to have a call with.
11:14 dveditz: unofficial Heartbleed addon: https://addons.mozilla.org/en-US/firefox/addon/heartbleed/
11:14 dveditz: seceng is working on a better one though
11:14 dveditz: (actual input from UX folks, no bad-for-privacy reliance on a server)
11:14 Waldo: also notes that contractor is a longtime Mozillian, if his memory serves \o/
11:15 Waldo: we are laughing in here because of departing just as Bob was being poked
11:15 bhearsum: dveditz++
11:17 jesup: http://mozilla.github.io/webrtc-landing/ has links to several services that use WebRTC that you can use for calls/chatting/file xfer/etc (about to update it with some more)
11:19 jesup: davidb: Updated 
11:20 davidb: ok great
11:20 davidb: i was wondering if one was better than the other
11:20 davidb: this stuff is getting pretty awesome
11:21 mreavy: david: my preference is opentokrtc.com --- but soon it will be Loop :-)
11:21 mreavy: davidb: ^^
11:21 davidb: ty
11:23 KaiRo: realizes he potentially should have put the Mac Flash crashes into the agenda, given how many people at Mozilla use Macs

Engineering Meeting Details

  • Tuesday 2014-04-1511:00 am Pacific Standard Time

  • Dial-in: conference# 98411
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 98411

    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 98411
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 98411
    • CA/Vancouver: +1 778 785 1540, x92 Conf# 98411
    • CA/Toronto: +1 416 848 3114, x92 Conf# 98411
    • UK/London: +44 (0)207 855 3000, x92 Conf# 98411
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 98411
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 98411
  • Engineering Vidyo Room / Air Mozilla / MTV Warp Core / TOR Finch / SFO Warfield / PDX Hair of the Dog
  • join irc.mozilla.org #planning for back channel

Software CarpentryDo Not Be Worried

Sage advice for our instructors and learners from an eight-year-old:

Do not be worried and you will not make mistakes.

Air MozillaEngineering Meeting

Engineering Meeting The weekly Mozilla engineering meeting.

hacks.mozilla.orgPowerful tools for developing Web Apps

In the recent years, web development changed drastically. The emergence of the mobile web and the new form factor of smart phones created the demand for different solutions than the former desktop-only web.

Since then a lot of frameworks and tools have been created, with new ones being added almost weekly. Now, we web developers are faced with a different problem: for every development concern, there are multiple options to consider, without clear pros or cons. It is easy to feel intimidated not only by the choices available, but also by how similar those choices are.

Every day, web developers have to successfully overcome this issue and turn this diversity from a daunting proposition into an empowering one.

But why reinvent the wheel all the time?

A set of solid recommendations for app developers

Mozilla is putting together a core set of tools and recommendations that we believe are the most useful for making Web apps.

The key considerations for what we might recommend are:

  • Sufficiently well-documented and straightforward to use for an average developer (we will concisely document the required knowledge one needs in order to engage with the technology).
  • Loosely coupled and as modular as possible (so you can follow one recommendation but not another if you are so inclined).
  • Tested on Mozilla products (i.e. the UI components will perform well on Firefox OS, etc), but with cross-platform apps in mind

The upcoming, initial set of recommendations involves a toolchain that’s core to any modern web app, like a JavaScript framework, templating interface, UI framework and task runner. We will employ existing solutions wherever possible and write libraries or utilities to fill in the gaps.

On an ongoing basis, we’ll expand this systematically across the different parts of the development experience, such as offline handling or the use of various Web APIs.

All of this will be delivered in one central spot: The App Center on the Mozilla Developer Network (MDN), our established, renowned resource for web app development.

But I already have it all figured out!

We encourage you to share your success story with us. Heck, share your failures too. We need all the feedback we can get from everyday web developers. If you have a tool chain of your own, with your favorite JavaScript framework, etc., we’re not interested in converting you to something else. We’re trying to help developers who aren’t sure how to go about making these kinds of decisions.

Come join us!

In the Mozilla tradition, this is a community-driven process. This means your input is encouraged and appreciated, and we would like your help to make this a successful initiative!

The main discussions around this will happen in the following places:

For the initial tool chain recommendations, I started a thread on the mailing list already, go ahead and weigh in.

If you have ideas for topics worth exploring in future iterations, don’t be shy and open a new thread to get the discussion started.

What’s next?

If this whets your appetite, then great! 2014 is an exciting year to be a web app developer. We’ll keep you updated here on Hacks, as well as the MDN App Center over the coming months.

WebmakerOppi Festival

On April 11 & 12 Webmaker and Open Badges had teachers cutting, gluing, and sharing at the first annual Oppi Festival in Helsinki, Finland. Since “oppi” means “learning” in Finnish, this was the perfect place to have exciting conversations about celebrating learning; we challenged participants who came to our Mozilla Space to share what “open learning” means to them.

Open Learning wall

Over two days, we held 2 discussion sessions and 4 hands-on workshops about everything from Mozilla’s mission to web literacy’s learning pathways and the new Badge Kit (still in private beta). When we first arrived, we were excited at the prospect of building teaching kitOppi Festivals and sharing them with the Webmaker community. In reality, we were a bit too ambitious; the 50-minute sessions didn’t allow for thorough introductions to Thimble and designing teaching kits. Even so, we had rewarding conversations about the intersection of privacy and collaboration, and spoke with young people about how to best surface these ideas in the classroom. And by preparing an etherpad of links used throughout the unconference, everyone had access to all the resources as we went along; hopefully they’ll continue to use them beyond the Festival.

With exhibitors like Rovio’s Angry Birds Playground, speakers like Dr. Sugata Mitra of “Hole in the Wall” fame , and performances by talented artists like Finland’s deaf rapper Signmark, it’s no wonder the 1300 participants were buzzing with conversation and ideas as they came coming through the Oppi doors. We look forward to hearing from the organizers of the Oppi Festival during this week’s Teach the Web call on Thursday.

More photos from the Oppi Festival here.

Meeting NotesMozilla Project: 2014-04-14

All-hands Status Meeting Agenda

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

Friends of Mozilla

  • Continued thanks to the people patiently answering posts in .governance – Yoric, nnethercote, Gerv, bz, and so many more!

  • [RyanVM] Thanks to Girish Sharma (Optimizer) for helping fix devtools test leaks and failures that helped us roll out bigger mochitest browser-chrome improvements last week.

Upcoming Events

Monday, 14 April
Thursday, 17 April
  • 10:00 AM Pacific / 17:00 UTC: Grow Mozilla discussion — a forum for discussing community building at Mozilla

Project Status Updates (voice updates)

Firefox Desktop

Speaker Location: Madhava in Toronto

  • Firefox 29 is now a mere 2 weeks away (Tuesday, April 29th)

    • includes the Australis UI changes, easier customization, simple sync-set-up, our first ever update/first-run tour

    • start stretching: it is no exaggeration at this point to use kermit arms
  • 1st Australis video
Firefox Mobile
  • UI telemetry is being collected, and we are starting to analyze

  • Quick Share on context menus landed. Some followups filed for UX tweaks.

Speaker Location: nonverbal

Open Badges

Speaker Location: nonverbal

  • Chicago Mayor Rahm Emanuel Announced Expanded Citywide Summer of Learning and Earning Initiative.

    • The Summer of Learning and Earning will once again engage youth by challenging them to earn digital badges to mark their successes.

    • Read more on the blog.
Mozilla Science Lab

Speaker Location: nonverbal

Grow Mozilla

Speaker Location: San Francisco

When you get your 2 MozLove t-shirts, check out this 3 step guide to connect new people to Mozilla:

  • Tell them about our mission

  • Tell them we need their help
  • Tell them where to find opportunities

Come to the Grow Mozilla discussion this Thursday at 10 pacific to learn more about how to connect new people to Mozilla and to help us make more resources like this to support the contributor growth goal for the year.

Firefox Marketplace

Speaker Location: Non-verbal

Major performance improvements:

  • Re-enabled gzip after addressing security flaws (8x size decrease)

  • Replaced appcache with traditional caching (20x size decrease)
  • Lazy-loading uncachable Persona libraries
  • Caching all responses in IndexedDB; refreshing asynchronously
  • Optimized API responses for Marketplace front-end
  • Caching API hits in our CDN
  • 71 other closed bugs
  • cold start time now being tracked

Speaker Location:mjeffries, San Francisco

VidyoDesktop 3 Goes Live!

Thanks to those who provided feedback on Vidyo 3, we’ve used it to fix a few things and now its ready for prime time. A mandatory and automatic update will be pushed on Monday morning, April 21st – for those that want to check out the client now, the download link is noted below [1]. Ample notice will be provided before v2 is no longer supported.

Some of the new features include:

  • Simplified UI w/ no Flash (means fewer crashes for you)!

  • Client auto sign-in w/ secure token (you no longer need to frequently type in your LDAP password to login)
  • Enhanced echo-cancellation for all OSs (especially for Macs!)
  • Ability to join any meeting by clicking a Vidyo room URL
  • Improved support and stability for Linux

Support Documentation:

If you have any questions – please submit a Service Now request, reach out to servicedesk@mozilla.com, or ask in #servicedesk

[1] – https://mozilla.box.com/vidyoclient

NOTE: After upgrading/installing the Vidyo client will ask you to upgrade to an older version, please select “Not Now”. You will no longer be prompted after 4/21/14.

MOC Update

  • The Mozilla Operations Center (MOC) is now staffed 24/7, and has begun the transition away from third-party incident handling.

  • The MOC has identified the top IT Services & Systems, and published an SLA framework for Incident handling.

These efforts are to ensure more consistent and timely IT incident handling and communication.


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
Debbie Cohen Chief of People Global Workforce MV No N/A N/A
Mihca Anderson HR Business Partner Removing Roadblocks to Productivity Mountain View No N/A Survey Results
Joe Stevensen Operations Security Manager Heartbleed update Mountain View No N/A Heartbleed Security Advisory blog post


Do you have a question about a Mozilla Project or initiative? Let us know by Friday- we’ll do our best to get you an answer.

Please note that we may not always be able to get to every item on this list, but we will try!

Who are you? Area of question Question
What’s your name? What do you work on? Is your question about policy, a product, a Foundation initiative, etc. What would you like to know?


Let’s say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.

Introducing New Volunteers

New Volunteer(s) Introduced by Speaker location New Volunteer location Will be working on
Who is the new volunteer(s)? Who will be introducing that person? Where is the introducer? Where is the new person based? What will the new person be doing?

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Hannah Kane Geoffrey MacDougall Toronto office PDX Program Manager for MoFo Engagement Team. Fundraising, Maker Party, advocacy campaigns like StopWatching.Us, government and other large-scale partnerships, contributor engagement, metrics and dashboards, etc.
Jessica Osorio Mary Colvig SF SF Jessica is filling in for Chelsea Novak for a year. She’ll manage supporter engagement activities as part of the Community Engagement team.
Sean Bohan Darren Herman New York New York Strategic Development Principal


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

  • Dial-in: conference# 8600

    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 8600

    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 8600
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 8600
    • CA/Vancouver: +1 778 785 1540, x92 Conf# 8600
    • CA/Toronto: +1 416 848 3114, x92 Conf# 8600
    • UK/London: +44 (0)207 855 3000, x92 Conf# 8600
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 8600
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 8600

Software CarpentrySummarizing Our Instructors' Skills

We've been asking bootcamp participants to tell us about themselves for a while now, so it seems only fair to share some information about our instructors. First, of the 82 instructors who responded to our survey two weeks ago, how many are comfortable teaching which topic to novices, to intermediates, or not at all?

Not At AllNovicesIntermediates
...Data Visualization183727
...Data Visualization541315
Unix Shell12358
Regular Expressions163729

Thanks to Jenny Bryan, we have a ranked visualization of those responses:

Instructor Skills

Second, who feels comfortable setting up on which platforms? (The responses don't sum to 82 because many people selected several options.)

Mac OS X61
Desktop VMs33
Cloud VMs21

And finally, where are people from?

North America60
Australia/New Zealand6
Sub-Saharan Africa1
East Asia1
South America1

We have information about instructors' research areas as well, but it's hard to categorize. Once we've recovered from running our biggest events ever, we'll dig into it a little more and share what we find; until then, you can download the raw data and tell us what correlations you can find.

Mozilla Add-ons BlogAdd-on Compatibility for Firefox 29

Firefox 29 will be released on April 29th. Here’s the list of changes that went into this version that can affect add-on compatibility. There is more information available in Firefox 29 for Developers, so you should read that too.


This is an actual movie

Yes, this is a joke.

This is a big one. The Australis theme introduces major changes that all add-on developers should be aware of, but it’s nowhere nearly as dramatic as initially thought. We’ve already been blogging about it extensively, so please give these articles a read if you haven’t already:

Notable changes include the removal of the add-on bar and the Firefox button on Windows, the introduction of the menu panel, and an overhaul in the toolbar customization system. Toolbars are no longer hidden for about: pages, there’s no small/large button setting anymore, and tabs are always on top.

Make sure you test your add-on extensively, paying special attention to button customization.

If you notice any problems in your add-ons related to Australis, please file a bug and add it as a dependency to one of these bugs:

  • Add-on issues. This is for add-ons that haven’t been updated yet and are visually broken in Firefox 29 and above.
  • Australis add-on bugs. Use this one if something is broken in your add-on and you believe it’s a bug in the new code.




Please let me know in the comments if there’s anything missing or incorrect on these lists. If your add-on breaks on Firefox 29, I’d like to know.

The automatic compatibility validation and upgrade for add-ons on AMO will happen soon, so keep an eye on your email if you have an add-on listed on our site with its compatibility set to Firefox 28.

Air MozillaFirefox Australis

Firefox Australis Learn more about the biggest change to Firefox since Firefox 4.

The Mozilla BlogMozilla Moving Forward

Mozilla finds itself in the midst of an unexpected leadership transition. Along with my fellow board members Reid Hoffman and Katharina Borchert, I am pleased to announce the next step in this transition: the appointment of Chris Beard to the Mozilla Corporation Board of Directors, and as our interim CEO.

We began exploring the idea of Chris joining the Board of Directors some months ago. Chris has been a Mozillian longer than most. He’s been actively involved with Mozilla since before we shipped Firefox 1.0, he’s guided and directed many of our innovative projects, and his vision and sense of Mozilla is equal to anyone’s. I have relied on his judgement and advice for nearly a decade. This is an excellent time for Chris to bring his understanding of Mozilla to the Board.

We have also appointed Chris as interim CEO. In this time of transition there is no better person to lead us. Chris has one of the clearest visions of how to take the Mozilla mission and turn it into programs and activities and product ideas that I have ever seen. In the early years at Mozilla he was responsible for leading the Mozilla product, marketing and innovation teams. More recently, Chris was our CMO, leading user, developer and community engagement activities globally, including the initial launches of Firefox on Android and Firefox OS at MWC. Chris is the right person to lead us through this time and he is a strong candidate for CEO.

Mozilla needs to act quickly and decisively. This is key for any leader at Mozilla, including our CEO, whether interim or otherwise. Chris’ experience and insight is highly aligned with our goals. We will continue to deliver Firefox OS to additional markets and form factors in 2014 as we demonstrate the unique user experiences that only the open Web can provide. We will continue to bring the richness and flexibility of the Web to Firefox users and will further integrate our services offerings.

The open Web and Mozilla are facing challenges that are very similar to those we faced when we first started Mozilla — centralized business models and technology with barriers to interoperability and new entrants. Today, online life is feature-rich, highly centralized and focused on a few giant organizations that exert control over almost all aspects of the experience. In this environment, there is a deep and urgent need for an open, exciting alternative that shows what the open Web brings to this setting.

Mozilla is building these kinds of alternatives for the world. It’s why we’re here. It’s why we gather together to focus on our shared mission and goals. We intend to use recent events as a catalyst to develop and expand Mozilla’s leadership. Appointing Chris as our interim CEO is a first step in this process. Next steps include a long-term plan for the CEO role, adding board members who can help Mozilla succeed and continuing our efforts to actively support each Mozillian to reach his or her full potential as a leader.

Mitchell Baker, Executive Chairwoman

Air MozillaMozilla Weekly Project Meeting

Mozilla Weekly Project Meeting The Monday Project Meeting

QMOFirefox 29 Beta 7 testday results

Hello everyone!

Friday, April the 11th, we held another Testday for Firefox 29 Beta 7. A big thank you is in order for all of you helping us running tests on multiple platforms, doing exploratory testing and updating bugs. More details about the work done can be found in the etherpad.

Special thanks go out to: florin_nechita, madamezou, tiziana, emerson, lakshmi, bsupreeth, sudharani, Meghraj, cbaba20, and to all our moderators! Your work is always appreciated.

We look forward to seeing you at the next Testday, so follow us on QMO for details!

QMOBug Verification Day

Hi everyone!

Wednesday, April 23rd, we will be holding our weekly Bug Verification Day. This event is held on the #testday IRC channel and it’s addressed to everyone willing to get involved in improving Firefox.

You don’t need to have any previous experience in working with bugs. Ask for help on the #testday channel and someone there will give you assistance. More details are available in the wiki page we set up for you.

If you’re unable to attend these meetings and still want to get involved, you can verify bugs on your own time. Just add the [bugday-20140423] tag to the whiteboard or a comment for every bug you work on, so we know you participated to this event.

Join us and help make Firefox better!

When: April 23, 2014.

Mozilla SecurityTesting for Heartbleed vulnerability without exploiting the server.

Heartbleed is a serious vulnerability in OpenSSL that was disclosed on Tuesday, April 8th, and impacted any sites or services using OpenSSL 1.01 – 1.01.f and 1.0.2-beta1. Due to the nature of the bug, the only obvious way to test a server for the bug was an invasive attempt to retrieve memory–and this could lead to the compromise of sensitive data and/or potentially crash the service.

I developed a new test case that neither accesses sensitive data nor impacts service performance, and am posting the details here to help organizations conduct safe testing for Heartbleed vulnerabilities. While there is a higher chance of a false positive, this test should be safe to use against critical services.

The test works by observing a specification implementation error in vulnerable versions of OpenSSL: they respond to larger than allowed HeartbeatMessages.

OpenSSL was patched by commit 731f431. This patch addressed 2 implementation issues with the Heartbeat extension:

  1. HeartbeatRequest message specifying an erroneous payload length
  2. Total HeartbeatMessage length exceeding 2^14 (16,384 bytes)

Newer versions of OpenSSL silently discard messages which fall into the above categories. It is possible to detect older versions of OpenSSL by constructing a HeartbeatMessage and not sending padding bytes. This results in the below evaluating true:

/* Read type and payload length first */
if (1 + 2 + 16 > s->s3->rrec.length)
  return 0; /* silently discard */

Vulnerable versions of OpenSSL will respond to the request. However no server memory will be read because the client sent payload_length bytes.

False positives may occur when all the following conditions are met (but it is unlikely):

  1. The service uses a library other than OpenSSL
  2. The library supports the Heartbeat extension
  3. The service has Heartbeat enabled
  4. The library performs a fixed length padding check similar to OpenSSL

False negatives may occur when all the following conditions are met, and can be minimized by repeating the test:

  1. The service uses a vulnerable version of OpenSSL
  2. The Heartbeat request isn’t received by the testing client

I have modified the Metasploit openssl_heartbleed module to support the ‘check’ option.

You can download the updated module at

We hope you can use this to test your servers and make sure any vulnerable ones get fixed!

David Chan
Mozilla Security Engineer

Air MozillaWebmaker Demos April 11

Webmaker Demos April 11 Webmaker Demos April 11