SlideShare uma empresa Scribd logo
1 de 32
Discover. Collaborate. Deploy.
What’s Next
Michael Dawson
Gibson Fahnestock
Please Note
• IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal
without notice at IBM’s sole discretion. Information regarding potential future products is intended to
outline our general product direction and it should not be relied on in making a purchasing decision.
• The information mentioned regarding potential future products is not a commitment, promise, or
legal obligation to deliver any material, code or functionality. Information about potential
future products may not be incorporated into any contract.
• The development, release, and timing of any future features or functionality described for
our products remains at our sole discretion I/O configuration, the storage configuration,
and the workload processed. Therefore, no assurance can be given that an individual
user will achieve results similar to those stated here.
2/* Discover. Collaborate. Deploy. */
About Michael Dawson
IBM Runtimes/IBM Node.js Community Lead
Node.js collaborator
Chair of Technical Steering Committee (TSC)
Community Committee member
Active in many working groups/teams
●Benchmarking
●Build
●Release
●N-API
●Diagnostics
●Security-wg
●User Feedback
Twitter: @mhdawson1
GitHub: @mhdawson
Linkedin: https://www.linkedin.com/in/michael-dawson-6051282
/* Discover. Collaborate. Deploy. */ 3
About Gibson Fahnestock
IBM Runtimes SDK Lead
Node.js collaborator
Node.js Technical Steering Committee member
Version 8.x release lead
Active in many working groups/teams
●Build
●Release
●Moderation
Twitter: @gibfahn
GitHub: @gibfahn
Linkedin: https://www.linkedin.com/in/gibfahn/
/* Discover. Collaborate. Deploy. */ 4
Overview
• Learn how to fish
• High level predictions
• Releases
• Working Groups/Teams
• Strategic Initiatives
• Foundation Initiatives
• Wrap-up and Questions
/* Discover. Collaborate. Deploy. */ 5
Go Fishing, How to track What’s Next
• Releases
• Twitter https://twitter.com/gibfahn/lists/node-js-news
• GitHub Fire Hose
• Working Groups/Teams
• Strategic Initiatives
• Foundation Initiatives
/* Discover. Collaborate. Deploy. */ 6
https://nodejs.org
https://github.com/nodejs
https://foundation.nodejs.org
https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md
https://github.com/nodejs/community-committee/blob/master/STRATEGIC-INITIATIVES.md
https://nodejs.org/calendar
High Level Predictions
More user feedback efforts
N-API and http2 out of experimental
Emphasis on Diagnostics
New Nightly Benchmarks
Progress on security triage for 3rd party modules
Functional testing for 3rd
party modules (CiTGM)
Continued increase in velocity of consuming V8 updates
Progress on ES6 Modules
Promisification of Core
/* Discover. Collaborate. Deploy. */ 7
Releases - Process
Release Types
• Canary
• Nightlies
• Current
• Every 6 months
• Even releases promoted to LTS
• LTS
• Every 12 months
• 30 Months support (18 active, 12 maintenance)
‘Notable Changes’ in release notes good way to see what’s
coming
/* Discover. Collaborate. Deploy. */ 8
Releases - Schedule for 2018
/* Discover. Collaborate. Deploy. */ 9
Working Groups
/* Discover. Collaborate. Deploy. */ 10
Working Groups - Build/Automation
Key Goals
Support infrastructure to deliver Node.js
What’s Next
More automation tools/scripts
Changes to supported OS levels
Incremental platform test coverage
Dropping coverage for older OS’s
Addition of newer OS’s
Requirement for higher gcc levels
/* Discover. Collaborate. Deploy. */ 11
https://github.com/nodejs/node/blob/master/BUILDING.md
Working Groups - Release
Key Goals
Predicable, regular Release
Stable releases
What’s Next
No major changes planned to release process
More automation
Increase/improve safety net
Easier to find/consume releases
Slight reduction of what flows into SemVer minor releases.
/* Discover. Collaborate. Deploy. */ 12
Working Groups - Benchmarking
Key Goals
Avoid Regressions
Track and Evangelize gains between releases
How ?
Define Use Cases
Identify/Build Benchmarks
Run/Capture results
What’s Next
New workloads, promises?
/* Discover. Collaborate. Deploy. */ 13
https://github.com/nodejs/benchmarking
Working Groups - Security-wg
Key Goals
Define and Document security policies
Help implement those policies
Progress last year
Documented initial processes
Became CVE issuing authority (CNA)
Defined initial processes for 3rd party vulnerability management
What’s Next
Complete ramp up of team to triage 3rd party vulnerabilities
Become CVE issuer for 3rd party modules?
Early access program?
Bug Bounty Program?
/* Discover. Collaborate. Deploy. */ 14
Working Groups - Diagnostics
Key Goals
First class
●Tracing
●Profiling
●Heap and memory analysis
●Step debugging
●Post mortem analysis
What’s Next
Hardening of Async Hooks
Greater integration (node-report, heapdump, llnode metadata maintenance)
Leveraging new trace engine
Post mortem with promises
Testing
/* Discover. Collaborate. Deploy. */ 15
https://github.com/nodejs/diagnostics/issues/121
Strategic Initiatives
/* Discover. Collaborate. Deploy. */ 16
Strategic Initiatives - Community Building
Mentorship Initiative
Node.js People Everywhere
Node Together
/* Discover. Collaborate. Deploy. */ 17
Strategic Initiatives - User Feedback
Surveys
Regular meeting with end users
Enterprise Advisory Board
/* Discover. Collaborate. Deploy. */ 18
Strategic Initiatives - Http2
• Major revision of HTTP
• Experimental status, but no flag
• 2 new APIs
• Core API
• Compatibility API
• Uses Nghttp2
• Expect to exit experimental in 2018
/* Discover. Collaborate. Deploy. */ 19
https://nghttp2.org/
Strategic Initiatives - Modules
• Context
• Node.js has pre-existing module system
• ES6 Standardized new module system
• Goals
• Browser compatible ES6 implementation (as possible)
• Co-existence with existing module system
• Experimental version in Node.js master
/* Discover. Collaborate. Deploy. */ 20
--experimental-modules
https://nodejs.org/api/esm.html
export function test() {
console.log('Hello');
}
import { test } from
'./helloTest.mjs';
test();
module.exports = function() {
console.log('Hello');
}
const test =
require('./helloTest.js');
test();
Strategic Initiatives - N-API
Look for N-API to exit Experimental in 2018
/* Discover. Collaborate. Deploy. */ 21
#include <node_api.h>
napi_value RunCallback(napi_env env, const napi_callback_info info) {
napi_status status;
size_t argc = 1;
napi_value args[1];
status = napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
napi_value cb = args[0];
napi_value argv[1];
status = napi_create_string_utf8(env, "hello world", NAPI_AUTO_LENGTH, argv);
napi_value global;
status = napi_get_global(env, &global);
napi_value result;
status = napi_call_function(env, global, cb, 1, argv, &result);
return nullptr;
}
https://nodejs.org/dist/latest/docs/api/n-api.html
https://github.com/nodejs/node-addon-api
Strategic Initiatives - Error Messages
• Add error code – error.code
• toString()
• Error[error-code]: message
• Changes to message !SemVer major
/* Discover. Collaborate. Deploy. */ 22
https://medium.com/the-node-js-collection/node-js-errors-
changes-you-need-to-know-about-dc8c82417f65
Strategic Initiatives - Async Hooks
• Context across Asynchronous calls
/* Discover. Collaborate. Deploy. */ 23
function init(asyncId, type, triggerAsyncId, resource) { }
function before(asyncId) { }
function after(asyncId) { }
function destroy(asyncId) { }
function promiseResolve(asyncId) { }
const asyncHook = async_hooks.createHook({ init, before, after, destroy, promiseResolve });
asyncHook.enable();
asyncHook.disable();
https://nodejs.org/api/async_hooks.html
FSEVENTWRAP, FSREQWRAP, GETADDRINFOREQWRAP, GETNAMEINFOREQWRAP, HTTPPARSER,
JSSTREAM, PIPECONNECTWRAP, PIPEWRAP, PROCESSWRAP, QUERYWRAP, SHUTDOWNWRAP,
SIGNALWRAP, STATWATCHER, TCPCONNECTWRAP, TCPSERVER, TCPWRAP, TIMERWRAP, TTYWRAP,
UDPSENDWRAP, UDPWRAP, WRITEWRAP, ZLIB, SSLCONNECTION, PBKDF2REQUEST,
RANDOMBYTESREQUEST, TLSWRAP, Timeout, Immediate, TickObject
Strategic Initiatives - Core Promise APIs
• Initial promise support
• util.promisify
• util.callbackify
• Initial experimentation promised based APIs in core
• fs
/* Discover. Collaborate. Deploy. */ 24
https://github.com/nodejs/node/pull/18297
Strategic Initiatives - New Stream APIs
• Several versions over the years
• A fresh look to find a better approach
• Very early in process, little to say…
/* Discover. Collaborate. Deploy. */ 25
Strategic Initiatives - Workers
Computation blocks all requests
Some Current Solutions
• Multiple Instances Node.js
• Offloading
• Native add-ons
Goal is to make it easier/more efficient
Options
Web Workers API (from browser land)
New APIs
Processes/Threads
/* Discover. Collaborate. Deploy. */ 26
https://github.com/nodejs/worker
Foundation Initiatives
/* Discover. Collaborate. Deploy. */ 27
Foundation Initiatives
End User Feedback
Industry Neutral Certification
Interaction among the JS Ecosystem
/* Discover. Collaborate. Deploy. */ 28
Summary and Questions
/* Discover. Collaborate. Deploy. */ 29
Notices and disclaimers
• © 2018 International Business Machines Corporation. No part of this
document may be reproduced or transmitted in any form without
written permission from IBM.
• U.S. Government Users Restricted Rights — use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM.
• Information in these presentations (including information relating to
products that have not yet been announced by IBM) has been
reviewed for accuracy as of the date of initial publication and could
include unintentional technical or typographical errors. IBM shall have
no responsibility to update this information. This document is
distributed “as is” without any warranty, either express or implied. In
no event, shall IBM be liable for any damage arising from the use of
this information, including but not limited to, loss of data, business
interruption, loss of profit or loss of opportunity. IBM products and
services are warranted per the terms and conditions of the
agreements under which they are provided.
• IBM products are manufactured from new parts or new and used
parts.
In some cases, a product may not be new and may have been
previously installed. Regardless, our warranty terms apply.”
• Any statements regarding IBM's future direction, intent or product
plans are subject to change or withdrawal without notice.
• Performance data contained herein was generally obtained in a
controlled, isolated environments. Customer examples are presented
as illustrations of how those
• customers have used IBM products and the results they may have
achieved. Actual performance, cost, savings or other results in other
operating environments may vary.
• References in this document to IBM products, programs, or services
does not imply that IBM intends to make such products, programs or
services available in all countries in which IBM operates or does
business.
• Workshops, sessions and associated materials may have been
prepared by independent session speakers, and do not necessarily
reflect the views of IBM. All materials and discussions are provided for
informational purposes only, and are neither intended to, nor shall
constitute legal or other guidance or advice to any individual
participant or their specific situation.
• It is the customer’s responsibility to insure its own compliance
with legal requirements and to obtain advice of competent legal
counsel as to the identification and interpretation of any relevant laws
and regulatory requirements that may affect the customer’s business
and any actions the customer may need to take to comply with such
laws. IBM does not provide legal advice or represent or warrant that its
services or products will ensure that the customer follows any law.
30/* Discover. Collaborate. Deploy. */
Notices and disclaimers continued
• Information concerning non-IBM products was obtained from the
suppliers of those products, their published announcements or
other publicly available sources. IBM has not tested
those products about this publication and cannot confirm the
accuracy of performance, compatibility or any other claims
related to non-IBM products. Questions on the capabilities of
non-IBM products should be addressed to the suppliers of those
products. IBM does not warrant the quality of any third-party
products, or the ability of any such third-party products to
interoperate with IBM’s products. IBM expressly disclaims all
warranties, expressed or implied, including but not limited to,
the implied warranties of merchantability and fitness for a
purpose.
• The provision of the information contained herein is not intended
to, and does not, grant any right or license under any IBM
patents, copyrights, trademarks or other intellectual
property right.
• IBM, the IBM logo, ibm.com and [names of other referenced IBM
products and services used in the presentation] are trademarks
of International Business Machines Corporation, registered in
many jurisdictions worldwide. Other product and service names
might be trademarks of IBM or other companies. A current list of
IBM trademarks is available on the Web at "Copyright and
trademark information" at: www.ibm.com/legal/copytrade.shtml.
• Node.js is an official trademark of Joyent. IBM SDK for
Node.js is not formally related to or endorsed by the official
Joyent Node.js open source or commercial project.
• Java, JavaScript and all Java-based trademarks and logos
are trademarks or registered trademarks of Oracle and/or its
affiliates.
• Linux is a registered trademark of Linus Torvalds in the
United States
• Microsoft, Windows, Windows NT, and the Windows logo
are trademarks of Microsoft Corporation in the United
States, other countries, or both.
• “TWITTER, TWEET, RETWEET and the Twitter logo are
trademarks of Twitter, Inc. or its affiliates.”
31/* Discover. Collaborate. Deploy. */
Discover. Collaborate. Deploy.
What’s Next
Michael Dawson
Gibson Fahnestock

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

