Open Policy & AdvocacyAadhaar isn’t progress — it’s dystopian and dangerous

This opinion piece by Mozilla Executive Chairwoman Mitchell Baker and Mozilla community member Ankit Gadgil first appeared in the Business Standard.

Imagine your government required you to consent to ubiquitous stalking in order to participate in society — to do things such as log into a wifi hotspot, register a SIM card, get your pension, or even obtain a food ration of rice. Imagine your government was doing this in ways your Supreme Court had indicated were illegal.

This isn’t some dystopian future, this is happening in India right now. The government of India is pushing relentlessly to roll out a national biometric identity database called Aadhaar, which it wants India’s billion-plus population to use for virtually all transactions and interactions with government services.

The Indian Supreme Court has directed that Aadhaar is only legal if it’s voluntary and restricted to a limited number of schemes. Seemingly disregarding this directive, Prime Minister Narendra Modi’s government has made verification through Aadhaar mandatory for a wide range of government services, including vital subsidies that some of India’s poorest citizens rely on to survive. Vital subsidies aren’t voluntary.

Even worse, the government of India is selling access to this database to private companies to use and combine with other datasets as they wish. This would allow companies to have access to some of your most intimate details and create detailed profiles of you, in ways you can’t necessarily see or control. The government can also share user data “in the interest of national security,” a term that remains dangerously undefined. There are little to no protections on how Aadhaar data is used, and certainly no meaningful user consent. Individual privacy and security cannot be adequately protected and users cannot have trust in systems when they do not have transparency or a choice in how their private information will be used.

This is all possible because India currently does not have any comprehensive national law protecting personal security through privacy. India’s Attorney General has recently cast doubt on whether a right to privacy exists in arguments before the Supreme Court, and has not addressed how individual citizens can enjoy personal security without privacy.

We have long argued that enacting a comprehensive privacy and data protection law should be a national policy priority for India. While it is encouraging to see the Attorney General also indicate to the Supreme Court in a separate case that the government of India intends to develop a privacy and data protection law by Diwali, it is not at all clear that the draft law the government will put forward will contain the robust protections needed to ensure the security and privacy of individuals in India. At the same time, the government of India is still exploiting this vacuum in legal protections by continuing to push ahead with a massive initiative that systematically threatens individuals’ security and privacy. The world is looking to India to be a leader on internet policy, but it is unclear if Prime Minister Modi’s government will seize this opportunity and responsibility for India to take its place as a global leader on protecting individual security and privacy.

The protection of individual security and privacy is critical to building safe online systems. It is the lifeblood of the online ecosystem, without which online efforts such as Aadhaar and Digital India are likely to fail or become deeply dangerous.

One of Mozilla’s founding principles is the idea that security and privacy on the internet are fundamental and must not be treated as optional. This core value underlines and guides all of Mozilla’s work on online privacy and security issues—including our product development and design decisions and policies, and our public policy and advocacy work. The Mozilla Community in India has also long sought to empower Indians to protect their privacy themselves including through national campaigns with privacy tips and tools. Yet, we also need the government to do its part to protect individual security and privacy.

The Mozilla Community in India has further been active in promoting the use, development, and adoption of open source software. Aadhaar fails here as well.

The Government of India has sought to soften the image of Aadhaar by wrapping it in the veneer of open source. It refers to the Aadhaar API as an “Open API” and its corporate partners as “volunteers.” As executive chairwoman and one of the leading contributors to Mozilla, one of the largest open source projects in the world, let us be unequivocally clear: There’s nothing open about this. The development was not open, the source code is not open, and companies that pay to get a license to access this biometric identity database are not volunteers. Moreover, requiring Indians to use Aadhaar to access so many services dangerously intensifies the already worrying trend toward centralisation of the internet. This is disappointing given the government of India’s previous championing of open source technologies and the open internet.

Prime Minister Modi and the government of India should pause the further roll out of Aadhaar until a strong, comprehensive law protecting individual security and privacy is passed. We further urge a thorough and open public process around these much-needed protections, India’s privacy law should not be passed in a rushed manner in the dead of night as the original Aadhaar Act was. As an additional act of openness and transparency and to enable an informed debate, the government of India should make Aadhaar actually open source rather than use the language of open source for an initiative that has little if anything “open” about it. We hope India will take this opportunity to be a beacon to the world on how citizens should be protected.

The post Aadhaar isn’t progress — it’s dystopian and dangerous appeared first on Open Policy & Advocacy.

Mozilla Add-ons BlogView Source links removed from listing pages

Up until a few weeks ago, AMO had “View Source” links that allowed users to inspect the contents of listed add-ons. Due to performance issues, the viewer didn’t work reliably, so we disabled it to investigate the issue. Unfortunately, the standard error message that was shown when people tried to click the links led to some confusion, and we decided to remove them altogether.

What’s Next for Source Viewing

The open issue has most of the background and some ideas on where to go from here. It’s likely we won’t support this feature again. Instead, we can make it easier for developers to point users to their code repositories. I think this is an improvement, since sites like GitHub can provide a much better source-viewing experience. If you still want to inspect the actual package hosted on AMO, you can download it, decompress it, and use your tool of preference to give it a look.

The post View Source links removed from listing pages appeared first on Mozilla Add-ons Blog.

Air MozillaLocalization Community Bi-Monthly Call, 25 May 2017

Localization Community Bi-Monthly Call These calls will be held in the Localization Vidyo room every second (14:00 UTC) and fourth (20:00 UTC) Thursday of the month and will be...

Mozilla L10NTaipei Localization Workshop

In front of the iconic Taipei 101.

In discussing our plans for this years’ event, the city of Taipei was on a short list of preferred locations. Peter from our Taipei community helped us solidify the plan. We set the date for April 21-22 in favour of cooler weather and to avoid typhoon season!  This would be my third visit in Taiwan.

Working with our community leaders, we developed nomination criteria and sent out invitations. In addition to contributing to localizing content, we also reviewed community activities in other areas such as testing Pontoon, leading and managing community projects, and active participation in community channels.

360° view of the meetup.

In total, we invited representatives from 12 communities and all were represented at our event. We had a terrific response, more than 80% of the invitees accepted the invitation and were able to join us. It was a good mix of familiar faces and newcomers. We asked everyone to set personal goals in addition to team goals. Flod and Gary joined me for the second year in a row, while this was Axel’s first meeting with these communities in Asia.

Based on the experience and feedback from last year’s event, we switched things up, balancing discussion and presentation sessions with community-oriented breakout sessions throughout the weekend. These changes were well received.

Our venue was the Mozilla Taipei office, right at the heart of financial centre, a few minutes from Taipei 101. On Saturday morning, Axel covered the removal of the Aurora branch and cross-channel, while later Flod talked about Quantum and Photon and their impact on localization. We then held a panel Q&A session with the localisers and l10n-drivers. Though we solicited questions in advance, most questions were spontaneous, both technical and non-technical. They covered a broad range of subjects including Firefox, new brand design, vendor management and crowd sourcing practices by other companies. We hoped this new format would be interactive. And it was! We loved it, and from the survey, the response was positive too. In fact, we were asked to conduct another session the following day, so more questions could be answered.

Localisers were briefed on product updates.

The upcoming Firefox browser launch in autumn creates new challenges for our communities, including promoting the product in their languages. In anticipation, we are developing a Firefox l10n marketing kit for the communities. We took advantage of the event to collect input on local experiences that worked well and that didn’t. We covered communication channels, materials needed for organising an event, and key messages to promote the localised product. Flod shared the design of Photon, with a fun, new look and feel.

On Sunday, Flod demonstrated all the new development on Pontoon, including how to utilise the tool to work more efficiently. He covered the basic activities for different roles as a suggester, as a translator and as a locale manager. He also covered advanced features such as batch processing, referencing other languages for inspiration and filters, before describing future feature improvements. Though it was unplanned, many localisers tried their hands on the tool while they listened in attentively. It worked out better than expected!

Quality was the focus and theme for this year’s event. We shared test plans for desktop, mobile, and, then allowed the communities to spend the breakout sessions testing their localisation work. Axel also made a laptop available to test Windows Installer. Each community worked on their group goals between sessions for the rest of the weekend.

Last stop of the 貓空纜車 (Maokong Gondola ride)

Of course, we found some time to play. Though the weather was not cooperative, we braved unseasonally cold, wet, and windy weather to take a gondola ride on 貓空纜車 (Taipei Maokong Gondola) over the Taipei Zoo in the dark. Irvin introduced the visitors to the local community contributors at 摩茲工寮  (Mozilla community space). Gary led a group to visit Taipei’s famed night markets. Others followed Joanna to her workplace at 三七茶堂 (7 Tea House), to get an informative session on tea culture. Many brought home some local teas, the perfect souvenir from Taiwan.

Observing the making of the famous dumplings at 鼎泰豐 (Din Tai Fung at Taipei 101)

We were also spoiled by the abundance of food Taipei had to offer. The local community put a lot of thought in the planning phase. Among the challenges were the size of the group, the diversity of the dietary needs, and the desire of having a variety of cuisines. Flod and Axel had an eye opening experience with all the possible food options! There was no shortage, between snacks, lunch and dinner. Many of us gained a few pounds before heading home.

All of us were pleased with the active participation of all the attendees, their collaborations within the community and beyond. We hope you had achieved your personal goals. We are especially grateful for the tremendous support from Peter, Joanna and Lora who helped with each step of the planning, hotel selection, transportation directions, visa application process, food and restaurant selections and cultural activities. We could have not done it with their knowledge, patience and advice in planning and execution. Behind the scenes, community veterans Bob and Irvin lent their support to make sure things went as seamlessly as possible. It was true team effort to host a successful event of this size. Thanks to you all for creating this wonderful experience together.

We look forward to another event in Asia next year. In which country, using what format? We want to hear from you!

Air MozillaEmerging Technologies Speaker Series 5.25.17

Emerging Technologies Speaker Series 5.25.17 The Emerging Technologies (Distinguished) Speaker Series is a fortnightly 1-hour speaker series on Tuesdays at 10am, for both external and internal speakers to speak on...

Air MozillaReps Weekly Meeting May 25, 2017

Reps Weekly Meeting May 25, 2017 This is a weekly call with some of the Reps to discuss all matters about/affecting Reps and invite Reps to share their work with everyone.

Mozilla IndiaRainOfRust Campaign – Trailer

Hey awesome Mozillians!

We are really happy to announce the Rain of Rust Campaign, a month-long global campaign which would be specifically focused on the Rust language. It is going to take place in  June 2017 in collaboration with the Rust community.

Here are some of the things about the campaign:

What is the campaign all about?

  • This campaign is specifically focused on the Rust Language.
  • The aim of this campaign is to increase the Rust outreach and train developers to contribute in the Rust ecosystem
  • Formation of regional Rust communities.
  • The campaign is Rust beginners and moderates centric.

Who can be a part of this campaign?

  • Students -> Learn Rust
  • Developers -> Adopt Rust
  • Tech Speakers -> Speak about Rust
  • Curriculum Designers -> Design Rust teaching kits
  • Localizers -> Localize Rust teaching kits
  • Leaders -> Form and lead regional Rust communities

How can you get involved?

  • Participate in online and offline Rust events
  • Organize online and offline Rust events
  • Learn and adopt Rust and hack teaching kits
  • Be the regional #RainOfRust representative; join the Telegram channel
  • Localize Rust teaching kits

Interested in joining us? Let us know by adding a comment on this discourse topic.

Teaching kits and further announcements to follow soon!

Boots up! Its gonna get Rusty! 🙂


Mehul Patel.
On behalf of Mozilla India


Air MozillaBugzilla Project Meeting, 24 May 2017

Bugzilla Project Meeting The Bugzilla Project developers meeting.

Air Mozilla2017 Global Sprint Ask Me Anything #2

2017 Global Sprint Ask Me Anything #2 We'll be answering questions and chatting about the 2017 Global Sprint, Mozilla's 2-day, world-wide collaboration party for the open web.

Air MozillaWeekly SUMO Community Meeting May 24, 2017

Weekly SUMO Community Meeting May 24, 2017 This is the sumo weekly call

Air MozillaMay 2017 Privacy Lab - Privacy on the Blockchain: An Introduction to Zcash

May 2017 Privacy Lab - Privacy on the Blockchain: An Introduction to Zcash Kevin Gallagher will talk about Zcash and privacy. Zcash is the first open, permissionless cryptocurrency that can fully protect the privacy of transactions using zero-knowledge...

Firefox UXFree Templates to Keep Your Design Sprint on Track

Like many organizations, Mozilla Firefox has been experimenting with the Google Ventures Design Sprint method as one way to quickly align teams and explore product ideas. Last fall I had the opportunity to facilitate a design sprint for our New Mobile Experiences team to explore new ways of connecting people to the mobile web. Our team had a productive week and you can read more about our experience in this post on the Sprint Stories website.

This year, Google I/O included a panel of Google “Sprint Masters” discussing how they use Design Sprints in their work: Using Design Sprints to Increase Cross-Functional Collaboration. A common theme during the discussion was the importance of detailed facilitator planning in advance of the Design Sprint.

What is the most important thing to do in preparing for a Sprint?
“The most important thing is planning, planning, and then more planning. I want to emphasize the fact that there are unknowns during a Design Sprint, so you have to even plan for those. And what that looks like is the agenda, how you want to pace the activities, and who you want in the room.” — Ratna Desai, Google UX Lead

When I was planning my first Design Sprint as a facilitator, I was grateful for the detailed daily outlines in the GV Library, as well as the Monday morning kickoff presentation. But, given the popularity of Design Sprints, I was surprised that I was unable to find (at the time at least) examples of daily presentations that I could repurpose to keep us on track. There is a a lot to cover in a 5 day Design Sprint. It’s a challenge to even remember what is coming next, let alone keep everything timely and orderly. I relied heavily on these Keynote slides to pace our activities and I hope that they can serve as a resource for other first time Design Sprint facilitators by cutting down on some of your planning time.

These slides closely follow the basic approach described in the Sprint book, but could be easily modified to suit your specific needs. They also include some presenter notes to help you describe each activity. Shout out to Unsplash for the amazing photos.

Design Sprint Daily Agenda Templates


Monday Keynote Slides (link)

10:00 — Introductions. Sprint overview. Monday overview.
10:15 — Set a long term goal. List sprint questions.
11:15 — Break
11:30 — Make a map
12:30 — Expert questions
1:00 — Lunch
2:00 — Ask the experts. Update the map. Make “How might we” notes.
4:00 — Break
4:15 — Organize the HMW notes. Vote on HMW notes.
4:35 — Pick a target


Tuesday Keynote Slides (link)

10:00 — Lightning demos
11:30 — Break
11:45 — Continue lightning demos
12:30 — Divide or swarm
1:00 — Lunch
2:00 — Four Step Sketch: Notes
2:30 — Four Step Sketch: Ideas
3:00 — Four Step Sketch: Crazy 8s
3:30 — Break
3:45 — Four Step Sketch: Solution sketch
4:45 — Recruitment criteria


Wednesday Keynote Slides (link)

10:00 — Sticky decisions: Showcase and vote
11:30 — Break
11:45 — Concept selection: Evaluate and vote
1:00 — Lunch
2:00 — Make a storyboard
3:30 — Break
3:45 — Complete storyboard
4:45 — Select participants


Thursday Keynote Slides (link)

10:00 — Pick the right tools. Divide and conquer.
10:10 — Prototype
11:30 — Break
11:45 — Prototype. Begin interview guide.
1:00 — Lunch
2:00 — Stitch it together. Test run video set-up
2:45 — Prototype demo
3:00 — Pilot interview
3:30 — Break
3:45 — Finish prototype. Update interview guide.
4:45 — Interview preparations.


Friday Keynote Slides (link)

9:00 — Interview #1
10:00 — Break
10:30 — Interview #2
11:30 — Early lunch
12:30 — Interview #3
1:30 — Break
2:00 — Interview #4
3:00 — Break
3:30 — Interview #5
4:30 — Debrief

Free Templates to Keep Your Design Sprint on Track was originally published in Firefox User Experience on Medium, where people are continuing the conversation by highlighting and responding to this story.

Air MozillaMartes Mozilleros, 23 May 2017

Martes Mozilleros Reunión bi-semanal para hablar sobre el estado de Mozilla, la comunidad y sus proyectos. Bi-weekly meeting to talk (in Spanish) about Mozilla status, community and...

The Mozilla BlogMozilla Thimble Gets a Makeover

We’re introducing major upgrades to our educational code editor


Learning to code—from getting the hang of HTML tags to mastering the nuances of JavaScript—shouldn’t be a challenge. It should be fun, intuitive, hands-on and free of cost.

That’s why Mozilla built Thimble nearly five years ago. Much like Firefox enables users to browse the web, Thimble enables users to learn the web. It’s our browser-based tool for learning to code.

Today, we’re proud to announce Thimble is getting a makeover.

We’re introducing a suite of new features to make learning and teaching code even easier. Why? When more people can shape, and not just consume the web, the Internet becomes a healthier and more egalitarian, inclusive and funky place.

Thimble has taught hundreds of thousands of people across more than 200 countries. It’s been localized into 33 languages, and used in classrooms, at hackathons and at home. Thimble has also proved to be more than an educational code editor—it’s a creative platform. Thimble users can create personal webpages, comic strips, post cards, games and more.

And in true Mozilla fashion, Thimble is an open-source project. Many of those who learn to code with Thimble later return to offer tweaks and upgrades. Over 300 contributors from dozens of countries help build Thimble. Learn more about them here.

