Category

Blog

OpenJS Foundation AMA: Node.js Certifications

By AMA, Blog, Certification, Node.js

In this AMA, we discussed the benefits of the OpenJS Node.js certification program. The certification tests a developer’s knowledge of Node.js and allows them to quickly establish their credibility and value in the job market. Robin Ginn, OpenJS Foundation Executive Director, served as the moderator. David Clements, Technical Lead of OpenJS Certifications, and Adrian Estrada, VP of Engineering at NodeSource, answered questions posed by the community. The full AMA is available at the link below: 

The OpenJS Foundation offers two certifications: OpenJS Node.js Application Developer (JSNAD) and OpenJS Node.js Services Developer (JSNSD). The Application Developer certification tests general knowledge of Node.js (file systems, streams etc.). On the other hand, the Services Developer certification asks developers to create basic Node services that might be required by a startup or enterprise. Services might include server setup and developing security to protect against malicious user input. 

In the talk, Clements and Estrada discussed why they created the certifications. They wanted to create an absolute measure of practical skill to help developers stand out and ease the difficulties of hiring for the industry. To that end, OpenJS certifications are relatively cheap and applicable to real world problems encountered in startup and enterprise environments. 

A timestamped summary of the video is available below: 

Note: If you are not familiar with the basics of the two certifications offered by the OpenJS Foundation, jumping to the two bolded sections may be a good place to start.

AMA Topics

Introductions 0:20

How did the members start working together? 2:35

How did work on the certifications start? 5:07

Is it possible to have feedback on the exam? 9:50

Applications of psychometric analysis 12:26

What is the Node.js Application Developer certification + Services Developer certification? 14:54

How do you take the exam? What should you expect? 18:22

Will there be differential pricing between countries? 22:04

How is the criteria for new npm packages chosen? 24:55

Are test takers able to use Google or mdn? 31:52

What benefits do OpenJS certifications have for developers? 33:22

How to use the certification after completion 39:43

What are the exam principles? 40:56

How much experience is required for the exam? 44:12 

Course available in Chinese 49:09

How will new Node versions affect the certifications? 53:43 

Closing thoughts 56:35

Node.js announces new mentorship opportunity

By Blog, Node.js

This post was written by A.A. Sobaki and the Node.js Mentorship Initiative. It first appeared on the project’s blog. Node.js is an Impact Project at the OpenJS Foundation.

The Node.js Mentorship Initiative is excited to announce a new mentee opening! We’d like to invite experienced developers to apply to join the Node.js Examples Initiative.

If you’re not familiar, the Examples Initiative’s mission is to build and maintain a repository of runnable, tested examples that go beyond “hello, world!” This is an important place to find practical and real-world examples of how to use the runtime in production.

Being a part of the Examples Initiative is a big opportunity. As a mentee, you will work with and learn from industry leaders and world-class software engineers. You will receive personalized guidance as you write code that will serve as a template for countless developers as they begin to use Node.js in their projects.

To get started, complete the application and coding challenge linked below. The coding challenge is a chance to showcase your skills. It is estimated it will take between 2–4 hours to complete the challenge.

Click the link to get started.

We look forward to receiving your application.

Michael Dawson elected Community Director

By Announcement, Blog

The OpenJS Foundation is delighted to announce that Michael Dawson has been elected to the OpenJS Board as the CPC Director, a community representation seat.  

Chosen by the Cross Project Council, Michael brings a wealth of experience to the board having acted as the Node.js Project TSC Chair, a member of the Node.js Community Committee, being an active contributor to the Node.js Project and being active on the CPC. Michael previously held the Node.js representative seat on the Board. This community seat replaces that designation.

In a statement provided to the community via GitHub, Michael says, “My goal as a board member is to bring the perspective of the foundation projects and greater community to the board while ensuring the needs of foundation projects are considered in the decisions that are made.”

Additionally, in being elected, Micahel plans to prioritize communication between the board and community, seek input on board decisions, and help champion broader and longer-term initiatives that are important to the success of the foundation. 

