mozilla

Mozilla Nederland LogoDe Nederlandse
Mozilla-gemeenschap

This Week In Rust: This Week in Rust 201

Mozilla planet - ti, 26/09/2017 - 06:00

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

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

Updates from Rust Community News & Blog Posts Crate of the Week

This week's crate is rustbreak, a crate providing simple single-file storage to e.g. persist settings. Thank you, Dieter Konrad for the suggestion!

Submit your suggestions and votes for next week!

Call for Participation

Always wanted to contribute to open-source projects but didn't know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!

Some of these tasks may also have mentors available, visit the task page for more information.

If you are a Rust project owner and are looking for contributors, please submit tasks here.

Updates from Rust Core

157 pull requests were merged in the last week

New Contributors
  • Basile Desloges
  • Bob Sun
  • James Tucker
  • Lucas Morales
  • Marcus Buffett
  • P.Y. Laligand
  • Romain Porte
Approved RFCs

Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:

Final Comment Period

Every week the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now. This week's FCPs are:

New RFCs

No new RFCs were proposed this week.

Upcoming Events

If you are running a Rust event please add it to the calendar to get it mentioned here. Email the Rust Community Team for access.

Rust Jobs

Tweet us at @ThisWeekInRust to get your job offers listed here!

Quote of the Week

A Box always holds exactly one thing, like a single large struct. A Vec holds zero to many things of exactly one type and can change over time. If you had to relate them, a Box is a Vec with one element that went to Neverland and forgot it could ever grow.

/u/zzyzzyxx on reddit.

Thanks to /u/l-arkham for the suggestion.

Submit your quotes for next week!

This Week in Rust is edited by: nasa42 and llogiq.

Categorieën: Mozilla-nl planet

Eric Rahm: Firefox Memory Usage in the Quantum Era

Mozilla planet - ti, 26/09/2017 - 02:09

This is a continuation of my Are They Slim Yet series. For background see my previous installment.

Firefox’s upcoming release 57 has a huge focus on performance. We’ve quantum-ed all the things but we haven’t really talked about memory usage, which is something that often falls by the wayside in the pursuit of performance. Luckily since we brought AWSY in tree it’s been pretty easy to track memory usage and regressions even on separate development branches. The Stylo team was a big user of this and it shows, we flipped the switch to enable Stylo by default around the 7th and you can see a fairly large regression, but by the 16th it was mostly gone:

Some great work has been happening lately to reduce Stylo's memory usage. https://t.co/TkwPKOQRT2 and https://t.co/C8x59Ur5IC have details.

— Nicholas Nethercote (@nnethercote) September 15, 2017

Hopefully I’ve convinced you we’ve put a lot of work into performance, now let’s see how we’re doing memory-wise compared to other browsers.

The methodology for the test is the same as previous runs: I used the ATSY project to load 30 pages and measure memory usage of the various processes that each browser spawns during that time.

The results Browser Memory Usage.<figcaption class="wp-caption-text">Memory usage of browsers across operating systems.</figcaption>

Edge has the highest memory usage on Windows, Chrome comes in with 1.4X the memory usage of Firefox 64-bit on Windows, about 2X Firefox on Linux. On macOS Safari is now by far the worst offender in memory usage, Chrome and Firefox are about even with Firefox memory usage having gone up a fair amount since the last time I measured.

Overall I’m pretty happy with where we’re at, but now that our big performance push is over I’d like to see us focus more on dropping memory usage so we can start pushing up the number of content processes. I’d also like to take a closer look into what’s going on on macOS as that’s been our biggest regression.

Browsers included are Edge 38 on Windows 10, Chrome Beta 62 on all platforms, Firefox Beta 57 on all platforms, and Safari Technology Preview 40 on macOS 10.12.6.

Note: I had to run the test for Safari manually again, they seem to have made some changes that cause all of the pages from my test to be loaded in the same content process.

Categorieën: Mozilla-nl planet

Air Mozilla: Mozilla Weekly Project Meeting, 25 Sep 2017

Mozilla planet - mo, 25/09/2017 - 20:00

Mozilla Weekly Project Meeting The Monday Project Meeting

Categorieën: Mozilla-nl planet

Air Mozilla: Mozilla Weekly Project Meeting, 25 Sep 2017

Mozilla planet - mo, 25/09/2017 - 20:00

Mozilla Weekly Project Meeting The Monday Project Meeting

Categorieën: Mozilla-nl planet

The Mozilla Blog: Adding More Policy Firepower to the Mozilla Network

Mozilla planet - mo, 25/09/2017 - 19:47
By Mark Surman and Cori Zarek

 

In June, Mozilla launched a new fellowship that brings together policy experts from around the world to advance crucial tech policy efforts. Today, we are excited to announce the appointment of seven advisors to help steer this fellowship into the future. We are also announcing one new fellow, bringing the cohort to 11 fellows from four countries who are already up to great work.

Over the past three months, Mozilla’s Tech Policy Fellows have been digging into their projects to keep the Internet open and freely accessible to all. With most fellows joining directly out of government service, they’re continuing to move forward some of the urgent policy efforts they had been leading, and working to avoid any backsliding that might come with government transitions.

The fellows’ work is focused on protecting net neutrality, advancing policies around artificial intelligence and the Internet of Things, promoting affordable broadband service for vulnerable communities, and more. Amba Kak is our most recent addition, starting this month to work on promoting net neutrality in India.

To advance this work, the fellows are meeting with policymakers inside and outside of government; they’re keynoting major events and giving press interviews about the importance of these topics; and in the coming weeks, they’ll share more about their work with the Mozilla network on our network blog.

To give guidance and support to the fellows, Mozilla formed an Advisory Board comprised of some of the world’s top experts and supporters of a free and open Internet.

These seven individuals living in six different countries bring deep expertise in privacy, net neutrality, intellectual property, and digital inclusion. They will serve as a resource to the fellows as they pursue their individual projects and to Mozilla as we refine and institutionalize this program.

The fellows and advisors will gather next month at MozFest, Mozilla’s annual celebration of the Internet. They will collaborate on the fellows’ work and the fellows will lead sessions on tech policy topics during the weekend-long festival.

The advisors will also work with us to identify the next cohort of Tech Policy Fellows in early 2018 and will advise the program and the fellows for the coming two years. We look forward to bringing them on board and getting to work to continue advancing tech policy around the globe.

Meet the Tech Policy Fellowship Advisory Board:

Celina Beatriz

Celina Beatriz has a Master’s Degree in Human Rights from Harvard University and an Undergraduate Degree in Law from Pontifical Catholic University (PUC-Rio). She is an expert on human rights and technology. She was a researcher at Human Rights Watch in New York and a Supervisor at the Human Rights Clinic in Fundação Getulio Vargas (FGV Rio). Celina was a consultant for the Harvard Human Rights Clinic, a researcher at ISER, and an Associate of the Children’s and Adolescent’s Rights Protection in Rio de Janeiro. Celina is currently developing research in the human rights and technology field. She is Project Director at the Institute for Technology & Society of Rio de Janeiro (ITS Rio).

 

Malavika Jayaram

Malavika Jayaram is the Executive Director of Digital Asia Hub, an independent, non-profit Internet and society research think tank based in Hong Kong, incubated by The Berkman Klein Center for Internet and Society at Harvard University. A practising technology lawyer for over 15 years, she spent eight years in London with global law firm Allen & Overy in the Communications, Media & Technology group, and as Vice President and Technology Counsel at Citigroup. While a partner at Jayaram & Jayaram, India, she was featured in the International Who’s Who of Internet e-Commerce & Data Protection Lawyers, and voted one of India’s leading lawyers.

