SlideShare une entreprise Scribd logo
1  sur  81
Télécharger pour lire hors ligne
large
                           Architecting


                         node.js
                           applications
Monday, October 22, 12
@sergimansilla

Monday, October 22, 12
P ro g ra m
      ☐ C l o u d9 ID E?
      ☐ Grow in g pai n s
      ☐ I n t ro du c i n g Arc hitec t
      ☐ Le ss on s le arn e d


Monday, October 22, 12
Normal developers




Monday, October 22, 12
JavaScript Developer




Monday, October 22, 12
Cloud9 IDE - http://c9.io




Monday, October 22, 12
Real
                         debugging




Monday, October 22, 12
(Smart!)
                         Code completion



Monday, October 22, 12
Static
                         analysis



Monday, October 22, 12
Free
                         Linux

Monday, October 22, 12
                         VM
Bring your own machine
Monday, October 22, 12
Real terminal




Monday, October 22, 12
Collaboration



Monday, October 22, 12
See each other type
              Debug together
              Productivity++
Monday, October 22, 12
Create
                         Deploy                      Run/Debug


                             Share            Test


Monday, October 22, 12
P ro g ra m
      ☑ C l o u d9 ID E?
      ☐ Grow in g pai n s
      ☐ I n t ro du c i n g Arc hitec t
      ☐ Le ss on s le arn e d


Monday, October 22, 12
10,000s
                         LOC
                         of JavaScript
Monday, October 22, 12
dynamic,
                           weakly
                         typed
                           language
Monday, October 22, 12
one
                         single
Monday, October 22, 12
                         thread
Openshift
       Cloud9 datacenter
                                      Remote VM


                         IDE server   Remote VM


                                      Remote VM



Monday, October 22, 12
Pure madness



Monday, October 22, 12
Modularization
Monday, October 22, 12
Black
                         box
                           coding
Monday, October 22, 12
Monday, October 22, 12
Java/.NET      import(s)


            Node.js      require


Monday, October 22, 12
Great for
      re
 requi




                         abstracting

Monday, October 22, 12
                         away
re
 requi



                         Not Great for
                         application
                         modularity
Monday, October 22, 12
re
 requi



                         Relies on FS
                           duplicated modules
                          maps to folder names
                         Hard to configure module

Monday, October 22, 12
Dependency error handling

     coding time           compile time   run time
                                                          !
                                                        OM
                                                - BO
                                          KA

                                          - Server crash
                                          - Unhappy customers
                                          - Developer gets fired




Monday, October 22, 12
How to fix it?

       Static dependency list         Resolve at startup
       Named services                 No FS required
       Easy configuration             Pass an object



Monday, October 22, 12
P ro g ra m
      ☑ C l o u d9 ID E?
      ☑ G row i n g pai n s
      ☐ I n t ro du c i n g Arc hitec t
      ☐ Le ss on s le arn e d


Monday, October 22, 12
Architect




                         github.com/c9/architect

Monday, October 22, 12
Architect

             Everything is a plugin
             Plugins can consume plugins
             An application is just a set of plugins

Monday, October 22, 12
Dependency model

                     require          runtime
                   Architect      compile time

Monday, October 22, 12
Dependency error handling
                               Architect
  coding time             compile time              run time




                                                    - Happy customers
                           - Fails before release   - Developer keeps job



Monday, October 22, 12
Monday, October 22, 12
Declare entity ‘presenter’ with behavior
       Use ‘presenter’ to do a presentation



Monday, October 22, 12
Dependency model


                         Presenter             Presentation




Monday, October 22, 12
Express our model
                             package.json

                           Builds dependency tree

                           without
                           executing code
Monday, October 22, 12
Monday, October 22, 12
What’s next?

      Wrap in Architect plugin code
      Extract the code
      Make two plugins


Monday, October 22, 12
Function
                                signature




                         Call when done
Monday, October 22, 12
Architect plugin code
Module.exports
               Options - we’ll get to that
               Imports - everything you ‘consume’
               Register - invoke when done

Monday, October 22, 12
Monday, October 22, 12
Monday, October 22, 12
Easy to test
                              Mock dependencies



Monday, October 22, 12
Assert ‘dance’ is called 11 times




Monday, October 22, 12
No black magic

                Specify dependency model
      Feed architect a config file
                 Call ‘createApp’

