Mozilla Nederland LogoDe Nederlandse

WebAssembly Created By Google, Microsoft, Mozilla, And Apple - FileHippo News

Nieuws verzameld via Google - ma, 22/06/2015 - 12:06

FileHippo News

WebAssembly Created By Google, Microsoft, Mozilla, And Apple
FileHippo News
The news first broke last week via Ars Technica that engineers at Google, Microsoft, Mozilla, and Apple have joined forces in an effort to create WebAssembly, a bytecode for browsers of the future that teases over 20 times faster performance. There ...
Google, Apple, Microsoft and Mozilla team up to create faster browsersThe Next Web
Google, Apple, Microsoft, and Mozilla Partner to Build Faster Web BrowsersNDTV
Microsoft, Google and Mozilla team up to build a faster WebComputerworld
eWeek -BizTek Mojo -TechCrunch
alle 56 nieuwsartikelen »
Categorieën: Mozilla-nl planet

QMO: Firefox 39 Beta 7 Testday Results

Mozilla planet - ma, 22/06/2015 - 11:05

Hey Mozillians!

As you already may know, last Friday – June 19th – we held another Testday event, Firefox 39 Beta 7.

We’d like to take this opportunity to thank everyone for getting involved in the proposed testing activities and in general, for helping us make Firefox better.
Many thanks go out to Bangladesh QA Community, which gets bigger and better everyday (Hossain Al Ikram, Nazir Ahmed Sabbir, Forhad Hossain, Ashickur Rahman, Meraj  Kazi, Md. Ehsanul Hassan, Wahiduzzaman Hridoy, Rezaul Huque Nayeem, Towkir Ahmed, Md. Rahimul Islam, Mohammad Maruf Islam, Fahmida Noor, Sayed Mohammad Amir, Saheda reza Antora), Moin, nt, Vairus and AaronRaimist for their efforts and contributions, and to all our moderators. Thanks a bunch!

Keep an eye on QMO for the upcoming events! :)

Categorieën: Mozilla-nl planet

John O'Duinn: The canary in the coal mine

Mozilla planet - ma, 22/06/2015 - 07:56

After my recent “We are ALL Remoties” presentation at Wikimedia, I had some really great followup conversations with Arthur Richards at WikiMedia Foundation. Arthur has been paying a lot of attention to scrum and agile methodologies – both in the wider industry and also specifically in the context of his work at Wikimedia Foundation, which has people in different locations. As you can imagine, we had some great fun conversations – about remoties, about creating culture change, and about all-things-scrum – especially the rituals and mechanics of doing daily standups with a distributed team.

Next time you see a group of people standing together looking at a wall, and moving postit notes around, ask yourself: “how do remote people stay involved and contribute?” Taking photographs of the wall of postit notes, or putting the remote person on a computer-with-camera-on-wheeled-cart feels like a duct-tape workaround; a MacGyver fix done quickly, with the best of intentions, genuinely wanting to help the remote person be involved, but still not-a-great experience for remoties.

There has to be a better way.

We both strongly agree that having people in different locations is just a way to uncover the internal communication problems you didn’t know you already have… the remote person is the canary in the coal mine. Having a “we are all remoties” mindset helps everyone become more organized in their communications, which helps remote people *and* also the people sitting near each other in the office.

Arthur talked about this idea in his recent (and lively and very well attended!) presentation at the Annual Scrum Alliance “Global Scrum Gathering” event in Phoenix, Arizona. His slides are now visible here and here.

If you work in an agile / scrum style environment, especially with a geo-distributed team of humans, it’s well worth your time to read Arthur’s presentation! Thought provoking stuff, and nice slides too!

Categorieën: Mozilla-nl planet

This Week In Rust: This Week in Rust 84

Mozilla planet - ma, 22/06/2015 - 06:00

Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us an email! Want to get involved? We love contributions.

This Week in Rust is openly developed on GitHub. If you find any errors in this week's issue, please submit a PR.

This week's edition was edited by: Brian Anderson, Vikrant Chaudhary, Andrew Gallant, and mdinger.

From the Blogosphere Tips & Tricks In the News New Releases & Project Updates
  • RustLex. Lexical analysers generator for Rust.
  • rsedis. Redis re-implemented in Rust.
  • cargo add. A utility for adding cargo dependencies from the command line.
  • volley. A benchmarking tool for measuring the performance of server networking stacks.
  • Rust Dispatcher. Dispatcher for Rust, broadcast and subscribe many to many.
  • rust-vim-setup. Use VIM as your Rust IDE - set of bash scripts and a customised vimrc for Rust development.
  • Herd. An experimental HTTP load testing application written in Rust.
  • MaidSafe's Rust rewrite is going well.
  • claxon. A FLAC decoder.

Rust by example has receieved a number of improvements recently:

What's cooking on master?

112 pull requests were merged in the last week.

Now you can follow breaking changes as they happen!

Breaking Changes Other Changes New Contributors
  • David Stygstra
  • Gulshan Singh
  • Jake Hickey
  • joliv
  • Markus
  • Steven Walter
  • Yongqian Li
Approved RFCs Final Comment Period

Every week the teams announce a 'final comment period' for RFCs which are close to reaching a conclusion. Express your opinions now. This week's RFCs entering FCP are:

New RFCs Upcoming Events

If you are running a Rust event please add it to the calendar to get it mentioned here. Email Erick Tryzelaar or Brian Anderson for access.

Categorieën: Mozilla-nl planet

Ted Clancy: The Canadian, Day 4

Mozilla planet - zo, 21/06/2015 - 21:19

The great thing about travelling by train is that there is almost zero environmental impact.

Before you say “but what about those giant diesel engines burning diesel”, let me explain that I’m talking about marginal impact. That is, this train was going to be running regardless of whether I was on it or not. By choosing to be on it, I’m not contributing any additional environmental impact.

