hacks.mozilla.orgEvent listeners popup, @media sidebar, Cubic bezier editor + more – Firefox Developer Tools Episode 33

A new set of Firefox Developer Tools features has just been uplifted to the Aurora channel. These features are available right now in Aurora, and will be in the Firefox 33 release in October. This release brings many new additions, especially to the Inspector tool:

Event listeners popup

Any node with a JavaScript event listener attached to it will now have an “ev” icon next to it in the Inspector. Clicking the icon will open a list of all the event listeners attached to that element. Click the debugger pause icon to get taken to that function in the Debugger, where you can set breakpoints and debug it further. (development notes & UserVoice request)

Event listener popup screenshot

@media sidebar

There’s a new sidebar in the Style Editor which displays a list of shortcuts to every @media rule in the stylesheet you’re editing. Click an item to jump to that rule. The condition text of the rule is greyed-out if the media query doesn’t currently apply. This works well in conjunction with the Responsive Design View (Opt+Cmd+M / Ctrl+Shift+M) for creating and debugging mobile layouts. (development notes)

@media rules sidebar

Add rule

Right-click anywhere in the Rules section of the Inspector to get an “Add Rule” option. Selecting this will add a new CSS rule, pre-populated with a selector that matches the currently selected node. (development notes & UserVoice request)

Add rule screenshot

Edit keyframes

Any @keyframes rules associated with the currently selected element are now displayed in the Rules section of the Inspector, and are editable. This is the first step on the way to better debugging of CSS animations. (development notes)

Editing @keyframe rules

Cubic bezier editor

To aid in editing easing animations, there’s now a cubic bezier editor tooltip that appears when you click the icon next to an animation timing function in a CSS rule. This feature used open source code from Lea Verou’s cubic-bezier.com. (development notes)

Transform highlighter

There’s now an awesome way to visualize how an element has been transformed from its original position and shape. Hovering over a CSS transform property in the Inspector will show the original position of the element on the page and draw lines mapping the original points to their new positions. (development notes)

Transform highlighter screenshot

Persistent disable cache

You can disable the browser cache while you’re developing by checking Advanced Settings > Disable Cache in the Settings tab. Now this setting will persist the next time you open the devtools. As usual, caching is re-enabled for the tab when you close the tools. (development notes & UserVoice request)

New Commands

New commands have been added to the Developer Toolbar (Shift+F2):

inject
The new inject command lets you easily inject jQuery or other JavaScript libraries into your page. Use inject jQuery, inject underscore, or provide your own url with inject <url>. (development notes)
highlight
The highlight command takes a selector and highlights all the nodes on that page that match that selector. (video)(development notes)
folder
The folder command opens a directory in your system’s file explorer. Use folder openprofile to open your Firefox profile directory. (development notes)

Editor preferences

A host of editor preferences are now available in the Settings panel. From here you can change your indentation settings and change editor keybindings to Sublime Text, Vim, or Emacs. (development notes)

WebIDE

A big feature called WebIDE has landed, but is behind a preference for this release while it gets more testing. WebIDE is a tool for in-browser app development. See WebIDE lands in Nightly for more details.

Other features

Edit selectors
Click the selector of any CSS rule in the Inspector to edit it. (development notes)
Black boxed minified sources
JavaScript sources with “min.js” extensions are now automatically black boxed. You can turn this option off in the Debugger settings menu. (development notes)
Custom viewport dimensions
The dimensions in the Responsive Design View are now editable so you can input the exact size you want the content to be. (development notes)

Special thanks to the 33 contributors that added all the features and fixes in this release.

Three of the features from this release came from feedback on the Developer Tools feedback channel, so that’s a great way to suggest features. You can also comment here or shoot feedback to @FirefoxDevTools on Twitter. If you’d like to help out, check out the guide to getting involved.

Meeting NotesMozilla Project: 2014-07-28

All-hands Status Meeting Agenda

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

Friends of Mozilla

  • Congratulations to Emily Pierce, Gen Kanai, Ankit Gadgil, and Gauthram Raj, this week’s Community Building Superstars! Keep being great and doing what you do for the Open Web!

Upcoming Events

Monday, 28 July
Tuesday, 29 July
Wednesday, 30 July
  • MDN Community meeting: in #mdn on IRC, 10:00 PDT, 17:00 UTC. See/add to the Agenda.

Intern Presentations!

  • 7/30 @1:30PM 1:30- Pranav Maddi, “Tracking Firefox health” MV

  • 7/30 @2PM 2- Shihua Zheng, “Locale-aware sorting on IndexedDB” SF

Homebrew Website Club Meetup

  • Chicago, Minneapolis, Portland, and @MozSF!

  • 7/30 17:30-18:30 Independent Writing Hour
  • 7/30 18:30-19:30 IndieWeb discussions and hack night

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 for details or irc://irc.freenode.net/indiewebcamp.

Thursday, 31 July

Project Status Updates (voice updates)

Firefox OS

Speaker Location: non-verbal

  • v2.1 development kicked off last week (Jul 21) — new features have been updated on the Firefox OS Roadmap
Webmaker

Speaker Location: Amira Dhalla and Chris Lawrence (Brooklyn)

Maker Party update: As of this morning, Maker Party has 873 events with 47,790 attendees in 220 cities around the world. We’re seeing a lot of enthusiastic conversation on social media, and in announcements and blog posts from our ~270 partners.

You can see some recent press here:

   Times of India
   Bronx News 12
   Newsplex
   NBC 29

In addition to our partner and press outreach, we’re also seeing success by activating the Mozillian community—Reps, Hive, Science Lab.

Introducing the Net Neutrality Global Teach-ins and training:

Starting next week, we’ll be offering free trainings on the topic of Net Neutrality, in preparation for a series of Global Net Neutrality Teach-ins, as part of Maker Party. Go here for more info: https://blog.webmaker.org/join-mozilla-for-global-teach-ins-on-net-neutrality

Our partners include: Reddit, Free Press, Open Media, IMLS / ALA, Media Alliance Every Library and Engine Advocacy.

Marketplace

Non-verbal: Marketplace team is looking for some app developers to give them feedback on a new way of doing in-app payments. The new process does not require the app developer to run a server. If you are an app developer, thinking of using payments, please join us on the marketplace mailing list or on IRC in #payments.

Speakers

Presenter Title Topic Location Share? Media More Details
Who Are You? What Do You Do? What are you going to talk about? Where are you presenting from? (Moz Space, your house, space) Will you be sharing your screen? (yes/no, other info) Links to slides or images you want displayed on screen Link to where audience can find out more information
Kristin Baird Director of Integrated Marketing Grow Tunisia – Event and Application to Attend SF No No https://wiki.mozilla.org/Grow_2014#Grow_Tunisia
William Reynolds Product manager, Community Tools Improvements to vouching on mozillians.org SF No No https://wiki.mozilla.org/Mozillians/Vouching
Liz Compton Legal Affairs Manager Improving Trademark Enforcement Efforts MV No No https://docs.google.com/a/mozilla.com/document/d/1G_fHEzN3BjAcO3MTD2Y1xphZ5LqwMEdDgZmUizCCJsQ/edit?usp=sharing

Roundtable

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?

Welcome!

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 Interns

New Intern Introduced by Speaker location New Hire location Will be working on
Alex Bardas Drew Willcoxon Mountain View San Francisco FFX Engineering
Marco Castelluccio Myk Melez Mountain View San Francisco Web Runtime Engineering

<meta>

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

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

Mobile

Applications to participate in the Flame Foxtrot program are now closed and being reviewed by the Foxtrot team. Everyone who applied will be contacted in the next few weeks. Details & updates on this and Flame at the Flame wiki.

Engagement
Web Compat

Quick report on webcompat.com: making progress on viewing and interacting with issues from the site itself, e.g., http://webcompat.com/issues/200.

Big thanks to Daniel Davis, Alexa Roman, Guillaume Demesy, Karl Dubost, Vlad Filippov for their ongoing contributions.


  • 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 CarpentrySummer Sprint Summary

Last week, the Mozilla Science Lab hosted its first-ever global sprint. Dozens of people joined in from 18 cities (and a few from home) to work for two days on a wide variety of projects, ranging from new lessons to tools for mining the scientific literature. The MSL blog has all the details, and will have a series of posts about what was done over the next couple of weeks, but here are a few Software Carpentry-specific highlights:

There's lots more on the MSL blog, including content mining tools to unlock scientific literature, progress on the Open Access Button, and a first crack at using package managers for lessons (see this post from Raniere Silva for more information). Our thanks to everyone who took part, and to everyone who helped organize and run the event—we look forward to working with you all again soon.

Air MozillaDoc Searls talks VRM, Intention and Personal Clouds @ Mozilla

Doc Searls talks VRM, Intention and Personal Clouds @ Mozilla Doc Searls joins @MozillaContent for a chat about Vendor Relationship Management, Intention and Personal Clouds.

Air MozillaMozilla Weekly Project Meeting

Mozilla Weekly Project Meeting The Monday Project Meeting

about:community[Announcement]: Apply to Attend Grow Tunisia (25–28 Sept.)

Hi Mozillians!

We’re excited to announce the first event in the Grow Program (formerly known as MozCamp), for Mozillians who want to deeply develop their leadership and community building skills. The program and events focus on developing contribution skills for yourself and to share with others so we can continue to increase the impact of our communities for the project and in the world.

About Grow Tunisia

The first three-day event, Grow Tunisia, will take place in Tunis from Friday, September 26, through Sunday, September 28. Participants must be available to arrive on Thursday, September 25, and should plan to depart on Monday, September 29.

In order to attend Grow Tunisia, you must be a Mozillian who resides in Africa, Europe or the Middle East, extending east to Iran and Turkey, including Israel and Russia. If you do not live in any of these regions, don’t worry! There will be an upcoming Grow event in your region later this year — please plan to apply for your regional Grow event.

Grow Tunisia participants can expect three full days of intense, instructor-led training as well as challenging hands-on work. The curriculum will include community building skills such as event planning, recruitment and project planning. Additionally, participants will delve into specific contribution areas to sharpen those skills and think about how to invite others to join.

Once participants leave Grow Tunisia, they will work with a mentor and a team of fellow participants to grow our community of active contributors by recruiting at least 5 new active contributors,* reactivating 10 idle contributors or hosting at least 2 events. (*An “active” contributor is one who has completed one measurable contribution for their contribution area.)

Invitation Criteria

Our goal is to gather a group of Mozillians that represents a wide spectrum of our key contribution areas. After discussions with the attendees of a Program Design Session, we came up with the following invitation criteria. By applying to attend Grow Tunisia, you:

  • Commitment
    • Agree to grow the quantity and quality of our communities by recruiting 5 new active Mozillians, reactivating 10 inactive Mozillians or hosting 2 training events (on- and/or offline) before the end of the year
    • Will engage in knowledge sharing (documentation, blogging, social media, etc.)
    • Agree to participate in the entire program, including the event, the development and implementation of a project plan after the event, and follow-ups such as completing surveys, checking in regularly with their project mentors and sharing their progress
  • Leadership
    • Know the regional community well and act as a leader, communicating organizational goals, getting the community active and excited and recruiting and mentoring new contributors
    • Have experience with community building/mentoring
  • Expertise
    • Have expertise in a specific contribution area or areas, with strong interest and experience onboarding, teaching and/or mentoring new active contributors
    • Are an active contributor with a key role in a pathway, one who can benefit from learning how to mentor and bring in new contributors
  • Other
    • Must be over 18 years old to participate in events that involve international travel
    • Proficient in the primary language (in this case English)
    • Resident of Europe, Africa or the Middle East

If you feel you meet the above criteria, we invite you to apply to attend Grow Tunisia: http://www.surveygizmo.com/s3/1742536/Grow-Tunisia-Application

*PLEASE NOTE THAT APPLICATIONS ARE DUE BY FRIDAY, AUGUST 1. SORRY, NO EXCEPTIONS.*

If your application is approved, you will receive an official invitation to Grow Tunisia by Monday, August 11, 2014.

If you have any questions or need additional information about applying to participate in this new program, please don’t hesitate to contact us on IRC in #Grow2014, Monday through Friday from 9 AM to 5 PM, Pacific Time.

about:pixelsWelcome (Back) Chris Beard

beardlove

(graphic by Sean Martell)

Open Policy & AdvocacyJoin Mozilla for global teach-ins on Net Neutrality

(This is a repost from The Webmaker Blog)

At Mozilla, we exist to protect the free and open web. Today, that openness and freedom is under threat.

The open Internet’s founding principle is under attack. Policymakers in the U.S. are considering rules that would erase “Net Neutrality,” the principle that all data on the Internet should be treated equally. If these rule changes go through, many fear it will create a “two-tier” Internet, where monopolies are able to charge huge fees for special “fast lanes” while everyone else gets the slow lane. This would threaten the very openness, level playing field and innovation that make the web great — not only in the U.S., but around the world.

Using the open web to save the open web

This is a crucial moment that will affect the open web’s future. But not enough people know about it or understand what’s at stake. Net Neutrality’s opponents are banking on the fact that Net Neutrality is so “geeky,” complex, and hard to explain that people just won’t care. That’s why Mozilla is inviting you to join us and other Internet Freedom organizations to educate, empower, organize and win.

Local “teach-ins” around the world…

Join the global Mozilla community and our partners to host a series of Internet Freedom “teach-ins” around the world. Beginning Aug 4th, we’re offering free training to help empower local organizers, activists and people like you. Together we’ll share best practices for explaining what Net Neutrality is, why it matters to your local community, and how we can protect it together. Then we’ll help local organizers like you host local events and teach-ins around the world, sharing tools and increasing our impact together.

…plus global action

In addition to increasing awareness of the importance of Net Neutrality, the teach-ins will also allow participants to have an impact by taking immediate action. Imagine hundreds of videos in support of #TeamInternet and Net Neutrality, thousands of letters to the editor, and thousands of new signatures on Mozilla’s petition.

We’ll be joined by partners like reddit, Free Press, Open Media, IMLS / ALA, Media Alliance, Every Library and Engine Advocacy.

Get involved

1) Host an event. Ready to get started? Host a local meet-up or teach-in on Net Neutrality in your community. Our Maker Party event guides and platform make it easy. We even have a special guide for a 1 hour Net Neutrality Maker Party.

2) Get free training and help. Need a little help? We’ll tell you everything you need to know. From free resources and best practices for talking about Net Neutrality to nuts and bolts logistics and organizing. The free and open online training begins Monday, Aug 4th. All are welcome, no experience necessary.You’ll leave the training armed with everything you need to host your own local teach-in. Or just better explain the issue to friends and family.

3) Use our new Net Neutrality toolkit. Our new Net Neutrality teaching kit makes it easy for educators and activists to explain the issue and empower others. We’re gathering lots more resources here.

4) Spread the word. Here are some example tweets you can use:

  • I’m on #TeamInternet! That’s why I’m joining @Mozilla’s global teach-in on Net Neutrality. http://mzl.la/globalteachin #teachtheweb
  • Join @Mozilla’s global teach-in on Net Neutrality. Let’s educate, empower, organize and win. #TeamInternet http://mzl.la/globalteachin #teachtheweb
  • The internet is under attack. Join @Mozilla’s global teach-in to preserve Net Neutrality. #TeamInternet http://mzl.la/globalteachin #teachtheweb

The Mozilla BlogChris Beard Named CEO of Mozilla

I am pleased to announce that Chris Beard has been appointed CEO of Mozilla Corp. The Mozilla board has reviewed many internal and external candidates – and no one we met was a better fit. As you will recall, Chris … Continue reading

WebmakerJoin Mozilla for global teach-ins on Net Neutrality

At Mozilla, we exist to protect the free and open web. Today, that openness and freedom is under threat.

The open Internet’s founding principle is under attack. Policymakers in the U.S. are considering rules that would erase “Net Neutrality,” the principle that all data on the Internet should be treated equally. If these rule changes go through, many fear it will create a “two-tier” Internet, where monopolies are able to charge huge fees for special “fast lanes” while everyone else gets the slow lane. This would threaten the very openness, level playing field and innovation that make the web great — not only in the U.S., but around the world.

Using the open web to save the open web

This is a crucial moment that will affect the open web’s future. But not enough people know about it or understand what’s at stake. Net Neutrality’s opponents are banking on the fact that Net Neutrality is so “geeky,” complex, and hard to explain that people just won’t care. That’s why Mozilla is inviting you to join us and other Internet Freedom organizations to educate, empower, organize and win.

Local “teach-ins” around the world…

Join the global Mozilla community and our partners to host a series of Internet Freedom “teach-ins” around the world. Beginning Aug 4th, we’re offering free training to help empower local organizers, activists and people like you. Together we’ll share best practices for explaining what Net Neutrality is, why it matters to your local community, and how we can protect it together. Then we’ll help local organizers like you host local events and teach-ins around the world, sharing tools and increasing our impact together.

…plus global action

In addition to increasing awareness of the importance of Net Neutrality, the teach-ins will also allow participants to have an impact by taking immediate action. Imagine hundreds of videos in support of #TeamInternet and Net Neutrality, thousands of letters to the editor, and thousands of new signatures on Mozilla’s petition.

We’ll be joined by partners like Reddit, Free Press, Open Media, IMLS / ALA, Media Alliance Every Library and Engine Advocacy.

Get involved

1) Host an event. Ready to get started? Host a local meet-up or teach-in on Net Neutrality in your community. Our Maker Party event guides and platform make it easy. We even have a special guide for a 1 hour Net Neutrality Maker Party.

2) Get free training and help. Need a little help? We’ll tell you everything you need to know. From free resources and best practices for talking about Net Neutrality to nuts and bolts logistics and organizing. The free and open online training begins Monday, Aug 4th. All are welcome, no experience necessary.You’ll leave the training armed with everything you need to host your own local teach-in. Or just better explain the issue to friends and family.

3) Use our new Net Neutrality toolkit. Our new Net Neutrality teaching kit makes it easy for educators and activists to explain the issue and empower others. We’re gathering lots more resources here.

4) Spread the word. Here are some example tweets you can use:

  • I’m on #TeamInternet! That’s why I’m joining @Mozilla’s global teach-in on Net Neutrality. http://mzl.la/globalteachin #teachtheweb
  • Join @Mozilla’s global teach-in on Net Neutrality. Let’s educate, empower, organize and win. #TeamInternet http://mzl.la/globalteachin #teachtheweb
  • The internet is under attack. Join @Mozilla’s global teach-in to preserve Net Neutrality. #TeamInternet http://mzl.la/globalteachin #teachtheweb

Software CarpentryFeedback from Cranfield

On 21-23 July, EPCC's ARCHER training team visited a sun-drenched Cranfield University to run a Software Carpentry bootcamp and Introduction to Scientific Programming in Python. The 3 days combined a traditional bootcamp with a new day course providing an Introduction to Scientific Programming in Python.

We covered shell hints and tips, version control and Git, and end-to-end and unit testing in Python. Our Introduction to Scientific Programming in Python included NumPy, SciPy, matplotlib, Cython and mpi4py, using a computational fluid dynamics code as an example.

We had 28 attendees, mostly from Cranfield itself, with few attendees from further afield including Heriot Watt, Queen Mary University of London, Greenwich, Sheffield, the National Oceanography Centre and even Berkeley. And, as is traditional on bootcamps, we gathered feedback on the good points and bad points of the bootcamp:

