SlideShare a Scribd company logo
There's garbage
in our code
Talks by Softbinator
Adrian Oprea / @opreaadrian
I am
• Software over-engineer
• Deprived of sleep
• In love with JavaScript
• Docker fanboy :)
MEMORY
MANAGEMENT
IN THEORY...
THE ACT OF MANAGING
MEMORY AT THE SYSTEM LEVEL
DYNAMIC ALLOCATION / DE-
ALLOCATION
MEMORY IS FREED FOR REUSE
WHEN NO LONGER NEEDED
IN THE WILD...
ALL HIGH-LEVEL PROGRAMMING LANGUAGES IMPLEMENT
SOME FORM OF AUTOMATIC MEMORY MANAGEMENT
AUTOMATIC
JAVA JAVASCRIPT .NET C++
GARBAGE COLLECTOR
MEMORY MANAGEMENT
IN JAVASCRIPT
JAVASCRIPT
THE WORLD'S MOST
MISUNDERSTOOD
PROGRAMMING
LANGUAGE
MEMORY
• Is allocated at runtime
• Is freed whenever a certain threshold is reached
THE GARBAGE COLLECTOR
KICKS IN WHEN YOU LEAST
EXPECT
GC PAUSE...
PROBLEM #1
YOU HAVE
NO CONTROL
OVER THE
COLLECTION
PROCESS
PROBLEM #2
GARBAGE.
COLLECTION.
IS.
VERY.
EXPENSIVE.
BORED? LET'S LOOK AT 3 LINES
OF CODE
SNIFFLES
GARBAGE
COLLECTION
ALGORITHMS
REFERENCE
COUNTING
REFERENCE
COUNTING
REFERENCE
COUNTING
AVAILABLE IN PREVIOUS GENERATION BROWSERS
(IE8 and below)
REFERENCE
COUNTING
AN OBJECT IS ELIGIBLE FOR COLLECTION IF THERE ARE 0
REFERENCES POINTING TO IT
REFERENCE
COUNTING
THIS IS A NAIVE IMPLEMENTATION.
MARK AND SWEEP
REFERENCE
COUNTING
SHIPS WITH ALL MODERN BROWSERS, SINCE 2012
REFERENCE
COUNTING
HAS NO ISSUE COLLECTING CIRCULAR
DEPENDENCIES(CYCLES)
REFERENCE
COUNTING
INTRODUCES THE NOTION OF ROOT OBJECTS
WHERE IS THE GARBAGE?
GARBAGE
COLLECTION
IN V8
WHAT IS V8?
JAVASCRIPT
VIRTUAL MACHINE NODE.JS
GOOGLE'S THE MONSTER
BEHIND
FASTEST JAVASCRIPTMAINSTREAM
VIRTUAL MACHINE
GENERATIONAL GARBAGE
COLLECTOR
GENERATIONAL WHAT?
Old
7 %
Young
93 %
MORTALITY RATE
V8 SPLITS OBJECTS IN TWO
GENERATIONS
YOUNG GENERATION...
"FROM" and "TO" spaces
FAST ALLOCATION
FAST COLLECTION
~10ms
COLLECTION
OCURRS
WHEN
THE TO
SPACE IS FULL
OLD GENERATION
COLLECTION OCURRS RARELY
BIGGER IMPACT
ON PERFORMANCE
IMPLICITLY TRIGGERS A
YOUNG GENERATION
COLLECTION
FULL COLLECTION
USES A MARK-COPMACT
ALGORITHM
REACHABLE
OBJECTS
ARE MARKED
MARKED OBJECTS
GET MOVED TO
THE START OF THE
HEAP - COPMACT
REWIRING OBJECT
REFERENCES IS COSTLY
GARBAGE
COLLECTION
OPTIMISATIONS
IN V8
IDENTIFYING LEAKS
EVIL DOM
var detached = null;
function fill() {
for (var i = 0; i < 25; ++i) {
var div = document.createElement('div');
div.data = new Array(10000);
for (var j = 0, l = div.data.length; j < l; ++j)
div.data[j] = j.toString();
detached.appendChild(div);
}
}
function start() {
var p = document.getElementById("p");
detached = document.createElement("div");
p.appendChild(detached);
p.removeChild(detached);
fill();
}
start();
BETTER DOM
var detached = null;
function fill() {
do stuff ...
}
function start() {
var p = document.getElementById("p");
detached = document.createElement("div");
p.appendChild(detached);
p.removeChild(detached);
// solution: EXPLICITLY SET TO NULL
detached = null;
fill();
}
start();
EVIL XHR
function getText(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
callback(xhr.responseText);
}
xhr.open('get', url, true);
xhr.send(null);
}
BETTER XHR
function getText(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
callback(xhr.responseText);
xhr = null;
}
xhr.open('get', url, true);
xhr.send(null);
}
EVIL CLOSURES
// catalogData is a large object
function getActiveItems(catalogData) {
var activeItems = processCatalogData(catalogData);
function getItem(idx) {
return activeItems[idx];
}
return getItem;
}
BETTER CLOSURES
// catalogData is a large object
function getActiveItems(catalogData) {
var activeItems = processCatalogData(catalogData);
function getItem(idx) {
return activeItems[idx];
}
catalogData = null;
return getItem;
}
CLOSING THOUGHTS
USE WHAT YOU DECLARE
ASSIGN TO null
USE THE delete OPERATOR
USE OBJECT POOLS
USE SOME DEVELOPER TOOLS!
QUESTIONS
Adrian Oprea / @opreaadrian / codesi.nz

