SlideShare a Scribd company logo
1 of 75
Stève Sfartz - Developer Experience Manager & API
Design Lead at Cisco DevNet
DEVNET-1444
JavaScript Essentials
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
/Cisco/DevNet/SteveSfartz
• Manager of aWW team of Developer Advocates
• IoT, Collab, Cloud, DevOps
• Application Developer Use Cases
• Technical lead for the Cisco « API Style Guide »
• API veteran, hobbyist coder, hands-On Architect
• Contributor to DevNet CodeExchange
• Code samples, developer tools, postman collections, awesome-
webex, awesome-xapi…
• Based in France, DevNet Europe point of contact
“vision without
execution is
hallucination”
-- Thomas Edison
mailto: stsfartz@cisco.com
github: ObjectIsAdvantag
twitter: @SteveSfartz
DEVNET-1444 3
Agenda
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
• About JavaScript
• Server-side JavaScript
• Front-end JavaScript
• Taking JavaScript to the next stage
DEVNET-1444 4
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco WebexTeams
Questions?
Use Cisco Webex Teams (formerly Cisco Spark)
to chat with the speaker after the session
Find this session in the Cisco Events Mobile App
Click “Join the Discussion”
Install Webex Teams or go directly to the team space
Enter messages/questions in the team space
How
1
2
3
4
cs.co/ciscolivebot#DEVNET-1444
DEVNET-1444 5
About JavaScript
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
About JavaScript
• 1995: created to add dynamic behaviors forWeb pages
• Built in 10 days for Netscape Navigator 2.0 release
• Very simple coreAPI
• Lots of flavors (ES5, ES6, coffeescript, flow,typescript)
• Large ecosystem (libraries, npm)
• Javascript is ubiquitous
DEVNET-1444 7
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
JavaScript is Ubiquitous
Web
Apps
Mobile
Apps
Desktop
Apps
DEVNET-1444 8
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
JavaScript is Ubiquitous
Web
Apps
APIs, Proxys
Mobile
Apps
Desktop
Apps
CLI
DEVNET-1444 9
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
JavaScript is Ubiquitous
Web
Apps
APIs, Proxys
Mobile
Apps
Extensibility
Desktop
Apps
CLI
DEVNET-1444 10
Server-Side Javascript
(Node.js)
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
What is Node.js?
• Node.js® is a JavaScript runtime built on Chrome'sV8 JavaScript engine
(https://v8.dev)
• V8 is Google’s open source high-performance JavaScript and WebAssembly
engine, written in C++.
• Runs on Windows 7 or later, MacOS 10.12+, and Linux systems
• Can run standalone, or can be embedded into any C++ application.
• V8 is used in Chrome and in Node.js.
• Node.js uses an event-driven, non-blocking I/O model that makes it
lightweight and efficient.
DEVNET-1444 12
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Node.js runtime
https://nodejs.org/en/
DEVNET-1444 13
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 14DEVNET-1444
https://www.javascript.com/learn/objects
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
NodeSchool
https://nodeschool.io
DEVNET-1444 15
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
NodeSchool - javascripting
https://github.com/workshopper/javascripting
• Learn the basics of the language
• npm install --global javascripting
DEVNET-1444 16
Building Node.js
applications
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
https://code.visualstudio.com/
• VSCODE
DEVNET-1444 18
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1444 19
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
NodeSchool
https://nodeschool.io
DEVNET-1444 20
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
NodeSchool
https://nodeschool.io
DEVNET-1444 21
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
NodeSchool
https://nodeschool.io
DEVNET-1444 22
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Simple HTTP Server
DEVNET-1444 23
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
WebexTeams Bot Architecture
 Register webhook events
• Messages / created
 Memberships / created
 As events happen in spaces,
receive notifications from
Webex
 Security tips
 Select spaces to fire from via a
webhook filter
 Check on user’s email domain in
your code
 Check webhook payload
signature via a shared secret
Webex
cloud platform
1. interacts in spaces
via a Teams client
Webex Teams
User
Your bot code running
on-premises or on in the cloud
2. posts notifications to
registered Webhooks
3. posts back messages
as notifications fly in
Publicly accessible
bot endpoint
DEVNET-1444 24
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
WebexTeams Webhook with Express
DEVNET-1444 25
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
WebexTeams Webhook with Express
DEVNET-1444 26
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
WebexTeams Webhook with Express
DEVNET-1444 27
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
What is takes to code a bot?
https://github.com/CiscoDevNet/botkit-template
DEVNET-1444 28
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Bot skills with Botkit
https://github.com/CiscoDevNet/botkit-template/tree/master/skills
29DEVNET-1444
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
CLI Example
https://github.com/ObjectIsAdvantag/webex-guestissuer
DEVNET-1444 30
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
JavaScript is Ubiquitous
Use cases for Server-side JavaScript at Cisco
APIs, Proxys ExtensibilityCLI
Server-side
Webex MacrosWebex ChatBots
Webex Emulator
Web Guest
Issuer CLI
DEVNET-1444 31
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Webex Devices Extensibility
32DEVNET-1444
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Button with widget id: DEVWKS-2074
33DEVNET-1444
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
CE xAPI mapped to a Webex Room Kit
34
Pull
data
Listen to
events
Embed
code
DEVNET-1444
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
ADD MACRO
35
1
2
3
4
DEVNET-1444
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 36DEVNET-1444
Dealing with
non-blocking IO
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
What is Node.js?
• Node.js® is a JavaScript runtime built on Chrome'sV8 JavaScript engine
(https://v8.dev)
• V8 is Google’s open source high-performance JavaScript and WebAssembly
engine, written in C++.
• Runs on Windows 7 or later, MacOS 10.12+, and Linux systems
• Can run standalone, or can be embedded into any C++ application.
• V8 is used in Chrome and in Node.js.
• Node.js uses an event-driven, non-blocking I/O model that makes it
lightweight and efficient.
DEVNET-1444 38
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Async with Callbacks (ES5)
DEVNET-1444 39
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Async with Promises (ES6)
DEVNET-1444 40
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Async with Async (ES8)
41DEVNET-1444
JavaScriptVersions
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
JavaScript standard and versions
• JavaScript:The commonly used name for implementations of the ECMAScript
standard
• ECMAScript: A language standardized by ECMA International and overseen by the
TC39 committee.
• ES5 (ECMAScript 5): 5th edition, standardized in December 2009
• ES6 (ECMAScript 6) - ES2015: 6th edition, standardized in June 2015
• ES7+ : yearly releases
• Standardized or scheduled to be standardized
• ES7/ES2016 (June 2016), ES8/ES2017 (June 2017), ES9/ES2018 (June 2018)
DEVNET-1444 43
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
ES5
Dec 2009
Object/array methods and extensions, strings, dates, JSON, immutable
globals, strict mode
ES6
June 2015
- new syntax for writing complex applications: classes and modules,
- Python-style generators and generator expressions, arrow functions, binary
binary data, typed arrays, collections (maps, sets and weak maps), iterators
ES7
June 2016
- exponentiation operator (**)
- Array.prototype.includes
ES8
June 2017
- Includes await/async, which works using generators and promises.
ES9
June 2018
RegExp enhancements, Promise.prototype finally, await on loops
declarations, spread properties
DEVNET-1444 44
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Node.js versions
https://github.com/nodejs/Release
Even numbers stand for LTS
Long Term Support versions
ES6
ES8
ES9
DEVNET-1444 45
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Node.js EcmaScript Support
https://node.green
DEVNET-1444 46
Client-side Javascript
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
JavaScript in the Browser
• Simply said, dynamic pages are event listeners and
DOM manipulation…ending up with a lot of
unmaintainable code.
• Browser compatibility make things even more messy.
• jQuery helps a lot…
… unless you’re building Single Page Applications.
Native
jQuery
Angular 1
Native
jQuery
React
Vue.js
Angular 2
2015 Today
DEVNET-1444 48
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
https://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_hide
DEVNET-1444 49
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
TraditionalWeb Apps
(server sideWeb)
SPA
(Single PageApps)
https://www.kirupa.com/react/introducing_react.htm
DEVNET-1444 50
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
jQuery Vue.js
DEVNET-1444 51
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
React Basics
• The render method takes two arguments:
1. The HTML-like elements (aka JSX) you wish to output
2. The location in the DOM that React will render the JSX into
1
2
DEVNET-1444 52
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
React Components
DEVNET-1444 53
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Building your React Application
https://www.kirupa.com/react/setting_up_react_environment.htm
DEVNET-1444 54
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Javascript versions
• ECMAScript 5 (ES5): Implemented in all modern browsers.
• ECMAScript 6 (ES6 / ES2015): Fairly implemented in modern browsers and IE11+. Secured
with Babel transpiling to ES5.
• ECMAScript 7+ (ES2016+): Babel transpiling required.
• canIuse.com
• Learn atTranspile to ES5 via babel, or inject dynamically thru polyfills.js
DEVNET-1444 55
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Babel
https://babeljs.io
• Babel is a JavaScript compiler
• https://babeljs.io/docs/en/learn
• https://babeljs.io/learn-es2015/
• Toolchain used to convert ES6+ code into a backwards compatible version
of JavaScript in current and older browsers or environments.
• http://kangax.github.io/compat-table/es6/
• Transform syntax, Polyfill features that are missing in your target
environment (through @babel/polyfill), Source code transformations
(codemods)
DEVNET-1444 56
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
WebPack
https://github.com/webpack
• Module bundler for Javascript applications
• Takes in various assets (JS, CSS, Fonts, Images, HTML…)
• Transforms, minifies and optimizes to serve one bundle to the browser
• JS library with an extensible architecture (loaders & plugins)
• Builds a dependency graph from webpack.config.js
DEVNET-1444 57
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Utility: create-react-app
> npm install -g create-react-app
> create-react-app helloworld
> cd helloworld
# for development
> npm start #
# for packaging
> npm run build
DEVNET-1444 58
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
React
• Since it came out in 2013, React has found its way into popular web sites
and apps that we use.
• At Cisco: Admin User Interfaces & Dashboards,WebexTeams Desktop
clients and developer.cisco.com
• Automatic UI State Management
• Lightning-fast DOM Manipulation
• In-memoryVirtual DOM
• APIs to CreateTruly Composable UIs
• Visuals Defined Entirely in JavaScript
• no framework-specific templating command
DEVNET-1444 59
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Recents
Space
WebexTeams Widgets
DEVNET-1444 60
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
https://github.com/CiscoDevNet/widget-samples
DEVNET-1444 61
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
React Map Starter Kit
https://github.com/ObjectIsAdvantag/roomkit-react-map
DEVNET-1444 62
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Webex Teams JavaScript Styleguide
https://github.com/webex/web-styleguide
DEVNET-1444 63
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
To go further
• Linter
• Static code analysis tool used in software development for checking if JavaScript source
code complies with coding rules.
• TypeScript
• Optional static type-checking
• Latest ECMAScript features
• Compiles to plain JavaScript
• https://www.typescriptlang.org/
• GraphQL
• query language for APIs and a runtime for fulfilling those queries
DEVNET-1444 64
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Wrapup
DEVNET-1444 65
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
JavaScript is Ubiquitous
Web
Apps
APIs, Proxys
Mobile
Apps
Extensibility
Desktop
Apps
CLI
DEVNET-1444 66
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
JavaScript is Ubiquitous
Web
Apps
Mobile
Apps
Desktop
Apps
Front End Apps
Extensibility
APIs, Proxys CLI
Server-side Apps
DEVNET-1444 67
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
JavaScript is Ubiquitous
Web
Apps
Mobile
Apps
Extensibility
Desktop
Apps
Front End Apps
AJAX, jQuery
React, Angular, Vue
Flutter.js
Electron
APIs, Proxys CLI
Server-side Apps
express
graphQL
npm
commander
duktape
DEVNET-1444 68
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Webex LearningTrack
https://learninglabs.cisco.com/lab/collab-tools-ide-vscode-sd/step/1
https://learninglabs.cisco.com/tracks/collab-cloud
DEVNET-1444 69
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Resources
• Node.js Coding 101 samples
• https://github.com/ObjectIsAdvantag/nodejs-coding-101
• awesome-webex
• https://github.com/CiscoDevNet/awesome-webex
• Webex learning track
• https://learninglabs.cisco.com/tracks/collab-cloud
70DEVNET-1444
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco WebexTeams
Questions?
Use Cisco Webex Teams (formerly Cisco Spark)
to chat with the speaker after the session
Find this session in the Cisco Events Mobile App
Click “Join the Discussion”
Install Webex Teams or go directly to the team space
Enter messages/questions in the team space
How
1
2
3
4
DEVNET-1444 71
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Don’t forget: Cisco Live sessions will be available for viewing on
demand after the event at ciscolive.cisco.com
• Please complete your Online Session Survey
after each session
• Complete 4 Session Surveys & the Overall
Conference Survey (available fromThursday) to
receive your Cisco LiveT-shirt
• All surveys can be completed via the Cisco
Events Mobile App or the Communication
Stations
Complete your online
session survey
DEVNET-1444 72
© 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public
Demos in
the Cisco
Showcase
Walk-in
self-paced
labs
Meet the
engineer
1:1
meetings
Related
sessions
ContinueYour Education
DEVNET-1444 73
Thank you
JavaScript Essentials Title

More Related Content

What's hot

when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...Cisco DevNet
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to AnsibleCisco DevNet
 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco DevNet
 
Coding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCoding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCisco DevNet
 
Cisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco DevNet
 
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016Cisco DevNet
 
Why Automate the Network?
Why Automate the Network?Why Automate the Network?
Why Automate the Network?Hank Preston
 
Device Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play SolutionDevice Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play SolutionCisco DevNet
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Cisco DevNet
 
DEVNET-1121 Customizing Cisco Video Access for Guests
DEVNET-1121	Customizing Cisco Video Access for GuestsDEVNET-1121	Customizing Cisco Video Access for Guests
DEVNET-1121 Customizing Cisco Video Access for GuestsCisco DevNet
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco projectSymphony Software Foundation
 
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...Symphony Software Foundation
 
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포DongHee Lee
 
DevOPS training - Day 1/2
DevOPS training - Day 1/2DevOPS training - Day 1/2
DevOPS training - Day 1/2Vincent Mercier
 
Oracle Cloud native functions - create application from cli
Oracle Cloud native functions - create application from cliOracle Cloud native functions - create application from cli
Oracle Cloud native functions - create application from cliJohan Louwers
 
.NET Application Modernization with PAS and Azure DevOps
.NET Application Modernization with PAS and Azure DevOps.NET Application Modernization with PAS and Azure DevOps
.NET Application Modernization with PAS and Azure DevOpsVMware Tanzu
 
Meetups - The Oracle Ace Way
Meetups - The Oracle Ace WayMeetups - The Oracle Ace Way
Meetups - The Oracle Ace WayPhil Wilkins
 
Difference between .net and asp.net all you need to know
Difference between .net and asp.net  all you need to knowDifference between .net and asp.net  all you need to know
Difference between .net and asp.net all you need to knowsophiaaaddison
 

What's hot (20)

when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to Ansible
 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API Workshop
 
Coding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCoding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using Spark
 
Cisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable WebCisco Spark and Tropo and the Programmable Web
Cisco Spark and Tropo and the Programmable Web
 
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
 
Why Automate the Network?
Why Automate the Network?Why Automate the Network?
Why Automate the Network?
 
Device Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play SolutionDevice Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play Solution
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
 
DEVNET-1121 Customizing Cisco Video Access for Guests
DEVNET-1121	Customizing Cisco Video Access for GuestsDEVNET-1121	Customizing Cisco Video Access for Guests
DEVNET-1121 Customizing Cisco Video Access for Guests
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project
 
Designing & Building Secure Web APIs
Designing & Building Secure Web APIsDesigning & Building Secure Web APIs
Designing & Building Secure Web APIs
 
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
 
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
 
DevOPS training - Day 1/2
DevOPS training - Day 1/2DevOPS training - Day 1/2
DevOPS training - Day 1/2
 
Oracle Cloud native functions - create application from cli
Oracle Cloud native functions - create application from cliOracle Cloud native functions - create application from cli
Oracle Cloud native functions - create application from cli
 
.NET Application Modernization with PAS and Azure DevOps
.NET Application Modernization with PAS and Azure DevOps.NET Application Modernization with PAS and Azure DevOps
.NET Application Modernization with PAS and Azure DevOps
 
Meetups - The Oracle Ace Way
Meetups - The Oracle Ace WayMeetups - The Oracle Ace Way
Meetups - The Oracle Ace Way
 
New Serverless World, Cloud Native Apps
New Serverless World, Cloud Native AppsNew Serverless World, Cloud Native Apps
New Serverless World, Cloud Native Apps
 
Difference between .net and asp.net all you need to know
Difference between .net and asp.net  all you need to knowDifference between .net and asp.net  all you need to know
Difference between .net and asp.net all you need to know
 

Similar to JavaScript Essentials Title

DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseCisco DevNet
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Cisco DevNet
 
Microservices and containers networking: Contiv, an industry leading open sou...
Microservices and containers networking: Contiv, an industry leading open sou...Microservices and containers networking: Contiv, an industry leading open sou...
Microservices and containers networking: Contiv, an industry leading open sou...Codemotion
 
Cisco Connect Toronto 2018 DevNet Overview
Cisco Connect Toronto 2018  DevNet OverviewCisco Connect Toronto 2018  DevNet Overview
Cisco Connect Toronto 2018 DevNet OverviewCisco Canada
 
Show and Tell: Building Applications on Cisco Open SDN Controller
Show and Tell: Building Applications on Cisco Open SDN Controller Show and Tell: Building Applications on Cisco Open SDN Controller
Show and Tell: Building Applications on Cisco Open SDN Controller Cisco DevNet
 
WAN Automation Engine API Deep Dive
WAN Automation Engine API Deep DiveWAN Automation Engine API Deep Dive
WAN Automation Engine API Deep DiveCisco DevNet
 
Building Rich Internet Applications Using Google Web Toolkit
Building Rich Internet Applications Using  Google Web ToolkitBuilding Rich Internet Applications Using  Google Web Toolkit
Building Rich Internet Applications Using Google Web Toolkitrajivmordani
 
BRKSPG-2069-64bit-package.pdf
BRKSPG-2069-64bit-package.pdfBRKSPG-2069-64bit-package.pdf
BRKSPG-2069-64bit-package.pdfHeng30
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersCisco DevNet
 
Docker Seattle Meetup, May 2017
Docker Seattle Meetup, May 2017Docker Seattle Meetup, May 2017
Docker Seattle Meetup, May 2017Stephen Walli
 
.Net: Introduction, trends and future
.Net: Introduction, trends and future.Net: Introduction, trends and future
.Net: Introduction, trends and futureBishnu Rawal
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Cisco DevNet
 
IPv6 on the Cisco Campus
IPv6 on the Cisco CampusIPv6 on the Cisco Campus
IPv6 on the Cisco CampusAPNIC
 
Introduction to ASP.NET Core
Introduction to ASP.NET CoreIntroduction to ASP.NET Core
Introduction to ASP.NET CoreAvanade Nederland
 
Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonLeon Stigter
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentDevOps.com
 
Built Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfBuilt Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfI-Verve Inc
 

Similar to JavaScript Essentials Title (20)

DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
 
Microservices and containers networking: Contiv, an industry leading open sou...
Microservices and containers networking: Contiv, an industry leading open sou...Microservices and containers networking: Contiv, an industry leading open sou...
Microservices and containers networking: Contiv, an industry leading open sou...
 
Cisco Connect Toronto 2018 DevNet Overview
Cisco Connect Toronto 2018  DevNet OverviewCisco Connect Toronto 2018  DevNet Overview
Cisco Connect Toronto 2018 DevNet Overview
 
Show and Tell: Building Applications on Cisco Open SDN Controller
Show and Tell: Building Applications on Cisco Open SDN Controller Show and Tell: Building Applications on Cisco Open SDN Controller
Show and Tell: Building Applications on Cisco Open SDN Controller
 
WAN Automation Engine API Deep Dive
WAN Automation Engine API Deep DiveWAN Automation Engine API Deep Dive
WAN Automation Engine API Deep Dive
 
Building Rich Internet Applications Using Google Web Toolkit
Building Rich Internet Applications Using  Google Web ToolkitBuilding Rich Internet Applications Using  Google Web Toolkit
Building Rich Internet Applications Using Google Web Toolkit
 
BRKSPG-2069-64bit-package.pdf
BRKSPG-2069-64bit-package.pdfBRKSPG-2069-64bit-package.pdf
BRKSPG-2069-64bit-package.pdf
 
Node.js Tools Ecosystem
Node.js Tools EcosystemNode.js Tools Ecosystem
Node.js Tools Ecosystem
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
 
Docker Seattle Meetup, May 2017
Docker Seattle Meetup, May 2017Docker Seattle Meetup, May 2017
Docker Seattle Meetup, May 2017
 
.Net: Introduction, trends and future
.Net: Introduction, trends and future.Net: Introduction, trends and future
.Net: Introduction, trends and future
 
5 cisco open_stack
5 cisco open_stack5 cisco open_stack
5 cisco open_stack
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610
 
IPv6 on the Cisco Campus
IPv6 on the Cisco CampusIPv6 on the Cisco Campus
IPv6 on the Cisco Campus
 
Dattatray Resume
Dattatray ResumeDattatray Resume
Dattatray Resume
 
Introduction to ASP.NET Core
Introduction to ASP.NET CoreIntroduction to ASP.NET Core
Introduction to ASP.NET Core
 
Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and Tekton
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
 
Built Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfBuilt Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdf
 

More from Cisco DevNet

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023Cisco DevNet
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfCisco DevNet
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPICisco DevNet
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningCisco DevNet
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetCisco DevNet
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Cisco DevNet
 
Embedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsEmbedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsCisco DevNet
 
BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017Cisco DevNet
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Cisco DevNet
 
Phone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessPhone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessCisco DevNet
 
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Cisco DevNet
 
From ZERO to REST in an hour
From ZERO to REST in an hour From ZERO to REST in an hour
From ZERO to REST in an hour Cisco DevNet
 
building microservices
building microservicesbuilding microservices
building microservicesCisco DevNet
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to MicroservicesCisco DevNet
 
RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)Cisco DevNet
 

More from Cisco DevNet (15)

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdf
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPI
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listening
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
 
Embedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsEmbedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your apps
 
BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017BotCommons: Metadata for Bots - Devoxx 2017
BotCommons: Metadata for Bots - Devoxx 2017
 
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
 
Phone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessPhone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo Serverless
 
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
Hackathon Poste Mobile 2016 Cisco Roma @TAG TalentGardenIT
 
From ZERO to REST in an hour
From ZERO to REST in an hour From ZERO to REST in an hour
From ZERO to REST in an hour
 
building microservices
building microservicesbuilding microservices
building microservices
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
 
RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)RESTful web APIs (build, document, manage)
RESTful web APIs (build, document, manage)
 