Good points Bad points
Shell refresher and version control Shell refresher was on too introductory level - might be expanded with frequently used tools like grep or sed etc.
Git (for version control)
Good coverage of Git including the use of remote repositories
Revision control with Git = :-)
The use of Git was really interesting
Enjoyed "make" in the first day very much Would like more basic introduction to Make
Make
Make
Makefiles
Give a good overview of the possibilities of using Python and Bash shells Basics of Python (as well as more complex features) could have been covered
Introduction to Python was exactly what I was looking for numpy terminology = :-(
Increased my knowledge of Python!! Exercise on day 2 [Python] lost me a little
Especially liked interfacing Python with Fortran/C The second day's Python session could be made easier to follow
The course presented the potential of Python and some of its libraries (especially numpy and matplotlib) and it might be useful for my research Perhaps use an easier example than CFD
Matplotlib for LaTeX - making combined *.eps and *.tex is easy in gnuplot - I can't find how to do it in Python
This material needs to explain slice syntax visually
Unit testing Testing very specific to example, difficult to link it in to practical use
Test driven development More test cases would be beneficial to feel more comfortable with the most important commands
Intro to unit testing especially valuable for me
Software installation aspects/issues
The use of different operating systems in the lectures made the process a bit difficult
The preparation of uni desktop PC with all the libraries would have been useful
The general pace was very reasonable Pace a little fast for beginners
Well-presented at a good pace Pace of teaching too fast sometimes
The follow-along-with-me style of teaching works well for this material Sometimes it was going fast
Step-by-step walkthrough and EtherPad Sometimes went a bit too fast
Pace was slightly too fast
Python day felt a little rushed in lecture segments
Assistants are around to guide Should use microphone
Teachers are very approachable and explained code very well
Everyone really helpful and friendly
The lecturers: prepared, available and patient
The demonstrators were easy to talk to and gave clear explanations
Teaching room was too hot at first
Lack of air conditioning on days 1 + 2
Hot room on Monday and Tuesday
Heat!
Air con
Organisation of the course Programming practice instructions could be clearer
Course content Easier examples with step-by-step instructions, before the main example
Presentations Examples should be more relevant to industry use
Practical exercise The contents are general and not enough practical examples were provided
A lot of useful links Crib sheet of commands
It's really useful
Great intro to tools required for open science
This wisdom should be given to every PhD student on day 1!!
Very clear material
Free training The location is probably not convenient for people not from Cranfield Uni

As an instructor, asides from my low tolerance to extreme heat, the main challenge was screen real estate - and a tension between font size and what is visible at any time. As a result, attendees sometimes missed what I was typing at my command prompt as I'd switch to my editor. In later sessions, I tried to paste everything to the EtherPad as I went, which both gave time for attendees to catch up and helped me not go so fast!

Due to the unexpectedly heat of our room, our local hosts, Mark Stillwell and Robert Sawko, did a great job in getting us another room for some of our sessions, and we relocated to the cooler climes of the second when it was free.

ARCHER's training team will be running more bootcamps in the coming months, and members of our team will be attending the Software Carpentry: Instructor Training at TGAC this October. We look forward to reporting on our experiences.

WoMozAdacamp in Berlin and Bangalore

Mozilla is a Gold Sponsor of AdaCamp, “the world’s only conference dedicated to increasing gender diversity in open source software, open data, and similar areas of open technology and culture.” AdaCamp will be hosting events in Berlin (11-12 October 2014), and Bangalore (29-30 November 2014). As Gold Sponsor, Mozilla receives reserved tickets for qualified attendees. Applications to attend AdaCamp are now open. Look forward to a continued strong presence from Mozillians.

http://adainitiative.org/2014/07/applications-open-for-adacamp-berlin-and-adacamp-bangalore

Air MozillaOptimization Coaching for SpiderMonkey

Optimization Coaching for SpiderMonkey Presentation from Mozilla's 2014 Interns: Connor Brem, "Developing for Developers for Developers" Anhad Jai Singh, "Firefox and its Updates" Hayden Demerson, "But… It's not ready!" Vincent St-Amour, "Optimization Coaching for SpiderMonkey"

Air MozillaDeveloping for Developers for Developers

Developing for Developers for Developers Presentation from Mozilla's 2014 Interns: Connor Brem, "Developing for Developers for Developers" Anhad Jai Singh, "Firefox and its Updates" Hayden Demerson, "But… It's not ready!" Vincent St-Amour, "Optimization Coaching for SpiderMonkey"

Air MozillaFirefox and its Updates

Firefox and its Updates Presentation from Mozilla's 2014 Interns: Connor Brem, "Developing for Developers for Developers" Anhad Jai Singh, "Firefox and its Updates" Hayden Demerson, "But… It's not ready!" Vincent St-Amour, "Optimization Coaching for SpiderMonkey"

Air MozillaBut... It's not ready!

But... It's not ready! Presentation from Mozilla's 2014 Interns: Connor Brem, "Developing for Developers for Developers" Anhad Jai Singh, "Firefox and its Updates" Hayden Demerson, "But… It's not ready!" Vincent St-Amour, "Optimization Coaching for SpiderMonkey"

WebmakerUganda, Cape Town, India and more: A Maker Party event roundup

Every week, people all over the world are throwing events in their communities to celebrate Maker Party 2014. We will be showcasing many of those events and the cool things people are making right here on this blog, so check back every week!

14664630225_8e43a687be_b

Presenters at Mozfest East Africa in Uganda

Here’s what happened last week:

Mozfest East AfricaJuly 11-13th, Uganda
Maker Party kicked-off with a bang with this first of its kind event in Kampala where over 300 individuals from schools, colleges, universities gathered to learn about the web. Read more in this blog post from Mark Surman or in this Maker Party kick-off press. See pictures from the event here.

Code for Cape Town Maker PartyJuly 14-18th, Cape Town
Participants of the Code4CT camp participated in a Maker Party where they brought a friend and taught them basic HTML using Codecademy, Made with Code and Webmaker resources. Read more on the blog or in this post by the School of Open and check out their awesome teaching kit filled with many different webmaking activities. See pictures from the event here.

Maker Party in my homeJuly 15th, India
In honor of the launch, Meraj planned a last minute party in his house with some youth in the community. He taught them the principles of online etiquette including how to protect your personal information, being safe on e-mail and proper ways to communicate with each other online. You can read more in his blog or take a look at this story make. See pictures from this event here.

Maker Party Kick-offs in Mozilla SpacesJuly 17th, Around The World
To celebrate Maker Party, staff from Mozilla locations around the world gathered and completed hands-on activities while learning about Appmaker. You can watch the livestream introduction of Appmaker from Toronto here. Check out this awesome event recap and pictures from San Francisco. Also view pictures from Taipei, Vancouver, and Toronto.

New York City Summer Quest Maker PartyJuly 17-18th, NYC
Students of the New York City Summer Quest Program learned how to create digital tools and new technology from the 15 local organizations who were involved in this two-day hands-on learning experience. You can see the event in this coverage from Bronx local news  or read more about the organizations present here. See pictures from The LAMP here.

Maker ExpressJuly 19th, India
Bala organized Maker Express to share his learning of the open web and how to use tools to make on the web with his community. His blog post can be read here and many great pictures here.

MozBelajar Maker PartyJuly 20th, Indonesia
A full-day session for individuals in Indonesia where they learned how to hack the web with Webmaker tools. You can see a quick glimpse of the event here.

Maker Party Hyderabad in India

Maker Party Hyderabad in India.

Maker Party HyderabadJuly 20th, India
Attendees in this event managed to make 300 makes in less than 3 hours! It’s no surprise that this event had a packed room and was a hit!

MAKES

RESOURCES

  • You may have seen others already using it, but be sure to tell us how your event went with this great new report back.
  • Are you in Latin America? There are some great new translated resources available for you this Maker Party.
  • Have questions or want to talk to others in the community, be sure to jump into Discourse.

IN THE NEWS

Get Involved:

WebmakerMaker Party 2014 kick-off events

Last week, Mozilla kicked off Maker Party in style with events around the world that featured hands-on making, learning, collaboration and of course fun!

Mozillians in 13 Mozilla spaces around the world came together to celebrate teaching and learning with special kick-off events. At each office individuals participated in Appmaker sessions where they saw demo’s of the newly launched Appmaker product, as well as a real-time tutorials on how to modify an app to create your own songs. You can watch the live-stream from the Appmaker session in Toronto below!

Each space also received a custom designed 1000-piece Maker Party jigsaw puzzle which was a resounding success, and sparked fierce competition between the offices as each group battled to complete their puzzles in the shortest time possible. It’s great to remind the community that Maker Party events are meant to be hands-on, interactive, collaborative and learning about the web can even happen offline. Working together on a puzzle like below or solving HTML puzzles are the stepping stones to understanding how the web works.

completepuzzle

Each office put their own spin on the events and made them their own to successfully show Mozillians around the world how fun and rewarding it is to throw a Maker Party. Special thanks to our hosts and teachers around the world who were able to make it happen.

If you want a closer look at the Maker Party kick-off events in the Mozilla spaces check out below and click on the images to be taken to more photos.

London:

IMAG3547
Brooklyn:
BrooklynMP
Maker Party Toronto
Maker Party Vancouver

Click this image to hear the song app they made in Mountain View!

MVapp
Berlin:

Berlin
ParisLaunch

InstantbirdLinux nightly builds back!

Back in March, we posted that we had started building nightly builds from mozilla-central/comm-central, but because the version of CentOS we had been using was too old, we were unable to continue providing Linux nightly builds. That has now changed and (as of today) we have both 32-bit and 64-bit Linux nightlies! Since this involved us installing a new operating system (CentOS 6.2) and tweaking some of the build configuration for Linux, please let us know if you see any issues! Additionally, some more up-to-date features that have been available in Mozilla Firefox for a while should now be available in Instantbird (e.g. dbus and pulse audio support) and even some minor bugs were fixed!

Sorry that this took so long, but go grab your updated copy now!

QMOFirefox Hub Add-ons for Firefox for Android

            Firefox for Android focuses on turning the browser’s homepage into a platform called Firefox Hub, a project to make your home page more customizable and extensible. At its core, this feature is a set of new APIs that allows add-ons to add new content to the Firefox for Android home page. As you may know, the home screen of the browser displays by default top sites, history, bookmarks and the reading list. After installing the add-ons, a new panel will be added to home page, near the default ones. To access a panel, swipe to the left or right after opening a new tab. If you ever want to make changes to these or other home page panels, you can do so in Settings, in the Customize / Home section. You can remove the panel added, by using the remove option which is present only for the dynamic panels, while the other default ones have the “Hide” option. Also you can decide which panel to be your default one, or change their order in about:home. It is possible to hide existing panels, for instance the reading list or history if you do not want it to appear on the home screen, or to hide all four default panels to only display custom feeds or a single feed instead.

Pocket Panel

Pocket Panel

            To install the add-on, you have to go to the Pocket Panel AMO Page. From the add-on management screen, after tapping the OPTIONS  check-box “Log in”, the “Log in to Pocket” page appears and the user can log in with his credentials. Also log out can be done through the Firefox add-on management screen. Now, Pocket panel access your Pocket reading list from Firefox for Android. This add-on adds your Pocket reading list feed to your home page and opens them in reader mode.

 Instagram Panel

Instagram Panel

             After installing the add-on from the Instagram Panel AMO Page, the new panel will be added to homepage, containing feeds of popular instagram photos. After you log in, you can see your own feeds. Also log-out can be done through the add-on management screen.

 Vimeo panel

Vimeo Panel

             After installing the add-on, a new panel will be added to homepage and clicking on an item opens the video on Vimeo’s website. You can find it available on the AMO Page.

 Wikipedia Panel

Wikipedia Panel

             To install the add-on, you have to go to Wikipedia AMO Page. After this, you can use the add-on options from the add-on management screen  to choose different feeds: choosing “Picture of the day” option, wikipedia panel will display feeds for different dates, containing the picture of that day,  choosing “Featured” option, the panel will have feeds for different dates, containing the featured article, choosing “On this day” option, the panel from about:home will have feeds for different dates, containing all important things that happened in that day and last choosing the “Nearby” option, the panel will have feeds containing the places near your current location.

 Cat Facts Panel

Cat Facts Panel

              Cat Facts Panel installed from the AMO Page adds a new panel to your homepage, containing facts about cats.

 Goal.com Panel

Goal.com Panel

          After you install the add-on from the Goal.com Panel AMO Page, you can choose your country edition from the pop-up dialog “Welcome to your Goal.com panel!”. Also this can be done through add-on management screen. Now you can get the latest football news from Goal.com on your Firefox for Android homescreen. This add-on provides breaking news directly from Goal.com so you can keep up with the football competitions, teams and players that matter to you.

Home Feeds Panel

Home Feed Panel

            Now you can subscribe to your favorite websites and have their news feeds show up right on your Firefox home page, installing the add-on “Home Feeds” from the AMO Page. To add a feed, simply tap the RSS icon when it appears in the title bar. A click on the icon opens a dialog to add it to one of the supported applications and services. Here you need to select Firefox homepage to add it as a panel to the about:home page of the browser. Once done, you can access feed items directly from there whenever you open it.

                   If you want to see the developer’s perspective, Margaret Leibovic wrote an article about building

Firefox Hub Add-ons for Firefox for Android available on MDN.     

                  Here are the open source add-ons that use these hub APIs:

           As usual, you can join us on our  IRC channel, I’ll be pleased to help you up with testing Firefox Hub and to hear your feedback about the experience you encountered.

QMOTestday Project Meeting – July 24, 2014

We spent the bulk of today’s meeting going over our plans for the QA work week. At a high-level we want to walk away from the work week with a set of tasks that can be accomplished within the next couple of months by members of the community. You’ll find more detailed notes here.

Our next meeting will be Thursday, August 7 at 9:00am PDT as we’ll all be at a work week next week. If you are unable to attend, please contribute discussion items to our etherpad so we can follow them up.

The Bugzilla UpdateRelease of Bugzilla 4.0.14, 4.2.10, 4.4.5, and 4.5.5

Today we have several new releases for you!

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

Bugzilla 4.4.5 is our latest stable release and contains a security fix.

Bugzilla 4.2.10 is a security update for the 4.2 branch:

Bugzilla 4.0.14 is a security update for the 4.0 branch:

Bugzilla 4.5.5 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.


about:communityWhy Do People Join and Stay Part Of a Community (and How to Support Them)

[This post is inspired by notes from a talk by Douglas Atkin (currently at AirBnB) about his work with cults, brands and community.]

We all go through life feeling like we are different. When you find people that are different the same way you are, that’s when you decide to join.

As humans, we each have a unique self narrative: “we tell ourselves a story about who we are, what others are like, how the world works, and therefore how one does (or does not) belong in order to maximize self.” We join a community to become more of ourselves – to exist in a place where we feel we don’t have to self-edit as much to fit in.

A community must have a clear ideology – a set of beliefs about what it stands for – a vision of the world as it should be rather than how it is, that aligns with what we believe. Communities form around certain ways of thinking first, not around products. At Mozilla, this is often called “the web we want” or ‘the web as it should be.’

When joining a community people ask two questions: 1) Are they like me? and 2) Will they like me? The answer to these two fundamental human questions determine whether a person will become and stay part of a community. In designing a community it is important to support potential members in answering these questions – be clear about what you stand for and make people feel welcome. The welcoming portion requires extra work in the beginning to ensure that a new member forms relationships with people in the community. These relationships keep people part of a community. For example, I don’t go to a book club purely for the book, I go for my friends Jake and Michelle. Initially, the idea of a book club attracted me but as I became friends with Jake and Michelle, that friendship continually motivated me to show up. This is important because as the daily challenges of life show up, social bonds become our places of belonging where we can recharge.

Source: Douglas Atkin, The Glue Projecy

Source: Douglas Atkin, The Glue Project

These social ties must be mixed with doing significant stuff together. In designing how community members participate, a very helpful tool is the community commitment curve. This curve describes how a new member can invest in low barrier, easy tasks that build commitment momentum so the member can perform more challenging tasks and take on more responsibility. For example, you would not ask a new member to spend 12 hours setting up a development environment just to make their first contribution. This ask is too much for a new person because they are still trying to figure out ‘are the like me?’ and ‘will they like me?’ In addition, their sense of contribution momentum has not been built – 12 hours is a lot when your previous task is 0 but 12 is not so much when your previous was 10.

The community commitment curve is a powerful tool for community builders because it forces you to design the small steps new members can take to get involved and shows structure to how members take on more complex tasks/roles – it takes some of the mystery out! As new members invest small amounts of time, their commitment grows, which encourages them to invest larger amounts of time, continually growing both time and commitment, creating a fulfilling experience for the community and the member. I made a template for you to hack your own community commitment curve.

Social ties combined with a well designed commitment curve, for a clearly defined purpose, is powerful combination in supporting a community.

[Post originally appeared on Sean Bolton's blog.]

Air MozillaFIDO Universal 2nd Factor (U2F)

FIDO Universal 2nd Factor (U2F) Strong in-the-browser authentication for the mass market

hacks.mozilla.orgBuilding Firefox Hub Add-ons for Firefox for Android

The Firefox Hub APIs allow add-ons to add new panels to the Firefox for Android home page, where users normally find their top sites, bookmarks and history. These APIs were introduced in Firefox 30, but there are more features and bug fixes in Firefox 31 and 32. You can already find some of these add-ons on addons.mozilla.org, and there is some boilerplate code on github to help you get started.

image01
image00

Overview

There are two main parts to building a Firefox Hub add-on: creating a home panel, and storing data to show in that panel. Home panels consist of different views, each of which displays data from a given dataset.

Creating a new home panel

To create a home panel, first use the Home.panels API to register a panel. The register API takes a panel id and an options callback function as parameters. This options callback is called to dynamically generate an options object whenever a panel is installed or updated, which allows for dynamic locale changes.

function optionsCallback() {
  return {
    title: "My Panel",
    views: [{
      type: Home.panels.View.LIST,
      dataset: "my.dataset@mydomain.org"
    }]
  };
}
 
Home.panels.register("my.panel@mydomain.org", optionsCallback);

You must always register any existing panels on startup, but the first time you want the panel to actually appear on the user’s home page (e.g. when your add-on is installed), you also need to explicitly install the panel.

Home.panels.install("my.panel@mydomain.org");

You can modify the options callback function to customize the way data is displayed in your panel. For example, you can choose to display your data in a grid or a list, customize the view that is displayed when no data is available, or choose to launch an intent when the user taps on one of the items.

Storing data for the panel

To actually show something in your new home panel, use the HomeProvider API to store data. This API allows you to asynchronously save and delete data, as well as register a callback to allow the browser to periodically sync your data for you.

The HomeProvider API gives you access to HomeStorage objects, which you can interact with to save and delete data from a given dataset. These methods are designed to be used with Task.jsm to execute asynchronous transactions within a task.

let storage = HomeProvider.getStorage("my.dataset@mydomain.org");
Task.spawn(function() {
  yield storage.save(items);
}).then(null, Cu.reportError);

In Firefox 31, we expanded the save API to support replacing existing data for you, which is convenient for periodically refreshing your dataset.

function refreshDataset() {
  let items = fetchItems();
  Task.spawn(function() {
        yield storage.save(items, { replace: true });
  }).then(null, Cu.reportError);
}
 
HomeProvider.addPeriodicSync("my.dataset@mydomain.org", 3600, 
refreshDataset);

This code snippet will ensure that our dataset is refreshed once every 3600 seconds (1 hour).

What’s new in Firefox 32 Beta

In addition to bug fixes, Firefox 32 also adds a few more features to the set of Firefox Hub APIs.

Refresh handler

In addition to support for periodically updating data, we also added support for “pull to refresh”, which gives users the power to manually refresh panel data. To take advantage of this feature, you can add an onrefresh property to your view declaration.

function optionsCallback() {
  return {
    title: "My Panel",
    views: [{
      type: Home.panels.View.LIST,
      dataset: "my.dataset@mydomain.org",
      onrefresh: refreshDataset
    }]
  };
}

With this new line added, swiping down on your panel will trigger a refresh indicator and call the refreshDataset function. The refresh indicator will disappear after a save call is made for that dataset.

Authentication view

We added support for an authentication view, to make it easier for your add-on to use data that requires authentication. This view includes space for text and an image, as well as a button that triggers an authentication flow. To use this feature, you can add an auth property to your panel declaration.

function optionsCallback() {
  return {
    title: "My Panel",
    views: [{
      type: Home.panels.View.LIST,
      dataset: "my.dataset@mydomain.org"
    }],
    auth: {
     authenticate: function authenticate() {
        // … do some stuff to authenticate the user …
       Home.panels.setAuthenticated("my.panel@mydomain.org", true);
     },
     messageText: "Please log in to see your data",
     buttonText: "Log in"
   }
  };
}

By default, the authentication view will appear when your panel is first installed, and the authenticate function will be called when the user taps the button in the view. It is up to you to call setAuthenticated(true) when the user successfully completes an authentication flow, and you can also call setAuthenticated(false) when a user becomes unauthenticated. This authentication state will persist between app runs, so it is up to you to reset it if you need to.

Future work

We have ideas about ways to expand these APIs, but please let us know if there is anything you would like to see! We’re also always looking for new contributors to Firefox for Android, and we’d love to help you get started writing patches.

QMOFirefox 32 Beta 2 Testday, July 31st

Greetings mozillians,

We are happy to announce that Thursday,  July 31st, we’re going to hold the Firefox 32.0 Beta 2 Testday. We will be testing the latest Beta build, with focus on Games, Apps and New Features. As always, detailed instructions on how to get involved can be found in this etherpad.

No previous testing experience is required so feel free to join via #testday IRC channel and our moderators will offer you guidance and answer your questions.

Join us next Thursday and let’s make Firefox better!

When: July 31, 2014.

Meeting NotesMobile: 2014-07-23

Schedule

  • Next merge: 2014-09-01

Topics for This Week

UI Telemetry on Release
We’ll be watching for some new trends

Split APKs
Looking to split our APKs up to reduce size.

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.

  • Bryan Kok (transfusion) helped localize a generated string deep in Android Sync land: bug 1019719

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>

  • Continued work on making Janus work with http2

    • several changes to node-http2 up for review
  • Work on adding profiler labels to GLContext functions
  • Talked to nalexander about the myriad of problems with GeckoView, thought about possible ways forward.

Alan K. (ack)

  • Still doing cleanup work to land proof-of-concept cloudsync patch

  • Initial UI for mesh networking is done (nothing big)

JChen

<Read Only>

Fixed
Working on

GCP

Fixed
Working on
  • bug 1042768 WebRTC code is leaking an OpenSLES handle

  • bug 1042525 Latest Gecko does not build without-X
  • Reviewing rbarker’s stuff

Randall Barker

  • Last Week: Worked to fix issues in tab mirroring to standalone WebRTC caused by rebase. Roku build is currently busted due to changes in WebRTC library. Worked on supporting tab mirroring to Roku. Waiting on casting mirroring to land.

  • This Week: PTO on Thursday. Fix Roku build. Continue to try and get standalone WebRTC landed.

Eugen Sawin

Past
Present & Future
  • Janus Proxy

    • Update metrics dashboard to support latest additions

    • Cache improvements

Sylvain Cleymans

Last week:

  • Updated mozjpeg module

  • Added a module to resolve shortened urls
  • Nearly done with Marionette tests

Next week:

  • More page load tests

Martin (mmcdonough)

Last Week
  • Packaged MediaCodec PDM demo APK and created experimental patch

  • Began making MediaExtractor MediaDecoderReader
This Week
  • Continue working on MediaExtractor MediaDecoderReader

Brian Nicholson

<Read Only>

  • bug 854305 – URL bar treats single-word input as a URL, not as a search keyword

  • bug 967325 – Implement sendRequestToGecko for async Gecko requests
  • WIP tests for bug 967325
  • PTO next week

WesJ

  • Landed bug 1001309 – Provide a way to clear history when Fennec’s put into the background before the merge.

  • bug 940453 – [meta] Improve the UX for error pages
  • Got the ability to upload to releng servers. Trying to work through some problems bug 1016529 – Updated android builders to include google play services and android support v7 if it isn’t already included)
  • Updated Notifications.jsm documentation
  • bug 815682 – Lock screen widget/shortcut for Guest Sessions on Android 4.2 and above

