SlideShare uma empresa Scribd logo
1 de 100
Baixar para ler offline
TORNADO
IN DEPTH
thor
thunder
tro
tronar
tronada
tornar
tornada
tornada
tronada
+
tornada
TORNADO
what is it?
Non-blocking web server
Based on epoll / kqueue
Handles 1000s of connections
Powers FriendFeed
why do you even care?
Know what you use
I can't trust
what I don't know
Learning and sharing: fun!
what do you use it for?
We built a
Scalable
Distributed
Fault tolerant
High load
...thing
[CITATION NEEDED]
oscar.vilaplana@paylogic.eu
TORNADO
what is it made of?
IOLoop
Callbacks, Tasks, Timeouts
TCPServer
Application
RequestHandler
Generators
can I extend it?
Sure!
It's easy
How would we make
a simple TCPServer?
0b_tcpserver.py
show me the source!
GETTING
STARTED
how do I make the simplest app?
Define a RequestHandler
Implement get
Define an Application
Tell the application to listen
Start the IOLoop
01_getting_started.py
show me the source!
what is an Application?
Collection of RequestHandlers
Implements listen:
Starts an HTTPServer
Sets the Application as request callback
Implements __call__:
Handles the user requests
t1_application_listen.py
show me the source!
what does Application.__call__ do?
Parses the URL
Decides which handler to use
and creates an instance of it
(each connection gets one)
_executes it
(passing any defined transforms to it –e.g, Gzip compression)
t2_application_call.py
show me the source!
what
does RequestHandler._execute do?
Calls the handler method
Checks XSRF cookie
Maybe closes the connection
t3_request_handler_
_execute.py
show me the source!
IOLOOP
CALLBACK
TIMEOUT
event
Core of Tornado
Usable standalone or with WSGI
Used for server and client
Single instance per process
Small!
what is the IOLoop?
Loops forever
Executes:
Callbacks (asap)
Timeouts (when due)
Events (when occoured)
what does the IOLoop do?
what is an Event?
Something that happened on a socket (fd)
(e.g. a user opened a conneciton)
Applications define handlers for Events
how do I wait for an Event?
add_handler(fd, handler, events)
update_handler(fd, handler, events)
remove_handler(fd, handler)
“Notify me when I can READ or WRITE,
or when there is an ERROR”
IOLOOP
THE LOOP
in four steps
Process Callbacks
They were scheduled by previous:
Callbacks
Event handlers
first process the Callbacks
For each Timeout:
Is it due now?
Run its callback
Calculate the time till next Timeout
second process the Timeouts
Poll timeout:
Callbacks? Then 0
Timeouts? Then time until the next Timeout
Neither? 1 hour
Here the IOLoop blocks
third poll for Events
For each (file descriptor, Event):
Call its handler
...and repeat the loop
and fourth process the Events
THE
EXAMPLE
WHAT it
really does
01_getting_started.py
show me the source!
Application.listen
starts HTTPServer
calls IOLoop.add_accept_handler
(Application.__call__ will handle the ACCEPT event)
and when a client connects...
what does the example do?
what does the example do?
IOLoop
polls
connection TCPServer
calls
HTTPServer
which is
HTTPConnection
creates
read
and callsheaders
body
reads
using callbacks
request_callback
and calls
Application.__call__
which is RequestHandler
._execute
calls
(after parsing URL)
RequestHandler
calls
get or post or ...
calls
HTTPConnection
writes to
(in chunks)
_auto_finish?
finishes
yes
t4_simple_ioloop.py
show me the source!
Scheduled
tasks
how do we schedule a task?
Call me back asap
Ioloop.add_callback
Call me back later
Ioloop.add_timeout
Call me often
PeriodicCallback
02_scheduled_tasks.py
show me the source!
how does add_callback work?
Adds the callback to the list of
callbacks.
(and wraps it in a threadlocal-like stack context)
what do you mean, threadlocal-like?
StackContext
Keeps track of the socket connection
Handles association between socket and
Application classes
t6_add_callback.py
show me the source!
how does add_timeout work?
Pushes the timeout to the heap
of timeouts.
(and wraps it in a threadlocal-like stack context too)
t7_add_timeout.py
show me the source!
how do PeriodicCallbacks work?
start
Schedules the next timeout to call _run
Marks the PeriodicCallback as running
stop
Removes the next timeout
Marks the PeriodicCallback as stopped
_run
Calls the callback
(unless stop was called)
t8_periodic_callback.py
show me the source!
what about Callback?
Indeed.
Async
handlers
asynchronous@
&
auto_ _finish
how does @asynchronous work?
Sets _auto_finish to False
(and does some Exception wrapping)
The connection remains open
after get, post...
Close it yourself
(whenever you want)
03_fetch_async.py
show me the source!
I put a callback on your callback
Nested callbacks
make ugly code.
what about Callback?
Indeed.
generators
how do I avoid callbacks?
Use Callback
(finally!)
and yield
Or Task
04_fetch_gen.py
show me the source!
Yield
points
what is a YieldPoint?
Something you yield
Then stuff happens
what is a YieldPoint?
Callback
Sends a result for a key
Wait
Waits till a result for a key arrives
WaitMany
Same as Wait, for many keys
Task
Wait + Callback
(with an auto-generated key)
Multi
List of YeldPoints
what is a YieldPoint?
how do we do async processing?
callback=(yield Callback(“key”))
When a result arrives, send it for the
key “key”
how do we do async processing?
response=yield Wait(“key”)
When the result is sent, read it into
response.
04_fetch_gen.py
show me the source!
05_task.py
show me the source!
t9_yield_points.py
show me the source!
websockets
how do we use websockets?
Extend WebSocketHandler
(instead of RequestHandler)
Implement on_message
06_websocket.py
show me the source!
how do websockets work?
Similar to @asynchronous
(the connection is kept open)
After writing, read for more
(asynchronously—see IOStream)
To Application, it looks like a RequestHandler
how does WebSocket work?
_execute
Accepts the connection
Decides the version of the protocol.
Instantiates a WebSocketProtocol class
how does WebSocketProtocol work?
accept_connection
Sends the required initial message
Reads the next message (asynchronously)
_write_response
Writes a response on the socket
Reads the next message (asynchronously)
ta_websocket.py
show me the source!
iostream
what does IOStream do?
Communicates with the socket
Asynchronous
Uses IOLoop Callbacks
how does IOStream work?
_add_io_state
“Notify me when I can READ or WRITE, or when ERROR”
schedules Callback for an event (READ, WRITE, ...)
_handle_events
Can I read? Call _handle_read
Can I write? Call _handle_write
Handles errors
how does IOStream work?
_handle_read
Store data in read buffer
Call the read callback (_read_from_buffer)
_handle_write
Write data from the buffer into the socket (handling
funny circumstances)
Call the write callback (if it exists)
how does IOStream work?
connect
socket.connect
_add_io_state(WRITE)
read
Set callback
Data in read buffer? Return it
Read buffer empty? _add_io_state(READ)
write
Add data to write buffer
_add_io_state(WRITE)
how do I use IOStream directly?
read_until_regex
read_until
read_bytes
read_until_close
All take a callback
how do I use streaming callbacks?
read_bytes
read_until_close
Param: streaming_callback
Data is sent to callback as it arrives
0a_async_callback.py
show me the source!
database
how do I talk to a database?
database.connection
query(“SQL”)
Returns an iterable
Very simple
07_db.py
show me the source!
Not async!
asyncmongo
what is asyncmongo?
Asynchronous MongoDB client
Uses Tornado's IOLoop
how do I use asyncmongo?
asyncmongo.Client
db.find
takes a callback parameter
08_mongo.py
show me the source!
how does asyncmongo work?
Implements a Connection
Many: ConnectionPool
Sends data via Tornado's IOStream
Commands send via Cursor
Cursor.send_message
Uses Connection to communicate asynchronously
can we write our own asyncmysql?
Difficult
C driver has blocking calls
mysql_query
mysql_store_result
mysql_use_result
Alternative
Use Twisted's txMySQL with tornado.platform.twisted
Slower
Q A&
GRAZIE!
source: uncertain (sorry!)
dev@oscarvilaplana.cat

