SlideShare a Scribd company logo
1 of 187
Download to read offline
NAS ENTRANHAS
DO
WEBKIT E DO V8
ZAEDY SAYÃO @zaedysayao
Zaedy Dantas Sayão
@zaedysayao
@javamanrj
@javamanrj
@WORKS
http://about.me/zaedy
BÁSICO
CONCEITO
O QUE É?
BROWSER
X
USER INTERFACE
BROWSER ENGINE
RENDER ENGINE
NETWORK
I/O
JAVASCRIPT
ENGINE
GRAPHICS
STACK
USER INTERFACE
BROWSER ENGINE
RENDER ENGINE
NETWORK
I/O
JAVASCRIPT
ENGINE
GRAPHICS
STACK
W
EBKIT
WEBKIT
NÃO É UM
BROWSER
WEBKIT
⊑
BROWSER
ENGINE
RENDER
ENGINE
ENGINE?
CONJUNTO
DE LIBS
CÓDIGO
FAZ O QUE?
C
Ó
D
I
G
O
C
Ó
D
I
G
O
C
Ó
D
I
G
O
C
Ó
D
I
G
O
C
Ó
D
I
G
O
42
C
Ó
D
I
G
O
C
Ó
D
I
G
O
HTML
CSS
JS
SVG
C
Ó
D
I
G
O
PAINT
HTML
CSS
JS
SVG
C
Ó
D
I
G
O
PAINT
HTML
CSS
JS
SVG
LAYOUT
PAST
HISTÓRIA
2001
KHTML
2005
CONTRIBUTOR
CONTRIBUTOR
CONTRIBUTOR
COMMITER
CONTRIBUTOR
COMMITER
CONTRIBUTOR
COMMITER
REVIEWER
APPLE
ENVIA
CONTA SVN
ONDE
RODA?
EVERYWHERE
APPLE
GOOGLE
NOKIA
BLACKBERRY
IGALIA (GNOME)
GETTING
CODE
svn checkout https://svn.webkit.org/repository/webkit/trunk
git clone git://git.webkit.org/WebKit.git
svn checkout https://svn.webkit.org/repository/webkit/trunk
git clone git://git.webkit.org/WebKit.git
1.2GB
svn checkout https://svn.webkit.org/repository/webkit/trunk
git clone git://git.webkit.org/WebKit.git
1.2GB
80% TESTES
BUILD
WebKitTools/Scripts/build-webkit
--qt for Qt,
--gtk for Gtk+
--debug for “Debug” mode
RUN
WebKitTools/Scripts/run-launcher
--qt for Qt,
--gtk for Gtk+
--debug for “Debug” mode
PORTS
SAFARI
IOS ≠WINDOWS
APPLE
PORT DO
COREFOUNDATION
PARA O WINDOWS
CHROME
CHROMIUM
ANDROID
QTWEBKIT
WEBKITGTK+
WEBKIT
NIGHTLY
MAC PORT -> SAFARI
PORTS
INTERFACE
IMPLEMENTAÇÃO
<input type=”number”/>
<input type=”number”/>
WEBKIT
<input type=”number” />
WebKit
ursday, November 3, 2011
<input type=”number”/>
WEBKIT
<input type=”number” />
WebKit
ursday, November 3, 2011
<input type=”number”/>
PINTA
PARA MIM
WEBKIT
<input type=”number” />
WebKit
ursday, November 3, 2011
<input type=”number”/>
PINTA
PARA MIM
WEBKIT
PORT
<input type=”number” />
WebKit
ursday, November 3, 2011
<input type=”number”/>
PINTA
PARA MIM
input type=”number” />WEBKIT
PORT
<input type=”number” />
WebKit
ursday, November 3, 2011
<input type=”number”/>
PINTA
PARA MIM
input type=”number” />
EU SEI FAZER!
WEBKIT
PORT
<input type=”number” />
WebKit
ursday, November 3, 2011
<input type=”number”/>
WEBKIT
123
<input type=”number” />
WebKit
ursday, November 3, 2011
<input type=”number”/>
WEBKIT
123
AQUI
<input type=”number”/>
input type=”number” />
PORT
123
<input type=”number”/>
input type=”number” />
PORT
123
BLZ!
<input type=”number”/>
input type=”number” />
PORT
123
BLZ!
WEBKIT SABE
COMO
DESENHAR
RESPONSABILIDADE
É DO PORT
(COREGRAPHICS)
QTWEBKIT
QNETWORKACESSMANAGER
KDEWEBKIT
KDE NETWORK LAYER
NETWORK
INTERFACE
NADA DE HTTP, SSL...
MAS TEM CHAMADAS PARA
ENVIO DE DADOS
IMPLEMENTAÇÃO
LIB DO SISTEMA
SE QUISER FAZER
UM PORT?
IMPLEMENTE AS
INTERFACES
SE NÃO
IMPLEMENTAR?
fillRoundedRect()
BOTÃO
QUADRADO
SE WEBKIT
->
MENOS UM
BROWSER PARA
TESTAR
#1
NOVA FEATURE
->
DISPONÍVEL EM
TODO PORT
#2
WEBKIT
TAMBÉM É UMA
API
WEBKIT2
MULTI-PROCESS
JAVASCRIPTCORE
ENGINE
WEBCORE
CSS, HTML, DOM,
RENDER
WTF
WEB TEMPLATE
FRAMEWORK
PROPÓSITOS
WEBCORE
LOADING
PARSING
LAYOUT
PAINT
HTML EDITING
JS BINDINGS
LOADING
PEGANDO DADOS
COMPLICADA!!!
WEBKIT
WEBCORE
WEBCORE/LOADER
WEBCORE/PLATFORM/NETWORK
FRAMELOADERCLIENT
2 PASSOS
FRAMES E RESOURCES
LOADING A
FRAME
CLASSE FRAMELOADER
1)POLICY STAGE
BLOCK POP-UP
CROSS-PROCESS NAVIGATION
2)PROVISIONAL
STAGE
DOWNLOAD OU COMMIT
EX: LINK
3)COMMITED
STAGE
START PARSING
LOADING
SUBRESOURCES
DOCLOADER
CACHE
DOCLOADER
PEGA UMA URL
VERIFICA NO CACHE OU
LOADER
RETORNA UM
CACHEDRESOURCE
CACHEDRESOURCE
RESPONDE CALLBACK
PRODUZ UM OBJETO
(IMAGEM, FONTE...)
PARSING
HTML x XML
HTMLTOKENIZER E HTMLPARSER
XMLTOKENIZER
OUTRAS TASKS:
PRE-LOAD SCANNING
(CARREGAMENTO DE CSS ANTES
DO PARSE)
DOM TREE
RENDEROBJECT TREE
RENDERSTYLE TREE
RENDERLAYER TREE
LINEBOX TREE
LOADING -> SOURCE
PARSING -> DOM TREE
attach() -> RENDEROBJECT TREE
STYLE RESOLUTION -> RENDERSTYLE
TREE
LAYOUT -> RENDERLAYER TREE
LINEBOX TREE
DOM TREE
<html>
<head>
<title>
foo
</title>
<head>
HTMLDocument
HTMLHTMLElement
HTMLHeadElement
HTMLTitleElement
Text(“foo”)
RENDER TREE
LAYOUT
PAINTING
HIT TESTING
RENDER TREE
RENDEROBJECTS
RENDERSTYLE
RENDERLAYERS
INLINEBOXES
RENDEROBJECT
class RenderObject {
virtual void layout() = 0;
virtual void paint(PaintInfo) = 0;
virtual IntRect repaintRect() = 0;
Node* node();
RenderStyle* style() const;
RenderLayer* containingLayer();
.....
}
RENDEROBJECT
RenderBlock(<div>, <p>)
RenderInline(<span>, <b>, <i>)
RenderImage(<image>)
RenderText(#text)
RenderTableCell (<td>)
OBJETOS DA
ENGINE JSString
Array
Number
Prototypes
.__proto__
.callee
__defineGetter__
.toString()
ABERTAS
FECHADAS
SPIDER MONKEY
JAVASCRIPTCORE (JSC, NITRO)
V8
V8
PARSER RUNTIME
INTERPRETER
PARSER
TOKENIZE
var answer = 42;
TOKENIZE
var answer = 42;
keyword
TOKENIZE
var answer = 42;
keyword identifier
TOKENIZE
var answer = 42;
keyword identifier
sinal igual
TOKENIZE
var answer = 42;
keyword identifier
sinal igual
número
TOKENIZE
var answer = 42;
keyword identifier
sinal igual
número
ponto e
vírgula
TOKENIZER
NOV8
src/scanner.*
KEYWORD
X
IDENTIFIER
#1
PERGUNTA 1
instanceof - instanceComponent
#1
PERGUNTA 1
instanceof - instanceComponent
#1
PERGUNTA 1
instanceof - instanceComponent
#1
PERGUNTA 1
#2
PERGUNTA 2
A G H J K L M O P Q XY Z
#2
PERGUNTA 2
GRAMÁTICA
SouceElement :: (Statement)*
FunctionDeclaration ::
‘function’ Identifier ‘(‘FormalParameters’)’	

‘{‘FunctionBody’}’
SYNTAX TREE
IDENTIFIER LITERAL
CONSTANT
VARIABLE
DECLARATION
answer 42
CONSEQUÊNCIA
ALTERNATIVA
BRANCH
VELHO
NOVO
CONDIÇÃO
idade > 60
PARSER NOV8
src/parser.*
CODE TRACE
(EVAL)
SCRIPT :: COMPILE
SCRIPT :: NEW
INTERNAL :: COMPILER :: COMPILE
INTERNAL :: MAKEFUNCIONINFO
INTERNAL :: PARSEAPI :: PARSE
INTERPRETER
var answer = 42;
var answer = 42;
Declare um objeto local
Chame esse objeto de “answer”
Crie um número 42
De “assign” do número ao objeto
IDENTIFIER LITERAL
CONSTANT
VARIABLE
DECLARATION
answer 42
VELOCIDADE
BYTECODE
SERIALIZA EM UMA
LISTA DE “AÇÕES”
COMPILA O
BYTECODE
PARA ASSEMBLY
JIT (=JUST-IN-TIME) COMPILE
shell --print-code
shell --expose-debug-as deb
shell --print-code
shell --expose-debug-as deb
deb.Debug.disassemble(f)
LAZY
foobar = function(x, y, z)
{
...
}
foobar(x, y, z);
foobar = function(x, y, z)
{
...
}
foobar(x, y, z);
Analiza sintaxe
Guarda posição da função
foobar = function(x, y, z)
{
...
}
foobar(x, y, z);
Analiza sintaxe
Guarda posição da função
Compila e roda
foobar = function(x, y, z)
{
...
}
foobar(x, y, z);
Analiza sintaxe
Guarda posição da função
foobar = function(x, y, z, run)
{
...
}
foobar(x, y, z, false);
Compila e roda
foobar = function(x, y, z)
{
...
}
foobar(x, y, z);
Analiza sintaxe
Guarda posição da função
foobar = function(x, y, z, run)
{
...
}
foobar(x, y, z, false);
HACK
Compila e roda
RUNTIME
Date.now()
código
nativo
código
JavaScript
BRIDGE
BRIDGING
C++
Primitive
Date
Object
Array
Function
External
Handle<FunctionTemplate> systemObject = FunctionTemplate::New();
systemObject->Set(String::New(“exit”)),
FunctionTemplate::New(system_exit)->GetFunction());
static Handle<value> system_exit(const Arguments& args)
{
int status = args[0]->Int32Value();
::exit(status);
return Undefined();
}
EXPONDO
FUNÇÃO
JSLINT
JSBEAUTIFY
YUI COMPRESSOR
OBRIGADO!
@zaedysayao

