SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
Jupyter Kernel
How to Speak in Another Language
How to Make a
Jupyter Kernel:
1: 5 ømq sockets
2: Implement Protocol
3. Holy Shit,
YOU RUINED EVERYTHING,
LIKE EVERYTHING YOU DO
4. This Kernel
Is Like Your Life
5. Begin a Lot of Things,
Left Undone
6. And Nobody Loves You
Understanding
Jupyter Kernel
Agenda
• Jupyter, IPython, notebook, console, client, kernel
• The Interactive Computing Protocol
• Implementing a Kernel
• Live Demo
About this guy
• 廖偉涵 Adrian Liaw
• github.com/adrianliaw
• High School Homeschooler
• A Pythonista
• Student of Udacity’s

Data Analyst Nanodegree
About this guy
• Amateur Pianist
• Classical Music Lover
• Coffee Shop Lover
IPYTHON
ENHANCED PYTHON SHELL
IPYTHON NOTEBOOK
WEB-BASED NOTEBOOK ENVIRONMENT
The Big Split™
Jupyter Notebook
(With R Kernel)
-Project Jupyter
“Project Jupyter was born out of the
IPython Project in 2014 as it evolved
to support interactive data science
and scientific computing across all
programming languages.”
CLIENT KERNEL
ØMQ Sockets
CLIENT KERNEL
Execute “10 + 3”
CLIENT KERNEL
Result: 13
CLIENT
KERNEL
CLIENT
What’s Inside IPython
• The Interactive IPython Shell (No ØMQ)
• Magic Commands
• Auto Word Completer
• Beautiful Traceback
• Shell History Management
Uh, And Kernel?
IPyKernel
• Jupyter’s “Kernel 0”
• ØMQ Handlers
• github.com/ipython/ipykernel
What’s Inside Jupyter
• Web-based Notebook Interface & nbconvert
• Interactive Qt Console
• Terminal-based Console
• Spec for Notebook Document Format
• Spec for Interactive Computing Protocol
CLIENT KERNEL
ØMQ Sockets
Interactive Computing
Protocol
• i.e. Jupyter Messaging Protocol
• Communication Between Kernel and Client
• Based on ØMQ and JSON
DEALER ROUTER
CLIENT KERNEL
Shell
SUB PUBIOPub
DEALER ROUTER
stdin
DEALER ROUTER
Control
REQ REP
Heartbeat
Connection File
{
"transport": "tcp",
"ip": "127.0.0.1",
"shell_port": 56166,
"iopub_port": 56167,
"stdin_port": 56168,
"control_port": 56169,
"hb_port": 56170,
"signature_scheme": "hmac-sha256",
"key": "<hashed key>"
}
Message Format
{
'header' : {
'msg_id' : str,
'username' : str,
'session' : str,
'date': str,
'msg_type' : str,
'version' : '5.0',
},
'parent_header' : dict,
'metadata' : dict,
'content' : dict,
}
http://bit.ly/JupyterMessaging
{
"header": {
"msg_type": "kernel_info_request",
...
},
"content": {},
}
CLIENT KERNEL
Shell
CLIENT KERNEL
Shell
{
"header": {
"msg_type": "kernel_info_reply",
...
},
"parent_header": {...},
"content": {
"banner": "Python 3.5.1 ... IPython 4.0.0 ...",
"implementation": "ipython",
"implementation_version": "4.0.0",
"language_info": {
"name": "python",
"version": "3.5.1",
...
},
},
}
CLIENT KERNELShell
{
"header": {
"msg_type": "execute_request",
...
},
"content": {
"code": "print('HAI')",
"silent": False,
"store_history": True,
},
}
CLIENT KERNELIOPub
{
"header": {"msg_type": "stream", ...},
"parent_header": {...},
"content": {
"name": "stdout",
"text": "HAIn",
},
}
CLIENT KERNELShell
{
"header": {
"msg_type": "execute_reply",
...
},
"parent_header": {...},
"content": {
"execution_count": 1,
"status": "ok",
"user_expressions": {},
},
}
CLIENT KERNELShell
{
"header": {"msg_type": "execute_request", ...},
"content": {
"code": "pd.read_csv('foo.csv')",
"silent": False,
"store_history": True,
},
}
CLIENT KERNELIOPub
{
"header": {"msg_type": "execute_result", ...},
"parent_header": {...},
"content": {
"execution_count": 5,
"data": {
"text/plain": " col1 col2n A 3n....",
"text/html": "<div><table>...</table></div>",
},
},
}
CLIENT KERNELShell
{
"header": {
"msg_type": "execute_reply",
...
},
"parent_header": {...},
"content": {
"execution_count": 5,
"status": "ok",
"user_expressions": {},
},
}
CLIENT KERNELShell
{
"header": {"msg_type": "execute_request", ...},
"content": {
"code": "read.csv('table.csv')",
"silent": False,
"store_history": True,
},
}
CLIENT KERNELIOPub
{
"header": {"msg_type": "execute_result", ...},
"parent_header": {...},
"content": {
"execution_count": 1,
"data": {
"text/plain": " col1 col2n A 3n....",
"text/html": "<table>...</table>",
},
},
}
CLIENT KERNELShell
{
"header": {
"msg_type": "execute_reply",
...
},
"parent_header": {...},
"content": {
"execution_count": 1,
"status": "ok",
"user_expressions": {},
},
}
MAKING A KERNEL
Kernel Types
• Native Kernel
• Python Wrapper Kernel
• REPL Wrapper Kernel
IRKernel
11. zmqctx <<- zmq.ctx.new()
12. sockets <<- list(
13. hb = zmq.socket(zmqctx, .pbd_env$ZMQ.ST$REP),
14. iopub = zmq.socket(zmqctx, .pbd_env$ZMQ.ST$PUB),
15. control = zmq.socket(zmqctx, .pbd_env$ZMQ.ST$ROUTER),
16. stdin = zmq.socket(zmqctx, .pbd_env$ZMQ.ST$ROUTER),
17. shell = zmq.socket(zmqctx, .pbd_env$ZMQ.ST$ROUTER))
IRKernel
IRuby
IHaskell
cling
IJulia
IScala
Lua Kernel
Clojure-Kernel
ITorch
IJavascript
ipykernel
Wrapper Kernel
• Python-driven
• ipykernel.kernelbase.Kernel
• http://bit.ly/WrapperKernel
from ipykernel.kernelbase import Kernel
class MyKernel(Kernel):
def do_execute
def do_complete
def do_history
def do_shutdown
Hy Kernel
Redis Kernel
Xonsh
C Kernel
Matlab Kernel
SAS Kernel
REPL Wrapper
from pexpect.replwrap
import REPLWrapper
Octave Kernel
Jupyter Powershell
Bash Kernel
Mongo Kernel
Scilab Kernel
LIVE DEMO
Q&A
Reference
• P.3, P.4, P.17, P.20, P.50 images: Project Jupyter
• P.6, P.7, P.8 images: Molg H.
• P.16: Project Jupyter
• P.11 image: Toomore Chiang
• P.12 image: Virginia Cheng
• P.13 image: ipython
• P.45 image: R