Malavika taught India’s first course on information technology and law in 1997, and is now Adjunct Faculty at Northwestern University’s Pritzker School of Law, part of the Master of Science in Law program bridging STEM subjects and law. She has been a Fellow with the Centre for Internet & Society, India, since 2009, when she helped start their privacy work. She is on the Advisory Board of the Electronic Privacy Information Center (EPIC), and the Executive Committee of the IEEE Global Initiative for Ethical Considerations in Artificial Intelligence and Autonomous Systems.

 

Ronaldo Lemos

Ronaldo Lemos is an internationally respected Brazilian scholar and commentator on technology, intellectual property, and culture. He is a director of the Institute for Technology & Society of Rio de Janeiro (ITS Rio) and professor of law and innovation at the Rio de Janeiro State University (UERJ). He holds law degrees from University of Sao Paulo Law School and Harvard Law and has published a number of books and journal articles. He is currently a Visiting Professor at Columbia University’s School of International and Public Affairs. He has served as the project lead of Creative Commons Brazil since 2003. He is a non-resident visiting scholar with the MIT Media Lab and was a visiting fellow at Princeton University’s Center for Information Technology Policy (CITP) in 2011 and 2012. Lemos is a founder of Overmundo, for which he received the Prix Ars Electronica Golden Nica in the category of digital communities. Lemos was one of the creators of the Marco Civil, a law enacted in 2014 regulating the Internet in Brazil, protecting civil rights, privacy, and net neutrality. In 2015 he was appointed a Young Global Leader by the World Economic Forum. In 2016 he was appointed a fellow with Ashoka. Lemos serves as a board member in various organizations, such as the Mozilla Foundation and Access Now.

 

Alexander Macgillivray

Alexander Macgillivray, also know as “amac,” is curious about many things including law, policy, government, decision making, the Internet, algorithms, social justice, access to information, and the intersection of all of those. He was United States Deputy Chief Technology Officer for the last two years of the Obama Administration. He was Twitter‘s General Counsel, and head of Corporate Development, Public Policy, Communications, and Trust & Safety. Before that he was Deputy General Counsel at Google and created the Product Counsel team. He has served on the board of the Campaign for the Female Education (CAMFED) USA, was one of the early Berkman Klein Center folks, was certified as a First Grade Teacher by the State of New Jersey, and studied Reasoning & Decision Making as an undergraduate. These days he is doing a bunch of coding, writing, and short burst projects with organizations thinking about what they should be doing next.

 

Bitange Ndemo

Bitange Ndemo is an Associate Professor of Entrepreneurship at the University of Nairobi’s Business School. His research centers on the link between ICTs and small and medium enterprises in Kenya, with an emphasis on how ICTs influence economic development in Kenya.   Prof. Ndemo is an advisor to several organizations including the Better than Cash Alliance, a global initiative under UNCDF dedicated to promotion of cash alternatives; and the I-Hub, a premier innovation hub in Africa. He also sits on the Board of Research ICT Africa based in South Africa. He is a former Permanent Secretary of Kenya’s Ministry of Information and Communication, where he was credited with facilitating many transformative ICT projects. After years of developing the supply-side of broadband, he has now changed gears to demand-side through assisting start-ups in Africa and playing a key role building sustainable models of innovation hubs. Prof. Ndemo holds a PhD in Industrial Economics from the University of Sheffield in the UK, a Bachelor’s degree in Finance from the University of Minnesota, and an MBA from University of St. Thomas. He is an open data and big data evangelist, and dedicated to simplification / visualization of data for ordinary citizens to consume.

 

Rinalia Abdul Rahim

Rinalia Abdul Rahim is Managing Director and Chairman of Compass Rose Sdn Bhd. She has 20 years of experience in international development and ICT policy, where she focuses on the issues of access, empowerment, and governance. She currently serves as a member of the Board of Directors at the Internet Corporation for Assigned Names and Numbers (ICANN). From 2001-2008, she was Executive Director of the Global Knowledge Partnership (GKP), which she successfully positioned as the world’s first and leading multi-stakeholder initiative that promoted knowledge and ICT for Development (ICT4D).

From 1997-2001 she worked with the Malaysian Government in developing national ICT policies, strategies and programmes. Some of the strategies and framework were promoted as best practices by the United Nations Development Programme and were adopted by many developing countries across Asia, Africa, and the Middle East. She has held various advisory positions with international, regional, and national bodies, including agencies of the United Nations. She holds a Master’s in Public Policy from Harvard University and a Bachelor’s Degree in Political Science from Princeton University. She is certified in Corporate Governance by INSEAD. Raised in Malaysia, she has lived in the U.S., Hong Kong, Mainland China, and Singapore. She currently resides in Germany.

 

Nicole Wong

Nicole Wong specializes in assisting high-growth technology companies to develop international privacy and regulatory strategies. She previously served as Deputy U.S. Chief Technology Officer in the Obama Administration, focused on internet, privacy, and innovation policy. Prior to her time in government, Nicole was Google’s Vice President and Deputy General Counsel, and Twitter’s Legal Director for Products. She frequently speaks on issues related to law and technology, including five appearances before the U.S. Congress.

Nicole chairs the board of Friends of Global Voices, a non-profit organization dedicated to supporting citizen and online media projects globally. She also sits on the boards of WITNESS, an organization supporting the use of video to advance human rights, and Mozilla. Nicole currently serves as an advisor to the School of Information at the University of California, Berkeley, Harvard Business School Digital Initiative, the Democratic National Committee Cybersecurity Advisory Board, Refactor Capital, and the Albright Stonebridge Group.

The post Adding More Policy Firepower to the Mozilla Network appeared first on The Mozilla Blog.

Categorieën: Mozilla-nl planet

Adding More Policy Firepower to the Mozilla Network

Mozilla Blog - mo, 25/09/2017 - 19:47
By Mark Surman and Cori Zarek

 

In June, Mozilla launched a new fellowship that brings together policy experts from around the world to advance crucial tech policy efforts. Today, we are excited to announce the appointment of seven advisors to help steer this fellowship into the future. We are also announcing one new fellow, bringing the cohort to 11 fellows from four countries who are already up to great work.

Over the past three months, Mozilla’s Tech Policy Fellows have been digging into their projects to keep the Internet open and freely accessible to all. With most fellows joining directly out of government service, they’re continuing to move forward some of the urgent policy efforts they had been leading, and working to avoid any backsliding that might come with government transitions.

The fellows’ work is focused on protecting net neutrality, advancing policies around artificial intelligence and the Internet of Things, promoting affordable broadband service for vulnerable communities, and more. Amba Kak is our most recent addition, starting this month to work on promoting net neutrality in India.

To advance this work, the fellows are meeting with policymakers inside and outside of government; they’re keynoting major events and giving press interviews about the importance of these topics; and in the coming weeks, they’ll share more about their work with the Mozilla network on our network blog.

To give guidance and support to the fellows, Mozilla formed an Advisory Board comprised of some of the world’s top experts and supporters of a free and open Internet.

These seven individuals living in six different countries bring deep expertise in privacy, net neutrality, intellectual property, and digital inclusion. They will serve as a resource to the fellows as they pursue their individual projects and to Mozilla as we refine and institutionalize this program.

The fellows and advisors will gather next month at MozFest, Mozilla’s annual celebration of the Internet. They will collaborate on the fellows’ work and the fellows will lead sessions on tech policy topics during the weekend-long festival.