More Related Content

Similar to Nas entranhas do WebKit e do V8 - The Developers Conference 2013 SP - TDC2013

Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafGetting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafMasatoshi Tada
 
4 Node.js Gotchas: What your ops team needs to know
4 Node.js Gotchas: What your ops team needs to know4 Node.js Gotchas: What your ops team needs to know
4 Node.js Gotchas: What your ops team needs to knowDynatrace
 
Be Mean To Your Code: Rugged Development & You
Be Mean To Your Code: Rugged Development & YouBe Mean To Your Code: Rugged Development & You
Be Mean To Your Code: Rugged Development & YouJames Wickett
 
Top 100 .NET Interview Questions and Answers
Top 100 .NET Interview Questions and AnswersTop 100 .NET Interview Questions and Answers
Top 100 .NET Interview Questions and AnswersTung Nguyen Thanh
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Matt Raible
 
Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAriya Hidayat
 
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
 Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c... Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...AboutYouGmbH
 
Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - RWX 2017Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - RWX 2017Matt Raible
 
The Wizardry of Braintree hosted fields - PHP
The Wizardry of Braintree hosted fields - PHPThe Wizardry of Braintree hosted fields - PHP
The Wizardry of Braintree hosted fields - PHPSteven Cooper
 
Razor and the Art of Templating
Razor and the Art of TemplatingRazor and the Art of Templating
Razor and the Art of TemplatingJess Chadwick
 