Mais conteúdo relacionado

Mais procurados

WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkFabio Tiriticco
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparisonHiroshi Nakamura
 
Coroutines for Kotlin Multiplatform in Practise
Coroutines for Kotlin Multiplatform in PractiseCoroutines for Kotlin Multiplatform in Practise
Coroutines for Kotlin Multiplatform in PractiseChristian Melchior
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!Andrew Conner
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with ExamplesGabriele Lana
 
Vert.x clustering on Docker, CoreOS and ETCD
Vert.x clustering on Docker, CoreOS and ETCDVert.x clustering on Docker, CoreOS and ETCD
Vert.x clustering on Docker, CoreOS and ETCDTim Nolet
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.jsPrabin Silwal
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.jsjacekbecela
 
Implementing Comet using PHP
Implementing Comet using PHPImplementing Comet using PHP
Implementing Comet using PHPKing Foo
 
A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...Tom Croucher
 
Presentation: Everything you wanted to know about writing async, high-concurr...
Presentation: Everything you wanted to know about writing async, high-concurr...Presentation: Everything you wanted to know about writing async, high-concurr...
Presentation: Everything you wanted to know about writing async, high-concurr...Baruch Sadogursky
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.jsorkaplan
 
Everything you wanted to know about writing async, concurrent http apps in java
Everything you wanted to know about writing async, concurrent http apps in java Everything you wanted to know about writing async, concurrent http apps in java
Everything you wanted to know about writing async, concurrent http apps in java Baruch Sadogursky
 