Contenu connexe

Tendances

그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
Jeongkyu Shin
 

Tendances (20)

JupyterHub tutorial at JupyterCon
JupyterHub tutorial at JupyterConJupyterHub tutorial at JupyterCon
JupyterHub tutorial at JupyterCon
 
Introduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksIntroduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter Notebooks
 
Puppet DSL: back to the basics
Puppet DSL: back to the basicsPuppet DSL: back to the basics
Puppet DSL: back to the basics
 
Clean Code in Jupyter notebook
Clean Code in Jupyter notebookClean Code in Jupyter notebook
Clean Code in Jupyter notebook
 
Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우Re: 제로부터시작하는텐서플로우
Re: 제로부터시작하는텐서플로우
 
A Kanterakis - PyPedia: a python crowdsourcing development environment for bi...
A Kanterakis - PyPedia: a python crowdsourcing development environment for bi...A Kanterakis - PyPedia: a python crowdsourcing development environment for bi...
A Kanterakis - PyPedia: a python crowdsourcing development environment for bi...
 
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
 
Parallel Programming in Python: Speeding up your analysis
Parallel Programming in Python: Speeding up your analysisParallel Programming in Python: Speeding up your analysis
Parallel Programming in Python: Speeding up your analysis
 
How to Become a Hacker?
How to Become a Hacker?How to Become a Hacker?
How to Become a Hacker?
 
