SlideShare a Scribd company logo
Introduction to
Data-Oriented Design
@YaroslavBunyak
Senior Software Engineer, SoftServe
Programming, M**********r
Do you speak it?
Story
Sieve of Eratosthenes
1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Sieve of Eratosthenes
1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Sieve of Eratosthenes
1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Sieve of Eratosthenes
1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Sieve of Eratosthenes
1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Sieve of Eratosthenes
1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Sieve of Eratosthenes
1

2

3

4

5

6

7

8

9 10 11 12 13 14 15 16 17 18 19 20

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Sieve of Eratosthenes
Sieve of Eratosthenes

Simple algorithm
Sieve of Eratosthenes

Simple algorithm
Easy to implement
Sieve of Eratosthenes
Sieve of Eratosthenes
int array[SIZE];
Sieve of Eratosthenes
int array[SIZE];
array[i] = 1;
Sieve of Eratosthenes
int array[SIZE];
array[i] = 1;
if (array[i]) ...
Sieve of Eratosthenes
int array[SIZE];
array[i] = 1;
if (array[i]) ...
Sieve of Eratosthenes
int array[SIZE];
array[i] = 1;
if (array[i]) ...
int bits[SIZE / 32];
Sieve of Eratosthenes
int array[SIZE];
array[i] = 1;
if (array[i]) ...
int bits[SIZE / 32];
bits[i / 32] |= 1 << (i % 32);
Sieve of Eratosthenes
int array[SIZE];
array[i] = 1;
if (array[i]) ...
int bits[SIZE / 32];
bits[i / 32] |= 1 << (i % 32);
if (bits[i / 32] & (1 << (i % 32))) ...
Sieve of Eratosthenes
Sieve of Eratosthenes
Simple algorithm
Sieve of Eratosthenes
Simple algorithm
Easy to implement
Sieve of Eratosthenes
Simple algorithm
Easy to implement
But...
Sieve of Eratosthenes
Simple algorithm
Easy to implement
But...
unexpected results
Sieve of Eratosthenes
Sieve of Eratosthenes
The second implementation (bitset) is 3-5x
faster than first (array)
Sieve of Eratosthenes
The second implementation (bitset) is 3-5x
faster than first (array)
Even though it actually does more work
Why?!.
Fast Forward
...
...
• Years have passed
...
• Years have passed
• I become a software engineer
...
• Years have passed
• I become a software engineer
• And one day...
This Graph

CPU/Memory performance

Slide 17

Computer architecture: a quantitative approach
By John L. Hennessy, David A. Patterson, Andrea C. Arpaci-Dusseau
This Table
1980

Modern PC

Improvement, %

Clock speed, Mhz

6

3000

+500x

Memory size, MB

2

2000

+1000x

Memory bandwidth, MB/s

13

7000 (read)
2000 (write)

+540x
+150x

Memory latency, ns

225

~70

+3x

Memory latency, cycles

1.4

210

-150x
Our Programming
Model
Our Programming
Model
• High-level languages
Our Programming
Model
• High-level languages
• OOP
Our Programming
Model
• High-level languages
• OOP
• everywhere!
Our Programming
Model
• High-level languages
• OOP
• everywhere!
• objects scattered throughout the
address space
Our Programming
Model
• High-level languages
• OOP
• everywhere!
• objects scattered throughout the
address space

• access patterns are unpredictable
Meet
Data-Oriented Design
Ideas
Ideas
• Programs transform data
Ideas
• Programs transform data
• nothing more
Ideas
• Programs transform data
• nothing more
• Think about data, not code
Ideas
• Programs transform data
• nothing more
• Think about data, not code
• Hardware is not a black box
Program
data

xform

data
Program
data

xform

Your Program

data
Claim
• Memory latency is the king
• CPU cycles almost free
Memory
Memory
CPU

•

CPU registers
Memory
CPU

•
•

CPU registers
Cache Level 1

L1i
Cache

L1d
Cache
Memory
CPU

•
•
•

CPU registers
Cache Level 1
Cache Level 2

L1i
Cache

L1d
Cache

L2
Cache
Memory
CPU

•
•
•
•

CPU registers
Cache Level 1
Cache Level 2

L1i
Cache

L1d
Cache

L2
Cache

RAM
RAM
Memory
CPU

•
•
•
•
•

CPU registers
Cache Level 1
Cache Level 2

L1i
Cache

