SlideShare a Scribd company logo
THROTTLE & DEBOUNCE 
PATTERNS 
IN WEB APPS 
@ALMIRFILHO
@loopinfinito 
l8p.com.br 
@almirfilho
@loopinfinito 
l8p.com.br 
@almirfilho
@loopinfinito 
l8p.com.br 
@almirfilho 
after 
conf
THE PROBLEM
How to control 
user events 
frequency?
SOME CASES 
onclick 
onresize 
onscroll 
onmousemove
onclick 
Order some shit 
… 
Some AJAX action. Whatever
onclick 
Order some shit 
Some AJAX action. Whatever 
click 
freak
onresize 
Responsive modafoca
onresize 
Δ = 100px 
≃ 100 * 
triggerings! 
!%?#$ 
Responsive modafoca
onscroll 
Paralax bullshit
onscroll 
Δ = 100px 
… same 
fuc*ing 
thing 
≃ 
Paralax bullshit
onmousemove 
Gaming junk
onmousemove 
Δx = 100px 
Δy = 50px 
≃ 150 * 
trigg… OMG 
plz stop 
Gaming junk
**BONUS** PROBLEM
Updating <canvas> 
drawings?
Updating <canvas> 
drawings? 
just redraw 
E-V-E-R-Y-T-H-I-N-G
stage.update = function(){ 
redrawHeavyShit(); 
}; 
! 
while(game.isOn){ 
game.step(); 
stage.update(); 
} 
stupid 
game loop
WAY COOLER 
stage.update = function(){ 
redrawHeavyShit(); 
}; 
! 
var gameLoop = function(){ 
game.step(); 
stage.update(); 
requestAnimationFrame(gameLoop); 
}; 
! 
gameLoop();
WAY COOLER 
stage.update = function(){ 
redrawHeavyShit(); 
}; 
! 
var gameLoop = function(){ 
game.step(); 
stage.update(); 
requestAnimationFrame(gameLoop); 
}; 
! 
gameLoop();
Measuring 
damage with 
dev tools
RENDERING & PAINTING COSTS 
all major and modern* browsers 
* even in IE (11)
So, how to control 
user events 
frequency?
THROTTLE
A throttle is a 
mechanism to 
manage fuel flow 
in an engine
ENGINE THROTTLE
So, throttle is just a 
valve? 
! yeeep
COMMON CASES 
resizing 
scrolling 
mouse moving
0s 0.1s 
t 
onscroll 
E E E E E E E E E E E 
paralax()
onscroll throttled 
0s 0.1s 
t 
E E E E E E E E E E E 
THROTTLE 
paralax()
onscroll throttled 
0s 0.1s 
t 
E E E E E E E E E E E 
THROTTLE 
paralax()
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
window.addEventListener(‘scroll’, function(e){ 
paralax(e.args); 
});
LET’S 
THROOOOTLE IT 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
window.addEventListener(‘scroll’, 
throttleParalax() 
);
var throttleParalax = (function(){ 
var timeWindow = 500; 
var now = (new Date()).getTime(); 
var lastExecution = new Date(now - timeWindow); 
! 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
return function(){ 
var now = (new Date()).getTime(); 
if(lastExecution.getTime() + timeWindow <= now){ 
lastExecution = new Date(); 
return paralax.apply(this, arguments); 
} 
}; 
}());
var throttleParalax = (function(){ 
var timeWindow = 500; 
var now = (new Date()).getTime(); 
var lastExecution = new Date(now - timeWindow); 
! 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
return function(){ 
var now = (new Date()).getTime(); 
if(lastExecution.getTime() + timeWindow <= now){ 
lastExecution = new Date(); 
return paralax.apply(this, arguments); 
} 
}; 
}()); 
sets 
a context
var throttleParalax = (function(){ 
var timeWindow = 500; 
var now = (new Date()).getTime(); 
var lastExecution = new Date(now - timeWindow); 
! 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
return function(){ 
var now = (new Date()).getTime(); 
if(lastExecution.getTime() + timeWindow <= now){ 
lastExecution = new Date(); 
return paralax.apply(this, arguments); 
} 
}; 
}()); 
sets 
the func.
var throttleParalax = (function(){ 
var timeWindow = 500; 
var now = (new Date()).getTime(); 
var lastExecution = new Date(now - timeWindow); 
! 
var paralax = function(args){ 
complexHeavyShit(); 
}; 
! 
return function(){ 
var now = (new Date()).getTime(); 
if(lastExecution.getTime() + timeWindow <= now){ 
lastExecution = new Date(); 
return paralax.apply(this, arguments); 
} 
}; 
}()); 
returns the 
event handler
Let’s visualize it
Let’s visualize it 
0s 500ms 
t 
E 
event 
happens
Let’s visualize it 
0s 500ms 
t 
E 
event 
executes
Let’s visualize it 
0s 500ms 
t 
E 100ms 
timeWindow
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E 
another event 
happens
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E 
no execution
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E E 
event 
happens
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E E 
same thing 
now
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E E 100ms
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E E 1E00msE E
DEBOUNCE
A debouncing is a 
technique to 
guarantee that a 
button was pressed 
only once.
ELECTRONIC 
DEBOUNCING
Debounce cancels 
multiple actions for 
postpone to the 
last one.
COMMON CASES 
clicking 
key pressing
0s 1s 
t 
onkeyup 
E E E E E E E E E 
autoComplete()
onkeyup debouncing 
0s 1s 
t 
E E E E E E E E E 
DEBOUNCE 
autoComplete()
onkeyup debouncing 
0s 1s 
t 
E E E E E E E E E 
DEBOUNCE 
autoComplete()
btn.addEventListener(‘keyup’, function(){ 
autoComplete(); 
});
LET’S 
DEBOOOUNCE IT 
btn.addEventListener(‘keyup’, 
debounceAutoComplete() 
);
var debounceAutoComplete = (function(){ 
var timeWindow = 100; 
var timeout; 
! 
var autoComplete = function(arg1, arg2){/* … */}; 
! 
return function(){ 
var context = this; 
var args = arguments; 
clearTimeout(timeout); 
timeout = setTimeout(function(){ 
autoComplete.apply(context, args); 
}, timeWindow); 
}; 
}());
var debounceAutoComplete = (function(){ 
var timeWindow = 100; 
sets 
var timeout; 
a context 
! 
var autoComplete = function(arg1, arg2){/* … */}; 
! 
return function(){ 
var context = this; 
var args = arguments; 
clearTimeout(timeout); 
timeout = setTimeout(function(){ 
autoComplete.apply(context, args); 
}, timeWindow); 
}; 
}());
var debounceAutoComplete = (function(){ 
var timeWindow = 100; 
var timeout; 
! 
var autoComplete = function(arg1, arg2){/* … */}; 
! 
return function(){ 
sets 
the func. 
var context = this; 
var args = arguments; 
clearTimeout(timeout); 
timeout = setTimeout(function(){ 
autoComplete.apply(context, args); 
}, timeWindow); 
}; 
}());
var debounceAutoComplete = (function(){ 
var timeWindow = 100; 
var timeout; 
! 
var autoComplete = function(arg1, arg2){/* … */}; 
! 
return function(){ 
return the 
handler 
var context = this; 
var args = arguments; 
clearTimeout(timeout); 
timeout = setTimeout(function(){ 
autoComplete.apply(context, args); 
}, timeWindow); 
}; 
}());
Let’s visualize it
Let’s visualize it 
0s 500ms 
t 
E 
event 
happens
Let’s visualize it 
0s 500ms 
t 
E 100ms 
setTimeOut
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E 
another event 
happens
Let’s visualize it 
0s 500ms 
t 
E 100ms 
E 
clearTimeOut
Let’s visualize it 
0s 500ms 
t 
E 100ms 
reset 
timeOut 
E
Let’s visualize it 
0s 500ms 
t 
E E 10E0ms
Let’s visualize it 
0s 500ms 
t 
E E 10E0ms
Let’s visualize it 
0s 500ms 
t 
E E E 100ms
Let’s visualize it 
0s 500ms 
t 
E E E 100ms 
cool to 
execute!
Let’s visualize it 
0s 500ms 
t 
E E E 100ms 
E 
life goes on…
READ ABOUT [PT-BR]
but… 
<x-mimimi>
JQUERY PLUGIN 
jquery-throttle-debounce 
$(window).scroll($.throttle(250, paralax)); 
! 
$('input').keyup($.debounce(250, autoComplete)); 
github.com/cowboy/jquery-throttle-debounce
UNDERSCORE.JS 
$(window).scroll(_.throttle(paralax, 250)); 
! 
$(‘input’).keyup(_.debounce(autoComplete, 250)); 
underscorejs.org
THANK 
YOU! 
@ALMIRFILHO