Introduction to ASP.NET MVC 2
Introduction to ASP.NET MVC 2Introduction to ASP.NET MVC 2
Introduction to ASP.NET MVC 2Joe Wilson
 
Webové aplikace v JavaScriptu
Webové aplikace v JavaScriptuWebové aplikace v JavaScriptu
Webové aplikace v JavaScriptuPavol Hejný
 
Introduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript ConferenceIntroduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript ConferenceBo-Yi Wu
 
Modular Web Applications With Netzke
Modular Web Applications With NetzkeModular Web Applications With Netzke
Modular Web Applications With Netzkenetzke
 
CCM Escape Case Study - SkySQL Paris Meetup 17.12.2013
CCM Escape Case Study - SkySQL Paris Meetup 17.12.2013CCM Escape Case Study - SkySQL Paris Meetup 17.12.2013
CCM Escape Case Study - SkySQL Paris Meetup 17.12.2013MariaDB Corporation
 
computer website
computer websitecomputer website
computer websitera na
 
Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++corehard_by
 
Dynamic Application Development by NodeJS ,AngularJS with OrientDB
Dynamic Application Development by NodeJS ,AngularJS with OrientDBDynamic Application Development by NodeJS ,AngularJS with OrientDB
Dynamic Application Development by NodeJS ,AngularJS with OrientDBApaichon Punopas
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8Giovanni Bassi
 