That’s not true for a bus or plane. If 100 people suddenly decided to travel from Toronto to Vancouver by bus, the bus company would have to schedule another couple busses. If 100 extra people decided to travel by plane, the airline would have to schedule another plane. But if 100 people decided to all take the train, Via Rail can simply add another couple of cars to their existing scheduled train, with negligible environmental impact.

(Caveat: There are reports that Via Rail no longer does this, and Elizabeth May is not happy about it. See Point 1 in her letter.)

There are downsides too. It’s more expensive than travelling by plane, though still within my company’s travel policy. (Note that I’m travelling in Economy. Note also that if you’re a member of CAA or Hostelling International, you get 10% off Via Rail tickets.) It also takes more time, but it’s not unproductive time. You can get quite a lot done on the train.

The main downside is sleeping in a seat. I was fine for the first couple nights, but after that third night (last night), I’m starting to feel a bit rough. And I have one more night to go.

The cost of the Via Rail ticket includes one stopover in any city for as long as you want. If I had more time, I might have scheduled a stopover in Winnipeg or Jasper for a couple nights to recharge.

Update: Jasper
Apparently I slept past Saskatoon and Edmonton.

Jasper is beautiful, but you already knew that.

Update: Approaching Kamloops
I can’t help wishing I was seeing this scenery in winter instead of summer. Green mountains just look like big hills.

We’re back on tracks laid by the Canadian Northern Railway. It still boggles my mind that we’re following a path chosen by someone 100 years ago. I spend so much of my life surrounded by new technology, it’s strange to be using something created even just 3 or 4 generations ago.

The 1950s and 1960s saw the decline of passenger rail in Canada. It couldn’t compete with the rise of air travel and new highways like the Trans-Canada and the 401. The federal government created Via Rail in the 1970s to take over passenger operations from CN and CP, since those services were no longer profitable.

I’m not exactly sure why the government keeps Via Rail running, but I’m glad they do. Last time I travelled by air, security confiscated my penknife.

Musical Interlude IV
[This one would have made more sense last night. I might swap them in a later edit.]

Categorieën: Mozilla-nl planet

Christian Heilmann: That stream of tweets at conferences…

Mozilla planet - zo, 21/06/2015 - 17:23

A few weeks ago, I wrote the That One Tweet post explaining how one tweet managed to puncture my balloon of happy and question if my work is appreciated. All of this is caused the gremlin of self-doubt living in all of us and it was mostly a reminder to tell it to mind its own business.

Currently writing event reports, I think it would be terrible of me not to mention the other side of this. I want to take this opportunity to thank deeply and thoroughly people who use twitter to report, comment and encourage presenters and organisers of events. You rock, so here’s a hedgehog wizard to tell you as much:

hedgehog dressed as a wizard

I was very humbled and lucky to be at a few events in the last weeks where the audience used Twitter not only to post selfies and tell the world where they are, but also to report and keep a running commentary on talks. Others delivered beyond expectation by doing sketchnotes and posting those. I am humbled by and jealous of your creativity and dedication. Having good Twitter feedback has numerous effects that inflate my happy balloon:

  • It is superbly rewarding to see people deeply care about what you do.
  • It is insightful to see the tidbits of information people extract from your talks and what they considered quote-worthy. Yes, that can also be scary, but is a good reminder to explain some bits in better details next time
  • It makes my professional life so much easier as I can collect feedback and show it to my managers and outreach departments.
  • It allows me to show people that a personal touch and a presenter showing his or her views is much more beneficial to a company than a very polished slide deck people have to present
  • It shows me that I reach people with what I do. Feedback is scarce, and whilst immediate feedback tends to be highly polarised I have something to ponder
  • It gives me a fuzzy feeling when people find the need to align themselves with an event and tell the world how much of a good time they have. We have no lack of soulless events that people go to because they get a random ticket or to drop off as many business cards as they can. It feels great to see attendees go all in and praise an event for being different.
  • ROI of events is tough to measure. By being able to quote tweets, show people’s blog posts and photos I have ammunition to show people why my time there and our money in the support pot of events is worth it.

So, here’s to the people who give feedback on talks and events on Twitter. You make me happy like this puppy:

Incredibly happy puppy

Keep up the great work, you can be sure that it is very appreciated by presenters and conference organisers alike

Categorieën: Mozilla-nl planet

Google, Apple, Microsoft, and Mozilla Partner to Build Faster Web Browsers - NDTV

Nieuws verzameld via Google - zo, 21/06/2015 - 10:52


Google, Apple, Microsoft, and Mozilla Partner to Build Faster Web Browsers
Google, Apple, Microsoft, and Mozilla have partnered to develop a new binary format code called WebAssembly (wasm) that is aimed at increasing the speed and efficiency with which browsers compile, parse, and render Web applications and webpages as ...
Google, Apple, Microsoft and Mozilla team up to create faster browsersThe Next Web
Google, Microsoft, Mozilla And Others Team Up To Launch WebAssembly, A ...TechCrunch
Microsoft, Google, Mozilla team to build a faster WebCIO
alle 48 nieuwsartikelen »
Categorieën: Mozilla-nl planet

Aki Sasaki: scriptharness 0.2.0

Mozilla planet - zo, 21/06/2015 - 10:40

I've been getting some good feedback about scriptharness 0.1.0; thank you. I listed the 0.2.0 highlights and changes in the 0.2.0 Release Notes, but wanted to mention a few things here.

First, mozharness' config had the flexibility of accepting any arbitrary key/value pairs from various sources (initial_config, commandline options, config files...). However, it wasn't always clear what each config variable was for, or if it was required, or if the config was valid. I filed bug 699343 back in 2011, but didn't know how to tackle it then. I believe I have the solution now, with ConfigTemplates.

