Mozilla Nederland LogoDe Nederlandse
Mozilla gemeenschap

Mozilla Latest to Part Ways With SHA-1 - Threatpost

Nieuws verzameld via Google - wo, 24/09/2014 - 18:02

Mozilla Latest to Part Ways With SHA-1
Mozilla has joined the chorus of browser makers and technology companies no longer throwing their support behind the shaky SHA-1 hash algorithm. Long considered vulnerable to attack, SHA-1 is already on hackers' collective to-do list with experts ...

Categorieën: Mozilla-nl planet

Frédéric Harper: HTML for the Mobile Web at All Things Open

Mozilla planet - wo, 24/09/2014 - 17:23


In about a month, I’ll speak at All Things Open in Raleigh, North Carolina. I’m quite excited as even if I never attended this event, I hear a lot of good things about it. Funny enough, I don’t go on stage quite often in the United States, so it’s a great opportunity to do so. What could be a better topic than talking about HTML for the Mobile Web at an event like this?

Firefox OS is a new operating system for mobile phones to bring web connectivity to those who can not get top-of-the-line smartphones. By harvesting the principles of what made the web great and giving developers access to the hardware directly through web standards it will be the step we need to make a real open and affordable mobile web a reality. In this talk, Frédéric Harper from Mozilla will show how Firefox OS works, how to build apps for it and how end users will benefit from this open alternative to other platforms.

It’s not too late to register for this event on October 22-23: they still have early birds tickets. See you there to share, and dicuss with you about open source, open tech and the open web!

HTML for the Mobile Web at All Things Open is a post on Out of Comfort Zone from Frédéric Harper

Related posts:

  1. Empower Mobile Web Developers with JavaScript & WebAPI at PragueJS HTML5 is a giant step in the right direction: it...
  2. Mobile Startups Toronto, and Firefox OS as an opportunity The year is not yet done that I’m starting to...
  3. Fixing the mobile web with Firefox OS at FITC Toronto This morning I was presenting at FITC Toronto about Firefox...
Categorieën: Mozilla-nl planet

Pete Moore: Highlights from this week xyz Goals for next week: xyz Bugs I created this week: Bug 1072274 –...

Mozilla planet - wo, 24/09/2014 - 17:09

Highlights from this week

  • xyz

Goals for next week:

  • xyz

Bugs I created this week:

Other bugs I updated this week:

Categorieën: Mozilla-nl planet

Will Kahn-Greene: Hair today, gone tomorrow

Mozilla planet - wo, 24/09/2014 - 13:00

I've been cutting my own hair since like 1991 or so with two exceptions: a professional haircut before my wedding and one before my wife's sister's wedding.

Back in 1991, my parents bought me a set of Wahl clippers. Over the years, I broke two of the combs and a few of the extensions. Plus it has a crack down the side of the plastic body. At one point, I was cutting hair for a bunch of people on my dorm floor in college. It's seen a lot of use in 23 years.

However, a month ago, it started shorting the circuit. There's a loose wire or frayed something or something something. Between that and the crack down the side of the plastic body, I figured it's time to retire them and get a new set. The new set arrived today.

23 years is a long time. I have very few things that I've had for a long time. I bought my bicycle in 1992 or so. I have a clock radio I got in the mid-80s. I have a solar powered calculator from 1990 or so (TI-36). Everything else seems to fail within 5 years: blenders, toaster ovens, rice cookers, drills, computers, etc.

I'll miss those clippers. I hope the new ones last as long.

Categorieën: Mozilla-nl planet

Nicholas Nethercote: You should use WebRTC for your 1-on-1 video meetings

Mozilla planet - wo, 24/09/2014 - 10:57

Did you know that Firefox 33 (currently in Beta) lets you make a Skype-like video call directly from one running Firefox instance to another without requiring an account with a central service (such as Skype or Vidyo)?

This feature is built on top of Firefox’s WebRTC support, and it’s kind of amazing.