On sharing ideas & sharing code
On sharing ideas & sharing codeOn sharing ideas & sharing code
On sharing ideas & sharing code
 
Workflow, container, and beyond
Workflow, container, and beyondWorkflow, container, and beyond
Workflow, container, and beyond
 
Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)
 
JHipster Conf 2019 English keynote
JHipster Conf 2019 English keynoteJHipster Conf 2019 English keynote
JHipster Conf 2019 English keynote
 
Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...
Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...
Belarus Jenkins Meetup - Managing security in Jenkins with configuration-as-c...
 
JavaOne 2014: Next Step in Automation: Elastic Build Environment
JavaOne 2014: Next Step in Automation: Elastic Build EnvironmentJavaOne 2014: Next Step in Automation: Elastic Build Environment
JavaOne 2014: Next Step in Automation: Elastic Build Environment
 
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
Analyze This! CloudBees Jenkins Cluster Operations and AnalyticsAnalyze This! CloudBees Jenkins Cluster Operations and Analytics
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
 
Devops For Drupal
Devops  For DrupalDevops  For Drupal
Devops For Drupal
 
DevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of JenkinsDevOps World | Jenkins World 2018 and The Future of Jenkins
DevOps World | Jenkins World 2018 and The Future of Jenkins
 
DevOps and Drupal
DevOps and DrupalDevOps and Drupal
DevOps and Drupal
 