Recently uploaded

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Recently uploaded (20)

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 

JavaScript Essentials Title

  • 1.
  • 2. Stève Sfartz - Developer Experience Manager & API Design Lead at Cisco DevNet DEVNET-1444 JavaScript Essentials
  • 3. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public /Cisco/DevNet/SteveSfartz • Manager of aWW team of Developer Advocates • IoT, Collab, Cloud, DevOps • Application Developer Use Cases • Technical lead for the Cisco « API Style Guide » • API veteran, hobbyist coder, hands-On Architect • Contributor to DevNet CodeExchange • Code samples, developer tools, postman collections, awesome- webex, awesome-xapi… • Based in France, DevNet Europe point of contact “vision without execution is hallucination” -- Thomas Edison mailto: stsfartz@cisco.com github: ObjectIsAdvantag twitter: @SteveSfartz DEVNET-1444 3
  • 4. Agenda © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public • About JavaScript • Server-side JavaScript • Front-end JavaScript • Taking JavaScript to the next stage DEVNET-1444 4
  • 5. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco WebexTeams Questions? Use Cisco Webex Teams (formerly Cisco Spark) to chat with the speaker after the session Find this session in the Cisco Events Mobile App Click “Join the Discussion” Install Webex Teams or go directly to the team space Enter messages/questions in the team space How 1 2 3 4 cs.co/ciscolivebot#DEVNET-1444 DEVNET-1444 5
  • 7. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public About JavaScript • 1995: created to add dynamic behaviors forWeb pages • Built in 10 days for Netscape Navigator 2.0 release • Very simple coreAPI • Lots of flavors (ES5, ES6, coffeescript, flow,typescript) • Large ecosystem (libraries, npm) • Javascript is ubiquitous DEVNET-1444 7
  • 8. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public JavaScript is Ubiquitous Web Apps Mobile Apps Desktop Apps DEVNET-1444 8
  • 9. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public JavaScript is Ubiquitous Web Apps APIs, Proxys Mobile Apps Desktop Apps CLI DEVNET-1444 9
  • 10. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public JavaScript is Ubiquitous Web Apps APIs, Proxys Mobile Apps Extensibility Desktop Apps CLI DEVNET-1444 10
  • 12. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public What is Node.js? • Node.js® is a JavaScript runtime built on Chrome'sV8 JavaScript engine (https://v8.dev) • V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. • Runs on Windows 7 or later, MacOS 10.12+, and Linux systems • Can run standalone, or can be embedded into any C++ application. • V8 is used in Chrome and in Node.js. • Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. DEVNET-1444 12
  • 13. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Node.js runtime https://nodejs.org/en/ DEVNET-1444 13
  • 14. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 14DEVNET-1444 https://www.javascript.com/learn/objects
  • 15. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public NodeSchool https://nodeschool.io DEVNET-1444 15
  • 16. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public NodeSchool - javascripting https://github.com/workshopper/javascripting • Learn the basics of the language • npm install --global javascripting DEVNET-1444 16
  • 18. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public https://code.visualstudio.com/ • VSCODE DEVNET-1444 18
  • 19. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco PublicDEVNET-1444 19
  • 20. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public NodeSchool https://nodeschool.io DEVNET-1444 20
  • 21. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public NodeSchool https://nodeschool.io DEVNET-1444 21
  • 22. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public NodeSchool https://nodeschool.io DEVNET-1444 22
  • 23. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Simple HTTP Server DEVNET-1444 23
  • 24. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public WebexTeams Bot Architecture  Register webhook events • Messages / created  Memberships / created  As events happen in spaces, receive notifications from Webex  Security tips  Select spaces to fire from via a webhook filter  Check on user’s email domain in your code  Check webhook payload signature via a shared secret Webex cloud platform 1. interacts in spaces via a Teams client Webex Teams User Your bot code running on-premises or on in the cloud 2. posts notifications to registered Webhooks 3. posts back messages as notifications fly in Publicly accessible bot endpoint DEVNET-1444 24
  • 25. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public WebexTeams Webhook with Express DEVNET-1444 25
  • 26. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public WebexTeams Webhook with Express DEVNET-1444 26
  • 27. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public WebexTeams Webhook with Express DEVNET-1444 27
  • 28. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public What is takes to code a bot? https://github.com/CiscoDevNet/botkit-template DEVNET-1444 28
  • 29. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Bot skills with Botkit https://github.com/CiscoDevNet/botkit-template/tree/master/skills 29DEVNET-1444
  • 30. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public CLI Example https://github.com/ObjectIsAdvantag/webex-guestissuer DEVNET-1444 30
  • 31. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public JavaScript is Ubiquitous Use cases for Server-side JavaScript at Cisco APIs, Proxys ExtensibilityCLI Server-side Webex MacrosWebex ChatBots Webex Emulator Web Guest Issuer CLI DEVNET-1444 31
  • 32. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Webex Devices Extensibility 32DEVNET-1444
  • 33. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Button with widget id: DEVWKS-2074 33DEVNET-1444
  • 34. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public CE xAPI mapped to a Webex Room Kit 34 Pull data Listen to events Embed code DEVNET-1444
  • 35. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public ADD MACRO 35 1 2 3 4 DEVNET-1444
  • 36. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public 36DEVNET-1444
  • 38. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public What is Node.js? • Node.js® is a JavaScript runtime built on Chrome'sV8 JavaScript engine (https://v8.dev) • V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++. • Runs on Windows 7 or later, MacOS 10.12+, and Linux systems • Can run standalone, or can be embedded into any C++ application. • V8 is used in Chrome and in Node.js. • Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. DEVNET-1444 38
  • 39. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Async with Callbacks (ES5) DEVNET-1444 39
  • 40. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Async with Promises (ES6) DEVNET-1444 40
  • 41. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Async with Async (ES8) 41DEVNET-1444
  • 43. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public JavaScript standard and versions • JavaScript:The commonly used name for implementations of the ECMAScript standard • ECMAScript: A language standardized by ECMA International and overseen by the TC39 committee. • ES5 (ECMAScript 5): 5th edition, standardized in December 2009 • ES6 (ECMAScript 6) - ES2015: 6th edition, standardized in June 2015 • ES7+ : yearly releases • Standardized or scheduled to be standardized • ES7/ES2016 (June 2016), ES8/ES2017 (June 2017), ES9/ES2018 (June 2018) DEVNET-1444 43
  • 44. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public ES5 Dec 2009 Object/array methods and extensions, strings, dates, JSON, immutable globals, strict mode ES6 June 2015 - new syntax for writing complex applications: classes and modules, - Python-style generators and generator expressions, arrow functions, binary binary data, typed arrays, collections (maps, sets and weak maps), iterators ES7 June 2016 - exponentiation operator (**) - Array.prototype.includes ES8 June 2017 - Includes await/async, which works using generators and promises. ES9 June 2018 RegExp enhancements, Promise.prototype finally, await on loops declarations, spread properties DEVNET-1444 44
  • 45. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Node.js versions https://github.com/nodejs/Release Even numbers stand for LTS Long Term Support versions ES6 ES8 ES9 DEVNET-1444 45
  • 46. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Node.js EcmaScript Support https://node.green DEVNET-1444 46
  • 48. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public JavaScript in the Browser • Simply said, dynamic pages are event listeners and DOM manipulation…ending up with a lot of unmaintainable code. • Browser compatibility make things even more messy. • jQuery helps a lot… … unless you’re building Single Page Applications. Native jQuery Angular 1 Native jQuery React Vue.js Angular 2 2015 Today DEVNET-1444 48
  • 49. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public https://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_hide DEVNET-1444 49
  • 50. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public TraditionalWeb Apps (server sideWeb) SPA (Single PageApps) https://www.kirupa.com/react/introducing_react.htm DEVNET-1444 50
  • 51. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public jQuery Vue.js DEVNET-1444 51
  • 52. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public React Basics • The render method takes two arguments: 1. The HTML-like elements (aka JSX) you wish to output 2. The location in the DOM that React will render the JSX into 1 2 DEVNET-1444 52
  • 53. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public React Components DEVNET-1444 53
  • 54. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Building your React Application https://www.kirupa.com/react/setting_up_react_environment.htm DEVNET-1444 54
  • 55. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Javascript versions • ECMAScript 5 (ES5): Implemented in all modern browsers. • ECMAScript 6 (ES6 / ES2015): Fairly implemented in modern browsers and IE11+. Secured with Babel transpiling to ES5. • ECMAScript 7+ (ES2016+): Babel transpiling required. • canIuse.com • Learn atTranspile to ES5 via babel, or inject dynamically thru polyfills.js DEVNET-1444 55
  • 56. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Babel https://babeljs.io • Babel is a JavaScript compiler • https://babeljs.io/docs/en/learn • https://babeljs.io/learn-es2015/ • Toolchain used to convert ES6+ code into a backwards compatible version of JavaScript in current and older browsers or environments. • http://kangax.github.io/compat-table/es6/ • Transform syntax, Polyfill features that are missing in your target environment (through @babel/polyfill), Source code transformations (codemods) DEVNET-1444 56
  • 57. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public WebPack https://github.com/webpack • Module bundler for Javascript applications • Takes in various assets (JS, CSS, Fonts, Images, HTML…) • Transforms, minifies and optimizes to serve one bundle to the browser • JS library with an extensible architecture (loaders & plugins) • Builds a dependency graph from webpack.config.js DEVNET-1444 57
  • 58. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Utility: create-react-app > npm install -g create-react-app > create-react-app helloworld > cd helloworld # for development > npm start # # for packaging > npm run build DEVNET-1444 58
  • 59. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public React • Since it came out in 2013, React has found its way into popular web sites and apps that we use. • At Cisco: Admin User Interfaces & Dashboards,WebexTeams Desktop clients and developer.cisco.com • Automatic UI State Management • Lightning-fast DOM Manipulation • In-memoryVirtual DOM • APIs to CreateTruly Composable UIs • Visuals Defined Entirely in JavaScript • no framework-specific templating command DEVNET-1444 59
  • 60. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Recents Space WebexTeams Widgets DEVNET-1444 60
  • 61. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public https://github.com/CiscoDevNet/widget-samples DEVNET-1444 61
  • 62. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public React Map Starter Kit https://github.com/ObjectIsAdvantag/roomkit-react-map DEVNET-1444 62
  • 63. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Webex Teams JavaScript Styleguide https://github.com/webex/web-styleguide DEVNET-1444 63
  • 64. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public To go further • Linter • Static code analysis tool used in software development for checking if JavaScript source code complies with coding rules. • TypeScript • Optional static type-checking • Latest ECMAScript features • Compiles to plain JavaScript • https://www.typescriptlang.org/ • GraphQL • query language for APIs and a runtime for fulfilling those queries DEVNET-1444 64
  • 65. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Wrapup DEVNET-1444 65
  • 66. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public JavaScript is Ubiquitous Web Apps APIs, Proxys Mobile Apps Extensibility Desktop Apps CLI DEVNET-1444 66
  • 67. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public JavaScript is Ubiquitous Web Apps Mobile Apps Desktop Apps Front End Apps Extensibility APIs, Proxys CLI Server-side Apps DEVNET-1444 67
  • 68. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public JavaScript is Ubiquitous Web Apps Mobile Apps Extensibility Desktop Apps Front End Apps AJAX, jQuery React, Angular, Vue Flutter.js Electron APIs, Proxys CLI Server-side Apps express graphQL npm commander duktape DEVNET-1444 68
  • 69. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Webex LearningTrack https://learninglabs.cisco.com/lab/collab-tools-ide-vscode-sd/step/1 https://learninglabs.cisco.com/tracks/collab-cloud DEVNET-1444 69
  • 70. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Resources • Node.js Coding 101 samples • https://github.com/ObjectIsAdvantag/nodejs-coding-101 • awesome-webex • https://github.com/CiscoDevNet/awesome-webex • Webex learning track • https://learninglabs.cisco.com/tracks/collab-cloud 70DEVNET-1444
  • 71. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco WebexTeams Questions? Use Cisco Webex Teams (formerly Cisco Spark) to chat with the speaker after the session Find this session in the Cisco Events Mobile App Click “Join the Discussion” Install Webex Teams or go directly to the team space Enter messages/questions in the team space How 1 2 3 4 DEVNET-1444 71
  • 72. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Don’t forget: Cisco Live sessions will be available for viewing on demand after the event at ciscolive.cisco.com • Please complete your Online Session Survey after each session • Complete 4 Session Surveys & the Overall Conference Survey (available fromThursday) to receive your Cisco LiveT-shirt • All surveys can be completed via the Cisco Events Mobile App or the Communication Stations Complete your online session survey DEVNET-1444 72
  • 73. © 2019 Cisco and/or its affiliates. All rights reserved. Cisco Public Demos in the Cisco Showcase Walk-in self-paced labs Meet the engineer 1:1 meetings Related sessions ContinueYour Education DEVNET-1444 73