It’s pretty easy to use: just click on the toolbar button that looks like a phone handset or a speech bubble (which one you see depends which version of Firefox you have) and you’ll be given a URL with a domain name. Send that URL to somebody else — via email, or IRC, or some other means — and when they visit that URL in Firefox 33 (or later) it will initiate a video call with you.

I’ve started using it for 1-on-1 meetings with other Mozilla employees and it works well. It’s nice to finally have an open source implementation of video calling. Give it a try!

(Disclaimer: I’m a complete newbie when it comes to WebRTC. Please let me know if I have made any mistakes in this post and I will update accordingly. Thanks!)

Categorieën: Mozilla-nl planet

Byron Jones: happy bmo push day!

Mozilla planet - wo, 24/09/2014 - 06:18

the following changes have been pushed to

  • [1067381] Sorting by ID broken when changing multiple bugs
  • [1065398] Error when using to create BMO database from scratch when Review extension enabled
  • [1064395] concatenate and slightly minify javascript files
  • [1068014] skip strptime() in datetime_from() if the date is in a standard format
  • [1054141] add the ability to filter on the user that made the change
  • [891199] clicking on needinfo flag/text should scroll you to the comment which set the flag
  • [1069504] Put My Dashboard in the drop down on the top-right
  • [1067410] Modification time wrong for deleted flags in review schema
  • [1067808] Review history page displays cancelled reviews as overdue
  • [1060728] Add perltidyrc that makes it easier to follow existing code standards to BMO repository
  • [1068328] needinfo flag shows up on attachment details page only when not doing “Edit as Comment”
  • [1037663] Make custom bug entry forms more discoverable
  • [1071926] Can’t unmentor a bug

discuss these changes on

Filed under: bmo, mozilla
Categorieën: Mozilla-nl planet

Yura Zenevich:

Mozilla planet - wo, 24/09/2014 - 02:00

24 Sep 2014 - Toronto, ON

Eitan from Mozilla's accessibility team was nice enough to reserve a domain where we could track Firefox OS accessibility status easily and in the open. I am really happy to announce that is now ready to be seen in public.

There are several bits of information about each app (including the overall system) that you can find there: an overall accessibility score, a number of opened, resolved and currently in progress bugs. We also provide links to the actual bug lists handy in case you need to dig deeper.

For anyone who wants to help out:

  • If you are a user and want to file a bug, you should be able to find a link inside each app's section.
  • If you are a developer and want to hack on Gaia accessibility, each app section has an up-to-date lists if high priority and good first bugs.

Please feel free to check it out!


Categorieën: Mozilla-nl planet

Erik Vold: Jetpack Pro Tip - Require JSM

Mozilla planet - wo, 24/09/2014 - 02:00

Did you know that you can require("some.jsm")?

This has been possible for some time now, thanks to @jsantell.

With the change above you can replace code like this:

const { Cu } = require("chrome"); const { AddonManager } = Cu.import("resource://gre/modules/AddonManager.jsm", {});

With code like this:

const { AddonManager } = require("resource://gre/modules/AddonManager.jsm");

Also, you can include JSMs in your lib/ folder and use them in chrome code and your add-on scope. So you can add a file like lib/some.jsm, and use it in your commonJS modules like so:

const { Something } = require("./some.jsm");

Then if you’d like to fetch the URI for lib/some.jsm in order to use it in a XUL document, or for some other reason, then you can use one of the techniques that I described yesterday to do this, with JPM you’d do this:

let someURI = require.resolve("./some.jsm");

With this you can import the jsm into XUL documents for one thing, you could also provide an api to other add-on’s this way, and many other things which I’ll save for another day.

Categorieën: Mozilla-nl planet

Mozilla Release Management Team: Firefox 33 beta5 to beta6

Mozilla planet - ti, 23/09/2014 - 20:15

  • 21 changesets
  • 40 files changed
  • 570 insertions
  • 530 deletions

ExtensionOccurrences java11 cpp9 js8 cc6 html2 h2 ini1 css1

ModuleOccurrences mobile11 ipc7 toolkit6 dom3 docshell2 content2 widget1 mozglue1 modules1 layout1 image1 gfx1 browser1