LucasR

Last week

  • New tablet UI

    • Exploratory prototype (with some real plumbing) for the new tablet UI

    • New RecyclerView-based API for TwoWayView to enable us to easily implementation animations in tabs tray, the upcoming tab strip, as well as magazine-like layouts for Hub, among other things: https://github.com/lucasr/twoway-view/
  • Toolbar refinements (see screenshot)
    • bug 1010740 – Change entry asset and tweak padding

    • bug 1010741 – Show search icon and change text hint in about:home
    • bug 1010739 – Change curve shape to be consistent with Australis
  • bug 1012462 – Support suggested sites in distribution files
  • bug 1039471 – crash in java.lang.IllegalStateException: Fragment RecentTabsPanel{422715c0} not attached to Activity at android.support.v4.app.Fragment.getLoaderManager(Fragment.java)

Next week

  • Finalize tablet UI prototype, work on the initial core refactorings

  • Land toolbar refinements

liuche

<Read Only>

Margaret

Highlights
  • Search activity hacking with eedens

  • Wrote a post about Firefox Hub for hacks.mozilla.org (will be published tomorrow – tweet about it when it comes out!)
Fixed
Working on

eedens

Past
Present

mcomella

<Read Only>

Past
Present

RNewman

  • Reworking FatFennec bug tree.

  • APK splitting research and work.
  • Reviewing cloudsync.
  • Share overlay UI meeting kickoff.
  • Amazon APK investigation.
  • Meetings and bugs.
Fixed
Working on

nalexander

<Read Only>
Away July 23 through August 12.

BLassey

  • tab mirroring

    • {{bug|1037015} support tab casting to chromecast

    • {bug|1037389} – add support for sourceId in gUM constraints
    • {bug|1037488} – MediaEngineTabVideoSource should set width, height and framerate based on constraints and prefs passed to Allocate()
    • {bug|1037644} – don’t use mozAfterPaint events to drive tab stream
    • {bug|1041493} – add support for “browser” to mediaSource constraint
    • {bug|1041700} – add browserArgs to gUM constraints

Anthony Lam

  • Last week

    • SF for Search
  • Next up
    • Move forward with UI/UX on Search

    • “Contextual hints” bugs follow up
    • Mobile tool bar UI/UX with Lucas
    • Tablet UI/UX work
    • General bugs follow up

Yuan Wang

  • Onboarding workshop in SF, top voted ideas: http://tinyurl.com/omm7g69

  • Continue discussions with ckitching and rnewman on Share/Send to Firefox. Concepts coming on Thursday
  • Launcher and lock screen study report

WebRT

  • landed support for multiple apps per origin in DOM bug 778277 and Fennec bug 778279

  • uplifted bug 1003962 – Line Runner hangs on launch with white screen
  • looking into bug 918309 – Import and use public domain JNI.jsm implementation
Cogito ergo rococo…
  • bug 1003962 – Line Runner hangs on launch with white screen – uplifted

  • bug 997717 – Errors during package download aren’t handled correctly – fixed
  • bug 778279 – Add support of installing of multiple apps off of the same origin for the android web runtime – fixed
  • bug 1029691 – Manifest not being checked on APK installation – patch has review; needs updating
  • bug 1009954 – implement unit tests for WebappManager – patch needs updating
  • bug 986085 – User-hand-holding to check the Unknown Sources checkbox – patch needs updating
  • bug 878830 – Unable to install any form of web application on the Samsung Galaxy SIV – jhugman to get device
  • bug 1021395 – Web app machinery dumps lots of semi-sensitive data to logcat – blocked on bug 1032936
  • bug 960584 – notify user of download progress indication when fetching APK – blocked on bug 1029691
  • bug 960703 – Manifest icon not used for synthesized APK in Android 2.3 – needs info from jhugman
  • bug 1035999 – Multiple prompts (notifications) about available app updates – under investigation
  • bug 1033430 – “Jump to the Stars” launches to a white screen on Nightly (33.0a1) – under investigation
  • bug 1026263 – Error writing default prefs during packaged web app installation – stalled

QA

  • QA Release Test-Plans

  • crash rate comparison Fx 30 vs Fx 31. First day crash rate is 1.60/100 ADI. This will come down a little bit but is up vs 30 which was 1.15.
  • Should we use the 31b11 ARMv6 and 2.2 ARMv7 users to test an 31 eol build?

Feature Focus

Firefox 31 (SHIPPED!) – Released: Jul 22, 2014

Firefox 32 (Beta) – Release: Sep 2, 2014

Firefox 33 (Aurora) – Release: Oct 14, 2014

Firefox 34 (Nightly) – Release: Nov 25, 2014

  • [PROPOSED] Search activity v1

  • [PROPOSED] Moz Stumbler
  • [PROPOSED] Share handler overlay
  • [PROPOSED] Form auto-fill improvements, native client-side work
  • [PROPOSED] Reflow on zoom (double tap) by default
  • [PROPOSED] Kindle-related fixes
  • [PROPOSED] Hub add-on: speed-dial panel
  • [PROPOSED] First-run tips
  • [PROPOSED] Preferred web content language
  • [PROPOSED] Tablets: tabbed browsing refresh v1
  • [PROPOSED] Suggested sites v3

Details

  • 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-07-23

Schedule & Progress onUpcoming Releases (Lukas/Sylvestre/Lawrence)

Firefox Desktop & Platform (Javaun/Chad/Martin)

Summary of Work In Progress
  • You can find the most recently completed iteration performance report here

  • You can see the status of the current iteration in progress here
Uplifts
Beta
  • None for the past week
Aurora
  • exception on shutdown: “Exception calling provider shutdown”, NS_ERROR_FAILURE from nsIObserverService.removeObserver from PreviousExperimentProvider.shutdown ( 1012466 Bug 1012466 )

  • Add UTM parameters to plugincheck URL in Firefox ( 1022745 Bug 1022745 )
  • Make the ‘Translations by’ string localizable ( 1032139 Bug 1032139 )
  • Measure number of times infobar is hidden due to “Never translate this language/site” ( 1035337 Bug 1035337 )
  • about:sessionrestore shows instead of about:welcomeback after a reset ( 1035557 Bug 1035557 )
Recent Landings
  • Team landed 45 bugs over the last week (total of 89 for the 2-week iteration just ended)

  • Details of landings from the past week can be seen here

Firefox Mobile (Mark/Brad/Jenn)

Work In Progress

You can find more on upcoming feature plans in the[roadmap]

Uplifts from the past week
Beta (prior to merge)
Aurora (prior to merge)
  • crash in java.lang.NullPointerException: at org.mozilla.gecko.toolbar.ToolbarDisplayLayout.updateFromTab(ToolbarDisplayLayout.java) ( 964861 Bug 964861 )

  • Bump minSdkVersion to 9 ( 1017244 Bug 1017244 )
  • [Android L Preview] – Crash on startup – java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “issetugid” referenced by “libmozglue.so”… ( 1030899 Bug 1030899 )
  • TwoWayView crashes in Android L ( 1034167 Bug 1034167 )
  • Regression: Contact API usage is being prompt on webpages ( 1037128 Bug 1037128 )
Landings from the past week
Nightly (prior to merge)
  • URL bar treats single-word input as a URL, not as a search keyword ( 854305 Bug 854305 )

  • In about:apps, lost the ability to invoke a context menu on an installed application ( 965176 Bug 965176 )
  • Tapping on a download notification doesn’t do anything (if Firefox is in the background) ( 1004495 Bug 1004495 )
  • Support suggested sites in distribution files ( 1012462 Bug 1012462 )
  • use msapplication-TileImage and msapplication-TileColor to create home page tiles ( 1014712 Bug 1014712 )
  • Bundled locale specific search engines not loaded until next browser restart ( 1018240 Bug 1018240 )
  • Page is displayed blank after choosing the “Show” popup option ( 1024391 Bug 1024391 )
  • Kindle Fire: activity and fragment transitions are obtrusive and uncomfortable ( 1031872 Bug 1031872 )
  • URL home screen shortcut is not working ( 1032217 Bug 1032217 )
  • Opening a tab from Recent Tabs panel doesn’t work in private browsing ( 1035439 Bug 1035439 )
  • Add-ons can not be installed; ‘Installation failed’ toast notification is displayed ( 1038098 Bug 1038098 )
  • Add-ons can not be installed in private and guest browsing ( 1038573 Bug 1038573 )
  • Regression: After closing all tabs, tabs tray dotted menu can not be accessed again ( 1038798 Bug 1038798 )
  • Remote tabs tray distorted on phone ( 1039062 Bug 1039062)
  • crash in java.lang.IllegalStateException: Fragment RecentTabsPanel{422715c0} not attached to Activity at android.support.v4.app.Fragment.getLoaderManager(Fragment.java) (Bug 1039471)
  • Private tabs list is cut off for portait orientation (Bug 1039738)

Developer Tools (Jeff/Rob/Dave)

<Read Only>

Feedback Summary (Cheng/Tyler/Matt)

Desktop

Firefox 30: Sentiment report was sent out this morning, please contact the User Advocacy team if you have questions

Firefox 31: No issues that we’ve seen so far, still watching feedback.

Firefox Updates Hotfix: Has been live for around a week, initial results have been published at https://mail.mozilla.org/pipermail/firefox-dev/2014-July/001997.html

Quick Summary:
Over 4.5 million users have installed the add-on
Around half of them have updated (Over 2 million users)
We are investigating success of the Notification popup
We will be digging into FHR, ADI, SUMO and Add-on numbers this week to get more detailed answers.
V2 of the add-on is already underway, fix the bugs in v1, add support for Mac, etc. Bug 1040228
We will be investigating other ways to continue this effort in the future.

Market Insights from the Strategy & Insights Team (Kev)

Note: Kev will be on PTO July 28 through Aug 8, so will miss the Jul 29 and Aug 5th calls. No one will be taking his place. He apologizes for this, and his use of the third person.

Something to Think About

Xiaomi released it’s Mi4 flagship phone this week for $320-400. The news isn’t really about the Mi4 – although it’s a nice looking phone – it’s around how Android handset prices are continuing to see downward pressure. $300-400 is the new sweet spot for super phones. It’s eating into the profit margins of organizations like Samsung (draw parallels to Sony as you see fit), and making a whole lot of power even more accessible for Android users. We’re seeing continued interest in Chromebooks (more below), and Microsoft is working with partners to introduce lower-cost hardware into the same space.
Why we should care: We consistently see metrics that more than 2/3 of buyers will spend more than $150 on their phone. The downward push on prices for hardware that continues to grow in capability and performance means even more people will be able to take advantage of a full-featured web on (what is usually) their primary communications and computing platform. This pricing pressure is extending into the

Worth a Read

Notes


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

Mozilla SecurityImproving Malware Detection in Firefox

We are always looking for ways to help protect people better from the constant threat of malicious software. For years Firefox has utilized Google’s Safe Browsing phishing and malware protection to help keep you from accidentally visiting dangerous sites. This protection feature works by checking the sites that you visit against lists that Firefox downloads of reported phishing and malware sites. (For more details, check out this page.)

Firefox is about to get safer.

Until recently, we only had access to lists of reported malicious web sites, now the Safe Browsing service monitors malicious downloaded files too. The latest version of Firefox (as of July 22) will protect you from more malware by comparing files you download against these lists of malicious files, and blocking them from infecting your system.

The next version of Firefox (released in September) will prevent even more malicious downloads on Windows. When you download an application file, Firefox will verify the signature. If it is signed, Firefox then compares the signature with a list of known safe publishers. For files that are not identified by the lists as “safe” (allowed) or as “malware” (blocked), Firefox asks Google’s Safe Browsing service if the software is safe by sending it some of the download’s metadata. Note this online check will only be performed in Firefox on Windows for those downloaded files that don’t have a known good publisher. Most of the common and safe software for Windows is signed and so this final check won’t always need to happen.

In our preliminary testing, we estimate this new malware protection cuts the amount of malware that slips through Firefox’s protections in half. That’s a lot of malware that will be stopped in its tracks.

And of course if you don’t want to send Google data about the few downloads that don’t match these lists, you can turn off malware protection. But we believe eradicating malware is critical for most people, and expect this new feature to help work behind the scenes to keep you safe as you browse.

For more details, head on over to Monica’s blog post.

QMOAdd-on Compatibility With Multi-Process Firefox – Friday, August 1st, 2014

Hi everyone! On Friday, August 1st we will host a testday where we will focus on checking add-on compatibility while using Firefox Nightly in multi-process mode. Detailed instructions on how to help us test can be found in the testday etherpad.

Mozilla has been working a project called “Electrolysis” or “e10s” that allows users to open tabs each into a separate process. The aim is to help us improve the browser’s responsiveness and security. There is still a bit of work before the project can be tested by a larger audience, but one of the areas where we could use some help is add-on compatibility.

This is the list of add-ons we will be working with: http://arewee10syet.com/

No previous testing experience is required so feel free to join via #testday IRC channel and our moderators will offer you guidance and answer your questions.

When:
Starts: August 1, 2014, 1:00 am
Ends: August 1, 2014, 5:00 pm

QMOTestdays Project Meeting Tomorrow

A reminder to all those who are interested in the future of testdays, please join us tomorrow (Thursday) at 9am PDT. We’ll be discussing our plans for the QA work week and beyond. If you haven’t already, please fill out our meeting survey so we can find a time to meet that works better for the majority.

 

QMOCome prepared to explore the world of Mozilla at our QA Fair in Mt. View!

Hello – The Mozilla QA team will all be in town, and we are hosting a QA Fair style event. Come and learn more about the team and what we work on. Here is a list of the sessions that will happen at the event. Several of the different functional areas will be presenting on a variety of topics, and you will have a chance to get hands on with some Firefox OS devices.

Event Date: Thursday July 31, 2014

Event Time: 6:30 PM – 8:00 PM

Location: Mt. View Headquarters, 331 E. Evelyn Avenue, Mountain View, CA

Firefox OS

Hands on Firefox OS testing with Flame Reference devices: Get experience testing Firefox OS devices & learning how to file bugs on Firefox OS.

Scaling on Device Firefox OS testing with Jenkins How do you scale automation with mobile device testing?  Using less equipment to do more testing on Firefox OS phones.

B2G/Firefox OS automation QA lab buildout: Overview of the B2G-automation lab buildout (its goals, its progress, its challenges, etc.)  With photos and specs!

Web RTC

Demo of WebRTC  & Loop: Demo a simple WebRTC (audio and video) call between two Firefox browsers without any plugin and show how little JS code is needed to get this going. Demonstrate how the Loop project makes this even better and easier.

Firefox for Android

Profiling fennec: How to profile Firefox for Android for performance issues

Please RSVP to the meetup invite to be included for the Pizza, which will arrive at 6:30 PM.  The Fair should begin around 7 PM. If something changes and you cannot attend, kindly change your RSVP so I can get an accurate food count. Thanks in advance.

When:
Starts: July 31, 2014, 6:30 pm
Ends: July 31, 2014, 6:30 pm

Air MozillaProduct Coordination Meeting

Product Coordination Meeting Weekly coordination meeting for Firefox Desktop & Android product planning between Marketing/PR, Engineering, Release Scheduling, and Support.

WebmakerTen Projects Receive $165,400 from Mozilla Gigabit Community Fund

Today, Mozilla announced ten projects in Kansas City and Chattanooga that will receive funding from the Gigabit Community Fund, an initiative supported by the National Science Foundation and part of the broader work of US Ignite. The goal of the Fund is to impact learning and support educators in and out of the classroom by investing in projects that utilize gigabit connectivity. The 10 projects will utilize the awarded funds, ranging from $5,000 to $30,000, to build and pilot gigabit-enabled applications and associated curricula in Kansas City and Chattanooga.

gigabit_wordmarklarge

“The Gigabit Fund is transforming how communities learn and the accessibility of learning methods by piloting next-generation innovation as ‘living labs’ in classrooms, cultural institutions and other informal educational environments, putting technology in the service of education,” said Kari Keefe, Community Catalyst for the Gigabit Fund KC.

This is the second round of grants to be awarded by the Fund. The new projects receiving funds are:

Kansas City

  • PlanIT Impact KC | PlanIT Impact LLC:  a visually-rich application that leverages Kansas City’s open GIS data to influence early building design for architecture students
  • TechHawks | Fitnet: top-rated fitness app delivers real-time monitoring and robust metrics to curb obesity and shape how families manage and understand wellness
  • Students Reduce Patient Readmissions with the Gig | Northland CAPS: high school students work with business partners to develop a suite of communications, monitoring and treatment tools for clinicians and high-risk patients to reduce the frequency of readmissions
  • Minecraft+Oculus Rift for Community Development| Kansas City Public Library: virtual reality tech gives kids a voice and a way to design their ideal neighborhood in two of Kansas City’s urban areas, creating a gamed-up way to build community in this fully immersive educational program from KC’s Public Library

PlanIT Impact KC | Grand Blvd. in KC,MO

Chattanooga

  • Building an App from the Ground Up | The Creative Discovery Museum:  Constructing an application toolbox and digital record that will serve as a design blueprint for other youth-serving organizations in Chattanooga and beyond.
  • devLearn | Duncan Ingram, Inc: Developing a mobile coding application for elementary school students that will build critical capacity for Chattanooga’s gigabit future.
  • GigBridge | Global Excel Tennessee:  Bolstering English language skills and improving access to health education amongst minority communities by teaching students for whom English is a second language to construct interactive mobile applications focused on obesity education and prevention.
  • The GigLab | Chattanooga Public Library: Providing public access to gigabit connected resources for the purposes of workforce development, application testing and education.
  • Viditor | GeonCode: Expanding and piloting a new, online collaborative video editor.
  • Wireless Earth Watchdogs | Chattanooga School for the Arts and Sciences: Creating a student-driven, real-time water quality monitoring system using micro-controllers in collaboration with Hixson High School and the Chattanooga Public Library.
Viditor.jpg

Viditor team leaders Stuart French and Andrew McPhearson (center) with first round beta testers at the Baylor School.

All of the ten projects feature a 12-week pilot program that will run from late July to October. For additional information about grantees and to follow their progress, please visit https://blog.mozilla.org/gigabit.

Funding Innovation to Develop Learning Communities

The Mozilla Gigabit Fund has accelerated the development of Hive Learning Communities in Chattanooga and Kansas City, which now join New York CityChicagoPittsburgh and Toronto, among others, in Mozilla’s global Hive network. Connecting schools, cultural institutions and youth-serving organizations throughout these cities, Hive Learning Communities are paving the way for a connected approach to education, and grantees of the Gigabit Community Fund become founding members of these developing networks.

Members of the KC and CHA Hive Learning Communities participate in regular meet-ups and online forums share their planning, progress, lessons and best practices throughout and following the initial pilot period.

 How to Get Involved

  • Attend an event in Kansas City or Chattanooga
  • Get in touch with the Gigabit team to learn more about these projects
  • Follow team progress – and keep up to date with Hive KC and CHA – on Twitter

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.

Air MozillaBugzilla Development Meeting

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

QMOBug Verification Day

Hello mozillians!

Wednesday, July 30rd, 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-20140730] 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: July 30, 2014.

QMOBug Triage Day

Hello mozillians!

Monday, July 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.

Remember to add the [bugday-20140728] 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: July 28, 2014.

WebmakerAnnouncing 15 new Web Literacy ‘maker’ badges!

Search: Maker  Remixing: Maker  Privacy: Maker

Following up from yesterday’s post about the new Hive Community Member badge, we’re pleased to announce 15 new Web Literacy ‘maker’ badges. After being tested by Webmaker Mentors and Webmaker Super Mentors they are now ready to be issued!

We’re still a couple of weeks away from a landing page for all of the badges at webmaker.org, so this post provides a list of the Web Literacy badges that are available.

Web Literacy Map v1.1

Each badge corresponds to the ‘Make’ part of the resources page for the relevant Web Literacy Map competency. You can see what this means by looking at, for example, the resources page for Privacy.

Below is a list of the Web Literacy badges that can apply for right now. Note that you might want to follow this guidance if and when you do!

EXPLORING

BUILDING

CONNECTING

Why not set yourself a challenge? Can you:

  1. Collect one from each strand?
  2. Collect all the badges within a given strand?
  3. Collect ALL THE BADGES?

Meeting NotesSeaMonkey: 2014-07-22

Agenda

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

NEW

OPEN

  • 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
    • bug 973886 for creating the blog account
  • bug 998807 Sync account creation or device pairing fails with exception in BrowserIDManager
    • mcsmurf will look into this