As a community representative to the OpenJS Board, Michael looks forward to taking what he’s learned from his work with Node.js, the CPC and recent collaborator summits to represent the broader community. Michael adds, “I look forward to broadening my role and representing more projects. In my role as the Node.js Board rep, the TSC and Comm Comm found board updates helpful. This could be beneficial for other projects and I would be happy to work to find the right way to provide these updates.”

Michael is IBM’s community lead for Node.js, where he works to coordinate and lead the work of IBM’s teams that contribute to the Node.js community.  He also works to support IBM’s many initiatives to provide great deployment options (public and private) for Node.js, ensuring the tools and products IBM delivers provide a first class experience for Node.js developers and supporting IBM’s internal and customer Node.js deployments.

Michael is based in Ottawa, Ontario, Canada. Outside of the office he enjoys playing badminton and softball as well as kayaking and paddle boarding. Extracurriculars also include building things with 3d printers, cnc machines, soldering irons and building apps to make daily life more fun.

Project Update: Official AMP Plugin for WordPress

By AMP, Announcement, Blog, Project Update

Success with WordPress,
powered by AMP

The missions of the WordPress and AMP open source projects are very well aligned. AMP, a growth project at the OpenJS Foundation, seeks to democratize performance and the building of great page experiences, which is at the core of WordPress’ goal of democratizing web publishing. 

Today the AMP team is very excited to release v2.0 of the Official AMP Plugin for WordPress! Lots of work went into this release, and it is loaded with many improvements and new capabilities in the areas of usability, performance, and flexibility. Read on to learn more, or check out the official AMP Blog for the full release notes.

AMP brings “performance-as-a-service” to WordPress, providing out-of-the-box solutions, a wide range of coding and performance best practices, always up-to-date access to the latest web platform capabilities, and effective control mechanisms (e.g. guard rails) to enable consistently good performance. AMP’s capabilities, and the guard rails it provides allow WordPress creators to take advantage of the openness and flexibility of WordPress while minimizing the amount of resources needed to be invested in developing and maintaining sites that perform consistently well. 

The Official AMP Plugin for WordPress is developed and maintained by AMP project contributors to bring the pillars of AMP content publishing at the fingertips of WordPress users, by:

  1. Automating as much as possible the process of generating AMP-valid markup, letting users follow workflows that are as close as possible to the standard workflows on WordPress they are used to.
  2. Providing effective validation tools to help dealing with AMP incompatibilities when they happen, including aspects of identifying errors, contextualizing them, and reporting them accurately.
  3. Providing support for AMP development to make it easier for WordPress developers to build AMP compatible ecosystem components, and build websites and solutions with AMP-compatibility built in.
  4. Supporting the serving of AMP pages on Origin, making it easier for site owners to take advantage of mobile redirection, AMP-to-AMP linking, minimization of AMP validation issues to surfaced in Search Console, and generation of optimized AMP pages by default.
  5. Providing turnkey solutions for segments of WordPress creators and publishers to be able to go from zero to AMP content generation in no time, regardless of technical expertise or availability of resources. 

To learn more about the AMP in WordPress, please check the release post on the official AMP Project Blog. If you haven’t tried it already, download the plugin today and get started on the path of consistently great performance for your WordPress site! And, if you are interested in becoming a contributor to the AMP Plugin for WordPress, you can engage with us in the AMP plugin github repository

Fastify: Graduation, performance and the future

By Blog, Fastify, Project Update

Fastify is moving from Incubation stage to a Growth Project! Within the OpenJS Foundation, this is a major step forward.

New projects at OpenJS start as incubation projects while maintainers complete the on-boarding checklist to join the Foundation. This includes documenting its infrastructure, transferring the IP, and adopting the OpenJS Code of Conduct. When a project graduates, they’ve readied their project for Foundation support. At OpenJS, we share best practices and reduce redundant administrative work across projects, such as non-technical governance, to help projects grow.

The Cross Project Council (CPC) centralizes coordination among projects as well as certain technical governance and moderation processes, and oversees the progression of projects between stages of their life cycles. Fastify has passed all of its requirements and we are happy to welcome them as a Growth Project!

