SlideShare a Scribd company logo
1 of 75
Download to read offline
Bingo
2013/05/19
1
Web Worker
What the
Sunday, May 19, 13
About Me
• front-end Engineer at
• http://blog.blackbing.net
• blackbing@gmail.com
• https://www.facebook.com/blackbing
2
Sunday, May 19, 13
Hello Web Worker
3
Sunday, May 19, 13
In the beginning
4
if (heard?)
if (heard? && used?)
if (heard? && used? && frustrated?)
if (heard? && used? && used_in_project?)
Sunday, May 19, 13
Web Worker
A web worker, as defined by the World Wide Web Consortium
(W3C) and the Web Hypertext Application Technology Working
Group (WHATWG), is a JavaScript script executed from an HTML
page that runs in the background, independently of other, user-
interface scripts that may also have been executed from the same
HTML page. Web workers are able to utilize multi-core CPUs more
effectively.
http://en.wikipedia.org/wiki/Web_worker
5
Sunday, May 19, 13
Web Worker
6
http://en.wikipedia.org/wiki/Web_worker
A web worker, as defined by the World Wide Web Consortium
(W3C) and the Web Hypertext Application Technology Working
Group (WHATWG), is a JavaScript script executed from an HTML
page that runs in the background, independently of other, user-
interface scripts that may also have been executed from the same
HTML page. Web workers are able to utilize multi-core CPUs more
effectively.
Sunday, May 19, 13
7
Sunday, May 19, 13
UI Blocking?
• javascript is single-threaded
• UI rendering
• executing javascript
8
http://www.nczonline.net/blog/2010/08/10/what-is-a-non-blocking-script/
Sunday, May 19, 13
Boss said...
9
1+2+3+...+n
Sunday, May 19, 13
That’s easy!
function getsum(max) {
var cnt = 0;
var sum = 0;
while (cnt <= max) {
sum += cnt++;
}
return sum;
}
10
Sunday, May 19, 13
11
getsum(1,000)
getsum(100,000)
getsum(1,000,000,000)
杯具
Sunday, May 19, 13
DEMO
12
http://blackbing.github.com/WorkerD/why.html
Sunday, May 19, 13
13
Sunday, May 19, 13
14
Sunday, May 19, 13
1+2+..+n =
15
Sunday, May 19, 13
16
Sunday, May 19, 13
Don’t jump into Web Worker
for using Web Worker.
17
If you just think it’s cool
,you’ll be frustrated.
Sunday, May 19, 13
18
Sunday, May 19, 13
Expectation
19
It should be faster.
It should be easy to use.
It should avoid blocking UI.
Sunday, May 19, 13
CAN I USE it on Desktop?
20
http://caniuse.com/#search=worker
100%
Sunday, May 19, 13
CAN I USE it on Mobile?
21
http://caniuse.com/#search=worker
Sunday, May 19, 13
CAN I USE it on Mobile?
22
http://caniuse.com/#search=worker
100%(!?)
Sunday, May 19, 13
23
Sunday, May 19, 13
new Worker
var worker = new Worker('worker.js');
worker.postMessage(something);
worker.onmessage = function(e) {
console.log('Worker said: ', e.data);
});
24
self.onmessage = function(e) {
self.postMessage(e.data);
};
Master
Worker
Sunday, May 19, 13
var worker = new Worker('worker.js');
worker.postMessage(something);
worker.addEventListener('message', function(e) {
console.log('Worker said: ', e.data);
}, false);
25
self.addEventListener('message', function(e) {
self.postMessage(e.data);
}, false);
Master
Worker
new Worker
Sunday, May 19, 13
Worker cannot access
• window
• DOM
• document
• parent
is undefined
is undefined
is undefined
is undefined
26
Sunday, May 19, 13
Pass window object?
worker.postMessage(window);
27
Master
Sunday, May 19, 13
postMessage
28
worker.postMessage({
'number': 1234,
'reg': /[d]+/ig,
'boolean': true,
'object': {
'foo':'bar'
},
'array': ['foo','bar']
})
Master
Sunday, May 19, 13
postMessage
29
worker.postMessage({
'number': 1234,
'reg': /[d]+/ig,
'boolean': true,
'object': {
'foo':'bar'
},
'array': ['foo','bar'],
'func': function(){
//this is a function
}
})
Master
Sunday, May 19, 13
30
http://ajaxian.com/archives/an-implausibly-illustrated-introduction-to-html5-web-workers
Sunday, May 19, 13
Worker can use
• navigator
• location(read-only)
• XMLHttpRequest
• setTimeout/setInterval
• Basic Javascript data Structure and
Function(Math, Date, Array, etc.)
31
Functions available to workers : https://developer.mozilla.org/en-US/docs/DOM/Worker/Functions_available_to_workers
Sunday, May 19, 13
32
Web Workers in IE10: Background JavaScript Makes Web Apps Faster
Sunday, May 19, 13
Debug
33
worker.addEventListener('error', function(error){
console.error(error.message);
console.error(error.filename);
console.error(error.lineno);
});
Master
Sunday, May 19, 13
Import Scripts
34
importScripts("http://underscorejs.org/underscore.js")
no jQuery, Backbone, etc.
Worker
Sunday, May 19, 13
Release Worker
35
worker.terminate()
self.close()
Master
Worker
Sunday, May 19, 13
Cost
36
Sunday, May 19, 13
Use Case
Prefetching and/or caching data for later use
• Code syntax highlighting or other real-time text formatting
• Spell checker
• Analyzing video or audio data
• Background I/O or polling of web services
• Processing large arrays or humungous JSON responses
• Image filtering in <canvas>
• Updating many rows of a local web database
37
Sunday, May 19, 13
front-end is more and more
• upload image: resize/rotate/filtering
• upload/download file format: use a
format for the server, translating
other format in client side.
38
powerful
Sunday, May 19, 13
Client-Server
39
Client
Server Server Server Server
Sunday, May 19, 13
Client-Server
40
Master HTML
Worker Worker Worker Worker
Sunday, May 19, 13
Background tasks run while user
interacting
• auto save the draft of article
• syntax highlighting
• log user’s behavior(mouse tracking,
clicking, etc...)
• prefetching data
• predicting user behavior
• Generate complicated html template
41
Sunday, May 19, 13
Mobile
• Limited capability on mobile
• Multicore CPU
42
Sunday, May 19, 13
Real world usage
• Syntax highlighting : ace code editor(Bespin)
• Crypto : SHA1 Checksum Calculator
• Graphics/image
• snowCam
• arborjs: http://arborjs.org/
• A User-Driven Web OS: http://grimwire.github.io/grimwire
• parallel.js: http://adambom.github.io/parallel.js/
• Post huge data to server
43
Sunday, May 19, 13
Wanna Try?
• http://webworkersandbox.com/
44
Sunday, May 19, 13
Brief Summary
• What is web worker?
• Basic usage
• onMessage/postMessage
• Debug
• Use case and real world usage
45
Sunday, May 19, 13
Known Issue
• create worker in worker, but it is
currently not support in Chrome
• Crash when trying to use many
Webworkers
46
Sunday, May 19, 13
Problems
• Break dependency
• Hardly debug
• Troublesome on postMessage
47
Sunday, May 19, 13
Break dependency
48
worker = new Worker('/worker_path/my_worker.js');
define (require)->
require 'jquery'
car = require 'lib/car'
plane = require 'lib/plane'
break requirejs dependency
Master
Sunday, May 19, 13
inline Worker
49
var jscontent = require('text!workerScript/inline_worker.js');
var blobWorker = new Blob([jscontent], {type:'application/javascript'});
var blobWorker_url = URL.createObjectURL(blobWorker);
URL.revokeObjectURL(blobWorker_url);
inlineWorker.terminate();
var inlineWorker = new Worker(blobWorker_url);
require text plugin
Master
Release resource
Sunday, May 19, 13
Hardly debug
50
worker.addEventListener('error', function(error){
console.error(error.message);
console.error(error.filename);
console.error(error.lineno);
});
no console !?
Master
Sunday, May 19, 13
Troublesome on postMessage
51
var worker = new Worker('worker.js');
worker.postMessage({'type': 'task1', data:'blabla'});
worker.postMessage({'type': 'task2', data:'blabla'});
worker.postMessage({'type': 'task3', data:'blabla'});
....
self.addEventListener('message', function(e) {
var data = e.data;
var type = data.type;
if(type === 'task1')
//blablabla
else if(type === 'task2')
//blablabla
//......etc
}, false);
Master
Worker
Sunday, May 19, 13
Passing Massive Data
52
worker.postMessage({
//it is a very very complicated JSON
})
Worker
UI still block!
Master
Sunday, May 19, 13
Solution
• Split the data
• Transferable Object
53
Sunday, May 19, 13
Split data
54
Worker
Sunday, May 19, 13
Transferable Object
55
worker.postMessage({
'number': 1234,
'reg': /[d]+/ig,
'boolean': true,
'object': {
'foo':'bar'
},
'array': ['foo','bar'],
'ref_object': object_from_closure,
})
worker.postMessage('this is a string');
Worker
structured cloning
Freeeeze!!
Master
Sunday, May 19, 13
pass Transferable Object
56
worker.postMessage(arrayBuffer, [arrayBuffer]);
var SIZE = 1024 * 1024 * 32; // 32MB
var arrayBuffer = new ArrayBuffer(SIZE);
var uInt8View = new Uint8Array(arrayBuffer);
var originalLength = uInt8View.length;
for (var i = 0; i < originalLength; ++i) {
uInt8View[i] = i;
}
worker.postMessage(uInt8View.buffer, [uInt8View.buffer]);
Master
Sunday, May 19, 13
Feature Detection
57
var ab = new ArrayBuffer(1);
worker.postMessage(ab, [ab]);
//If the buffer is transferred and not copied,
its .byteLength will go to 0:
if (ab.byteLength) {
alert('Transferables are not supported in your browser!');
} else {
// Transferables are supported.
}
http://updates.html5rocks.com/2011/12/Transferable-Objects-Lightning-Fast
Master
Sunday, May 19, 13
Expectation?
58
It must be faster.
It should be easy to use.
It should avoid blocking UI.
Cost of creating Worker
Hardly to set up dependency
if we need to pass massive data
Sunday, May 19, 13
WorkerD
59
https://github.com/blackbing/WorkerD
bower install WorkerD
Sunday, May 19, 13
Why D?
60
Sunday, May 19, 13
Benefits
worker.send('count', {s:1, e:10})
syntax sugar
self.on('count', function(data){
//data is {s:1, e:10}
})
Master
Worker
Sunday, May 19, 13
62
console
console.log/error/time/etc...
require([
"./car"
"./wheel"
], (Car, Wheel) ->
car = new Car('red')
wheel = new Wheel('iron')
)
require
Worker
Worker
Benefits
Sunday, May 19, 13
Example
63
jscontent = require('text!inline_worker.js')
$('#sum_with_worker').on('click', ->
loading()
worker = new WorkerD(inlineWorker_js)
worker.send('getSum', sumMax)
worker.on('gotSum', (event, data)->
log "gotSum: #{data}"
loaded()
)
)
@on "getSum", (max) ->
sum = cnt = 0
while(cnt<=max)
sum += cnt++
self.send('gotSum', sum)
Master
Worker
Sunday, May 19, 13
console
64
@on "getSum", (max) ->
console.group 'getSum'
console.time 'getSum'
console.log 'getSum'
console.log max
sum = cnt = 0
while(cnt<=max)
sum += cnt++
console.log sum
self.send 'gotSum', sum
console.log 'inlineWorker send message'
console.timeEnd 'getSum'
console.groupEnd 'getSum'
Worker
Sunday, May 19, 13
Live Demo
65
http://blackbing.github.com/WorkerD/sandbox.html
Sunday, May 19, 13
Real World Example
66
Sunday, May 19, 13
67
https://c9.io
Sunday, May 19, 13
68
http://antimatter15.github.io/js-typed-array-sha1/
Sunday, May 19, 13
69
http://arborjs.org/
Sunday, May 19, 13
70
https://start.htc.com
Sunday, May 19, 13
71
http://adambom.github.io/parallel.js/
Sunday, May 19, 13
72
前端效能提升方案
Web Worker 神器
Web Worker老木!?
做!就對了!
Sunday, May 19, 13
More Reading
73
http://www.html5rocks.com/en/tutorials/workers/basics/
http://social.msdn.microsoft.com/Search/en-US?query=web%20worker&ac=5
Sunday, May 19, 13
Thank you
74
Sunday, May 19, 13
We are hiring
front-end Engineer
75 https://www.facebook.com/blackbing
Sunday, May 19, 13