CLOSED

Status of the SeaMonkey Buildbot Master and Tree

  • Buildmaster is up and running.

    • 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 completed the coding. The decision to merge c-c into m-c has been kicked down the road into the next quarter or two.
  • 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.
    • In Progress: 2.28 beta and final will depend on build system working again for Gecko 31.0

    • bug 983536 libpango version >= 1.22.0 required on Linux.(should be fixed when bug 795354 is fixed).
    • bug 977676 SeaMonkey’s puppet broken due to requirement of ffxbld ldap password.
    • bug 943740 is tracking the progress (or lack of one) in building trunk and aurora on Linux & Mac from the downloading user’s POV.
    • bug 840426 tracks the buildbot-config and buildbotcustom code changes to support Mock on our linux* slaves.
    • bug 853720 tracks the builders not recognizing mozcrash. (Not exactly sure if it’s relevant still, since our builders have been so perma-red for some time; but putting this here just in case.)
  • 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.

    • pymake has been discontinued. We need to install the latest Mozilla-build and tooltool on our windows builders (tracked by bug 1023644 )
  • No langpacks since 29th August 2013 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.
Fixed Stuff Since Last Meeting

Release Train

  • Callek plans to have at least one 2.28 beta as soon as we get the Linux builders up.

    • SeaMonkey 2.28 beta 1 and final are intended to follow within two weeks after the merge, otherwise another 2.26.x update will follow (Callek’s news post, MZ announcement).
  • 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.
2.26

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

2.28

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

2.Next
  • Stalled. Needs a kick.

    • bug 937809 Add DuckDuckGo to the default search engines list.

    • bug 815954 Click-to-Play: Port bug 812562 (click-to-play blocklisted plugins: reshow urlbar notification as with normal click-to-play).
    • bug 476108 GetShortPathNameW fails under some NTFS junctions [patchlove].
  • Fixed since the last meeting:
    • notifications/doorhangers not showing: bug 1019583 offline apps, quietly accepting requests
  • Current breakages:
    • bug 998807 Sync account creation or device pairing fails with exception in BrowserIDManager needs an owner

    • bug 995737 adapt seamonkey for the ab remote content policy change; use permission manager instead of address book property.
  • Mozilla-central bugs that affect us:
    • 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. Tracked in:

      • bug 998807 Sync account creation or device pairing fails with exception in BrowserIDManager.

      • bug 1003434 Add support for about:sync-progress.
    • A lot of these bugs are due to mozilla-central switching from synchronous APIs to Asynchronous APIs.
    • 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 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.

Feature List, Planning

Bug statistics for the last two (full) weeks: 34 new, 22 fixed, 11 triaged.

  • Low triaging effort.

Open reviews/flags:
29 review
6 super-review
1 ui-review
4 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.

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

ewong
  • Fixed:

    • bug 780185 – Turn on frame pointers on Nightly builds (–enable-profiling)

    • bug 837649 – [Tracking Bug] Stop OSX 10.5 support for SeaMonkey project
    • bug 837650 – Stop support for OSX 10.5 in suite/ tree
    • bug 918474 – Default Search dropdown doesn’t get refreshed after adding new search engine
    • bug 1021370 – Bug 1016622 changed the name of seer to Predictor. browser-prefs.js needs to be changed.
    • bug 1029513 – Stop building Venkman because Bug 800200 removes JSD1 which Venkman depends on.
    • bug 1037793 – nsSuiteApp.cpp(7) : fatal error C1083: Cannot open include file: ‘application.ini.h’: No such file or directory
    • bug 1039139 – Update buildbotcustom and buildbot-configs with local modifications to sea-master1
    • bug 1040225 – Error: mismatched tag. Expected: </rdf:Seq>
  • To be Checked-in:
  • Review:

    • bug 110904 – attach signature fails silently on bad paths

    • bug 840427 – Migrate SeaMonkey builders to using mock
    • bug 853720 – After bug 827446, SeaMonkey doesn’t know mozcrash.
    • bug 863747 – Add option to disable Location bar history
    • bug 902876 – No SeaMonkey langpacks (or localized builds) since 26th July 2013.
    • bug 922076 – Switch tests to using moz.build and manifests
    • bug 956007 – Remove front end for removed x-user-def font preferences
    • bug 1038081 – When reading an attached eml file in a message window, the Reply button doesn’t work.
  • Working On:

    • bug 507676 – Port |Bug 435804 – Remaining rdf cleanup for FilterListDialog| to SeaMonkey
IanN
  • Usual testing, reviewing and commenting.

  • Fixed:
    • bug 1038005 Update en-GB for Gecko 32

    • bug 1039004 Port |bug 633773 Use Google’s HTTPS search by default|, |bug 958883 Use HTTPS for Yahoo searches| and search plugin parts of |bug 959576 Create a component to get the list of priority domains| to SeaMonkey
    • bug 1039794 Remove unused browser.search.defaulturl entry
  • 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)

    • bug 1039003 Port |bug 633773 Use Google’s HTTPS search by default|, |bug 958883 Use HTTPS for Yahoo searches| and search plugin parts of |bug 959576 Create a component to get the list of priority domains| to Thunderbird
    • 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.
Neil

Fixed on mozilla-central:

  • bug 1037981 –enable-xterm-updates stopped working in comm-central.

  • bug 1041140 FakeString is badly designed.

Fixed on comm-central:

  • bug 553757 SMTP Server dialog doesn’t fit after disabling SSL.

Fixed on comm-central, comm-aurora and comm-beta:

  • bug 1009451 TypeError: tabs[i]._preview is undefined.

Fixed on comm-aurora:

  • bug 1018256 Fix Save and Change Character Encoding dialog.

Fixed on comm-aurora and comm-beta:

  • bug 1016132 Stop mutating the prototype of extApplication.prototype.

  • bug 825127 about:memory in Modern includes old CSS version.
  • bug 1021615 Customise dialog doesn’t display toolbar style after changing toolbar style preference back to full.
  • bug 1018263 Selection list properties dialog doesn’t work properly.

Backed out on comm-aurora and comm-beta:

  • bug 970121 URL bar isn’t decoded in some edge cases.

Fixed on comm-beta:

  • bug 1020630 Content permission doorhanger/notification doesn’t work.

Working on:

Needs beta approval:

  • bug 934492 Adjust the preference panes for the removal of the charset data source.

Still waiting for review:

Ratty

Fixed:

  • bug 817295 chrome directory missing in fresh profiles (again).

  • bug 973530 Add UI to access the remote debugger preferences.
  • bug 1019383 Implement search-engine discovery notification.
  • bug 1034203 In about:certerror send the failed channel from the docshell to the Security Exceptions Dialog.
  • bug 1035237 The labels in the menulist items for the mail view selector don’t line up vertically.
  • bug 1037372 Add speculativeConnect() method to search engines, SeaMonkey part.
  • bug 1038290 Update the favicon when the href attribute of link rel=”icon” is changed.
  • bug 1040939 Fix startup error “Couldn’t load XPCOM” Package sandboxbroker.dll.

Working on:

  • bug 1040771 Allow about: pages to opt in to IndexedDB optionally specifying a desired origin.

  • bug 1040910 Support XHTML in feed titles.
  • bug 1041317 Package form.requestAutocomplete components.
  • bug 1041327 Record submission event for plugin crashes [notifications].

Other stuff:

  • Did some reviews.

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

Fixed on trunk:

  • bug 1019986 Clarify “Don’t Show” label in Desktop Notification bar and doorhanger.

  • bug 998787 Rename options in Geolocation doorhanger notification to disambiguate “Don’t Share” vs. “Not Now”.
  • bug 1009233 Help on mail account settings for authentication method needs updating.
  • bug 1019583 Part 2: Update Offline Web Applications preference pane.
  • bug 994093 Provide toggle for Geolocation service (geo.enabled) in Privacy & Security preference pane.
  • bug 1025569 Notifications for requests from Offline Web Applications offer beyond-session options in Private Browsing mode.

Interim patch landed on all channels:

  • bug 903439 Need a Google API key for Geolocation to work in SeaMonkey (Disable Geolocation service while we are waiting for an API key).

Draft patch posted:

  • bug 1032302 8BITMIME keyword ignored in EHLO greeting, BODY=8BITMIME absent in MAIL request for 8-bit transfers. (MailNews)

Other:

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

  • End-user information and discussion on MozillaZine.

Any other business?

Discuss:

  • [Ratty] KaiRo reminded us that we need to grow our contributor community. 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-07-22

Need To Know

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

Notices/Schedule (lsblakk/sylvestre)

Next Merge: September 1, 2014 Next Release: September 2, 2014
Trains
Central: 34 Aurora: 33 Beta: 32 Release: 31

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

Upcoming Outages/Upgrades

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

Quality Programs

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

OrangeFactor (ryanvm)

  • Past week’s OrangeFactor: N/A (data collection issues) (Previous Week: 9.26).

  • Intermittent mochitest-bc docShell leaks (bug 1036031/bug 1036036) remain highest unowned failures on the list.
  • #4: bug 1040724 – Intermittent test_visibility.html | Plugin should have painted once. (expected 1 independent paints, expected 1 logged paints, got 2 actual paints)
    • Started on Friday, fallout from all the plugin activity last week?
  • 15 intermittent failures fixed in the last week – List – Thanks!.
    • Shout-out to Sami Jaktholm for fixing lots of devtools issues recently.

MemShrink (njn)

  • Jan de Mooij enabled optimized Latin1 strings in the JS engine. This saves over 4 MiB when starting Firefox and loading Gmail using a Latin1 locale. (And it’s still a win on non-Latin1 locales and pages because they still use lots of Latin1 strings, identifiers, etc, and Firefox’s own JS code is still written mostly in Latin1.) This also speeds up some string-intensive operations such as some regexp operations.

  • (BTW, this change is also a textbook example of how to break up a large change into lots of small, manageable pieces, which leads to faster reviews, clearer progress, and easier bisection of introduced defects. See the tracking bug for details.)
  • Lots of B2G 2.0 memory usage regressions have been getting fixed recently (e.g. here and here) involving too many people to list individually. Lots of great work between the MemShrink team and the Systems Front End team.

Stability (kairo/bsmedberg)

<Read Only>

  • Nightly had a startup crash in yesterday’s first build, is fixed.

  • Otherwise, overall data looks decent.

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 (jgriffin)

mochitest-browser-chrome –run-by-dir, bug 992911

  • 14 test bugs need to be fixed before we can land this:

    • bug 525284 – browser_bug400731.js is fragile, not always passing

    • bug 947574 – Intermittent browser_426329.js | This test exceeded the timeout threshold. It should be rewritten or split up
    • bug 963075 – browser_pdfjs_[main|views].js leaks until shutdown when run as a standalone directory
    • bug 1001820 – browser_uitour.js fails on linux 32+64 while running as a standalone directory
    • bug 1002439 – browser_bug248970.js is almost perma fail when run by directory on osx opt
    • bug 1017187 – browser_yahoo_behavior.js leaks until shutdown when running components/search directory by itself
    • bug 1026310 – Intermittent browser_UITour_panel_close_annotation.js | Timeout waiting for invisibility: Tooltip should have disappeared when the subview opened
    • bug 1041527 – (has a patch already) – browser_tabview_*_perwindowpb.js
    • bug 1041537 – browser_Browser.js fails quite frequently on linux and windows debug runs when running the fuel/test/ directory by itself
    • bug 1041544 – browser_certViewer.js leaks until shutdown when run as a directory instead of a full suite
    • bug 1041549 – browser_overflow_anchor.js leaks windows when run as a subdirectory instead of a full suite
    • bug 1041569 – browser_windowRestore_perwindowpb.js leaks until shutdown when run as a directory instead of a full suite
    • bug 1041583 – browser_bug627234_perwindowpb.js leaked 2 windows until shutdown while running as a subdir instead of a full suite
    • bug 1041594 – browser_mozAudioChannel_muted.js crashes when run as a directory instead of a full suite

Developer Tools (robcee)

<Read Only>
bug 1034601 - Enable devtools/markupview tests with e10s 
bug 994732 - Make "Disable Cache" in Devtools persist (only when the toolbox is open)
bug 736078 - Show which elements have listeners attached in the Inspector
28 bugs fixed

Electrolysis (e10s) (blassey)

Some highlights:

Firefox Desktop (gavin)

Summary of Work In Progress

You can find the most recently completed iteration performance report here

You can see the status of the current iteration in progress here

Summary of Recent Landings

Team landed 45 bugs over the last week (total of 89 for the 2-week iteration just ended)

Details of landings from the past week can be seen here

Firefox Mobile (mfinkle/blassey)

Work In Progress

You can find more on upcoming feature plans in the[roadmap]

Landings from the past week
  • URL bar treats single-word input as a URL, not as a search keyword ( 854305 Bug 854305 )

  • In about:apps, lost the ability to invoke a context menu on an installed application ( 965176 Bug 965176 )
  • Tapping on a download notification doesn’t do anything (if Firefox is in the background) ( 1004495 Bug 1004495 )
  • Support suggested sites in distribution files ( 1012462 Bug 1012462 )
  • use msapplication-TileImage and msapplication-TileColor to create home page tiles ( 1014712 Bug 1014712 )
  • Bundled locale specific search engines not loaded until next browser restart ( 1018240 Bug 1018240 )
  • Page is displayed blank after choosing the “Show” popup option ( 1024391 Bug 1024391 )
  • Kindle Fire: activity and fragment transitions are obtrusive and uncomfortable ( 1031872 Bug 1031872 )
  • URL home screen shortcut is not working ( 1032217 Bug 1032217 )
  • Opening a tab from Recent Tabs panel doesn’t work in private browsing ( 1035439 Bug 1035439 )
  • Add-ons can not be installed; ‘Installation failed’ toast notification is displayed ( 1038098 Bug 1038098 )
  • Add-ons can not be installed in private and guest browsing ( 1038573 Bug 1038573 )
  • Regression: After closing all tabs, tabs tray dotted menu can not be accessed again ( 1038798 Bug 1038798 )
  • Remote tabs tray distorted on phone ( 1039062 Bug 1039062)
  • crash in java.lang.IllegalStateException: Fragment RecentTabsPanel{422715c0} not attached to Activity at android.support.v4.app.Fragment.getLoaderManager(Fragment.java) (Bug 1039471)
  • Private tabs list is cut off for portait orientation (Bug 1039738)

Firefox OS Connectivity (vchang)

https://wiki.mozilla.org/TPE_CONNECTIVITY_GROUP/2014-07-22

Firefox OS Devices/Porting (ericchou)

<Read Only>

  • Gonk team (led by Thomas Tsai)

  • Bluetooth (members: Shawn Huang, Ben Tian, Jamin Liu, Jocelyn Liu)

    • Kept working on WebBluetooth API and had a brownbag by Shawn about Bluetooth 4.0(BLE).

    • All FxOS 2.0 Bluetooth certification blockers have been resolved and verified by Taipei QA. Thanks to everyone helped.
  • Media Playback (members: Bruce Sun, Blake Wu, Star Cheng)

    • bug 1038037 – [dolphin][flame] b2g crash when open some streaming audio from browser (1.4+)

      • Analyzed and delegated to RTSP experts since it crashed at RTSP.
    • bug 904177 – Integrate MediaCodec into gecko for media playback (2.1 feat+)
      • Landed. Follow-ups have also been filed and that’s the next part Bruce will work on.

      • Benjamin from Media team will co-work with Bruce on async MediaResource.
  • Device Storage & Stability (members: Alphan Chen)

    • Focused on MTP(2.1 feat+) with Dave Hylands and Eric Chou

      • Issues resolved: bug 1029533, bug 1036861, bug 1036862, bug 1036863

      • Current m-c has MTP support for Ubuntu now. (Pref off by default. See bug 1029533 comment 4 about how to enable it.)
      • Alphan is still trying to figure out why MTP didn’t work on Windows 7.

Firefox OS Media (slee)

<Read Only>

  • bug 916643 – ImageCapture – Implement WebIDL and takePhoto()

    • reviewing
  • bug 1032652 – Have a way for MediaDecoderReader to read MediaResource in an unblocking/asynchronous fashion
    • implementing
  • bug 1041883 – [MediaRecorder] If you switch start and stop quickly, it will cause MediaEncoder not be shut down.
    • Reproduce and analyze the problem
  • bug 1038655 – Intermittent test_playback_rate.html | Current time should not change when playbackRate is null (2.333 2.000045)
    • landed
  • bug 1037370 – TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_fastSeek.html | uncaught exception – TypeError: v.parentNode is null at http://mochi.test:8888/tests/content/media/test/test_fastSeek.html:62
    • landed
  • bug 668973 – Intermittent Android test_playback.html | Test timed out. (test cases seek.webm, *.ogv)
    • landed
  • bug 886188 – Intermittent test_preload_actions.html | Test timed out.
    • landed
  • bug 1039901 – MP3FrameParser sometimes gives wrong duration on B2G
    • Found the root cause. Will work out a patch for that.

Firefox OS RIL (htsai)

<Read Only>

Work In Progress
  • bug 1038176 – SMS app launch latency regressed in v2.0 2.0+

    • Work with Gaia on profiling
  • bug 843452 – B2G RIL: use ipdl as IPC in MozMobileConnection. feature-b2g:2.1
  • bug 935843 – B2G RIL: Parse EF_IMG from SIM feature-b2g:2.1
  • bug 1031193 – [B2G][GAIA] API compatibility to unify both sendMMI() and dial() feature-b2g:2.1
    • API proposed
  • bug 1032858 – Add support for RIL_REQUEST_GET_CELL_INFO_LIST to expose neighboring cell data
  • bug 1036851 – Add ‘ready’ event to telephony to signal the completion of initialization
  • bug 977474 – [B2G] [NetworkCommandOptions] Combine the prefixLength, prefix and maskLength into one
  • bug 1038606 – implement a nsITelephonyService for Simulator
Landings From the Past Week
  • bug 1031640 – B2G RIL: incorrect STK TR for handling SEND_SS/SEND_USSD/SEND_SHORT_MESSAGE/SEND_DTMF in ril_worker.js.

  • bug 1033142 – B2G RIL: add support for mvno type ‘gid’ in matchMvno() function
  • bug 1022490 – [dolphin][perf] improve the performance of exporting Contacts to USIM card (china unicom) 1.4+
  • bug 1029721 – CDMA call waiting call is not logged in call history 2.0+

GFX (milan)

  • Firefox OS plans for 34:

    • bug 989403 transform: scale(X) not being repainted when assigned to

    • bug 967844 support multi-layer APZ controllers
    • bug 1016539 color related (b&w, invert, contrast) accessibility features
  • Other active work not locked to 34:

    • bug 996611 Skia for content everywhere (where everywhere excludes D2D)

    • APZ on desktop
    • tiling on desktop

JS (terrence)

<Read Only>

  • Compiler (JIT)

  • Front End and Other

    • bug 1038038: ShapeTable optimizations — saves >1MiB on gmail

    • bug 975011: nspr is automatically built for SM shell on windows now

Layout (jet/dbaron)

<Read Only>
No update this week.

Media (mreavy)

<Read Only>

  • OpenH264 working in the tree in today’s nightly (perhaps some Mac issues)

  • New UI for screen sharing and for webrtc camera/mic/etc use
    • More redesign in 34

Performance (vladan)

<Read Only>

No updates this week

Seceng (grobinson)

<Read Only>

  • bug 985252 – Sandboxing is now enabled for GMP processes on Windows. Next step is to ratchet down permissions, so that the sandbox is more effective.

Roundtable

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

<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, and say hi to new contributors lewis and Corentin Wallez! Here are some highlights:

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

jesup: http://mozilla.github.io/webrtc-landing/pc_test.html (WebRTC test for OpenH.264)

Engineering Meeting Details

  • Tuesday 2014-07-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 Alien Nation / TOR Finch / SFO Warfield / PDX Hair of the Dog
  • join irc.mozilla.org #planning for back channel

Air MozillaRust Parsing Robustness

Rust Parsing Robustness Mozilla Intern Corey M. Richardson's adventure in creating a formal grammar for the Rust language, featuring sidetracks into parsing, macros, and failure.

Air MozillaPerformance data - signal from noise

Performance data - signal from noise Mozilla intern Paul Nispel presents: "Performance data - signal from noise"

WebmakerAnnouncing the new Hive Community Member badge!

Hive Learning Networks are a growing constellation of communities around the globe that are championing digital skills and web literacy through connected learning. We’re excited to announce that starting today, we’ll be recognizing the individuals who contribute to Hive’s growth and success with the Hive Community Member badge on webmaker.org. It’s the first in a coming series of Hive badges.

Hive Community Member Badge

Any Hive generally consists of organizations: museums, non-profits, government agencies, schools, and others. However, it’s the individual from these organizations who help us achieve our collective goals and really breathe life into the Hive. Their professional engagement and peer-to-peer learning is what translates into amazing opportunities and experiences for young people.

Hundreds of educators, designers, makers, artists, technologies, librarians and teachers in cities from Berlin to Vancouver contribute their time, resources and expertise to help Hive communities–and the youth they serve–thrive. Together, these professionals join forces within an active community of practice to create opportunities for young people to learn within and beyond the confines of traditional classroom experiences.