Groovy Powered Clean Code
Groovy Powered Clean CodeGroovy Powered Clean Code
Groovy Powered Clean Codenoamt
 
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryBuilding a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryTatsuhiko Miyagawa
 

Mais procurados (20)

Python, do you even async?
Python, do you even async?Python, do you even async?
Python, do you even async?
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
 
How do event loops work in Python?
How do event loops work in Python?How do event loops work in Python?
How do event loops work in Python?
 
About Node.js
About Node.jsAbout Node.js
About Node.js
 
Coroutines for Kotlin Multiplatform in Practise
Coroutines for Kotlin Multiplatform in PractiseCoroutines for Kotlin Multiplatform in Practise
Coroutines for Kotlin Multiplatform in Practise
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with Examples
 
Vert.x clustering on Docker, CoreOS and ETCD
Vert.x clustering on Docker, CoreOS and ETCDVert.x clustering on Docker, CoreOS and ETCD
Vert.x clustering on Docker, CoreOS and ETCD
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.js
 
Pycon - Python for ethical hackers
Pycon - Python for ethical hackers Pycon - Python for ethical hackers
Pycon - Python for ethical hackers
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Implementing Comet using PHP
Implementing Comet using PHPImplementing Comet using PHP
Implementing Comet using PHP
 
A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...
 
Presentation: Everything you wanted to know about writing async, high-concurr...
Presentation: Everything you wanted to know about writing async, high-concurr...Presentation: Everything you wanted to know about writing async, high-concurr...
Presentation: Everything you wanted to know about writing async, high-concurr...
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
Everything you wanted to know about writing async, concurrent http apps in java
Everything you wanted to know about writing async, concurrent http apps in java Everything you wanted to know about writing async, concurrent http apps in java
Everything you wanted to know about writing async, concurrent http apps in java
 
Groovy Powered Clean Code
Groovy Powered Clean CodeGroovy Powered Clean Code
Groovy Powered Clean Code
 
Building a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQueryBuilding a desktop app with HTTP::Engine, SQLite and jQuery
Building a desktop app with HTTP::Engine, SQLite and jQuery
 