More Related Content

What's hot

Programming ppt files (final)
Programming ppt files (final)Programming ppt files (final)
Programming ppt files (final)
yap_raiza
 
Taller De Scilab
Taller De ScilabTaller De Scilab
Taller De Scilab
Andrés Renteria
 
Ejercicios Scilab Completo
Ejercicios Scilab CompletoEjercicios Scilab Completo
Ejercicios Scilab Completo
Ricardo Grandas
 
Trabajo Scilab
Trabajo ScilabTrabajo Scilab
Trabajo Scilab
alexistorres
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Michael Barker
 
Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015
Leonardo Borges
 
SPL 8 | Loop Statements in C
SPL 8 | Loop Statements in CSPL 8 | Loop Statements in C
SPL 8 | Loop Statements in C
Mohammad Imam Hossain
 
The Ring programming language version 1.9 book - Part 92 of 210
The Ring programming language version 1.9 book - Part 92 of 210The Ring programming language version 1.9 book - Part 92 of 210
The Ring programming language version 1.9 book - Part 92 of 210
Mahmoud Samir Fayed
 
Newton cotes method
Newton cotes methodNewton cotes method
Newton cotes method
Faisal Saeed
 
Concurrent Application Development using Scala
Concurrent Application Development using ScalaConcurrent Application Development using Scala
Concurrent Application Development using Scala
Siarhiej Siemianchuk
 