Through openly-networked collaboration that includes Peer Observation, Resource Sharing, and Process Documentation, educational designers and leaders create and scale innovations in learning. Some of the actions that define these characteristics of open practice include collaborating on Hive projects or programs, facilitating hands-on learning stations at Hive Pop-Ups or Maker Party events, sharing documentation of Hive programs and processes through blog posts, toolkits or teaching kits, etc. You can read more details about the Hive badge requirements here.

Hive is a big driver of the global Webmaker community–individuals that contribute to their local Hive bring expertise in connected learning principles and are also at the foreground of spreading web literacy by developing content, tools, curriculum and practice for others to use and remix. You can see some examples in the Hive NYC and Hive Chicago portfolios, as well as on the Hive Toronto blog.

2014 Open Badges Summit to Reconnect Learning, where initial planning for the Hive badge began. Photo credit: The Sprout Fund

2014 Open Badges Summit to Reconnect Learning, where initial planning for the Hive badge began. Photo credit: The Sprout Fund

The Hive badge is issued, claimed and displayed on Webmaker.org, and soon, recipients of this badge will also have the ability to issue web literacy badges to peers–including colleagues from their organization or other program collaborators–as well as youth. We’ll also be further developing a Hive family of badges, and will look to the growing, global Hive community to help us identify the core skills, competencies and practices we’d like Hive badges to endorse.

In applying for and receiving the Hive Community Member badge, you’ll help us define a global Hive culture, facilitate more equitable access and opportunity, and demonstrate that we’re achieving our mission, to:

  • Mobilize more educators to adopt connected learning practices and teach web literacy within a growing constellation of Hive Learning Networks around the world;
  • Create high-quality connected learning and web literacy tools, content, curriculum and practices for broad use;
  • Catalyze schools, youth programs, and city agencies to provide rich connected learning and web literacy programs, especially in under-served communities; and
  • Grow demand for Hive Learning Events, Communities and Networks in new locations and sectors.

How to get involved:

  • Apply! If you are an active contributor to a Hive in your community, apply for your Hive Community Member badge at webmaker.org. Simply create a Webmaker account with an existing email address, add notes and links to illustrate your qualifications, then once approved and issued, find your badge displayed within your Webmaker profile (see below).
  • Spread the word. Encourage your peers and collaborators to apply for the badge to  recognize their Hive contributions. Be sure to add hashtag #hivebuzz to signal our growing global Hive community.
  • Learn more about Hive Learning Networks.
Hive badge on Webmaker profile page

Hive badge on Webmaker profile page

CalendarLightning 3.3 is Out the Door

I am happy to announce that Lightning 3.3, a new major release, is out of the door. Here are a few release highlights:

  • Various components have been made asynchronous, allowing for better perceived performance. This means less hanging when Lightning is busy.
  • Improved invitation processing, as well as a few new features:
    • Restrict sending invitations to newly added attendees
    • Send one invitation email per attendee, not disclosing other attendees
    • Consider default BCC and CC of configured email identity when sending invitations
    • More actions when viewing invitations, e.g. tentative accept, accepting only occurrences.
  • When accessing Google Calendar via CalDAV, the authentication dialog doesn’t constantly reappear.

There have also been a lot of changes in the backend that are not visible to the user. This includes better testing framework support, which will help avoid regressions in the future. A total of 103 bugs have been fixed since Lightning 2.6.

When installing or updating to Thunderbird 31, you should automatically receive the upgrade to Lightning 3.3. If something goes wrong, you can get the new versions here:

Should you be using Seamonkey, you will have to wait for the 2.28 release, which is postponed as per this thread.

If you encounter any major issues, please comment on this blog post. Support issues are handled on support.mozilla.org. Feature requests and bug reports can be made on bugzilla.mozilla.org in the product Calendar. Be sure to search for existing bugs before you file them.

Mozilla ResearchWebGL in Web Workers, Today – and Faster than Expected!

Web Workers are additional threads that a website can create. Using workers, a website can utilize multiple CPU cores to speed itself up, or move heavy single-core processing to a background thread to keep the main (UI) thread as responsive as possible.

A problem, however, is that many APIs exist only on the main thread, for example WebGL. WebGL is a natural candidate for running in a worker, as it is often used by things like 3D games, simulations, etc., which do heavy amounts of JavaScript that can stall the main thread. Therefore there have been discussions about supporting WebGL in workers (for example, work is ongoing in Firefox), and hopefully this will be widely supported eventually. But that will take some time – perhaps we can polyfill this meanwhile? That is what this blogpost is about: WebGLWorker is a new open source project that makes the WebGL API available in workers. It does so by transparently proxying necessary commands to the main thread, where WebGL is then rendered.

Quick overview of the rest of this post:

  • We’ll describe WebGLWorker’s design, and how it allows running WebGL-using code in workers, without any modifications to that code.
  • While the proxying approach has some inherent limitations which prevent us from implementing 100% of the WebGL API, the part that we can implement turns out to be sufficient for several real-world projects.
  • We’ll see performance numbers on the proxying approach used in WebGLWorker, showing that it is quite efficient, which is perhaps surprising since it sounds like it might be slow.

Examples

Before we get into technical details, here are two demos that show the project in action:

  • PlayCanvas: PlayCanvas is an open source 3D game engine written in JavaScript. Here is the normal version of one of their examples, and here is the worker version.
  • BananaBread: BananaBread is a port of the open source Cube 2/Sauerbraten first person shooter using Emscripten. Here is one of the levels running normally, and here it is in a worker. (Note that startup on the worker version may be sluggish; see the notes on “nested workers”, below, for why.)

In both cases the rendered output should look identical whether running on the main thread or in a worker. Note that neither of these two demos were modified to run in a worker: The exact same code, in both cases, runs either on the main thread or in a worker (see the WebGLWorker repo for details and examples).

How it works

WebGLWorker has two parts: The worker and the client (= main thread). On the worker, we construct what looks like a normal WebGL context, so that a project using WebGL can use the WebGL API normally. When you call it, the WebGLWorker worker code queues rendering commands into buffers, then sends them over at the end of a frame using postMessage. The client code on the main thread receives such command buffers, and then executes them, command after command, in order. Here is what this architecture looks like:

WebGLWorker

Note that the WebGL-using codebase interacts with WebGLWorker’s worker code synchronously – it calls into it, and receives responses back immediately, for example, createShader returns an object representing a shader. To do that, the worker code needs to parse shader source files and so forth. Basically, we end up implementing some of the “frontend” of WebGL ourselves, in JS. And, of course, on the client side the WebGLWorker client code interacts synchronously with the actual browser WebGL context, executing commands and saving the responses where relevant. However, the important thing to note is that the WebGLWorker worker code sends messages to the client code, using postMessage, but it cannot receive responses – the response would be asynchronous, but WebGL application code is written synchronously. So that arrow goes only in one direction.

For that reason, a major limitation of this approach is synchronous operations that we cannot implement ourselves, like readPixels and getError – in both of those,  we don’t know the answer ourselves, we need to get a response from the actual WebGL context on the client. But we can’t access it synchronously from a worker. As a consequence we do not support readPixels, and for getError, we return “no error” optimistically in the worker where getError is called, proxy the call, and if the client gets an error message back, we abort since it’s too late to tell the worker at that point. We are therefore limited in what we can accomplish with this approach. However, as the demos above show, 2 real-world projects work out of the box without issues.

Performance

I think most people’s intuition would be that this approach has to slow things down. After all, we are doing more work – queue commands in a buffer, serialize it, transfer it, deserialize it, and then execute the commands. All of that instead of just running each command as it is invoked! Now, on a single-core machine that would be correct, but on a multi-core machine there are reasons to suspect otherwise, because the worker thread often does other heavy JavaScript operations, so freeing it up quickly to do whatever else it needs can be beneficial. There are a few reasons why that might be possible:

  • Some commands are proxied literally by just appending a few numbers to an array. That can be faster than calling into a DOM API which crosses into native C++ code.
  • Some commands are handled locally in JavaScript, without proxying at all. Again, this can be faster than crossing the native code boundary.
  • Calling from the browser’s native code into the graphics driver can cause delays, which proxying avoids.

So on the one hand it seems obvious that this must be slower, but there are also some reasons to think it might not be. Let’s see some measurements!

glproxy2

The chart shows frames per second (higher numbers are better) on the BananaBread demo, on Firefox and Chrome (latest developer versions, Firefox 33 and Chrome 37, on Linux; results on other OSes are overall similar), on a normal version running on the main thread, and a worker version using WebGLWorker. Frame rates are shown for different numbers of bots, with 2 being a “typical” workload for this game engine, 0 being a light workload and 10 being unrealistically large (note that “0 bots” does not mean “no work” – even with no bots, the game engine renders the world, the player’s model and weapon, HUD information, etc.). As expected, as we go from 0 bots to 2 and then 10, frame rates decrease a little, because the game does more work, both on the CPU (AI, physics, etc.) and on the GPU (render more characters, weapon effects, etc.). Hower, on the normal versions (not running in a worker), the decrease is fairly small, just a few frames per second under the optimal 60. On Firefox, we see similar results when running in a worker as well, even with 10 bots the worker version is about as fast as the normal version. On Chrome, we do see a slowdown on the worker version, of just a few frames per second for reasonable workloads, but a larger one for 10 bots.

Overall, then, WebGLWorker and the proxying approach do fairly well: While our intuition might be that this must be slow, in practice on reasonable workloads the results are reasonably fast, comparable to running on the main thread. And it can perform well even on large workloads, as can be seen by 10 bots on the worker version on Firefox (Chrome’s slowdown there appears to be due to the proxying overhead being more expensive for it – it shows up high on profiles).

Note, by the way, that WebGLWorker could probably be optimized a lot more – it doesn’t take advantage of typed array transfer yet (which could avoid much of the copying, but would make the protocol a little more complex), nor does it try to consolidate typed arrays in any way (hundreds of separate ones can be sent per frame), and it uses a normal JS array for the commands themselves.

A final note on performance: All the measurements from before are for throughput, not latency. Running in a worker inherently adds some amount of latency, as we send user input to the worker and receive rendering back, so a frame or so of lag might occur. It’s encouraging that BananaBread, a first person shooter, feels responsive even with the extra latency – that type of game is typically very sensitive to lag.

“Real” WebGL in workers – that is, directly implemented at the browser level – is obviously still very important, even with the proxying polyfill. Aside from reducing latency, as just mentioned, real WebGL in workers also does not rely on the main thread to be free to execute GL commands, which the proxying approach does.

Other APIs

Proxying just WebGL isn’t enough for a typical WebGL-using application. There are some simple things like proxying keyboard and mouse events, but we also run into more serious issues, like the lack of HTML Image elements in workers. Both PlayCanvas and BananaBread use Image elements to load image assets and convert them to WebGL textures. WebGLWorker therefore includes code to proxy Image elements as well, using a similar approach: When you create an Image and set its src URL, we proxy that info and create an Image on the main thread. When we get a response, we fire the onload event, and so forth, after creating JS objects that look like what we have on the main thread.

Another missing API turns out to be Workers themselves! While the spec supports workers created in workers (“nested workers” or “subworkers”), and while an html5rocks article from 2010 mentions subworkers as being supported, they seem to only work in Firefox and Internet Explorer so far (Chrome bug, Safari bug). BananaBread uses workers for 2 things during startup: to decompress a gzipped asset file, and to decompress crunched textures, which greatly improves startup speed. To get the BananaBread demo to work in browsers without nested workers, it includes a partial polyfill for Workers in Workers (which is far from complete – just enough to run the 2 workers actually needed). (This incidentally is the reason why Chrome startup on the BananaBread worker demo is slower than on the non-worker demo – the polyfill uses just one core, instead of 3, and it has no choice but to use eval, which is generally not optimized very well.)

Finally, there are a variety of missing APIs like requestAnimationFrame, that are straightforward to fill in directly without proxying (see proxyClient.js/proxyWorker.js in the WebGLWorker repo). These are typically not hard to implement, but the sheer amount of potential APIs a website might use (and are not in workers) means that hitting one of them is the most likely thing to be a problem when porting an app to run in a worker.

Summary

Based on what we’ve seen, it looks surprisingly practical to polyfill APIs via proxying in order to make them available in workers. And WebGL is one of the larger and higher-traffic APIs, so it is reasonable to expect that applying this approach to something like WebSockets or IndexedDB, for example, would be much more straightforward. (In fact, perhaps the web platform community could proxy an API first and use that to prioritize speccing and implementing it in workers?) Overall, it looks like proxying could enable more applications to run code in web workers, thus doing less on the main thread and maximizing responsiveness.

The Mozilla BlogFirst Commercial Web Games Launch Leveraging Mozilla-Pioneered Technology

Mozilla is proving the Web is a powerful gaming platform by creating new technologies and developer tools that enable game creators to port their popular titles to the Web. One of the trailblazers using these technologies is Trendy Entertainment, which … Continue reading

hacks.mozilla.orgResources for HTML5 game developers

Today we released Firefox 31 and it offers a couple of new features that help HTML5 game developers to code and debug sophisticated games. In addition Mozilla blogged about the first commercial games leveraging asm.js, Dungeon Defenders Eternity and Cloud Raiders both of which were cross-compiled in to JavaScript using the Emscripten compiler. Games like these show that HTML5 is ready as a game platform.

If you are interested in working with Emscripten you can get more information at the main Emscripten wiki or grab the code on the github page. Another good resource is the getting started with Emscripten tutorial on MDN. If you are wondering about the performance of asm.js, read asm.js performance improvements in the latest version of Firefox make games fly! for details.

In this post we’ll introduce you to some of the resources built by Mozillians that allow you to code and debug HTML5 based games. This list is not exhaustive and we appreciate feedback on any valuable resources that would help in this arena. Don’t be shy and tell us about them in the comments.

Where To Start

When developing an HTML5 based game, you have a lot of choices to make. These range from what editor to use, if the game will use Canvas 2d, WebGL, SVG, or CSS up to which specific rendering frameworks and game engines to use. Most of these decisions will be based on the developer experience and the platforms the game will be published on. No article will answer all these questions but we wanted to put together a post that would help get you started down the path.

One of the key resources available for game developers on MDN is the Games Zone. This section of MDN contains general game development articles, demos, external resources and examples. It also includes detailed descriptions of some of the APIs that a developer will need to be aware of when implementing an HMTL5 game, including sound management, networking, storage and graphics rendering. We are currently in the process of adding content and upgrading the zone. In the future we hope to have content and examples for most common scenarios, frameworks and tool chains.

In the meantime here are a few posts and MDN articles that help game developers getting started.

Tools

As an HTML5 developer you will have no shortage of tools at your disposal. In the Mozilla community we have been hard at work expanding the features that Firefox Developer Tools provide. These include a full-featured JavaScript Debugger, Style Editor, Page Inspector, Scratchpad, Profiler, Network Monitor and Web Console.

In addition to these, some notable tools have been updated or introduced recently and offer some great functionality for the game developer.

Canvas Debugger

With the current release of Firefox, we added a Canvas Debugger to the browser.
s_canvasdebugger
The Canvas Debugger allows you to trace through all canvas context calls that are used to generate a frame. Calls are color coded for specific calls for things like drawing elements or using a specific shader program. The Canvas Debugger is not only useful when developing a WebGL based game but can also be used when debugging a Canvas 2D based game. In the game below you can see in the animation strip as each image is drawn to the canvas. You can click any of these lines to get directly to the part of your JavaScript responsible for this action.
s_captainrogers
Two very common issues that have been reported when using the Canvas Debugger are with animations generated using setInterval instead of requestAnimationFrame and inspecting canvas elements in an iFrame.

To get more information about the Canvas Debugger be sure to read over Introducing the Canvas Debugger in Firefox Developer Tools.

Shader Editor

When developing WebGL based games it is very useful to be able to test and alter shader programs while the application is running. Using the Shader Editor within the developer tools makes this possible. Vertex and Fragment Shader programs can be modified without the need to reload the page, or black boxed to see what effect this has on the resulting output.
s_ShaderEditor

For more information on the Shader Editor, be sure to see Live editing WebGL shaders with Firefox Developer Tools post and take a look at this MDN article which contains a couple of videos showing live editing.

Web Audio Editor

The current version of Firefox Aurora (32) – has a Web Audio Editor. The Editor displays a graphical representation of all the Audio Nodes and their connections in the current AudioContext. You can drill down to specific attributes of each node to inspect them.
s_webaudioeditor

The Web Audio API provides more robust and complex sound creation, manipulation and processing than what is available in the HTML5 Audio tag. When using the Web Audio API make sure to read over Writing Web Audio API code that works in every browser as it contains pertinent information about support for the various audio nodes.

For more information on the Web Audio Editor be sure to read this Hacks article introducing the Web Editor and this MDN article.

Network Monitor

When developing an HTML5 based game network impact can be not only cumbersome but also costly if the user is on mobile device. Using the Network Monitor you can visually inspect all network request for location, time spent on the operation, and the type and size of the artifact.
s_networkmon
In addition you can use the Network Monitor to get a visual performance analysis of your app when cached versus non-cached.
s_networkcache

To get more information on the Network Monitor see the MDN page.

Web IDE

When starting your game one of your first choices will be which editor to use. And there are a lot of them (Sublime, Eclipse, Dreamweaver, vi, etc). In most cases a you already have a favorite. If you are interested in doing your development within the Browser you may want to have a look at the Web IDE that was recently released in Firefox Nightly.
s_webide

The Web IDE project provides not only a fully functional editor but also acts as a publishing agent to various local and remote platforms, debugger, template framework and application manager. In addition the framework supporting this project provides APIs that will allow other editors to use functionality provided in the tool. To get more details on the work that is being done in this area have a look at this post.

In order to keep up-to-date with news on the Firefox Developer Tools, follow their article series on the Hacks blog. For more detailed information on new, stable developer tools features, check out their documentation on MDN.

APIs

The MDN Games Zone lists various APIs and articles that are useful for beginning game development.
s_apis
In addition to these resources you may be interested in looking over some additional posts that can be valuable for development.

If your game is going to support multiplayer interaction using either WebRTC or WebSockets you may also be interested in looking at Together.js which provides collaborative features for web apps. To get an idea what is possible take a look at Introducing TogetherJS.

Many games will require storage and IndexedDB can be used to handle these needs. For information on extending the capabilities of IndexedDB read over Breaking the Borders of IndexedDB. You may also be interested in localForage which provides browser agnostic support for simple storage. To get more details about this library read over this Hacks post.

Game Optimization

HTML5 games today offer a great deal of power to the game developer. That said many of these games are going to be played on a mobile device, which in comparison to your desktop will pale in performance. So if you plan on your game being a success across platforms it is important that you optimize your code. The Optimizing your JavaScript Game for Firefox OS post has a lot of great techniques to help you build a game that performs well on low-end mobile devices.

Localization

In order to reach the most users of your game you may want to consider offering it in different languages. As part of this developers should start with localization built into the game. We are doing a great deal of work around recruiting translators to help you translate your game. To get more information about this initiative see this post.

Your Voice

As Mozilla is about the community of developers and users, we want your help and your feedback. If you have recommendations for specific features that you would like to see in the products make sure to either get involved in discussion on irc.mozilla.org or through our mailing lists. You can also log bugs at bugzilla.mozilla.org. In addition we are also provide additional feedback channels for our DevTools and Open Web Apps.

Mozilla L10NFirefox L10n Report (cycles 32 & 33)

Hello localizers!

Thank you all for your great work with Firefox 31 and 32. Here’s an outline of what is currently in Aurora this cycle (33) and what we accomplished together last cycle:

This cycle (Fx33) — 22 July – 1 September

Key dates:
- Beta sign offs must be completed before 25 August.
- Aurora sign offs must be completed before 1 September.
- Firefox 30 releases 2 September.