The advisors will also work with us to identify the next cohort of Tech Policy Fellows in early 2018 and will advise the program and the fellows for the coming two years. We look forward to bringing them on board and getting to work to continue advancing tech policy around the globe.

Meet the Tech Policy Fellowship Advisory Board:

Celina Beatriz

Celina Beatriz has a Master’s Degree in Human Rights from Harvard University and an Undergraduate Degree in Law from Pontifical Catholic University (PUC-Rio). She is an expert on human rights and technology. She was a researcher at Human Rights Watch in New York and a Supervisor at the Human Rights Clinic in Fundação Getulio Vargas (FGV Rio). Celina was a consultant for the Harvard Human Rights Clinic, a researcher at ISER, and an Associate of the Children’s and Adolescent’s Rights Protection in Rio de Janeiro. Celina is currently developing research in the human rights and technology field. She is Project Director at the Institute for Technology & Society of Rio de Janeiro (ITS Rio).

 

Malavika Jayaram

Malavika Jayaram is the Executive Director of Digital Asia Hub, an independent, non-profit Internet and society research think tank based in Hong Kong, incubated by The Berkman Klein Center for Internet and Society at Harvard University. A practising technology lawyer for over 15 years, she spent eight years in London with global law firm Allen & Overy in the Communications, Media & Technology group, and as Vice President and Technology Counsel at Citigroup. While a partner at Jayaram & Jayaram, India, she was featured in the International Who’s Who of Internet e-Commerce & Data Protection Lawyers, and voted one of India’s leading lawyers.

Malavika taught India’s first course on information technology and law in 1997, and is now Adjunct Faculty at Northwestern University’s Pritzker School of Law, part of the Master of Science in Law program bridging STEM subjects and law. She has been a Fellow with the Centre for Internet & Society, India, since 2009, when she helped start their privacy work. She is on the Advisory Board of the Electronic Privacy Information Center (EPIC), and the Executive Committee of the IEEE Global Initiative for Ethical Considerations in Artificial Intelligence and Autonomous Systems.

 

Ronaldo Lemos

Ronaldo Lemos is an internationally respected Brazilian scholar and commentator on technology, intellectual property, and culture. He is a director of the Institute for Technology & Society of Rio de Janeiro (ITS Rio) and professor of law and innovation at the Rio de Janeiro State University (UERJ). He holds law degrees from University of Sao Paulo Law School and Harvard Law and has published a number of books and journal articles. He is currently a Visiting Professor at Columbia University’s School of International and Public Affairs. He has served as the project lead of Creative Commons Brazil since 2003. He is a non-resident visiting scholar with the MIT Media Lab and was a visiting fellow at Princeton University’s Center for Information Technology Policy (CITP) in 2011 and 2012. Lemos is a founder of Overmundo, for which he received the Prix Ars Electronica Golden Nica in the category of digital communities. Lemos was one of the creators of the Marco Civil, a law enacted in 2014 regulating the Internet in Brazil, protecting civil rights, privacy, and net neutrality. In 2015 he was appointed a Young Global Leader by the World Economic Forum. In 2016 he was appointed a fellow with Ashoka. Lemos serves as a board member in various organizations, such as the Mozilla Foundation and Access Now.

 

Alexander Macgillivray

Alexander Macgillivray, also know as “amac,” is curious about many things including law, policy, government, decision making, the Internet, algorithms, social justice, access to information, and the intersection of all of those. He was United States Deputy Chief Technology Officer for the last two years of the Obama Administration. He was Twitter‘s General Counsel, and head of Corporate Development, Public Policy, Communications, and Trust & Safety. Before that he was Deputy General Counsel at Google and created the Product Counsel team. He has served on the board of the Campaign for the Female Education (CAMFED) USA, was one of the early Berkman Klein Center folks, was certified as a First Grade Teacher by the State of New Jersey, and studied Reasoning & Decision Making as an undergraduate. These days he is doing a bunch of coding, writing, and short burst projects with organizations thinking about what they should be doing next.

 

Bitange Ndemo

Bitange Ndemo is an Associate Professor of Entrepreneurship at the University of Nairobi’s Business School. His research centers on the link between ICTs and small and medium enterprises in Kenya, with an emphasis on how ICTs influence economic development in Kenya.   Prof. Ndemo is an advisor to several organizations including the Better than Cash Alliance, a global initiative under UNCDF dedicated to promotion of cash alternatives; and the I-Hub, a premier innovation hub in Africa. He also sits on the Board of Research ICT Africa based in South Africa. He is a former Permanent Secretary of Kenya’s Ministry of Information and Communication, where he was credited with facilitating many transformative ICT projects. After years of developing the supply-side of broadband, he has now changed gears to demand-side through assisting start-ups in Africa and playing a key role building sustainable models of innovation hubs. Prof. Ndemo holds a PhD in Industrial Economics from the University of Sheffield in the UK, a Bachelor’s degree in Finance from the University of Minnesota, and an MBA from University of St. Thomas. He is an open data and big data evangelist, and dedicated to simplification / visualization of data for ordinary citizens to consume.

 

Rinalia Abdul Rahim

Rinalia Abdul Rahim is Managing Director and Chairman of Compass Rose Sdn Bhd. She has 20 years of experience in international development and ICT policy, where she focuses on the issues of access, empowerment, and governance. She currently serves as a member of the Board of Directors at the Internet Corporation for Assigned Names and Numbers (ICANN). From 2001-2008, she was Executive Director of the Global Knowledge Partnership (GKP), which she successfully positioned as the world’s first and leading multi-stakeholder initiative that promoted knowledge and ICT for Development (ICT4D).

From 1997-2001 she worked with the Malaysian Government in developing national ICT policies, strategies and programmes. Some of the strategies and framework were promoted as best practices by the United Nations Development Programme and were adopted by many developing countries across Asia, Africa, and the Middle East. She has held various advisory positions with international, regional, and national bodies, including agencies of the United Nations. She holds a Master’s in Public Policy from Harvard University and a Bachelor’s Degree in Political Science from Princeton University. She is certified in Corporate Governance by INSEAD. Raised in Malaysia, she has lived in the U.S., Hong Kong, Mainland China, and Singapore. She currently resides in Germany.

 

Nicole Wong

Nicole Wong specializes in assisting high-growth technology companies to develop international privacy and regulatory strategies. She previously served as Deputy U.S. Chief Technology Officer in the Obama Administration, focused on internet, privacy, and innovation policy. Prior to her time in government, Nicole was Google’s Vice President and Deputy General Counsel, and Twitter’s Legal Director for Products. She frequently speaks on issues related to law and technology, including five appearances before the U.S. Congress.

Nicole chairs the board of Friends of Global Voices, a non-profit organization dedicated to supporting citizen and online media projects globally. She also sits on the boards of WITNESS, an organization supporting the use of video to advance human rights, and Mozilla. Nicole currently serves as an advisor to the School of Information at the University of California, Berkeley, Harvard Business School Digital Initiative, the Democratic National Committee Cybersecurity Advisory Board, Refactor Capital, and the Albright Stonebridge Group.

The post Adding More Policy Firepower to the Mozilla Network appeared first on The Mozilla Blog.

Categorieën: Mozilla-nl planet

Mozilla GFX: WebRender newsletter #5

Mozilla planet - mo, 25/09/2017 - 18:41

