Michael Kaply: CCK2 2.0.20 Available |
I've just made version 2.0.20 of the CCK2 available. It contains the following changes:
If you find bugs, please report them at cck2.freshdesk.com.
|
Doug Belshaw: Weeknote 07/2015 |
This week I’ve been:
I’m going to be away on holiday from Monday 16th to Monday 23rd (inclusive) with my family in Dubai. I can’t tell you how much I’m looking forward to that!
Image CC BY-SA Alan Levine
|
Armen Zambrano: Mozilla CI tools 0.2.1 released - Trigger multiple jobs for a range of revisions |
|
Kim Moir: Mozilla pushes - January 2015 |
http://relengofthenerds.blogspot.com/2015/02/mozilla-pushes-january-2015.html
|
Mozilla Reps Community: Expanding the scope of the Mozilla Reps program |
This story started in 2011. A group of passionate Mozillians created the Reps program, their goal was to empower Mozilla volunteers all around the world to support the Mozilla mission. They provided visibility to the work of volunteers, created process to have access to resources and a better way to communicate within the community and with staff. It was the Reps themselves, especially the Council and the mentors who shaped this program. Now, counting 457 Reps, the program has evolved to be a powerful platform for community building where leaders from all around the world can emerge.
The Reps program proved to be very successful in building healthy local and regional communities. It also provided a structured connection to Mozilla functional activities when the work is inherently regional, for example with the Firefox OS launches. But as Mozilla grew and became more professional it was harder for volunteers to participate in the global nature of the project: volunteers could run local and regional activities much more easily, but participating in projects aimed at global impact became increasingly difficult.
Now fast Forward to 2015: We have a new participation plan that aims to bring back the balance and revive the participatory nature of Mozilla. Mark Surman’s blog post is a great read: we don’t only want to enable more participation but we want this participation to have value both for Mozilla and for the individual volunteers. And that means that we will empower many more volunteers to take the lead and participate much more deeply in Mozilla to have both local and global impact.
And here is where Reps come in. Our challenge is to make Mozilla much more participatory again, to partner with functional areas and take the lead. To make this successful in the long run we will work on new participation and leadership pathways connecting with functional teams. And we will work on the things that matter the most and make a difference. These pathways will of course provide more opportunities for personal and collective development as well as new leadership opportunities for Mozillians and Reps.
How will this be different from the past? We used to have “Special Interest Groups”, loose groups with an interest in a functional area, but not too many concrete projects or learning opportunities. We want to build on what was working there but shift to “Impact teams”: teams of staff and volunteers who will work hand in hand and where volunteers will be able to get real value out of their participation and will have a clear leadership pathway.
This new approach brings of course a whole new set of challenges: we’ll need to rethink the way we organize the Reps program, the way we empower Reps, mentors and Council and the way we do things in general. Education will be a fundamental part of this. We will need to work all together, Council, Mentors and Reps, to make this happen. And although it will be a lot of hard work I couldn’t be more excited for the changes coming: we’ll be investing so much energy and resources in empowering volunteers and offering new avenues for personal development while having a tangible impact bringing the Mozilla mission forward. I think 2015 will be a great year for Mozilla and the Reps program, join us in shaping this third era of Mozilla and writing the next chapter of the Mozilla Reps history.
https://blog.mozilla.org/mozillareps/2015/02/13/expanding-the-scope-of-the-mozilla-reps-program/
|
Rosana Ardila: Expanding the scope of the Mozilla Reps program |
This story started in 2011. A group of passionate Mozillians created the Reps program, their goal was to empower Mozilla volunteers all around the world to support the Mozilla mission. They provided visibility to the work of volunteers, created process to have access to resources and a better way to communicate within the community and with staff. It was the Reps themselves, especially the Council and the mentors who shaped this program. Now, counting 457 Reps, the program has evolved to be a powerful platform for community building where leaders from all around the world can emerge.
The Reps program proved to be very successful in building healthy local and regional communities. It also provided a structured connection to Mozilla functional activities when the work is inherently regional, for example with the Firefox OS launches. But as Mozilla grew and became more professional it was harder for volunteers to participate in the global nature of the project: volunteers could run local and regional activities much more easily, but participating in projects aimed at global impact became increasingly difficult.
Now fast Forward to 2015: We have a new participation plan that aims to bring back the balance and revive the participatory nature of Mozilla. Mark Surman’s blog post is a great read: we don’t only want to enable more participation but we want this participation to have value both for Mozilla and for the individual volunteers. And that means that we will empower many more volunteers to take the lead and participate much more deeply in Mozilla to have both local and global impact.
And here is where Reps come in. Our challenge is to make Mozilla much more participatory again, to partner with functional areas and take the lead. To make this successful in the long run we will work on new participation and leadership pathways connecting with functional teams. And we will work on the things that matter the most and make a difference. These pathways will of course provide more opportunities for personal and collective development as well as new leadership opportunities for Mozillians and Reps.
How will this be different from the past? We used to have “Special Interest Groups”, loose groups with an interest in a functional area, but not too many concrete projects or learning opportunities. We want to build on what was working there but shift to “Impact teams”: teams of staff and volunteers who will work hand in hand and where volunteers will be able to get real value out of their participation and will have a clear leadership pathway.
This new approach brings of course a whole new set of challenges: we’ll need to rethink the way we organize the Reps program, the way we empower Reps, mentors and Council and the way we do things in general. Education will be a fundamental part of this. We will need to work all together, Council, Mentors and Reps, to make this happen. And although it will be a lot of hard work I couldn’t be more excited for the changes coming: we’ll be investing so much energy and resources in empowering volunteers and offering new avenues for personal development while having a tangible impact bringing the Mozilla mission forward. I think 2015 will be a great year for Mozilla and the Reps program, join us in shaping this third era of Mozilla and writing the next chapter of the Mozilla Reps history.
http://ombrosa.co/2015/02/13/expanding-the-scope-of-the-mozilla-reps-program/
|
Johnathan Nightingale: Five |
Today you turn 5, which makes this the tenth one of these letters I’ve written (A letter, 6 months, 1 year old, 18 months, 2 years old, Two and a Half, 3 years old, Three and a Half, Four, Four and a Half). Every time I write a new one, I read all the other ones and then I fall down the rabbit hole of looking at old pictures of you, and I land in a big pile of feels. That happened again this morning, and I’m sitting in the Mozilla office sniffling like a goober.
You’re the coolest little kid, Lil. You’re big into Monopoly Junior right now, and you cackle a little when something good happens, but when you’re winning by too much, you give everyone else some of your money, “so that we all have a nice time.” You’ve got friends on the street and go over to hang out with them, which is totally normal and great, but also a hard thing to get used to. You’re developing all these mannerisms that are so big kid that it hurts, even though it’s awesome. There’s a lot of that in parenthood – heart-swelling-to-painful awesomeness. When you need my help to undo a button at the back of your dress, you gather up all your hair in your hands and tip your neck forward and I’d swear you were 17.
You’re working through having two homes, just like I did when I was your age. Which is expected and normal and still heart-achy. So far you’re just curious and trying to puzzle it out. For our part, as we muddle through it, we talk to other “bonus moms” who have been at it longer than we have, and try to pay it forward by talking to friends who are becoming step parents for the first time, to share what little we’ve learned. Take it from me, kid, there’s no quick road to the other side of this one – you’ll spend a lot of time thinking about it, well into adulthood. But I’ll always be here, if you want to talk about it.
You refuse to go to sleep. You sleep like a cat, you’re out for 9-10 hours a night at least, but getting you to close your eyes is a daily, ridiculous struggle. A few months ago I taught you the word, “stalling”, but naming it hasn’t eliminated it. You want another story. You want to pee. You want to cuddle. Your newest trick is to ask wide open questions about the world. Smart, thoughtful questions and they are my achilles heel, because of course I will talk to you about stars and planets and plants and animals and dinosaurs. Last week’s 9pm gambit was, “Daddy, how does light work?”
I pretend to get annoyed, and tell you to go to sleep, but I’m not really annoyed at all. I love our conversations. They’re the best part of my day. I love watching you experience the world, and watching you grow. It hurts sometimes, but in the best way.
I love you, Lil. Happy birthday.
|
Mozilla Reps Community: Reps Weekly Call – February 12th 2015 |
Last Thursday we had our weekly call about the Reps program, where we talk about what’s going on in the program and what Reps have been doing during the last week.
Don’t forget to comment about this call on Discourse and we hope to see you next week!
https://blog.mozilla.org/mozillareps/2015/02/13/reps-weekly-call-february-12th-2015/
|
Nicholas Nethercote: Using GDB to get stack traces at particular program points |
A while back I wrote how I sometimes use Valgrind to print a stack trace every time a particular program point is reached. I just learned how to do likewise with GDB. Here’s an example session that illustrates what to do.
(gdb) break je_chunk_alloc_mmap # set a breakpoint Breakpoint 1 at 0x1aa32c0 (gdb) commands # enter breakpoint command sequence Type commands for breakpoint(s) 1, one per line. End with a line saying just "end". >bt # print stack trace >c # continue execution >end # end command sequence (gdb) set pagination off # don't pause when the screen fills up (gdb) set logging on # copy output to a file Copying output to gdb.txt.
This is better than the Valgrind technique because (a) it doesn’t require modifying the source code, and (b) programs tend to run faster under GDB than they do under Valgrind.
Thanks to Mike Hommey for helping with this.
|
L. David Baron: How browser developers should seek feedback from Web developers |
We were having a discussion about how browser developers should seek feedback from Web developers about the evolution of Web technology and the specifications that define it. I suggested the following list of things that browser developers should do, and Anne thought it was worth blogging:
Find out what are the most important problems that Web developers have.
(Also, in addition to "most important", it's also worth noticing "most bang for buck", to also catch not-so-important problems with really easy fixes.)
Tell developers about areas where we're working on solutions to the problems they've told us about, and solicit feedback (on whether it's still an important problem, on whether the solution actually solves the problem, on how the solution could be improved, and perhaps even on which parts of the solution are important).
Tell / teach developers about the places where we've shipped solutions to the problems they've told us about, to encourage those solutions to be used. (And, when doing this, keep soliciting feedback about additive improvements.)
Specifications are in some sense secondary to problems. A solution should be specified, but there might not be a one-to-one mapping between solutions and specifications. A solution might be part of one specification, or might be spread across multiple specifications.
|
Stormy Peters: The Good, the Bad and the Ugly of why I don’t always work in the open |
I was writing a post about why you must work in the open to get more volunteers and I ended up writing this post about why I don’t work in the open.
So I think there are some very valid reasons for not working in the open:
And then I think there are some reasonable reasons (maybe right, maybe not) for not working in the open:
And then I think there are some not so great reasons for not working in the open:
When you choose not to work in the open, what are your reasons? Are they Good, Bad or Ugly? What are your suggestions for how those of us who want to work more in the open can all do better?
Related posts:
|
Daniel Stenberg: Tightening Firefox’s HTTP framing – again |
Call me crazy, but I’m at it again. First a little resume from our previous episodes in this exciting saga:
Chapter 1: I closed the 10+ year old bug that made the Firefox download manager not detect failed downloads, simply because Firefox didn’t care if the HTTP 1.1 Content-Length was larger than what was actually saved – after the connection potentially was cut off for example. There were additional details, but that was the bigger part.
Chapter 2: After having been included all the way to public release, we got a whole slew of bug reports immediately when Firefox 33 shipped and we had to revert parts of the fix I did.
Chapter 3.
Will it land before it turns 11 years old? The bug was originally submitted 2004-03-16.
Since chapter two of this drama brought back the original bugs again we still have to do something about them. I fully understand if not that many readers of this can even keep up of all this back and forth and juggling of HTTP protocol details, but this time we’re putting back the stricter frame checks with a few extra conditions to allow a few violations to remain but detect and react on others!
Here’s how I addressed this issue. I wanted to make the checks stricter but still allow some common protocol violations.
In particular I needed to allow two particular flaws that have proven to be somewhat common in the wild and were the reasons for the previous fix being backed out again:
A – HTTP chunk-encoded responses that lack the final 0-sized chunk.
B – HTTP gzipped responses where the Content-Length is not the same as the actual contents.
So, in order to allow A + B and yet be able to detect prematurely cut off transfers I decided to:
When my first fix was backed out, it was actually not removed but was just put behind a config string (pref as we call it) named “network.http.enforce-framing.http1“. If you set that to true, Firefox will behave as it did with my original fix applied. It makes the HTTP1.1 framing fairly strict and standard compliant. In order to not mess with that setting that now has been around for a while (and I’ve also had it set to true for a while in my browser and I have not seen any problems with doing it this way), I decided to introduce my new changes pref’ed behind a separate variable.
“network.http.enforce-framing.soft” is the new pref that is set to true by default with my patch. It will make Firefox do the detections outlined in 1 – 3 and setting it to false will disable those checks again.
Now I only hope there won’t ever be any chapter 4 in this story… If things go well, this will appear in Firefox 38.
But how do they solve these problems in the Chromium project? They have slightly different heuristics (with the small disclaimer that I haven’t read their code for this in a while so details may have changed). First of all, they do not allow a missing final 0-chunk. Then, they basically allow any sort of misaligned size when the content is gzipped.
http://daniel.haxx.se/blog/2015/02/12/tightening-firefoxs-http-framing-again/
|
Jet Villegas: FirefoxOS Dev Quick Start |
I’m posting the steps I took to create the FirefoxOS dev environment for the Flame device. We use the Flame as our reference device on the Platform Rendering team. I had to re-do this recently on a new computer and I figure this might help others in the same boat. These steps assume you can already build the desktop version of Firefox on your computer.
|
Emma Irwin: Kindness in (Open Source and Online) Communities |
Kindness is the language which the deaf can hear and the blind can see.
~Mark Twain
I’ve had this post swirling around in my head for a while. A post on my experiences and preference to lead, participate and negotiate conflict in online communities through kindness.
I might be writing it as a proposal to others, but also it might be a bit of therapy to review this strategy for myself.
When we consider approaching community conversation with kindness and patience; when we squash that immediate need to react we’re setting a tone of kindness . It is not, as you might assume, solely for the benefit of others. I believe much more that kindness is a selfish act, siding with optimism for the community conversations guides outcomes far more meaningful than ‘being right’, or getting the most of what you came for.
Regret is harder to overcome, than leading with kindness will ever be.
If a conversation topic or introduction starts off in a way that makes you feel defensive. Stop. Read it again. I know it’s hard, but looking past negative words – to find the truth in a conversation often makes the difference to everyone involved. Negativity could be as a result of events of the past, misconception and defensiveness. It might have nothing to do with you at all, and so digging out the root of the conversation and focusing there, can bring sunshine. I actually skim negative, and unprovoked comments altogether as a kindness to myself.
Every personality exists in community. With the invitation of ‘open’ – the simple act of getting shit done can come laced with barbs of protest, and challenge. Even when it’s clear that intentions may not be positive, reaching out with a benefit of the doubt can often turn that around. I have found new allies this way.
Sometimes people just want to know they’re being heard.
If you are reaching out with a concern, complaint or comment have a clear point. A discombobulation of emotion mixed in with accusations and assumptions will get you nowhere near the solution you’re seeking. Instead of writing long posts/emails/forums with an assumption you’ll get push-back – dare to assume people will respond with a desire to help! Narrow your point into an ‘ask’, that welcomes feedback.
Make sure your point isn’t simply to ‘be proven correct’, or to expose what little someone else knows. There are better things to do in the world.
You could be wrong. Learning is often a humbling experience (if you’ve ever watched a babys first steps), but learning and growing is a gift. Don’t close the door to being wrong.
If being right is a goal for your communication – then that’s a debate, and those can be good fun when both people sign-up.
However spending time providing the community with your credentials as a way to influence opinion, does far less than the act of listening, acknowledging the points of others, and specifically calling out feedback that helps you. Learn about others, there are some very brilliant, experienced yet quiet people lurking in our community – you may not realize the depth of someone else’s knowledge without making room for it.
Consider entering discussions with the goal of having your mind changed!
|
Julian Seward: Mochitests are now Valgrind-clean |
One of the things I’ve been doing these past few months is running Mochitests on Valgrind on a semi-regular basis — roughly weekly — and trying to drive the resultant error count down to zero. I did this some years back, in the approach to Firefox 4, but the situation has drifted since then.
Anyway, I am pleased to say that Mochitests on 64-bit Linux is once again Valgrind/Memcheck clean. That is, free from invalid memory accesses and uses of undefined values. This involved fixing around 25 bugs, mostly to do with uninitialised values. They fall into three categories:
The majority of the bugs are not to do with memory accesses in invalid places. I suspect most invalid accesses have already been picked up by our ASan runs.
The severity of the bugs varies. Any bug picked up by Valgrind might have serious consequences, as a result of making the computation depend on unknown values, either undefined ones, or ones taken from unknown places in memory. Some of the bugs seem fairly harmless. Others looked like they could cause user visible weirdness, for example decisions along the lines of “is the download rate sufficient to support this video resolution, or should we request a lower resolution?” At least one would have been an obvious crash had the uninitialised value pulled out of memory been suitably unfavourable.
So, is it truly clean? Well, not entirely, for various reasons. For one thing this is dynamic testing, of course, so it only covers scenarios that the test set exercises.
Secondly, the high level of C++ churn in the tree means there’s a constant, if low, influx of new memory errors, so we can only really get to “approaching zero” detectable errors. Doing this on the Aurora or Beta branches might help, but that doesn’t fit with our “mozilla-central first” development model.
Thirdly, this tests core Gecko code and the Linux specifics. It unfortunately doesn’t cover Mac specifics, Windows specifics or FirefoxOS specifics, although the latter is in progress.
One noticeable thing, if you play the run-Valgrind-and-fix-what-you-see game long enough, is that we can drive the observable memory errors in our code down to zero. That is, in anything that we build from source. But we can’t do anything about the various proprietary binary blobs we have to live with. Eventually we arrive at a situation where — at least so it seems — our code is cleaner than some of the other libraries it relies on.
Valgrinding Mochitests is quicker than it used to be. Back in the Firefox 4 days, it took about 14 CPU hours. Now it completes in about 5 hours. This is due to a combination of faster hardware (Intel Haswell), Valgrind generally being faster and scaling better for large processes, and having advanced to the point where it’s feasible to test “gcc -O2'' compiled code with a near-zero false error rate. It may also be that Gecko is simply faster, giving less work for Valgrind to do.
I’m beginning to run Valgrind tests of FirefoxOS startup on phones, in particular on the Flame. Given how resource-hungry Valgrind is, doing so is something of a challenge, requiring dodging timeouts, memory limits, sandboxes and proprietary driver blobs. But it is just about doable, and various bits of FirefoxOS-specific badness are in the process of getting cleaned up.
From a personal standpoint, this is very satisfying. Memcheck was originally conceived as a tool for finding bugs you didn’t yet know you had, rather than as a post-crash diagnostic tool. So it’s great to see it being used to remove a whole class of bugs from our tree.
We also have toolery (TSan, Helgrind) to find low level data races. Nathan Froyd and Christian Holler have made good progress in using them to detect races and in getting folks to fix those races, as tracked by metabug 929478. I look forward to the day when we can say that Mochitests is also free from detectable data races.
https://blog.mozilla.org/jseward/2015/02/11/mochitests-are-now-valgrind-clean/
|
Jared Wein: Firefox UI mentorship program |
Since I joined Mozilla I’ve been looking for ways to increase the opportunities for new people to get started working on the Firefox user interface.
I’m now ready to try something that I’ve been thinking about doing for a little while.
I’m looking for four people that I will mentor and help along as they fix bugs across the Firefox user interface. The first bug will be an easy one to get started with the codebase and comfortable building the browser, and they will increase in difficulty from there. At the end of the program you will be able to say that you’ve made some large contributions to Firefox. We will use JavaScript, CSS, and XUL (similar to HTML).
The project will be about six weeks long, starting February 16th and ending March 31st. During this time, I will be available to meet through video chat, IRC (text-based chat), and email.
If you are interested in working with me and have at least two to three years of classroom experience in Computer Science (or equivalent open source experience), please send an email to jaws+goodfirstmentee@mozilla.com along with:
I’ll let you know if you’ve been accepted by February 13th. Thanks!
https://msujaws.wordpress.com/2015/02/11/firefox-ui-mentorship-program/
|
Air Mozilla: Product Coordination Meeting |
Weekly coordination meeting for Firefox Desktop & Android product planning between Marketing/PR, Engineering, Release Scheduling, and Support.
https://air.mozilla.org/product-coordination-meeting-20150211/
|
Air Mozilla: The Joy of Coding (mconley livehacks on Firefox) - Episode 1 |
Watch mconley livehack on Firefox Desktop bugs!
https://air.mozilla.org/the-joy-of-coding-mconley-livehacks-on-firefox-episode-1/
|
Nikhil Marathe: Getting Vidyo running on Archlinux & Plasma 5 |
http://blog.nikhilism.com/2015/02/getting-vidyo-running-on-archlinux.html
|