Features:
- Approximately 204 new string changes were made to Aurora desktop, 34 for Aurora mobile exclusively (unshared).
- 11% of the desktop strings changes are strings or files that need to be removed from your repos. 39% of all string changes are in devtools. The rest cover changes in key name warning messages, the Context Menu toolbar, and others. (see https://wiki.mozilla.org/Features/Release_Tracking#Likely_in_Firefox_33 ). 6% are about getusermedia.
- 30% of the mobile string changes are for privacy settings (private browsing, clearing private data, etc.) The rest include Firefox Account and home page preferences (see https://wiki.mozilla.org/Mobile/Roadmap#Firefox_33_.28Aurora.29 ).

Notes:
Please remember that sign offs are a critical piece to the cycle and mean that you approve and can vouch for the work you’re submitting for shipment.

Because nearly 50% of all 89 locales have not regularly signed off, and thus not shipping up-to-date localizations, I will begin contacting those teams this cycle to evaluate whether they can come up-to-date in a short amount of time, or if they need to be removed from the public Firefox release page ( https://www.mozilla.org/en-US/firefox/all/ ).

Last cycle — 10 June – 21 July

Noteworthy accomplishments:
- 68% of all locales shipped Firefox 31 updates on time. Congratulations to everyone who signed off and shipped this last cycle! This is an 1% decrease in locale coverage between Firefox 30 and Firefox 31!
- 86% of all locales shipped Fennec 31 on time. Congratulations to everyone who signed off and shipped this last cycle! This is an 2% decrease in locale coverage between Firefox 30 and Firefox 31!
- The Assamese, Bengali (India), Gujarati, Hindi, Kannada, Maithili, Malayalam, Marathi, Oriya, Punjabi, Tamil, and Telegu teams launched their first localizations of Fennec! These 12 Indic locales represent the largest number of new locales that have been shipped in a single Fennec release. Please contact the team to congratulate them on this massive accomplishment, and feel free to tweet all about!
- The Upper Sorbian team has launched their first localization of Firefox desktop! Please contact the team to congratulate them on this massive accomplishment, and feel free to tweet all about!

Thank you to everyone for all of your dedication and hard work this last sprint. As always, if you note anything missing in these reports, please let me know.

Mozilla KoreaFirefox 고성능 웹 게임 기반 기술 적용 확대

Mozilla는 신기술 개발과 개발자 도구의 개선을 통해 게임 개발자가 인기 있는 게임 타이틀을 웹 상에 이식하여, 웹을 강력한 게임 플랫폼으로 성장시키는 중입니다. 웹을 게임 플랫폼으로서 이용하려는 선구적인 회사의 하나가 Trendy Entertainment회사입니다. 그들은 Emscripten과 asm.js을 이용해 매우 대중적인 Dungeon Defenders Eternity를 웹에 이식해 네이티브와 같은 비주얼과 조작 속도를 실현하고 있습니다. 이 게임은 오늘부터 Steam에서 구입 가능합니다.

이는 올해 초에 개최된 GDC 활동의 결과입니다. GDC에서는 게임 업계의 몇몇 유력 기업이 웹 기반의 혁신적인 툴을 가져오게 되었으며 그 대표적인 예가 Unity의 WebGL부가 기능입니다. Dungeon Defenders Eternity의 데모는 아래 영상을 보십시오.

Mozilla는 매우 고속으로 동작하는 고도로 최적화된 JavaScript의 서브셋인 asm.js를 개발했습니다. 이를 이용함으로써 개발자는 고품질 게임을 온라인에서 플러그 인을 사용하지 않고 제공할 수 있게 되었습니다. asm.js와 WebGL과 조합한 그래픽 라이브러리와 포지셔널 같은 이펙트 이용할 수 있는 Web Audio에 따라 웹 상에서 고속으로 동작하는 풍부하고 몰입적인 3D게임을 체험할 수 있게 되었습니다. Mozilla는 웹을 현실적으로 이용할 수 있는 상용 게임 플랫폼입니다.

“앞으로는 고품질의 다른 사람과 연결된 게임을 콘솔과 PC, 웹 등 있던 장소를 불문하고 모든 곳에서 원하게 되기를 기대하고 있다”라고 Trendy Entertainment회사 CEO Darrell Rodriquez가 밝혔습니다.”캐주얼 게임의 생태계에서 웹은 이미 큰 부분을 차지하고 있습니다. Mozilla가 개발한 asm.js에 따라 플러그 인을 넣지 않고 웹 상에서 게임을 플레이할 수 있게 되었다. 로그인 후 바로 Dungeon Defenders가 로드한다는 것은 솔직히 많은 게이머들이 웹에 매력을 느끼게 될것이다”라고 이야기합니다.

Trendy회사는 Dungeon Defender Eternity에 이어 Dungeon Defender II가 웹 기반으로 곧 공개된다고 발표했습니다. 웹상에서 동작하는 모습은 아래 영상으로 보실 수 있습니다.

Trendy회사 이외의 게임 개발자도 Emscripten과 asm.js을 이용해 기존의 게임 타이틀의 네이티브와 동등한 속도로 동작하는 웹 버전을 개발하고 있습니다. 모바일 게임인 Cloud Raiders의 개발사인 Game Insight는 WebGL을 이용한 게임을 Facebook위에서 공개했습니다. 게임이 플러그 인 없이 재생 함으로써 신규 사용자를 더 획득하기 쉬워 집니다. Cloud Raiders on Facebook은 이곳에서 플레이할 수 있습니다.

위의 두개의 같은 게임 개발자를 돕기 위해 Firefox는 Canvas디버거를 구현하였습니다. 이 개발 도구는 그래픽 분석과 버그를 빠르게 디버깅 할 수 있습니다.

오늘 외부에 공개한 Firefox 새로운 업데이트는 Web Audio나 asm.js라는 게임에 관련하는 영역의 성능 향상 기능을 포함하고 있습니다. 웹 게임 개발에 대해 흥미를 갖고 게신 분은 HTML5 게임 개발자 정보를 참조하세요.

그 외에도 부모 제어를 위한 Prefer:Safe 헤더 지원, 새탭에 검색 기능 제공, mozilla::pkix 기본 인증서 검증 서 채택 다운로드 파일의 악성 코드 차단 기능, 윈도에서 ogg 및 pdf 파일의 자체 뷰어 기능 제공 등이 탑재되었습니다. 웹 개발자를 위한 기능으로 동영상 자막을 위한 WebVTT 표준, CSS3 변수 지원, 개발자 도구에서 부가 기능 디버거, 캔버스 디버거, 박스모델 편집기, 코드 에디터 기능 향상, CURL 복사 기능 등 많은 기능이 업그레이드 되었습니다.

안드로이드 버전의 경우, 홈스크린의 패널 위치를 조정하고 동기화 탭 목록을 새로 고림하는 기능, Firefox Hub API 지원을 통한 홈스크린 변경 등이 가능해졌습니다.

더 자세히 보기

Mozilla Web DevelopmentBeer and Tell July 2014

Once a month, web developers across the Mozilla community get together to share what side projects or cool stuff we’ve been working on in our spare time. This monthly tribute is known as “Beer and Tell”.

There’s a wiki page listing the presenters and links to what they’re showing off and useful side information. There’s also a recording on Air Mozilla of the meeting.

Pomax: RGBAnalyse and nrAPI

This month Pomax had two projects to show. The first, RGBAnalyse, is a JavaScript library that generates histographical data about the colors in an image. Originally created so he could sort ink colors by hue, the library not only generates the data, but also generates images (available as data-uris) of histograms using that data.

The second project Pomax shared was nrAPI, a Node.js-based REST API for a website for learning Japanese: nihongoresources.com. The API lets you search for basic dictionary info, data on specific Kanji, sound effects, and Japanese names. Search input is accepted in English, Romaji, Hiragana, Katakana, or Kanji.

HTML result from nrAPI search for "tiger".

HTML result from nrAPI search for “tiger”.

Bill Walker: Photo Mosaic via CSS Multi-Column

Next, bwalker shared his personal birding photo site, and talked about a new photo layout he’s been playing with that uses a multi-column layout via CSS. The result is an attractive grid of photos of various sizes without awkward gaps, that can also be made responsive without the use of JavaScript. bwalker also shared the blog post that he learned the technique from.

Dean Johnson: MusicDownloader

deanj shared MusicDownloader, a Python-based program for downloading music from SoundCloud, Youtube, Rdio, Pandora, and HypeScript. The secret sauce is in the submodules, which implement the service-specific download code.

Chris Lonnen: Alonzo

Lastly, lonnen shared alonzo, a Scheme interpreter written in Haskell as part of a mad attempt to learn both languages at the same time. It uses Parsec to implement parsing, and so far implements binary numeric operations, basic conditionals, and even rudimentary error checking. The development roughly follows along “Write Yourself a Scheme in 48 Hours” by Johnathan Tang.

Sample Runs of alonzo


Thanks to all of our presenters for sharing! If you’re interested in attending or presenting at the next Beer and Tell, subscribe to the dev-webdev mailing list! The wiki page and connection info is shared a few days before each meeting.

See you next month!

Meeting NotesMozilla Project: 2014-07-21

All-hands Status Meeting Agenda

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

Friends of Mozilla

Upcoming Events

This Week

OSCON July 20-24, in Portland Oregon.

Part of the Developer Events “Big 5″ program.

  • Booth on the trade show floor

  • Meet the Mozilla team, get a demo
  • Attend the PDX party on Wednesday, July 23 from 7p-9p
  • Mozilla Speakers

    • “Getting Started Contributing to Firefox OS” – Benjamin Kerensa and Alex Lakatos

    • “Elasticsearch: The Missing Tutorial” – Laura Thomson and Erik Rose
    • “How to Become a Media [Wiki] Hacker” – Harsh Kothari

Get more information on Mozilla’s presence at OSCON here

Tuesday, 22 July
Intern Presentations!
  • 1:30PM PDT- Paul Nispel, “Performance data – signal from noise”

  • 2:00PM PDT- Corey Richardson, “Rust Parsing Robustness”
  • 2:30PM PDT- Pranav Maddi, “Tracking Firefox health”
Wednesday, 23 July
Thursday, 24 July
  • 09:00 AM ForwardJS, San Francisco: “The Next Challenge of the Web is Us” – Chris Heilmann Keynote

  • 10:00 AM Pacific / 17:00 UTC: Grow Mozilla discussion — a forum for discussing community building at Mozilla
  • 10:00 AM Pacific / 17:00 UTC: Marketplace app review meeting
Friday, 25 July
Intern Presentations in MV/SF Commons and Air Mozilla!
  • 1:00PM PDT- Connor Brem, “Developing for Developers for Developers”

  • 1:30PM PDT- Anhad Jai Singh, “Partial Updates for Firefox”
  • 2:00PM PDT- Hayden Demerson, “But… It’s not ready!”
  • 2:30PM PDT- Vincent St-Amour, “Optimization Coaching for SpiderMonkey”
Next Week

Project Status Updates (voice updates)

Firefox Desktop

Speaker Location: San Francisco (johnath)

  • OMG search

    • single word searches in awesome bar

    • search keywords (e.g. ‘define:’)
    • search suggest in about:home
    • default search not stored in a pref
    • search field in new tab
Firefox OS
Webmaker

Speaker Location: Nonverbal

Maker Party is happening! We had a great first week, with events around the world, including in the MozSpaces. We’ve been generally more prepared this year than last, and we’ve hit the ground running.

  • As of this writing, we have 555 events in 151 cities already in the system. With eight weeks to go, we are well on our way to our goal of 2400 events.

  • Check out the #MakerParty thread on Twitter for photos, inspiration, and general Maker enthusiasm: https://twitter.com/search?q=%23makerparty&src=typd
  • Thanks to everyone who volunteered at or attended the kick-off cantinas in MozSpaces last week. We hope you enjoyed the puzzle and the Appmaker training! If you missed it, you can watch the Toronto office here: https://www.youtube.com/watch?v=_D4cMy0Kah4

If you’d like to learn more about hosting a Maker Party event, check out the Resources page for hosts: http://party.webmaker.org/en-US/resources

You can read more about the first week’s engagement efforts here: http://hannahgrams.com/2014/07/20/maker-party-engagement-week-1/

Mozilla Science Lab

Speaker Location: Kaitlin Thaney (remote)

The Science Lab is running it’s first Global Sprint next July 22-23, and we’d love your help in spreading the word to your communities (as well as invite you to join the fun).

We’ll have Mozilla staff and other community members hosting sites in 17 cities around the world. Some of the events are in Mozilla offices – even more of a reason to join us, say hello, offer a helping hand.

Main etherpad where all this information lives: https://etherpad.mozilla.org/sciencelab-2014summersprint-sites

Speakers

Presenter Title Topic Location Share? Media More Details
Who Are You? What Do You Do? What are you going to talk about? Where are you presenting from? (Moz Space, your house, space) Will you be sharing your screen? (yes/no, other info) Links to slides or images you want displayed on screen Link to where audience can find out more information
Bryan Clark Work on TILES for Content Services Updating Mozillians on where we are going with Enhanced Tiles YVR Bryan Will be sharing TBD TBD
Janet Swisher Developer Relations Community Manager Ways to get involved with technical evangelism Austin TX (i.e., remote) No (queue these in tabs)
* Get Involved with Technical Evangelism
* Evangelism@lists.mozilla.org
* Mozspeakers group on Mozillians.org
Get Involved with Technical Evangelism
Robyn Chau Events Program Manager Updating Mozillians on First Big 5 Event Presence PDX No https://wiki.mozilla.org/Engagement/Brand_Engagement/Events_Team/Big_5_2014/OSCON2014 https://wiki.mozilla.org/Engagement/Brand_Engagement/Events_Team/Big_5_2014/OSCON2014

Roundtable

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?
kats No question, but wanted to make sure people are aware of the proposed changes to the privacy policy and that they should weigh in if they have feedback. See the post by Alina on mozilla.governance: https://groups.google.com/forum/#!topic/mozilla.governance/GWlFuAl6Kho

Welcome!

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
Katie Caldwell Jaime Chen Mountain View Portland Office UX Designer

<meta>

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

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

IT

Vidyo Desktop

  • Global audio dial in numbers are now accessible though Vidyo client. To access, open the Vidyo Desktop client, login w/ LDAP credentials, then select the “Invite by Email” icon that looks like a piece of mail – this button will open your default email client and provide you with global dial-in numbers as well as your public link to your Vidyo room.

  • Dial-In info also avail here: https://wiki.mozilla.org/Teleconferencing#Dialing_In

SFO Boardroom Display Upgrade

  • To reduce room start-up and shut-down times, bring the conference room up to Mozilla’s latest AV standards, and help improve seamless conferencing – the SFO Boardroom displays have been upgraded. Two 90″ displays (yes, two 90 inch displays) have been added as a replacement to the single projector w/ drop down screen. Next time you are in SFO, book out the Boardroom and let us know what you think of the upgrade!

  • Pic: https://drive.google.com/file/d/0BzyYWLVB7bEcYktCVW9vSFNFLVE
QA
QA Community

Testdays

  • We held our first project meeting last Thursday

  • Please join us again this Thursday where we’ll be brainstorming ideas for the work week session the following week
  • If you haven’t already, please check out our post on QMO to read about what we’re trying to accomplish with this initiative and ways to contribute
Automation & Tools
bugzilla.mozilla.org

Notable changes to bugzilla.mozilla.org during the last week:

All changes.


  • 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

WebmakerHow do we get depth *and* scale?

Reposted from Mark Surman’s Blog: http://commonspace.wordpress.com

We want millions of people learning about the web everyday with Mozilla. The ‘why’ is simple: web literacy is quickly becoming just as important as reading, writing and math. By 2024, there will be more than 5 billion people on the web. And, by then, the web will shape our everyday lives even more than it does today. Understanding how it works, how to build it and how to make it your own will be essential for nearly everyone.

MozFestEA3

The tougher question is ‘how’ — how do we teach the web with both the depth *and* scale that’s needed? Most people who tackle a big learning challenge pick one path of the other. For example, the educators in our Hive Learning Networks are focused on depth of learning. Everything the do is high touch, hands-on and focused on innovating so learning happens in a deep way. On the flip side, MOOCs have quickly shown what scale looks like, but they almost universally have high drop out rates and limited learning impact for all but the most motivated learners. We rarely see depth and scale go together. Yet, as the web grows, we need both. Urgently.

I’m actually quite hopeful. I’m hopeful because the Mozilla community is deeply focused on tackling this challenge head on, with people rolling up their sleeves to help people learn by making and organizing themselves in new ways that could massively grow the number of people teaching the web. We’re seeing the seeds of both depth and scale emerge.

This snapped into focus for me at MozFest East Africa in Kampala a few days ago. Borrowing from the MozFest London model, the event showcased a variety of open tech efforts by Mozilla and others: FirefoxOS app development; open data tools from a local org called Mountabatten; Mozilla localization; Firefox Desktop engineering; the work of the Ugandan National Information Technology Agency. It also included a huge Maker Party, with 200 young Ugandans showing up to learn and hack with Webmaker tools.MozFestEA2

The Maker Party itself was impressive — pulled off well despite rain and limited connectivity. But what was more impressive was seeing how the Mozilla community is stepping up to plant the seeds of teaching the web at depth and scale, which I’d call out as:

Mentors: IMHO, a key to depth is humans connecting face to face to learn. We’ve set up a Webmaker Mentors program in the last year to encourage this kind of learning. The question has been: will people step up to do this kind of teaching and mentoring, and do it well? MozFest EA was promising start: 30 motivated mentors showed up prepared, enthusiastic and ready to help the 200 young people at the event learn the web.

Curriculum: one of the hard parts of scaling a volunteer-based mentor program is getting people to focus their teaching on the most important web literacy skills. We released a new collection of open source web literacy curriculum over the past couple of months designed to solve this problem. We weren’t sure how things would work out, I’d say MozFestEA is early evidence that curriculum can do a good job of helping people quickly understand what and how to teach. Here, each of the mentors was confidently and articulately teaching a piece of the web literacy framework using Webmaker tools.

Making as learning: another challenge is getting people to teach / learn deeply based on written curriculum. Mozilla focuses on ‘making by learning’ as a way past this — putting hands-on, project based learning at the heart of most of our Webmaker teaching kits. For example, the basic remix teaching kit gets learners quickly hacking and personalizing their favourite big brand web site, which almost always gets people excited and curious. More importantly: this ‘making as learning’ approach lets mentors adapt the experience to a learner’s interests and local context in real time. It was exciting to see the Ugandan mentors having students work on web pages focused on local school tasks and local music stars, which worked well in making the standard teaching kits come to life.

Clubs: mentors + curriculum + making can likely get us to our 2014 goal of 10,000 people around the world teaching web literacy with Mozilla. But the bigger question is how do we keep the depth while scaling to a much bigger level? One answer is to create more ’nodes’ in the Webmaker network and get them teaching all year round. At MozFest EA, there was a session on Webmaker Clubs — after school web literacy clubs run by students and teachers. This is an idea that floated up from the Mozilla community in Uganda and Canada. In Uganda, the clubs are starting to form. For me, this is exciting. Right now we have 30 contributors working on Webmaker in Uganda. If we opened up clubs in schools, we could imagine 100s or even 1000s. I think clubs like this is a key next step towards scale.

Community leadership: the thing that most impressed me at MozFestEA was the leadership from the community. San Emmanuel James and Lawrence Kisuuki have grown the Mozilla community in Uganda in a major way over the last couple of years. More importantly, they have invested in building more community leaders. As one example, they organized a Webmaker train the trainer event a few weeks before MozFestEA. The result was what I described above: confident mentors showing up ready to teach, including people other than San and Lawrence taking leadership within the Maker Party side of the event. I was impressed.This is key to both depth and scale: building more and better Mozilla community leaders around the world.

Of course, MozFestEA was just one event for one weekend. But, as I said, it gave me hope: it made be feel that the Mozilla community is taking the core building blocks of Webmaker shaping them into something that could have a big impact.

MozfestEA1

With Maker Party kicking off this week, I suspect we’ll see more of this in coming months. We’ll see more people rolling up their sleeves to help people learn by making. And more people organizing themselves in new ways that could massively grow the number of people teaching the web. If we can make happen this summer, much bigger things lay on the path ahead.

—–
To learn more about MozFestEA:

 

Mozilla JavaScriptSlimmer and faster JavaScript strings in Firefox

Since Brendan Eich wrote the first SpiderMonkey version in 1995, there have been many, many changes to its internal string representation. New string types like inline strings (more on this below) and ropes were added to save memory and improve performance, but the character representation never changed: string characters were always stored as a sequence of UTF-16 code units. The past two months I’ve been working on changing this. The JS engine can now store Latin1 strings (strings that only use the first 256 Unicode code points) more efficiently: it will use 1 byte per character instead of 2 bytes. This is purely an internal optimization, JS code will behave exactly the same. In this post I will use the term Latin1 for the new 8-bit representation and TwoByte for the 16-bit format.

To measure how much memory this saves, I opened Gmail, waited 15 seconds then opened about:memory and looked at the zones/strings subtree under “Other measurements”:

JS String Memory

For every JS string we allocate a small, fixed-size structure (JSString) on the gc-heap. Short strings can store their characters inline (see the Inline strings section below), longer strings contain a pointer to characters stored on the malloc-heap.

Note that the malloc-heap size was more than halved and the total string memory was reduced by about 4 MB (40%). The difference between 32-bit and 64-bit is pretty small, JSString is 16 bytes on 32-bit and 24 bytes on 64-bit, but on 64-bit it can store more characters inline.

The chart below shows how much of our string memory is used for Latin1 strings vs TwoByte strings on 64-bit:

JS String Encoding

Almost all strings are stored as Latin1. As we will see below, this is also the case for non-Western languages. The graph suggests some longer strings (that use malloc storage) are still stored as TwoByte. Some of these strings are really TwoByte and there’s not much we can do there, but a lot of them could be stored as Latin1. There are follow-up bugs on file to use Latin1 strings in more cases.

Why not use UTF8?

At this point you may ask: wait, it’s 2014, why use Latin1 and not UTF8? It’s a good question and I did consider UTF8, but it has a number of disadvantages for us, most importantly:

  • Gecko is huge and it uses TwoByte strings in most places. Converting all of Gecko to use UTF8 strings is a much bigger project and has its own risks. As described below, we currently inflate Latin1 strings to TwoByte Gecko strings and that was also a potential performance risk, but inflating Latin1 is much faster than inflating UTF8.
  • Linear-time indexing: operations like charAt require character indexing to be fast. We discussed solving this by adding a special flag to indicate all characters in the string are ASCII, so that we can still use O(1) indexing in this case. This scheme will only work for ASCII strings, though, so it’s a potential performance risk. An alternative is to have such operations inflate the string from UTF8 to TwoByte, but that’s also not ideal.
  • Converting SpiderMonkey’s own string algorithms to work on UTF8 would require a lot more work. This includes changing the irregexp regular expression engine we imported from V8 a few months ago (it already had code to handle Latin1 strings).

So although UTF8 has advantages, with Latin1 I was able to get significant wins in a much shorter time, without the potential performance risks. Also, with all the refactoring I did we’re now in a much better place to add UTF8 in the future, if Gecko ever decides to switch.

Non-Western languages

So Latin1 strings save memory, but what about non-Western languages with non-Latin1 characters? It turns out that such websites still use a lot of Latin1 strings for property names, DOM strings and other identifiers. Also, Firefox and Firefox OS have a lot of internal JS code that’s exactly the same for each locale.

To verify this, I opened the top 10 most popular Chinese websites, then looked at about:memory. 28% of all strings were TwoByte, this is definitely more than I saw on English language websites, but the majority of strings were still Latin1.

String changes

Each JSString used to have a single word that stored both the length (28 bits) and the flags (4 bits). We really needed these 4 flag bits to encode all our string types, but we also needed a new Latin1 flag, to indicate the characters are stored as Latin1 instead of TwoByte. I fixed this by eliminating the character pointer for inline strings, so that we could store the string length and flags in two separate 32-bit fields. Having 32 flags available meant I could clean up the type encoding and make some type tests a lot faster. This change also allowed us to shrink JSString from 4 words to 3 words on 64-bit (JSString is still 4 words on 32-bit).

After this, I had to convert all places where SpiderMonkey and Gecko work with string characters. In SpiderMonkey itself, I used C++ templates to make most functions work on both character types without code duplication. The deprecated HTML string extensions were rewritten in self-hosted JS, so that they automatically worked with Latin1 strings.

Some operations like eval currently inflate Latin1 to a temporary TwoByte buffer, because the parser still works on TwoByte strings and making it work on Latin1 would be a pretty big change. Fortunately, as far as I know this did not regress performance on any benchmarks or apps/games. The JSON parser, regex parser and almost all string functions can work on Latin1 strings without inflating.

When I started working on this, Terrence mentioned that if we are going to refactor our string code, it’d be good to make all string code work with unstable string characters as well: once we start allocating strings in the GGC nursery (or have compacting GC for strings), we can no longer hold a pointer to string characters across a GC, because the GC can move the characters in memory, leaving us with a dangling pointer. I added new APIs and functions to safely access string characters and pave the way for more string improvements in the future.

After converting all of SpiderMonkey’s string code, I had to make Gecko work with Latin1 JS strings and unstable string characters. Gecko has its own TwoByte string types and in many cases it used to avoid copying the JS characters by using a nsDependentString. This is not compatible with both Latin1 strings and nursery allocated strings, so I ended up copying (and inflating) JS strings when passing them to Gecko to solve both problems. For short strings we can use inline storage to avoid malloc or nsStringBuffer and overall this turned out to be fast enough: although it was about 10% slower on (pretty worst-case) getAttribute micro-benchmarks, none of our DOM benchmarks noticeably regressed as far as I know. For longer strings, the copy is potentially more expensive, but because I used a (refcounted) nsStringBuffer for those, it often avoids copying later on.

Inline strings

SpiderMonkey has two string types that can store their characters inline, instead of on the malloc heap: inline strings (size of a normal JSString) and fat inline strings (a few words bigger than a JSString). The table below shows the number of characters they can store inline (excluding the null terminator):

32-bit Latin1 32-bit TwoByte 64-bit Latin1 64-bit TwoByte
Inline 7 3 15 7
Fat inline 23 11 23 11

So a Latin1 string of length 15 can be stored in an inline string on 64-bit and a fat inline string on 32-bit. Latin1 strings can store more characters inline so, as expected, there are a lot more inline strings now (measured after opening Gmail):

JS String Types

87% of strings can store their characters inline, this used to be 65%. Inline strings are nice for cache locality, save memory and improve performance (malloc and free are relatively slow). Especially on 64-bit, non-fat inline strings are now more common than fat inline strings, because most strings are very short.

These numbers include atoms, a string subtype the engine uses for property names, identifiers and some other strings. Minimized JS code is likely responsible for many short strings/atoms.

Note that SpiderMonkey has other string types (ropes, dependent strings, external strings, extensible strings), but more than 95% of all strings are inline, fat inline or malloc’ed so I decided to focus on those to avoid making the chart more complicated.

Performance

The main goal was saving memory, but Latin1 strings also improved performance on several benchmarks. There was about a 36% win on Sunspider regexp-dna on x86 and x64 on AWFY (the regular expression engine can generate more efficient code for Latin1 strings) and a 48% win on Android.

There were also smaller wins on several other benchmarks, for instance the Kraken JSON tests improved by 11% on x86 and x64. On ARM this was closer to 20%.

Conclusion

Latin1 strings are in Firefox Nightly, will be in Aurora this week and should ship in Firefox 33. This work also paves the way for generational and compacting GC for strings, I’ll hopefully have time to work on that in the coming weeks. Last but not least, I want to thank Luke Wagner, Terrence Cole, Nicholas Nethercote, Boris Zbarsky, Brian Hackett, Jeff Walden and Bobby Holley for many excellent and fast reviews.

WebmakerMaker Party 2014: Resources for Libraries and Learning Spaces

14153666337_0215a26b14_b

At the heart of the Maker Party campaign, Webmaker tools/resources, and Hive Learning Network is the Web Literacy Map which outlines what we think are the important skills and competencies needed to be literate on the web. Each web literacy competency has a dedicated page that features the best resources on the web to help you “Discover, Make, and Teach” those skills.

Hive Learning Network, a project of Mozilla, is comprised of organizations (libraries, museums, schools and non-profit start-ups) and individuals (educators, designers,  community catalysts and makers). Together, they create opportunities for youth to gain digital and analog skills to learn within and beyond the confines of traditional classroom experiences, design innovative practices and tools that provide opportunities for greater impact, and contribute to their own professional development within an active community of practice.

Hives are communities of practice and have helped drive the idea, practice and growth of the Maker Party campaign over the last three years. These communities have also helped to innovate, build and utilize Webmaker tools, events and teaching guides to help others not only create the content that makes the web great, but perhaps more importantly — understand how the web works.

Maker Party events around the world help catalyze and deepen what Hive and Webmaker tools and resources are all about and serve as a way to understand and build upon connected learning, web literacy and digital skills for event hosts as well as participants.

The Hive Learning Network team at Mozilla has curated this Tip Sheet for hosting Maker Party events in your varied learning spaces–libraries, community centers, after school programs, schools or museum exhibition floors.

dl-overview

Let’s get started!

To start planning your Maker Party, first sign up for your Webmaker account here. This allows you to access tools and resources to make your Maker Party a hit!

Once your account is set-up, head on over to the Maker Party website. Get the latest buzz on events going on around the world and find everything you need to throw a great event. Our resources page provides everything from graphics to publicize your Maker Party to activity guides and tips and tricks to ensure that your Maker Party is encouraging your group to mix and re-mix the web.

Not sure of the size of your Maker Party? We even have event guides geared towards small, medium and large groups.

  • Small Event: Perfect for 2-5 participants, hosting a small event is a fun way to spend an hour on a rainy day, hang out as a family, learn to hack with a friend, and make cool things on the web.
  • Medium Event: Great for 5-50 participants, hosting a medium event is a fantastic way to team up people with different skill-sets to collaboratively build something new or improve something existing on the web, all while learning and teaching new hacking skills.
  • Large Event: For those ready to for the adventure of 50+ participants, hosting a large event is a rewarding way to bring together local organizations in a science fair setting to demonstrate cool web ideas, provide fun hands-on activities, and introduce your community to making and hacking.

Once you have an event confirmed, add it to our Maker Party events page.

Learn more about web literacy–watch this video featuring Chris Lawrence, Senior Director of Hive Learning Networks and the Webmaker Mentor Community.

Also, check out these great Jumpstarts (tip sheets)–created by the Hive Research Lab–as you dive into your Maker Party planning.

Starter Webmaker projects

The following activities are easy to implement with any size group:

Teaching kits and activities

We also want to ensure that educators, community connectors and all makers have educational resources that support their work. These resources are great tools to share with your groups or use during your Maker Party events.

For more support and professional development, join the Webmaker Training MOOC. You can sign up and start at any time, and go at your own pace. It’s modular, and free, and a great way to make connections with others who want to teach the web around the world.

Libraries

We know that libraries are an integral part of any community and are some of the biggest champions in our Webmaker and Maker Party campaign work. We put together a list of resources that can support a Maker Party in libraries anywhere:

 

Connect with us

Join the conversation in our online Discourse forums. Our team regularly contributes on topics and issues that you might be interested in.

If you have further questions email us at makerparty@mozilla.org or info@hivelearningnetworks.org

All the best in your making and re-mixing efforts!

Mozilla IndiaThe Fifth Elephant – A big data conference & workshops | 10% discount for community

This is to announce that Mozilla India is the ‘community partner’ at The Fifth Elephant. ​The folks at The Fifth Elephant have extended 2 complimentary passes & 10% discounts to our community.
The Fifth ElephantDiscount code: you may use the discount code 8aiG4ovx to apply.

You may buy the tickets here.

​= ​Highlights =​

* ​India’s largest gathering of big data and analytics practitioners
​* Talks will showcase latest trends in the field and the opportunities that can be leveraged
​* ​Speakers will share practical experiences with data mining, machine learning and building technology for analytics

= ​Featured Talks =​

* ​The Genome Project
Personalized machine & big data
- Anu Acharya, Mapmygenome

​* ​The Art of Data Mining

Practical learnings from real world data mining applications
- Shailesh Kumar, Google

= ​Format =​
* ​Analytics infrastructure
Platforms, tools & in-house solutions.
* ​Data mining & machine learning
Applications in different domains

= ​Who should attend? =​
Data scientists, developers, architects, DBAs, researchers, business – from data enthusiasts to data geeks

For further information visit:​
Website: fifthelephant.in
Schedule: funnel.hasgeek.com
Tickets: fifthel.doattend.com/
Send your queries to info@hasgeek.comor call 080 6768 4422

about:communityFirefox 31 New Contributors

With the upcoming release of Firefox 31, we are pleased to welcome the 62 developers who contributed their first code change to Firefox in this release, 49 of whom were brand new volunteers! Special thanks to Sezen Günes for compiling these statistics for this release. Please join us in thanking each of these diligent and enthusiastic individuals, and take a look at their contributions:

Software CarpentryUsing a Package Manager for Lessons and Papers

I've been musing for a couple of years now about ways in which we could re-purpose off-the-shelf software engineering tools and techniques to serve the needs of teachers. One theme, which I touched on in my SciPy 2014 talk, is to get people to patch shared learning materials in the way they patch Wikipedia articles and open source code. Another is to use package managers like RPM, Homebrew, and Conda to track dependencies between lessons, so that I could say something like conda install suffragette_movement and get a lesson on the struggle for women's voting rights, along with the other lessons and materials it depends on (or updates and links to those other lessons if I already have some of them installed).

Setting aside for the moment the risk that this would be a technical "solution" to a social problem (because we all know how well those work), I've started wondering: should we be using package managers to aid reproducible research? In particular, if I know the DOI that identifies a particular paper, should I be able to type:

  $ conda install doi://10.1109/SECSE.2009.5069155

and get the LaTeX source for the article, the style files it depends on, its data (or links to such), and the code used to generate the results (including updates to third-party libraries that code depends on)? It begs the question of how results are regenerated, of course, and mutter mutter virtual environments to avoid conflicts between papers mutter mutter, but it seems like a way to manage the kinds of things that some of our colleagues are already thinking about.

Several people are taking a run at this idea as part of our two-day sprint this week: see this Etherpad for details, and this GitHub repo for further discussion. We'd be grateful for your thoughts and your help.

Software CarpentryGSoC Projects at Summer Sprint

As you may know, the Mozilla Science Lab's first-ever two-day sprint is in the next few days and all GSoC projects related with Mozilla Science Lab will be part of it. For more information about the plans for the GSoC projects continue reading this post.

Peer Instruction on the Web

This project aims to bring proof-of-concept on-line teaching tool that uses peer instruction technique. More details about the project can be found in Piotr's blog post.

The project needs volunteers to test the basic functionality and hopefully find bugs. We'll set up an Etherpad and coordinate video calls. The only requirement is a new browser, preferably Firefox or Chromium/Chrome, and a working webcam.

If you're willing to help with programming, Pitt mostly uses JavaScript (both front and back-end). There are some documentation issues open that are good to get you started with the project. The project code needs reviews by proficient JavaScript programmers, too.

Piotr, the project leader, will be in Kraków, Poland (UTC+2), during the sprint. All the required links will appear on sprint's etherpad below "A web-based tool for peer instruction" line (currently 102).

Browsercast: a Web-Based Slideshow Replay Tool

The Browsercast project aims to offer a web based slideshow composition tool with support for voice-over synchronization.

Exported presentations should act exactly like a video in terms of playback functionality: play/stop/pause/resume with perfect voice-over synchronization but still maintain the same rich environment a web presentation can offer: text, images, links, interactivity.

Implementation details

Two main parts:

  • The Browsercast Editor
    • it allows you to create, edit, synchronize, import, export a presentation
  • The Browsercast library
    • The JavaScript library that handles the playback functionality and does not depends on the editor

More details can be found on my blog.

There are certainly a lot of ways you can help:

  • by testing the application and offering feedback on user experience and features list
  • for programmers and engineering
    • prototyping some of the needed modules for which can't be found good open-source alternatives
    • analyse the possibilities of integrating the popcorn timeline and the thimble editor
    • and many more...

All required information will be available on the Browsercast sprint pad.

Math Virtual Keyboard

The Math/LaTeX virtual keyboard is going fine (you can read more about it here) and right now Raniere will love if someone can try it for a few minutes. Raniere will be at Paris site for the sprint with one of the devices from Firefox OS Tablet Program so if you want help me trying it please get in touch.

Software Carpentry will try to kick off the lesson manager project and Raniere will help with it.

Software CarpentrySummer Sprint FAQ

The Mozilla Science Lab's first-ever two-day sprint is less than three weeks away, so here's a short FAQ to tell you who can take part and how.

When is the sprint taking place?
July 22 and 23, 2014. Each site will be open during normal business hours (roughly 9:00 am to 5:00 pm local time—we'll post exact times a week before the sprint starts). We do not want people to work round the clock: work done at 3:00 am usually needs to be undone at 10:00 am.
Who can take part?
Everyone: you don't have to have any prior involvement with the Mozilla Science Lab, Software Carpentry, or any other particular project.
Do I need to be a programmer?
Nope: we're also looking for people who can review lessons (particularly from a novice's point of view), create illustrations, and many other things.
Do I need to register somewhere?
No, but we'd be grateful if you could add yourself to this Etherpad to give us some idea of what project you'd like to work on ("Project Ideas"), and where you'd like to work ("Sites").
Do I have to be at one of the listed sites?
Not at all—many people will be available to help out and answer questions online. But if you can get to one of the listed sites, it would be a chance to make some new friends.
Where are those sites, exactly?
We will post addresses, maps, and links next week (i.e., a week before the start of the sprint), along with site-specific information about parking, getting into the building, and so on.
Where will work take place online?
Each project will use the version control repository, mailing lists, and so on that it usually uses.
How can I make contact with a project I'm interested in?
The names of the project coordinators are listed below; we will post more information next week (i.e., a week before the sprint).
Can I add a new project to the list?
Sure, so long as it's related to open science in some way, you (or someone else) is willing to coordinate work on it, and there's already something in place for people to extend. (Experience has taught us that if a project starts with a blank page, it will probably end with one as well.) Please add it to the Etherpad and mail us so that we can help advertise it.
What should I do to prepare?
  1. Add yourself to the Etherpad.
  2. Decide which project you'd like to work on. (We recommend that people focus on just one—two days goes by very quickly.)
  3. Have a look at the project's open issues and pull requests to find something to start working on.
What should I do on the day?
  1. Show up around 9:00 am local time (again, the exact times for each site will be posted next week).
  2. Introduce yourself to the site host and/or the person coordinating the project you're working on.
  3. Check your chosen project's issue list and/or chat with the coordinator to see what needs to be reviewed. (Reviewing is often a gentler way to ease into work than writing or coding.)
  4. Once you've done a review or two, pick some writing, drawing, or coding that needs to be done, check to make sure no-one else is already doing it, and dive in.
  5. Repeat until it's time to wrap up for the day, then get a good night's sleep and come back in the next day to do it again.
Do I need to bring my own computer?
Yes please.
What should I do to prepare my project if I'm coordinating work?
  1. Make sure it's on the Etherpad.
  2. Create or tag issues and pull requests for people to start with.
Do I have to be there on both days?
No, but we do ask that people commit to at least one full day (or two half-days) so that projects don't spend all of their time getting newcomers on board.
What about coffee, lunch, and dinner?
We have asked sites to provide coffee (and snacks if they can), but will not provide meals. That said, we strongly encourage the people working at each site to get lunch together, and to go out together at the end of the first day: this sprint is meant to help build community, and sharing a meal with someone is a great way to get to know them.
How will sites be connected?
We will set up a single open-air video conference to connect all of the active sites, primarily to give people a sense of who's awake where. Individual projects can use IRC, HipChat, or whatever else they normally use for communication.
What sites are currently included?
We will post full addresses and other information a week before the sprint.
Auckland (NZ): Tim McNamara Wellington (NZ): Alison Stringer Melbourne (AU): Damien Irving
Kraków (PL): Klemens Noga Ljubljana (SI): Jure Triglav Paris (FR): Tarek Ziadé
London (UK): Sarah Allen Edinburgh (UK): Neil Chue Hong Charlottesville VI (US): Andrew Sallans
Albany NY (US): Brian Northan New York City, NY (US): Kaitlin Thaney Toronto (CA): Greg Wilson
East Lansing MI (US): C. Titus Brown Austin TX (US): April Wright Norman OK (US): Amanda Harlin
Vancouver (CA): Angelina Fabbro San Francisco CA (US): Dino Anderson
What projects are currently included?
We'll post updates as this list grows in the next two weeks, but right now, the projects are:

We'll be talking about the sprint at this week's Mozilla Science Lab community call—we hope to see you there.

Software CarpentrySciPy 2014 Talks and Lessons

Talks from SciPy 2014 are now online, and include several from people associated with Software Carpentry. I particularly enjoyed Lorena Barba's keynote, in which she discussed how she's using the IPython Notebook in a flipped classroom. (I gave a talk too, but if you're a regular reader of this blog, you'll have heard most of it already.)

My biggest take-away wasn't the talks, though. Instead, it was this brave post by April Wright:

Last night, at the Software Carpentry mixer, a grand total of 5 men shook my husband's hand and ignored mine. My total of new people met is a dismal ten. Compare it to the Evolution meetings, which is 'my' meeting, where I met upwards of 40 new people, had a blast, and was treated by all participants like a member of the community.

There's follow-up here and here (and elsewhere), but as someone who was at that mixer I think the message is clear: we need to do better, both as individuals and as a community.

Air MozillaDesigning for participation

Designing for participation Dia Bondi's experience with designing for participation on a video project

QMOBug triage workshop for Desktop Firefox

Hello Mozillians!

The Desktop Firefox QA team is hosting an extra Bug triage workshop Friday July 25th. We’ll teach the basics of triaging and working with bugzilla.mozilla.org.

The event is open to everyone and free. No previous experience is required — sign up, follow the steps below, and come and join us to help make Firefox better!

buggie-icon

The workshop will take place on July 25th on the #testday channel on irc.mozilla.org in two different slots to accommodate most timezones: at 10:00 am UTC for Europe and Asia, and at 7 pm UTC to cover the U.S. .

Want to participate? Follow the steps below!

Step 1 – Create a One and Done account
One and Done” is a platform where Mozilla community contributors can pick tasks and work on them – one at a time, one day at a time – and feel good about doing them.
You can join it with your Mozilla Persona account, if you already have one. If not, you can create one through the One and Done page.

Step 2 – Create a Bugzilla account
Bugzilla is Mozilla’s bug tracking system. This is where bugs are reported and where every change for a bug is stored and tracked. To update a bug report in any way, you will need to sign in to Bugzilla. The Create a Bugzilla account task in One and Done has a walkthrough on signing up.

Step 3 – Be ready to connect to IRC
IRC stands for “Internet Relay Chat”. It’s a protocol for real-time chat sessions. Users log in to a particular server to chat with other users.
To join the #testday IRC channel, you can connect using your browser:
Join the #testday channel using Mibbit. Or, you can
take a look at the wiki page to help you pick an IRC client to install on your computer.

Step 4 – Register for the workshop!
Add your contact information to the Bug triage workshop etherpad, which we’ll use during the event.

Our goal for this workshop is to give an overview of bug triage, and to follow up afterwards with the participants to answer questions, award badges, and make sure you have the tools you need to get involved more closely with Mozilla’s development and QA process. See you next week!

- Madamezou and Lizzard

When: July 25, 2014.

Air MozillaWebdev Beer and Tell: July 2014

Webdev Beer and Tell: July 2014 Web developers across the Mozilla community get together (in person and virtually) to share what side projects or cool stuff we've been working on.

QMOTestdays Project Meeting – July 17, 2014

Yesterday we held our first Testdays Project Meeting. The meeting started with a quick review of the Meeting Day/Time Feedback survey. Due to only having a few responses we decided to give it some more time and solicit for further feedback before making any changes to the meeting. We spent the bulk of the remaining time reviewing and discussing the feedback we’d received on the etherpad. We received quite a lot of feedback, some great ideas, and enjoyed some excellent discussion around those ideas. Unfortunately this did not leave much time to discuss our plans for the upcoming work week so we decided it would be prudent to devote the next meeting to that subject. You can consult the wiki if you want more information about our meeting this week.

I would encourage those of you who were not able to attend to try again next week. If you’re unable to come in person then please make sure to add your feedback and concerns to the etherpad. All ideas will be reviewed, discussed, then followed up after the  meeting. In the future we will have these meetings recorded so you can view them on your own time.

A special thank you to AaronMT, IoanaC, and Jan\ for joining me in this first meeting.

Mozilla User ResearchIndia Firefox OS User Research

India Photo

Bangle shop & mobile phone break in Jaipur, India. (Photos by Gemma Petrie)

This research was led by Cori Schauer & Gemma Petrie.

Last month, Mozilla traveled to India to conduct user research on mobile usage. We are grateful to our talented research partners Dear and Tazurba International for their expert local knowledge, to the amazing Delhi and Rajasthani Mozilla communities who provided critical logistics and translation support, and to the many Mozilla staff members that took time out of their busy personal and professional lives to join us in the beautiful (and blazing hot!) Indian summer.

Field Team

The Mozilla User Research team believes it is important to bring a wide variety of colleagues into the field with us for research. We know that first-hand experience does more to build empathy and understanding than a presentation ever will. This trip marked our largest field team to date and included:

  • Jared Cole, Design Strategist
  • Francis Djabri, FxOS UX Designer
  • Peter Dolanjski, FxOS Product Manager
  • Sandip Kamat, FxOS Product Manager
  • Bruce Huang, FxOS Product Manager
  • Juwei Huang, FxOS UX Designer
  • Elizabeth Hunt, Marketplace UX Designer
  • Jane Hsu, FxOS Go-To-Market Strategy/Partnerships
  • Rina Jensen, Content Strategist
  • Amy Lee, FxOS Visual Designer
  • Peiying Mo, L10N Program Manager
  • Arky, L10N & Community Rep
  • Rob Rayborn, User Advocacy
India 2

The mausoleum of Sufi saint Nizamuddin Auliya in Delhi & a colorful truck on a Rajasthani highway. (Photos by Gemma Petrie)

Research Plan

We aimed to answer the following questions with our research:

  •     Who are the people in our target market(s) in India?
  •     What motivates someone to purchase a mobile device?
  •     What can Mozilla enable people to do with a Firefox OS device?
  •     How can Mozilla make a difference?

India is a vast and varied country and it was difficult to design a research approach that would cover multiple regions with adequate depth in the time we had available. We decided early on to focus this initial phase of our India research program in the north, specifically in Delhi, rural Rajasthan, and Jaipur.

This research used a variety of methodologies to gather data. We conducted one-on-one interviews in Delhi and Jaipur and worked with community members and local researchers to meet with local families, shopkeepers, and visit rural villages. In addition, we also conducted informal ethnographic observation during our two weeks in India.

India 3

Pre-loaded content & mobile usage in rural Rajasthan (Photos by Gemma Petrie)

Ethnographic Observation

One of our primary goals was to immerse our field team in Indian daily life and culture. Our large group and broad geographic research area presented some initial challenges during our planning stage. We made the decision to engage dscout to bring some order to our data collection and help field team members that were new to research think about how to capture and analyze their experiences.

We split each day into two modules with different themes like phone stores, mobile content, or family. We then divided our field team into small groups, accompanied by Mozilla community members, to explore different areas. Each group added photos, videos, and answers to a few short questions to dscout, allowing us to quickly gather a large amount of structured information on each theme. This data, combined with our team’s first-hand field experiences, provided a valuable contextual foundation for our research.

Mobile Open Houses

We conducted one-on-one interviews with 55 recruited participants at “Open House” events in Delhi and Jaipur. The interviews were split into four main topic areas: Current phone and technology usage, phone purchasing process, mobile content, and Firefox OS device user testing.

We’ll be sharing our findings from the Open Houses and our other research activities soon. Stay tuned!

WebmakerHOWTO: apply for Webmaker badges

(cross-posted from Web Literacy Lead Doug Belshaw‘s blog)

Super Mentor 02

We’re in full swing with Webmaker contribution and web literacy badges at the moment, so I wanted to take a moment to give some advice to people thinking of applying. We already have a couple of pages on the Webmaker blog for the Mentor and Super Mentor badges:

However, I wanted to give some general advice and fill in the gaps.

First of all, it’s worth sharing the guidance page for the people reviewing your application. In the case of a Webmaker Super Mentor badge, this will be a Mozilla paid contributor (i.e. staff member), but for all other badges it may be community member who has unlocked the necessary privileges.

To be clear:


The best applications we’ve seen for the Webmaker badges so far take the explain how the applicant meets each of the relevant criteria on the badge detail page.

For example, this was Stefan Bohacek‘s successful application for the Sharing ‘maker’ badge:

1) Sharing a resource using an appropriate tool and format for the audience: I wrote tutorials for people learning to make websites and web apps and shared them on my blog: http://blog.fourtonfish.com/tagged/tutorial. These also exist as a teaching kit on Webmaker — see my blogpost with a link here: http://blog.fourtonfish.com/post/89157427285/mozilla-webmaker-featured-teaching-kit. Furthermore I created resources for web developers such as http://simplesharingbuttons.com (also see: http://badges.p2pu.org/en/project/477 and some other (mini-)projects here: https://github.com/fourtonfish.

2) Tracking changes made to co-created Web resources: I use GitHub for some of my personal projects (although I only received a handful of opened issues) and GitLab with clients I worked with/for.

3) Using synchronous and asynchronous tools to communicate with web communities, networks and groups: https://twitter.com/fourtonfish — I follow some of the members of Webmaker. https://plus.google.com/+StefanBohacek/posts — I am a member of the Webmaker community. http://webdevrefinery.com/forums/user/18887-ftfish — I (infrequently) post here, share ideas, comment on ideas of others etc. [REDACTED EMAIL ADDRESS] — I wouldn’t be able to finish my teaching kit without the help of other webmakers and my email account to communicate with them