Evolution of NuGet
Evolution of NuGetEvolution of NuGet
Evolution of NuGet
 
Improving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with DockerImproving WordPress Development and Deployments with Docker
Improving WordPress Development and Deployments with Docker
 
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.Jenkinsconf Presentation - Advance jenkins management with multiple projects.
Jenkinsconf Presentation - Advance jenkins management with multiple projects.
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
The Butler is still young – applying modern Jenkins features to the Embedded ...
The Butler is still young – applying modern Jenkins features to the Embedded ...The Butler is still young – applying modern Jenkins features to the Embedded ...
The Butler is still young – applying modern Jenkins features to the Embedded ...
 
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013 .Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...
 
SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore SUGCON 2015: Docker Containers and Sitecore
SUGCON 2015: Docker Containers and Sitecore
 
LASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker ToolsLASUG Online: Introduction to Docker and Docker Tools
LASUG Online: Introduction to Docker and Docker Tools
 

Semelhante a Node.js what's next (Index 2018)

Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
MongoDB
 

Semelhante a Node.js what's next (Index 2018) (20)

Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
Leveraging docker for hadoop build automation and big data stack provisioning
Leveraging docker for hadoop build automation and big data stack provisioningLeveraging docker for hadoop build automation and big data stack provisioning
Leveraging docker for hadoop build automation and big data stack provisioning
 