Universal JavaScript
Universal JavaScriptUniversal JavaScript
Universal JavaScript
名辰 洪
 
2 презентация rx java+android
2 презентация rx java+android2 презентация rx java+android
2 презентация rx java+android
STEP Computer Academy (Zaporozhye)
 
You will learn RxJS in 2017
You will learn RxJS in 2017You will learn RxJS in 2017
You will learn RxJS in 2017
名辰 洪
 
Faisal
FaisalFaisal
Faisal
Faisal Saeed
 
Quinto Punto Parte B
Quinto Punto Parte BQuinto Punto Parte B
Quinto Punto Parte Bgustavo206
 
New feature of async fakeAsync test in angular
New feature of async fakeAsync test in angularNew feature of async fakeAsync test in angular
New feature of async fakeAsync test in angular
Jia Li
 

What's hot (20)

Programming ppt files (final)
Programming ppt files (final)Programming ppt files (final)
Programming ppt files (final)
 
Taller De Scilab
Taller De ScilabTaller De Scilab
Taller De Scilab
 
Ejercicios Scilab Completo
Ejercicios Scilab CompletoEjercicios Scilab Completo
Ejercicios Scilab Completo
 
Trabajo Scilab
Trabajo ScilabTrabajo Scilab
Trabajo Scilab
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!
 
Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015Parametricity - #cljsyd - May, 2015
Parametricity - #cljsyd - May, 2015
 
SPL 8 | Loop Statements in C
SPL 8 | Loop Statements in CSPL 8 | Loop Statements in C
SPL 8 | Loop Statements in C
 
The Ring programming language version 1.9 book - Part 92 of 210
The Ring programming language version 1.9 book - Part 92 of 210The Ring programming language version 1.9 book - Part 92 of 210
The Ring programming language version 1.9 book - Part 92 of 210
 
Newton cotes method
Newton cotes methodNewton cotes method
Newton cotes method
 
Concurrent Application Development using Scala
Concurrent Application Development using ScalaConcurrent Application Development using Scala
Concurrent Application Development using Scala
 