New Features


  • JavaScript console. Users can now debug their JavaScript projects within Thimble. It’s a simpler experience than the browser console, which can be cluttered and intimidating


  • Code snippets menu. Access a handy menu populated with HTML, CSS and JavaScript snippets. Creating content just got easier


  • ‘Favorite’ feature. Bookmark, organize and easily access projects you’re currently working on


  • Edit SVG image code directly. You can now change properties of SVG images—like fill and stroke color—within Thimble. No need to use an external editor or image software


  • Tajik language support. Add one more language to Thimble’s repertoire: Tajik, which is spoken in Tajikistan and Uzbekistan


  • Plus more, like an upgraded color picker; visible white space in code; updated file icons; an improved homepage gallery; easier file import and export mechanics; and the ability to disable autocomplete

Mozilla owes a debt of gratitude to the network of developers, designers, teachers and localizers around the world who made these upgrades possible—more than 300 contributors from 33 countries, like Brazil, Turkey, China and the UK. Their commitment to web literacy and open-source software makes the Internet healthier.

Now: start coding.

The post Mozilla Thimble Gets a Makeover appeared first on The Mozilla Blog.

Air MozillaMozilla Weekly Project Meeting, 22 May 2017

Mozilla Weekly Project Meeting The Monday Project Meeting

Hive Learning Network NYCNew York 2017: State of the Hive Meet-up

Hive NYC’s State of the Hive 2017, our annual meetup to celebrate and assess the network’s strategic direction, was held on Friday, May 12th at Center for Social Innovation with 76 attendees from 53 organizations, community allies, and field partners.  In response to thoughtful feedback we heard from members last spring, Hive HQ has spent the past year with an intentional focus on creating a more inclusive network. This includes developing more opportunities to build trust and learn through critical and deep-dive conversations, and experimenting with participatory ways to foster engagement and collaboration for members across roles, professional experiences, learning styles, and programmatic areas.  Some of our efforts in these veins have included:

  • Collaborating with long-term members to create a more formal membership criteria that includes embedded values commitment to promoting digital equity and access for youth;
  • Hosting a wider range of meetups, such as our November digital equity roundtable and January online privacy & security workshop, to support members in exploring and unpacking issues that impact the well-being of young people they serve;
  • Piloting an evaluation cohort with members to measure the specific social emotional learning outcomes of youth digital learning programs. Our goal is to provide a resource to the field to improve pedagogy & program design and promote effective youth engagement practices in web literacy and digital learning; and
  • Designing and launching a new grantmaking program that promotes innovation and leadership among Hive NYC members.

We dedicated this year’s State of the Hive to reflecting on the progress we’ve made across the network, sharing what we’ve learned, and identifying ways for Hive to continually connect to and support each other’s work.

Community celebration

At Hive HQ, we believe that taking time to show up for and honor each other’s achievements is as important to meeting ongoing deliverables and deadlines.  So, to kick off the day, we asked each member to write down a few

accomplishments that they’ve been most proud of from the last year, and to plot these moments on a makeshift timeline we’d created along the wall.  The result was a beautiful visual representation of Hive NYC’s diverse ecosystem.  Some highlights include:

Check out the full timeline of Hive NYC achievements here.

City partnerships, youth pathways & quality learning

During the heart of our day, we lifted up the collaborative work that members have done in their working groups, inspired by members’ requests at State of the Hive 2016 to join in deeper conversations and more focused professional development and learning opportunities.  To create an open learning space during this session, we asked active members of each working group to lead a table discussion about their group topic, and for the remaining meetup participants to freely join the discussions that most interested them at their own pace.  The working group table discussions we hosted were:

Youth Digital Media Evaluation Cohort, facilitated by Laura from EVC:  As mentioned above, this group is focused on evaluating the effectiveness of youth-focused digital learning programs on improving social and emotional learning outcomes for youth.

CS-Paths, facilitated by Rafi and Dixie from Hive Research Lab: A working group that’s part of an HRL-led research initiative to support the learning and identity-building trajectories of youth engaging in computing and digital making programs.

Building Connected Credentials, facilitated by John from ReelWorks: Launched with the support of a HASTAC-DML grant, this project has convened members to explore the power and potential of documenting youth learning–via such tools as digital portfolios or badges–that happens in one setting to unlock access to another learning opportunity, such as a job, academic credit, or program fee waiver.

City partnerships, facilitated by Brian from Beam Center and Zac from NYC Parks & Rec: This group has gathered throughout the year to explore strategies for organizations and networks like Hive to work more effectively together, and in partnership with city agencies, to provide higher quality and more efficient learning experiences for youth.

Wild Card, facilitated by Meghan from Mozilla Foundation and led by members: This table was left free for folks to meet and discuss whatever was on their minds.

While a range of ideas and recommendations emerged from these discussions, the strongest themes were:

  • A call for Hive organizations to develop shared narratives and frameworks to more effectively demonstrate their impact;
  • The need to identify more concrete outcomes and opportunities for improving youth learning, development, and pathways;
  • The importance of Hive in facilitating spaces for honest conversations, working through challenges, and thinking about how to bring a stronger social and racial justice lens to the network.

These are important priorities that Hive HQ will keep in mind as we map out the year ahead.  Some related events we already have in the works are a share-out of findings from our Youth Digital Media Evaluation Cohort at the July meetup and a workshop focused on racial equity in October.  Stay tuned for more!

Strengthening the Mozilla Network

To close out the day, Chris Lawrence, a Vice President at Mozilla, shared a strategy update from the Foundation, highlighting Mozilla’s:

  • Refined focus on 5 key issue areas–online privacy & security, open innovation, decentralization, web literacy, and digital inclusion–to promote internet health, and the importance of Hive NYC members’ leadership in driving this vision.
  • Creating a unified Mozilla Network that brings together all of the initiatives and leaders Mozilla supports.
  • New York City-focused partnerships with municipal agencies to provide digital security trainings to organizations serving vulnerable populations–with the aim of developing NYC as a digital sanctuary city–and other initiatives to decentralize the web.

Hive NYC’s expertise in developing emerging leaders, responding to needs of local communities, and working across sectors on a city level is essential to shaping Mozilla’s global strategy in advocating for an open, healthy internet.  We look forward to continuing learning and building with you all as the Foundation works to strengthen the Mozilla Network.

As always, thank you to all who joined us both this year and years past at our annual State of the Hive.
All photos in this post were taken by Christian Rodriguez, a NYC Salt alumn.


The post New York 2017: State of the Hive Meet-up appeared first on Hive NYC.

Mozilla IndiaGuest Post: FREE DIGITAL LITERACY for 100 students from unprivileged communities

This is a guest post by Biraj Karmakar, who has been active promoting Mozilla, Free Software, Advocacy and privacy in India for over 7 years

Volunteering with Mozilla, I learned that the term “Digital Literacy” has become more popular in the last few years. Humans have started communicating through a variety of digital mediums. From our workplace to educational facilities, digital technology revolutionized everything. This makes computer education very important. Information can be accessed by using the internet and digital literacy opens up many avenues.That’s why I started this initiative called “Digital Literacy Camp 2017“- this is my dream project. Here Mozilla is proud partner.

So let me tell you all about my Dream ProjectDigital Literacy Camp 2017 – aim to reach 100 students from the unprivileged communityage 8 – 25 years, in my city “Barasat”, Kolkata and make them powerful web citizens, transforming the little part of our whole country. 1 Common dream. The Desire to learn – Basic Computer Learning, Internet & Web Literacy, Spoken English and Smartphone usage.

Our training period is 1st Mar to 31st May 2017.

We think that this campaign also taught these students the power of teamwork. 100 smiling faces learning together, guided by a fabulous team, working for a greater good. We believe in their abilities, we believe they have the capability to make difference in the lives of others. Every citizen deserves a digital learning opportunity, no matter how tough the fight is.

Campaign Video

Project Goal

One-half of the world has access to computers while the other half knows nothing about the latest developments in the digital world. This digital impurity will ultimately harm them and as responsible digital citizens, it is our duty to prevent that. From learning about safe behaviour online to discovering new sources of learning, we must teach them, how to use computer, internet and smartphone in the right way.  If the students master these skills from this young age, it won’t be a problem in the future. Much like these students, parents should also get this awareness, because they ultimately inspire them to chase their dreams. They must know how to connect online and utilize the online resources.

The students will

  1. Understand the working of a computer and know about the various programs.
  2. Use English while communicating with others. 50% of the content produced on the internet is written in English, so the spoken English skills will come in handy.
  3. Utilize the power of the internet to understand the world in a better way.  They must know how to connect online and utilize the online resources. Even they can know more about privacy on their online life.
  4. They can know how the smartphone can transform their life. Also, we have selected some fun activities which will not only keep them interested but also develop a learning spirit in them


The world has now transformed into a global village and the digital literacy movement will touch every city one by one. We have selected some fun activities which will not only keep them interested but also develop a learning sprit in them. These beautiful minds will; get the best resources from us and that included proper infrastructure, skilled trainers, study material, internet and skill-based class training.


Digital footprints are permanent and if they lack digital knowledge, they will never develop the ability to differentiate between what is trustworthy on the web and what is not. As they are proceeding down this path, these young students are growing their vocabulary, learning how to do research and most importantly their critical thinking skills are developed.For more updates, please follow our facebook and twitter.

Campaign hashtag is #digitalcamp2017

Please read more about this campaign and how you as an organization, individual or a friend can help:

If you have any suggestions or comments please share with me at

Air MozillaWebdev Beer and Tell: May 2017

Webdev Beer and Tell: May 2017 Once a month web developers across the Mozilla community get together (in person and virtually) to share what cool stuff we've been working on in...

hacks.mozilla.orgShowcasing your WebVR experiences

WebVR combines the powerful reach of the Internet with the immersive appeal of virtual reality content. With WebVR, a VR experience is never more than one URL away. Nevertheless, VR equipment is still very expensive and not quite fully adopted for consumer use. For this reason, it is useful to be able to record your VR projects for others to experience and enjoy, at least from a viewer perspective.

Recording VR content

This video tutorial teaches you how to record a virtual experience you’ve created using the mirror mode in SteamVR. Capturing one eye allows your audience to enjoy the video in a regular 2D mode but capturing both eyes will enable a more immersive experience thanks to stereoscopic video.

This video tutorial assumes you have a SteamVR compatible setup and Open Broadcast Software installed.

There are other options for capturing your VR experiences. If you’re a Windows 10 user, perhaps you prefer to use Game DVR, which works out of the box.

Extract a GIF from your favorite cut

Now that you have a video with your VR content, you can make a GIF from it with Instagiffer for Windows. Instagiffer is not the fastest software out there, but the output quality of the GIFs is superb.

Start by installing and launching Instagiffer. The UI is split into three sections or steps.

A window with three sections for choosing the video, settings and preview

Click on Load Video in the Step 1 section, and select the video from which you want to extract the GIF.

When clicking load video, the Windows file selection dialog appears

Locate the sequence you want to convert into a GIF and fill the options in the Step 2 section. In this case, I want to extract 5.5 seconds of video starting from second 18; a sequence in which I shot an enemy bullet.

Three slide bars allow to modify start time, framerate (smoothness) and frame size. A text box indicates the length of the clip.

Length, Smoothness and Frame Size will affect the size of your GIF: the higher the values, the higher the size of the resulting file.

In Step 3 section, you can crop the image by dragging the square red helpers. In this case, I’m removing the black bands around the video. You can also use it to isolate each eye.

A red rectangle with two handlers in each corner represent the cropping area

Notice that the size of the GIF is shown in the bottom-right corner of the preview. You can adjust this size by moving the Frame Size slider in the Step 2 section.

Finally, click on the Create GIF! button at the bottom of the window to start the conversion.

A progress bar shows how it remains until completion

One of the things I love about Instagiffer is that, after finishing, it will display compatibility warnings about the GIF, testing on some of the most popular Internet services.

The notice shows warnings for Tumblr, Imgur and Twitter, pointing out problems with sizes and dimensions

Click on the final result to see the animation. It’s really good!

Capture of a A-Blast gameplay

If you are more into old-school tools, check out Kevin’s CLI utility Gifpardy and see how it goes.

Make a 3D YouTube video

One of the advantages of recording both eyes is that you can assemble stereoscopic side-by-side 3D videos. You can use YouTube, for instance.

Just upload your video and edit it. Go to the Advanced settings tab inside the Info & Settings view.

Browser content screenshot at Info & Settings tab of a YouTube video

Check the box that says This video is 3D and select Side by side: Left video on the left side in the combo box.

Checkbox for enabling 3D video. A warning reads:

The deprecation warning encourages you to do this step offline, with your favorite video editor.

Once you are done, YouTube will select the best option for displaying 3D content, applying the proper filters or corrections as needed.

For instance, you’ll see an anaglyph representation when viewing your video with the Firefox browser on desktop.

An anaglyph red/green representation of the 3D video

You can switch to a 2D representation as well.

Regular 2D representation chooses only one eye to show

When you view the video with Firefox for Android you will see both eyes side by side.

Video on Firefox Android is shown side by side with no distortion (as the original video)

And if you try with the YouTube native app, an icon for Cardboard/Daydream VR will appear, transporting you to a virtual cinema where you can enjoy the clip.

In the YouTube app, a Cardboard is shown in the bottom-right corner to enter VR mode

Theater mode applies the proper distortion to each eye and provides a cinematic view

In conclusion

Virtual reality is not widely adopted or easily accessible yet, but the tools are available now to reach more people and distribute your creative work by recording your WebVR demos in video. Discover VR galleries on Twitter, GIPHY or Tumblr, choose your best clips and share them!

Do you prefer high quality video? Check out the VR content on YouTube or Vimeo.

At Mozilla, we support the success of WebVR and aim to demonstrate that people can share and enjoy virtual reality experiences on the Web! Please share your WebVR projects with the world. We’d love to see what you’re making. Let us know on Twitter by tagging your project with #aframevr, and we’ll RT it! Follow @AframeVR and @MozillaVR for the latest developments and new creative work.

Air MozillaGecko And Native Profiler

Gecko And Native Profiler Ehsan Akhgari: Gecko And Native Profiler. May 18, 2017 Ehsan and Markus etherpad is here:

Mozilla Add-ons BlogCompatibility Update: Add-ons on Firefox for Android

We announced our plans for add-on compatibility and the transition to WebExtensions in the Road to Firefox 57 blog post. However, we weren’t clear on what this meant for Firefox for Android.

We did this intentionally, since at the time the plan wasn’t clear to us either. WebExtensions APIs are landing on Android later than on desktop. Many of them either don’t apply or need additional work to be useful on mobile. It wasn’t clear if moving to WebExtensions-only on mobile would cause significant problems to our users.

The Plan for Android

After looking into the most critical add-ons for mobile and the implementation plan for WebExtensions, we have decided it’s best to have desktop and mobile share the same timeline. This means that mobile will be WebExtensions-only at the same time as desktop Firefox, in version 57. The milestones specified in the Road to Firefox 57 post now apply to all platforms.

The post Compatibility Update: Add-ons on Firefox for Android appeared first on Mozilla Add-ons Blog.

Air MozillaMozilla Roadshow Paris

Mozilla Roadshow Paris The Mozilla Roadshow is making a stop in Paris. Join us for a meetup-style, Mozilla-focused event series for people who build the Web. Hear from...

The Mozilla BlogOne Step Closer to a Closed Internet

Today, the FCC voted on Chairman Ajit Pai’s proposal to repeal and replace net neutrality protections enacted in 2015. The verdict: to move forward with Pai’s proposal


We’re deeply disheartened. Today’s FCC vote to repeal and replace net neutrality protections brings us one step closer to a closed internet.  Although it is sometimes hard to describe the “real” impacts of these decisions, this one is easy: this decision leads to an internet that benefits Internet Service Providers (ISPs), not users, and erodes free speech, competition, innovation and user choice.

This vote undoes years of progress leading up to 2015’s net neutrality protections. The 2015  rules properly place ISPs under “Title II” of the Communications Act of 1934, and through that well-tested basis of legal authority, prohibit ISPs from engaging in paid prioritization and blocking or throttling of web content, applications and services. These rules ensured a more open, healthy Internet.

Pai’s proposal removes the 2015 protections and re-re-classifies ISPs under “Title I,” which courts already have determined is insufficient for ensuring a truly neutral net. The result: ISPs would be able to once again prioritize, block and throttle with impunity. This means fewer opportunities for startups and entrepreneurs, and a chilling effect on innovation, free expression and choice online.

Net neutrality isn’t an abstract issue — it has significant, real-world effects. For example, in the past, without net neutrality protections, ISPs have imposed limits on who can FaceTime and determined how we stream videos, and also adopted underhanded business practices.

So what’s next and what can we do?

We’re now entering a 90-day public comment period, which ends in mid-August. The FCC may determine a path forward as soon as October of this year.

During the public comment period in 2015, nearly 4 million citizens wrote to the FCC, many of them demanding strong net neutrality protections.  We all need to show the same commitment again.

We’re already well on our way to making noise. In the weeks since Pai first announced his proposal, more than 100,000 citizens (not bots) have signed Mozilla’s net neutrality petition at And countless callers (again, not bots) have recorded more than 50 hours of voicemail for the FCC’s ears. We need more of this.

We’re also planning strategic, direct engagement with policymakers, including through written comments in the FCC’s open proceeding. Over the next three months, Mozilla will continue to amplify internet users’ voices and fuel the movement for a healthy internet.