More Related Content

Similar to Everything You Need to Know About Web Workers

Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013Thibault Imbert
 
Mobilism 2013: A story of how we built Responsive BBC News
Mobilism 2013: A story of how we built Responsive BBC NewsMobilism 2013: A story of how we built Responsive BBC News
Mobilism 2013: A story of how we built Responsive BBC NewsJohn Cleveley
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSPablo Godel
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AnglePablo Godel
 
FITC 2013 - The Technical Learning Curve
FITC 2013 - The Technical Learning CurveFITC 2013 - The Technical Learning Curve
FITC 2013 - The Technical Learning CurveLittle Miss Robot
 
jQuery Mobile Deep Dive
jQuery Mobile Deep DivejQuery Mobile Deep Dive
jQuery Mobile Deep DiveTroy Miles
 
XPages Blast - Lotusphere 2013
XPages Blast - Lotusphere 2013XPages Blast - Lotusphere 2013
XPages Blast - Lotusphere 2013Tim Clark
 
Scalable JavaScript
Scalable JavaScriptScalable JavaScript
Scalable JavaScriptYnon Perek
 
Frontend Engineer Toolbox
Frontend Engineer ToolboxFrontend Engineer Toolbox
Frontend Engineer ToolboxYnon Perek
 
Using MongoDB and a Relational Database at MongoDB Day
Using MongoDB and a Relational Database at MongoDB DayUsing MongoDB and a Relational Database at MongoDB Day
Using MongoDB and a Relational Database at MongoDB Dayhayesdavis
 