Second, 0.1.0 was definitely lacking a run_command() and get_output_from_command() analogs. 0.2.0 has Command for just running+logging a command, ParsedCommand for parsing the output of a command, and Output for getting the output from a command, as well as run(), parse(), get_output(), and get_text_output() shortcut functions to instantiate the objects and run them for you. (Docs are here.) Each of these supports cross-platform output_timeouts and max_timeouts in both python 2.7 and python3, thanks to the multiprocessing module. As a bonus, I was able to add context line support to the ErrorLists for ParsedCommand. This was also a want since 2011.

I fleshed out some more documentation and populated the scriptharness issues with my todo list.

I think I know what I have in mind for 0.3.0, but feedback is definitely welcome!

comment count unavailable comments
Categorieën: Mozilla-nl planet

Ted Clancy: The Canadian, Day 3

Mozilla planet - zo, 21/06/2015 - 07:47

I expected to wake up in Winnipeg, but instead we’re stopped in the middle of nowhere. I can tell we’re in Manitoba, because the landscape has become flat and grassy instead of Ontario’s rocky forests and lakes, but I don’t see Winnipeg anywhere. Still no internet connection.

The train is moving again. We just passed a farm that seems to be raising cows and abandoned trucks.

Update: Winnipeg

Our train has a layover of about 3 hours in Winnipeg. The Via Rail station is located beside The Forks, a historic part of Winnipeg of significance to First Nations people. This site has been used as a meeting place for at least 6000 years. It’s especially active today because today is Aboriginal Day.

The site also hosts the Canadian Museum of Human Rights (which was still under construction last time I was here), a farmer’s market that is open today, and a couple historic rail cars. A pedestrian bridge (the Esplanade Riel) links it to Winnipeg’s French quarter, St Boniface, across the river. (Until 1971, St Boniface was its own predominantly-francophone city, a rarity in Western Canada.)

I didn’t spend much time looking about, however. I went straight to the Assiniboine Athletic Club, just two short blocks from the Via Rail station’s main entrance, to take a shower. This is the only opportunity to shower between Toronto and Vancouver. It’s $11 for a day pass to the gym. I would have had a workout too, but I didn’t pack any shorts.

Former rail car of the Temiskaming and Northern Ontario Railway

The rail car in the above picture used to belong to the Temiskaming and Northern Ontario Railway, later known as the Ontario Northland Railway. Owned by the Ontario government, it’s one of the few railways in Canada which isn’t privately owned. Unfortunately, the Ontario government shut down ONR’s passenger services last year. It now only provides freight service and occasional tourist service.

Update: Somewhere in Manitoba

Manitoba is more scenic than you’d think. We’re currently in a rather pleasant-looking valley.

We’re now on tracks that were built by Grand Trunk Pacific. These tracks go from Winnipeg to Prince Rupert in northern BC. Together, Grand Trunk Pacific (which operated west of Winnipeg) and National Transcontinental Railway (which operated east of Winnipeg) were the third and final transcontinental rail route across Canada.

Like most Canadian railways, they eventually went bankrupt and were nationalized by the Canadian government, becoming part of the government-owned Canadian National Railway. The only major railway to escape this fate was Canadian Pacific Railway, leading to today’s situation where CNR and CPR (usually now called CN and CP) dominate Canada’s rail industry as a duopoly. CN was privatized in 1995. Apparently the largest shareholder is now Bill Gates.

The GTP tracks are still well used. Prince Rupert is a popular port for shipments from China. Due to the shape of the Earth, Prince Rupert is closer to China than Vancouver is. It’s easier to see on a globe.

Musical Interlude III

Categorieën: Mozilla-nl planet

About:Community: Bringing Participation to Whistler

Mozilla planet - za, 20/06/2015 - 17:15
Mozilla at Whistler 2010

Mozilla at Whistler 2010

The Participation Team is heading to Whistler this week where we’ll be running an innovative series of discussions, presentations, and workshops all centered around creating an approach to participation that is massive and diverse, local and global, strategic and impactful.

Whether you will be joining us in person or following along online. Here’s an overview of what we’ll be up to this week and how you can get involved:

Skills Building: Human Centered Design
Tuesday July 23rd 3:30pm-5pm

The Participation Team will be participation in an open session about design thinking and problem solving both generally and as they relate to specific projects. Please arrive promptly at 3:30pm if you’d like to participate!

Join in person: 3:30pm in the Participation Room in the Delta Whistler Village Suites hotel.
Join remotely: Follow us on discourse and Twitter using the hashtag #MozParticipation to find out what we’re learning during this session.

TED Style Talks: Exploring Radical Participation at Whistler
Wednesday June 24th at 4:30pm

A series of invited experts on participation will challenge us in short TED-style talks, bringing thought-provoking ideas on Radical Participation. Then join over one hundred Mozillians who care about participation as we come up with some rough designs for what radical participation could look like at Mozilla in the years ahead. Confirmed speakers include:

  • Natalie Foster – Co-founder and Executive Director of Peers, the world’s largest independent sharing economy community, and former digital director for President Obama’s Organizing for America (OFA) and the Democratic National Committee.
  • Jono Bacon – Senior Director of Community at XPrize where he leads community development and growth XPRIZE Foundation. He is the author of The Art of Community and the former Ubuntu Community Manager.
  • Jeremy Bird – is a founding Partner at 270 Strategies and a longtime strategist. He also was the National Field Director for the 2012 re-election camapgin of President Barack Obama where he was  dubbed the campaign’s  “Field General” by Rolling Stone Magazine.
  • See the full list of speakers  here

Join in person: Wednesday June 24th at 4:30pm in Sea to Sky Ballroom C at the Whistler Conference Center
Join remotely: Watch live on AirMozilla at 11:30pm UTC on June 24th, join the discussion on discourse and read the  blog afterwards for a synthesis of the most poignant ideas.