More Related Content

What's hot

JavaScript Web Development
JavaScript Web DevelopmentJavaScript Web Development
JavaScript Web Development
vito jeng
 
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwiftSwift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Aaron Douglas
 
Coffee script
Coffee scriptCoffee script
Coffee script
Futada Takashi
 
Letswift19-clean-architecture
Letswift19-clean-architectureLetswift19-clean-architecture
Letswift19-clean-architecture
Jung Kim
 
Introduction to asynchronous DB access using Node.js and MongoDB
Introduction to asynchronous DB access using Node.js and MongoDBIntroduction to asynchronous DB access using Node.js and MongoDB
Introduction to asynchronous DB access using Node.js and MongoDB
Adrien Joly
 
Node Boot Camp
Node Boot CampNode Boot Camp
Node Boot Camp
Troy Miles
 
All you need to know about the JavaScript event loop
All you need to know about the JavaScript event loopAll you need to know about the JavaScript event loop
All you need to know about the JavaScript event loop
Saša Tatar
 
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
Susan Potter
 
Functional Reactive Programming - RxSwift
Functional Reactive Programming - RxSwiftFunctional Reactive Programming - RxSwift
Functional Reactive Programming - RxSwift
Rodrigo Leite
 
Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)Kaunas Java User Group
 
Ramda, a functional JavaScript library
Ramda, a functional JavaScript libraryRamda, a functional JavaScript library
Ramda, a functional JavaScript library
Derek Willian Stavis
 
Optimizing a large angular application (ng conf)
Optimizing a large angular application (ng conf)Optimizing a large angular application (ng conf)
Optimizing a large angular application (ng conf)
A K M Zahiduzzaman
 
Callbacks and control flow in Node js
Callbacks and control flow in Node jsCallbacks and control flow in Node js
Callbacks and control flow in Node js
Thomas Roch
 
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki
 
Async Redux Actions With RxJS - React Rally 2016
Async Redux Actions With RxJS - React Rally 2016Async Redux Actions With RxJS - React Rally 2016
Async Redux Actions With RxJS - React Rally 2016
Ben Lesh
 
Scala introduction
Scala introductionScala introduction
Scala introduction
vito jeng
 
Jug Marche: Meeting June 2014. Java 8 hands on
Jug Marche: Meeting June 2014. Java 8 hands onJug Marche: Meeting June 2014. Java 8 hands on
Jug Marche: Meeting June 2014. Java 8 hands on
Onofrio Panzarino
 
RxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrowRxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrow
Viliam Elischer
 
C# Today and Tomorrow
C# Today and TomorrowC# Today and Tomorrow
C# Today and Tomorrow
Bertrand Le Roy
 
GraphQL API in Clojure
GraphQL API in ClojureGraphQL API in Clojure
GraphQL API in Clojure
Kent Ohashi
 

What's hot (20)

JavaScript Web Development
JavaScript Web DevelopmentJavaScript Web Development
JavaScript Web Development
 
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwiftSwift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
 