Leveraging Docker for Hadoop build automation and Big Data stack provisioning
Leveraging Docker for Hadoop build automation and Big Data stack provisioningLeveraging Docker for Hadoop build automation and Big Data stack provisioning
Leveraging Docker for Hadoop build automation and Big Data stack provisioning
 
tip oopt pse-summit2017
tip oopt pse-summit2017tip oopt pse-summit2017
tip oopt pse-summit2017
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helix
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
 
Sakai Technical Future Musings
Sakai Technical Future MusingsSakai Technical Future Musings
Sakai Technical Future Musings
 
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneySimplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 
Optimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarOptimize Your Enterprise Git Webinar
Optimize Your Enterprise Git Webinar
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/S
 
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
DX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in KubernetesDX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in Kubernetes
 

Último

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Último (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

Node.js what's next (Index 2018)

  • 1. Discover. Collaborate. Deploy. What’s Next Michael Dawson Gibson Fahnestock
  • 2. Please Note • IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. • The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. • The development, release, and timing of any future features or functionality described for our products remains at our sole discretion I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. 2/* Discover. Collaborate. Deploy. */
  • 3. About Michael Dawson IBM Runtimes/IBM Node.js Community Lead Node.js collaborator Chair of Technical Steering Committee (TSC) Community Committee member Active in many working groups/teams ●Benchmarking ●Build ●Release ●N-API ●Diagnostics ●Security-wg ●User Feedback Twitter: @mhdawson1 GitHub: @mhdawson Linkedin: https://www.linkedin.com/in/michael-dawson-6051282 /* Discover. Collaborate. Deploy. */ 3
  • 4. About Gibson Fahnestock IBM Runtimes SDK Lead Node.js collaborator Node.js Technical Steering Committee member Version 8.x release lead Active in many working groups/teams ●Build ●Release ●Moderation Twitter: @gibfahn GitHub: @gibfahn Linkedin: https://www.linkedin.com/in/gibfahn/ /* Discover. Collaborate. Deploy. */ 4
  • 5. Overview • Learn how to fish • High level predictions • Releases • Working Groups/Teams • Strategic Initiatives • Foundation Initiatives • Wrap-up and Questions /* Discover. Collaborate. Deploy. */ 5
  • 6. Go Fishing, How to track What’s Next • Releases • Twitter https://twitter.com/gibfahn/lists/node-js-news • GitHub Fire Hose • Working Groups/Teams • Strategic Initiatives • Foundation Initiatives /* Discover. Collaborate. Deploy. */ 6 https://nodejs.org https://github.com/nodejs https://foundation.nodejs.org https://github.com/nodejs/TSC/blob/master/Strategic-Initiatives.md https://github.com/nodejs/community-committee/blob/master/STRATEGIC-INITIATIVES.md https://nodejs.org/calendar
  • 7. High Level Predictions More user feedback efforts N-API and http2 out of experimental Emphasis on Diagnostics New Nightly Benchmarks Progress on security triage for 3rd party modules Functional testing for 3rd party modules (CiTGM) Continued increase in velocity of consuming V8 updates Progress on ES6 Modules Promisification of Core /* Discover. Collaborate. Deploy. */ 7
  • 8. Releases - Process Release Types • Canary • Nightlies • Current • Every 6 months • Even releases promoted to LTS • LTS • Every 12 months • 30 Months support (18 active, 12 maintenance) ‘Notable Changes’ in release notes good way to see what’s coming /* Discover. Collaborate. Deploy. */ 8
  • 9. Releases - Schedule for 2018 /* Discover. Collaborate. Deploy. */ 9
  • 10. Working Groups /* Discover. Collaborate. Deploy. */ 10
  • 11. Working Groups - Build/Automation Key Goals Support infrastructure to deliver Node.js What’s Next More automation tools/scripts Changes to supported OS levels Incremental platform test coverage Dropping coverage for older OS’s Addition of newer OS’s Requirement for higher gcc levels /* Discover. Collaborate. Deploy. */ 11 https://github.com/nodejs/node/blob/master/BUILDING.md
  • 12. Working Groups - Release Key Goals Predicable, regular Release Stable releases What’s Next No major changes planned to release process More automation Increase/improve safety net Easier to find/consume releases Slight reduction of what flows into SemVer minor releases. /* Discover. Collaborate. Deploy. */ 12
  • 13. Working Groups - Benchmarking Key Goals Avoid Regressions Track and Evangelize gains between releases How ? Define Use Cases Identify/Build Benchmarks Run/Capture results What’s Next New workloads, promises? /* Discover. Collaborate. Deploy. */ 13 https://github.com/nodejs/benchmarking
  • 14. Working Groups - Security-wg Key Goals Define and Document security policies Help implement those policies Progress last year Documented initial processes Became CVE issuing authority (CNA) Defined initial processes for 3rd party vulnerability management What’s Next Complete ramp up of team to triage 3rd party vulnerabilities Become CVE issuer for 3rd party modules? Early access program? Bug Bounty Program? /* Discover. Collaborate. Deploy. */ 14
  • 15. Working Groups - Diagnostics Key Goals First class ●Tracing ●Profiling ●Heap and memory analysis ●Step debugging ●Post mortem analysis What’s Next Hardening of Async Hooks Greater integration (node-report, heapdump, llnode metadata maintenance) Leveraging new trace engine Post mortem with promises Testing /* Discover. Collaborate. Deploy. */ 15 https://github.com/nodejs/diagnostics/issues/121
  • 16. Strategic Initiatives /* Discover. Collaborate. Deploy. */ 16
  • 17. Strategic Initiatives - Community Building Mentorship Initiative Node.js People Everywhere Node Together /* Discover. Collaborate. Deploy. */ 17
  • 18. Strategic Initiatives - User Feedback Surveys Regular meeting with end users Enterprise Advisory Board /* Discover. Collaborate. Deploy. */ 18
  • 19. Strategic Initiatives - Http2 • Major revision of HTTP • Experimental status, but no flag • 2 new APIs • Core API • Compatibility API • Uses Nghttp2 • Expect to exit experimental in 2018 /* Discover. Collaborate. Deploy. */ 19 https://nghttp2.org/
  • 20. Strategic Initiatives - Modules • Context • Node.js has pre-existing module system • ES6 Standardized new module system • Goals • Browser compatible ES6 implementation (as possible) • Co-existence with existing module system • Experimental version in Node.js master /* Discover. Collaborate. Deploy. */ 20 --experimental-modules https://nodejs.org/api/esm.html export function test() { console.log('Hello'); } import { test } from './helloTest.mjs'; test(); module.exports = function() { console.log('Hello'); } const test = require('./helloTest.js'); test();
  • 21. Strategic Initiatives - N-API Look for N-API to exit Experimental in 2018 /* Discover. Collaborate. Deploy. */ 21 #include <node_api.h> napi_value RunCallback(napi_env env, const napi_callback_info info) { napi_status status; size_t argc = 1; napi_value args[1]; status = napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); napi_value cb = args[0]; napi_value argv[1]; status = napi_create_string_utf8(env, "hello world", NAPI_AUTO_LENGTH, argv); napi_value global; status = napi_get_global(env, &global); napi_value result; status = napi_call_function(env, global, cb, 1, argv, &result); return nullptr; } https://nodejs.org/dist/latest/docs/api/n-api.html https://github.com/nodejs/node-addon-api
  • 22. Strategic Initiatives - Error Messages • Add error code – error.code • toString() • Error[error-code]: message • Changes to message !SemVer major /* Discover. Collaborate. Deploy. */ 22 https://medium.com/the-node-js-collection/node-js-errors- changes-you-need-to-know-about-dc8c82417f65
  • 23. Strategic Initiatives - Async Hooks • Context across Asynchronous calls /* Discover. Collaborate. Deploy. */ 23 function init(asyncId, type, triggerAsyncId, resource) { } function before(asyncId) { } function after(asyncId) { } function destroy(asyncId) { } function promiseResolve(asyncId) { } const asyncHook = async_hooks.createHook({ init, before, after, destroy, promiseResolve }); asyncHook.enable(); asyncHook.disable(); https://nodejs.org/api/async_hooks.html FSEVENTWRAP, FSREQWRAP, GETADDRINFOREQWRAP, GETNAMEINFOREQWRAP, HTTPPARSER, JSSTREAM, PIPECONNECTWRAP, PIPEWRAP, PROCESSWRAP, QUERYWRAP, SHUTDOWNWRAP, SIGNALWRAP, STATWATCHER, TCPCONNECTWRAP, TCPSERVER, TCPWRAP, TIMERWRAP, TTYWRAP, UDPSENDWRAP, UDPWRAP, WRITEWRAP, ZLIB, SSLCONNECTION, PBKDF2REQUEST, RANDOMBYTESREQUEST, TLSWRAP, Timeout, Immediate, TickObject
  • 24. Strategic Initiatives - Core Promise APIs • Initial promise support • util.promisify • util.callbackify • Initial experimentation promised based APIs in core • fs /* Discover. Collaborate. Deploy. */ 24 https://github.com/nodejs/node/pull/18297
  • 25. Strategic Initiatives - New Stream APIs • Several versions over the years • A fresh look to find a better approach • Very early in process, little to say… /* Discover. Collaborate. Deploy. */ 25
  • 26. Strategic Initiatives - Workers Computation blocks all requests Some Current Solutions • Multiple Instances Node.js • Offloading • Native add-ons Goal is to make it easier/more efficient Options Web Workers API (from browser land) New APIs Processes/Threads /* Discover. Collaborate. Deploy. */ 26 https://github.com/nodejs/worker
  • 27. Foundation Initiatives /* Discover. Collaborate. Deploy. */ 27
  • 28. Foundation Initiatives End User Feedback Industry Neutral Certification Interaction among the JS Ecosystem /* Discover. Collaborate. Deploy. */ 28
  • 29. Summary and Questions /* Discover. Collaborate. Deploy. */ 29
  • 30. Notices and disclaimers • © 2018 International Business Machines Corporation. No part of this document may be reproduced or transmitted in any form without written permission from IBM. • U.S. Government Users Restricted Rights — use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM. • Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. This document is distributed “as is” without any warranty, either express or implied. In no event, shall IBM be liable for any damage arising from the use of this information, including but not limited to, loss of data, business interruption, loss of profit or loss of opportunity. IBM products and services are warranted per the terms and conditions of the agreements under which they are provided. • IBM products are manufactured from new parts or new and used parts. In some cases, a product may not be new and may have been previously installed. Regardless, our warranty terms apply.” • Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice. • Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those • customers have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary. • References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business. • Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation. • It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer follows any law. 30/* Discover. Collaborate. Deploy. */
  • 31. Notices and disclaimers continued • Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products about this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM expressly disclaims all warranties, expressed or implied, including but not limited to, the implied warranties of merchantability and fitness for a purpose. • The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right. • IBM, the IBM logo, ibm.com and [names of other referenced IBM products and services used in the presentation] are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml. • Node.js is an official trademark of Joyent. IBM SDK for Node.js is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. • Java, JavaScript and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. • Linux is a registered trademark of Linus Torvalds in the United States • Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. • “TWITTER, TWEET, RETWEET and the Twitter logo are trademarks of Twitter, Inc. or its affiliates.” 31/* Discover. Collaborate. Deploy. */
  • 32. Discover. Collaborate. Deploy. What’s Next Michael Dawson Gibson Fahnestock

Notas do Editor

  1. Release - The news section on Nodejs.org. In particular, release announcement is posted to nodejs.org for each release. Announcement highlights notable changes and lists commits. By tracking what is going into Current Releases you’ll get a preview of what will be in future LTS releases. Only kind of ‘Next’ since by the time you know about it, it’s already available GitHub fire hose. Subscribe to the repos in the Node.js organization. You’ll see PR’s issues being discussed in advance in order to see what’s going in. WARNING high volume, sometimes seems like a full time job to keep up with it ! Working Groups/Teams The Node.js community (Both the TSC and Communittee Committee ) has a number of working groups and teams which meet regularly to move ongoing community work forward. We’ll take you through a number of them later on. A good place to keep track of them is on the Node.js calendar. There is issue opened in the corresponding repository in advance with details for attending. Strategic initiatives - The TSC and Community Committees have captured a set of “strategic” initiatives. These are important areas of work that generally have a start/end. By reviewing these you can see Larger pieces of work that are being discussed/moved forward. Foundation initiatives - The Foundation also has its own initiatives and keeping an eye on foundation.nodejs.org
  2. Note that these are our personal predictions and don’t reflect the opinions of the overall project. Velocity of consuming v8 updates of course means availability of latest JS features
  3. Mention that Web tooling benchmark and Node dc-eis are 2 new workloads in 2017
  4. ABI stable API for native addons. For those more familiar with Java its along the lines of JNI Base API is C for ABI stability, node-addon-api is npm wrapper that provides C++ interface
  5. Provides API to track context across asynchronous calls Currently in Experimental status You provide functions to be called on certain events and then can enable/disable Can create multiple hooks APM vendors current experimenting/validating the APIs
  6. In discussion with Mark Hinkle the Executive director of the Node.js Foundation, three key initiatives stood out: Getting more end user feedback, foundation is particularly interested in enabling those who are big users but are not necessarily big GitHug users. This is a common theme across the project for this year. The foundation is working on a Certification program so that developers have another way to demonstrate their qualifications. This is particularly important in the Node.js community as many developers have developed expertise outside the traditional education system. More interaction between the different parts of the JavaSript ecosystem and bringing those part parts together. One example is the rebranding of Node.js Interative to JS Interactive.