Hi there, time for newsletter number five. An important detail went under the radar (and didn’t get featured in the newsletter whenever it happened): APZ (async panning and zooming) got enabled by default with WebRender. If you are one of the fearless nightly users who is trying WebRender out, please reset the preference layers.async-pan-zoom.enabled to its default value (true). So to recap, in order to experience the future of Firefox graphics in all of its work-in-progressness, go to about:config and:

  • turn on gfx.webrender.enabled
  • turn on gfx.webrendest.enabled
  • turn on gfx.webrender.layers-free
  • turn on gfx.webrender.blob-images
  • if you are on Linux, turn on layers.acceleration.force-enabled
  • if you had already followed the steps from newsletter #1, turn layers.async-pan-zoom.enabled back on.

Again, some key parts of the WebRender integration are still in a very rough shape. The performance (let alone stability) is still far from reflecting the targets of this project and I wouldn’t advise using this configuration by default yet.

I started a series of posts about WebRender on this blog. You can read part 1 which is an introductory post that doesn’t actually talk about WebRender at all. The post presents a high level overview of the architecture of current web browsers, in order to give some keys to understand the designs that will be explained in subsequent publications. The next post in this series will come in a few weeks.

Notable WebRender changes
  • Glenn fixed sub-pixel positioning of glyphs. Text now matches how it looks in Gecko on MacOS.
  • Lee implemented support for font variations in font instances.
  • Markus found, diagnosed and worked around a driver bug with the GLSL compiler on mac integrated GPUs.
  • The blur shader was rewritten (this hasn’t been hooked up to Gecko yet).
Notable Gecko changes
  • Kats turned layers-free on for transform and transform-3d reftests
  • Jeff has been investigating the overhead of the pile of clips that we currently have. See issues #1731 and #1742.
  • Nical reduced the overhead of transferring large resources from the content process to WebRender.

Categorieën: Mozilla-nl planet

Nick Cameron: How the RLS works

Mozilla planet - mo, 25/09/2017 - 05:53

The Rust Language Server (RLS) is an important part of the plan to provide IDE support for Rust developers. In this blog post I'll try to explain how the RLS works.

The language server architecture for IDEs is a client/server architecture. It separates the concerns of editing and understanding a program. By providing a language server, we provide Rust knowledge over a 'standardised' protocol (the LSP) to editors, thus allowing many editors to support Rust at the cost (theoretically) of supporting a single editor. The LSP does not mandate any particular method of compilation, nor are you restricted to the protocol (it is extensible, although the more you make use of extensions, the more per-client work there is to do). So an IDE based on the LSP can be just as powerful as a monolithic IDE, but it also let's you get up and running quickly across multiple platforms.

The RLS provides the data required for code completion, goto definition, type/docs on hover, refactoring, etc. See my earlier blog post, what the RLS can do for more details.

The best way to try out the RLS is in Visual Studio Code. You can install the extension by opening the command palette and typing ext install rust.

Language Server Protocol