Chef - Configuration Management for the Cloud
Chef - Configuration Management for the CloudChef - Configuration Management for the Cloud
Chef - Configuration Management for the CloudJames Casey
 
Sexy HTML with Twitter Bootstrap
Sexy HTML with Twitter BootstrapSexy HTML with Twitter Bootstrap
Sexy HTML with Twitter BootstrapKarthik Gaekwad
 
XPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and MoreXPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and MoreTeamstudio
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationGunnar Hillert
 
Intro to Backbone.js by Azat Mardanov for General Assembly
Intro to Backbone.js by Azat Mardanov for General AssemblyIntro to Backbone.js by Azat Mardanov for General Assembly
Intro to Backbone.js by Azat Mardanov for General AssemblyAzat Mardanov
 

Similar to Everything You Need to Know About Web Workers (20)

Js memory
Js memoryJs memory
Js memory
 
Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013
 
Mobilism 2013: A story of how we built Responsive BBC News
Mobilism 2013: A story of how we built Responsive BBC NewsMobilism 2013: A story of how we built Responsive BBC News
Mobilism 2013: A story of how we built Responsive BBC News
 
Tek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJSTek 2013 - Building Web Apps from a New Angle with AngularJS
Tek 2013 - Building Web Apps from a New Angle with AngularJS
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
 