To find out more about Fastify and what’s next, we talked with Matteo Collina, one of the Lead Maintainers of the Fastify team, Technical Director at NearForm, Node.js Technical Steering Committee member and OpenJS Foundation Cross Project Council member.

Are there any benchmarks that people should pay attention to regarding web performance?

I often say that “performance does not matter, until it absolutely does.” Most websites and applications do not need to be fast or scale to thousands of servers. Most developers at small and big companies alike will not (and should not) care about performance at all. Their bigger concerns are maintainability and speed of delivery. As a result, applications become bigger and slower.

As an example, a lot of developers care only about the latency of a single request when the server is idle, completely avoiding the latency and load introduced by server-side processing. Providing a snappy user experience requires both the front end and the backend to work in concert and play to each other strengths.

What are the most important metrics people should pay attention to with regard to web performance (faster networks, run time)?

The most important metric for Node.js applications is event loop latency. We define this as the time needed to process some part of an incoming http request. The higher the throughput of our application, the smaller this needs to be. Let’s make a quick example. Let’s imagine a Node.js server that can process an http request in 10 milliseconds of CPU time. Do you think this server is fast? Given that most deployments have 1 CPU per container (or even less), we can say that a single container can process around 100 requests per second.

However, we cannot say if our server is fast or slow, as it depends on the load. If our server will receive less than 100 req/sec it would appear snappy and “fast.” But if it’s over 100 req/sec, the service will now “lag behind” and the latency of every request will start increasing.

Fastify helps deploy Node.js applications at scale by applying some load-shedding techniques in the under-pressure plugin. Essentially if the server is busy it will start rejecting requests: the load balancer will try to serve them from another instance.

Now that Fastify has graduated incubation, what’s next for the project in terms of big milestones?

We’ll rest and recover! The last few months has been a race to ship Fastify v3, and now we are graduating!

It’s time to start planning Fastify v4 for 2021.

OpenJS World Keynote Series: Exploring the History of JavaScript

By Blog, OpenJS World

During the OpenJS Foundation global conference OpenJS World, Alex Williams at The New Stack had the opportunity to hear from one of the leaders in the JavaScript world, Allen Wirfs-Brock. 

Allen Wirfs-Brock served as project editor for the ECMAScript Language Specification, the international standard that defines the latest version of the JavaScript programming language. Fortunately for developers, Brock has greatly improved JavaScript through his contributions to EcmaScript 5, 5.1 and 6. Alex Williams, founder of The New Stack, interviewed Brock to review the history of JavaScript and understand how relatively unusual practices became fundamental to the language.

First-time developers often incorrectly assume that JavaScript has something to do with Java. Brock explains that Netscape, the producers of JavaScript, and Sun Microsystems, the producers of Java, formed a partnership in 1995 to combat Microsoft’s advances into the web market. JavaScript was originally positioned to be a simple scripting language companion for the more robust Java language, even though the two languages had many differences. 

The naming convention aside, JavaScript quickly outgrew its “companion” status and became a powerful development tool. However, Brock recounts how the language was initially developed with a “worse is better” mentality in order to quickly take advantage of an emerging web platform. Despite its problems, JavaScript continued to grow even as “reformation” attempts tried and failed to fix the language. 

To end the talk, Brock explains how he approached JavaScript’s issues in 2008, and managed to fix many of the issues the language had. His work at EcmaScript was a counterintuitive, but ultimately successful process that provided a way to move forward and build upon the existing framework. 

You can find the Keynote broken down by section below: 

Introduction 0:00

History of Programming Conference 0:27

JavaScript: The Most Misunderstood Programming Language 1:33

Netscape + Java = Dead Windows 3:12

Early Impacts of JavaScript 04:19

Unique/Key Players in Early JavaScript 06:05

“Worse is Better” 7:27

Browser Game Theory Developing 7:55

Diverging Design Efforts 10:24

The Failed JavaScript Reformation 12:04

Improving JavaScript: Early Failures 13:53