The Language Server Protocol (LSP) is an open, JSON protocol. It specifies how the language server (e.g., the RLS) and client communicate. There is a spec, if you want more details (it's essential reading for working on the RLS).

The LSP is based on JSON-RPC, which basically means we're sending JSON over stdio. The JSON part is pretty nice, the stdio bit has pros and cons. It is nice and simple, but one stray println in the server somewhere (or a dependent crate) and everything blows up. The whole thing is pretty high level and you never have to worry about missing messages, out-of-order messages, etc.

A useful feature is that you can print to the client's console from the server by writing to stderr.

The protocol messages are either requests or notifications - the former has an id and must get a response, the latter has no id and cannot be responded to. Both kinds of messages can be sent in both directions, but the majority of messages are sent from the client to the server.

The messages in the LSP are pretty high level and leave a lot up to the server. You can expect a notification for any significant event on the client (such as opening or changing a file), and a request for most user actions which require language knowledge (e.g., 'goto definition' triggers a request, and it is the same request as triggered by 'peek definition').

Let's look at an example - the hover request. This is triggered when the user hovers their cursor over a token in the editor. The request looks like (in real life there would be less whitespace):

{ "jsonrpc": "2.0", "id": 3, "method": "textDocument/hover", "params": { "textDocument": { "uri": "file:///Users/nick/version-controlled/chefi/src/main.rs" }, "position": { "line": 110, "character": 25 } } }

Since this is a request, there is an id. method describes the type of the message, in this case textDocument/hover indicates that the user is hovering the cursor. The params give the file and location where the user is hovering.

(There is actually a little bit more boilerplate to indicate the size of the message).

The response in this case is:

{ "jsonrpc": "2.0", "id": 3, "result": { "contents": [{ "language": "rust", "value": "slog::Logger" }], "range": null } }

The id matches the request. The interesting bit here is the value field which is what actually gets displayed in the tool tip when the client hovers. There is an array for results/contents so that we can provide information from multiple sources.

RLS requirements

From the client's perspective, the most fundamental requirement for the RLS is that it must handle LSP messages, and it must do so quickly. For actions like hover or code completion, the user expects very little latency.

In order to fulfill this requirement, the RLS needs to process Rust programs to get knowledge of those programs, then manage that knowledge and make it available with low latency.

Due to the complexity of the Rust language and resource constraints, the RLS uses the Rust compiler to understand Rust programs. 'Processing Rust programs' then comes down to managing builds.

For other functions, the RLS depends on other tools - Rustfmt for formatting requests and Racer for code completion requests. A key factor which makes this interesting is that the project may be being edited in the client without being saved to disk, so the RLS must also manage changes to files which have not been written to disk and ensure that the compiler, Rustfmt, and Racer see the current state of the project.

RLS architecture

The architectural components of the RLS are roughly:

  • server module, handle the mechanics of being an LSP server (including handling setup and tear-down messages),
  • actions module, handle user actions,
  • build module, manage Cargo and rustc,
  • analysis crate, manage data about a program, as supplied by the compiler,
  • virtual file system (vfs) crate, manage the state of the project files.

There are also some supporting crates:

  • languageserver-types statically typed model of the LSP in Rust,
  • rls-data schema of the data about a program sent from the compiler to the RLS (and other clients, such as the new Rustdoc),
  • rls-span represent locations and ranges in the source code (this is surprisingly complicated and can give rise to a lot of subtle and annoying bugs).

To see how the above all fit together, let's go through a user scenario: the user is typing, then moves the cursor over an identifier to find the type. On every keystroke, the editor will send a textDocument/didChange notification to the RLS; since these are notifications, there are no replies. When the user puts the cursor over the identifier, the editor will send a textDocument/hover request, which the RLS will reply to (see above). The messages will be received in order by the RLS via stdin.

The server module listens to stdin, processes a message and its params, and forwards the message to the action module for handling. This all happens sequentially, the advantage of this is that we don't have to deal with out of order messages. The disadvantage is that an action can block the server indefinitely. Therefore, anything even remotely long-running should be done in its own thread.

The actions module is a collection of action handlers, plus some utility functions. The textDocument/didChange notifications are handled by the DidChange handler. The change is recorded in the VFS (virtual file system), and then the handler requests a build. Any build or long-running VFS action will spawn a new thread, so at this point the RLS is ready to process the next message on the main thread.

If the user is typing fast, then we'll end up with multiple build requests in a very short space of time. It does not make sense to start a build for each of these requests. The build module decides whether to start a build or not, and if it does start a build, it coordinates the building process. As we add support for workspaces, this is getting much more complex, but I'll stick to the single-crate story here.

A goal of the RLS is to finish a build as soon as possible so the user can get up to date information with low latency. However, we don't want to waste CPU time on builds that won't be useful, or burn through too much of the user's battery. Most of the time, information which is a few keystrokes out of date is fine. Therefore, we never do more than one build at a time. We also have no way to cancel a build. So, for most build requests, we wait a short time to see if we get a more up to date request before building. Thus, in this example we will only start a single build, once the user has finished typing.

On startup or if the user changes settings, the RLS does a 'cargo' build, otherwise (such as in the user scenario) the RLS does a 'rustc' build. For a 'cargo' build, the RLS runs Cargo in process, doing the equivalent of cargo check. Rather than calling rustc, we force Cargo to call our own compiler shim, which uses the compiler as a library but sets some options which would otherwise be unstable (the shim is actually the RLS with an env var set). For the primary crate, we intercept the call to rustc, record the arguments and env vars, and schedule a 'rustc' build.

A 'rustc' build compiles a crate by using rustc as a library compiled into the RLS. This lets us pass changed files from the VFS to rustc and to return data from rustc to the RLS, both without writing to disk.

For every crate, the RLS collects data about the compiler's analysis of the crate. For dependent crates we write and read this to/from disk (to avoid rebuilding where possible). For the primary crate, the data is passed in memory. The format of the data is specified by the rls-data and rls-span crates. The RLS passes the raw data to the rls-analysis crate which does some processing (e.g., cross-referencing definitions and references) and saves the data in memory (in a collection of hash tables).

When the RLS receives the textDocument/hover request, it does not wait for the build to complete. If necessary, it will use the existing data from a previous build. The Hover action must use the VFS to compute the correct position in the document, it can then look up information about a token in rls-analysis. This is usually very quick. The action handler produces a response, and the server module serialises the response and sends it to the editor via stdout.

Helping out

Let us know if you encounter any problems by filing issues on the RLS repo.

If you'd like to help by writing code, tests, or docs, then have a look at the repos for the RLS, our VSCode extension, or rustw. Or come ask questions on IRC in #rust-dev-tools or on Gitter.

Useful links:

Categorieën: Mozilla-nl planet

Cameron Kaiser: TenFourFox FPR3 available

Mozilla planet - mo, 25/09/2017 - 02:43
TenFourFox Feature Parity Release 3 is now available (downloads, hashes, release notes), after much delay due to Floodgap's gateway crapping its pants on Friday night. You'll be interested to know that it's a PowerPC too, by the way (a Motorola Freescale e300 series microcontroller, roughly equivalent to a 603e). There's a reason I have an SLA, which is to have a tech dispatched to Floodgap HQ in the dead of night to reflash the firmware which is specific to my ISP, but it also meant I spent Friday evening twiddling my thumbs instead of applying security patches. Sorry about that.

The fix for issue 72 did not stick, unfortunately, so I backed it out and replaced it with additional debugging code (thus, there is also a Debug version). Other than completing the rest of the relevant security updates, there are no other changes relative to the FPR3 beta. As usual expect this to go live tomorrow night sometime Pacific.

For FPR4, I have another large AltiVec upgrade in mind, and I would like to take a first pass at CSS Grid support and maybe also WOFF2 updates. In addition, because of the impending release of Firefox 57 "Judgment Day for XUL" this will be the first release of TenFourFox to have the "Get Add-ons" tab removed, since the Mozilla-specific pages will be hawking WebExtensions. You can still install old-style XUL addons compatible with the underlying Gecko 45 infrastructure; they'll just be something you have to separately download from AMO or whatever. While I might reintroduce this tab in the future, right now I don't have enough time to maintain a full-service legacy add-on site myself. However, if this is something Someone(tm) wants to work on and they can meet the technical requirements (and make a commitment to hosting it for an indefinite period), we can talk about it and see if you're the right fit for our community. Open a ticket on Github if you're that person.

Categorieën: Mozilla-nl planet

Cameron Kaiser: JAEUA (Just another endangered Universal application), or, the three heads of Tutti II

Mozilla planet - sn, 23/09/2017 - 01:00
On this blog, Universal doesn't mean that watered-down 32-bit/64-bit Intel nonsense. It means actually running on multiple system architectures, like 68K and PowerPC in the "fat binary" days, or PowerPC and Intel at the dawn of the OS X i386 era (as OS X has always been able to do even when Marklar was a skunkworks project thanks to NeXTSTEP).

So here's another one. I maintain an emulator of the first home computer I ever had as a kid, the Tomy Tutor, called Tutti II (the original Tutti was actually a simulator for the Commodore 64, and I wrote that too). It descends from an earlier emulator written for Windows called TutorEm which was conveniently SDL-based, so I made some endian fixes for PowerPC and ported it to OS X with some fixes and new features. Download it and play with the demo tape images on the page. It runs on any Mac that can run 10.4 or later, PowerPC or Intel. It runs just dandy on my Sierra-based i7 MacBook Air all the way down to my Tiger-based Sawtooth G4.

The point of this blog post isn't (merely) shameless self-promotion, though; there are some technical points I want to make too. Tutti II isn't just a Universal PowerPC/Intel app; it's actually a three-headed chimera. While the SDL dylib it uses is a relatively pedestrian ppc and i386 Universal library, if you run lipo on the core tutti executable itself you'll find three architectures: one for ppc750 (i.e., G3), one for ppc7400 (i.e., G4), and one for i386 (Intel 32-bit).

Why are there three versions? Because AltiVec. If you look at the source code, you'll find conditional defines for AltiVec acceleration mostly within the TMS 9918A video chip emulation which are used for bitmap splats and scales. This is part of what enables it to run well even on my 1GHz iMac G4. In fact, given that the Mach-O field for number of architectures is a 32-bit integer, you are likely to run out of file offset space (also a 32-bit integer) in a multi-architecture binary long before you run out of actual and artificial architectures to cram in it. Mac OS X looks at the binary and if your system has Intel, runs the Intel portion. If it's PowerPC and it has AltiVec, it runs the AltiVec version, and failing that, the G3 version. No runtime checking is required within the code itself. (The only reason I haven't bothered to do a ppc7450 or ppc970 version too and make it five-headed is because it runs so fast already they're not likely to yield much, if any, noticeable benefit.)

The second point is that this is made much easier because everything is 32-bit. Although Tutti II is mostly Cocoa-based internally and probably could be made to build 64-bit, Xcode 2.5 doesn't support 64-bit Intel compilation, the Universal 10.4 SDK is only 32-bit, and the specific 32-bit SDL 1.2.14 version I use occupies a narrow sweet spot where it uses CoreGraphics instead of QuickDraw for forward compatibility while still functioning on PowerPC 10.4. But, because it's 32-bit, I can build the entire app from the G5 on 10.4 with that library and everything easily descends from almost exactly the same code base. This may no longer be possible after macOS 10.14, whatever it's called (I'm hoping for "macOS Arvin"), ends the ability to run "32-bit applications without compromise." Apple doesn't say what that compromise might be, but my guess is either that the operating system will not include 32-bit components and they will be a separate download for some transitional period (like Rosetta in 10.6), or Intel Carbon applications will be entirely unsupported, as there is no 64-bit Carbon, or maybe even both. Apple may also choose to completely remove things like Intel QuickDraw at the same time, which hasn't been supported since 10.4 but does still run on current versions of macOS, and is only really meaningful for Carbon also. After these pieces are completely decommissioned, you'll have to run High Sierra or Snow Leopard in a VM, I suppose.