List of changesets:

Drew WillcoxonBug 1068852 - Highlight search suggestions on hover/mouseover on about:home/about:newtab. r=MattN, a=sylvestre - a34329afda87 Dave TownsendBacking out Bug 893276 for causing Bug 1058840. a=lmandel - fa3e1469d0f1 Alex BardasBug 1042521 - Drop some cases when backslashes from urlbar input were converted to slashes on windows. r=bz, a=sledru - 73202bfb3f03 dominique vincentBug 1062904 - Null pointer check when saving an image. r=mfinkle, a=lmandel - 4bfa8b78669c Jim ChenBug 1066175 - Use other means to handle uncaught exception when Gecko is unavailable. r=snorp, a=sledru - e1d77019dda9 Jim ChenBug 1066175 - Only crash when crash reporting annotation succeeds. r=snorp, a=sledru - 0cc0faf4524b Ethan HuggBug 1049087 - Pre-populate the whitelist for screensharing in Fx33. r=jesup, a=sledru - 90713d332601 Markus StangeBug 1066934 - Don't allow the snapped scrollbar thumb to extend past the scrollbar bounds. r=roc, a=sledru - f14c89b414b6 Simon MontaguBug 1068218 - Don't pass lone surrogates to GetDirectionFromChar. r=ehsan, a=abillings - 389dd23d771c Chenxia LiuBug 1062257 - Handle HomeFragment deletions by panel/type instead of universally. r=margaret, a=sledru - ae87b325401d Jim ChenBug 1067513 - Import updated base::LazyInstance from upstream. r=bsmedberg, a=sledru - d6aa05e710f2 Michael ComellaBug 956858 - Make menu inaccessible during editing mode. r=wesj, a=sledru - 91f4e2aed979 JW WangBug 1067858 - Apply |AutoNoJSAPI| before calling mAudioChannelAgent->SetVisibilityState in order not to hit nsContentUtils::IsCallerChrome() in HTMLMediaElement::CanPlayChanged(). r=bz, a=sledru - de5e77b26504 David MajorBug 1046382 - Blocklist dtwxsvc.dll. r=bsmedberg, a=sledru - 68fdd69ee9bb Milan SreckovicBug 1069582 - Check the signed value for < 0 instead. r=sfowler, a=sledru - f8eec8fe1b2b Tim TaubertBug 1054099 - Remove use of gradients in new tab page. r=dao, a=lmandel - b73f15e656a1 Jan-Ivar BruaroeyBug 1070076 - Fix createOffer options arg legacy-syntax-warning to not trip on absent arg. r=jesup, a=sledru - 02eaea5dce76 Bobby HolleyBug 1051224 - Find a clever way to work around COW restrictions on beta. r=gabor,ochameau - 6cdc428e3e62 Alexandre PoirotBug 1051224 - Test console's cd() against sandboxed iframes. r=msucan a=sylvestre - 0ae1af037f6e Matt WoodrowBug 1053934 - Don't use the cairo context to create similar surfaces since it might be in an error state. r=jrmuizel, a=sledru - 9337f5dcf107 Randell JesupBug 1062876 - Refactor window iteration code for MediaManager. r=jib, a=abillings - d508b53c3dee

Categorieën: Mozilla-nl planet

Ben Hearsum: Stop stripping (OS X builds), it leaves you vulnerable

Mozilla planet - ti, 23/09/2014 - 19:38

While investigating some strange update requests on our new update server, I discovered that we have thousands of update requests from Beta users on OS X that aren’t getting an update, but should. After some digging I realized that most, if not all of these are coming from users who have installed one of our official Beta builds and subsequently stripped out the architecture they do not need from it. In turn, this causes our builds to report in such a way that we don’t know how to serve updates for them.

We’ll look at ways of addressing this, but the bottom line is that if you want to be secure: Stop stripping Firefox binaries!

Categorieën: Mozilla-nl planet

Lucas Rocha: New Features in Picasso

Mozilla planet - ti, 23/09/2014 - 17:52