Note that Stefan earned his badge for numbers 1) and 3) in the above example. This was enough to meet the requirements as the badge is awarded for meeting any two of the criteria listed on the badge detail page. He did not provide any evidence for using GitHub, as mentioned in 2), so this was not used as evidence by the person reviewing his application.


Applying for a badge is just like applying for anything in life:

  • Make the reviewer’s job easy — they’re looking at lots of applications!
  • Tell the reviewer which of the criteria you think you have met.
  • Include a link for each of the criteria — more than one if you can.
  • If you are stuck, ask for help. A good place to start is the Webmaker discussion forum, or if you know someone who’s already got that badge, ask them to help you!

Image credit:

Firebug BlogFirebug 2.0.2

The Firebug team released Firebug 2.0.2. This version represents maintenance release fixing some reported issues.

 

Firebug 2.0.2b1 has also been released to update users on AMO beta channel. This version is exactly the same as 2.0.2

 

Firebug 2.0.2 is compatible with Firefox 30 – 32

Firebug 2.0.2 fixes 8 issues.

 

Please post feedback in the newsgroup, thanks.

Jan ‘Honza’ Odvarko

 

Mozilla KoreaFirefox OS 글로벌 출시 국가 추가 확대

Firefox OS는 모바일 생태계의 확산 기세를 타고 유럽, 남미, 아시아 태평양 지역에서 다양한 분야의 디바이스나 제품으로 급속히 확대하고 있습니다. Firefox OS를 탑재한 첫 스마트 폰이 발표된 지 불과 1년 사이에 대형 통신 회사 5개사에서 7개 기종의 스마트 폰이 15개국에서 시판되고 있습니다. 이는 Firefox OS의 생태계가 탄탄하고, 업계에서 널리 보급되고 있음을 보여 줍니다.