Moving Forward: EcmaScript 3.1 (renamed 5) 15:58

The Present and Future of JavaScript 17:05

Conclusion 19:15

OpenJS World Keynote: How not to Save the World with Tech

By Blog, OpenJS World

Earlier this summer, Kris Borchers hosted an interview with Dr. Joy Rankin, the author of A People’s History of Computing in the US. The interview spans everything from Dr. Rankin’s path, experience researching the history of programming, the Oregon Trail game, and how her research is being used to improve diversity in companies. This empowering keynote can help serve people – particularly young women – interested in STEM to feel impassioned about the world of computing, as well as can help shed light on the way that networks have been formed around computing. 

You can watch the full interview here: 

Full Video Here

Introductions (0:00)

Creativity (2:50)

Other Networks (10:30)

Women in Computing  (15:45)

How to Learn More (20:00)

Conclusion (24:00)

During the OpenJS Foundation global conference, OpenJS World, we heard from many inspiring leaders. In this keynote series, we will highlight the key points from the keynote videos. 

Ajv Joins OpenJS Foundation as an Incubation Project

By Announcement, Blog, Project Update

Today, Ajv, a JSON Schema validator for both server-side and client-side JavaScript applications, has entered into public incubation at the OpenJS Foundation. Ajv is a key part of the JavaScript ecosystem, used by a large number of web developers with millions of projects depending on it indirectly, via other libraries. 

In addition to becoming an incubating project, Ajv was recently awarded a grant from Mozilla’s Open Source Support (MOSS) program in the “Foundational Technology” track. This grant is continued validation for the important role Ajv plays within the JavaScript ecosystem and will help ensure this work continues. 

“A diverse set of widely used open source projects is why we exist and how our community continues to thrive,” said Robin Ginn, OpenJS Foundation Executive Director. “It’s great when these projects recognize the value of being part of the OpenJS community and benefit from what we are creating here. I’m thrilled to welcome Ajv as an incubation project to the OpenJS Foundation and excited to support its open development among web developers.”

Ajv is a leading JSON Schema validator that is highly specification compliant, supporting JSON Schema drafts 4 to 7. Ajv is also extensible via custom keywords and plugins, and is one of the fastest JSON Schema validators. Additionally, Ajv gets 120 million monthly downloads on npm. Many projects within the OpenJS Foundation use Ajv including webpack, ESlint, and Fastify.

“As CPC chair, I’m really happy that Ajv has become an incubating project at the OpenJS Foundation,” said Joe Sepi, OpenJS Foundation Cross Project Council Chair. “Ajv is an important project within the JavaScript open source space — many of our own projects already use it. This is an important step for Ajv and I, along with the entire CPC, am excited Ajv is taking this step with the OpenJS Foundation.”

“As Ajv’s CPC liaison, the person who helps guide potential projects through the application process, I’m excited for what’s to come for Ajv’s within the OpenJS Foundation,” said Dylan Schiemann, CEO at Living Spec and co-creator of Dojo. “As an incubating project, AJV has a unique opportunity to continue its path toward sustainability and growth. As a user of AJV and an early advocate for JSON Schema, we’re super excited to work with the project and support its growth as part of the OpenJS Foundation.”

“Ajv has become a centerpiece of all data-validation logic in my open-source projects and businesses. It’s spec-compliant, extensible, fast and has amazing support. Ajv joining the OpenJS Foundation will greatly benefit the entire JavaScript ecosystem,” said Gajus Kuizinas, CTO of Contra.

“I’ve been developing Ajv since 2015 and it is nice to see it being so widely used – it would never have happened without almost 100 contributors and a much larger number of users. Both the OpenJS Foundation and Mozilla grant will help Ajv become a permanent fixture in the JavaScript ecosystem – I am really looking forward to the next phase of Ajv development,” said Evgeny Poberezkin, the developer of Ajv.

By joining the OpenJS Foundation, there are multiple organizational and infrastructure areas that will be better supported. Furthermore, Ajv will be able to ensure governance and Code of Conduct enforcement to make sure that Ajv will continue to be stable. Joining will also help Ajv to grow and gain contributors, and potentially help with wider enterprise adoption through greater confidence and overall stability for the project.