Personalized Design: 26 Participation Lab Sessions
Wednesday June 24th – Thursday June 25 9:30am – 9:00pm

We’re hosting customized sessions throughout the work week to help teams solve problems and capture opportunities related to contributor or volunteer engagement, user/supporter/contributor participation, and many other topics related to participation. With over 26 projects registered we’ll be meeting with teams throughout the week.

View the full schedule and the description of each project below.

Join us in person: Registration is now closed for customized Lab sessions, however the Participation Room (Raven A + B at Delta Whistler Village Suites hotel) will be open to all throughout the week.
Join remotely: What do you think of the sessions? Send us your thoughts and questions on discourse.

Participation Moving Forward – Strategy Session
Friday July 26th 8:30am-10am

On the last day of Whistler the Participation Team will be gathering with volunteers, staff, and experts to think about what participation might look like at Mozilla 10, 15, 20 years in the future.

Join in person: Participation Room (Raven A + B) at Delta Whistler Village Suites. Please arrive promptly at 8:30am if you’d like to participate.
Join remotely: Share your thoughts/visions for the future of participation at Mozilla on discourse here.

Read more about the Lab and what we’ve been up to in Emma Irwin’s post “Participation Lab, What We’re Learning”.


Categorieën: Mozilla-nl planet

Apple, Google, Microsoft en Mozilla gaan voor nieuwe webstandaard - Computer Totaal

Nieuws verzameld via Google - za, 20/06/2015 - 13:47

Computer Totaal

Apple, Google, Microsoft en Mozilla gaan voor nieuwe webstandaard
Computer Totaal
... die met het internet verbonden zijn. Websites zouden daardoor tot wel 20 keer sneller moeten laden. Apple, Google, Mircrosoft en Mozilla gelden als de grootsten op het internet en nemen dan ook samen 95 procent van de browsermarkt voor hun rekening.
Apple, Google, Microsoft en Mozilla werken aan native websitesOne More Thing
Nieuwe oppepper voor snelheid web in de maakAutomatisering Gids
Techbedrijven werken aan snellere browser-programmeertaal WebAssemblyPersonal Computer Magazine
alle 6 nieuwsartikelen »
Categorieën: Mozilla-nl planet

Servo - Mozilla erfindet den Browser neu - Sü

Nieuws verzameld via Google - za, 20/06/2015 - 12:55


Servo - Mozilla erfindet den Browser neu
Auf der Webseite von Mozilla findet man eine Liste der Sicherheitslücken, die den Firefox-Browser in jüngster Zeit plagten. Mehrmals im Monat werden bei Mozilla solche Lücken vermeldet, allein in diesem Jahr waren es bereits 58. Nutzer, die ihren ...
Artikel: Pale Moon - Firefox so, wie er sein sollte?Pro-Linux

alle 2 nieuwsartikelen »
Categorieën: Mozilla-nl planet

Jeff Walden: New changes to make SpiderMonkey’s (and Firefox’s) parsing of destructuring patterns more spec-compliant

Mozilla planet - za, 20/06/2015 - 12:17
Destructuring in JavaScript

One new feature in JavaScript, introduced in ECMAScript 6 (formally ECMAScript 2015, but it’ll always be ES6 in our hearts), is destructuring. Destructuring is syntactic sugar for assigning sub-values within a single value — nested properties, iteration results, &c., to arbitrary depths — to a set of locations (names, properties, &c.).

// Declarations var [a, b] = [1, 2]; // a = 1, b = 2 var { x: c, y: d } = { x: 42, y: 17 }; // c = 42, d = 17 function f([z]) { return z; } print(f([8675309])); // 8675309 // Assignments [b, f.prop] = [3, 15]; // b = 3, f.prop = 15 ({ p: d } = { p: 33 }); // d = 33 function Point(x, y) { this.x = x; this.y = y; } // Nesting's copacetic, too. // a = 2, b = 4, c = 8, d = 16 [{ x: a, y: b }, [c, d]] = [new Point(2, 4), [8, 16]]; Ambiguities in the parsing of destructuring

One wrinkle to destructuring is its ambiguity: reading start to finish, is a “destructuring pattern” instead a literal? Until any succeeding = is observed, it’s impossible to know. And for object destructuring patterns, could the “pattern” just be a block statement? (A block statement is a list of statements inside {}, e.g. many loop bodies.)

How ES6 handles the potential parser ambiguities in destructuring

ES6 says an apparent “pattern” could be any of these possibilities: the only way to know is to completely parse the expression/statement. There are more elegant and less elegant ways to do this, although in the end they amount to the same thing.