WebSockets with PHP: Mission impossible
WebSockets with PHP: Mission impossibleWebSockets with PHP: Mission impossible
WebSockets with PHP: Mission impossible
 

Destaque

Lean Software Development: Validated Learning
Lean Software Development: Validated LearningLean Software Development: Validated Learning
Lean Software Development: Validated LearningÒscar Vilaplana
 
Real time server
Real time serverReal time server
Real time serverthepian
 
What is a tornado?
What is a tornado?What is a tornado?
What is a tornado?Austin
 
Tornado PowerPoint
Tornado PowerPointTornado PowerPoint
Tornado PowerPointHeather0235
 
Thunderstorms, Tornadoes, and Hurricanes
Thunderstorms, Tornadoes, and HurricanesThunderstorms, Tornadoes, and Hurricanes
Thunderstorms, Tornadoes, and Hurricanesbeckerdo
 
Natural disasters
Natural disasters Natural disasters
Natural disasters avy123
 

Destaque (8)

Lean Software Development: Validated Learning
Lean Software Development: Validated LearningLean Software Development: Validated Learning
Lean Software Development: Validated Learning
 
Tornado powerpoint
Tornado powerpointTornado powerpoint
Tornado powerpoint
 
Real time server
Real time serverReal time server
Real time server
 
What is a tornado?
What is a tornado?What is a tornado?
What is a tornado?
 
Tornado
TornadoTornado
Tornado
 
Tornado PowerPoint
Tornado PowerPointTornado PowerPoint
Tornado PowerPoint
 
Thunderstorms, Tornadoes, and Hurricanes
Thunderstorms, Tornadoes, and HurricanesThunderstorms, Tornadoes, and Hurricanes
Thunderstorms, Tornadoes, and Hurricanes
 
Natural disasters
Natural disasters Natural disasters
Natural disasters
 

Semelhante a Tornado in Depth

Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009pauldix
 
Architecting single-page front-end apps
Architecting single-page front-end appsArchitecting single-page front-end apps
Architecting single-page front-end appsZohar Arad
 
CS1520 Session 2 - Simple Router
CS1520 Session 2 - Simple RouterCS1520 Session 2 - Simple Router
CS1520 Session 2 - Simple RouterSalim Malakouti
 
Networked APIs with swift
Networked APIs with swiftNetworked APIs with swift
Networked APIs with swiftTim Burks
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.jsSu Zin Kyaw
 
Async programming and python
Async programming and pythonAsync programming and python
Async programming and pythonChetan Giridhar
 
Lets have some fun with twilio open tok
Lets have some fun with   twilio open tokLets have some fun with   twilio open tok
Lets have some fun with twilio open tokmirahman
 
How to build twitter bot using golang from scratch
How to build twitter bot using golang from scratchHow to build twitter bot using golang from scratch
How to build twitter bot using golang from scratchKaty Slemon
 
Intro To Spring Python
Intro To Spring PythonIntro To Spring Python
Intro To Spring Pythongturnquist
 
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017VMware Tanzu
 
TCP Sockets Tutor maXbox starter26
TCP Sockets Tutor maXbox starter26TCP Sockets Tutor maXbox starter26
TCP Sockets Tutor maXbox starter26Max Kleiner
 
Java Hurdling: Obstacles and Techniques in Java Client Penetration-Testing
Java Hurdling: Obstacles and Techniques in Java Client Penetration-TestingJava Hurdling: Obstacles and Techniques in Java Client Penetration-Testing
Java Hurdling: Obstacles and Techniques in Java Client Penetration-TestingTal Melamed
 
How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?
How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?
How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?Katy Slemon
 
Real timeninja - Codemotion 2015 Roma
Real timeninja - Codemotion 2015 RomaReal timeninja - Codemotion 2015 Roma
Real timeninja - Codemotion 2015 RomaMeanMilan
 
Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Cysinfo Cyber Security Community
 