I’ve always been a big fan of Picasso, the Android image loading library by the Square folks. It provides some powerful features with a rather simple API.

Recently, I started working on a set of new features for Picasso that will make it even more awesome: request handlers, request management, and request priorities. These features have all been merged to the main repo now. Let me give you a quick overview of what they enable you to do.

Request Handlers

Picasso supports a wide variety of image sources, from simple resources to content providers, network, and more. Sometimes though, you need to load images in unconventional ways that are not supported by default in Picasso.

Wouldn’t it be nice if you could easily integrate your custom image loading logic with Picasso? That’s what the new request handlers are about. All you need to do is subclass RequestHandler and implement a couple of methods. For example:

public class PonyRequestHandler extends RequestHandler { private static final String PONY_SCHEME = "pony"; @Override public boolean canHandleRequest(Request data) { return PONY_SCHEME.equals(data.uri.getScheme()); } @Override public Result load(Request data) { return new Result(somePonyBitmap, MEMORY); } }

Then you register your request handler when instantiating Picasso:

Picasso picasso = new Picasso.Builder(context) .addRequestHandler(new PonyHandler()) .build();

Voilà! Now Picasso can handle pony URIs:

Picasso.with(context) .load("pony://somePonyName") .into(someImageView)

This pull request also involved rewriting all built-in bitmap loaders on top of the new API. This means you can also override the built-in request handlers if you need to.

Request Management

Even though Picasso handles view recycling, it does so in an inefficient way. For instance, if you do a fling gesture on a ListView, Picasso will still keep triggering and canceling requests blindly because there was no way to make it pause/resume requests according to the user interaction. Not anymore!

The new request management APIs allow you to tag associated requests that should be managed together. You can then pause, resume, or cancel requests associated with specific tags. The first thing you have to do is tag your requests as follows:

Picasso.with(context) .load("") .tag(someTag) .into(someImageView)

Then you can pause and resume requests with this tag based on, say, the scroll state of a ListView. For example, Picasso’s sample app now has the following scroll listener:

public class SampleScrollListener implements AbsListView.OnScrollListener { ... @Override public void onScrollStateChanged(AbsListView view, int scrollState) { Picasso picasso = Picasso.with(context); if (scrollState == SCROLL_STATE_IDLE || scrollState == SCROLL_STATE_TOUCH_SCROLL) { picasso.resumeTag(someTag); } else { picasso.pauseTag(someTag); } } ... }

These APIs give you a much finer control over your image requests. The scroll listener case is just the canonical use case.

Request Priorities

It’s very common for images in your Android UI to have different priorities. For instance, you may want to give higher priority to the big hero image in your activity in relation to other secondary images in the same screen.

Up until now, there was no way to hint Picasso about the relative priorities between images. The new priority API allows you to tell Picasso about the intended order of your image requests. You can just do:

Picasso.with(context) .load("") .priority(HIGH) .into(someImageView);

These priorities don’t guarantee a specific order, they just tilt the balance towards higher-priority requests.

That’s all for now. Big thanks to Jake Wharton and Dimitris Koutsogiorgas for the prompt code and API reviews!

You can try these new APIs now by fetching the latest Picasso code on Github. These features will probably be available in the 2.4 release. Enjoy!

Categorieën: Mozilla-nl planet

Michael Kaply: Fileblock

Mozilla planet - ti, 23/09/2014 - 17:09

One of the things that I get asked the most is how to prevent a user from accessing the local file system from within Firefox. This generally means preventing file:// URLs from working, as well as removing the most common methods of opening files from the Firefox UI (the open file button, menuitem and shortcut). Because I consider this outside of the scope of the CCK2, I wrote an extension to do this and gave it out to anyone that asked. Unfortunately over time it started to have a serious case of feature creep.

Going forward, I've decided to go back to basics and just produce a simple local file blocking extension. The only features that it supports are whitelisting by directory and whitelisting by file extension. I've made that available here. There is a README that gives full information on how to use it.