The post One Step Closer to a Closed Internet appeared first on The Mozilla Blog.

Air MozillaReps Weekly Meeting May 18, 2017

Reps Weekly Meeting May 18, 2017 This is a weekly call with some of the Reps to discuss all matters about/affecting Reps and invite Reps to share their work with everyone.

Air Mozilla2017 Global Sprint Ask Me Anything

2017 Global Sprint Ask Me Anything Questions and answers about the upcoming 2017 Mozilla Global Sprint, our worldwide collaboration party for the Open Web

Air MozillaThe Joy of Coding - Episode 100

The Joy of Coding - Episode 100 mconley livehacks on real Firefox bugs while thinking aloud.

Air MozillaWeekly SUMO Community Meeting May 17, 2017

Weekly SUMO Community Meeting May 17, 2017 This is the sumo weekly call

Open Policy & AdvocacyWorking Together Towards a more Secure Internet through VEP Reform

Today, Mozilla sent a letter to Congress expressing support for an important bill has just been introduced: the Protecting Our Ability to Counter Hacking Act (PATCH Act). You can read more in this post from Denelle Dixon.

This bill focuses on a relatively unknown, but critical, piece of the U.S. government’s responsibility to secure our internet infrastructure: the Vulnerabilities Equities Process (VEP). The VEP is the government’s process for reviewing and coordinating the disclosure of vulnerabilities to folks who write code – like us – who can fix them in the software and hardware we all use (you can learn more about what we know here). However, the VEP is not codified in law, and lacks transparency and reporting on both the process policymakers follow and the considerations they take into account. The PATCH Act would address these gaps.

The cyberattack over the last week – using the WannaCry exploit from the latest Shadow Brokers release, and exploiting unpatched Windows computers – only emphasizes the need to work together and make sure that we’re all as secure as we can be. As we said earlier this week, these exploits might have been shared with Microsoft by the NSA – and that would be the right way to handle an exploit like this. If the government has exploits that have been compromised, they must disclose them to software companies before they can be used widely putting users at risk. The lack of transparency around the government’s decision-making processes points to the importance of codifying and improving the Vulnerabilities Equities Process.

We’ve said before – many times – how important it is to work together to protect cybersecurity. Reforming the VEP is one key component of that shared responsibility, ensuring that the U.S. government shares vulnerabilities that put swaths of the internet at risk. The process was conceived in 2010 to improve our collective cybersecurity, and implemented in 2014 after the Heartbleed vulnerability put most of the internet at risk (for more information, take a look at this timeline). It’s time to take the next step and put this process into statute.

Last year, we wrote about five important reforms to the VEP we believe are necessary:

  • All security vulnerabilities should go through the VEP.
  • All relevant federal agencies involved in the VEP should work together using a standard set of criteria to ensure all risks and interests are considered.
  • Independent oversight and transparency into the processes and procedures of the VEP must be created.
  • The VEP should be placed within the Department of Homeland Security (DHS), with their expertise in existing coordinated vulnerability disclosure programs.
  • The VEP should be codified in law to ensure compliance and permanence.

Over the last year, we have seen many instances where hacking tools from the U.S. government have been posted online, and then used – by unknown adversaries – to attack users. Some of these included “zero days”, which left companies scrambling to patch their software and protect their users, without prior notice. It’s important that the government defaults to disclosing vulnerabilities, rather than hoarding them in case they become useful later. We hope they will instead work with technology companies to help protect all of us online.

The PATCH Act – introduced by Sen. Gardner, Sen. Johnson, Sen. Schatz, Rep. Farenthold, and Rep. Lieu – aims to codify and make the existing Vulnerabilities Equities Process more transparent. It’s relatively simple – a good thing, when it comes to legislation: it creates a VEP Board, housed at DHS, which will consider disclosure of vulnerabilities that some part of the government knows about. The VEP Board would make public the process and criteria they use to balance the relevant interests and risks – an important step – and publish reporting around the process. These reports would allow the public to consider whether the process is working well, without sharing classified information (saving that reporting for the relevant oversight entities). This would also make it easier to disclose vulnerabilities through DHS’ existing channels.

Mozilla looks forward to working with members of Congress on this bill, as well as others interested in VEP reform – and all the other government actors, in the U.S. and around the world, who seek to take action that would improve the security of the internet. We stand with you, ready to defend the security of the internet and its users.

The post Working Together Towards a more Secure Internet through VEP Reform appeared first on Open Policy & Advocacy.

The Mozilla BlogImproving Internet Security through Vulnerability Disclosure

Supporting the PATCH Act for VEP Reform


Today, Mozilla sent a letter to Congress in support of the Protecting Our Ability to Counter Hacking Act (PATCH Act) that was just introduced by Sen. Cory Gardner, Sen. Ron Johnson, Sen. Brian Schatz, Rep. Blake Farenthold, and Rep. Ted Lieu.

We support the PATCH Act because it aims to codify and make the existing Vulnerabilities Equities Process more transparent. The Vulnerabilities Equities Process (VEP) is the U.S. government’s process for reviewing and coordinating the disclosure of new vulnerabilities it learns about.

The VEP remains shrouded in secrecy, and is in need of process reforms to ensure transparency, accountability, and oversight. Last year, I wrote about five important reforms to the VEP we believe are necessary to make the internet more secure. The PATCH Act includes many of the key reforms, including codification in law to increase transparency and accountability.

For background, a vulnerability is a flaw – in design or implementation – that can be used to exploit or penetrate a product or system. We saw an example this weekend as a ransomware attack took unpatched systems by surprise – and you’d be surprised at how common they are if we don’t all work together to fix them. These vulnerabilities can put users and businesses at significant risk from bad actors. At the same time, exploiting these same vulnerabilities can also be useful for law enforcement and intelligence operations. It’s important to consider those equities when the government decides what to do.

If the government has exploits that have been compromised, they must disclose them to tech companies before those vulnerabilities can be used widely and put users at risk. The lack of transparency around the government’s decision-making processes here means that we should improve and codify the Vulnerabilities Equities Process in law. Read this Mozilla Policy blog post from Heather West for more details.

The internet is a shared resource and securing it is our shared responsibility. This means technology companies, governments, and even users have to work together to protect and improve the security of the internet.

We look forward to working with the U.S. government (and governments around the world) to improve disclosure of security vulnerabilities and better secure the internet to protect us all.



The post Improving Internet Security through Vulnerability Disclosure appeared first on The Mozilla Blog.

Mozilla L10NFTL, RTL, Tetris and other Pontoon enhancements

Let’s do a quick walkthrough of several Pontoon improvements that landed over the course of the last month or so.

Abiding maximum string length. If string length limit is provided, Pontoon will now detect it and prevent translations exceeding the limit from being submitted. Additionally, when translating such strings (e.g. snippets or tweets), you’ll notice a countdown which will tell you how many characters do you have left.

String length limit example

Appending “Mahna Mahna” makes this string too long

More information on dashboards. Additional information has been added to project dashboards, namely contact person and links to external resources like development sites, screenshots, etc. Note that links to external resources also appear on the localization dashboards, where they are localized – if you click on the Screenshots link, it will take you to the localized screenshots page.

FTL. We made the first step in bringing FTL powers to translators who aren’t coders. The FTL-specific user interface introduced last year (at the time known as L20n) is now implemented and already in use by the Test Pilot Website. We’ll prepare a more detailed presentation after we land additional improvements in the next weeks.

RTL. A few improvements have been made to make translating into right-to-left scripts more comfortable, particularly by using the correct text alignment and setting the dir attribute explicitly instead of relying on dir=auto.

Relatedly, but not entirely limited to RTL scripts, we landed additional font enhancements:

  • The font size for Arabic script is now increased by 20% for better readability. The default Arabic system fonts seem to be relatively small compared to fonts used for Latin and other scripts.
  • Italic font style is only used for scripts supported by Open Sans (bug 1357945) to avoid faux italic.
  • Марко Костић contributed his first Pontoon patch by fixing bug 1353135, which uses Ubuntu Regular for Serbian and Macedonian Cyrillic italic, because Open Sans only supports Russian Cyrillic in italic type.

Search speedup. Jotes made searching for strings faster and differentiate between Turkish dotted and dotless “i”. To land the search optimization, we had to take Pontoon off for a few minutes. So we created exciting new maintenance mode page featuring… Tetris!

Maintenance page

While in maintenance mode, Pontoon will not make you particularly productive

Latest activity enhancements. The latest activity information for project, team, localization and translated resource is now also set if translations are submitted in bulk or through file uploads. We also display latest activity information for subpages. And, jotes made sorting order of the latest activity and deadline column easier to comprehend.

Improving Machinery. Until recently, submissions made through mass actions haven’t been recorded in Translation Memory. This is no longer the case. Additionally, original strings in translation memory and other Machinery suggestions now show diff against the currently translated soruce string.

Translation Memory diff

Translation Memory diff

Making Pontoon more interconnected. Thanks to jotes, resource paths displayed below the original string now link to the translate view of that resource. Similarly, translations in the Locales tab now link to the translate view of the current string in the selected locale, so you can for example quickly suggest fixes for translations.

A few bugs have been fixed:

  • Stoyan fixed a JS error occurring when localStorage in unavailable.
  • Notification bar has been moved to bottom to avoid covering the most useful features.
  • If diff contains whitespace, it is now displayed.
  • Bug 1362929: Contributor timeline doesn’t stop loading prematurely (by jotes)
  • Bug 1350695: Make submit button execute the action the label indicates (by jotes)
  • Bug 1352744: Can’t initialize Pontoon’s db by running migrations via (by jotes)
  • Bug 1354812: Do not copy from helpers on Ctrl + Tab
  • Bug 1355850: Check unsaved changes when entering batch editing
  • Bug 1363320: Properly compose tab URLs
  • Bug 1357425: Upgrade Pontoon to latest Mercurial
  • Bug 1351821: More text contrast in textarea

Get involved. A total of 30 bugs have been resolved fixed to support Pontoon improvements covered in this blog post. More than half of them have been fixed or reported by a Mozilla community member. And you can do that, too!

Air MozillaRust Libs Team Meeting 2017-05-16

Rust Libs Team Meeting 2017-05-16 Rust libs team meeting 2017-05-16

Mozilla Add-ons BlogAdd-on Compatibility for Firefox 55

Firefox 55 will be released on August 8th. Here’s the list of changes that went into this version that can affect add-on compatibility. There is more information available in Firefox 55 for Developers, so you should also give it a look. Also, if you haven’t yet, please read our roadmap to Firefox 57.


Recently, we turned on a restriction on Nightly that only allows multiprocess add-ons to be enabled. You can use a preference to toggle it. Also, Firefox 55 is the first version to move directly from Nightly to Beta after the removal of the Aurora channel.

XPCOM and Modules

Let me know in the comments if there’s anything missing or incorrect on these lists. We’d like to know if your add-on breaks on Firefox 55.

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

The post Add-on Compatibility for Firefox 55 appeared first on Mozilla Add-ons Blog.

QMOFirefox 54 Beta 7 Testday Results

Hello Mozillians!

As you may already know, last Friday – May 12th – we held a Testday event, for Firefox 54 Beta 7.

Thank you all for helping us making Mozilla a better place – Gabi Cheta, Ilse Macías, Juliano Naves, Athira Appu, Avinash Sharma,  Iryna Thompson.

From India team: Surentharan R.A, Fahima Zulfath, Baranitharan.M,  Sriram, vignesh kumar.

From Bangladesh team: Nazir Ahmed Sabbir, Rezaul Huque Nayeem, Md.Majedul islam, Sajedul Islam, Saddam Hossain, Maruf Rahman, Md.Tarikul Islam Oashi, Md. Ehsanul Hassan, Meraj Kazi, Sayed Ibn Masud, Tanvir Rahman, Farhadur Raja Fahim, Kazi Nuzhat Tasnem, Md. Rahimul Islam, Md. Almas Hossain, Saheda Reza Antora, Fahmida Noor, Muktasib Un Nur, Mohammad Maruf Islam,  Rezwana Islam Ria, Tazin Ahmed, Towkir Ahmed, Azmina Akter Papeya


– several test cases executed for the Net Monitor MVP and Firefox Screenshots features;

– 2 new bugs filed: 13647711364773.

– 15 bugs verified: 116717813640901363288134125813420021335869,  776254, 13637371363840, 13276911315550135847913380361348264 and 1361247.

Again thanks for another successful testday! 🙂

We hope to see you all in our next events, all the details will be posted on QMO!

hacks.mozilla.orgHaving fun with physics and A-Frame

A-Frame is a WebVR framework to build virtual reality experiences. It comes with some bundled components that allow you to easily add behavior to your VR scenes, but you can download more –or even create your own.

In this post I’m going to share how I built a VR scene that integrates a physics engine via a third-party component. While A-Frame allows you to add objects and behaviors to a scene, if you want those objects to interact with each other or be manipulated by the user, you might want to use a physics engine to handle the calculations you’ll need. If you are new to A-Frame, I recommend you check out the Getting started guide and play with it a bit first.