Lab 3
Lab 3Lab 3
Lab 3
 
Universal JavaScript
Universal JavaScriptUniversal JavaScript
Universal JavaScript
 
2 презентация rx java+android
2 презентация rx java+android2 презентация rx java+android
2 презентация rx java+android
 
You will learn RxJS in 2017
You will learn RxJS in 2017You will learn RxJS in 2017
You will learn RxJS in 2017
 
Faisal
FaisalFaisal
Faisal
 
Tu1
Tu1Tu1
Tu1
 
Cd
CdCd
Cd
 
Csharp_Chap04
Csharp_Chap04Csharp_Chap04
Csharp_Chap04
 
Quinto Punto Parte B
Quinto Punto Parte BQuinto Punto Parte B
Quinto Punto Parte B
 
New feature of async fakeAsync test in angular
New feature of async fakeAsync test in angularNew feature of async fakeAsync test in angular
New feature of async fakeAsync test in angular
 

Similar to Throttle and Debounce Patterns in Web Apps

JVMLS 2016. Coroutines in Kotlin
JVMLS 2016. Coroutines in KotlinJVMLS 2016. Coroutines in Kotlin
JVMLS 2016. Coroutines in Kotlin
Andrey Breslav
 
The Strange World of Javascript and all its little Asynchronous Beasts
The Strange World of Javascript and all its little Asynchronous BeastsThe Strange World of Javascript and all its little Asynchronous Beasts
The Strange World of Javascript and all its little Asynchronous Beasts
Federico Galassi
 
Angular promises and http
Angular promises and httpAngular promises and http
Angular promises and http
Alexe Bogdan
 
Understanding Asynchronous JavaScript
Understanding Asynchronous JavaScriptUnderstanding Asynchronous JavaScript
Understanding Asynchronous JavaScript
jnewmanux
 
Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016
Codemotion
 
Promise: async programming hero
Promise: async programming heroPromise: async programming hero
Promise: async programming hero
The Software House
 
Expert JavaScript tricks of the masters
Expert JavaScript  tricks of the mastersExpert JavaScript  tricks of the masters
Expert JavaScript tricks of the masters
Ara Pehlivanian
 
EcmaScript unchained
EcmaScript unchainedEcmaScript unchained
EcmaScript unchained
Eduard Tomàs
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Domenic Denicola
 
Orsiso
OrsisoOrsiso
Orsisoe27
 
jQuery for Beginners
jQuery for Beginners jQuery for Beginners
jQuery for Beginners
NAILBITER
 
OO JS for AS3 Devs
OO JS for AS3 DevsOO JS for AS3 Devs
OO JS for AS3 DevsJason Hanson
 
Developer Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duoDeveloper Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duo
The Software House
 
Rich and Snappy Apps (No Scaling Required)
Rich and Snappy Apps (No Scaling Required)Rich and Snappy Apps (No Scaling Required)
Rich and Snappy Apps (No Scaling Required)
Thomas Fuchs
 
Asynchronous programming done right - Node.js
Asynchronous programming done right - Node.jsAsynchronous programming done right - Node.js
Asynchronous programming done right - Node.js
Piotr Pelczar
 
The Ring programming language version 1.8 book - Part 88 of 202
The Ring programming language version 1.8 book - Part 88 of 202The Ring programming language version 1.8 book - Part 88 of 202
The Ring programming language version 1.8 book - Part 88 of 202
Mahmoud Samir Fayed
 
Javascript And J Query
Javascript And J QueryJavascript And J Query
Javascript And J Query
itsarsalan
 
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートIIopenFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートIIAtsushi Tadokoro
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPresswpnepal
 

Similar to Throttle and Debounce Patterns in Web Apps (20)

JVMLS 2016. Coroutines in Kotlin
JVMLS 2016. Coroutines in KotlinJVMLS 2016. Coroutines in Kotlin
JVMLS 2016. Coroutines in Kotlin
 
The Strange World of Javascript and all its little Asynchronous Beasts
The Strange World of Javascript and all its little Asynchronous BeastsThe Strange World of Javascript and all its little Asynchronous Beasts
The Strange World of Javascript and all its little Asynchronous Beasts
 