Coffee script
Coffee scriptCoffee script
Coffee script
 
Letswift19-clean-architecture
Letswift19-clean-architectureLetswift19-clean-architecture
Letswift19-clean-architecture
 
Introduction to asynchronous DB access using Node.js and MongoDB
Introduction to asynchronous DB access using Node.js and MongoDBIntroduction to asynchronous DB access using Node.js and MongoDB
Introduction to asynchronous DB access using Node.js and MongoDB
 
Node Boot Camp
Node Boot CampNode Boot Camp
Node Boot Camp
 
All you need to know about the JavaScript event loop
All you need to know about the JavaScript event loopAll you need to know about the JavaScript event loop
All you need to know about the JavaScript event loop
 
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
 
Functional Reactive Programming - RxSwift
Functional Reactive Programming - RxSwiftFunctional Reactive Programming - RxSwift
Functional Reactive Programming - RxSwift
 
Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)Intro to Java 8 Closures (Dainius Mezanskas)
Intro to Java 8 Closures (Dainius Mezanskas)
 
Ramda, a functional JavaScript library
Ramda, a functional JavaScript libraryRamda, a functional JavaScript library
Ramda, a functional JavaScript library
 
Optimizing a large angular application (ng conf)
Optimizing a large angular application (ng conf)Optimizing a large angular application (ng conf)
Optimizing a large angular application (ng conf)
 
Callbacks and control flow in Node js
Callbacks and control flow in Node jsCallbacks and control flow in Node js
Callbacks and control flow in Node js
 
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
 
Async Redux Actions With RxJS - React Rally 2016
Async Redux Actions With RxJS - React Rally 2016Async Redux Actions With RxJS - React Rally 2016
Async Redux Actions With RxJS - React Rally 2016
 
Scala introduction
Scala introductionScala introduction
Scala introduction
 
Jug Marche: Meeting June 2014. Java 8 hands on
Jug Marche: Meeting June 2014. Java 8 hands onJug Marche: Meeting June 2014. Java 8 hands on
Jug Marche: Meeting June 2014. Java 8 hands on
 
RxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrowRxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrow
 
C# Today and Tomorrow
C# Today and TomorrowC# Today and Tomorrow
C# Today and Tomorrow
 
GraphQL API in Clojure
GraphQL API in ClojureGraphQL API in Clojure
GraphQL API in Clojure
 

Viewers also liked

Presentación juan teoria
Presentación juan teoriaPresentación juan teoria
Presentación juan teoria
juan pablo Garcia Velasquez
 
Making-the-Case-for-Social-Computing
Making-the-Case-for-Social-ComputingMaking-the-Case-for-Social-Computing
Making-the-Case-for-Social-ComputingAmit Shah
 
Agile Trends 2016 - Equipe de metodologia: agilidade na prática
Agile Trends 2016 - Equipe de metodologia: agilidade na práticaAgile Trends 2016 - Equipe de metodologia: agilidade na prática
Agile Trends 2016 - Equipe de metodologia: agilidade na prática
Carla Micheli Ávila
 
Building Support Through Event Sponsorship
Building Support Through Event SponsorshipBuilding Support Through Event Sponsorship
Building Support Through Event Sponsorship
Patti Hope
 
MCCC-Ontario-HS-Curriculum-updated
MCCC-Ontario-HS-Curriculum-updatedMCCC-Ontario-HS-Curriculum-updated
MCCC-Ontario-HS-Curriculum-updatedIsabella Vitale
 
Responsabilidade no seu mais novo time agil
Responsabilidade no seu mais novo time agilResponsabilidade no seu mais novo time agil
Responsabilidade no seu mais novo time agil
Renan Siravegna
 
Cervical spine gonio
Cervical spine gonioCervical spine gonio
Cervical spine gonio
Vibhuti Nautiyal
 
Taller fieldnotes &amp; format
Taller fieldnotes &amp; formatTaller fieldnotes &amp; format
Taller fieldnotes &amp; format
Edith Llanos
 
Presentacion
PresentacionPresentacion
Presentacion
RonaldL8
 
Efficient Management for Hybrid Memory in Managed Language Runtime
Efficient Management for Hybrid Memory in Managed Language RuntimeEfficient Management for Hybrid Memory in Managed Language Runtime
Efficient Management for Hybrid Memory in Managed Language RuntimeChenxi Wang
 