For the other functionality that used to be a part of FileBlock, I'm going to produce a specific extension for each feature. They will probably be AboutBlock (for blocking specific about pages), ChromeBlock (for preventing the loading of chrome files directly into the browser) and SiteBlock (for doing simple whitelisting).

Hopefully this should cover the most common cases. Let me know if you think there is a case I missed.

Categorieën: Mozilla-nl planet

Gervase Markham: Licensing Policy Change: Tests are Now Public Domain

Mozilla planet - ti, 23/09/2014 - 14:53

I’ve updated the Mozilla Foundation License Policy to state that:

PD Test Code is Test Code which is Mozilla Code, which does not carry an explicit license header, and which was either committed to the Mozilla repository on or after 10th September 2014, or was committed before that date but all contributors up to that date were Mozilla employees, contractors or interns. PD Test Code is made available under the Creative Commons Public Domain Dedication. Test Code which has not been demonstrated to be PD Test Code should be considered to be under the MPL 2.

So in other words, new tests are now CC0 (public domain) by default, and some or many old tests can be relicensed as well. (We don’t intend to do explicit relicensing of them ourselves, but people have the ability to do so in their copies if they do the necessary research.) This should help us share our tests with external standards bodies.

This was bug 788511.

Categorieën: Mozilla-nl planet

Gervase Markham: Survey on FLOSS Contribution Policies

Mozilla planet - ti, 23/09/2014 - 10:47

In the “dull but important” category: my friend Allison Randal is doing a survey on people’s attitudes to contribution policies (committer’s agreements, copyright assignment, DCO etc.) in free/libre/open source software projects. I’m rather interested in what she comes up with. So if you have a few minutes (it should take less than 5 – I just did it) to fill in her survey about what you think about such things, she and I would be most grateful: is the link. You want the “FLOSS Developer Contribution Policy Survey” – I’ve done the other one on Mozilla’s behalf.

Incidentally, this survey is notable as I believe it’s the first online multiple-choice survey I’ve ever taken where I didn’t think “my answer doesn’t fit into your narrow categories” about at least one of the questions. So it’s definitely well-designed.

Categorieën: Mozilla-nl planet

Interesting facts about the Mozilla Firefox browser - Mid-Day

Nieuws verzameld via Google - ti, 23/09/2014 - 06:17


Interesting facts about the Mozilla Firefox browser
>>Mozilla Firefox outperformed other browsers in recent independent tests to be named the "speed king." According to researchers, the browser displayed cutting-edge speed when it came to indulging in activities like online gaming, opening or switching ...

Categorieën: Mozilla-nl planet

Erik Vold: Jetpack Pro Tip - Reusing files for content and chrome

Mozilla planet - ti, 23/09/2014 - 02:00

I’ve seen this issue come up a lot. Where an add-on developer is trying to reuse a library file, like underscore in both their add-on code, and their content scripts.

Typically the SDK documentation will say to put all of the content scripts in your add-on’s data/ folder, and that is the best thing to do if the script is only going to be used as a content script, but if you want to use the file in your add-on scope too then the file should not be in the data/ folder, and it should be in your lib/ folder instead.

Once this is done, the add-on scope can easy require it, so all that is left is to figure out a uri for the file in your lib/ folder which can be used for content scripts. To do this there are two options, one of which only works on JPM.


The JPM solution is very simple (thanks to Jordan Santell for implementing this), it is:

let underscoreURI = require.resolve("./lib/underscore");

if the file is in lib/underscore, but it should only be there if you copied and pasted it there, which pros don’t do. Pros use NPM because they know underscore is there, so they just make that a dependency, by adding this to package.json:

{ // .. "dependencies": { "underscore": "1.6.0" } //.. }

Then, simply use:

let underscoreURI = require.resolve("underscore"); CFX

WIth CFX you will have to copy and paste the file in to your lib/ folder, then you can get a URL for the file by doing this:

let underscoreURI = module.uri.replace("main.js", "underscore.js");

Assuming that the code above is evaluated in lib/main.js.

So you can see an issue with the above code is that you have to know the name of the file which this code is evaluated in, so another approach could be:

let underscoreURI = module.uri.replace(/\/[^\/]*$/, "/underscore.js");
Categorieën: Mozilla-nl planet

Mozilla handsets receive huge response - DhakaTribune

Nieuws verzameld via Google - mo, 22/09/2014 - 23:34

Mozilla handsets receive huge response
All of Mozilla smartphones in the first lot have already been booked by the customers for purchase just in 36 hours of launching in Bangladesh. The booking for second lot has also started on Sunday and is expected to run out in next couple of hours ...

Categorieën: Mozilla-nl planet

Frédéric Harper: Mon retour à HTML5mtl

Mozilla planet - mo, 22/09/2014 - 23:27


Il y a déjà presque trois ans, Mathieu Chartier, Benoît Piette et moi nous rencontrions dans un restaurant pour discuter à propos d’HTML5 et de Montréal. De cette discussion est né le groupe HTML5mtl que nous avons fondé pour faire rayonner les nouveautés de HTML, ainsi que les bonnes pratiques. Il y a un peu plus d’un an, j’avais dû quitter, pour des raisons professionnelles, mes fonctions d’organisateurs au sein du groupe laissant Mathieu et Benoît à la barre. Ma passion du web n’ayant pas changé et travaillant toujours dans le milieu, c’est avec plaisir que je suis revenu en tant que seul organisateur du groupe depuis septembre: Benoît ayant quitté l’organisation du groupe entre temps et Mathieu quittant HTML5mtl aussi pour travailler sur un nouveau projet qui n’est pas encore divulgé.

De ce fait, j’ai déjà entrepris quelques modifications, qui de par mon expérience avec différents groupes d’utilisateurs, événements et mon travail s’avèreront, je l’espère, profitable pour la santé du groupe. La première action est un retour à la base: soit une rencontre par mois alentour des technologies web (HTML, CSS et JavaScript) sans nécessairement visé que les nouveautés de HTML5. Il n’y a aucun manque de sujets que nous pouvons aborder et la demande des développeurs de la région de Montréal est présente (presque 1000 membres): la première rencontre de la saison 2014-2015 a généré plus de 180 réservations pour la présentation que Pierre-Paul Lefebvre nous a offerte sur AngularJS lors d’une soirée en salle comble. Je n’en attends pas moins pour la prochaine soirée sur Nodejs avec Rami Sayar qui vient juste d’être annoncé. Ensuite, une identité visuelle a été créée pour se démarquer du logo générique d’HTML5 que nous utilisions: un merci tout spécial à Matthew Potter qui a créé ce dernier, que vous pouvez voir en haut de ce billet. Deux petites modifications ont aussi été apportées au fonctionnement de la soirée: elle débute et finit plus tôt. Cela donnera plus de temps pour rentrer chez vous voir vos enfants ou relaxer avant la prochaine journée et vous avez tout de même le temps de finir votre journée de travail ainsi que d’aller manger une bouchée avant de vous présenter au groupe. En plus de cela, vous remarquerez maintenant que l’audience visée sera mentionnée dès octobre et pour toute présentation qui suivront: plus de surprise avec du contenu trop avancé pour vous ou de somnolence pour une présentation de base qui ne vous intéresse pas. Une des dernières actions que j’ai entreprise est de rendre le groupe bilingue: je crois que ç’a toujours été le cas, car nous avons eu des présentations en anglais par le passé, mais ça n’avait jamais été mis de l’avant. Nous sommes à Montréal, partageons sur le web en étant tout aussi ouvert: vivre le “Montréal style” et bienvenue aux anglophones (il me reste encore des traductions à faire sur la page meetup).

Pour la suite, il me reste à trouver une solution pour éviter que les gens qui réservent ne se présentent pas: en moyenne de 20 à 40% des gens qui disent qu’ils seront présents ne le seront pas. De ce fait, les gens en liste d’attente, qui auraient pu et voulu assisté à l’événement manque une belle soirée. Les gens doivent se responsabiliser, mais je tenterais, par essai et erreur, de minimiser l’impact de ce fléau bien connu des événements gratuits. Je vais bien sûr reprendre contact avec les commanditaires que j’avais recrutés dans le passé et de ce fait, ouvre la porte à quiconque souhaite supporter le groupe tout en obtenant une visibilité hors du commun. N’hésitez pas à m’envoyer un courriel (lien contact ci-haut) et je vous ferais parvenir le document des commandites. Je suis aussi toujours à la recherche de nouvelle présentatrice et nouveau présentateur, donc que vous soyez novice en la matière (je peux vous aider) ou passé maître dans l’art de parler en public, veuillez aussi m’envoyer un courriel si vous désirez faire profiter les membres de votre savoir!

Je suis bien heureux d’être de retour à ce magnifique groupe qu’est HTML5mtl.

Mon retour à HTML5mtl is a post on Out of Comfort Zone from Frédéric Harper

Related posts:

  1. HTML5 sur les stéroïdes à HTML5mtl C’est avec un immense plaisir que je présenterais pour la...
  2. Firefox OS à HTML5mtl Mardi soir avait lieu la rencontre mensuelle d’HTML5mtl et j’ai...
  3. Mon retour sur Podcamp Montréal 2010 Ce billet a été initialement rédigé sur le défunt blogue...
Categorieën: Mozilla-nl planet

Meeting Notes: Thunderbird: 2014-09-11

Thunderbird - mo, 22/09/2014 - 22:19

Thunderbird meeting notes 2014-09-11
Today’s minutes taker, please don’t forget to :
– save etherpad before clearing for this meeting, if etherpad wasn’t previously cleared (but copy “Action items” to the top before clearing)
– after end of meeting, copy entire etherpad contents to a new dated wiki page on so that they will go public in the meeting notes blog.
– save etherpad, copy “Action items” to “Action items from last meetings”, and clear the rest of etherpad comments

  • rkent, florian queze, irving, rolandtanglao, magnus
Action items from last meetings
  • rkent and wsmwk to unblock / deal with bienvenu bugs
Current status and discussions
  • no progress on “bienvenu” bugs
  • comm-central changes on hold pending mercurial changes and signoff by smedberg
  • discussion about kent’s modification to Thunderbird governance proposal is positive
  • much work on summit and video from mconley and rkent
  • summit agenda planning, rkent to ask in tb-planning
Round Table jcranmer
  • Likely won’t be at meeting today, one of my meetings changed time slots to start 30m before this one
  • according to gps, hg partial checkouts are targetted to land 3.2, more likely to land in 3.3 (release dates of Nov 1/Feb 1, respectively)
    • bsmedberg has said this is his blocker for letting c-c merge into m-c
    • gps plans to make it a high priority to update to newer hg quickly, and now has a new role to make that more possible
  • Played with putting OpenLDAP server in a Docker container
JosiahOne (Not at meeting)
  • Have done reviews and have been giving feedback in bugs, but personal development time has slowed. My development machine has to have a part replaced on Saturday plus I have papers and college applications to finish this month, so availability will be limited until around the time of the Summit.
  • OS X Codesign V2 status is coming along, I’m mostly just waiting for a finished version of the Fx implementation.
  • Summit: we really need a group of people to work on the agenda. Volunteers?
  • Discussion of reorg plan?
  • Now acting as interface between TB community and ProTravel Inc
    • The attendees list has been garnered from the wiki, along with 2 extras from Fallen and Florian for Calendar / Chat. Waiting to hear from a few more.
  • Re-connected with Aaron Mandel about a fundraising video. Quote is approximately $600 (+tax), since he likes Mozilla and wants to give us a deal
    • We need to find a good variety (accents, countries of origin, languages) members of the TB community who are comfortable / articulate in front of the camera (about 5-7 people), and come up with “our story”. I suggested our audience be current TB users who don’t actually know what’s happening with Thunderbird.
    • Quickly talk about where Thunderbird came from, the transition to community development, and where we are now – and why we need help. Instead of just talking heads, these interviews will be interspersed with shots of people checking their email, doing calendaring, chatting, etc.
    • We need the quick and punchy stuff: “Put users in control of their email”, “Your email is yours, even when you’re offline”, “Lots of tweaks and add-ons for power users”
    • We also need to send Aaron TB art / assets for graphical work.
    • Once we have our story, we’ll put together a really basic script, so we know who to put in front of the camera, and what questions to ask.
    • Then, I’ll meet with Aaron face-to-face 2 weeks before we shoot to make sure we have everything we need
    • During the summit (probably the Friday), we’ll pull our 5-7 people aside, ask them the questions we’ve scripted (maybe several times to get the sound bites we want), and then Aaron will cut together the video.
clokep (Not attending)
  • Been in contact with some of the DarkMail developers, have been trying to get them to ask questions in #maildev, but they seem to like to ask through me.
    • They’ve said things like “Random people don’t get answers there”
    • More likely they’re working during times when “we’re” not online.
Support team Action Items
  • mconley: Come up with a short-list of volunteers to go on camera, send out emails with questions on them to get responses, find the responses that resonate, and from that, assemble our script.
Retrieved from “

Categorieën: Mozilla-nl planet

Julien Vehent: Batch inserts in Go using channels, select and japanese gardening

Mozilla planet - mo, 22/09/2014 - 21:38

I was recently looking into the DB layer of MIG, searching for ways to reduce the processing time of an action running on several thousands agents. One area of the code that was blatantly inefficient concerned database insertions.

When MIG's scheduler receives a new action, it pulls a list of eligible agents, and creates one command per agent. One action running on 2,000 agents will create 2,000 commands in the ''commands'' table of the database. The scheduler needs to generate each command, insert them into postgres and send them to their respective agents.

MIG uses separate goroutines for the processing of incoming actions, and the storage and sending of commands. The challenge was to avoid individually inserting each command in the database, but instead group all inserts together into one big operation.

Go provides a very elegant way to solve this very problem.

At a high level, MIG Scheduler works like this:

  1. a new action file in json format is loaded from the local spool and passed into the NewAction channel
  2. a goroutine picks up the action from the NewAction channel, validates it, finds a list of target agents and create a command for each agent, which is passed to a CommandReady channel
  3. a goroutine listens on the CommandReady channel, picks up incoming commands, inserts them into the database and sends them to the agents (plus a few extra things)
The CommandReady goroutine is where optimization happens. Instead of processing each command as they come, the goroutine uses a select() statement to either pick up a command, or timeout after one second of inactivity. // Goroutine that loads and sends commands dropped in ready state // it uses a select and a timeout to load a batch of commands instead of // sending them one by one go func() { ctx.OpID = mig.GenID() readyCmd := make(map[float64]mig.Command) ctr := 0 for { select { case cmd := <-ctx.Channels.CommandReady: ctr++ readyCmd[cmd.ID] = cmd case <-time.After(1 * time.Second): if ctr > 0 { var cmds []mig.Command for id, cmd := range readyCmd { cmds = append(cmds, cmd) delete(readyCmd, id) } err := sendCommands(cmds, ctx) if err != nil { ctx.Channels.Log <- mig.Log{OpID: ctx.OpID, Desc: fmt.Sprintf("%v", err)}.Err() } } // reinit ctx.OpID = mig.GenID() ctr = 0 } } }()

As long as messages are incoming, the select() statement will elect the case when a message is received, and store the command into the readyCmd map.

When messages stop coming for one second, the select statement will fall into its second case: time.After(1 * time.Second).

In the second case, the readyCmd map is emptied and all commands are sent as one operation. Later in the code, a big INSERT statement that include all commands is executed against the postgres database.

In essence, this algorithm is very similar to a Japanese Shishi-odoshi.


The current logic is not yet optimal. It does not currently set a maximum batch size, mostly because it does not currently need to. In my production environment, the scheduler manages  about 1,500 agents, and that's not enough to worry about limiting the batch size.

Categorieën: Mozilla-nl planet