Monday, October 22, 12
Monday, October 22, 12
Monday, October 22, 12
Configuration

                Per-plugin options
                No global options object
                Specify in config file

Monday, October 22, 12
Monday, October 22, 12
Monday, October 22, 12
Options

                         Automatically passed in at startup
      Options are also dependencies
                               Fail if options aren’t present

Monday, October 22, 12
Monday, October 22, 12
Monday, October 22, 12
Architect makes you think of your app as
          chunks of functionality
        rather than sets of classes


Monday, October 22, 12
Think ‘chunks of functionality’

           Implicit type constraints
                                Keep implementation private
           Swap features instead of interfaces

Monday, October 22, 12
How does Cloud9 use it?
                Open source version
                Local version (OS + sync)
                Hosted version
                         Normal
                         FTP
                         SSH
Monday, October 22, 12
Monday, October 22, 12
Swap feature per
                               implementation
                         On Open source: talk local filesystem
                         On FTP: talk FTP library
                         On SSH: talk via a SSH bridge

Monday, October 22, 12
Here is something your
                          DI framework can’t do


Monday, October 22, 12
Single node.js process


                                        IDE instance   IDE instance
                                           (FTP)          (SSH)
                       Other code
                     (dashboard etc.)
                                        IDE instance   IDE instance
                                          (Normal)       (Normal)




Monday, October 22, 12
Monday, October 22, 12
Architect can do

             Multiple instances of same plugin
                             Run independently
             But in the same process


Monday, October 22, 12
Monday, October 22, 12
Monday, October 22, 12
HERE’S SOMETHING COOL




Monday, October 22, 12
Centralized eventbus

       Loose coupling between plugins
       No hard dependencies!
       Can also do inter-context communication


Monday, October 22, 12
React on event
                Other plugin




                                                Event
                                                 bus



                                                        Emit event
                                                                     Plugin


Monday, October 22, 12
Monday, October 22, 12
Monday, October 22, 12
And now scale up

       Need something inter-server
       Swap it with i.e. Redis PubSub
       Plugins will never notice
       Modular awesomeness!

Monday, October 22, 12
P ro g ra m
      ☑ C l o u d9 ID E?
      ☑ G row i n g pai n s
      ☑ I n t ro du c i n g Arc hitec t
      ☐ Le sson s learn ed


Monday, October 22, 12
Modularize in feature blocks

                Don’t over engineer
                Don’t create too small blocks
                They aren’t interfaces!

Monday, October 22, 12
Use dependency injection

                Architect (JavaScript)
                StructureMap (.NET)
                Spring (Java)

Monday, October 22, 12
Avoid context switching

                Less code!
                Less errors!
                Less boilerplate!

Monday, October 22, 12
Loose coupling

                         Use an event bus
                         Smaller dependency graph



Monday, October 22, 12
github.com/c9/architect

Monday, October 22, 12
Happy coding!


Monday, October 22, 12
http://c9.io

                                            Sergi Mansilla
                                         @sergimansilla
                                        github.com/sergi
Monday, October 22, 12

Contenu connexe

Tendances

Javascript - Array - Creating Array
Javascript - Array - Creating ArrayJavascript - Array - Creating Array
Javascript - Array - Creating ArraySamuel Santos
 
Introduction to web technology
Introduction to web technologyIntroduction to web technology
Introduction to web technologyVARSHAKUMARI49
 
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...Edureka!
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with ExamplesGabriele Lana
 
MVVM & Data Binding Library
MVVM & Data Binding Library MVVM & Data Binding Library
MVVM & Data Binding Library 10Clouds
 
Service workers
Service workersService workers
Service workersjungkees
 
Angular Project Report
 Angular Project Report Angular Project Report
Angular Project ReportKodexhub
 
Html events with javascript
Html events with javascriptHtml events with javascript
Html events with javascriptYounusS2
 
A (Fairly) Complete Guide to Performance Budgets [SmashingConf SF 2023]
A (Fairly) Complete Guide to Performance Budgets [SmashingConf SF 2023]A (Fairly) Complete Guide to Performance Budgets [SmashingConf SF 2023]
A (Fairly) Complete Guide to Performance Budgets [SmashingConf SF 2023]Tammy Everts
 
Four Languages From Forty Years Ago
Four Languages From Forty Years AgoFour Languages From Forty Years Ago
Four Languages From Forty Years AgoScott Wlaschin
 