Similar to Nas entranhas do WebKit e do V8 - The Developers Conference 2013 SP - TDC2013 (20)

Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafGetting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with Thymeleaf
 
4 Node.js Gotchas: What your ops team needs to know
4 Node.js Gotchas: What your ops team needs to know4 Node.js Gotchas: What your ops team needs to know
4 Node.js Gotchas: What your ops team needs to know
 
Be Mean To Your Code: Rugged Development & You
Be Mean To Your Code: Rugged Development & YouBe Mean To Your Code: Rugged Development & You
Be Mean To Your Code: Rugged Development & You
 
Top 100 .NET Interview Questions and Answers
Top 100 .NET Interview Questions and AnswersTop 100 .NET Interview Questions and Answers
Top 100 .NET Interview Questions and Answers
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019
 
Analyzing the Performance of Mobile Web
Analyzing the Performance of Mobile WebAnalyzing the Performance of Mobile Web
Analyzing the Performance of Mobile Web
 
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
 Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c... Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
 
Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - RWX 2017Bootiful Development with Spring Boot and React - RWX 2017
Bootiful Development with Spring Boot and React - RWX 2017
 
The Wizardry of Braintree hosted fields - PHP
The Wizardry of Braintree hosted fields - PHPThe Wizardry of Braintree hosted fields - PHP
The Wizardry of Braintree hosted fields - PHP
 
Razor and the Art of Templating
Razor and the Art of TemplatingRazor and the Art of Templating
Razor and the Art of Templating
 
Introduction to ASP.NET MVC 2
Introduction to ASP.NET MVC 2Introduction to ASP.NET MVC 2
Introduction to ASP.NET MVC 2
 