Machine Learning in Google I/O 19
Machine Learning in Google I/O 19Machine Learning in Google I/O 19
Machine Learning in Google I/O 19
 
Creating Art with a Raspberry Pi - Stephanie Nemeth - Codemotion Amsterdam 2017
Creating Art with a Raspberry Pi - Stephanie Nemeth - Codemotion Amsterdam 2017Creating Art with a Raspberry Pi - Stephanie Nemeth - Codemotion Amsterdam 2017
Creating Art with a Raspberry Pi - Stephanie Nemeth - Codemotion Amsterdam 2017
 
Welcome to Python
Welcome to PythonWelcome to Python
Welcome to Python
 
Intro to Python Workshop San Diego, CA (January 19, 2013)
Intro to Python Workshop San Diego, CA (January 19, 2013)Intro to Python Workshop San Diego, CA (January 19, 2013)
Intro to Python Workshop San Diego, CA (January 19, 2013)
 
Python pyenv virtualenv
Python pyenv virtualenvPython pyenv virtualenv
Python pyenv virtualenv
 
ROOT 2018: iminuit and MINUIT2 Standalone
ROOT 2018: iminuit and MINUIT2 StandaloneROOT 2018: iminuit and MINUIT2 Standalone
ROOT 2018: iminuit and MINUIT2 Standalone
 
C# - Raise the bar with functional & immutable constructs (Dutch)
C# - Raise the bar with functional & immutable constructs (Dutch)C# - Raise the bar with functional & immutable constructs (Dutch)
C# - Raise the bar with functional & immutable constructs (Dutch)
 
Python for All
Python for All Python for All
Python for All
 
10 popular software programs written in python
10 popular software programs written in python 10 popular software programs written in python
10 popular software programs written in python
 
2019 IRIS-HEP AS workshop: Particles and decays
2019 IRIS-HEP AS workshop: Particles and decays2019 IRIS-HEP AS workshop: Particles and decays
2019 IRIS-HEP AS workshop: Particles and decays
 
Pybind11 - SciPy 2021
Pybind11 - SciPy 2021Pybind11 - SciPy 2021
Pybind11 - SciPy 2021
 

En vedette

Capítol 1 música amagada
Capítol 1 música amagadaCapítol 1 música amagada
Capítol 1 música amagada
Joanprofe
 
仕事で使うF#
仕事で使うF#仕事で使うF#
仕事で使うF#
bleis tift
 
ปรัชญากับวิถีชีวิต
ปรัชญากับวิถีชีวิตปรัชญากับวิถีชีวิต
ปรัชญากับวิถีชีวิต
Padvee Academy
 

En vedette (17)

D3 in Jupyter : PyData NYC 2015
D3 in Jupyter : PyData NYC 2015D3 in Jupyter : PyData NYC 2015
D3 in Jupyter : PyData NYC 2015
 
Capítol 1 música amagada
Capítol 1 música amagadaCapítol 1 música amagada
Capítol 1 música amagada
 
Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.
 
「民進党ゆるキャラ総選挙」人気を予測しました
「民進党ゆるキャラ総選挙」人気を予測しました「民進党ゆるキャラ総選挙」人気を予測しました
「民進党ゆるキャラ総選挙」人気を予測しました
 
Sadigh Gallery Spring Savings Events 2017
Sadigh Gallery Spring Savings Events 2017Sadigh Gallery Spring Savings Events 2017
Sadigh Gallery Spring Savings Events 2017
 