Getting started with Next.js
Getting started with Next.jsGetting started with Next.js
Getting started with Next.jsGökhan Sarı
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/ServletSunil OS
 
Nat, List and Option Monoids - from scratch - Combining and Folding - an example
Nat, List and Option Monoids -from scratch -Combining and Folding -an exampleNat, List and Option Monoids -from scratch -Combining and Folding -an example
Nat, List and Option Monoids - from scratch - Combining and Folding - an examplePhilip Schwarz
 
HTML5 audio & video
HTML5 audio & videoHTML5 audio & video
HTML5 audio & videoHamza Zahid
 
Asp.net MVC training session
Asp.net MVC training sessionAsp.net MVC training session
Asp.net MVC training sessionHrichi Mohamed
 

Tendances (20)

Javascript - Array - Creating Array
Javascript - Array - Creating ArrayJavascript - Array - Creating Array
Javascript - Array - Creating Array
 
Asp.net basic
Asp.net basicAsp.net basic
Asp.net basic
 
Introduction to web technology
Introduction to web technologyIntroduction to web technology
Introduction to web technology
 
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with Examples
 
jQuery Effects
jQuery EffectsjQuery Effects
jQuery Effects
 
MVVM & Data Binding Library
MVVM & Data Binding Library MVVM & Data Binding Library
MVVM & Data Binding Library
 
Service workers
Service workersService workers
Service workers
 
Angular Project Report
 Angular Project Report Angular Project Report
Angular Project Report
 
Html events with javascript
Html events with javascriptHtml events with javascript
Html events with javascript
 
A (Fairly) Complete Guide to Performance Budgets [SmashingConf SF 2023]
A (Fairly) Complete Guide to Performance Budgets [SmashingConf SF 2023]A (Fairly) Complete Guide to Performance Budgets [SmashingConf SF 2023]
A (Fairly) Complete Guide to Performance Budgets [SmashingConf SF 2023]
 
Pengenalan ReactJS
Pengenalan ReactJS Pengenalan ReactJS
Pengenalan ReactJS
 
Four Languages From Forty Years Ago
Four Languages From Forty Years AgoFour Languages From Forty Years Ago
Four Languages From Forty Years Ago
 
Getting started with Next.js
Getting started with Next.jsGetting started with Next.js
Getting started with Next.js
 
EC CUBE 3.0.x installation guide
EC CUBE 3.0.x installation guideEC CUBE 3.0.x installation guide
EC CUBE 3.0.x installation guide
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 
Nat, List and Option Monoids - from scratch - Combining and Folding - an example
Nat, List and Option Monoids -from scratch -Combining and Folding -an exampleNat, List and Option Monoids -from scratch -Combining and Folding -an example
Nat, List and Option Monoids - from scratch - Combining and Folding - an example
 
Hands on the Gradle
Hands on the GradleHands on the Gradle
Hands on the Gradle
 
HTML5 audio & video
HTML5 audio & videoHTML5 audio & video
HTML5 audio & video
 
Asp.net MVC training session
Asp.net MVC training sessionAsp.net MVC training session
Asp.net MVC training session
 

Similaire à Architecting large Node.js applications

The Web Designers Toolkit
The Web Designers ToolkitThe Web Designers Toolkit
The Web Designers ToolkitR/GA
 
Inbound Marketing and WordPress
Inbound Marketing and WordPressInbound Marketing and WordPress
Inbound Marketing and WordPressAaron Smith
 
Big app design for Node.js
Big app design for Node.jsBig app design for Node.js
Big app design for Node.jsSergi Mansilla
 
A Morning with MongoDB Barcelona: Introduction
A Morning with MongoDB Barcelona: IntroductionA Morning with MongoDB Barcelona: Introduction
A Morning with MongoDB Barcelona: IntroductionMongoDB
 
Down the Rabbit Hole: Getting Started with the DITA Open Toolkit
Down the Rabbit Hole: Getting Started with the DITA Open Toolkit Down the Rabbit Hole: Getting Started with the DITA Open Toolkit
Down the Rabbit Hole: Getting Started with the DITA Open Toolkit Scriptorium Publishing
 
REST & Hypermedia: the missing links and why you need them - Ruby Hoedown 2012
REST & Hypermedia: the missing links and why you need them - Ruby Hoedown 2012REST & Hypermedia: the missing links and why you need them - Ruby Hoedown 2012
REST & Hypermedia: the missing links and why you need them - Ruby Hoedown 2012Phil Harvey
 