L1d
Cache

L2
Cache

RAM
RAM

HDD
Disk
Distance Metaphor
Distance Metaphor
•

L1 cache: it's on your desk, pick it up.
Distance Metaphor
•
•

L1 cache: it's on your desk, pick it up.
L2 cache: it's on the bookshelf in your office, get
up out of the chair.
Distance Metaphor
•
•

L1 cache: it's on your desk, pick it up.

•

Main memory: it's on the shelf in your garage
downstairs, might as well get a snack while you're
down there.

L2 cache: it's on the bookshelf in your office, get
up out of the chair.
Distance Metaphor
•
•

L1 cache: it's on your desk, pick it up.

•

Main memory: it's on the shelf in your garage
downstairs, might as well get a snack while you're
down there.

•

Disk: it's in, um, California. Walk there. Walk back.
Really.

L2 cache: it's on the bookshelf in your office, get
up out of the chair.
Distance Metaphor
•
•

L1 cache: it's on your desk, pick it up.

•

Main memory: it's on the shelf in your garage
downstairs, might as well get a snack while you're
down there.

•

Disk: it's in, um, California. Walk there. Walk back.
Really.

L2 cache: it's on the bookshelf in your office, get
up out of the chair.

http://hacksoflife.blogspot.com/2011/04/going-to-california-with-aching-in-my.html
Advice
Advice
• Keep your data closer to registers and
cache
Advice
• Keep your data closer to registers and
cache

• What’s good for memory - good for you
Example 1: AoS vs SoA
struct Tile
{
bool ready;
Data pixels; // big chunk of data
};
Tile tiles[SIZE];
vs
struct Image
{
bool ready[SIZE];

// hot data

Data pixels[SIZE]; // cold data
};
Example 1: AoS vs SoA
for (int i = 0; i < SIZE; ++i)
{
if (tiles[i].ready)
draw(tiles[i].pixels);
}
vs
for (int i = 0; i < SIZE; ++i)
{
if (image.ready[i])
draw(image.pixels[i]);
}
Example 1: AoS vs SoA