새로운 동반자, 시장, 비즈니스 기회
Firefox OS는 유연성, 확장성 및 높은 맞춤 기능을 실현하기 위한 플랫폼으로서 웹 기술을 활용했고 폐쇄적인 모바일 운영 체계의 제약이나 제한이 없습니다. 웹 플랫폼의 성공과 발전에 힘입어 글로벌 통신사와 지역 통신 회사가 각각의 시장에서 계속 Firefox OS 향상에 주력하고 있습니다.

“Firefox OS는 과거에는 “기타”에 분류되는 OS 이었지만, 지금은 글로벌 스마트 폰 업계에서 최상 플랫폼의 하나로 여겨진다”라고 Strategy Analytics의 글로벌 무선 프랙티스(GWP)담당 이사, Neil Mawston라고 전합니다. 또한, “대형 통신사와 하드웨어 업체로부터 큰 관심이 쏠리면서 Firefox OS는 중요한 지역에 진출해 대형 소프트웨어 회사 제품에 대항할 수 있었습니다”라고 밝혔습니다.

FFxOS_Markets_Animated_2_560k

유럽 시장 확장
Deutsche Telekom은 새 ALCATEL ONETOUCH Fire E스마트 폰을 판매하는 첫 통신사가 됩니다. 이 스마트 폰은 이번 주 Congstar을 통해 독일로 제공이 개시됩니다. Deutsche Telekom은 향후 몇개월 사이에, 크로아티아, 체코 공화국, 마케도니아, 몬테네그로에서도 새로 Firefox OS탑재 스마트 폰의 제공을 개시할 예정입니다.

Telefonica는 O2가 ALCATEL ONETOUCH Fire E스마트 폰을 독일에서 ZTE는 프랑스에서 제공되는 첫 Firefox OS탑재 스마트 폰으로 ZTE Open C를 이달 말 발표할 예정입니다.

남미 시장 확장
Telefonica는 Firefox OS탑재 스마트 폰의 제공을 향후 몇개월 내에 중앙 아메리카로 확대하고, 그 후 아르헨티나와 에콰도르에도 확대해 올해 말까지 중남미의 모든 시장에서 제공할 예정입니다. 이 회사는 Firefox OS탑재 스마트 폰의 제공 기종도 넓히고 있습니다. 얼마 전 이 지역에서 ZTE Open C 및 Open II스마트 폰의 제공을 개시했으며, 곧 Alcatel ONETOUCH Fire C 스마트 폰도 투입할 예정입니다. 모든 기종으로 Firefox OS최신 버전이 동작합니다.

America Movil은 올 여름 초에 멕시코에서 Firefox OS탑재 스마트 폰의 제공을 개시했으며, 올해 말까지는 라틴 아메리카에서 제공을 확대하겠다고 약속하고 있습니다.

아시아 태평양 시장 확장
Spice와 Intex는 초저가 Firefox OS탑재 스마트 폰을 인도에서 곧 판매를 시작합니다. Telenor는 올해 말까지 아시아에서 Firefox OS탑재 스마트 폰의 제공을 개시합니다. 대만 시장에서 Firefox OS의 제공을 약속하는 통신 회사는 20개사 이상이며 거기에 얼마 전 대만 최대 통신사인 Chunghwa Telecom이 추가됩니다.

향후 전망
Firefox OS 생태계의 확대에 따라 Mozilla는 파트너들과 협력하고 생태계의 경험을 고사양 스마트폰에도 적용하고 웹 플랫폼의 유연성을 실현하고자 합니다.

Firefox OS 생태계 시스템에서의 설계, 개발, 테스트를 가속시키기 위해 Mozilla는 Thundersoft와 제휴해 개발자용 단말기인 Flame의 제조와 판매를 실시하고 있습니다. Flame은 Mozilla와 파트너들이 향후 1년간 발매하는 중간급 스마트 폰을 대표하는 것입니다.

Flame은 Everbuying.com에서 현재 온라인으로 구매가 가능하며, 누구나 구매해서 사용할 수 있습니다.

Mozilla는 향후도 Firefox OS를 진화시켜 연락처 동영상, 이미지 등의 콘텐츠를 쉽게 공유하기 위한 NFC 확장, Bluetooth 접속 기능 및 고속 모바일 체험을 제공하는 LTE 지원, 모든 서비스에서 Firefox를 안전하고 쉽게 사용하기 위한 Firefox Accounts 등 탑재를 진행 중입니다. Firefox Accounts는 Firefox Marketplace, Firefox Sync디바이스의 백업, 클라우드 스토리지 등의 서비스로 이용할 수 있습니다. 또한, 스마트 폰 분실이나 도난이 발생했을 때 그 스마트 폰이 있는 곳을 찾아 메시지를 송신하거나 스마트 폰 상의 데이터를 소거하는 서비스로도 이용할 수 있습니다.

Mozilla는 파나소닉과 협력해 Firefox OS가 가동하는 차세대 Smart TV의 개발을 진행하고 있습니다. 또한 Abitcool은 호환성 있는 모바일 디바이스나 웹앱에서 HDTV에 콘텐츠를 보낼 수 있는 HDMI 스트리밍 디바이스를 올해 말에 발표할 예정입니다.

Mozilla의 CTO Andreas Gal은 “올해는 Firefox OS에 있어서 비약적인 성장과 멋진 비즈니스 기회가 있습니다. Firefox OS는 진짜 의미에서 오픈 소스인 유일한 모바일 플랫폼이며, 사용자, 개발자, 업계 관계자를 모바일 시장의 폐쇄적 시스템과 콘텐츠의 감시에서 벗어나게 할 대안이다. Mozilla는 이러한 혁신을 새로운 신흥 시장과 사용자 디바이스로 펼치고 있습니다. 이러한 목표가 구체화 되면, 머지않아 모글로벌 시장에서 사용자 여러분의 생활의 새로운 분야에도 펼쳐질 것이다”라고 밝혔습니다.

이 글은 미국 Mozilla 블로그의 Firefox OS Ecosystem Shows Strong Momentum and Expands Across New Devices, Markets and Categories의 번역 및 일부 편집본입니다.

The Mozilla BlogFirefox OS Ecosystem Shows Strong Momentum and Expands Across New Devices, Markets and Categories

Firefox OS has unlocked the mobile ecosystem and is quickly expanding across a broad range of devices and product categories in Europe, Latin America and Asia Pacific. Just one year after the first devices were launched, Firefox OS is now … Continue reading

The DenThe results are in

Millions of you have voted in the Web We Want campaign (thank you!) and had your say on what you think matters most for the future of the Web. Topping the list was safeguarding privacy — a matter that is extremely important to us as well. In fact, it’s one of our core principles.

We not only believe in your right to privacy online, we fight for it and continue to build innovative features into Firefox that help keep you in control of your online life.

Learn more about how Firefox is designed to protect your privacy.

Meeting NotesMobile: 2014-07-16

Schedule

  • Next merge: 2014-07-21

Topics for This Week

Search activity
Hack week in SF this week.

Suggested sites in distributions
Landed in m-c today.

Post-merge Review
Next week is merge week. Tuesday’s product meeting will review features that landed in Aurora and backout those that aren’t ready.

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.

  • Bryan Kok worked on bug 1034385 – Empty private tabs panel can be saved as pdf

  • amoghbl1 fixed bug 755228 – ‘Add Search Engine’ label on text input fields should be ‘Add as Search Engine’
  • Capella fixed bug 1037527 – Auto-expand synced tabs clients and bug 1030060 – Regression in Find-In-Page logic

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>

Alan K. (ack)

Last week:

  • PTO

This week:

  • More review changes, getting closer to landing this

  • Allocating some time for partner support

JChen

<Read Only> (PTO today)

Past week
Fixed
Working on

GCP

  • Last week:

    • Screen sharing bug 983504 Make GUM able to pull screen into a MediaStream

    • Various build fixes, some interesting bug 1038799 mouse_cursor_monitor_x11.o: requires dynamic R_X86_64_PC32 reloc against ‘XFixesGetCursorImage’
  • Next week:
    • Window / application sharing

    • bug 1036653 Implement application sharing for getUserMedia
    • bug 1037997 Support multiple monitors for getUserMedia
    • bug 1038926 Add support for window sharing for getUserMedia

Randall Barker

  • Last Week: Got WebRTC standalone patches ready for review.

  • This Week: Get WebRTC standalone patches reviewed. Work on OpenGL WebRTC video player.

Eugen Sawin

Past
  • Janus Proxy (https://wiki.mozilla.org/Mobile/Janus)

    • Multi-phase response chain (low latency vs. bandwidth saving modes)

    • Metrics reporting (proper handling of timeouts and error conditions)
    • Metrics dashboard
Present & Future

Sylvain Cleymans

Last week:

  • Nearly done with Marionette integration.

Next week:

  • Integrate mozjpeg 2.0

  • Fix redirections
  • Work on page loads tests

Martin (mmcdonough)

  • Last Week: Tried to get AAC decoding working within the Fragmented MP4 Reader

  • This Week: Get MediaCodec working directly using MediaExtractor

Brian Nicholson

Done

  • bug 1035439 – Opening a tab from Recent Tabs panel doesn’t work in private browsing

  • bug 1035335 – Searches for numbers result in a search conducted on the actual entire Google Search URL no matter the engine
  • bug 987864 – crash in android.content.res.Resources$NotFoundException
  • bug 1027135 – Fix PageActionLayout concurrency issues
  • bug 1027137 – PageActionLayout cleanup

Next

  • rAc Android UI

LucasR

<Read Only>

Last week

  • bug 1012462 – Support suggested sites in distribution files

  • bug 1034167 – TwoWayView crashes in Android L
  • bug 1037439 – Remove DISPLAY columns from TopSitesCursorWrapper
  • bug 1010986 – Dynamic panel list view drawn only after scrolling
  • bug 1025062 – Verify that a site is not yet pinned before adding a dupe
  • bug 1025812 – Last added pin to Top Sites Grid has the name grayed out
  • bug 1039471 – crash in java.lang.IllegalStateException: Fragment RecentTabsPanel{422715c0} not attached to Activity at android.support.v4.app.Fragment.getLoaderManager(Fragment.java)

Next week

  • Start tablet engineering planning

  • Keep an eye on suggested sites v2 fallouts

liuche

<Read Only>

Margaret

<Read Only>

Highlights
  • Search activity hacking!
Fixed
Working on

eedens

Current

mcomella

<Read Only>

Past
  • bug 1021356 – Refine visuals in empty private tabs screen
Present
  • bug 1025546 – Support various image views in Hub panels

  • bug 1020534 – Tablet toolbar icons hard to read on dark lightweight themes
  • bug 1030363 – Create Sound.jsm for Android
  • bug 1037740 – Private Tabs verbiage is truncated on small tablet
  • bug 1039062 – Remote tabs tray distorted in portrait mode on phone
Future
  • Too busy with other things:

    • 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 983437 – Delay FHR pruning until the screen is off
  • bug 989441 – Centralized documentation for writing tests

RNewman

<Read Only>

  • Downloadable distributions is done. Thanks to lucasr for getting suggested sites done!

  • Reviewing search history recording.
  • Starting to review stumbler code.
  • Random Kindle and locale switching backlog, digging through crashes. (E.g., bug 1018240, bug 1031872.)
  • Meeeeeeetings and buugggggs.
Fixed
Working on

Chris Kitching

  • bug 1039164 – Minor bugfix for `mach mercurial-setup` failing to handle corrupt mercurial config fles. (It got in my way).

  • bug 948509 – More work on “bubbles”. See vaguely interesting screencast:

https://www.dropbox.com/s/8qy8g7l1pw269rl/mergingBubblesForReal.mp4
(and most recent comment for some sort of explanation thereof).

nalexander

<Read Only>

MFinkle

  • Playing with FHR data and scripts

Anthony Lam

<Read Only>

  • Last week

    • Tablets UX/UI design
  • Next up
    • IN SF for Search Activity

Yuan Wang

  • Launcher and lock screen synthesis

  • Onboarding workshop with Firefox UX
  • Getting insights from SUMO and telemetry about onboarding
  • Talk to Chris Kitching about Share/Send to Firefox

WebRT

  • preparing to land support for multiple apps per origin early next cycle in DOM bug 778277 and Fennec bug 778279

  • puzzling over bug 1026263 – Error writing default prefs during packaged web app installation
  • considering uplift for bug 1003962 – Line Runner hangs on launch with white screen
Ad astra…
  • bug 1003962 Line Runner hangs on launch with white screen – fixed; considering uplift

  • bug 997717 Errors during package download aren’t handled correctly – patch has review; ready to land
  • bug 1029691 Manifest not being checked on APK installation – patch has feedback
  • bug 1009954 implement unit tests for WebappManager – patch needs updating
  • bug 986085 User-hand-holding to check the Unknown Sources checkbox – patch needs updating
  • bug 778279 Add support of installing of multiple apps off of the same origin for the android web runtime – work-in-progress patch
  • bug 878830 Unable to install any form of web application on the Samsung Galaxy SIV – jhugman to get device
  • bug 1021395 Web app machinery dumps lots of semi-sensitive data to logcat – blocked on bug 1032936
  • bug 960584 notify user of download progress indication when fetching APK – blocked on bug 1029691
  • bug 960703 Manifest icon not used for synthesized APK in Android 2.3 – needs info from jhugman
  • bug 1026263 Error writing default prefs during packaged web app installation – stalled

QA

Garvan

  • Stumbler build integration is landed.

  • Want to get stumbler landed for nightly, todos for that: further code review, upload scheduling code changed.
  • Trying to do QA on the stumbler in Fennec in its current state
  • PTO next week (cottaging)

Feature Focus

Firefox 31 (Beta) – Release: Jul 22, 2014

Firefox 32 (Aurora) – Release: Sep 2, 2014

Firefox 33 (Nightly) – Release: Oct 14, 2014


Details

  • 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