Angular promises and http
Angular promises and httpAngular promises and http
Angular promises and http
 
Understanding Asynchronous JavaScript
Understanding Asynchronous JavaScriptUnderstanding Asynchronous JavaScript
Understanding Asynchronous JavaScript
 
Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016Promises are so passé - Tim Perry - Codemotion Milan 2016
Promises are so passé - Tim Perry - Codemotion Milan 2016
 
Promise: async programming hero
Promise: async programming heroPromise: async programming hero
Promise: async programming hero
 
Expert JavaScript tricks of the masters
Expert JavaScript  tricks of the mastersExpert JavaScript  tricks of the masters
Expert JavaScript tricks of the masters
 
EcmaScript unchained
EcmaScript unchainedEcmaScript unchained
EcmaScript unchained
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
 
Orsiso
OrsisoOrsiso
Orsiso
 
jQuery for Beginners
jQuery for Beginners jQuery for Beginners
jQuery for Beginners
 
OO JS for AS3 Devs
OO JS for AS3 DevsOO JS for AS3 Devs
OO JS for AS3 Devs
 
Developer Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duoDeveloper Experience i TypeScript. Najbardziej ikoniczne duo
Developer Experience i TypeScript. Najbardziej ikoniczne duo
 
Rich and Snappy Apps (No Scaling Required)
Rich and Snappy Apps (No Scaling Required)Rich and Snappy Apps (No Scaling Required)
Rich and Snappy Apps (No Scaling Required)
 
Of class2
Of class2Of class2
Of class2
 
Asynchronous programming done right - Node.js
Asynchronous programming done right - Node.jsAsynchronous programming done right - Node.js
Asynchronous programming done right - Node.js
 
The Ring programming language version 1.8 book - Part 88 of 202
The Ring programming language version 1.8 book - Part 88 of 202The Ring programming language version 1.8 book - Part 88 of 202
The Ring programming language version 1.8 book - Part 88 of 202
 
Javascript And J Query
Javascript And J QueryJavascript And J Query
Javascript And J Query
 
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートIIopenFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
openFrameworks – パーティクルを動かす、静的配列と動的配列 - 多摩美メディアアートII
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress
 

More from Almir Filho

256 Shades of R, G and B
256 Shades of R, G and B256 Shades of R, G and B
256 Shades of R, G and B
Almir Filho
 
The Creative Developer
The Creative DeveloperThe Creative Developer
The Creative Developer
Almir Filho
 
Esse cara é o grunt
Esse cara é o gruntEsse cara é o grunt
Esse cara é o grunt
Almir Filho
 
CSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depoisCSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depois
Almir Filho
 
Web Audio Hero
Web Audio HeroWeb Audio Hero
Web Audio Hero
Almir Filho
 
HTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astralHTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astral
Almir Filho
 
HTML5: seu navegador não é mais o mesmo
HTML5: seu navegador não é mais o mesmoHTML5: seu navegador não é mais o mesmo
HTML5: seu navegador não é mais o mesmo
Almir Filho
 

More from Almir Filho (7)

256 Shades of R, G and B
256 Shades of R, G and B256 Shades of R, G and B
256 Shades of R, G and B
 
The Creative Developer
The Creative DeveloperThe Creative Developer
The Creative Developer
 
Esse cara é o grunt
Esse cara é o gruntEsse cara é o grunt
Esse cara é o grunt
 
CSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depoisCSS Layout: O ontem, o hoje e o depois
CSS Layout: O ontem, o hoje e o depois
 
Web Audio Hero
Web Audio HeroWeb Audio Hero
Web Audio Hero
 
HTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astralHTML5 Sensitivo: Seu browser no plano astral
HTML5 Sensitivo: Seu browser no plano astral
 
HTML5: seu navegador não é mais o mesmo
HTML5: seu navegador não é mais o mesmoHTML5: seu navegador não é mais o mesmo
HTML5: seu navegador não é mais o mesmo
 

Recently uploaded

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 

Recently uploaded (20)

Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 

Throttle and Debounce Patterns in Web Apps