vs
Example 2: Existence
struct Image
{
bool ready[SIZE];
Data pixels[SIZE];
};
Image image;
vs
Data ready_pixels[N];
Data no_pixels[M];
// N + M = SIZE
Example 2: Existence
for (int i = 0; i < SIZE; ++i)
{
if (image.ready[i])
draw(image.pixels[i]);
}
vs
for (int i = 0; i < N; ++i)
{
draw(ready_pixels[i];
}
Example 3: Locality
std::vector<float> numbers;
float sum = 0.0f;
for (auto it : numbers)
sum += *it;
vs
std::list<float> numbers;
float sum = 0.0f;
for (auto it : numbers)
sum+ = *it;
Example 3: Locality

vs
Few Patterns
• A to B transform
• In place transform
• Existence based processing
• Data normalization
• DB design says hello!
• Task, gather, dispatch, and more...
Benefits of DOD
Benefits of DOD
•

Maximum performance

•

CPU doesn’t wait & starve
Benefits of DOD
•
•

Maximum performance

•

CPU doesn’t wait & starve

Easy to parallelize

•
•

data is grouped, transforms separated
ready for Parallel Processing, OOP doesn’t
Benefits of DOD
•
•
•

Maximum performance

•

CPU doesn’t wait & starve

Easy to parallelize

•
•

data is grouped, transforms separated
ready for Parallel Processing, OOP doesn’t

Simpler code

•

surprise!
References: Memory
• Ulrich Drepper “What Every Computer

Programmer Should Know About Memory”

• Крис Касперски “Техника оптимизации
програм. Еффективное использование
памяти”

• Christer Ericson “Memory Optimization”
• Igor Ostrovsky “Gallery of Processor Cache
Effects”
References: DOD
•

Noel Llopis “Data-Oriented Design”, Game Developer
Magazine, September 2009

•

Richard Fabian “Data-Oriented Desing”, book draft
http://www.dataorienteddesign.com/dodmain/

•
•

Tony Albrecht “Pitfalls of Object-Oriented Programming”

•
•

Mike Acton “Typical C++ Bullshit”

Niklas Frykholm “Practical Examples of Data Oriented
Design”
Data Oriented Design @ Google+
Thank You!
Q?

More Related Content

Viewers also liked

Intro to data oriented design
Intro to data oriented designIntro to data oriented design
Intro to data oriented design
Stoyan Nikolov
 
Introduction to Data Oriented Design
Introduction to Data Oriented DesignIntroduction to Data Oriented Design
Introduction to Data Oriented Design
Electronic Arts / DICE
 
A Step Towards Data Orientation
A Step Towards Data OrientationA Step Towards Data Orientation
A Step Towards Data Orientation
Electronic Arts / DICE
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++
Mike Acton
 
Data oriented design
Data oriented designData oriented design
Data oriented designMax Klyga
 
Ethical Dilemmas/Issues in CyberWorld
Ethical Dilemmas/Issues in CyberWorldEthical Dilemmas/Issues in CyberWorld
Ethical Dilemmas/Issues in CyberWorld
Rownel Cerezo Gagani
 
Ethical Dilemma/Issues is Cyberworld
Ethical Dilemma/Issues is CyberworldEthical Dilemma/Issues is Cyberworld
Ethical Dilemma/Issues is Cyberworld
Amae OlFato
 
PAD102 UiTM Assignment : Government Agencies
PAD102 UiTM Assignment : Government Agencies PAD102 UiTM Assignment : Government Agencies
PAD102 UiTM Assignment : Government Agencies
Syaa Ayish
 
Introduction to Data-Oriented Design
Introduction to Data-Oriented DesignIntroduction to Data-Oriented Design
Introduction to Data-Oriented Design
Yaroslav Bunyak
 

Viewers also liked (10)

Intro to data oriented design
Intro to data oriented designIntro to data oriented design
Intro to data oriented design
 
Introduction to Data Oriented Design
Introduction to Data Oriented DesignIntroduction to Data Oriented Design
Introduction to Data Oriented Design
 
A Step Towards Data Orientation
A Step Towards Data OrientationA Step Towards Data Orientation
A Step Towards Data Orientation
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++
 
Data oriented design
Data oriented designData oriented design
Data oriented design
 
Ethical Dilemmas/Issues in CyberWorld
Ethical Dilemmas/Issues in CyberWorldEthical Dilemmas/Issues in CyberWorld
Ethical Dilemmas/Issues in CyberWorld
 
Ethical Dilemma/Issues is Cyberworld
Ethical Dilemma/Issues is CyberworldEthical Dilemma/Issues is Cyberworld
Ethical Dilemma/Issues is Cyberworld
 
PAD102 UiTM Assignment : Government Agencies
PAD102 UiTM Assignment : Government Agencies PAD102 UiTM Assignment : Government Agencies
PAD102 UiTM Assignment : Government Agencies
 
Ethical issues in cyberspace
Ethical issues in cyberspaceEthical issues in cyberspace
Ethical issues in cyberspace
 
Introduction to Data-Oriented Design
Introduction to Data-Oriented DesignIntroduction to Data-Oriented Design
Introduction to Data-Oriented Design
 

Similar to Introduction to Data-Oriented Design

The Sieve of Eratosthenes - Part II - Genuine versus Unfaithful Sieve - Haske...
The Sieve of Eratosthenes - Part II - Genuine versus Unfaithful Sieve - Haske...The Sieve of Eratosthenes - Part II - Genuine versus Unfaithful Sieve - Haske...
The Sieve of Eratosthenes - Part II - Genuine versus Unfaithful Sieve - Haske...
Philip Schwarz
 
Generic Framework for Knowledge Classification-1
Generic Framework  for Knowledge Classification-1Generic Framework  for Knowledge Classification-1
Generic Framework for Knowledge Classification-1Venkata Vineel
 
HYDSPIN Dec14 visual story telling
HYDSPIN Dec14 visual story tellingHYDSPIN Dec14 visual story telling
HYDSPIN Dec14 visual story telling
Gramener
 
Erik Laurijssen at UX Antwerp Meetup - 31 October 2017
Erik Laurijssen at UX Antwerp Meetup - 31 October 2017Erik Laurijssen at UX Antwerp Meetup - 31 October 2017
Erik Laurijssen at UX Antwerp Meetup - 31 October 2017
UX Antwerp Meetup
 
Happy, Lucky, Amicable and Sociable Numbers
Happy, Lucky, Amicable and Sociable NumbersHappy, Lucky, Amicable and Sociable Numbers
Happy, Lucky, Amicable and Sociable Numbers
sheisirenebkm
 
M1S1U2 (ADDITION STRATEGIES + DOUBLING CONCEPT)
M1S1U2 (ADDITION STRATEGIES + DOUBLING CONCEPT)M1S1U2 (ADDITION STRATEGIES + DOUBLING CONCEPT)
M1S1U2 (ADDITION STRATEGIES + DOUBLING CONCEPT)
EA Clavel
 
The sexagesimal foundation of mathematics
The sexagesimal foundation of mathematicsThe sexagesimal foundation of mathematics
The sexagesimal foundation of mathematics
MichielKarskens
 
CSE031.Lecture_07-FlowCharts_Pseudocode .Part_II.pdf
CSE031.Lecture_07-FlowCharts_Pseudocode .Part_II.pdfCSE031.Lecture_07-FlowCharts_Pseudocode .Part_II.pdf
CSE031.Lecture_07-FlowCharts_Pseudocode .Part_II.pdf
NourhanTarek23
 
第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)
第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)
第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)
Wataru Shito
 