As I've mentioned before, this is bad for Power Macs because other than PowerPC bigots like me, what residual PowerPC application support remains is largely due to the fact it works without additional effort and it's more work to remove it than not to bother. I suspect many cross-builders have some old Power Mac or early Intel Mac in a corner with an Xcode that just happens to still build for PowerPC, and the binary it spits out still "just works" on modern Macs, so they leave it alone. Even codesigning didn't really change this much because these cross-platform builders don't like paying the Apple developer tax as much as I don't, so they don't need it (Tutti II is also not a signed application, and probably never will be). Once this is no longer possible, however, these builders will probably just remove PowerPC support entirely since it won't be compatible with newer versions of Xcode, so start preserving source code archives where you find them so you can maintain and build it yourself.

In my case, since I'm planning to move to POWER9 on Linux instead of whatever the next Mac Pro turns out to be, when 32-bit Mac apps are gone completely that will mean the end of Tutti II on current versions of macOS. There will still be a build for Power Macs, but since I'm actually looking into cross-compiling it for Windows, rather than chugging out a special 64-bit macOS build and maintaining it separately I'll just make current Mac users run the 32-bit Windows binary in WINE. That's just less work for me and satisfies my internal curmudgeon, so there.

Look for TenFourFox FPR3 final probably tomorrow or Sunday, depending on when the build cycle finishes.

Categorieën: Mozilla-nl planet

Julien Vehent: On the prevalence of cross-site scripting (XSS) attacks in modern web applications

Mozilla planet - fr, 22/09/2017 - 20:08

As I attended AppSec USA in Orlando, a lot of discussions revolved around the OWASP Top 10. Setting the drama aside for a moment, there is an interesting discussion to be had on the most common vulnerabilities found in current web applications. The Top 10 from 2013 and 2017 (rc1) hasn’t changed much: first and foremost are injection issues, then broken auth and session management, followed by cross-site scripting attacks.

Screenshot_20170922_090147.png

At first glance, this categorizing appears sensible, and security teams and vendors have depended on it for over a decade. But here’s the issue I have with it: the data we collect from Mozilla’s web bug bounty program strongly disagrees with it. From what we see, injection and authentication/session attacks are nowhere near as common as cross-site scripting attacks. In fact, throughout 2016 and 2017, we have received over five time more XSS reports than any other vulnerability!

Screenshot_20170922_073440.png

This is certainly a huge difference between our data and OWASP's, but Mozilla's dataset is also too small to draw generalities from. Thankfully, both Bugcrowd and Hackerone have published reports that show a similar trend.
In their 2017 report, Bugcrowd said "cross-site scripting (XSS) and Cross Site Request Forgery (CSRF) remain the most reported submissions across industries accounting for 25% and 7% of submissions respectively. This distribution very closely reflects last year’s findings (XSS 25% and CSRF 8%).".
Hackerone went further in their report, and broke the vulnerability stats down by industry, saying that “in all industries except for financial services and banking, cross-site scripting (XSS, CWE-79) was the most common vulnerability type discovered by hackers using the HackerOne platform. For financial services and banking, the most common vulnerability was improper authentication (CWE-287). Healthcare programs have a notably high percentage of SQL injection vulnerabilities (6%) compared to other industries during this time period”.


This data confirms what we’re seeing at Mozilla, but to be fair, not everyone agrees. Whitehat also published their own report where XSS only ranks third, after insufficient transport layer protection and information leakage. Still, even in this report, XSS ranks higher than authentication/authorization and injection issues.


All three sources that shows XSS as the most prevalent issue come from bug bounty programs, and there is a strong chance that bug bounty reporters are simply more focused on XSS than other attacks. That said, when looking at modern web applications (and Mozilla’s web applications are fairly modern), it is rare to find issues in the way authentication and authorization is implemented. Most modern web frameworks have stable and mature support for authentication, authorization, access controls, session management, etc. There’s also a big trend to rely on external auth providers with SAML or OpenID Connect that removed implementation bugs we  saw even 4 or 5 years ago. What about non-xss injections? We don’t get that many either. In the handful of services that purposely accept user data, we’ve been paranoid about preventing vulnerabilities, and it seem to have worked well so far. The data we get from security audits, outside of bug bounties, seem to confirm that trend.


In comparison, despite continued efforts from the security community to provide safe escaping frameworks like Cure53’s DOMPurify or Mozilla’s Bleach, web applications are still bad at escaping user-provided content. It’s hard to blame developers here, because the complexity of both the modern web and large applications is such that escaping everything all the time is an impossible goal. As such, the rate of XSS in web applications has steadily increased over the last few years.


What about content security policy? It helps, for sure. Before we enabled CSP on addons.mozilla.org, we had perhaps one or two XSS reports every month. After enabling it, we hardly get one or two per year. For sure, CSP bypass is possible, but not straightforward to achieve, and often sufficient to fend off an attacker (see screenshots from security audit reports below). The continued stream of XSS reports we receive is from older applications that do not use CSP, and the data is a strong signal that we should continue pushing for its adoption.
Screenshot_20170922_133931.png
So, how do we explain the discrepancy between what we’re seeing at Mozilla, Bugcrowd and Hackerone, and what other organizations are reporting as top vulnerabilities? My guess is a lot of vendors are reviewing very old applications that are still vulnerable to issues we’ve solved in modern frameworks, and that Mozilla/Bugcrowd/Hackerone mostly see modern apps. Another possibility is those same vendors have no solutions to XSS, but plenty of commercial solutions to other issues, and thus give them more weight as a way to promote their products. Or we could simply all have bad data and be drawing wrong conclusions.

Regardless of what is causing this discrepancy, there’s evidently a gap between what we’re seeing as the most prevalent issues, and what the rest of the security community, and particularly the OWASP Top 10, is reporting. Surely, this is going to require more digging, so if you have data, please do share it, so we can focus security efforts on the right issues!



Thank you to Greg Guthe and Jonathan Claudius for reviewing drafts of this blog post

Categorieën: Mozilla-nl planet

Air Mozilla: End of RGSoC 2017 - Celebration

Mozilla planet - fr, 22/09/2017 - 18:00

End of RGSoC 2017 - Celebration Rails Girls Summer of Code is an award-winning scholarship program aiming to foster diversity in Open Source since 2013. Selected teams receive a three-month scholarship...

Categorieën: Mozilla-nl planet

Justin Dolske: Photon Engineering Newsletter #16

Mozilla planet - fr, 22/09/2017 - 09:23

Time to get your groove on! It’s Photon Newsletter #16!

But first. Do you remember the 21st night of September? As of today (September 21st) Firefox 57 has passed its penultimate milestone by entering Beta. This is a pretty big deal, as it means many millions of users on Beta will soon experience all the awesomeness that’s packed into 57. Note that Beta builds won’t actually go out until next week, on the 26th. But if you’re running Developer Edition, we’ve already pushed out an early sneak-peek!

Did I mention that Developer Edition also got a snazzy new Firefox icon? It’s nice. And blue.

firefox-logo-developer-edition

The past week has been very busy as we’ve been doing a major burst of bug triage, just to make sure we’re not missing any already-reported critical issues. The front-end teams went through nearly 600 untriaged bugs in just a few days! The good news is that we didn’t find anything alarming, which matches up with our general impression that 57 is shaping up to be a really solid release.

Recent Changes Menus/structure: Animation:
  • Investigation is ongoing into bug 1397092, where a user has reported an interesting case of high cpu usage possibly caused by the new tab loading indicator
  • The tab loading indicators are now synchronized, so when multiple tabs are loading the “bouncing balls” move left and right in unison.
    sync
  • The Animation team is shifting focus to help with polish bugs in the Visual Redesign and Menus/structure areas, as most remaining animation bugs are lower priority.