Node.js Introduction
Node.js IntroductionNode.js Introduction
Node.js Introduction
 
Velocity dust
Velocity dustVelocity dust
Velocity dust
 
FITC 2013 - The Technical Learning Curve
FITC 2013 - The Technical Learning CurveFITC 2013 - The Technical Learning Curve
FITC 2013 - The Technical Learning Curve
 
Workflow Engines + Luigi
Workflow Engines + LuigiWorkflow Engines + Luigi
Workflow Engines + Luigi
 
jQuery Mobile Deep Dive
jQuery Mobile Deep DivejQuery Mobile Deep Dive
jQuery Mobile Deep Dive
 
XPages Blast - Lotusphere 2013
XPages Blast - Lotusphere 2013XPages Blast - Lotusphere 2013
XPages Blast - Lotusphere 2013
 
Scalable JavaScript
Scalable JavaScriptScalable JavaScript
Scalable JavaScript
 
Frontend Engineer Toolbox
Frontend Engineer ToolboxFrontend Engineer Toolbox
Frontend Engineer Toolbox
 
Using MongoDB and a Relational Database at MongoDB Day
Using MongoDB and a Relational Database at MongoDB DayUsing MongoDB and a Relational Database at MongoDB Day
Using MongoDB and a Relational Database at MongoDB Day
 
Chef - Configuration Management for the Cloud
Chef - Configuration Management for the CloudChef - Configuration Management for the Cloud
Chef - Configuration Management for the Cloud
 
Sexy HTML with Twitter Bootstrap
Sexy HTML with Twitter BootstrapSexy HTML with Twitter Bootstrap
Sexy HTML with Twitter Bootstrap
 
XPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and MoreXPages Blast - Ideas, Tips and More
XPages Blast - Ideas, Tips and More
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
 
Requirejs
RequirejsRequirejs
Requirejs
 
Intro to Backbone.js by Azat Mardanov for General Assembly
Intro to Backbone.js by Azat Mardanov for General AssemblyIntro to Backbone.js by Azat Mardanov for General Assembly
Intro to Backbone.js by Azat Mardanov for General Assembly
 

Recently uploaded

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 

Everything You Need to Know About Web Workers