Building businesspost.ie using Node.js
Building businesspost.ie using Node.jsBuilding businesspost.ie using Node.js
Building businesspost.ie using Node.jsRichard Rodger
 
Angular.js - JS Camp UKraine 2013
Angular.js - JS Camp UKraine 2013Angular.js - JS Camp UKraine 2013
Angular.js - JS Camp UKraine 2013Max Klymyshyn
 
Web development, from git flow to github flow
Web development, from git flow to github flowWeb development, from git flow to github flow
Web development, from git flow to github flowCaesar Chi
 
Node.js, toy or power tool?
Node.js, toy or power tool?Node.js, toy or power tool?
Node.js, toy or power tool?Ovidiu Dimulescu
 
Html5 new sword for interactive app
Html5 new sword for interactive appHtml5 new sword for interactive app
Html5 new sword for interactive appYohan Totting
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry BootcampAlvaro Videla
 
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012Patrick Chanezon
 
A Morning with MongoDB Barcelona: Use Cases and Roadmap
A Morning with MongoDB Barcelona: Use Cases and RoadmapA Morning with MongoDB Barcelona: Use Cases and Roadmap
A Morning with MongoDB Barcelona: Use Cases and RoadmapMongoDB
 
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainIntroduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainPuja Abbassi
 

Similaire à Architecting large Node.js applications (20)

The Web Designers Toolkit
The Web Designers ToolkitThe Web Designers Toolkit
The Web Designers Toolkit
 
Aegir
AegirAegir
Aegir
 
Inbound Marketing and WordPress
Inbound Marketing and WordPressInbound Marketing and WordPress
Inbound Marketing and WordPress
 
Big app design for Node.js
Big app design for Node.jsBig app design for Node.js
Big app design for Node.js
 
A Morning with MongoDB Barcelona: Introduction
A Morning with MongoDB Barcelona: IntroductionA Morning with MongoDB Barcelona: Introduction
A Morning with MongoDB Barcelona: Introduction
 
Down the Rabbit Hole: Getting Started with the DITA Open Toolkit
Down the Rabbit Hole: Getting Started with the DITA Open Toolkit Down the Rabbit Hole: Getting Started with the DITA Open Toolkit
Down the Rabbit Hole: Getting Started with the DITA Open Toolkit
 
REST & Hypermedia: the missing links and why you need them - Ruby Hoedown 2012
REST & Hypermedia: the missing links and why you need them - Ruby Hoedown 2012REST & Hypermedia: the missing links and why you need them - Ruby Hoedown 2012
REST & Hypermedia: the missing links and why you need them - Ruby Hoedown 2012
 
Building businesspost.ie using Node.js
Building businesspost.ie using Node.jsBuilding businesspost.ie using Node.js
Building businesspost.ie using Node.js
 
Angular.js - JS Camp UKraine 2013
Angular.js - JS Camp UKraine 2013Angular.js - JS Camp UKraine 2013
Angular.js - JS Camp UKraine 2013
 
Web development, from git flow to github flow
Web development, from git flow to github flowWeb development, from git flow to github flow
Web development, from git flow to github flow
 
Agile V2
Agile V2Agile V2
Agile V2
 
Node.js, toy or power tool?
Node.js, toy or power tool?Node.js, toy or power tool?
Node.js, toy or power tool?
 
Html5 new sword for interactive app
Html5 new sword for interactive appHtml5 new sword for interactive app
Html5 new sword for interactive app
 
Cloud Foundry Bootcamp
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry Bootcamp
 
Cloud foundry and openstackcloud
Cloud foundry and openstackcloudCloud foundry and openstackcloud
Cloud foundry and openstackcloud
 
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
 
The Design of Everyday Things
The Design of Everyday ThingsThe Design of Everyday Things
The Design of Everyday Things
 
Cloudera Desktop
Cloudera DesktopCloudera Desktop
Cloudera Desktop
 
A Morning with MongoDB Barcelona: Use Cases and Roadmap
A Morning with MongoDB Barcelona: Use Cases and RoadmapA Morning with MongoDB Barcelona: Use Cases and Roadmap
A Morning with MongoDB Barcelona: Use Cases and Roadmap
 
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein MainIntroduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
 

Dernier

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Dernier (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Architecting large Node.js applications