Ejercicio 8
Ejercicio 8Ejercicio 8
Ejercicio 8
hermesortiz1508
 
Ohecc_Bb_student_activity
Ohecc_Bb_student_activityOhecc_Bb_student_activity
Ohecc_Bb_student_activity
paul foster
 
M1S2U1 (Counting to 120 by Tens and Ones)
M1S2U1 (Counting to 120 by Tens and Ones)M1S2U1 (Counting to 120 by Tens and Ones)
M1S2U1 (Counting to 120 by Tens and Ones)
EA Clavel
 
Visual Intelligence @ IBS, Hyderabad
Visual Intelligence @ IBS, HyderabadVisual Intelligence @ IBS, Hyderabad
Visual Intelligence @ IBS, Hyderabad
Gramener
 
Cache presentation
Cache presentationCache presentation
Cache presentation
Radhesham-Khatri
 
Cache presentation on Mapping and its types
Cache presentation on Mapping and its typesCache presentation on Mapping and its types
Cache presentation on Mapping and its types
Engr Kumar
 
ch03_block_ciphers_nemo (2) (1).ppt
ch03_block_ciphers_nemo (2) (1).pptch03_block_ciphers_nemo (2) (1).ppt
ch03_block_ciphers_nemo (2) (1).ppt
MrsPrabhaBV
 
Image Classification
Image ClassificationImage Classification
Image Classification
Anwar Jameel
 
Treasure Hunt - Primary Maths
Treasure Hunt - Primary MathsTreasure Hunt - Primary Maths
Treasure Hunt - Primary Maths
jamesgrew
 

Similar to Introduction to Data-Oriented Design (20)

The Sieve of Eratosthenes - Part II - Genuine versus Unfaithful Sieve - Haske...
The Sieve of Eratosthenes - Part II - Genuine versus Unfaithful Sieve - Haske...The Sieve of Eratosthenes - Part II - Genuine versus Unfaithful Sieve - Haske...
The Sieve of Eratosthenes - Part II - Genuine versus Unfaithful Sieve - Haske...
 
Generic Framework for Knowledge Classification-1
Generic Framework  for Knowledge Classification-1Generic Framework  for Knowledge Classification-1
Generic Framework for Knowledge Classification-1
 
HYDSPIN Dec14 visual story telling
HYDSPIN Dec14 visual story tellingHYDSPIN Dec14 visual story telling
HYDSPIN Dec14 visual story telling
 
Erik Laurijssen at UX Antwerp Meetup - 31 October 2017
Erik Laurijssen at UX Antwerp Meetup - 31 October 2017Erik Laurijssen at UX Antwerp Meetup - 31 October 2017
Erik Laurijssen at UX Antwerp Meetup - 31 October 2017
 
Prime numbers
Prime numbersPrime numbers
Prime numbers
 
Prime numbers
Prime numbersPrime numbers
Prime numbers
 
Happy, Lucky, Amicable and Sociable Numbers
Happy, Lucky, Amicable and Sociable NumbersHappy, Lucky, Amicable and Sociable Numbers
Happy, Lucky, Amicable and Sociable Numbers
 
M1S1U2 (ADDITION STRATEGIES + DOUBLING CONCEPT)
M1S1U2 (ADDITION STRATEGIES + DOUBLING CONCEPT)M1S1U2 (ADDITION STRATEGIES + DOUBLING CONCEPT)
M1S1U2 (ADDITION STRATEGIES + DOUBLING CONCEPT)
 