Object destructuring patterns present somewhat less ambiguity than array patterns. In expression context, { may begin an object literal or an object destructuring pattern (just as [ does for arrays, mutatis mutandis). But in statement context, { since the dawn of JavaScript only begins a block statement, never an object literal — and now, never an object destructuring pattern.

How then to write object destructuring pattern assignments not in expression context? For some time SpiderMonkey has allowed destructuring patterns to be parenthesized, incidentally eliminating this ambiguity. But ES6 chose another path. In ES6 destructuring patterns must not be parenthesized, at any level of nesting within the pattern. And in declarative destructuring patterns (but not in destructuring assignments), declaration names also must not be parenthesized.

SpiderMonkey now adheres to ES6 in requiring no parentheses around destructuring patterns

As of several hours ago on mozilla-inbound, SpiderMonkey conforms to ES6’s parsing requirements for destructuring, with respect to parenthesization. These examples are all now syntax errors:

// Declarations var [(a)] = [1]; // BAD, a parenthesized var { x: (c) } = {}; // BAD, c parenthesized var { o: ({ p: p }) } = { o: { p: 2 } }; // BAD, nested pattern parenthesized function f([(z)]) { return z; } // BAD, z parenthesized // Top level ({ p: a }) = { p: 42 }; // BAD, pattern parenthesized ([a]) = [5]; // BAD, pattern parenthesized // Nested [({ p: a }), { x: c }] = [{}, {}]; // BAD, nested pattern parenthesized

Non-array/object patterns in destructuring assignments, outside of declarations, can still be parenthesized:

// Assignments [(b)] = [3]; // OK: parentheses allowed around non-pattern in a non-declaration assignment ({ p: (d) } = {}); // OK: ditto [(parseInt.prop)] = [3]; // OK: parseInt.prop not a pattern, assigns parseInt.prop = 3 Conclusion

These changes shouldn’t much disrupt anyone writing JS. Parentheses around array patterns are unnecessary and are easily removed. For object patterns, instead of parenthesizing the object pattern, parenthesize the whole assignment. No big deal!

// Assignments ([b]) = [3]; // BAD: parentheses around array pattern [b] = [3]; // GOOD ({ p: d }) = { p: 2 }; // BAD: parentheses around object pattern ({ p: d } = { p: 2 }); // GOOD

One step forward for SpiderMonkey standards compliance!

Categorieën: Mozilla-nl planet

About:Community: Participation Lab, What We’re Learning

Mozilla planet - vr, 19/06/2015 - 23:25

Photo from Securing Web @ZAP Day 1


In recent months the Participation Lab has been tracking multiple experiments across the project that demonstrate fresh approaches to participation.  To really understand and bring strategic value to Mozilla, our focus in these experiments has been to encourage human centered design and a deliberate setting of ‘milestones for learning ‘  and measuring success.

Learning milestones are places in a project’s execution where we stop and evaluate the initial hypothesis about participation: do these goals still make sense? Are we still on track to learn about participation?  What are we already learning? Where can we help?

What we’re finding is that ‘learning check-ins’ are a critical opportunity to recalibrate, and advance the depth and success of project and contributor success.  Participation shifts, and evolves with the project, it only makes sense to pay attention to those subtle changes. As a result of these conversations, and  analysis we’re starting to see a shift towards a new innovative approaches.

The lab has also observed a number of trends in terms of what people struggle with most in establishing and measuring their participation experiments, and themes in how we’re trying to solve for better participation.  All of this is leading to more insightful prototyping and execution of participation goals, and in the spirit of the virtuous circle : amplifying impact on contributor success and sense of value, and project goals.

Education & Training, Evangelism and Representation, and Market Research were identified as our top three themes in the nearly fifty projects we’re following. Learn more about these themes and how they’re being implemented below.

Education & Training

Community Education was at the heart of many initiatives we’re following. Many working hypothesis include education and training as a connective tissue for community building and  development of future leaders.  Almost all had a working theory, that through education and training we can build content and generate meaningful outcomes to project as part of learning outcomes.


By building and training a community of core contributors in Market Research, Marketpulse aims to collect data about phone sales in target markets. This project encourages contribution through a series of participation steps, each with complementary training. Marketpulse also recently completed a four-week online course “Interviewing Users for Mozilla” which taught contributors this qualitative research skill in user research.  As a result of this project, Mozilla has gained user research on the “Large Screen Experience”.

By “Interviewing Users for Mozilla” course participant: Sukanta Pal

MDN Fellowship

The Developer Fellowship program provides a model for Mozilla and advanced developers to work together more extensively, allowing Mozilla to gain outside expertise and influence to help build our curriculum, shape our products and evangelize our programs.

Mozilla Security Project – Securing Web @ZAP

Is a volunteer-lend series of workshops for students and security enthusiasts. During  the workshop, participants are trained in ways to detect the threats  by performing security attacks using the ZAP security tool.  At it’s core this project is about teaching people about security by contributing to Zap.  Each week focuses on a different method of contribution: source code, creating extensions and addons, documentation and localization. Hypothesis is that by teaching participation as part of curriculum we can gain a greater base of contributors as a result. Very cool!

Sumath’s Hypothesis is that by embedding contribution opportunities in education & training we can improve the number of, and quality of contributions, and help spread Mozilla’s mission to more people.

Evangelism and Representation

Mozilla’s community reaches around the globe, with diversity so great it’s an exciting to imagine the potential of volunteers empowered to share, speak and advocate for Mozilla’s mission.  It makes a lot of sense to work on mechanisms for this type participation. Common hypothesis are that word of mouth marketing is an extremely valuable tool for promotion and that empowering community members with more skills and avenues to share their passion for Mozilla will help raise awareness of Mozilla and Firefox.

Firefox Friends

Firefox Friends a program that take advantage of the existing passion of the Mozilla community to make it easier for people to share their love of Mozilla and Firefox within their social networks. Firefox Friends is exploring the hypothesis that providing the community with a tool for collecting and sharing Firefox oriented content will increase awareness and growth of Firefox.  To make it easier for community members to spread the word about Firefox and Firefox initiative,

Tech Speakers

Tech Speakers was a six week program combining group speaking practice and technical content development. A fantastic curriculum, combined with live mentorship opportunities is resulting in a growing base of high-quality volunteer speakers.

Market Understanding

Mozilla serves users in markets all over the world.  To deliver useful insights and research that will help product and functional teams be successful we’re seeing deep investment in  Mozilla’s global community to bring a competitive edge.

Firefox OS Core Team Africa

With Fx OS launching in 21 African countries in 2015 , there is an opportunity to test a new approach to building new relationships and new communities of supporters/volunteers across the continent.  A series of experiments. Goals have been to build out programs that to get new contributors involved in Firefox OS activities to increase awareness on the product and make an impact on product goals

Webmaker Research

By creating a launch playbook modeled after Firefox OS we will be able to create launch teams in target markets, this will result in a number of new users. Supporting local content leads we will be able to generate original content and learn from local communities in order to deliver and build a more effective localized product and content.


The Firefox OS team has embarked on many different initiatives and campaigns to bring Firefox OS to market without always having sufficient understanding and knowledge of the reality on the ground, due to a lack of local market data. This local market data is extremely difficult to obtain, let alone, update regularly if you’re not actually on the ground. Leveraging the Marketpulse tool  community regularly collects price and user data for Firefox OS phones in their local market and web stores providing this much needed data.

You can see there’s a lot going on,  and that even within each of these projects multiple experiments are taking place.  There’s a lot to be excited about in the coming months for participation at Mozilla. You can track the this and other Participation Team activity through our Heartbeat tool, or by reaching out to us directly.  In the near future, we’ll surface more concrete examples of what we’re learning,  and we expect, celebrating the new successes in participation at Mozilla.

We’re in Whistler next week, check out for Lucy’s post on what we’ll be up to there!

Categorieën: Mozilla-nl planet

Air Mozilla: Webdev Beer and Tell: June 2015

Mozilla planet - vr, 19/06/2015 - 23:00

 June 2015 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...

Categorieën: Mozilla-nl planet

Will Kahn-Greene: Input status: June 19th, 2015

Mozilla planet - vr, 19/06/2015 - 21:00
What is it?

The purpose of Input is to collect actionable feedback from our user base across each channel of our software development process. The application collects feedback and offers a set of analysis methods for looking at the resulting data.

Project site.

This is a status post about Input.

Read more… (1 mins to read)

Categorieën: Mozilla-nl planet

Chris Cooper: Releng & Relops weekly highlights - June 19, 2015

Mozilla planet - vr, 19/06/2015 - 20:39

Happy Friday once again, releng enthusiasts!

The release engineering and operations teams are heads-down this week trying to get quarterly deliverables done *before* heading off to Whistler for a Mozilla-wide work week. There’s lots of work in-flight, although getting updates has occasionally been like pulling teeth.

Because almost everyone will be in Whistler next week, next week’s update will focus less on completed or in-progress work and more on what releng team members took away from their time together in Whistler.


Taskcluster: Morgan got 32-bit Linux builds working! Rail reports that funsize update generation is ready to go, pending an AWS whitelist update by IT. Ted reproduced mshal’s previous work to get OS X builds cross-compiling in one of Morgan’s existing desktop build containers.

Puppetized Windows in AWS: Jake and Rob are working on additional puppet modules for Windows. Q is running performance tests on jobs in AWS after the networking modifications mentioned last week.

Operational: MozillaBuild 2.0 is out! Mark deployed NSIS 3.0b1 to our windows build/try pools. Kim and Netops have finished up the SCL3 switch upgrades. Jake rolled out changes to enable statsd on our POSIX systems. Dustin’s talk on fwuint was accepted to LISA 15. Dustin merged all of the relengapi blueprints into a single repository and released relengapi 3.0.0.

Whistler: There’s been a bunch of planning around Whistler, and props to catlee, naveed, and davidb for getting our stuff into the sched site (the tag for releng/relops/ateam/relman is platform-ops). Be sure to take a look and pick some planning, presentation, and hacking sessions to go attend!

Thank you all!

And here are all the details:

  • Ben has been doing a bunch of work adding S3 support to release automation. The two parts he focused on this week are the uploading partner repacks to S3 (bug 1173384), and generating checksums out of files in S3, and uploading them back there (bug 1174145).
  • Work continues on moving the spidermonkey builds from buildbot to TaskCluster. Anhad, our intern, was able to easily get the existing script running in a novel container type. After talking with Morgan and Rail, he’s now trying to make changes to the scripts and process to allow using an existing container. One side effect of the migration to TaskCluster is that we may be able to provide build artifacts from the spidermonkey test process which is something we’ve never had before.
  • The new S3 buckets for updates still need to be whitelisted, but Rail reports that funsize is otherwise ready to generate updates in TaskCluster. Here’s a sneak peek at what it will soon look like in treeherder, hopefully with less orange:
  • After battling with the base containers and investigating workarounds, Morgan has 32-bit Linux builds working in TaskCluster.
  • Ted dusted off mshal’s cross-compilation work from last year and was able to get OS X builds cross-compiling locally in one of Morgan’s existing desktop build containers. The next step is to hook it up to TaskCluster, and then begin investigating packaging and symbols which were the two outstanding issues we needed to address from our first attempts last year.
Puppetized Windows in AWS
  • The networking changes we made to Windows may have potentially had a large impact on our performance in AWS, so Q is running more jobs to get new numbers to compare to our hardware performance.
  • There are still a few bits of software that we have managed by the domain (AD+GPO) that we don’t yet have in puppet. Rob is working on getting nxlog support to match the remote system logging we have in the datacenter. Jake is doing the same for metric collective, the program he wrote to gather system statistics and send them to graphite.
  • MozillaBuild 2.0 is out! Callek helped the sheriffs make the latest version of the Windows build environment bootstrapping tool available for developers.
  • Now that the new version of MozillaBuild is out, Mark has deployed NSIS 3.0b1 on our build/try machines. This will fix several stub installer and full installer bugs (bug 989531).
  • Kim and Netops have been working together to finish up the last of the SCL3 switch upgrades. For several weeks, we’ve been quietly doing rolling upgrades while keeping the trees open so there’s minimal developer impact.
  • With the collectd upgrades in place, Jake rolled out changes to enable the statsd collectd module so that we we have a hook to get application metrics into graphite as well as system metrics.
  • Q and Morgan have pushed out the Windows runner code to the a number of the try systems, and things are looking quite promising. Next step is to roll it out to all of the try pool next week.
  • Dustin’s talk on fwunit (, his software to perform unit tests for network flow rules, was accepted to LISA 15 ( He’ll be presenting at the conference on November 12th.
  • In preparation for some of the security work inherent in the move to TaskCluster in Q3, Hal met with the OpSec group to review the state of releng security issues.
  • Hal was also able to troubleshoot some data issues with the VCS-sync mapper, which then allowed him to start using it to map changesets for the gecko-dev repo. This is part of ongoing work to transfer ownership of the VCS-sync tools and process to the new dev-services team. Other cutovers are planned, but Hal is wisely holding off on flipping the switch until *after* the Whistler work week.
  • Dustin provided a very detailed review of Jordan’s work to provide archives of mozharness on-demand (bug 1154795). The scope has increased somewhat to allow for the creation of archives for other build repos as well. Between of this work for archives on-demand, the new hg bundleclone extension we’ve been deploying, and various existing releng pro(x)xy solutions, we will have many options for reducing bandwidth consumption and network overhead going forward.
  • Jordan re-landed a correctness fix that ensures we always use the newly-cloned talos repo for tests rather than a cached version on disk (bug 1112773). Thanks to Jordan for taking this work across the finish line after inheriting it from a community member who had to step away due to school commitments.
  • Mach build stats are being collected in Influxdb for try builds now, thanks to Mike Shal: Mike notes that there are still some issues with the stats for Windows builds, but those will get ironed out in bug 1175895.
  • Dustin merged all of the relengapi blueprints into a single repository and released relengapi 3.0.0. This simplifies development of relengapi by removing a number of workarounds that we needed to straddle multiple repositories. It creates a shared resource that positions the project for longer term and deeper adoption by the team.

See you next week!

Categorieën: Mozilla-nl planet

Mozilla Addons Blog: New add-on community forum

Mozilla planet - vr, 19/06/2015 - 20:29

For a few years we have been running a forum for add-on developers. It’s linked to from the Developer Hub on AMO and has been a good place for discussions about add-ons, particularly add-on development. Unfortunately, we haven’t had the time or resources to keep it properly running and up to date. The software it runs on (phpBB) is notoriously unstable and difficult to manage. It’s time for a change.

We’ve set up an Add-ons category in the Mozilla Community forum. This is the new official home for discussions about add-ons. Its main benefits are better integration with the larger Mozilla community, authentication with Persona (also used on Bugzilla, MDN, and others), reliable maintenance by Community IT, and running on a more modern forum platform called Discourse. With Discourse you can subscribe to posts or entire categories and interact with them like you would with a mailing list, which great for those who (like me) prefer a more old school approach.

This is the current plan for the forum move:

  1. On July 1st, the old forum will be switched to read-only mode. In the meantime we’ll encourage all current forum users to move to the new one.
  2. On September 1st, the old forum will be decommissioned. We might try to keep a static copy of its contents somewhere, but for now you should assume that all content will be lost. We looked into migrating the old content to the new forum, but getting all the right sign-offs (legal, IT, security, etc.) proved to be too much for it to be worthwhile.

There are more details about the move in this announcement.

We’re very excited to join the rest of the Mozilla community in the new Discourse forum. Please give it a try and join the discussion!

Categorieën: Mozilla-nl planet

Air Mozilla: Webmaker Demos June 19 2015

Mozilla planet - vr, 19/06/2015 - 19:00

Webmaker Demos June 19 2015 Webmaker Demos June 19 2015

Categorieën: Mozilla-nl planet

Mike Conley: On unsafe CPOW usage, and “why is my Nightly so sluggish with e10s enabled?”

Thunderbird - di, 17/02/2015 - 17:47

If you’ve opened the Browser Console lately while running Nightly with e10s enabled, you might have noticed a warning message – “unsafe CPOW usage” – showing up periodically.

I wanted to talk a little bit about what that means, and what’s being done about it. Brad Lassey already wrote a bit about this, but I wanted to expand upon it (especially since one of my goals this quarter is to get a handle on unsafe CPOW usage in core browser code).

I also wanted to talk about sluggishness that some of our brave Nightly testers with e10s enabled have been experiencing, and where that sluggishness is coming from, and what can be done about it.

What is a CPOW?

“CPOW” stands for “Cross-process Object Wrapper”1, and is part of the glue that has allowed e10s to be enabled on Nightly without requiring a full re-write of the front-end code. It’s also part of the magic that’s allowing a good number of our most popular add-ons to continue working (albeit slowly).

In sum, a CPOW is a way for one process to synchronously access and manipulate something in another process, as if they were running in the same process. Anything that can be considered a JavaScript Object can be represented as a CPOW.

Let me give you an example.

In single-process Firefox, easy and synchronous access to the DOM of web content was more or less assumed. For example, in browser code, one could do this from the scope of a browser window:

let doc = gBrowser.selectedBrowser.contentDocument; let contentBody = doc.body;

Here contentBody corresponds to the <body> element of the document in the currently selected browser. In single-process Firefox, querying for and manipulating web content like this is quick and easy.

In multi-process Firefox, where content is processed and rendered in a completely separate process, how does something like this work? This is where CPOWs come in2.

With a CPOW, one can synchronously access and manipulate these items, just as if they were in the same process. We expose a CPOW for the content document in a remote browser with contentDocumentAsCPOW, so the above could be rewritten as:

let doc = gBrowser.selectedBrowser.contentDocumentAsCPOW; let contentBody = doc.body;

I should point out that contentDocumentAsCPOW and contentWindowAsCPOW are exposed on <xul:browser> objects, and that we don’t make every accessor of a CPOW have the “AsCPOW” suffix. This is just our way of making sure that consumers of the contentWindow and contentDocument on the main process side know that they’re probably working with CPOWs3. contentBody.firstChild would also be a CPOW, since CPOWs can only beget more CPOWs.

So for the most part, with CPOWs, we can continue to query and manipulate the <body> of the document loaded in the current browser just like we used to. It’s like an invisible compatibility layer that hops us right over that process barrier.

Great, right?

Well, not really.

CPOWs are really a crutch to help add-ons and browser code exist in this multi-process world, but they’ve got some drawbacks. Most noticeably, there are performance drawbacks.

Why is my Nightly so sluggish with e10s enabled?

Have you been noticing sluggish performance on Nightly with e10s? Chances are this is caused by an add-on making use of CPOWs (either knowingly or unknowingly). Because CPOWs are used for synchronous reading and manipulation of objects in other processes, they send messages to other processes to do that work, and block the main process while they wait for a response. We call this “CPOW traffic”, and if you’re experiencing a sluggish Nightly, this is probably where the sluggishness if coming from.

Instead of using CPOWs, add-ons and browser code should be updated to use frame scripts sent over the message manager. Frame scripts cannot block the main process, and can be optimized to send only the bare minimum of information required to perform an action in content and return a result.

Add-ons built with the Add-on SDK should already be using “content scripts” to manipulate content, and therefore should inherit a bunch of fixes from the SDK as e10s gets closer to shipping. These add-ons should not require too many changes. Old-style add-ons, however, will need to be updated to use frame scripts unless they want to be super-sluggish and bog the browser down with CPOW traffic.

And what constitutes “unsafe CPOW usage”?

“unsafe” might be too strong a word. “unexpected” might be a better term. Brad Lassey laid this out in his blog post already, but I’ll quickly rehash it.

There are two main cases to consider when working with CPOWs:

  1. The content process is already blocked sending up a synchronous message to the parent process
  2. The content process is not blocked

The first case is what we consider “the good case”. The content process is in a known good state, and its primed to receive IPC traffic (since it’s otherwise just idling). The only bad part about this is the IPC traffic.

The second case is what we consider the bad case. This is when the parent is sending down CPOW messages to the child (by reading or manipulating objects in the content process) when the child process might be off processing other things. This case is far more likely than the first case to cause noticeable performance problems, as the main thread of the content process might be bogged down doing other things before it can handle the CPOW traffic – and the parent will be blocked waiting for the messages to be responded to!

There’s also a more speculative fear that the parent might send down CPOW traffic at a time when it’s “unsafe” to communicate with the content process. There are potentially times when it’s not safe to run JS code in the content process, but CPOWs traffic requires both processes to execute JS. This is a concern that was expressed to me by someone over IRC, and I don’t exactly understand what the implications are – but if somebody wants to comment and let me know, I’ll happily update this post.

So, anyhow, to sum – unsafe CPOW usage is when CPOW traffic is initiated on the parent process side while the content process is not blocked. When this unsafe CPOW usage occurs, we log an “unsafe CPOW usage” message to the Browser Console, along with the script and line number where the CPOW traffic was initiated from.


We need to measure and understand CPOW usage in Firefox, as well as add-ons running in Firefox, and over time we need to reduce this CPOW usage. The priority should be on reducing the “unsafe CPOW usage” CPOWs in core browser code.

If there’s anything that working on the Australis project taught me, it’s that in order to change something, you need to know how to measure it first. That way, you can make sure your efforts are having an effect.

We now have a way of measuring the amount of time that Firefox code and add-ons spend processing CPOW messages. You can look at it yourself – just go to about:compartments.

It’s not the prettiest interface, but it’s a start. The second column is the time processing CPOW traffic, and the higher the number, the longer it’s been doing it. Naturally, we’ll be working to bring those numbers down over time.

A possibly quick-fix for a slow Nightly with e10s

As I mentioned, we also list add-ons in about:compartments, so if you’re experiencing a slow Nightly, check out about:compartments and see if there’s an add-on with a high number in the second column. Then, try disabling that add-on to see if your performance problem is reduced.

If so, great! Please file a bug on Bugzilla in this component for the add-on, mention the name of the add-on4, describe the performance problem, and mark it blocking e10s-addons if you can.

We’re hoping to automate this process by exposing some UI that informs the user when an add-on is causing too much CPOW traffic. This will be landing in Nightly near you very soon.

PKE Meter, a CPOW Geiger Counter

Logging “unsafe CPOW usage” is all fine and dandy if you’re constantly looking at the Browser Console… but who is constantly looking at the Browser Console? Certainly not me.

Instead, I whipped up a quick and dirty add-on that plays a click, like a Geiger Counter, anytime “unsafe CPOW usage” is put into the Browser Console. This has already highlighted some places where we can reduce unsafe CPOW usage in core Firefox code – particularly:

  1. The Page Info dialog. This is probably the worse offender I’ve found so far – humongous unsafe CPOW traffic just by opening the dialog, and it’s really sluggish.
  2. Closing tabs. SessionStore synchronously communicates with the content process in order to read the tab state before the tab is closed.
  3. Back / forward gestures, at least on my MacBook
  4. Typing into an editable HTML element after the Findbar has been opened.

If you’re interested in helping me find more, install this add-on5, and listen for clicks. At this point, I’m only interested in unsafe CPOW usage caused by core Firefox code, so you might want to disable any other add-ons that might try to synchronously communicate with content.

If you find an “unsafe CPOW usage” that’s not already blocking this bug, please file a new one! And cc me on it! I’m mconley at mozilla dot com.

  1. I pronounce CPOW as “kah-POW”, although I’ve also heard people use “SEE-pow”. To each his or her own. 

  2. For further reading, Bill McCloskey discusses CPOWs in greater detail in this blog post. There’s also this handy documentation

  3. I say probably, because in the single-process case, they’re not working with CPOWs – they’re accessing the objects directly as they used to. 

  4. And say where to get it from, especially if it’s not on AMO. 

  5. Source code is here 

Categorieën: Mozilla-nl planet