Unidad de aprendizaje 1
Unidad de aprendizaje 1Unidad de aprendizaje 1
Unidad de aprendizaje 1
elvis walter PANDURO RUIZ
 
Risk and Protective Factors for Co-Occurring Disorders
Risk and Protective Factors for Co-Occurring DisordersRisk and Protective Factors for Co-Occurring Disorders
Risk and Protective Factors for Co-Occurring Disorders
Dr. DawnElise Snipes ★AllCEUs★ Unlimited Counselor Training
 

Viewers also liked (12)

Presentación juan teoria
Presentación juan teoriaPresentación juan teoria
Presentación juan teoria
 
Making-the-Case-for-Social-Computing
Making-the-Case-for-Social-ComputingMaking-the-Case-for-Social-Computing
Making-the-Case-for-Social-Computing
 
Agile Trends 2016 - Equipe de metodologia: agilidade na prática
Agile Trends 2016 - Equipe de metodologia: agilidade na práticaAgile Trends 2016 - Equipe de metodologia: agilidade na prática
Agile Trends 2016 - Equipe de metodologia: agilidade na prática
 
Building Support Through Event Sponsorship
Building Support Through Event SponsorshipBuilding Support Through Event Sponsorship
Building Support Through Event Sponsorship
 
MCCC-Ontario-HS-Curriculum-updated
MCCC-Ontario-HS-Curriculum-updatedMCCC-Ontario-HS-Curriculum-updated
MCCC-Ontario-HS-Curriculum-updated
 
Responsabilidade no seu mais novo time agil
Responsabilidade no seu mais novo time agilResponsabilidade no seu mais novo time agil
Responsabilidade no seu mais novo time agil
 
Cervical spine gonio
Cervical spine gonioCervical spine gonio
Cervical spine gonio
 
Taller fieldnotes &amp; format
Taller fieldnotes &amp; formatTaller fieldnotes &amp; format
Taller fieldnotes &amp; format
 
Presentacion
PresentacionPresentacion
Presentacion
 
Efficient Management for Hybrid Memory in Managed Language Runtime
Efficient Management for Hybrid Memory in Managed Language RuntimeEfficient Management for Hybrid Memory in Managed Language Runtime
Efficient Management for Hybrid Memory in Managed Language Runtime
 
Unidad de aprendizaje 1
Unidad de aprendizaje 1Unidad de aprendizaje 1
Unidad de aprendizaje 1
 
Risk and Protective Factors for Co-Occurring Disorders
Risk and Protective Factors for Co-Occurring DisordersRisk and Protective Factors for Co-Occurring Disorders
Risk and Protective Factors for Co-Occurring Disorders
 

Similar to There is garbage in our code - Talks by Softbinator

Things about Functional JavaScript
Things about Functional JavaScriptThings about Functional JavaScript
Things about Functional JavaScript
ChengHui Weng
 
Living with Garbage by Gregg Donovan at LuceneSolr Revolution 2013
Living with Garbage by Gregg Donovan at LuceneSolr Revolution 2013Living with Garbage by Gregg Donovan at LuceneSolr Revolution 2013
Living with Garbage by Gregg Donovan at LuceneSolr Revolution 2013
Gregg Donovan
 
Living With Garbage
Living With GarbageLiving With Garbage
Living With Garbage
Gregg Donovan
 
Improving Apache Spark Downscaling
 Improving Apache Spark Downscaling Improving Apache Spark Downscaling
Improving Apache Spark Downscaling
Databricks
 
Living with garbage
Living with garbageLiving with garbage
Living with garbage
lucenerevolution
 
Building Testable PHP Applications
Building Testable PHP ApplicationsBuilding Testable PHP Applications
Building Testable PHP Applications
chartjes
 
Fast as C: How to Write Really Terrible Java
Fast as C: How to Write Really Terrible JavaFast as C: How to Write Really Terrible Java
Fast as C: How to Write Really Terrible Java
Charles Nutter
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
GuardSquare
 
Jvm internals
Jvm internalsJvm internals
Jvm internals
Luiz Fernando Teston
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of Javascript
Tarek Yehia
 
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Patricia Aas
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing UpDavid Padbury
 