Editor's Notes

  1. Get a broad overview of the Javascript language, platforms and ecosystem, to better identify when to use the programming language, but also where to start to create your own scripts, and feel confortable enough with Javascript to run and extend existing scripts. If you have some background with programming, and are looking forward to understand more about Javascript, this session is for you! Expect lots of demos showing how Javascript can be used across Cisco portfolio: from command line tools, to custom scripts running on Cisco devices, building interactive dashboards, or exposing enterprise data via Web APIs.
  2. Examples with what’s in the standard golang box Logs: https://github.com/sirupsen/logrus
  3. History of V8?
  4. https://github.com/CiscoDevNet/botkit-template
  5. History of V8?
  6. 1: All scheduled dates are subject to change by the Node.js Release working group or Node.js Technical Steering Committee. 2: The 8.x Maintenance LTS cycle is currently scheduled to expire early on December 31, 2019 to align with the scheduled End-of-Life of OpenSSL-1.0.2. Note that this schedule may change if the version of OpenSSL is upgraded to 1.1.x before 8.x enters the Active LTS cycle.
  7. Think of the Cisco Spark client as two separate pieces. RECENTS for all of your latest interactions, and SPACE for chat and calling capabilities. We take those 2 pieces of the Spark client and turn them into the RECENTS widget and SPACE widget