The sexagesimal foundation of mathematics
The sexagesimal foundation of mathematicsThe sexagesimal foundation of mathematics
The sexagesimal foundation of mathematics
 
CSE031.Lecture_07-FlowCharts_Pseudocode .Part_II.pdf
CSE031.Lecture_07-FlowCharts_Pseudocode .Part_II.pdfCSE031.Lecture_07-FlowCharts_Pseudocode .Part_II.pdf
CSE031.Lecture_07-FlowCharts_Pseudocode .Part_II.pdf
 
第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)
第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)
第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)
 
Ejercicio 8
Ejercicio 8Ejercicio 8
Ejercicio 8
 
Ohecc_Bb_student_activity
Ohecc_Bb_student_activityOhecc_Bb_student_activity
Ohecc_Bb_student_activity
 
M1S2U1 (Counting to 120 by Tens and Ones)
M1S2U1 (Counting to 120 by Tens and Ones)M1S2U1 (Counting to 120 by Tens and Ones)
M1S2U1 (Counting to 120 by Tens and Ones)
 
Visual Intelligence @ IBS, Hyderabad
Visual Intelligence @ IBS, HyderabadVisual Intelligence @ IBS, Hyderabad
Visual Intelligence @ IBS, Hyderabad
 
Cache presentation
Cache presentationCache presentation
Cache presentation
 
Cache presentation on Mapping and its types
Cache presentation on Mapping and its typesCache presentation on Mapping and its types
Cache presentation on Mapping and its types
 
ch03_block_ciphers_nemo (2) (1).ppt
ch03_block_ciphers_nemo (2) (1).pptch03_block_ciphers_nemo (2) (1).ppt
ch03_block_ciphers_nemo (2) (1).ppt
 
Image Classification
Image ClassificationImage Classification
Image Classification
 
Treasure Hunt - Primary Maths
Treasure Hunt - Primary MathsTreasure Hunt - Primary Maths
Treasure Hunt - Primary Maths
 

More from IT Weekend

Quality attributes testing. From Architecture to test acceptance
Quality attributes testing. From Architecture to test acceptanceQuality attributes testing. From Architecture to test acceptance
Quality attributes testing. From Architecture to test acceptance
IT Weekend
 
Mobile development for JavaScript developer
Mobile development for JavaScript developerMobile development for JavaScript developer
Mobile development for JavaScript developer
IT Weekend
 
Building an Innovation & Strategy Process
Building an Innovation & Strategy ProcessBuilding an Innovation & Strategy Process
Building an Innovation & Strategy Process
IT Weekend
 
IT Professionals – The Right Time/The Right Place
IT Professionals – The Right Time/The Right PlaceIT Professionals – The Right Time/The Right Place
IT Professionals – The Right Time/The Right Place
IT Weekend
 
Building a Data Driven Organization
Building a Data Driven OrganizationBuilding a Data Driven Organization
Building a Data Driven Organization
IT Weekend
 
7 Tools for the Product Owner
7 Tools for the Product Owner 7 Tools for the Product Owner
7 Tools for the Product Owner
IT Weekend
 
Hacking your Doorbell
Hacking your DoorbellHacking your Doorbell
Hacking your Doorbell
IT Weekend
 
An era of possibilities, a window in time
An era of possibilities, a window in timeAn era of possibilities, a window in time
An era of possibilities, a window in time
IT Weekend
 
Web services automation from sketch
Web services automation from sketchWeb services automation from sketch
Web services automation from sketch
IT Weekend
 
Why Ruby?
Why Ruby? Why Ruby?
Why Ruby?
IT Weekend
 
REST that won't make you cry
REST that won't make you cryREST that won't make you cry
REST that won't make you cry
IT Weekend
 
Как договариваться с начальником и заказчиком: выбираем нужный протокол общения
Как договариваться с начальником и заказчиком: выбираем нужный протокол общенияКак договариваться с начальником и заказчиком: выбираем нужный протокол общения
Как договариваться с начальником и заказчиком: выбираем нужный протокол общения
IT Weekend
 
Обзор программы SAP HANA Startup Focus
Обзор программы SAP HANA Startup FocusОбзор программы SAP HANA Startup Focus
Обзор программы SAP HANA Startup Focus
IT Weekend
 
World of Agile: Kanban
World of Agile: KanbanWorld of Agile: Kanban
World of Agile: Kanban
IT Weekend
 