TinyOS 2.1 tutorial at IPSN 2009
TinyOS 2.1 tutorial at IPSN 2009TinyOS 2.1 tutorial at IPSN 2009
TinyOS 2.1 tutorial at IPSN 2009gnawali
 
Symfony book 2.1
Symfony book 2.1Symfony book 2.1
Symfony book 2.1mooru
 
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010 Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010 Matt Gauger
 
Web Server and how we can design app in C#
Web Server and how we can design app  in C#Web Server and how we can design app  in C#
Web Server and how we can design app in C#caohansnnuedu
 

Semelhante a Tornado in Depth (20)

Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009Synchronous Reads Asynchronous Writes RubyConf 2009
Synchronous Reads Asynchronous Writes RubyConf 2009
 
Architecting single-page front-end apps
Architecting single-page front-end appsArchitecting single-page front-end apps
Architecting single-page front-end apps
 
CS1520 Session 2 - Simple Router
CS1520 Session 2 - Simple RouterCS1520 Session 2 - Simple Router
CS1520 Session 2 - Simple Router
 
Networked APIs with swift
Networked APIs with swiftNetworked APIs with swift
Networked APIs with swift
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Async programming and python
Async programming and pythonAsync programming and python
Async programming and python
 
Lets have some fun with twilio open tok
Lets have some fun with   twilio open tokLets have some fun with   twilio open tok
Lets have some fun with twilio open tok
 
How to build twitter bot using golang from scratch
How to build twitter bot using golang from scratchHow to build twitter bot using golang from scratch
How to build twitter bot using golang from scratch
 
Intro To Spring Python
Intro To Spring PythonIntro To Spring Python
Intro To Spring Python
 
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
Stéphane Nicoll and Madhura Bhave at SpringOne Platform 2017
 
TCP Sockets Tutor maXbox starter26
TCP Sockets Tutor maXbox starter26TCP Sockets Tutor maXbox starter26
TCP Sockets Tutor maXbox starter26
 
Java Hurdling: Obstacles and Techniques in Java Client Penetration-Testing
Java Hurdling: Obstacles and Techniques in Java Client Penetration-TestingJava Hurdling: Obstacles and Techniques in Java Client Penetration-Testing
Java Hurdling: Obstacles and Techniques in Java Client Penetration-Testing
 
How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?
How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?
How to Build Real-time Chat App with Express, ReactJS, and Socket.IO?
 
Real timeninja - Codemotion 2015 Roma
Real timeninja - Codemotion 2015 RomaReal timeninja - Codemotion 2015 Roma
Real timeninja - Codemotion 2015 Roma
 
Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1
 
TinyOS 2.1 tutorial at IPSN 2009
TinyOS 2.1 tutorial at IPSN 2009TinyOS 2.1 tutorial at IPSN 2009
TinyOS 2.1 tutorial at IPSN 2009
 
Symfony book 2.1
Symfony book 2.1Symfony book 2.1
Symfony book 2.1
 
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010 Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010
Matt Gauger - Lamp vs. the world - MKE PHP Users Group - December 14, 2010
 
Proposal
ProposalProposal
Proposal
 
Web Server and how we can design app in C#
Web Server and how we can design app  in C#Web Server and how we can design app  in C#
Web Server and how we can design app in C#
 

Mais de Òscar Vilaplana

Mais de Òscar Vilaplana (7)

Type Checking in Python at Tiqets
Type Checking in Python at TiqetsType Checking in Python at Tiqets
Type Checking in Python at Tiqets
 
Celery
CeleryCelery
Celery
 
Handling Massive Traffic with Python
Handling Massive Traffic with PythonHandling Massive Traffic with Python
Handling Massive Traffic with Python
 
Software Architecture: How Much Design?
Software Architecture: How Much Design?Software Architecture: How Much Design?
Software Architecture: How Much Design?
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
Scrum
ScrumScrum
Scrum
 
Scaling
ScalingScaling
Scaling
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
[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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
[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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Tornado in Depth