Update version of the SMBE/SESBE Lecture on ENCODE & junk DNA (Graur, Decembe...
Update version of the SMBE/SESBE Lecture on ENCODE & junk DNA (Graur, Decembe...Update version of the SMBE/SESBE Lecture on ENCODE & junk DNA (Graur, Decembe...
Update version of the SMBE/SESBE Lecture on ENCODE & junk DNA (Graur, Decembe...
 
Presentacion estrella rural
Presentacion estrella ruralPresentacion estrella rural
Presentacion estrella rural
 
Introduction to customer success by Guy Nirpaz @ Totango
Introduction to customer success  by Guy Nirpaz @ TotangoIntroduction to customer success  by Guy Nirpaz @ Totango
Introduction to customer success by Guy Nirpaz @ Totango
 
インクルーシブ教育システムの構築に向けたスクールワイドな支援モデルの可能性
インクルーシブ教育システムの構築に向けたスクールワイドな支援モデルの可能性インクルーシブ教育システムの構築に向けたスクールワイドな支援モデルの可能性
インクルーシブ教育システムの構築に向けたスクールワイドな支援モデルの可能性
 
White paper on french companies in india
White paper on french companies in indiaWhite paper on french companies in india
White paper on french companies in india
 
Fc - 5 fortes motivos meninas aprenderem a programar já
Fc - 5 fortes motivos meninas aprenderem a programar jáFc - 5 fortes motivos meninas aprenderem a programar já
Fc - 5 fortes motivos meninas aprenderem a programar já
 
仕事で使うF#
仕事で使うF#仕事で使うF#
仕事で使うF#
 
Pieredze daudzdzīvokļu dzīvojamo māju siltināšanā
Pieredze daudzdzīvokļu dzīvojamo māju siltināšanāPieredze daudzdzīvokļu dzīvojamo māju siltināšanā
Pieredze daudzdzīvokļu dzīvojamo māju siltināšanā
 
ปรัชญากับวิถีชีวิต
ปรัชญากับวิถีชีวิตปรัชญากับวิถีชีวิต
ปรัชญากับวิถีชีวิต
 
How *NOT* to firmware
How *NOT* to firmwareHow *NOT* to firmware
How *NOT* to firmware
 
1ST YEAR Infographics about team sport
 1ST YEAR Infographics about team sport 1ST YEAR Infographics about team sport
1ST YEAR Infographics about team sport
 
Making Story Apps - The Art of Little Red Riding Hood
Making Story Apps - The Art of Little Red Riding HoodMaking Story Apps - The Art of Little Red Riding Hood
Making Story Apps - The Art of Little Red Riding Hood
 

Similaire à Jupyter Kernel: How to Speak in Another Language

Python @ PiTech - March 2009
Python @ PiTech - March 2009Python @ PiTech - March 2009
Python @ PiTech - March 2009
tudorprodan
 
The Five Stages of Enterprise Jupyter Deployment
The Five Stages of Enterprise Jupyter DeploymentThe Five Stages of Enterprise Jupyter Deployment
The Five Stages of Enterprise Jupyter Deployment
Frederick Reiss
 

Similaire à Jupyter Kernel: How to Speak in Another Language (20)

05 python.pdf
05 python.pdf05 python.pdf
05 python.pdf
 
Building custom kernels for IPython
Building custom kernels for IPythonBuilding custom kernels for IPython
Building custom kernels for IPython
 
Python @ PiTech - March 2009
Python @ PiTech - March 2009Python @ PiTech - March 2009
Python @ PiTech - March 2009
 
Hello World! with Python
Hello World! with PythonHello World! with Python
Hello World! with Python
 
A Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfA Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdf
 
Jupyter Enterprise Gateway Overview
Jupyter Enterprise Gateway OverviewJupyter Enterprise Gateway Overview
Jupyter Enterprise Gateway Overview
 
Getting Started with Python
Getting Started with PythonGetting Started with Python
Getting Started with Python
 
Building analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsBuilding analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernels
 
Jupyter con meetup extended jupyter kernel gateway
Jupyter con meetup   extended jupyter kernel gatewayJupyter con meetup   extended jupyter kernel gateway
Jupyter con meetup extended jupyter kernel gateway
 
Luciano Resende - Scaling Big Data Interactive Workloads across Kubernetes Cl...
Luciano Resende - Scaling Big Data Interactive Workloads across Kubernetes Cl...Luciano Resende - Scaling Big Data Interactive Workloads across Kubernetes Cl...
Luciano Resende - Scaling Big Data Interactive Workloads across Kubernetes Cl...
 
Data science apps powered by Jupyter Notebooks
Data science apps powered by Jupyter NotebooksData science apps powered by Jupyter Notebooks
Data science apps powered by Jupyter Notebooks
 
Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.
 
Python final presentation kirti ppt1
Python final presentation kirti ppt1Python final presentation kirti ppt1
Python final presentation kirti ppt1
 
Python with dataScience
Python with dataSciencePython with dataScience
Python with dataScience
 
Python 1
Python 1Python 1
Python 1
 
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
 
The Five Stages of Enterprise Jupyter Deployment
The Five Stages of Enterprise Jupyter DeploymentThe Five Stages of Enterprise Jupyter Deployment
The Five Stages of Enterprise Jupyter Deployment
 
python presntation 2.pptx
python presntation 2.pptxpython presntation 2.pptx
python presntation 2.pptx
 
Introduction to python 3 2nd round
Introduction to python 3   2nd roundIntroduction to python 3   2nd round
Introduction to python 3 2nd round
 
A Whirlwind Tour Of Python
A Whirlwind Tour Of PythonA Whirlwind Tour Of Python
A Whirlwind Tour Of Python
 

Plus de Wey-Han Liaw

Plus de Wey-Han Liaw (13)

Python 官方文件中文翻譯專案 - 探討翻譯專案的貢獻流程
Python 官方文件中文翻譯專案 - 探討翻譯專案的貢獻流程Python 官方文件中文翻譯專案 - 探討翻譯專案的貢獻流程
Python 官方文件中文翻譯專案 - 探討翻譯專案的貢獻流程
 
Educational Code Reviews
Educational Code ReviewsEducational Code Reviews
Educational Code Reviews
 
Learning: Being as a Homeschooled Student
Learning: Being as a Homeschooled StudentLearning: Being as a Homeschooled Student
Learning: Being as a Homeschooled Student
 
Udacity Taipei meetup #2 如何駕馭線上課程
Udacity Taipei meetup #2 如何駕馭線上課程Udacity Taipei meetup #2 如何駕馭線上課程
Udacity Taipei meetup #2 如何駕馭線上課程
 
Python自學從你小時候開始
Python自學從你小時候開始Python自學從你小時候開始
Python自學從你小時候開始
 
Meteor Taipei 2016 January talk -- Mantra
Meteor Taipei 2016 January talk -- MantraMeteor Taipei 2016 January talk -- Mantra
Meteor Taipei 2016 January talk -- Mantra
 
Understanding Meteor Stack
Understanding Meteor StackUnderstanding Meteor Stack
Understanding Meteor Stack
 
Async, await
Async, awaitAsync, await
Async, await
 
SITCON summer camp 2015: Adrian說他那身邊的一堆社群
SITCON summer camp 2015: Adrian說他那身邊的一堆社群SITCON summer camp 2015: Adrian說他那身邊的一堆社群
SITCON summer camp 2015: Adrian說他那身邊的一堆社群
 
NCCU 0617 talk
NCCU 0617 talkNCCU 0617 talk
NCCU 0617 talk
 
Implementation of Rubik's Cube Formula in PyCuber
Implementation of Rubik's Cube Formula in PyCuberImplementation of Rubik's Cube Formula in PyCuber
Implementation of Rubik's Cube Formula in PyCuber
 
PyCon 2015 Crawler Tutorial Explain Cookies
PyCon 2015 Crawler Tutorial Explain CookiesPyCon 2015 Crawler Tutorial Explain Cookies
PyCon 2015 Crawler Tutorial Explain Cookies
 
PyCon 2015 Crawler Tutorial Explain Encoding
PyCon 2015 Crawler Tutorial Explain EncodingPyCon 2015 Crawler Tutorial Explain Encoding
PyCon 2015 Crawler Tutorial Explain Encoding
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Jupyter Kernel: How to Speak in Another Language