This follows the idea that mconley started with The Joy of Coding and his livehacks.
At the moment there is only "Unscripted" videos of me hacking away. I hope one day to do live hacks but for now they're offline videos.
Mistakes I made in case any Platform Ops member wanting to contribute want to avoid:
- Lower the music of the background music
- Find a source of music without ads and with music that would not block certain countries from seeing it (e.g. Germany)
- Do not record in .flv format since most video editing software do not handle it
- Add an intro screen so you don't see me hiding OBS
- Have multiple bugs to work on in case you get stuck in the first one
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
Parallelization consists of splitting a sequential program into smaller independent tasks, then having them run on different CPU. If your program is using N cores, it can be up to N times faster.
Well, in theory. Let's say you're in a car, driving on a 100 Km long road. You've already driven the first 50 Km in one hour. Let's say your car can have unlimited speed from now on. What is the maximal average speed you can reach, once you get to the end of the road?
People intuitively answer "If it can go as fast as I want, so nearby lightspeed sounds plausible". But this is not true! In fact, if you could teleport from your current position to the end of the road, you'd have traveled 100 Km in one hour, so your maximal theoritical speed is 100 Km per hour. This result is a consequence of Amdahl's law. When we get back to our initial problem, this means you can expect a N times speedup if you're running your program with N cores if, and only if your program can be entirely run in parallel. This is usually not the case, and that is why most wording refers to speedups up to N times faster, when it comes to parallelization.
Now, say your program is already running some portions in parallel. To make it faster, one can identify some parts of the program that are sequential, and make them independent so that you can run them in parallel. With respect to our car metaphor, this means augmenting the portion of the road on which you can run at unlimited speed.
This is exactly what we have done with parallel compilation of asm.js programs under Firefox.A quick look at the asm.js compilation pipeline
I recommend to read this blog post. It clearly explains the differences between JIT (Just In Time) and AOT (Ahead Of Time) compilation, and elaborates on the different parts of the engines involved in the compilation pipeline.
Because asm.js programs can be gigantic in size (in number of functions as well as in number of lines of code), the first compilation of the entire program is going to take some time. Afterwards, Firefox uses a caching mechanism that prevents the need for recompilation and almost instaneously loads the code, so subsequent loadings matter less*. The end user will mostly wait for the first compilation, thus this one needs to be fast.
Before the work explained below, the pipeline for compiling a single function (out of an asm.js module) would look like this:
- parse the function, and as we parse, emit intermediate representation (IR) nodes for the compiler infrastructure. SpiderMonkey has several IRs, including the MIR (middle-level IR, mostly loaded with semantic) and the LIR (low-level IR closer to the CPU memory representation: registers, stack, etc.). The one generated here is the MIR. All of this happens on the main thread.
- once the entire IR graph is generated for the function, optimize the MIR graph (i.e. apply a few optimization passes). Then, generate the LIR graph before carrying out register allocation (probably the most costly task of the pipeline). This can be done on supplementary helper threads, as the MIR optimization and LIR generation for a given function doesn't depend on other ones.
- since functions can call between themselves within an asm.js module, they need references to each other. In assembly, a reference is merely an offset to somewhere else in memory. In this initial implementation, code generation is carried out on the main thread, at the cost of speed but for the sake of simplicity.
So far, only the MIR optimization passes, register allocation and LIR generation were done in parallel. Wouldn't it be nice to be able to do more?
* There are conditions for benefitting from the caching mechanism. In particular, the script should be loaded asynchronously and it should be of a consequent size.Doing more in parallel
Our goal is to make more work in parallel: so can we take out MIR generation from the main thread? And we can take out code generation as well?
The answer happens to be yes to both questions.
For the former, instead of emitting a MIR graph as we parse the function's body, we emit a small, compact, pre-order representation of the function's body. In short, a new IR. As work was starting on WebAssembly (wasm) at this time, and since asm.js semantics and wasm semantics mostly match, the IR could just be the wasm encoding, consisting of the wasm opcodes plus a few specific asm.js ones*. Then, wasm is translated to MIR in another thread.
Now, instead of parsing and generating MIR in a single pass, we would now parse and generate wasm IR in one pass, and generate the MIR out of the wasm IR in another pass. The wasm IR is very compact and much cheaper to generate than a full MIR graph, because generating a MIR graph needs some algorithmic work, including the creation of Phi nodes (join values after any form of branching). As a result, it is expected that compilation time won't suffer. This was a large refactoring: taking every single asm.js instructions, and encoding them in a compact way and later decode these into the equivalent MIR nodes.
For the second part, could we generate code on other threads? One structure in the code base, the MacroAssembler, is used to generate all the code and it contains all necessary metadata about offsets. By adding more metadata there to abstract internal calls **, we can describe the new scheme in terms of a classic functional map/reduce:
- the wasm IR is sent to a thread, which will return a MacroAssembler. That is a map operation, transforming an array of wasm IR into an array of MacroAssemblers.
- When a thread is done compiling, we merge its MacroAssembler into one big MacroAssembler. Most of the merge consists in taking all the offset metadata in the thread MacroAssembler, fixing up all the offsets, and concatenate the two generated code buffers. This is equivalent to a reduce operation, merging each MacroAssembler within the module's one.
At the end of the compilation of the entire module, there is still some light work to be done: offsets of internal calls need to be translated to their actual locations. All this work has been done in this bugzilla bug.
* In fact, at the time when this was being done, we used a different superset of wasm. Since then, work has been done so that our asm.js frontend is really just another wasm emitter.
** referencing functions by their appearance order index in the module, rather than an offset to the actual start of the function. This order is indeed stable, from a function to the other.Results
Benchmarking has been done on a Linux x64 machine with 8 cores clocked at 4.2 Ghz.
First, compilation times of a few asm.js massive games:
The X scale is the compilation time in seconds, so lower is better. Each value point is the best one of three runs. For the new scheme, the corresponding relative speedup (in percentage) has been added:
For all games, compilation is much faster with the new parallelization scheme.
Now, let's go a bit deeper. The Linux CLI tool perf has a stat command that gives you an average of the number of utilized CPUs during the program execution. This is a great measure of threading efficiency: the more a CPU is utilized, the more it is not idle, waiting for other results to come, and thus useful. For a constant task execution time, the more utilized CPUs, the more likely the program will execute quickly.
The X scale is the number of utilized CPUs, according to the perf stat command, so higher is better. Again, each value point is the best one of three runs.
With the older scheme, the number of utilized CPUs quickly rises up from 1 to 4 cores, then more slowly from 5 cores and beyond. Intuitively, this means that with 8 cores, we almost reached the theoritical limit of the portion of the program that can be made parallel (not considering the overhead introduced by parallelization or altering the scheme).
But with the newer scheme, we get much more CPU usage even after 6 cores! Then it slows down a bit, although it is still more significant than the slow rise of the older scheme. So it is likely that with even more threads, we could have even better speedups than the one mentioned beforehand. In fact, we have moved the theoritical limit mentioned above a bit further: we have expanded the portion of the program that can be made parallel. Or to keep on using the initial car/road metaphor, we've shortened the constant speed portion of the road to the benefit of the unlimited speed portion of the road, resulting in a shorter trip overall.Future steps
Despite these improvements, compilation time can still be a pain, especially on mobile. This is mostly due to the fact that we're running a whole multi-million line codebase through the backend of a compiler to generate optimized code. Following this work, the next bottleneck during the compilation process is parsing, which matters for asm.js in particular, which source is plain text. Decoding WebAssembly is an order of magnitude faster though, and it can be made even faster. Moreover, we have even more load-time optimizations coming down the pipeline!
In the meanwhile, we keep on improving the WebAssembly backend. Keep track of our progress on bug 1188259!
Foundation Demos April 22 2016
Don't bother me on my honeymoon.
As of Firefox 46, the extension based version FirefoxDriver will no longer work. This is because of the new Add-on policy that Mozilla is enforcing to try help protect end users from installers inserting add ons that are not what the user wants. This version is due for release next week.
This does not mean that your tests need to stop working entirely as there are options to keep them working.Marionette
Firstly, you can use Marionette, the Mozilla version of FirefoxDriver to drive Firefox. This has been in Firefox since about 24 as we, slowly working against Mozilla priorities, getting it up to Selenium level. Currently Marionette is passing ~85% of the Selenium test suite.
I have written up some documentation on how to use Marionette on MDN
I am not expecting everything to work but below is a quick list that I know doesn't work.
- No support for self-signed certificates
- No support for actions
- No support logging endpoint
- I am sure there are other things we don't remember
It would be great if we could raise bugs.Firefox 45 ESR
If you don't want to worry about Marionette, the other option is to downgrade to Firefox 45, preferably the ESR as it won't update to 46 and will update in about 6-9 months time to Firefox 52 when you will need to use Marionette.
Marionette will be turned on by default from Selenium 3, which is currently being worked on by the Selenium community. Ideally when Firefox 52 comes around you will just update to Selenium 3 and, fingers crossed, all works as planned.
– Bare et tidsspørsmål før Google og Mozilla vil kreve sikre websider
Den siste måneden har bruken av sikre forbindelser for overføring av norske websider fått ekstra mye oppmerksomhet, etter at NRK i slutten av mars fant ut at bare 422 av nærmere 10 000 offentlig eide nettsteder benytter HTTPS-protokollen (Hypertext ...
Hey there, SUMO Nation! We’re back to sharing more awesomeness from you, by you, for all the users. This time I have the pleasure of passing the screen over to Michal, our Czech locale leader. Michal and his trusted team of Czech l10ns reached all the possible KB milestones ever and are maintaining the Czech KB with grace and ease. Learn how they did it and get inspired!
The years 2015 and 2016 were a great success for our Czech localization team. We have grown in number, improved our suggestion & reviewing workflow, moved all projects to a single place (Pontoon) and finished all milestones for SUMO l10n – both for UI and articles. But there is much more that we gained when making all dashboards green than just “getting the work done”.But who is the Czech team?
That’s a very good question. The Czech team has not been involved much in the global SUMO life. So, if you do not know us, let me introduce everyone.
- First there is me ;) – Michal. I primarily focus on product localization, but “as a hobby” I am trying to help the SUMO heroes too.
- Our biggest hero and record breaker Jiří! If you open any Czech article, he worked on it directly, or reviewed and polished it to perfection. His counter recently exceeded the number of 730 articles updated.
- Miroslav is our long-time contributor and his updates and translations are considered approved in advance.
- Tomáš does irreplaceable work keeping Kitsune UI localization in great shape, and he started that in the old ages of Verbatim.
- I almost forgot our former leader Pavel. Many thanks to him for the outstanding work on both Kitsune UI l10n and the very first help articles as well.
- I also want to highlight the contributions of other brave volunteers. Their updates and translation even a few articles helped us conquer our dashboard.
Thank you, SUMO! So, the story… At the end of last year, Michał looked closely on the locale statuses and assigned the milestones we should smash this year. Our milestone was to localize all articles globally. That was something I didn’t believe we can do easily. Even in February or March a new set of milestones appeared and the updated one for Czech reduced the “requirement” to localize 700 articles. Well, from that point in time, we cheated a little. ;)
As you may notice only 697 articles now. During the localization we noticed some articles were pretty outdated, containing links to pages that no longer exist, etc. So we’ve got in touch with the team, reported them and… they were magically archived. But do not think we are just bloody cheaters achieving milestones through asking for content deletion. No, we made almost 400 updates to all articles this year (50% of the total we’ve done in the whole 2015)!
The cooperation between us (localizers) and the SUMO team (Michał, Joni, Madalina, and others), I personally have found very beneficial. One one side, they put a huge effort in our support, introducing a new tool or explaining article content, as well as Firefox release notes and news. During the localization we read each article whole at least once or twice, so giving them feedback or suggesting updates is the smallest thing we can offer from our side.Amazing! But you mentioned you learned something new too?
True. We learned that communication is very important. In the team, we learned to share new ideas on terminology and also opened a discussion on the theme of screenshots, which are our next target. Did you notice, there is no dedicated way to mark that your localization revision is missing localized screenshots? Oh, it’s quite simple in fact. We are adding a “[scr]” tag into the revision comment each time we have not had enough time to take localized screenshots, and only translated the article content. It’s very easy to filter them out in the “Recent revisions” list, once you have time and mood for some “screenshotting”.
Equally important is the communication outside the localization team. A lot of strings in the Kitsune UI would have been translated blindly without any consultation. Especially in the support forum areas, we haven’t been using those pages ourselves until the beginning of April (yes, we did forum support, too!).
In the light of our success, we do not want to rest on the laurels. It’s time to look forward – our screenshots are not perfect, and we are still dividing our efforts between articles and the Kitsune UI. I hope that Kitsune can support us in both areas a little more, e.g. there are no tools for finding the actual location of the strings, but that’s something we can help fix. We are actually quite new to Kitsune. But as it’s great to help people by bringing knowledge into your language, it’s also quite important to start a discussion, even if we might think the questions we have are trivial. Just do not be afraid to say what you think is important for the project.
We had two powerful earthquakes in the south of Japan which have been registered both at 7, the maximum, on the Japanese earthquake scale. Previously only 3 other earthquakes had been that high in Japan.
Tune of the week: Boom! Shake the room.Webcompat Life
Progress this week:Today: 2016-04-22T10:25:49.831867 376 open issues ---------------------- needsinfo 4 needsdiagnosis 132 needscontact 27 contactready 95 sitewait 116 ----------------------
You are welcome to participate
(a selection of some of the bugs worked on this week).
- -webkit-overflow-scrolling: touch; and a missing width: 100vw; creates a scrolling issue for a menu. If you speak Chinese you can help us find the contact and reach out to them.
- One of the issues with Webcompat work is that people change life, job, assignments like it is happening on this Amazon bug, but after finding another person in charge, the dialog is still going on. And it's an healthy one, where constraints and needs are discussed on both sides. That's the best you could hope for when discussing about features and bugs.
- User-Agent override is never an easy choice. When deciding to do user agent override, aka faking the user agent so you receive the proper user experience from the Web site, what else will you break in the process?
- A selection which creates a jump in reading the next article on the NYTimes Web site.
- There is something to write about user agent sniffing, websites and longterm. Orbis is obviously a site which is not maintained anymore BUT working at least for some browsers. The strategies of user agent sniffing are still in place and then fail the browser even if it could work.
- There should be a special category for Daniel Holbert's Web compatibility bug reports… Holy cow. This is just butter on top of grilled bread. A barber shop
Need to increase my dev rate.Gecko Bugs
- Brian Grinstead [fixed] an issue which was created by the interaction of User Agent Switcher addons and developer tool.
- “web compatibility” is HTML content which is accessible via interconnected URLs independent of further technologies.
- another buzzword.
- Web compat means pages that work for everyone regardless of browser, screen size, network speed, language, physical ability.
- Something that can safely be loaded in a browser?
- more seriously, https://webcompat.com is a cool initiative. Wasn’t aware until you asked :)
- Spiderman vs. Bizarro Spiderman
- Web Compatibility, but then in a slightly puzzled manner I wonder why they decided to shorten compatibility to compat.
- it means someone didn't finish their sentence
I like this series of answers. "Web Compat" as a buzzword is interesting. We usually use webcompat in between us in the team without realizing that it might be not understood outside of our circle. Taking notes.
The other answers are very spread apart into something which is more on does it work more than interoperable, aka focusing more on universality of the Web technologies. In the London agenda, we have an item opened for discussions on the meaning of Web Compatibility and what are the class of issues. It should be fun.Reading List
- RIP isindex. There might be more occurences of isindex in the tests cases of mozilla-central than in the full Web. I documented the history of isindex
- Document how to write tests on webcompat.com using test fixtures.
- ToWrite: rounding numbers in CSS for width
- ToWrite: Amazon prefetching resources with <object> for Firefox only.
This is the Connected Devices Meetup where we will have 3 speakers presenting their slides or demos and answering questions.
the following changes have been pushed to bugzilla.mozilla.org:
-  add support for the hellosplat tracker to ‘see also’
-  intermittent internal error: “file error – nav_link: not found” (also manifests as fields_lhs: not found)
-  backport upstream bug 1263923 to bmo/4.2 – X-Bugzilla-Who header is not set for flag mails
-  I have found a bug in the section 2.6.1 in the user guide(2.6) of BMO documentation. The bug identified is a grammatical error committed in one of the sentences.
-  Don’t see a way to redirect a needinfo request (in Experimental UI)
-  clickjacking is possible on “view all” and “details” attachment pages
discuss these changes on mozilla.tools.bmo.
Firefox: Mozilla und Canonical verlängern Ubuntu-Partnerschaft
Mozilla und Canonical haben heute die Verlängerung ihrer Partnerschaft angekündigt. Damit wird Firefox auch in Zukunft der Standard-Browser von Ubuntu sein. Außerdem wird Mozilla ab diesem Jahr Firefox-Versionen im neuen Snap-Format ausliefern.
en meer »
Hello, SUMO Nation!
Let’s get the big things out of the way – we met last week in Berlin to talk about where we are and what’s ahead of us. While you will see changes and updates appearing here and there around SUMO, the most crucial result is the start of a discussion about the future of our platform – a discussion about the technical future of SUMO. We need your feedback about it as soon as possible. Read more details here – and tell us what you think.
This is just the beginning of a discussion about one aspect of sumo, so please – don’t panic and remember: we are not going away, no content will be lost (but we may be archiving some obsolete stuff), no user will be left behind, and (on a less serious note) no chickens will have to cross the road – we swear!
Now, let’s get to the updates…Welcome, new contributors!
- Swarnava, for being his usual awesome self ;-)
- The forum supporters who helped users out for the last week.
- The writers of all languages who worked on the KB for the last week.
We salute you!Don’t forget that if you are new to SUMO and someone helped you get started in a nice way you can nominate them for the Buddy of the Month! Most recent SUMO Community meeting SUMO Community meeting…
- …is happening on WEDNESDAY the 27th of April – join us!
- Reminder: if you want to add a discussion topic to the upcoming meeting agenda:
- Start a thread in the Community Forums, so that everyone in the community can see what will be discussed and voice their opinion here before Wednesday (this will make it easier to have an efficient meeting).
- Please do so as soon as you can before the meeting, so that people have time to read, think, and reply (and also add it to the agenda).
- If you can, please attend the meeting in person (or via IRC), so we can follow up on your discussion topic during the meeting with your feedback.
- Once again – the most important news of the week (month?) – WE NEED YOUR FEEDBACK.
- The second most important update… at least today ;-) We are looking for more contributors to our blog. Do you write on the web about open source, communities, SUMO, Mozilla… and more? Do let us know!
- Want to know what’s going on with the Admins? Check this thread in the forum.
- Ongoing reminder: if you think you can benefit from getting a second-hand device to help you with contributing to SUMO, you know where to find us.
- Madalina is plotting and planning for Sprinklr’s future and looking at other tools that could support our valiant Army of Awesome!
- Ongoing reminder: We have a training out there for all those interested in Social Support – talk to Madalina or Costenslayer on #AoA (IRC) for more information.
- We have an ongoing QuickTime discussion, since Apple is not longer providing updates to the QuickTime Player, and has been blocked for Windows Machines. Huge thanks to everyone who jumped in to help out with this hot potato!
- Please review the discussion about the upcoming 46 release – if you notice any major issues please let us know on that thread.
- Remember, if you’re new to the support forum, come over and say hi!
- Hackathons everywhere! Well, at least in Stockholm, Sweden (this Friday) and Prague, Czech Republic (next Friday). Contact information in the meeting notes!
- A guest post all about a certain group of our legendary l10ns coming your way – it will be a great read, I guarantee!
- An update post about SUMO l10n coming over the weekend, because there ain’t no rest for the wicked.
- for Desktop
…and that’s it for today! We hope you enjoyed the update and will stick around for more news this (and next) week. We are looking forward to seeing you all around SUMO – KEEP ROCKING THE HELPFUL WEB!
The chaotic early days of a new computing era is an extended period of product innovation and experimentation. But both the form and function of new products are still strongly influenced by the norms and transitional technologies of the waning era. New technologies are applied to new problems but often those new technologies are not yet mature enough to support early expectations. The optimal form-factors, conceptual metaphors, and usage idioms of the new era have yet to be fully explored and solidified. Looking back from the latter stages of a computing era, early era products appear crude and naive.
This is a great time to be a product innovator or an enthusiastic early adopter. But don’t get too comfortable with the present. These are still the early days of the Ambient Computing Era and the big changes are likely still to come.
Once a month, web developers from across the Mozilla Project get together to talk about our side projects and drink, an occurrence we like to call “Beer and Tell”.
First up was emceeaich, who shared Memory Landscapes, a visual memoir of the life and career of artist and photographer Laurie Toby Edison. The project is presented as a non-linear collection of photographs, in contrast to the traditionally linear format of memoirs. The feature that emceeaich demoed was “Going to Brooklyn”, which gives any link a 1/5 chance of showing shadow pictures briefly before moving on to the linked photo.lorchard: DIY Keyboard Prototype
Next was lorchard, who talked about the process of making a DIY keyboard using web-based tools. He used keyboard-layout-editor.com to generate a layout serialized in JSON, and then used Plate & Case Builder to generate a CAD file for use with a laser cutter.
A flickr album is available with photos of the process.lorchard: Jupyter Notebooks in Space
lorchard also shared eve-market-fun, a Node.js-based service that pulls data from the EVE Online API and pre-digests useful information about it. He then uses a Jupyter notebook to pull data from the API and analyze it to guide his market activities in the game. Neat!Pomax: React Circle-Tree Visualizer
Pomax was up next with a new React component: react-circletree! It depicts a tree structure using segmented concentric circles. The component is very configurable and can by styled with CSS as it is generated via SVG. While built as a side-project, the component can be seen in use on the Web Literacy Framework website.Pomax: HTML5 Mahjong
Also presented by Pomax was an HTML5 multiplayer Mahjong game. It allows four players to play the classic Chinese game online by using socket.io and a Node.js server to connect the players. The frontend is built using React and Webpack.groovecoder and John Dungan: Codesy
Last up was groovecoder and John Dungan, who shared codesy, an open-source startup addressing the problem of compensation for fixing bugs in open-source software. They provide a browser extension that allows users to bid on bugs as well as name their price for fixing a bug. Users may then provide proof that they fixed a bug, and once it is approved by the bidders, they receive a payout.
If you’re interested in attending the next Beer and Tell, sign up for the firstname.lastname@example.org mailing list. An email is sent out a week beforehand with connection details. You could even add yourself to the wiki and show off your side-project!
See you next month!
Les meetup Open Transport ce sont des échanges réguliers autour des initiatives ouvertes et collaboratives dans le secteur de la mobilité (projets à base d'open...
At Mozilla, we strive to offer users a great experience based on transparency, choice and trust, and to make Firefox available across many platforms, devices and operating systems. Today, Mozilla and Canonical are renewing their partnership to make Firefox the default browser for Ubuntu users. We are proud to have been a partner of choice for Ubuntu for over a decade. Canonical and Mozilla share a similar heritage as open-source and community-supported organizations.
Ubuntu version 16.04 will include the introduction of the snap infrastructure. With the snap format, we will be able to continually optimize Firefox on Ubuntu. Like our rapid engineering release cycle, snap format will allow us to provide Linux users the most up-to-date features, in particular security patches, even after major Operating System ship dates.
Previously, a static version of Firefox would ship with each new Operating System version for the lifecycle of that OS. With the snap format, new features can be released to users of older OS versions too. Later this year, we will offer Firefox in snap format making it easier to push the browser directly to users rather than relying on an intermediary to accept updates before they reach users.
For this episode, Richard Milewski and I figured out the syncing issue I’d been having in Episode 9, so I had my head floating in the bottom right corner while I hacked. Now you can see what I do with my face while hacking, if that’s a thing you had been interested in.
I’ve also started mirroring the episodes to YouTube, if YouTube is your choice platform for video consumption.
So, like last week, I was under a bit of time pressure because of a meeting scheduled for 2:30PM (actually the meeting I was supposed to have the week before – it just got postponed), so that gave me 1.5 hours to move forward with the View Source work we’d started back in Episode 8.
I started the episode by explaining that the cache key stuff we’d figured out in Episode 9 was really important, and that a bug had been filed by the Necko team to get the issue fixed. At the time of the video, there was a patch up for review in that bug, and when we applied it, we were able to retrieve source code out of the network cache after POST requests! Success!
Now that we had verified that our technique was going to work, I spent the rest of the episode cleaning up the patches we’d written. I started by doing a brief self-code-review to smoke out any glaring problems, and then started to fix those problems.
We got a good chunk of the way before I had to cut off the camera.
I know back when I started working on this particular bug, I had said that I wanted to take you through right to the end on camera – but the truth of the matter is, the priority of the bug went up, and I was moving too slowly on it, since I was restricting myself to a few hours on Wednesdays. So unfortunately, after my meeting, I went back to hacking on the bug off-camera, and yesterday I put up a patch for review. Here’s the review request, if you’re interested in seeing where I got to!
I felt good about the continuity experiment, and I think I’ll try it again for the next few episodes – but I think I’ll choose a lower-priority bug; that way, I think it’s more likely that I can keep the work contained within the episodes.
How did you feel about the continuity between episodes? Did it help to engage you, or did it not matter? I’d love to hear your comments!
Thunderbird meeting notes 2015-04-21. NOON PT (Pacific). Check https://wiki.mozilla.org/Thunderbird/StatusMeetings for meeting time conversion, previous meeting notes and call-in detailsAttendees
ATTENDEES – put your nick 1. below 2. in comments unless explicit under round table 3. top right of etherpad next to your color
mkmelin, rolandt, pegasus, makemyday jorgk, rkent, gneandr, aceman, merike, Paenglab, wsmwkAction items from last meetings
- (rkent, Fallen) AMO addon compat: TheOne said that this late it is probably not worth doing at all. WIth so many other things for me to do, that sounds like a plan.
- glandium, for fixing the various packager bugs that will help package Lightning (nominated by Fallen, who won’t be at the meeting)
Critical bugs. Leave these here until they’re confirmed fixed. If confirmed, then remove.
- (rkent) I am enormously frustrated by the inability to get two critical features landed in tb 38: OAuth and Lightning integration. Can we please give this very high priority?
- OAuth integration: partial landing for beta 2, really REALLY critical that we get this finished.
- In general, the tracking-tb38 flag shows what are critical issues. In the next week or so, that list will be culled to only include true blockers for the Thunderbird 38 release. There will still be many.
- I don’t think we have a reasonable chance of shipping a quality release on May 12. More realistic is June 2.
- We need to decide on how to do release branching. I am uncertain whether Lightning integration requires this or not.
- Auto-complete improvements – some could go into esr31 (bug 1042561 included in TB38)
- Lightning integration (below) really REALLY critical that we get this finished.
- maildir UI: nothing more to do for UI, still want to land a patch for letting IMAP set this.
- gloda IM search regressions: mostly fixed, some db cleanup necessary for users of TB33+ that nhnt11 will hopefully have ready to land soon.
- aleth landed a fix to stop duplicated entries from appearing, nhnt11 will take care of the cleaning up the databases of Aurora/Beta/Daily users this weekend and keep us updated
- bug 1140884, might need late-l10n
removing from critical list/fixed:
- ldap crash bug 1063829: a patch in beta 37, beta results are unclear – not seen in 38
- bug 1064230 crashes during LDAP search made worse by Search All Addressbooks bug 170270, needs tracking 38+ and review?rkent/jcranmer – not seen in 38
- everyone should probably skim http://mzl.la/1DaLo0t version 31-38 regressions for items they can help fix or direct to the right people
- 31.6.0 shipped
- 38.0b1 shipped 2015-04-03
- 38.0b2 shipped 2015-04-20
- 38.0b3 (when?)
- As underpass has pointed out repeatedly (thanks for your patience!) , we need to rewrite / heavily modify the lightning articles on support.mozilla.org. let me know irc: rolandtanglao on #tb-support-crew or rtanglao AT mozilla.com OR simply start editing the articles
Unfortunately not much progress because I was away. I hope to have the packaging bits done until the weekend. Glandium did a great job on the packager.py changes, hence I nominated him for Friends of the Tree. (fallen)
MakeMyDay should comment on the opt-out dialog, I think we should get it landed asap. bug 1130852 – Opt-Out dialog had some discussion on prefsRound Table wsmwk
- managed shipping of 31.6.0, 38.0b1, 38.0b2
- Core: Editor and font problems (three patches have review+ or have landed, one ongoing)
- bug 756984, bug 1141017, bug 1140105, bug 1154791
- Thunderbird: Font problems during compose, Mime problem, correspondents column
- bug 1139524, bug 1141446, bug 1148330, bug 1152706
- We have the beginnings of a business development group (rkent, wsmwk, magnus) that after signing NDAs will be given access to Thunderbird business documentation.
- bug 1134986 autocomplete bug investigated and landed on trunk +++
- still no mention at https://addons.mozilla.org/thunderbird/addon/extra-folder-columns that the addon should be disabled in TB38. Can anybody arrange for that? A comment and marking it incompatible in its manifest.
— PLEASE INCLUDE YOUR NICK with your bullet item —
- What happened to the Avocet branding? (Jorg K)
- won’t be persued
- Info about the meeting with Mitchell Baker on 20th March 2015, funding issues (Jorg K)
- http://mzl.la/1O9khi4 can we get hiro’s bugs reassigned so the patches contained can get landed, and not lost? (wsmwk)
- It would be great if some jetpack add-on support were available in thunderbird to share functionality with firefox and fennec. See also bug 1100644. No useful jetpack add-ons seem to exist for thunderbird (earlybird would be fine to use jpm over cfx). Are there any jetpack add-ons available to prove me wrong?
(pegasus) Is it worth looking at going to a 6-week release schedule to avoid the conundrum with getting not-quite-ready features in vs delaying?Support team
- Reminder: Roland is leaving Thunderbird May 12, 2015 after the release of Thunderbird 38: working on Thunderbird 38 plan and finally kickstarting Thunderbird User Success Council
- looking for 3 people: English KB Article Editor, L10N Coordinator and Forum Lead. Is that you we’re looking for? If so email rtanglao AT mozilla.com or ping :rolandtanglao in #sumo or #tb-support-crew
- PLEASE PUT THE NEXT MEETINGS IN YOUR (LIGHTNING) CALENDAR
- Note – meeting notes must be copied from etherpad to wiki before 5AM CET next day so that they will go public in the meeting notes blog.
- wsmwk to pat glandium
- wsmwk to email hiro’s bug list to tb-planning
- rkent to review tracking list
Common (excluding Website bugs)-specific: (6)
- Fixed: 1003196 – Add icons to more imip bar buttons
- Fixed: 1137673 – extra divider in the options menu of new task dialog
- Fixed: 1146500 – Wrong first occurrence for monthly recurrence with BYDAY and BYMONTHDAY
- Fixed: 1150707 – Make use of tags for running only icaljs/libcal tests
- Fixed: 1150882 – Lightning incorrectly unified after bug 1143163
- Fixed: 1151404 – Nightly Windows x64 lightning hits 404 when updating
Sunbird will no longer be actively developed by the Calendar team.
- Fixed: 768480 – Mac OSX TB 13 crashes in nsMsgDBFolder::CreateFileForDB when going online. Caused by folder subscribed on server that no longer exists?
- Fixed: 849540 – Log in to Gmail (IMAP/SMTP) using OAuth in backend
- Fixed: 939462 – Feature to count and show number of unread e-mails in subfolders should be optional. (because enumeration is slow)
- Fixed: 1054308 – Investigate switching Thunderbird comm-central MozMill tests to mozharness
- Fixed: 1130852 – Add opt-out notification for calendar integration
- Fixed: 1134234 – resource://app/modules/gloda/mimemsg.js should be resource:///modules/gloda/mimemsg.js in /mail/test/mozmill/shared-modules/test-message-helpers.js
- Fixed: 1134986 – Address autocomplete sorting wrong – appears to ignore recent use (popularityindex) information in 31.4.0+
- Fixed: 1138478 – ‘Write’ toolbar button disabled/greyed out after opening the menus in the Saved Files tab
- Fixed: 1139524 – Font indicator doesn’t update when cursor is placed in text with this font
- Fixed: 1140720 – Error reading font prefs in the Slovenian locale
- Fixed: 1145970 – Port Bug 1005105 to TB [Remove noise from tab textures]
- Fixed: 1145974 – Move more styles to shared addressbook.css
- Fixed: 1147006 – TB shows instructions with [File] – [Offline] – [Synchronize] instead of [Download/Sync Now]
- Fixed: 1147526 – Port Bug 1147311: migrateUI() should migrate font.language.group to a supported value
- Fixed: 1148369 – “invalid ‘in’ operand colState” when switching folders
- Fixed: 1148503 – TEST-UNEXPECTED-FAIL | toolkit/components/telemetry/tests/unit/test_TelemetryPing.js | xpcshell return code: 0
- Fixed: 1149275 – Ensure newly opened conversations get focused
- Fixed: 1150051 – C-C TB: EXCEPTION: formatted size is not numeric: ‘Read’
- Fixed: 1150073 – C-C TB: Exception: Found visible column ‘correspondentCol’ but was expecting ‘recipientCol’!
- Fixed: 1151223 – Reorder mail’s package-manifest.in to minimize differences to browser’s version
- Fixed: 1152045 – Email address missing from “From” field on emails sent through Thunderbird 38 if the identityName pref was set
- Fixed: 1152852 – Notification sound for highlights in chats not played if chat tab is selected, even when Thunderbird is not the currently active/focused application (in background)
- Fixed: 1153511 – TEST-UNEXPECTED_FAIL | check-sync-dirs.py | build file copies are not in sync: differing file: ./win32/mozconfig.vs2013-win64
- Fixed: 1153551 – Priority button : description missing
- Fixed: 1154799 – “this._browser.messageManager is undefined” error just by starting Thunderbird
- Fixed: 1156049 – Port ‘Bug 1155476 – Update sccache to 155c926’ to fix check-sync-dirs.py failure.
MailNews Core-specific: (30)
- Fixed: 306035 – mail server appended to usernames with “@” (Password dialog for IMAP says <alias>@<domain>@<mailserver> instead of <alias>@<domain> on(at/…) <mailserver>)
- Fixed: 662907 – web site from RSS feed not rendered correctly (due to noscript tags)
- Fixed: 810495 – Make the classes which use the XPCOM nsISupports implementation macros final, to avoid the warning about deleting using a pointer to a base class with virtual functions and no virtual dtor
- Fixed: 1123124 – Remove use of expression closures in mailnews/
- Fixed: 1126607 – Kill the LDAP build system
- Fixed: 1132218 – Update comm-central for PLDHashTable changes in bug 1131901
- Fixed: 1139167 – Some birthdays are off by one day in Thunderbird’s addressbook
- Fixed: 1139965 – Implement function to export addressbook in vCard format
- Fixed: 1140652 – deduplicate some JS code writing out a simple string to a file in profile
- Fixed: 1140884 – An error occurred while sending mail garbled
- Fixed: 1141735 – unaligned labels in the LDAP server Advanced properties tab
- Fixed: 1144621 – mimemsg.cpp might leak memory in some instances
- Fixed: 1144719 – Allow the user to decide whether or not to use libnotify for new-mail alerts on Linux
- Fixed: 1148887 – Message string for SMTP server connection error is incorrect. File: composeMsgs.properties, key: smtpSendRefused
- Fixed: 1148888 – Message string for SMTP server connection error is incorrect. File: composeMsgs.properties, key: smtpAuthNotSupported
- Fixed: 1148957 – Port bug 1148463 by backing out bug 1144128: temporarily disable new performance tools for Aurora uplift
- Fixed: 1149247 – remove deprecated for-each-in loops in the account manager and account wizard
- Fixed: 1150176 – Remove nsMemory::Alloc/Free/Realloc from c-c following their removal in bug 1134920
- Fixed: 1150967 – Port Bug 1147839 to comm-central – Fix building installer on mingw by only including helper.exe if mknsisu is used
- Fixed: 1150981 – Port Bug 674779 to comm-central – Add per-compartment CPU accounting
- Fixed: 1151002 – Port Bug 1120308 to comm-central – [Presentation WebAPI] control protocol establishment and offer-answer exchange
- Fixed: 1151181 – uninitialized error string in mailnews/extensions/mdn/src/nsMsgMdnGenerator.cpp
- Fixed: 1152287 – TEST-UNEXPECTED-FAIL | crypto | Failed to find the appropraite data_path
- Fixed: 1153187 – Build process is broken while reticulating splines “Variable SHARED_LIBRARY_LIBS” involved.
- Fixed: 1153543 – when adding a new identity, the smtp server menulist is collapsed with no default item selected
- Fixed: 1153557 – do away with preprocessing in am-identity-edit.js due to identity.autocompleteToMyDomain
- Fixed: 1154468 – unused function getServerIdAndPageIdFromTree in am-identity-edit.xul
- Fixed: 1155951 – Fix a non-array delete for scalars
- Fixed: 1155953 – Remove Structurally dead code in nsNNTPProtocol.cpp
- Fixed: 1155955 – remove a self assignment in nsImapUtils.cpp