Risk Management
Risk ManagementRisk Management
Risk Management
IT Weekend
 
«Spring Integration as Integration Patterns Provider»
«Spring Integration as Integration Patterns Provider»«Spring Integration as Integration Patterns Provider»
«Spring Integration as Integration Patterns Provider»
IT Weekend
 
Cutting edge of Machine Learning
Cutting edge of Machine LearningCutting edge of Machine Learning
Cutting edge of Machine Learning
IT Weekend
 
Parallel Programming In Modern World .NET Technics
Parallel Programming In Modern World .NET TechnicsParallel Programming In Modern World .NET Technics
Parallel Programming In Modern World .NET Technics
IT Weekend
 
Parallel programming in modern world .net technics shared
Parallel programming in modern world .net technics   sharedParallel programming in modern world .net technics   shared
Parallel programming in modern world .net technics sharedIT Weekend
 
Maximize Effectiveness of Human Capital
Maximize Effectiveness of Human CapitalMaximize Effectiveness of Human Capital
Maximize Effectiveness of Human Capital
IT Weekend
 

More from IT Weekend (20)

Quality attributes testing. From Architecture to test acceptance
Quality attributes testing. From Architecture to test acceptanceQuality attributes testing. From Architecture to test acceptance
Quality attributes testing. From Architecture to test acceptance
 
Mobile development for JavaScript developer
Mobile development for JavaScript developerMobile development for JavaScript developer
Mobile development for JavaScript developer
 
Building an Innovation & Strategy Process
Building an Innovation & Strategy ProcessBuilding an Innovation & Strategy Process
Building an Innovation & Strategy Process
 
IT Professionals – The Right Time/The Right Place
IT Professionals – The Right Time/The Right PlaceIT Professionals – The Right Time/The Right Place
IT Professionals – The Right Time/The Right Place
 
Building a Data Driven Organization
Building a Data Driven OrganizationBuilding a Data Driven Organization
Building a Data Driven Organization
 
7 Tools for the Product Owner
7 Tools for the Product Owner 7 Tools for the Product Owner
7 Tools for the Product Owner
 
Hacking your Doorbell
Hacking your DoorbellHacking your Doorbell
Hacking your Doorbell
 
An era of possibilities, a window in time
An era of possibilities, a window in timeAn era of possibilities, a window in time
An era of possibilities, a window in time
 
Web services automation from sketch
Web services automation from sketchWeb services automation from sketch
Web services automation from sketch
 
Why Ruby?
Why Ruby? Why Ruby?
Why Ruby?
 
REST that won't make you cry
REST that won't make you cryREST that won't make you cry
REST that won't make you cry
 
Как договариваться с начальником и заказчиком: выбираем нужный протокол общения
Как договариваться с начальником и заказчиком: выбираем нужный протокол общенияКак договариваться с начальником и заказчиком: выбираем нужный протокол общения
Как договариваться с начальником и заказчиком: выбираем нужный протокол общения
 
Обзор программы SAP HANA Startup Focus
Обзор программы SAP HANA Startup FocusОбзор программы SAP HANA Startup Focus
Обзор программы SAP HANA Startup Focus
 
World of Agile: Kanban
World of Agile: KanbanWorld of Agile: Kanban
World of Agile: Kanban
 
Risk Management
Risk ManagementRisk Management
Risk Management
 
«Spring Integration as Integration Patterns Provider»
«Spring Integration as Integration Patterns Provider»«Spring Integration as Integration Patterns Provider»
«Spring Integration as Integration Patterns Provider»
 
Cutting edge of Machine Learning
Cutting edge of Machine LearningCutting edge of Machine Learning
Cutting edge of Machine Learning
 
Parallel Programming In Modern World .NET Technics
Parallel Programming In Modern World .NET TechnicsParallel Programming In Modern World .NET Technics
Parallel Programming In Modern World .NET Technics
 
Parallel programming in modern world .net technics shared
Parallel programming in modern world .net technics   sharedParallel programming in modern world .net technics   shared
Parallel programming in modern world .net technics shared
 
Maximize Effectiveness of Human Capital
Maximize Effectiveness of Human CapitalMaximize Effectiveness of Human Capital
Maximize Effectiveness of Human Capital
 

Recently uploaded

Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 

Recently uploaded (20)

Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 

Introduction to Data-Oriented Design