Preferences:
  • All P1 bugs landed – MVP feature-complete!
  • Added a setting to bring back the search box. With 57 it won’t be added to newly created profiles, but can be restored through Customize Mode. By adding additional preferences UI we hope to make is as easy as possible to get it back for anyone wondering where it went.
    searchprefs
  • Did a UI review, and landed a batch of polish fixes to address a number of minor issues found.
  • Deferred the loading of some information to improve the amount of time it takes to open the main Preferences page.
Visual redesign: Onboarding: Performance:
  • Fixed a white flash in the content area when opening new tabs and new windows, which made things look janky.
  • Separately, fixed a flickering in the awesomebar results when updating search suggestions.
  • We had to disable tab warming when hovering tabs, because it caused more regressions than we are comfortable fixing for 57. We are now planning to ship this significant perf improvement in 58.
  • Our dashboards show very good wins on all things we measure when comparing 55 to 57. Eg. startup is about 50% faster in 57 than it was in 55!
  • Not planning any further significant performance work for 57, to avoid risk of causing regressions. We are starting to look at what improvements can go into 58/59, and where we should put performance efforts in the longer term.

That’s all for now. There are only a few more weeks for us to do more polish work in 57 Beta, so there will probably only be a few more Engineering Newsletters as well. (But fear not, there’s been such positive response to these newsletters that we’ll likely continue them post-Photon in some form.)


Categorieën: Mozilla-nl planet

The Mozilla Blog: Tracking Protection for Firefox for iOS Plus Multi-Tasking in Focus for Android New Today

Mozilla planet - to, 21/09/2017 - 15:00

Across the industry, September is always an exciting month in mobile, and the same is true here at Mozilla.

Today, we’re launching the newest Firefox for iOS alongside an update for the popular Firefox Focus for Android, which we launched in June.

What’s new with Firefox for iOS:

Tracking Protection: Rejoice! For the first time, Firefox users running iOS11 on iPhone and iPad will now have automatic ad and content blocking with Private Browsing mode, as well as the tracking protection option in regular browsing. This feature uses the same ad blocking technology as Firefox Focus for Android and iOS, Firefox for Desktop and Firefox for Android. We’re always looking to bring the latest features to our users, and we’re finally able to deliver it to Firefox for iOS thanks to changes by Apple to enable the option for 3rd party browsers.

Improved Syncing: We’ve offered the ability for users to sync desktop content like passwords, history and bookmarks to mobile, and today we’re enhancing Firefox sync so content on your mobile now syncs back to your desktop.

To get the latest version of Firefox for iOS, on the App Store.

What’s new with Focus for Android:

Multiple Tabs: While simplicity is the name of the game for Firefox Focus, we’ve been listening to you and made the private browsing experience even better with the addition of multitasking support. This means users now have the ability to open multiple web pages at a time and easily switch between tabs in the same session.

You can download Firefox Focus for Android on Google Play.

The post Tracking Protection for Firefox for iOS Plus Multi-Tasking in Focus for Android New Today appeared first on The Mozilla Blog.

Categorieën: Mozilla-nl planet

Tracking Protection for Firefox for iOS Plus Multi-Tasking in Focus for Android New Today

Mozilla Blog - to, 21/09/2017 - 15:00

Across the industry, September is always an exciting month in mobile, and the same is true here at Mozilla.

Today, we’re launching the newest Firefox for iOS alongside an update for the popular Firefox Focus for Android, which we launched in June.

What’s new with Firefox for iOS:

Tracking Protection: Rejoice! For the first time, Firefox users running iOS11 on iPhone and iPad will now have automatic ad and content blocking with Private Browsing mode, as well as the tracking protection option in regular browsing. This feature uses the same ad blocking technology as Firefox Focus for Android and iOS, Firefox for Desktop and Firefox for Android. We’re always looking to bring the latest features to our users, and we’re finally able to deliver it to Firefox for iOS thanks to changes by Apple to enable the option for 3rd party browsers.

Improved Syncing: We’ve offered the ability for users to sync desktop content like passwords, history and bookmarks to mobile, and today we’re enhancing Firefox sync so content on your mobile now syncs back to your desktop.

To get the latest version of Firefox for iOS, on the App Store.

What’s new with Focus for Android:

Multiple Tabs: While simplicity is the name of the game for Firefox Focus, we’ve been listening to you and made the private browsing experience even better with the addition of multitasking support. This means users now have the ability to open multiple web pages at a time and easily switch between tabs in the same session.

You can download Firefox Focus for Android on Google Play.

The post Tracking Protection for Firefox for iOS Plus Multi-Tasking in Focus for Android New Today appeared first on The Mozilla Blog.

Categorieën: Mozilla-nl planet

Nick Cameron: These Weeks in Dev-Tools, issue 2

Mozilla planet - to, 21/09/2017 - 09:53

2017-09-20

Welcome to the 2nd issue of these weeks in dev-tools! We've had a bunch of tools releases, some new people joining the team, and some accepted RFCs. We're also just getting into the impl period. We're hoping the impl period can be a time where we really push forward on Rust tools. There's lots of interesting issues, so pick one, chat to a mentor, and get stuck in!

These Weeks in Dev-Tools will keep you up to date with all the exciting dev tools news. We plan to have a new issue every few weeks. If you have any news you'd like us to report, please comment on the tracking issue.

If you're interested in Rust's developer tools and want to contribute or ask questions, come chat to us in #rust-dev-tools.

News
  • We got a website for finding Rust issues to work on - lots of tools issues!
  • @fitzgen and @matklad have become full members of the dev-tools team. @tromey has become a dev-tools peer for debuggers. Announcement.
  • Clippy and Rustfmt were added to rust-lang/rust repo as submodules. This is the first step towards better stability by running their tests on Rust's CI and distribution with Rustup.
  • The RLS is now available in beta. Install it with rustup component add rls-preview. It should hit stable with version 1.21. The rls component is being renamed to rls-preview on nightly too.
  • A Rust Docker image was upstreamed by @sfackler.
  • rust-semverver is a tool for automatically checking semver adherence.
  • Rustdoc produces docs for the std libs for all platforms (including Windows!) - #43348
  • @booyaa gave a talk on the RLS
  • @Xanewok is giving a talk about the RLS at Rustfest.
  • Clippy has new lints: infinite_iter, maybe_infinite_iter, and naive_bytecount.
  • Bindgen can time its phases (thanks to @jhod0!) - --time-phases.
Releases RFCs
  • 1615 - Let Cargo [and other tools] put data into platform-specific directories - almost ready for FCP
  • 1946 - intra-rustdoc links - merged!
  • 1990 - add external doc attribute to rustc - merged!
  • 2103 - attributes for tools - merged!
  • 2117 - debuggable macro expansions - ready for experimental implementation
Meetings
Categorieën: Mozilla-nl planet

The Firefox Frontier: DO NOT PANIC: How to reopen a closed tab

Mozilla planet - wo, 20/09/2017 - 20:26

It was a really good tab. The kind you save for later. But then OMGNO! You accidentally closed it. All is not lost. It’s an easy process to reopen a … Read more

The post DO NOT PANIC: How to reopen a closed tab appeared first on The Firefox Frontier.

Categorieën: Mozilla-nl planet

Dave Townsend: Even more new peers

Mozilla planet - wo, 20/09/2017 - 19:33