The scene I created is a bowling alley that works with the HTC Vive headset. You have a ball in your right hand which you can throw by holding the right-hand controller trigger button and releasing it as you move your arm. To return the ball back to your hand and try again, press the menu button. You can try the demo here! (Note: You will need Firefox Nightly and an HTC Vive. Follow the the setup instructions in

ScreenshotThe source code is at your disposal on Github to tweak and have fun with.

Adding a physics engine to A-Frame

I’ve opted for aframe-physics-system, which uses Cannon.js under the hood. Cannon is a pure JavaScript physics engine (not a compiled version to ASM from C/C++), so we can easily interface with it –and peek at its code.

aframe-physics-system is middleware that initialises the physics engine and exposes A-Frame components for us to apply to entities. When we use its static-body or dynamic-body components, aframe-physics-system creates a Cannon.Body instance and “attaches” it to our A-Frame entities, so on every frame it adjusts the entity’s position, rotation, etc. to match the body’s.

If you wish to use a different engine, take a look at aframe-physics-system or aframe-physics-components. These components are not very complex and it should not be complicated to mimic their behavior with another engine.

Static and dynamic bodies

Static bodies are those which are immovable. Think of the ground, or walls that can’t be torn down, etc. In the scene, the immovable entities are the ground and the bumpers on each side of the bowling lane.

Dynamic bodies are those which move, bounce, topple etc. Obviously the ball and the bowling pins are our dynamic bodies. Note that since these bodies move and can fall, or collide and knock down other bodies, the mass property will have a big influence. Here’s an example for a bowling pin:

<a-cylinder dynamic-body="mass: 1" ...>

The avatar and the physics world

To display the “hands” of the user (i.e., to show the tracked VR controllers as hands) I used the vive-controls component, already bundled in A-Frame.

<a-entity vive-controls="hand: right" throwing-hand></a-entity>
<a-entity vive-controls="hand: left"></a-entity>

The challenge here is that the user’s avatar (“head” and “hands”) is not part of the physical world –i.e. it’s out of the physics engine’s scope, since the head and the hands must follow the user’s movement, without being affected by physical rules, such as gravity or friction.

In order for the user to be able to “hold” the ball, we need to fetch the position of the right controller and manually set the ball’s position to match this every frame. We also need to reset other physical properties, such as velocity.

This is done in the custom throwing-hand component (which I added to the entity representing the right hand), in its tick callback:

ball.body.velocity.set(0, 0, 0);
ball.body.angularVelocity.set(0, 0, 0);
ball.body.quaternion.set(0, 0, 0, 1);
ball.body.position.set(position.x, position.y, position.z);

Note: a better option would have been to also match the ball’s rotation with the controller.

Throwing the ball

The throwing mechanism works like this: the user has to press the controller’s trigger and when she releases it, the ball is thrown.

There’s a method in Cannon.Body which applies a force to a dynamic body: applyLocalImpulse. But how much impulse should we apply to the ball and in which direction?

We can get the right direction by calculating the velocity of the throwing hand. However, since the avatar isn’t handled by the physics engine, we need to calculate the velocity manually:

let velocity = currentPosition.vsub(lastPosition).scale(1/delta);

Also, since the mass of the ball is quite high (to give it more “punch” against the pins), I had to add a multiplier to that velocity vector when applying the impulse:

  new CANNON.Vec3(0, 0, 0)

Note: If I had allowed the ball to rotate to match the controller’s rotation, I would have needed to apply that rotation to the velocity vector as well, since applyLocalImpulse works with the ball’s local coordinates system.

To detect when the controller’s trigger has been released, the only thing needed is a listener for the triggerup event in the entity representing the right hand. Since I added my custom throwing-hand component there, I set up the listener in its init callback:

this.el.addEventListener('triggerup', function (e) {
  // ... throw the ball

A glitch

At the beginning, I was simulating the throw by pressing the space bar key. The code looked like this:

document.addEventListener('keyup', function (e) {
  if (e.keyCode === 32) { // spacebar

However, this was outside of the A-Frame loop, and the computation of the throwing hand’s lastPosition and currentPosition was out of sync, and thus I was getting odd results when calculating the velocity.

This is why I set a flag instead of calling launch directly, and then, inside of the throwing-hand’s tick callback, throwBall is called if that flag is set to true.

Another glitch: shaking pins

Using the aframe-physics-system’s default settings I noticed a glitch when I scaled down the bowling pins: They were shaking and eventually falling to the ground!

This can happen when using a physics engine if the computations are not precise enough: there is a small error that carries over frame by frame, it accumulates and… you have things crumbling or tumbling down, especially if these things are small –they need less error for changes to be more noticeable.

One workaround for this is to increase the accuracy of the physics simulation — at the expense of performance. You can control this with the iterations setting at the aframe-physics-system’s component configuration (by default it is set to 10). I increased it to 20:

<a-scene physics="iterations: 20">

To better see the effects of this change, here is a comparison side by side with iterations set to 5 and 20:

NOTE: Upload to Youtube this video and insert it here:

The “sleep” feature of Cannon provides another possible workaround to handle this specific situation without affecting performance. When an object is in sleep mode, physics won’t make it move until it wakes upon collision with another object.

Your turn: play with this!

I have uploaded the project to Glitch as well as to a Github repository in case you want to play with it and make your own modifications. Some things you can try:

  • Allow the player to use both hands (maybe with a button to switch the ball from one hand to the other?)
  • Automatically reset the bowling pins to their original position once they have all fallen. You can check the rotation of their bodies to implement this.
  • Add sound effects! There is a callback for collision events you can use to detect when the ball has collided with another element… You can add a sound effects for when the ball clashes against the pins, or when it hits the ground.

If you have questions about A-Frame or want to get more involved in building WebVR with A-Frame, check out our active community on Slack. We’d love to see what you’re working on.

Mozilla Add-ons BlogAdd-ons Update – 2017/05

Here’s the state of the add-ons world this month.

The Road to Firefox 57 explains what developers should look forward to in regards to add-on compatibility for the rest of the year. So please give it a read if you haven’t already.

The Review Queues

In the past month, our team reviewed 1,132 listed add-on submissions:

  • 944 in fewer than 5 days (83%).
  • 21 between 5 and 10 days (2%).
  • 167 after more than 10 days (15%).

969 listed add-ons are awaiting review.

For two weeks we’ve been automatically approving add-ons that meet certain criteria. It’s a small initial effort (~60 auto-approvals) which will be expanded in the future. We’re also starting an initiative this week to clear most of the review queues by the end of the quarter. The change should be noticeable in the next couple of weeks.

However, this doesn’t mean we won’t need volunteer reviewers in the future. If you’re an add-on developer and are looking for contribution opportunities, please consider joining us. Visit our wiki page for more information.


We published the blog post for 54 and ran the bulk validation script. Additionally, we’ll publish the add-on compatibility post for Firefox 55 later this week.

Make sure you’ve tested your add-ons and either use WebExtensions or set the multiprocess compatible flag in your manifest to ensure they continue working in Firefox. And as always, we recommend that you test your add-ons on Beta.

You may also want  to review the post about upcoming changes to the Developer Edition channel. Firefox 55 is the first version that will move directly from Nightly to Beta.

If you’re an add-ons user, you can install the Add-on Compatibility Reporter to identify and report any add-ons that aren’t working anymore.


We would like to thank the following people for their recent contributions to the add-ons world:

  • psionikangel
  • lavish205
  • Tushar Arora
  • raajitr
  • ccarruitero
  • Christophe Villeneuve
  • Aayush Sanghavi
  • Martin Giger
  • Joseph Frazier
  • erosman
  • zombie
  • Markus Stange
  • Raajit Raj
  • Swapnesh Kumar Sahoo

You can read more about their work in our recognition page.

The post Add-ons Update – 2017/05 appeared first on Mozilla Add-ons Blog.

The Mozilla BlogWannaCry is a Cry for VEP Reform

This weekend, a vulnerability in some versions of the Windows operating system resulted in the biggest cybersecurity attack in years. The so-called “WannaCry” malware relied on at least one exploit included in the latest Shadow Brokers release. As we have repeated, attacks like this are a clarion call for reform to the government’s Vulnerabilities Equities Process (VEP).

The exploits may have been shared with Microsoft by the NSA. We hope that happened, as it would be the right way to handle a vulnerability like this. Sharing vulnerabilities with tech companies enables us to protect our users, including the ones within the government. If the government has exploits that have been compromised, they must disclose them to software companies before they can be used widely putting users at risk. The lack of transparency around the government’s decision-making processes here means that we should improve and codify the Vulnerabilities Equities Process in law.

The WannaCry attack also shows the importance of security updates in protecting users. Microsoft patched the relevant vulnerabilities in a March update, but users who had not updated remain vulnerable. Mozilla has shared some resources to help users update their software, but much more needs to be done in this area.

The internet is a shared resource and securing it is our shared responsibility. This means technology companies, governments, and even users have to work together to protect and improve the security of the internet.

The post WannaCry is a Cry for VEP Reform appeared first on The Mozilla Blog.

Air MozillaMozilla Weekly Project Meeting, 15 May 2017

Mozilla Weekly Project Meeting The Monday Project Meeting

Hive Learning Network NYCProject Learning Lab: Building Effective Partnerships

On Thursday, April 20th, we gathered at The New School for session three of Project Learning Lab (PLL), a peer learning space for grantees of the former Hive Digital Media Learning Fund’s 12th RFP that aims to workshop, share practices, introduce new tools, and exchange ideas and feedback about their projects.  Since all Hive members in this PLL cohort received grant support to collaborate with external organizations and expand their digital media learning programs, we chose to focus this session on best practices for building effective partnerships.

Affirming challenges and recognizing successes

Despite being a core aspect of their current projects, PLL members collectively identified building effective partnerships–particularly with institutions that may have very different organizational structures or approaches–as a primary challenge in their work this year.  To give the cohort an opportunity to learn about how each other’s projects were progressing and share lessons they’d gathered so far, we spent the first part of our session in open group discussion, using the following questions as our guide:

  • What’s working your projects so far?
  • What unexpected events have emerged from your projects?
  • What project challenges are you working through?
  • What shared goals, program qualities, and/or challenges among the rest of the group can you relate to?

Members shared a dynamic range of updates from their projects, which included recognizing and carrying out the need to shift their work onto more secure platforms to protect the online privacy and security of their youth participants, learning to manage competing priorities of educators and staff, and observations in adapting existing long-term programs to fit their partners’ organizational cultures and practices without compromising their own values or pedagogy.

In thinking about the most successful partnerships they’ve been part of–both in and outside of Hive collaborations–members stated that working with partners with which they were able to develop shared understanding of each other’s goals and institutional values, along with having sufficient time and resources necessary to build the trust and needed to reach that shared understanding, were the common factor in their successes.

Learning from partners in the field

For the second half of our session, we heard from two guest speakers, Gregory Brender and Vashti Barran, from community-serving organizations about how they approach building effective partnerships.  Gregory, who coordinates multi-stakeholder coalitions with United Neighborhood Houses, shared his experience bringing organizations with different constituencies, missions, and capacities together and aligning them to advocate towards common campaign goals.  Vashti, who manages relationships with external partners at Donor’s Choose, shared her lessons learned in approaching new partnerships and working strategically 1:1 with key staff at partner institutions.

While Vashti and Gregory’s work doesn’t tie directly to the digital media learning and web literacy work that unites Hive NYC members throughout the network, the practices they shared are relevant across sectors.  Both emphasized the value of taking a slow-burn approach to building partnerships, and the importance of taking time to establish clear roles & expectations, find common purpose, and learn about each partner’s approach and motivations for contributing to a shared initiative.

Working collectively

Perhaps the most important lesson that emerged from this session was the need for Hive members–within Project Learning Lab and across the entire network–to work collectively in order to advance the systemic changes we want to see in our local education, nonprofit, and youth-serving landscape.  While it was easy for members to get caught up in their specific areas of work and the daily challenges they face, they agreed we are all ultimately striving towards the same goals–equity and quality learning opportunities for young people in NYC–and that building and strengthening effective partnerships with each other as Hive members and with allied institutions is essential in achieving these goals over the long-term.



The post Project Learning Lab: Building Effective Partnerships appeared first on Hive NYC.

Mozilla IndiaHelloWeb Curriculum Workshop

Participation Opportunity – HelloWeb Curriculum Workshop


Supported by Mozilla Foundation the workshop will be held in Bangalore on 3rd June, 2017.

It is being hosted by the HelloWeb team with the support from the Mozilla Foundation for educators, developers and people interested in teaching the web to the larger community. This event will mainly focus on Curriculum Design with the intent of providing open source communities and educational sectors with better tools and kits to teach the web undertaking detailed planning, structure and workflow of the contribution pathways.

The participants will build curriculums/teaching activities on the following domains:

  • Internet Basics
  • Internet Privacy
  • Artificial Intelligence
  • Machine Learning
  • Internet of Things
  • Web VR
  • Design

Anybody willing to change the way in which technical education is imparted and make it more implementation based can register for the event. Find more details, please visit the wiki and/or the official website.

But before registering, please ensure that you will be available to come to Bangalore on 3rd June, 2017 and grace the occasion with your presence.

The application process would be closed on 20th May, 2017 at 12 midnight (IST). No late applications would be accepted.

Travel & Lodging reimbursement will be provided only to some selected attendees, shortlisted on the basis of their proposal.

If you wish to be the change we all wish to see, Apply Now.

This is a guest post by Arkodyuti Saha, Workshop Organizer. 
In case of a special query, please send a mail to Arkodyuti Saha – arkodyutisaha10[at]gmail[dot]com, or ping on telegram: @arkodyuti


Air MozillaFirefox DevTools London Meetup May 2017

Firefox DevTools London Meetup May 2017 Introducing Firefox Developer Tools (DevTools), devtools.html and associated projects such as the new debugger and console.

Air MozillaReps Weekly Meeting May 11, 2017

Reps Weekly Meeting May 11, 2017 This is a weekly call with some of the Reps to discuss all matters about/affecting Reps and invite Reps to share their work with everyone.

Web Application SecurityRelaunching Mozilla’s Web Security Bounty Program

Today we are announcing the relaunch of our web security bug bounty program, creating greater transparency into how we handle web security bug bounty payouts.


Bug bounty programs started a number of years ago with Netscape leading the way. In August of 2004, Mozilla joined in by launching our first bug bounty program. Funded by Linspire, Inc. and Mark Shuttleworth, it paid out $500 for critical security vulnerabilities found in Firefox and other Mozilla software. Although this may seem quaint in comparison to modern day bug bounties that can reach well into the six figures, at the time it was considered a revolutionary advance in how technology companies deal with the discovery of security flaws.

Six years later, in December of 2010, Mozilla was one of the first companies to add bugs found in their web properties to their bounty programs. Ranging from $500 up to $3000, it was another leap forward, this time focused on improving the state of web security.

From our first awarded web bounty bug (a cross-site scripting vulnerability in to now, we have paid out hundreds of thousands of dollars to researchers around the world who have lent their expertise to help us protect our users.

Challenges and Solutions

Bug bounty programs are always challenging to administer, especially for a company like Mozilla. We have staff and contributors that have lived and breathed the web for almost 20 years and our portfolio of websites has grown exponentially. From, to to some of these sites create significantly more risk to Mozilla’s operations than others.

Problems have arisen with communicating this risk spectrum to bounty hunters. A hypothetical SQL injection on Bugzilla presents a different level of risk to Mozilla than a cross-site scripting attack on the Observatory or an open redirect on a community blog. To a bounty hunter, the level of risk is often irrelevant — they simply want to know if a class of bug on a specific site will pay out a bounty and how much it will pay out.

Overall, we think we have done a reasonable job listing the Mozilla websites that pay out bounties, but the actual payout amounts have varied. In addition, payouts have become more complicated for bugs discovered on sites that are not explicitly part of the program.

If a payout comes in at a level that meets or exceeds what the researcher was expecting, then everything is great. But if it comes in lower than expectations, a bounty hunter may be disappointed. Furthermore, making a payout exception for a given site creates an expectation that additional exceptions will be made.


We are excited to relaunch our web based bounty program in a way that will address many of these historical issues while also expanding the number of websites and bug classes that are covered. In addition, we are explicitly listing how much each bug class will pay out and for what websites, based on their risk profile.

[see the whole table here]

Having a clear and straightforward table of payouts allows bounty hunters to devote their time and effort to discovering bugs that they know will receive a payout. The hunters will also know the exact amount of the payouts.  We’re also expanding the classes of bugs that qualify for our bug bounty Hall of Fame. Although these bugs don’t come with a monetary payout, it’s our way of publicly acknowledging the work of bounty hunters in making the web a safer place.

From our logos to our products, Mozilla is a company that prides itself on its openness. Although being open about payouts is generally unexplored territory, we hope that it helps contribute to greater openness in bug bounty programs around the web.

If you are an existing contributor to our web bug bounty program, we hope this structure helps focus your efforts. If you are just starting out, we look forward to working with you to help make the internet more secure!

The post Relaunching Mozilla’s Web Security Bounty Program appeared first on Mozilla Security Blog.

hacks.mozilla.orgDebugger.html Call Stack Improvements

Debugger.html is an open source project, built on top of React and Redux, that functions as a standalone debugger for Firefox, Chrome and Node. The debugger is also being integrated into the Firefox Developer Tools offering. Currently it is available in the Firefox 53 release behind the preference.

The debugger.html project was announced last September and continues to improve with added features and functionality. In this post, we will cover some changes for the call stack display that are currently under development or recently implemented.

Call Stack Display

Most JavaScript debuggers offer a visual representation of the call stack. This display represents the execution context stack or simply the call stack, displaying a frame for each nested call currently being executed. Generically speaking, an execution context refers to the environment in which a function runs, including scoped variables, function arguments, etc. If your application provides a button to execute function A, then a new execution context is created and loaded onto the call stack when the button is clicked. Function A may call function B.

In this case, an execution context is created for function B and loaded onto the top of the call stack. If function B has a breakpoint set, the call stack display will show a frame for the button function, one for Function A and one for Function B. Essentially, the Call Stack display shows a chain of functions that are waiting to be completed and return a value.

Selecting a frame in the Call Stack display will update the Scopes display with the variables for that particular frame. Clicking on the filename in the display will open that specific file in the editor. The Call Stack display is a great tool for tracking execution flow through your application. That said, with complex libraries or frameworks the display can become convoluted and difficult to follow.

The Debugger.html team is working on several key features that will improve the usability of the Call Stack display and make it more intuitive to understand. We’ll take a closer look at these four:

  • Simplifying function names
  • Highlighting libraries
  • Collapsing library frames
  • Naming library frames

Simplifying Function Names

The vast majority of JavaScript functions are not named, making them anonymous. This presents a problem: the call stack currently gives verbose function names to anonymous functions. In practice, an anonymous function might be given the name app.AppView<.success because it is defined in the AppView class. It’s important to be able to scan the call stack quickly. In this context, it’s helpful to see the simplest name possible (success). Compare the image below to the previous image of the call stack. This feature is currently implemented in the latest source code for the debugger.html project.

Highlighting Libraries

Libraries and frameworks are used in a large portion of web applications. In the process of debugging your code, sending calls to the library or framework can quickly fill up the Call Stack display. In most cases, it’s helpful to quickly identify and exclude libraries from your debugging work, since most bugs will likely be found in your custom application code. The debugger now includes a library highlight feature, which replaces the file URL and line location with the library name and logo, so that you can focus your debugging efforts more efficiently on your own code.

Note that this setting can be reverted in the debugger settings page, if you need to debug a library.

Collapsing Library Frames

In similar fashion, you can unclutter your view of the debugging effort by collapsing multiple function calls within a library into one visual line in the Call Stack display. This will further reduce the visual noise and help you locate and debug your application code. With this feature turned on, the previous stack trace now looks like this:

Then you can view the nested frames by clicking the frame to open it.

With these three features enabled, you gain access to a very simple view that can improve your debugging workflow. As with the previous feature, collapsing can be disabled.

Naming Library Frames

Collapsing the library frames offers an additional benefit. It gives you a way to describe what the library is doing in the combined lines that are collapsed. For example, instead of showing two frames for jQuery elemData.handle, and event.dispatch functions, we can simply show the label event. This can also encourage better naming conventions for describing specific library or framework operations such as rendering, routing, or doing any other task. For example, in Call Stack display image above, the display will show when the Backbone Model and Views are created.

This feature is currently under development in order to provide better names for the library operations taking place in the collapsed library frames. Naming should be specific to individual libraries and should summarize all the operations taking place in the lines of code represented by the one collapsed display item.


We’re really excited about how the new call stack will help users debug and improve their web applications. This is just the beginning, we hope to introduce more framework improvements in the coming months.

The Debugger.html team welcomes new contributors and suggestions for improving the tool. If you are interested in helping to build or have suggestions for an improved product, check out the README on our GitHub page.

Air MozillaMozilla Curriculum Workshop, Spring 2017

Mozilla Curriculum Workshop, Spring 2017 Mozilla Curriculum Workshop, Spring 2017 Join us on Thursday, May 11th, 2017, at 10 AM ET, to talk about teaching and learning in response to...

Air MozillaWhen Surveillance Goes Private: A 2027 Retrospective from Adrian Hon

When Surveillance Goes Private: A 2027 Retrospective from Adrian Hon In our May 10 “future retrospective,” we'll look at how we - in 2027 - became so collectively compliant to others owning data about our...

The Mozilla BlogMozilla Awards Nearly $300,000 to Research Grant Winners

We’re happy to announce the results of the Mozilla Research Grant program for the first half of 2017. This was a competitive process, and after three rounds of judging, we settled on funding nine proposals in five countries for a total of $299,444. These projects support Mozilla’s mission to make the internet safer, more empowering and more accessible.

The Mozilla Research Grants program is part of Mozilla’s Emerging Technologies charter to explore the future of the open internet, and reflects Mozilla’s commitment to open innovation, as well as accelerating our own research. As such, these grants include research supporting our core projects like Firefox and Rust, as well as exploring new domains for the future of the Internet.

Cosmin Munteanu University of Toronto Mississauga Communication, Culture, Information, and Technology A safer Internet for the socially-isolated and digitally-marginalized older adults
Eelke Folmer University of Nevada, Reno Computer Science and Engineering Understanding Gender Differences in VR Locomotion Interfaces
Ethan Hanner University of Colorado Boulder Computer Science Understanding Perceptions of Ethics in Hacktivism
J. Shane Culpepper RMIT University School of Science (Computer Science) Efficient and Effective Multi-Stage Retrieval in Rust
James Clawson Indiana University Bloomington School of Informatics and Computing Designing aurally distinct audio corpora for use in eyes-free text entry evaluations.
Karen Louise Smith Brock University Communication, Popular Culture & Film Add-ons for Privacy: Open Source Advocacy Tactics for Internet Health
Kenneth Heafield University of Edinburgh School of Informatics Open Data: Mining Translations and Transcripts from the Web
Louise Barkhuus The IT University of Copenhagen Department of Digital Design Understanding and encouraging grade school girls’ interest in in computer programing
Taesoo Kim Georgia Tech Computer Science Designing New Operating Primitives to Improve Fuzzing Performance

Congratulations to all successfully funded applicants! The 2017H2 round of grant proposals will open in early August and be due September 1st.

Sean White, Senior Vice President, Emerging Technologies, Mozilla
Jofish Kaye, Principal Research Scientist, Emerging Technologies, Mozilla

The post Mozilla Awards Nearly $300,000 to Research Grant Winners appeared first on The Mozilla Blog.

Mozilla Add-ons BlogIncompatible change to sessions.restore API in Firefox 54

The add-on compatibility update for Firefox 54 was published a while back, but a backward-incompatible change to the sessions.restore WebExtensions API was uplifted to 54, currently in Beta and set to be released on June 13th.

sessions.restore now returns an object instead of an array. With this change, the API now matches the spec and its behavior in Google Chrome. If you use this API in your WebExtension, this bug report has all the details.

The post Incompatible change to sessions.restore API in Firefox 54 appeared first on Mozilla Add-ons Blog.

Air MozillaWeekly SUMO Community Meeting May 10, 2017

Weekly SUMO Community Meeting May 10, 2017 This is the sumo weekly call

Air MozillaDAP Web Literacy Virtual Workshop

DAP Web Literacy Virtual Workshop An introductory web literacy workshop for participants in the Digital Ambassador Program.

hacks.mozilla.orgQuantum Up Close: What is a browser engine?

In October of last year Mozilla announced Project Quantum – our initiative to create a next-generation browser engine. We’re well underway on the project now. We actually shipped our first significant piece of Quantum just last month with Firefox 53.

But, we realize that for people who don’t build web browsers (and that’s most people!), it can be hard to see just why some of the changes we’re making to Firefox are so significant. After all, many of the changes that we’re making will be invisible to users.

With this in mind, we’re kicking off a series of blog posts to provide a deeper look at just what it is we’re doing with Project Quantum. We hope that this series of posts will give you a better understanding of how Firefox works, and the ways in which Firefox is building a next-generation browser engine made to take better advantage of modern computer hardware.

To begin this series of posts, we think it’s best to start by explaining the fundamental thing Quantum is changing.

What is a browser engine, and how does one work?

If we’re going to start from somewhere, we should start from the beginning.

A web browser is a piece of software that loads files (usually from a remote server) and displays them locally, allowing for user interaction.

Quantum is the code name for a project we’ve undertaken at Mozilla to massively upgrade the part of Firefox that figures what to display to users based on those remote files. The industry term for that part is “browser engine”, and without one, you would just be reading code instead of actually seeing a website. Firefox’s browser engine is called Gecko.

It’s pretty easy to see the browser engine as a single black box, sort of like a TV- data goes in, and the black box figures out what to display on the screen to represent that data. The question today is: How? What are the steps that turn data into the web pages we see?

The data that makes up a web page is lots of things, but it’s mostly broken down into 3 parts:

  • code that represents the structure of a web page
  • code that provides style: the visual appearance of the structure
  • code that acts as a script of actions for the browser to take: computing, reacting to user actions, and modifying the structure and style beyond what was loaded initially

The browser engine combines structure and style together to draw the web page on your screen, and figure out which bits of it are interactive.

It all starts with structure. When a browser is asked to load a website, it’s given an address. At this address is another computer which, when contacted, will send data back to the browser. The particulars of how that happens are a whole separate article in themselves, but at the end the browser has the data. This data is sent back in a format called HTML, and it describes the structure of the web page. How does a browser understand HTML?

Browser engines contain special pieces of code called parsers that convert data from one format into another that the browser holds in its memory 1. The HTML parser takes the HTML, something like:

 <h1 class="main-title">Hello!</h1>
 <img src="">

And parses it, understanding:

Okay, there’s a section. Inside the section is a heading of level 1, which itself contains the text: “Hello!” Also inside the section is an image. I can find the image data at the location:

The in-memory structure of the web page is called the Document Object Model, or DOM. As opposed to a long piece of text, the DOM represents a tree of elements of the final web page: the properties of the individual elements, and which elements are inside other elements.

A diagram showing the nesting of HTML elements

In addition to describing the structure of the page, the HTML also includes addresses where styles and scripts can be found. When the browser finds these, it contacts those addresses and loads their data. That data is then fed to other parsers that specialize in those data formats. If scripts are found, they can modify the page structure and style before the file is finished being parsed. The style format, CSS, plays the next role in our browser engine.

With Style

CSS is a programming language that lets developers describe the appearance of particular elements on a page. CSS stands for “Cascading Style Sheets”, so named because it allows for multiple sets of style instructions, where instructions can override earlier or more general instructions (called the cascade). A bit of CSS could look like the following:

section {
  font-size: 15px;
  color: #333;
  border: 1px solid blue;
h1 {
  font-size: 2em;
.main-title {
  font-size: 3em; 
img {
  width: 100%;

CSS is largely broken up into groupings called rules, which themselves consist of two parts. The first part is selectors. Selectors describe the elements of the DOM (remember those from above?) being styled, and a list of declarations that specify the styles to be applied to elements that match the selector. The browser engine contains a subsystem called a style engine whose job it is to take the CSS code and apply it to the DOM that was created by the HTML parser.

For example, in the above CSS, we have a rule that targets the selector “section”, which will match any element in the DOM with that name. Style annotations are then made for each element in the DOM. Eventually each element in the DOM is finished being styled, and we call this state the computed style for that element. When multiple competing styles are applied to the same element, those which come later or are more specific wins. Think of stylesheets as layers of thin tracing paper- each layer can cover the previous layers, but also let them show through.

Once the browser engine has computed styles, it’s time to put it to use! The DOM and the computed styles are fed into a layout engine that takes into account the size of the window being drawn into. The layout engine uses various algorithms to take each element and draw a box that will hold its content and take into account all the styles applied to it.

When layout is complete, it’s time to turn the blueprint of the page into the part you see. This process is known as painting, and it is the final combination of all the previous steps. Every box that was defined by layout gets drawn, full of the content from the DOM and with styles from the CSS. The user now sees the page, reconstituted from the code that defines it.

That used to be all that happened!

When the user scrolled the page, we would re-paint, to show the new parts of the page that were previously outside the window. It turns out, however, that users love to scroll! The browser engine can be fairly certain it will be asked to show content outside of the initial window it draws (called the viewport). More modern browsers take advantage of this fact and paint more of the web page than is visible initially. When the user scrolls, the parts of the page they want to see are already drawn and ready. As a result, scrolling can be faster and smoother. This technique is the basis of compositing, which is a term for techniques to reduce the amount of painting required.

Additionally, sometimes we need to redraw parts of the screen. Maybe the user is watching a video that plays at 60 frames per second. Or maybe there’s a slideshow or animated list on the page. Browsers can detect that parts of the page will move or update, and instead of re-painting the whole page, they create a layer to hold that content. A page can be made of many layers that overlap one another. A layer can change position, scroll, transparency, or move behind or in front of other layers without having to re-paint anything! Pretty convenient.

Sometimes a script or an animation changes an element’s style. When this occurs, the style engine need to re-compute the element’s style (and potentially the style of many more elements on the page), recalculate the layout (do a reflow), and re-paint the page. This takes a lot of time as computer-speed things go, but so long as it only happens occasionally, the process won’t negatively affect a user’s experience.

In modern web applications, the structure of the document itself is frequently changed by scripts. This can require the entire rendering process to start more-or-less from scratch, with HTML being parsed into DOM, style calculation, reflow, and paint.


Not every browser interprets HTML, CSS, and JavaScript the same way. The effect can vary: from small visual differences all the way to the occasional website that works in one browser and not at all in another. These days, on the modern Web, most websites seem to work regardless of which browser you choose. How do browsers achieve this level of consistency?

The formats of website code, as well as the rules that govern how the code is interpreted and turned into an interactive visual page, are defined by mutually-agreed-upon documents called standards. These documents are developed by committees consisting of representatives from browser makers, web developers, designers, and other members of industry. Together they determine the precise behavior a browser engine should exhibit given a specific piece of code. There are standards for HTML, CSS, and JavaScript as well as the data formats of images, video, audio, and more.

Why is this important? It’s possible make a whole new browser engine and, so long as you make sure that your engine follows the standards, the engine will draw web pages in a way that matches all the other browsers, for all the billions of web pages on the Web. This means that the “secret sauce” of making websites work isn’t a secret that belongs to any one browser. Standards allow users to choose the browser that meets their needs.

Moore’s No More

When dinosaurs roamed the earth and people only had desktop computers, it was a relatively safe assumption that computers would only get faster and more powerful. This idea was based on Moore’s Law, an observation that the density of components (and thus miniaturization/efficiency of silicon chips) would double roughly every two years. Incredibly, this observation held true well into the 21st century and, some would argue, still holds true at the cutting edge of research today. So why is it that the speed of the average computer seems to have leveled off in the last 10 years?

Speed is not the only feature customers look for when shopping for a computer. Fast computers can be very power-hungry, very hot, and very expensive. Sometimes, people want a portable computer that has good battery life. Sometimes, they want a tiny touch-screen computer with a camera that fits in their pocket and lasts all day without a charge! Advances in computing have made that possible (which is amazing!), but at the cost of raw speed. Just as it’s not efficient (or safe) to drive your car as fast as possible, it’s not efficient to drive your computer as fast as possible. The solution has been to have multiple “computers” (cores) in one CPU chip. It’s not uncommon to see smartphones with 4 smaller, less powerful cores.

Unfortunately, the historical design of the web browser kind-of assumed this upward trajectory in speed. Also, writing code that’s good at using multiple CPU cores at the same time can be extremely complicated. So, how do we make a fast, efficient browser in the era of lots of small computers?

We have some ideas!

In the upcoming months, we’ll take a closer look at some of changes coming to Firefox and how they will take better advantage of modern hardware to deliver a faster and more stable browser that makes websites shine.


[1]: Your brain can do things that are like parsing: the word “eight” is a bunch of letters that spell a word, but you convert them them to the number 8 in your head, not the letters e-i-g-h-t. back

Air MozillaMartes Mozilleros, 09 May 2017

Martes Mozilleros Reunión bi-semanal para hablar sobre el estado de Mozilla, la comunidad y sus proyectos. Bi-weekly meeting to talk (in Spanish) about Mozilla status, community and...

The Mozilla Thunderbird BlogThunderbird’s Future Home


The investigations on Thunderbird’s future home have concluded. The Mozilla Foundation has agreed to serve as the legal and fiscal home for the Thunderbird project, but Thunderbird will migrate off Mozilla Corporation infrastructure, separating the operational aspects of the project.


In late 2015 Mitchell Baker started a discussion on the future of Thunderbird, and later blogged about the outcome of that, including this quote:

I’ve seen some characterize this as Mozilla “dropping” Thunderbird. This is not accurate. We are going to disentangle the technical infrastructure. We are going to assist the Thunderbird community. This includes working with organizations that want to invest in Thunderbird, several of which have stepped forward already. Mozilla Foundation will serve as a fiscal sponsor for Thunderbird donations during this time.

To investigate potential new homes for Thunderbird, Mozilla commissioned a report from Simon Phipps, former president of the OSI.

The Last Year’s Investigations

The Phipps report saw three viable choices for the Thunderbird Project’s future home: the Software Freedom Conservancy (SFC), The Document Foundation (TDF) and a new deal at the Mozilla Foundation. An independent “Thunderbird Foundation” alternative was not recommended as a first step but the report said it “may become appropriate in the future for Thunderbird to separate from its new host and become a full independent entity”.

Since then the Thunderbird Council, the governing body for the Thunderbird project, has worked to determine the most appropriate long term financial and organizational home, using the Phipps report as a starting point. Over the past year, the Council has thoroughly discussed the needs of a future Thunderbird team, and focused on investigating the non-Mozilla organizations as a potential future home. Many meetings and conversations were held with organizations such as TDF and SFC to determine their suitability as potential homes, or models to build on.

In parallel, Thunderbird worked to develop a revenue stream, which would be needed regardless of an eventual home. So the Thunderbird Council arranged to collect donations from our users, with the Mozilla Foundation as fiscal sponsor. Many months of donations have developed a strong revenue stream that has given us the confidence to begin moving away from Mozilla-hosted infrastructure, and to hire a staff to support this process. Our infrastructure is moving to and we’re already running some Thunderbird-only services, like the ISPDB (used for auto configuring users’ email accounts), on our own.

Legally our existence is still under the Mozilla Foundation through their ownership of the trademark, and their control of the update path and websites that we use. This arrangement has been working well from Thunderbird’s point of view. But there are still pain points – build/release, localization, and divergent plans with respect to add-ons, to name a few. These are pain points for both Thunderbird and Firefox, and we obviously want them resolved. However, the Council feels these pain points would not be addressed by moving to TDF or SFC.

Thus, much has changed since 2015 – we were able to establish a financial home at the Mozilla Foundation, we are successfully collecting donations from our users, and the first steps of migrating infrastructure have been taken. We started questioning the usefulness of moving elsewhere, organizationally. While Mozilla wants to be laser-focused on the success of Firefox, in recent discussions it was clear that they continue to have a strong desire to see Thunderbird succeed. In many ways, there is more need for independent and secure email than ever. As long as Thunderbird doesn’t slow down the progress of Firefox, there seems to be no significant obstacles for continued co-existence.

We have come to the conclusion that a move to a non-Mozilla organization will be a major distraction to addressing technical issues and building a strong Thunderbird team. Also, while we hope to be independent from Gecko in the long term, it is in Thunderbird’s interest to remain as close to Mozilla as possible to in the hope that it gives use better access to people who can help us plan for and sort through Gecko-driven incompatibilities.

We’d like to emphasize that all organizations we were in contact with were extremely welcoming and great to work with. The decision we have made should not reflect negatively on these organizations and we would like to thank them for their support during our orientation phase.

What’s Next

The Mozilla Foundation has agreed to continue as Thunderbird’s legal, fiscal and cultural home, with the following provisos:

  1. The Thunderbird Council and the Mozilla Foundation executive team maintain a good working relationship and make decisions in a timely manner.
  2. The Thunderbird Council and the team make meaningful progress in short order on operational and technical independence from Mozilla Corporation.
  3. Either side may give the other six months notice if they wish to discontinue the Mozilla Foundation’s role as the legal and fiscal host of the Thunderbird project.

Mozilla would invoke C if A+B don’t happen. If C happened, Thunderbird would be expected to move to another organization over the course of six months.

From an operational perspective, Thunderbird needs to act independently. The Council will be managing all operations and infrastructure required to serve over 25 million users and the community surrounding it. This will require a certain amount of working capital and the ability to make strong decisions. The Mozilla Foundation will work with the Thunderbird Council to ensure that operational decisions can be made without substantial barriers.

If it becomes necessary for operational success, the Thunderbird Council will register a separate legal organization. The new organization would run certain aspects of Thunderbird’s operations, gradually increasing in capacity. Donor funds would be allocated to support the new organization. The relationship with Mozilla would be contractual, for example permission to use the trademark.

A Bright Future

The Thunderbird Council is optimistic about the future. With the organizational question settled, we can focus on the technical challenges ahead. Thunderbird will remain a Gecko-based application at least in the midterm, but many of the technologies Thunderbird relies upon in that platform will one day no longer be supported. The long term plan is to migrate our code to web technologies, but this will take time, staff, and planning. We are looking for highly skilled volunteer developers who can help us with this endeavor, to make sure the world continues to have a high-performance open-source secure email client it can rely upon.

Open Policy & AdvocacyEU privacy reform can increase trust, user empowerment, but must be done right

This January, the European Commission introduced a proposal to update the current EU-wide legal framework regarding the privacy and security of communications online, known as the ePrivacy Directive. This effort is timely – trust online isn’t great, and there’s more that we need to do to build it. But the Commission’s draft is far from perfect. Because online privacy is one of the core principles in the Mozilla mission, we are actively working with all of the EU institutions, to share our experiences with investing in privacy online and to advise them on ways we believe European privacy law can improve.

The specific proposal on the table is for an ePrivacy Regulation to replace the current Directive. This proposed Regulation, like the General Data Protection Regulation (GDPR), would be binding and harmonized across the European Union. Although both the GDPR and ePrivacy relate to privacy, the first focuses more on the protection of personal data and the latter more on the confidentiality and security of communications.

Here are the key issues in the proposal as adopted by the Commission:

  • Confidentiality of communications: Establishes that all e-communications data shall be confidential. “Listening, tapping, storing, monitoring, scanning or other kinds of interception, surveillance or processing of electronic communications data” shall be prohibited except as outlined in the Regulation.
  • Consent for tracking/cookies: Consent may be expressed via technical settings of a software application allowing access to the internet (like a browser).
  • Privacy settings: Software permitting electronic communications (like browsers) shall offer a privacy friendly option (e.g. prevent third party cookies).
  • Lawful access: Member states may restrict e-privacy for “public interest”; providers of e-communication services shall establish internal procedures to respond to requests by law enforcement agencies for users’ data.
  • Broader application: The Regulation applies to telcos and ISPs, but also to over-the-top content providers like messaging apps, email providers, VoIP platforms, etc. Any technology using cookies or tracking technology (like device fingerprinting) will also be subject to the rules.

We understand and sympathize on many levels with the goals of this process. And getting this right is important. As part of our ongoing efforts to understand privacy in practice, we recently conducted a survey of Mozilla’s community on how users feel about online privacy. Our survey found massive challenges to trust online for internet users. First, respondents are concerned about their privacy online. 8 out of every 10 respondents fear being hacked by a stranger, and 61% of respondents are concerned about being tracked by advertisers. Second, respondents report not knowing much about how to secure their own privacy, with over 90% of survey participants saying they don’t know much about protecting themselves online. Global surveys of consumers indicate the same sentiments, concluding that “only when consumers around the world trust online companies with their data will those companies be able to make the most of the possibilities offered by global database marketing.” As these surveys illustrate, the core problem is one of trust — internet users don’t trust that their activities online are private, which creates a negative dynamic between internet users and online service providers, preventing an optimal condition for both.

Although intended to address this gap, the current EU framework hasn’t produced behavior from the technology industry that promotes a good experience for users (e.g. the ‘cookie header’ that users simply click through), or most importantly, engendered sufficient trust. In revising the ePrivacy framework, the EU government bodies hope to further encourage the right kind of dynamic, one founded on trust.

For our part, we work to enable trust in internet users by building privacy into our products, with Private Browsing embedded in Firefox and Firefox focus, where private browsing is the default. We also believe government action can play a positive role in improving trust and that the proposed ePrivacy Regulation, if done right, would have such an effect. We support the spirit and intention of the ePrivacy Regulation, because it would give EU citizens stronger privacy protection online, fostering individual online security. We will work with the institutions in order to shape a future proof framework that provides predictability for both users and online service providers, and contributes to a more secure online communications ecosystem.

“Doing it right” will be no easy feat. For instance, the draft Regulation imposes very specific restrictions on the technology industry that may challenge the business models of some ISPs. In some areas, obligations are proscriptive, undermining the principle of technological neutrality that this legislation needs to withstand the test of time in a rapidly changing environment, in addition to potentially restricting companies in freely developing innovative products and services.

Achieving harmony on these seemingly competing principles is where the challenge of a successful reform process lies. The core of the challenge is in ensuring these regulations are implementable and will achieve their goals of giving individual users choice, agency, and control, while not imposing undue or unhelpful burdens, or prematurely regulating burgeoning industries and practices.

The reform process is still in the early stages and is now in the hands of the European Parliament. The intention is to wrap up negotiations and have this legislation implemented at the same time that the GDPR comes into force, which will be May 2018. We think that is an overly aggressive timeline to tackle such a complex, important issue space, and hope that the institutions opt to take more time to more thoroughly assess the Regulation.

At Mozilla, we continue to work on these issues within a philosophy of empowering individuals. We’ll be engaged throughout this process and will share updates soon.

This post was written by Sherrie Quinn, Policy & Legal Extern at Mozilla

The post EU privacy reform can increase trust, user empowerment, but must be done right appeared first on Open Policy & Advocacy.

The Mozilla BlogIntroducing Paperstorm: Drop Airborne Leaflets to Fix EU Copyright

Mozilla and Moniker have created a digital advocacy tool that urges lawmakers to modernize EU copyright law


In the EU, outdated copyright law is threatening the health of the Internet.

The EU’s current copyright framework — developed for a time before the Internet — can stymie innovation, preventing entrepreneurs from building on existing data or code. It can stifle creativity, making it technically illegal to create, share and remix memes and other online culture and content. And it can limit the materials that educators and nonprofits like Wikipedia depend on for teaching and learning.

That’s why Mozilla is dropping airborne leaflets — millions of them — onto European cities.

Well, sort of.

Mozilla doesn’t own a fleet of zeppelins. And we like to conserve paper.

So we built instead. Paperstorm is a digital advocacy tool that urges EU policy makers to update copyright laws for the Internet age.

Paperstorm allows you to drop copyright reform flyers onto maps of European landmarks, like the Palace of Science and Culture in Warsaw, Poland. When you drop a certain amount, you can then message EU policymakers — like Pavel Svoboda, Chair of the EU Parliament Committee on Legal Affairs — on social media and urge them to support reform.

Alone, you might drop a handful of fliers. But together, we can drop millions — and send a clear, forceful message to EU policymakers.

Paperstorm is a collaboration between Mozilla and our friends at Moniker, the Webby award-winning interactive design studio based in Amsterdam. Paperstorm is another installment in Mozilla’s suite of advocacy media, which includes Codemoji and Post Crimes.

Why now? Copyright reform is at a critical juncture. Presently, lawmakers are crafting amendments to the proposal for a new copyright law, a process that will end this year. These amendments have the potential to make copyright law more Internet-friendly — or, conversely, more restrictive and rooted in the 20th century.

The good news: We know lawmakers are listening. Last year, Mozilla and our allies collected hundreds of thousands of signatures calling for copyright reform that would foster innovation and creativity in Europe. Some members of the European Parliament have been working diligently to improve the Commission’s proposal, and have taken into account some of the changes we’ve called for, such as removing dangerous provisions like mandatory upload filters, and pushing back against extending copyright to links and snippets.

But many other lawmakers need to be convinced not to break the Internet, and to support a modern copyright reform that empowers creators, innovators and Internet users.

“The EU Commission’s proposal to modernize copyright law for the 21st century falls short,” says Raegan MacDonald, Mozilla’s Senior Policy Manager in the EU. “It would stifle, rather than promote, innovation and creativity online.”

“We are especially concerned about the provisions calling for mandatory upload filters, which would force online services from Soundcloud to eBay to Wikipedia to monitor all content posted online in the name of copyright protection,” MacDonald adds. “Such an obligation would have a disastrous impact on the Internet ecosystem, repressing free expression and wedging out smaller players.”

“Paperstorm is part advocacy tool, part art project,” says Luna Maurer, Co-Founder of Moniker. “It’s a way to explore the intersection of the digital and physical worlds, while also standing up for free expression online.”

If you support common-sense copyright law in the EU — and a healthier Internet — join the #paperstorm today.

The post Introducing Paperstorm: Drop Airborne Leaflets to Fix EU Copyright appeared first on The Mozilla Blog.

Air MozillaMozilla Weekly Project Meeting, 08 May 2017

Mozilla Weekly Project Meeting The Monday Project Meeting

Mozilla Add-ons BlogThank You to Our Featured Add-ons Advisory Board

Every six months we assemble a new group of add-on experts from the community—be they developers themselves or simply super fans—to help curate each month’s new featured add-ons. The project involves scrutinizing a sizable batch of content every few weeks. Our most recent Feature Board recently wrapped up a six-month tour and I’d like to call them out for special commendation…

Thank you very much to Sarah Avilov, Karthic Keyan, Ashli Rose Mathew M, Bhuvana Meenakshi, Viswaprasath, Prasanth P, Santosh Viswanatham, Roopak Suresh, and our longtime community editorial leaders Michael Balasz and Swarnava Sengupta. Your discerning eye for content has helped us highlight some truly awesome add-ons these past six months.

As the entire (AMO) ecosystem fully transitions to WebExtensions, the work of identifying feature-worthy content has become even more critical. We recently updated our featuring criteria to note that we are now only accepting add-ons built with WebExtensions API for future editorial consideration.

The post Thank You to Our Featured Add-ons Advisory Board appeared first on Mozilla Add-ons Blog.

The Mozilla BlogWhy the Next 10 Days Are Critical to the Internet’s Future

Net neutrality is in jeopardy again. We need another grassroots movement


By Ashley Boyd, VP Advocacy

A little over two years ago, the mood here at Mozilla — and across the broader Internet health movement — was jubilant. The Federal Communications Commission (FCC) had voted to enshrine net neutrality as law.

The February 2015 milestone was a major victory for those who believe the Internet is a global public resource that belongs to all users, not select corporations. The order meant individuals were free to say, watch and make what they want online, without meddling or interference from Internet service providers. It was good news for business owners, web developers, entrepreneurs and anyone who streams, clicks and creates content online.

Today, the mood is less jubilant. It’s more dismal and angry. It’s “saddening and maddening,” as Mozilla Chief Legal and Business Officer Denelle Dixon wrote last month.

FCC Chairman Ajit Pai has announced his intention to gut net neutrality. His goal is clear: to overturn the 2015 order and create an Internet that’s more centralized. The FCC will vote to move his proposal forward on May 18 — just 10 days from today.

Net neutrality is about more than packets and data — it’s about upholding free speech, competition, innovation and user choice. To be clear:

Net neutrality is fundamental to free speech. Without net neutrality, big companies could censor your voice and make it harder to speak up online. Net neutrality has been called the “First Amendment of the Internet.”

Net neutrality is fundamental to competition. Without net neutrality, big Internet service providers can choose which services and content load quickly, and which move at a glacial pace. That means the big guys can afford to buy their way in, while the little guys are muscled out.

Net neutrality is fundamental to innovation. Without net neutrality, creators and entrepreneurs could struggle to reach new users. Investment in new ideas would dry up, and the Internet would start to look more and more like cable TV: so many channels, but with nothing on.

Net neutrality is fundamental to user choice. Without net neutrality, ISPs could decide you’ve watched too many cat videos in one day, and throttle your Internet speeds — leaving you behind on the latest Maru memes.

So what do we do? What worked last time: loud, bold and relentless grassroots action. In 2015, nearly four million people urged the FCC to protect the health of the Internet. We sent letters and voicemails, tweets and memes. And it worked.

Now — in the 10 days leading up to the May 18 vote — it’s time to make even more noise.

Mozilla is making it simple. Add your name to our letter, and we’ll deliver your message straight to the FCC. You can also record an impassioned voicemail using Mozilla’s call tool (see the below gif for details). So far, Internet users have recorded more than 50 hours of audio for the FCC’s ears.

Mozilla will record your voice messages and send them in an audio file to the FCC as well as play them publicly in advance of the FCC’s May 18 meeting. Messages left at this number for any other purpose will not be returned. Message content must comply with Mozilla’s Conditions of Use. Do not include personal information in your voice message. Mozilla reserves the right to edit or modify the audio file or omit any messages at our sole discretion.

We’re not alone. A broad network of individuals and organizations — millions of us — are fighting to save net neutrality. Individually, we can write one letter and record one voicemail. But together, all this creates a movement.

I hope you’ll stand with Mozilla and spend the next nine days standing up for a healthy Internet. Free speech, competition, innovation and user choice online depend on it.

Photo: Flickr via Joseph Gruber

The post Why the Next 10 Days Are Critical to the Internet’s Future appeared first on The Mozilla Blog.

QMOFirefox 54 Beta 7 Testday, May 12th

Hello Mozillians,

We are happy to let you know that Friday, May 12th, we are organizing Firefox 54 Beta 7 Testday. We’ll be focusing our testing on the following new features: Net Monitor MVP and Firefox Screenshots.

Check out the detailed instructions via this etherpad.

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better!

See you on Friday! 🙂

Mozilla VR BlogWebVR India Community Debuts "WebVR Hack Nights"

WebVR India Community Debuts

The WebVR India community conducted a WebVR Hack Night event last weekend (22nd April). In attendance were active members of the community, who collaboratively sprinted on a few goals and brainstormed about the community health and expansion. The event was attended by 29 members from 9 different cities.

The attendees started working on a WebVR India community website to showcase all the related resources in a single place, as well as provide steps for Getting Involved. Apart from this, the WebVR India community now has a good roadmap for the next couple of months (including a contest for fixing A-Frame issues on GitHub).

WebVR India Community Debuts

The WebVR India community has more than 200 members on its Telegram group, most of whom are focused on A-Frame development and evangelism. Because of its huge presence and community involvement, India is the leading country in organizing events as part of the MozActivate campaign to get more contributors and developers, locally and internationally, evangelizing, and contributing to WebVR and A-Frame.

Also, be sure to check out Learning Web-based Virtual Reality, a recently authored book by the community's very own Srushtika Neelakantam and Tanay Pant.

Read more about the WebVR India community and Hack Night event on Ram's post on the Mozilla India blog. Visit this Google Photos album for more pictures from the Hack Night.

Air MozillaRust Meetup May 2017

Rust Meetup May 2017 (Complete schedule is still TBD, will provide more details when it finalizes)

Air MozillaReps Weekly Meeting May 04, 2017

Reps Weekly Meeting May 04, 2017 This is a weekly call with some of the Reps to discuss all matters about/affecting Reps and invite Reps to share their work with everyone.

Mozilla L10NStay on top of localization with Pontoon notifications

With over 30 projects available for localization in Pontoon, hardly any day goes by without an important update in at least one project. Until recently, you had to manually check your team and project dashboards to find out if new strings have been made available for translation or if the deadline for your incomplete project approaches.

Enter notifications. Without a doubt, they are a critical component of a modern translation tool and no wonder they’ve been the top-voted feature in the Pontoon end-of-year 2016 survey. I’m excited to share some news on this topic.

Highlighted icon indicates unread notifications.

Notifications menu reveals more details.

In the last couple of weeks we’ve been rolling out Pontoon notifications, so there’s a good chance you’re already using them. If the bell icon in the page header is highlighted, it means you have unread notifications. By clicking on it, a popup will show up, revealing the details of all unread notifications.

When and where

Notifications are sent in the following scenarios:

  • If new strings are added to a project.
  • If an incomplete project is due in 7 or 2 days.
  • If project managers manually send them.

Notifications are targeted, which means they are only sent to users that have made contributions to the project in the past.

Notifications page shows all notifications, grouped by project.

This is just the beginning

In the next few weeks we’ll be monitoring how often notifications are being sent out and read by users. We’ll use the acquired data to design the email notification system that will not only reach you outside Pontoon, but also stay away from polluting you inbox too much.

We’ll be also fine-tuning the list of scenarios on which we send notifications and extending it. For example, we’d like to notify team translators and managers when new suggestions are ready for a review.

Get involved

As always, we’d be very happy to hear your thoughts. Not only about the current implementation, but also about the next steps we should be taking with notifications.

And last but not least – if you have some coding skills, we’d be very happy to mentor you in fixing your first (or second, third…) Pontoon bug.

Firefox UXThings I learned working on Firefox Focus

We launched Focus as a free content blocker for Safari on iOS back in December 2015. The idea was to bring control back into users’ hands. We wanted to let them dictate how they wanted to spend their browsing data, even if they weren’t using Firefox.

About a year later, we wanted to give the product an update. We wanted to experiment more on Mobile. But how?

What if we could give mobile users an app that only allowed private browsing?
What would “success” or “failure” look like?
How were we going to do any of this?

Eventually, we released the update (and it’s on the App Store!). We learned a few things and now we’re working on Firefox Focus for Android.

Move together and move quickly

Our team was very small. So we needed to set expectations early — who’s responsible for what?

We tried to stay focused (heh) on a small set of well-defined goals. Everyone had a part to play. A clearly defined timeline helped us avoid scope creep too. It set the tone for our discussions and made it a lot easier to prioritize issues.

Slide from our presentation at our All Hands in Kona, HI (Source: Barbara Bermes)

We had weekly check-ins to make sure everyone was on the same page. All of our meetings were clearly directed and to the point. As things came up they would also be filed as GitHub issues so we always had a way to track our discussions.

It’s important to remember that getting 100% consensus is pretty much impossible. But “moving together” doesn’t necessarily mean everyone has to think the same. It’s natural to have doubts. Trust each other and try to move forward as a team. Define what success looks like together. Then go out, and gather some data.

Share early and often

Even if you aren’t finished, design comps/mock ups can really help provide a shared vision. Try to share them more! I’m guilty too sometimes. I know it can be hard. But I’ve always been glad that I did.

Where possible, we made all design changes “on device” using Buddybuild. This helped us arrive at decisions quicker, and with more confidence. It was great for design and engineering issues but it also kept the entire team in sync (especially useful when working across offices and timezones). Basically, it was our way of sharing early and often.

Erase button — “Good enough” initial designs

Then there was Slack . Lots of it. Our team was small, but distributed. Slack made it easy for anyone to give feedback, report/resolve GitHub issues, or even just give an encouraging 👍.

Sharing early might have pitfalls too. But it can get everyone involved and excited about the final product. Visual mock ups create a common language and helps avoid miscommunication later on. Share the vision, spread the workload. Insightful feedback can uncover interesting opportunities, but don’t let criticism stall you either.

Be flexible

Originally, Focus was a slightly different product. I didn’t work on the first version myself (that was mostly Darrin) but Brian (one of our engineers) did.

As designers, we should be opinionated but we also need to be flexible. Whatever decision we arrive at right now might not be ideal, but maybe that’s OK. Who knows, maybe sometimes we don’t have the right answer. Remember, it’s iterative!

Brian and I shared the same timezone but not the same office. So we spent a fair amount of time on Vidyo. Being on a video call over a long period of time can be really tiring. But it helped us hammer out the details quickly. When something didn’t make sense, we didn’t have to wait for the next weekly meeting to chat.

This is probably terrible of me, but I actually didn’t have a “full design spec” until towards the end of the project.

Screen sharing unfinished designs

Unfortunately, there isn’t a one-size-fits-all type of solution here. For us, Vidyo and Slack made the most sense but there were still drawbacks. Everyone’s different. Every team is different. Find a solution that works for you and your team. The key is to be flexible, to adapt.

There are always more opportunities to learn, and to grow. Within our products and ourselves as practitioners too. In the end, I really think it’s a constant process.

Firefox Focus on Android — Buddybuild #1420 on device

If you’re interested in contributing, here are the GitHub repos for Firefox Focus on iOS, and Android. Currently, we’re working towards the initial release of Firefox Focus on Android. Send any feedback, questions and comments you might have!

Things I learned working on Firefox Focus was originally published in Firefox User Experience on Medium, where people are continuing the conversation by highlighting and responding to this story.

Air MozillaWeekly SUMO Community Meeting May 03, 2017

Weekly SUMO Community Meeting May 03, 2017 This is the sumo weekly call

Mozilla Add-ons BlogMay’s Featured Add-ons

Firefox Logo on blue background

Pick of the Month: Fast Reverse Image Search

by Jeremy Schomery
Say you find a great image on the Web, but there’s no context around it or credit to its source. How can you learn more about this remarkable vision? Fast Reverse Image Search addresses this puzzlement.

“This is absolutely superb.”

Featured: Pick & Save Images

by Merci Chao
With one click this add-on arranges all images from any Web page and lets you select those you want to save.

“I’ve used several ‘image-saving’ type extensions for Firefox over the years, but for me, this one beats all the others.”

Nominate your favorite add-ons

Featured add-ons are selected by a community board made up of add-on developers, users, and fans. Board members change every six months. Here’s further information on AMO’s featured content policies.

If you’d like to nominate an add-on for featuring, please send it to amo-featured [at] mozilla [dot] org for the board’s consideration. We welcome you to submit your own add-on!

The post May’s Featured Add-ons appeared first on Mozilla Add-ons Blog.

SeaMonkeyThe State of the SeaMonkey Union!

Hello fellow users and supporters of the SeaMonkey suite!

The important part first: SeaMonkey is alive and we do not plan to discontinue it. But in continuing to deliver the best and only suite based on the Mozilla Gecko web engine, we need your help.

Lets first start where we are.

SeaMonkey 2.46 was released in late December after struggling for months with infrastructure and build issues. While still using the Mozilla infrastructure, we are mostly on our own here. We plan to release a final 2.48 based on the level of Firefox 51 soon. Again this  is late due to infrastructure and build issues, but not so much as 2.46. Being based on Firefox 51 means that security patches are again not up to par with current Firefox. Believe us, we dislike this as much as you do.

The SeaMonkey project is entirely driven by volunteers working on it in their free time. The current members of the core team (count up to 7) are committed but, with all the changes, are getting slowly overwhelmed. This means bugs do not get fixed as fast as we would like. With an aging infrastructure becoming more and more abandoned by Mozilla, due to switching Firefox building to the cloud, releasing builds does not become easier. It also means that if even one of the current key people quits, the project is in danger of becoming un-maintainable which is even worse. Also keeping up with Firefox is becoming difficult at best. Mozilla plans to discontinue classic extensions and themes with Firefox 57 which is right around the corner. XUL, one of the key technologies of SeaMonkey, is also on the chopping block and will be discontinued in the near future. The replacement technologies, based on modern web standards, are immature and still under constant development. In the end, an almost complete rewrite of the current program will probably be needed. If it weren’t for our friends from the Thunderbird project, we would now have even bigger problems.

The good news is that financially we are a little better off than last year.
DuckDuckGo is now the default search engine of SeaMonkey. Every time you use
it for searches in SeaMonkey we get paid. For the conspiracy seeking people
out there:) Not being able to easily set the search engine in 2.46 to another
provider was a genuine bug with a workaround documented in the release notes
from day 1. It has now been fixed.

What we plan:

After releasing SeaMonkey 2.48 we will switch to the Firefox 52 ESR source code for 2.49.x releases. This means that the code base is more or less frozen for a few release cycles and only security updates and bug fixes will be in the releases.

The infrastructure issue has been discussed. While critical, there are no final plans yet (also thanks to lack of manpower). Thunderbird is in the same boat and we hope to work out something together. If worst comes to worst, we could ask our team member Adrian Kalla to produce our regular builds. This had been discussed earlier. It was dismissed, for now, as no crash symbols for builds would be available on the Mozilla servers.

Switching to ESR means we can work on bugs in the current tree for a while longer without having to fear that they are carried over into a release. They need to be fixed for the next ESR of course.

The most critical issue is to support web extensions in one of the next
releases. It is unclear how long we will be able to support classic extensions.

There are a number of Gecko Forks in the wild. We do not plan to switch over to one of them as the basis for SeaMonkey. We think that they currently do not have enough developers themselves to cope with the changes Mozilla plans. Web technologies are also evolving all the time and we fear that they are not able to keep up.

Also, we are not planning to support any abandoned stuff like classic
extensions and NPAPI plugins on our own. We will try as long as possible. But when they are gone, they are gone. The current developer base is much too small to do our own fork.

Based on how successful Mozilla is, or if one of the forks gain ground, this might change in the future.

What we need:

Setting up our own infrastructure, potentially in conjunction with Thunderbird, will cost. If you feel you can contribute towards future releases in this way, please consider donating:

But what we need even more is people to help out. Even if you are not a developer, you can help. For example, writing a document such as this takes time. Also, maintaining a website is not done by staring at it all day.

So if you want to help, these project areas are looking for a few good

  • Development. Most code is either JavaScript or XML/CSS mixed with C++ and Mozilla technologies based on XUL and friends. In SeaMonkey not so much HTML right now, but this might need to change. The build environment makes heavy use of Python.
  • Graphics: Icons and symbols need a face lift for HiDPI screens. There are plans to switch everything over to svg files in the backend which would mean a massive effort to convert existing files. With a sometimes extremely conservative user base when it comes to changes in the interface, not an easy job
  • Website: Some areas are severely outdated and things like release notes need to be written too.
  • Bug hunting and triaging: We could use a few more people to check out bugs and try to reproduce and categorize them in Bugzilla. We are especially short on people doing this on macOS. While we are on it. Writing lengthy threads in the news and support groups is fine but if no one actually reports them as a bug in the end they usually won’t get fixed.
  • Everything else not covered above. If we forgot something you can fill this slot too. Just think about it.

As a final statement, we do not think that SeaMonkey will take over the
browser world any time soon. SeaMonkey is a niche product and will stay that
way. Too many people are not interested in a classic suite anymore and most
users are happy to use what is hip. That is OK with us. It’s all about choice.

We would like to continue supporting the power users like ourselves and those
who are looking for something different and flexible without reinventing the
wheel with every release. We try to listen to you, our user base, for
advice/orders/demands/suggestions. Of course, we won’t be able to implement
everything under the sun. But we would still like to implement something and
stay current. It’s your call now.

If you would like to support us, either send a mail to us, the SeaMonkey
Council (seamonkey-council at mozilla dot org), ask for guidance in the
official support groups or just pick your favorite unassigned bug from
Bugzilla and start. Or just leave your comment below 🙂

We are looking forward to hearing from you.
The SeaMonkey Council

Air MozillaRust Libs Meeting 2017-05-02

Rust Libs Meeting 2017-05-02 Rust library team meeting for 2017-05-02.

Air MozillaWebdev Extravaganza: May 2017

Webdev Extravaganza: May 2017 Once a month web developers across the Mozilla community get together (in person and virtually) to share what cool stuff we've been working on. This...

hacks.mozilla.orgDebugging Web Push in Mozilla Firefox


This article is part of an ongoing series about using and working with Web Push and Mozilla’s Web Push service. This article is not meant to be a general guide, but instead offers suggestions and insight into best using the service. Some knowledge of Javascript, Python, or other technologies is presumed.

One of the challenges with Web Push implementation issues is trying to figure out what went wrong. Web Push has a large number of “moving parts”, systems and components that need to work together in order for your message to be successfully sent and received. While this article can’t address all the reasons that a given Push message might fail, I will try to provide tools and guidance for the more common problems.

Common Problems

Error reporting

The largest problem we see is from sites that do not pay attention to the return codes we provide. A previous post mentioned how you can manage subscriptions to reduce your cost of sending out messages that will never be delivered. It’s also important to pay attention to the error that is returned.

An error can return a body that looks like the following:

  'errno': 102,
  'message': 'Request did not validate invalid token',
  'code': 404,
  'more_info': '',
  'error': 'Not Found'

The list of errno values are available in the Autopush documentation. (Autopush is the name of the open source server we run to handle receiving and forwarding push subscription updates.) The server tries to provide as much detail and help as possible, so if your messages aren’t getting through, the Autopush messages may help quite a bit.

VAPID concerns

Another potential problem is confusion around VAPID. VAPID is a developing specification for subscription-providing sites to “self identify”. This means that if there’s a significant problem, the push server operator has a way to contact whomever is sending the problematic messages. If you are seeing a large number of “401” status code response messages, chances are you have a problem with your VAPID authentication.

VAPID also allows a site to create “restricted subscriptions“. These subscriptions are locked down so that only the party that has the VAPID key can send them. This can be a bit confusing.

Very simply, VAPID is a block of data cryptographically signed with a key that has two parts: a Private key that you never share and is used to sign the VAPID token, and a Public key that is safe to share and is used to create the restricted subscription. Generally, you have a VAPID key that lasts for quite some time. It’s not a good idea to have it last forever, but it can certainly last for a year or so. I’ll talk about the implications of that in a bit.

When your app requests a push endpoint, you have the option of providing your VAPID Public key as the applicationServerKey. This will create a new subscription endpoint that is locked to that key. In order to send a successful subscription request, you must sign the VAPID block using the corresponding Private key, and include the Public key with your request. (How you include the public key changed between Draft 01 and Draft 02. You probably want to find a library that does the signing. You’ll also want to consult the documentation for the push service you choose to see which forms they accept. Most push platforms accept Draft 02.)

Note that the VAPID Public key is tied to the URL that you’ve requested. That means that you need to use that same key pair every time you want to send data to that URL. If you ever want to change the VAPID key, you’ll need to fetch a new endpoint and discard the old one. You decide how to do this, of course. Your app could simply fetch the new Public key from a known location, generate a new URL request and send the new registration information back to your server. This exercises much of the same code that you would want in place for a pushsubscriptionchange event.

So, for VAPID 401 errors, you will want to check:

  1. Are you using the same key pair you used to acquire the restricted subscription?
  2. Have you properly signed your VAPID authorization key?
  3. Have you included all required VAPID headers with your request?

Data encryption

Finally, there’s the actual message encryption. This can be the trickiest to debug because the push server has no way of knowing if the encryption is correct when it accepts a message for delivery. In addition, a message is only delivered by the User Agent (UA) if the UA can successfully decrypt it. This prevents your app from waking up to false messages, which can drain battery life.

Again, the best way to solve these sorts of problems is to use a library. This isn’t always possible, and you may have a situation where you need to “hand roll” your own. There is a page that can help walk you through the process of encrypting your data, however it currently only works on Firefox.

Be advised that there are several changes in the specs that may not be supported yet. As of publication date, most push implementations will accept ECE Draft 03 “aesgcm” encoding. There is a proposal that the User Agent report back the forms of cryptography it supports, but this has not been formally accepted yet. Unfortunately, this is one of the issues with using a technology that’s still in development. If you wish to follow the changes that are being proposed, you should follow the working groups.

Unfortunately, many encryption errors are not detected by the Push Service. This is because the Push Service cannot decrypt your message. Fortunately, it is possible to “peek inside” the client to see if there might be an error.

Debugging the Desktop

Use the Browser Console to help debug the desktop. Note, this is different than the “Web Console” that appears as part of the developer tools panel. The Browser Console displays much higher level messages that may not be visible to the page or the web console.

The benefit is that you will be able to see messages that your service worker may log, as well as other push messages. For instance, if you look at a testing page that we use, you might see something similar in your browser:

An example of the browser console output

Near the bottom of that window, you’ll notice four messages from “sw.js”. The first three are messages stating that a new message has arrived, what the content of the new message is, and the associated clients. Note that the fourth message is a console.error() saying "Service worker couldn't send message: Error: No valid client to send to." This can happen when a service worker loses its claimed association with the parent. In short: the good news is that the message came in fine, the bad news is it had nowhere to go.

Another useful tool to consider is the service worker debugging page at about:debugging#workers. This page shows all the registered service worker scripts and allows you to unregister them, optionally send push events, and debug the service worker scripts. Mozilla Hacks has more details about the about:debugging page.

Debugging Android

Debugging push on Android is somewhat similar. Much like the desktop, you will want to set dom.push.debug to true and dom.push.loglevel to debug. Unfortunately, unlike the desktop, there is no easy way to view the browser console from Android. Messages are logged to the android error log, so it’s possible to use a command like adb logcat to tail the error log. Some developers may be able to use grep to look for only records containing "Gecko(Push|Console)".

Sadly, this view isn’t quite as pretty, but does show much the same, including console messages from service workers which may help identify and resolve bugs. It is worth noting that adb may truncate very long messages.

A sample adb log might look like:

04-24 15:18:04.432  7015  7037 I GeckoPushGCM: Cached GCM token exists: crWSbvAk4e4:APA91bHozW8bSTCrBwPerd7...
04-24 15:18:04.432  7015  7037 D GeckoPushManager: Existing uaid is fresh; no need to request from autopush endpoint.
04-24 15:18:04.488  7015  7037 I GeckoPushManager: Got chid: c0ef2... and endpoint:
04-24 15:18:04.500  7015  7038 I GeckoPush: console.debug: PushServiceAndroidGCM:
04-24 15:18:04.520  7015  7038 I GeckoConsole: put() [object Object]
04-24 15:18:04.521  7015  7038 I Gecko   :   put()
04-24 15:18:04.522  7015  7038 I Gecko   : Object
04-24 15:18:04.522  7015  7038 I Gecko   :     - pushEndpoint =
04-24 15:18:04.522  7015  7038 I Gecko   :     - scope =
04-24 15:18:04.526  7015  7038 I Gecko   : console.debug: PushDB:
04-24 15:18:04.528  7015  7038 I GeckoConsole: put: Request successful. Updated record c0ef2...
04-24 15:18:04.528  7015  7038 I Gecko   :   put: Request successful. Updated record
04-24 15:18:04.528  7015  7038 I Gecko   :   c0ef2...
04-24 15:18:04.563  7015  7038 I GeckoConsole: receiverKey BNPFRn...
04-24 15:18:04.565  7015  7038 I GeckoConsole: Auth key:  0Gkt8...
04-24 15:18:04.567  7015  7038 I GeckoConsole: data: Amidst the mists and coldest frosts, I thrust my fists against ...
04-24 15:18:04.650  7015  7038 I GeckoConsole: echo -ne "\xa\xc6\xfb\xd3\x13\x0e\xa\xa\xa\xad\x59\xad\x71\xa\xa\...
04-24 15:18:04.652  7015  7038 I GeckoConsole: payload 191,40,74,54,29,62,188,190,133,70,86,70,120,194,173,100,62,...
04-24 15:18:04.653  7015  7038 I GeckoConsole: Fetching:
04-24 15:18:04.960  7015  7038 I GeckoConsole: Message sent 201
04-24 15:18:05.753  7015  9696 D GeckoPushGCM: Message received.  Processing on background thread.
04-24 15:18:05.754  7015  7037 I GeckoPushService: Google Play Services GCM message received; delivering.
04-24 15:18:05.774  7015  7038 I Gecko   : console.debug: PushService:
04-24 15:18:05.774  7015  7037 I GeckoPushService: Delivering dom/push message to Gecko!
04-24 15:18:05.777  7015  7038 I GeckoPush: console.debug: PushServiceAndroidGCM:
04-24 15:18:05.781  7015  7038 I GeckoPush:   ReceivedPushMessage with data
04-24 15:18:05.782  7015  7038 I GeckoPush: Object
04-24 15:18:05.782  7015  7038 I GeckoPush:     - channelID = c0ef2...
04-24 15:18:05.782  7015  7038 I GeckoPush:     - con = aesgcm
04-24 15:18:05.783  7015  7038 I GeckoPush: console.debug: PushServiceAndroidGCM:
04-24 15:18:05.784  7015  7038 I GeckoConsole: Delivering message to main PushService: [object ArrayBuffer] ...
04-24 15:18:05.786  7015  7038 I Gecko   : console.debug: PushService:
04-24 15:18:05.787  7015  7038 I GeckoConsole: receivedPushMessage()
04-24 15:18:05.787  7015  7038 I Gecko   :   receivedPushMessage()
04-24 15:18:05.788  7015  7038 I Gecko   : console.debug: PushDB:
04-24 15:18:05.789  7015  7038 I GeckoConsole: getByKeyID()
04-24 15:18:05.789  7015  7038 I Gecko   :   getByKeyID()
04-24 15:18:05.795  7015  7038 I Gecko   : console.debug: PushDB:
04-24 15:18:05.797  7015  7038 I GeckoConsole: getByKeyID: Got record [object Object]
04-24 15:18:05.810  7015  7038 I Gecko   : console.debug: PushDB:
04-24 15:18:05.811  7015  7038 I GeckoConsole: update: Update successful c0ef2...
04-24 15:18:05.840  7015  7038 I Gecko   : console.debug: PushService:
04-24 15:18:05.841  7015  7038 I GeckoConsole: notifyApp()
04-24 15:18:05.841  7015  7038 I Gecko   :   notifyApp()
04-24 15:18:05.841  7015  7038 I Gecko   :
04-24 15:18:05.848  7015  7038 I GeckoConsole: **** Recv'd a push message:: {"isTrusted":true}
04-24 15:18:05.850  7015  7038 I GeckoConsole: Service worker just got: Amidst the mists and coldest frosts, I ...
04-24 15:18:05.853  7015  7038 I GeckoConsole: Service worker found clients {}
04-24 15:18:05.854  7015  7038 I GeckoConsole: Service worker sending to client... [object WindowClient]
04-24 15:18:05.857  7015  7038 I GeckoConsole: Service Worker sent: {"type":"content","content":"Amidst the mists ...
04-24 15:18:08.033   527 32517 E ResourceManagerService: Rejected removeResource call with invalid pid.
04-24 15:18:05.865  7015  7015 D GeckoToolbar: onTabChanged: LOCATION_CHANGE

Note that you get a bit more information here, including messages indicating that GCM received the message and relayed it to Gecko. Many log messages have been removed or trimmed for space for publication, but these can help isolate if the problem is in your app vs. in the network.


Working with Push is rewarding, but remember that it is a new technology. This means that things can change, and there may be rough bits to watch out for. As always, we appreciate bugs when you find them and suggestions on how to make things easier. You can find us on in the #push channel if you have questions.

QMOFirefox 54 Beta 3 Testday Results

Hello Mozillians!

As you may already know, last Friday – April 28th – we held a Testday event, for Firefox 54 Beta 3.

Thank you all for helping us making Mozilla a better place – Yunito, Jadenkore,  Athira Appu, newtester_athi and Surentharan R.A.

From Bangladesh team:  Mohammad Maruf Islam,  Nazir Ahmed Sabbir | NaSb, Raihan Ali,  Tanvir Rahman, Sajedul Islam, Md. Almas Hossain, Saheda Reza Antora, Anika Alam, Iftekher Alam, Sajal Ahmed, Roman Syed, Foysal Ahmed, Sauradeep Dutta, Jobayer Ahmed Mickey, Maruf Rahman, Md. Tarikul Islam Oashi, Kazi Ashraf Hossain, Md. Mujtaba Asif, Sayed Mahmud, Shah Md. Rifat, Rezwana Islam Ria, MD. Ariful Islam Saikat, Kazi Nuzhat Tasnem, Nusrat Jahan, Hasibul Hasan Shanto, Humayra Khanum, Niaz Bhuiyan Asif, Md. Majedul Islam, Farhadur Raja Fahim, Saima Sharleen.

From India team: Surentharan R.A, Baranitharan, Rajesh, Fahima Zulfath A, Saurabh Shubham, Vinothini.K, Balaji, Monesh B, Nagaraj V, Gunapathi.S, ASWINI PRIYA V,  subash, Kavya.


– several test cases executed for the Net Monitor MVP and Download Panel UX Redesign features.

– 27 bugs verified: 13086941327155, 1327731, 1328415, 13311661331686, 1333532133355013356081336869, 1337510, 1338363, 1338843133999213405391341586, 13416801342002, 1343478, 134451113482561352387, 1352694, 1353699, 1354495, 1356641, 1358013.

Thanks everyone for another successful testday! 🙂

We hope to see you all in our next events, all the details will be posted on QMO!

Hive Learning Network NYCMarch Meet-Up: Hive NYC Welcomes New Members!

Network members working together through the Marshmallow Tower Challenge, using their collective knowledge to build structures out of uncooked noodles and marshmallows.

Hive NYC members gathered at the Museum of the Moving Image on March 30th to welcome new member organizations and to share updates on opportunities and milestones.  As part of the 2017 winter Member Application cycle, a selection committee of network members reviewed candidates using Hive NYC’s membership criteria.  The goal was to welcome organizations who could contribute to the Hive learning network’s supportive peer learning space, activate partnerships between member organizations, and commit to collectively develop accessible, innovative, and equitable digital education opportunities for NYC youth.

ABOUT NEW HIVE NYC MEMBERS: New members bring with them a variety of knowledge, practice, and pedagogy and are excited to contribute to the Hive mind.  As peer learning collaborations, projects, and initiatives emerge across member organizations —  there is new opportunity to expand approaches and to evolve the digital media component of our programs together.  New members are:

Harold Hunter Foundation – KICKFLIP: is a non-profit, grassroots, skateboard community-based organization that provides support, advocacy, and opportunity for skateboarders in NYC and beyond. KICKFLIP is an interest-driven connected learning program providing accessible educational opportunities for NYC youth for whom school is often not a safe or constructive environment.  Would like to contribute their program design model that routinely seeks to evolve their programs to engage youth, negatively impacted by traditional education, through sports and tech.

Here to Here: Incubated through a unique partnership between DreamYard and Big Picture Learning to build interest-based career pathways for South Bronx high school youth. HERE TO HERE commits to systematically transform how high schools and postsecondary institutions prepare our youth for meaningful career pathways.  Would like to contribute their approach to career pathways predicated on the combination of self-exploration, analyzing youths environments, and learning motivated by passion and interest.

Hip Hop Public Health: Hip Hop Public Health uses music as the platform to reach economically disadvantaged school-aged children with an innovative array of media tools designed to improve health literacy and foster positive behaviors.  Would like to contribute ways they’ve integrated pop-culture and the use of media tools to support young people in being health conscious leaders in their communities.

The New-York Historical Society: New-York Historical has a mission to explore the richly layered political, cultural and social history of New York City, State, and the nation, as well as to serve as a national forum for the discussion of issues surrounding the making and meaning of history.  Would like to contribute program opportunities for network member youth seeking support in academic and vocational skills development.

POWRPLNT: is a digital art space in Bushwick, providing free classes for underserved teens on software and access to mentors, resources, and opportunities for thriving in today’s creative economy.  Would like to contribute how they’ve worked with youth leaders to integrate peer learning opportunities in digital skills building workshops.

Scope of Work (SOW): SOW strives to establish equity for young talent in New York’s creative industry. By removing barriers and providing access to pre-professional development resources, real-world work experience, and holistic mentor relationships, we aim to close the opportunity gap for underrepresented young people and realize a diverse, impactful creative sector.  Would like to contribute their knowledge of industry practices serving as career trajectories aligned to young people’s passions and experiences.

StudyUp: connects college prospects from New York City’s public schools to mentors who help them showcase their academic potential through research projects. Mentees develop a personal sense of academic purpose by exploring topics that are relevant to their own lives and sharing their insights through online videos.  Would like to contribute with member organizations and their awesome educators to provide opportunities to be mentors supporting StudyUp mentees.

Our newest network members are excited to learn from the array of knowledge already in the room about 1) effective partnerships, 2) how to integrate digital media technology for learning and community action, 3) and learn how organizations approach fostering creative and inclusive learning spaces for youth.  With program closeout, summer camps, and fall program planning on the horizon, we’d like to assemble members in the near future to discuss strategic plans for preparing their organizations and education staff for what lies ahead.

For the remainder of the network meetup and follow up community call, Hivers shared updates from their organizations. This includes youth program and  events, opportunities for collaboration, support, and partnerships:


  • New-York Historical Society – Teen Programs: shared teen program opportunities to interested young people in your community. Participants in these programs have a unique opportunity to explore the vast collections of the NHSC, working closely with museum professionals and alongside other students who share their interest in American Art and History. Upcoming program will focus on celebrating 100 years of women’s right to vote in NY.  For more information, contact Kinneret Kohn (Manager of Teen Programs). NYHS mentioned that there is free program space available on Governors Island during the summer.


  • NYC Parks Computer Resource Centers (CRC): NYC Parks is looking to partner with like-minded organizations and individuals to provide professional development for CRC educators. NYC Parks wants to collaborate to develop quality trainings to support educators in building skills in computer science, technology, film, and game design. Contact Zac Rudge (RecYouth Program Manager) for more information.
  • Scope of Work (SOW): Launching first internship and fellow program in summer 2017. Are currently working with member organizations Mouse and Beam center to develop rubrics to assess internship sites. Interested in partnering with organizations and agencies to facilitate master classes for youth participants. If interested in a partnership, contact Eda Levenson (Co-Founder) for more details.
  • New York City Writing Project: Shared work created using Playlists. Youth Voices playlists provide an online platform for young people to voice their thoughts and to start a dialogue with their peers about their passion and learning. NYC Writing Project is exploring how the playlist platform is supporting young people’s social and connected learning. Also exploring badging and are looking to develop relationships with youth-serving organizations that are partnering with schools to build systems for connected credentialing. If interested in connecting, please contact Paul Allison (Teacher Leader).
  • The Lamp: The 22 Million by 2020 campaign is a nationwide media literacy and civics endeavor aimed at the 22 million teens who will be eligible to vote in the 2020 election, equipping them to challenge harmful and misleading media messages in order to become informed & engaged first-time voters. The Lamp is looking for potential partners to get involved as they shape the framework for the campaign and plan the first summit for September here in New York City. For more information, email

If you would like to share any further community updates, please feel free to add them below in the comments section. You can also share any upcoming events via the Hive NYC’s listserv, to reach the wider Hive Community.  To subscribe to the Hive NYC listserv, visit

This ice-breaker was adapted from Tom Wujec’s Marshmallow Tower Challenge.

The post March Meet-Up: Hive NYC Welcomes New Members! appeared first on Hive NYC.

Air MozillaMozilla Weekly Project Meeting, 01 May 2017

Mozilla Weekly Project Meeting The Monday Project Meeting

Mozilla IndiaWhat’s cooking in ‘WebVR India’ community!

Hi Mozillians!

WebVR India Community, which was initially called as Grow WebVR Focus Group, was formed as part of community restructuring during Mozilla India Pune meetup in August month of last year. After 8 months since its birth, lets see what’s the status report from this community!

How do we function as a community?

After various iterations of brainstorming and improvements in the process, this is how we function as a community –

Recognition of contributors:
  • We have setup a github organization, which has a repository especially for the volunteer recognition system.
  • All the members are asked to report their contributions on the issues which are created monthly for this purpose.
  • Currently the contributors are mostly involved in creating A-Frame VR experiences/website, conducting A-Frame events, writing blogposts about the technology or personal experience (related to learning, teaching or exploration) and contributing to fixing bugs in a-frame library, website & A-Frame inspector.
  • At the end of each month, we document all these contributions on the wiki page of the community.
  • We also feature them as WebVR India Superstars and add them to a special Superstars telegram group. This group manages and carries out all operations of the community.
Decision making:
  • To ensure ensure openness and decentralization, we are doing all our discussions & decision making openly via github issues, during monthly hangout calls (which are publicly accessible by all the members of the community) or on the WebVR India Telegram group.
  • We have a separate telegram group for WebVR India Superstars where all the early discussions happens, which is then taken to wider audience using ways mentioned above. The process of adding contributors to the Superstars group is complete transparent as mentioned in the previous section.
Contests & Activities:

To ensures continuous involvement of the community members and expansion of the community, we host various contests and activities on a regular basis. Listing few of them below-


Self-check takeaways:

Self-checks are indeed an important factor in maintaining the health of a community & its growth. We drew an initial roadmap and set goals for the first 6 months during the Pune meetup and we did our first self-check on them during monthly call in November. The second self-check was done during recently concluded Hack Night which was conducted for all the experienced contributors and following are the key takeaways from this.

This community has been very successful in meeting it’s immediate short term goals, which were proposed during the Pune meetup, and going well on-track for the long term goals.

The current functioning of this group is aligned with Mozilla India community structure proposed in Pune meetup.

What went well, few stats:
  • 3 repositories and 70+ issues on github used for open discussion and tracking tasks
  • Active telegram group with 200+ members
  • 20 awesome superstars who are mentoring and managing this group
  • 10 monthly online meetings conducted, meeting notes & recording links available on github.
  • 15+ events conducted by the community
  • 25 blogposts written by community members
What are we working upon next!
  • More superstars – Because out of 200+ members on telegram group, we have only 20 core contributors as of now
  • More woman contributors – Out of 20 superstars, only 2 are women contributors; as per Mozilla’s Diversity & Inclusion goal, this number needs to be improved
  • More impact-full contribution – Need more contributors picking up next level of contributions like fixing github issues & contributing to A-Frame component registry
  • Sharing community updates – Not many people outside WebVR India knew about the awesome work this community has been doing

Upcoming activitiesA-Frame

  • Super Hacker’s Contest coming soon! Gear up to fix A-Frame bugs and you could be the one of winners to grab few Sony phones & WebVR India Superstar t-shirts.
  • WebVR India website development under progress. Fully enriched site will be live soon.
  • Monthly newsletter with updates about WebVR India will be shared on discourse and Mozilla India mailing list.

Join us

If you did not know about this group before, feel free to join us now on WebVR India Telegram group.

Connect with us

If you have any suggestions/inputs/question for us, kindly feel free to open a new issue on our github repo. You can also quickly post feedback/discussion on the WebVR India discourse topic.

The Mozilla BlogNew Mozilla Foundation Board Members: Mohamed Nanabhay and Nicole Wong

Today, I’m thrilled to announce that Mohamed Nanabhay and Nicole Wong have joined the Mozilla Foundation Board of Directors.

Over the last few years, we’ve been working to expand the boards for both the Mozilla Foundation and the Mozilla Corporation. Our goals for the Foundation board roles were to grow Mozilla’s capacity to move our mission forward; expand the number and diversity of people on our boards, and; add specific skills in areas related to movement building and organizational excellence. Adding Mohamed and Nicole represents a significant move forward on these goals.

We met Mohamed about seven years ago through former board member and then Creative Commons CEO Joi Ito. Mohamed was at Al Jazeera at the time and hosted one of Mozilla’s first Open News fellows. Mohamed Nanabhay currently serves as the Deputy CEO of the Media Development Investment Fund (MDIF), which invests in independent media around the world providing the news, information and debate that people need to build free, thriving societies.

Nicole is an attorney specializing in Internet, media and intellectual property law. She served as President Obama’s deputy chief technology officer (CTO) and has also worked as the vice president and deputy general counsel at Google to arbitrate issues of censorship. Nicole has already been active in helping Mozilla set up a new fellows program gathering people who have worked in government on progressive tech policy. That program launches in June.

Talented and dedicated people are the key to building an Internet as a global public resource that is open and accessible to all. Nicole and Mohammad bring expertise, dedication and new perspectives to Mozilla. I am honored and proud to have them as our newest Board members.

Please join me in welcoming Mohamed and Nicole to the Board. You can read more about why Mohamed chose to join the Board here, and why Nicole joined us here.


The post New Mozilla Foundation Board Members: Mohamed Nanabhay and Nicole Wong appeared first on The Mozilla Blog.

The Mozilla BlogWhy I’m joining the Mozilla Board by Mohamed Nanabhay

Mozilla has been at the forefront of shaping internet culture and fighting to keep the Internet open. Being able to join the Board and be of service to that mission is an honor as the open internet played such an important role in my life and my work.

My generation came online to the shrill beeps of our modems connecting to this network that represented endless possibilities. Those beeps of our modems dialing up provided the soundtrack to some of our deepest friendships and community, crossing borders and breaking down barriers. I remember contributing to the campaign in 2004 to put an advert into the New York Times. That campaign epitomized the best of what we could achieve on the network – thousands coming together to promote the open source project that many thousands worked on that would go on to touch millions of people.

As the next billion come online, there are real questions about what sort of Internet they are coming online to. We know that it is most often through a mobile device (phone or tablet) and often the first contact is through Facebook (including WhatsApp). Navigating the usage (what role does the browser play when most people are using Apps?) and the social implications (will an even greater number of people confuse Facebook with the Internet?) are deeply important in the near term.

At Al Jazeera I was deeply focused on using social technologies to not only distribute news but also discover and amplify the voices of people being most impacted by power. With Creative Commons I worked to launch a repository of broadcast quality video footage under the most permissive license. At Global Voices, bridge building and providing a nuanced understand through a local lens is key to what we do. And at the Media Development Investment Fund (MDIF), we are deeply committed to funding the highest quality journalism in countries where there is a threat to press freedom.

This work has all really been around building bridges, connecting people, and amplifying voices. While our kids may never know the thrill of hearing a modem connection I hope that we can work to ensure that the Internet remains open so they can use it to learn, build, and grow in the same way we did.

Mohamed Nanabhay is the Deputy CEO of the Media Development Investment Fund (MDIF), which invests in independent media around the world providing the news, information and debate that people need to build free, thriving societies. He is also the board chair of and the former head of Al Jazeera English. Mohamed was appointed to the Mozilla Foundation board in April 2017.

Photo credit: Joi Ito

The post Why I’m joining the Mozilla Board by Mohamed Nanabhay appeared first on The Mozilla Blog.