Web2.0 with jQuery in English
Web2.0 with jQuery in EnglishWeb2.0 with jQuery in English
Web2.0 with jQuery in English
Lau Bech Lauritzen
 
Catch a spider monkey
Catch a spider monkeyCatch a spider monkey
Catch a spider monkey
ChengHui Weng
 
Js tacktalk team dev js testing performance
Js tacktalk team dev js testing performanceJs tacktalk team dev js testing performance
Js tacktalk team dev js testing performance
Артем Захарченко
 
Osd ctw spark
Osd ctw sparkOsd ctw spark
Osd ctw spark
Wisely chen
 
Php on the Web and Desktop
Php on the Web and DesktopPhp on the Web and Desktop
Php on the Web and Desktop
Elizabeth Smith
 
OWASP Poland Day 2018 - Pedro Fortuna - Are your Java Script based protection...
OWASP Poland Day 2018 - Pedro Fortuna - Are your Java Script based protection...OWASP Poland Day 2018 - Pedro Fortuna - Are your Java Script based protection...
OWASP Poland Day 2018 - Pedro Fortuna - Are your Java Script based protection...
OWASP
 
Scala to assembly
Scala to assemblyScala to assembly
Scala to assembly
Jarek Ratajski
 
The things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and AkkaThe things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and Akka
Konrad Malawski
 

Similar to There is garbage in our code - Talks by Softbinator (20)

Things about Functional JavaScript
Things about Functional JavaScriptThings about Functional JavaScript
Things about Functional JavaScript
 
Living with Garbage by Gregg Donovan at LuceneSolr Revolution 2013
Living with Garbage by Gregg Donovan at LuceneSolr Revolution 2013Living with Garbage by Gregg Donovan at LuceneSolr Revolution 2013
Living with Garbage by Gregg Donovan at LuceneSolr Revolution 2013
 
Living With Garbage
Living With GarbageLiving With Garbage
Living With Garbage
 
Improving Apache Spark Downscaling
 Improving Apache Spark Downscaling Improving Apache Spark Downscaling
Improving Apache Spark Downscaling
 
Living with garbage
Living with garbageLiving with garbage
Living with garbage
 
Building Testable PHP Applications
Building Testable PHP ApplicationsBuilding Testable PHP Applications
Building Testable PHP Applications
 
Fast as C: How to Write Really Terrible Java
Fast as C: How to Write Really Terrible JavaFast as C: How to Write Really Terrible Java
Fast as C: How to Write Really Terrible Java
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
Jvm internals
Jvm internalsJvm internals
Jvm internals
 
Art of Javascript
Art of JavascriptArt of Javascript
Art of Javascript
 
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
Undefined Behavior and Compiler Optimizations (NDC Oslo 2018)
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
Web2.0 with jQuery in English
Web2.0 with jQuery in EnglishWeb2.0 with jQuery in English
Web2.0 with jQuery in English
 
Catch a spider monkey
Catch a spider monkeyCatch a spider monkey
Catch a spider monkey
 
Js tacktalk team dev js testing performance
Js tacktalk team dev js testing performanceJs tacktalk team dev js testing performance
Js tacktalk team dev js testing performance
 
Osd ctw spark
Osd ctw sparkOsd ctw spark
Osd ctw spark
 
Php on the Web and Desktop
Php on the Web and DesktopPhp on the Web and Desktop
Php on the Web and Desktop
 
OWASP Poland Day 2018 - Pedro Fortuna - Are your Java Script based protection...
OWASP Poland Day 2018 - Pedro Fortuna - Are your Java Script based protection...OWASP Poland Day 2018 - Pedro Fortuna - Are your Java Script based protection...
OWASP Poland Day 2018 - Pedro Fortuna - Are your Java Script based protection...
 
Scala to assembly
Scala to assemblyScala to assembly
Scala to assembly
 
The things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and AkkaThe things we don't see – stories of Software, Scala and Akka
The things we don't see – stories of Software, Scala and Akka
 

Recently uploaded

Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
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
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
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
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
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
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
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
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
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
 
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
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
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)
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 

Recently uploaded (20)

Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
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
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
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|...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
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
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
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
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
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
 
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
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
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
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 

There is garbage in our code - Talks by Softbinator