Webové aplikace v JavaScriptu
Webové aplikace v JavaScriptuWebové aplikace v JavaScriptu
Webové aplikace v JavaScriptu
 
Introduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript ConferenceIntroduction to Grunt.js on Taiwan JavaScript Conference
Introduction to Grunt.js on Taiwan JavaScript Conference
 
Modular Web Applications With Netzke
Modular Web Applications With NetzkeModular Web Applications With Netzke
Modular Web Applications With Netzke
 
Old code doesn't stink
Old code doesn't stinkOld code doesn't stink
Old code doesn't stink
 
CCM Escape Case Study - SkySQL Paris Meetup 17.12.2013
CCM Escape Case Study - SkySQL Paris Meetup 17.12.2013CCM Escape Case Study - SkySQL Paris Meetup 17.12.2013
CCM Escape Case Study - SkySQL Paris Meetup 17.12.2013
 
computer website
computer websitecomputer website
computer website
 
Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++Работа с реляционными базами данных в C++
Работа с реляционными базами данных в C++
 
Dynamic Application Development by NodeJS ,AngularJS with OrientDB
Dynamic Application Development by NodeJS ,AngularJS with OrientDBDynamic Application Development by NodeJS ,AngularJS with OrientDB
Dynamic Application Development by NodeJS ,AngularJS with OrientDB
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8
 

More from javamanrj

Desenvolvendo Jogos com HTML5
Desenvolvendo Jogos com HTML5Desenvolvendo Jogos com HTML5
Desenvolvendo Jogos com HTML5javamanrj
 
Física em Games - The Developers Conference - TDC2013
Física em Games - The Developers Conference - TDC2013Física em Games - The Developers Conference - TDC2013
Física em Games - The Developers Conference - TDC2013javamanrj
 
PHP Presta? Então prove! - The Developers Conference - TDC2013
PHP Presta? Então prove! - The Developers Conference - TDC2013PHP Presta? Então prove! - The Developers Conference - TDC2013
PHP Presta? Então prove! - The Developers Conference - TDC2013javamanrj
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013javamanrj
 
Phonegap - self RJ
Phonegap - self RJPhonegap - self RJ
Phonegap - self RJjavamanrj
 
Palestra Sencha Touch + Phonegap
Palestra Sencha Touch + PhonegapPalestra Sencha Touch + Phonegap
Palestra Sencha Touch + Phonegapjavamanrj
 
Palestra sobre Sencha Touch + Phonegap
Palestra sobre Sencha Touch + PhonegapPalestra sobre Sencha Touch + Phonegap
Palestra sobre Sencha Touch + Phonegapjavamanrj
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4javamanrj
 

More from javamanrj (8)

Desenvolvendo Jogos com HTML5
Desenvolvendo Jogos com HTML5Desenvolvendo Jogos com HTML5
Desenvolvendo Jogos com HTML5
 
Física em Games - The Developers Conference - TDC2013
Física em Games - The Developers Conference - TDC2013Física em Games - The Developers Conference - TDC2013
Física em Games - The Developers Conference - TDC2013
 
PHP Presta? Então prove! - The Developers Conference - TDC2013
PHP Presta? Então prove! - The Developers Conference - TDC2013PHP Presta? Então prove! - The Developers Conference - TDC2013
PHP Presta? Então prove! - The Developers Conference - TDC2013
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
Phonegap - self RJ
Phonegap - self RJPhonegap - self RJ
Phonegap - self RJ
 
Palestra Sencha Touch + Phonegap
Palestra Sencha Touch + PhonegapPalestra Sencha Touch + Phonegap
Palestra Sencha Touch + Phonegap
 
Palestra sobre Sencha Touch + Phonegap
Palestra sobre Sencha Touch + PhonegapPalestra sobre Sencha Touch + Phonegap
Palestra sobre Sencha Touch + Phonegap
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4
 

Recently uploaded

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
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
 
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 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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
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
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
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
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
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
 
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 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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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...
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
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...
 
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...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Nas entranhas do WebKit e do V8 - The Developers Conference 2013 SP - TDC2013