Please welcome the latest new peers to Firefox and Toolkit:

  • Johann Hofmann
  • Nihanth Subramanya

As you might gather I’ve been updating the peer list a lot lately trying to catch up with reality. If there is anyone I’m missing then please let me know!

Categorieën: Mozilla-nl planet

The Mozilla Blog: Stand Up for Net Neutrality: Help Paperstorm the FCC

Mozilla planet - wo, 20/09/2017 - 19:24
Mozilla’s activism website Paperstorm makes standing up for net neutrality simple. All you have to do is click — a lot

 

In the U.S., net neutrality is under attack.

Ajit Pai, current Chairman of the FCC, put it bluntly: “We need to fire up the weed whacker” and remove rules like net neutrality, he said recently.

To keep net neutrality (and a healthy internet) intact, Mozilla is deploying Paperstorm, our activism website developed alongside design studio Moniker.

Over the next several weeks, we’re asking American internet users to send a salvo of tweets to Chairman Pai.  How? Visit Paperstorm.it and start clicking. Each click drops a digital leaflet on the FCC’s headquarters in Washington, D.C. Drop enough leaflets and you can trigger a tweet to Pai.

We’re asking Americans to Paperstorm the FCC

Paperstorm is a tongue-in-cheek website. But from past net neutrality efforts, we know that a loud chorus of voices can make an impact. And we need to make an impact quickly: Pai and the FCC commissioners are expected make a net neutrality decision in late fall or early winter of this year.

A net neutrality refresher

In May of this year, Pai introduced his proposal to undo net neutrality by re-re-classifying Internet Service Providers (ISPs) from Title II to Title I under the Communications Act of 1934.

What this means: Under Pai’s proposal, ISPs would be allowed to block, throttle and prioritize (or deprioritize) internet access for Americans. Companies like Comcast and AT&T could selectively slow down or speed up access to online journalism, blogs, films, apps, and other services. This would undo 2015’s hard-won net neutrality protections that took years of hard work.

Net neutrality may seem like an abstract issue, but its impact is anything but. Without it, the internet becomes less open. No net neutrality means fewer opportunities for startups and entrepreneurs, and a chilling effect on innovation, free expression and choice online.

Mozilla Chief Legal and Business Officer Denelle Dixon gives real-life examples of a web without net neutrality: “In the past, without net neutrality protections, ISPs have imposed limits on who can FaceTime and determined how we stream videos, and also adopted underhanded business practices.”

About Paperstorm

Paperstorm is a digital activism website that urges Pai and the FCC to keep net neutrality intact.

When users visit Paperstorm, they’ll see an aerial view of the FCC headquarters on 12th Street SW in Washington, D.C. With each click of the mouse, users drop a digital leaflet that reads:

A Paperstorm leaflet

What do these leaflets do? When you drop enough, you can generate a tweet to Pai. Alone, you might drop a small stack of leaflets and send a handful of tweets to Pai. But together, we can drop millions of leaflets and launch tens of thousands of tweets.

Paperstorm is a collaboration between Mozilla and the Amsterdam-based, Webby award-winning design studio Moniker. This is the first time Mozilla and Moniker have deployed Paperstorm in the U.S. Earlier this year, Mozilla and Moniker deployed Paperstorm in the EU to demand common-sense copyright reform — we dropped 60,000,000 leaflets and sent 12,000 tweets to lawmakers.

Part of a larger movement

Millions of Americans across party lines support net neutrality. Over the past several months, more than 22 million net neutrality comments have been filed in the FCC’s docket, the vast majority in support of net neutrality.

On July 11, hundreds of organizations banded together in a Day of Action to amplify Americans’ voices. From the ACLU and Amazon to Github and Mozilla, organizations voiced loud support for a free and open internet.

 Read about Mozilla’s past net neutrality advocacy.

The post Stand Up for Net Neutrality: Help Paperstorm the FCC appeared first on The Mozilla Blog.

Categorieën: Mozilla-nl planet

Stand Up for Net Neutrality: Help Paperstorm the FCC

Mozilla Blog - wo, 20/09/2017 - 19:24
Mozilla’s activism website Paperstorm makes standing up for net neutrality simple. All you have to do is click — a lot

 

In the U.S., net neutrality is under attack.

Ajit Pai, current Chairman of the FCC, put it bluntly: “We need to fire up the weed whacker” and remove rules like net neutrality, he said recently.

To keep net neutrality (and a healthy internet) intact, Mozilla is deploying Paperstorm, our activism website developed alongside design studio Moniker.

Over the next several weeks, we’re asking American internet users to send a salvo of tweets to Chairman Pai.  How? Visit Paperstorm.it and start clicking. Each click drops a digital leaflet on the FCC’s headquarters in Washington, D.C. Drop enough leaflets and you can trigger a tweet to Pai.

We’re asking Americans to Paperstorm the FCC

Paperstorm is a tongue-in-cheek website. But from past net neutrality efforts, we know that a loud chorus of voices can make an impact. And we need to make an impact quickly: Pai and the FCC commissioners are expected make a net neutrality decision in late fall or early winter of this year.

A net neutrality refresher

In May of this year, Pai introduced his proposal to undo net neutrality by re-re-classifying Internet Service Providers (ISPs) from Title II to Title I under the Communications Act of 1934.

What this means: Under Pai’s proposal, ISPs would be allowed to block, throttle and prioritize (or deprioritize) internet access for Americans. Companies like Comcast and AT&T could selectively slow down or speed up access to online journalism, blogs, films, apps, and other services. This would undo 2015’s hard-won net neutrality protections that took years of hard work.

Net neutrality may seem like an abstract issue, but its impact is anything but. Without it, the internet becomes less open. No net neutrality means fewer opportunities for startups and entrepreneurs, and a chilling effect on innovation, free expression and choice online.

Mozilla Chief Legal and Business Officer Denelle Dixon gives real-life examples of a web without net neutrality: “In the past, without net neutrality protections, ISPs have imposed limits on who can FaceTime and determined how we stream videos, and also adopted underhanded business practices.”

About Paperstorm

Paperstorm is a digital activism website that urges Pai and the FCC to keep net neutrality intact.

When users visit Paperstorm, they’ll see an aerial view of the FCC headquarters on 12th Street SW in Washington, D.C. With each click of the mouse, users drop a digital leaflet that reads:

A Paperstorm leaflet

What do these leaflets do? When you drop enough, you can generate a tweet to Pai. Alone, you might drop a small stack of leaflets and send a handful of tweets to Pai. But together, we can drop millions of leaflets and launch tens of thousands of tweets.

Paperstorm is a collaboration between Mozilla and the Amsterdam-based, Webby award-winning design studio Moniker. This is the first time Mozilla and Moniker have deployed Paperstorm in the U.S. Earlier this year, Mozilla and Moniker deployed Paperstorm in the EU to demand common-sense copyright reform — we dropped 60,000,000 leaflets and sent 12,000 tweets to lawmakers.

Part of a larger movement

Millions of Americans across party lines support net neutrality. Over the past several months, more than 22 million net neutrality comments have been filed in the FCC’s docket, the vast majority in support of net neutrality.

On July 11, hundreds of organizations banded together in a Day of Action to amplify Americans’ voices. From the ACLU and Amazon to Github and Mozilla, organizations voiced loud support for a free and open internet.

 Read about Mozilla’s past net neutrality advocacy.

The post Stand Up for Net Neutrality: Help Paperstorm the FCC appeared first on The Mozilla Blog.

Categorieën: Mozilla-nl planet

Pages