As a collaborative project with transparency-first principles, the OpenJS Foundation is happy to welcome Ajv as an incubation project and looks forward to the many successes the project will have within its new home.

Start Contributing Now!

If you’d like to help build Ajv, you can start by looking at the Contributing Guidelines. Documentation, Issues, Bug Reports and lots more can be found here. Every contribution is appreciated! Please feel free to ask questions via Gitter chat.

Node.js Promise reject use case survey

By Blog, Node.js, Survey

This post was contributed by the Node.js Technical Steering Committee.

The Node.js Project, an impact project of the OpenJS Foundation, handles unhandled rejections by emitting a deprecation warning to stderr. The warning shows the stack where the rejection happened, and states that in future Node.js versions unhandled rejections will result in Node.js exiting with non-zero status code. We intend to remove the deprecation warning, replacing it with a stable behavior which might be different from the one described on the deprecation warning. We’re running a survey to better understand how Node.js users are using Promises and how they are dealing with unhandled rejections today, so we can make an informed decision on how to move forward.

To learn more about what unhandled rejections are and potential issues with it, check out the original post.  Those interested in helping the TSC solve this are encouraged to participate in the survey, which will close on August 24th. 

OpenJS Foundation welcomes two new board members from GitHub and Netflix

By Announcement, Blog
OpenJS Foundation Logo

The OpenJS Foundation today welcomes two new members to the Board: Myles Borins from GitHub and Guilherme Hermeto from Netflix.

Myles Borins

Myles Borins is a staff product manager at GitHub where he helps to product manage the npm CLI as well as other cloud integrations. No stranger to open source governance, Myles previously served on the OpenJS Foundation Board as a Platinum Director representing Google, and previous to that, served as the Technical Steering Committee elected director on the Node.js Foundation Board. Myles is an involved and active member of the OpenJS and Node.js communities as well as a TC39 Co Chair and Delegate, representing GitHub and Microsoft. Myles received his BA from Ontario College of Art and Design and his Master’s degree from Standford. As the Silver Board Director, Myles is excited to represent a new group of individuals, the silver members, at the board and to continue to support OpenJS as a center of gravity for vendor-neutral collaboration on core JavaScript Open Source Software.

Guilherme Hermeto
Guilherme Hermeto

Guilherme Hermeto, a Senior Platform Engineer at Netflix, is joining the board as an End User Director. In his role at Netflix, Guilherme helps to design and develop the company’s internal serverless Node.js platform, which powers the Netflix user interface as well as web application infrastructure that supports the company’s content production. In addition, Guilherme serves as a Netflix delegate to TC39. In his role as a board member, Guilherme hopes to leverage his experience as a user of many OpenJS projects to represent the end-users’ views. Guilherme earned his Associates from Universidade do Sul de Santa Catarina.

The End User Board position is new this year. Netflix has a large-scale Node.js deployment that serves as the front door for the majority of the Netflix consumer product experiences. The engineering team also used other OpenJS projects across its company, including LoDash, Mocha, and ESLint. 

“It is a pleasure welcoming Myles and Guilherme to the OpenJS Foundation board, as I know both will bring a wealth of experience and passion for Javascript to our mission,” said Todd Moore, OpenJS Foundation Board Chairperson. “We’ve experienced such great momentum, from launching new certifications and trainings, to onboarding new projects, and having these two talented professionals will only help us to continue facilitating collaboration within the JavaScript development community.”

“It’s an exciting time for the OpenJS Foundation as our community continues to grow,” said Robin Ginn, OpenJS Foundation Executive Director. “A strong board of directors is an important component of the overall success of the Foundation and I’m so happy to welcome Myles and Guilherme to the board. These trusted leaders will help the Foundation and drive broad adoption and ongoing development of key JavaScript solutions and related technologies.”

The OpenJS Foundation is thrilled to welcome Myles and Guilherme and is honored to have them on the board.