SlideShare a Scribd company logo
1 of 100
Download to read offline
Monoids and Sketches
and CRDTs, oh my!
Kevin Scaldeferri
OSB 2016
How Do I Math
with Big Data?
This document and the information herein (including any information that may be incorporated by reference) is
provided for informational purposes only and should not be construed as an offer, commitment, promise or
obligation on behalf of New Relic, Inc. (“New Relic”) to sell securities or deliver any product, material, code,
functionality, or other feature. Any information provided hereby is proprietary to New Relic and may not be replicated
or disclosed without New Relic’s express written permission.

Such information may contain forward-looking statements within the meaning of federal securities laws. Any
statement that is not a historical fact or refers to expectations, projections, future plans, objectives, estimates, goals,
or other characterizations of future events is a forward-looking statement. These forward-looking statements can
often be identified as such because the context of the statement will include words such as “believes,” “anticipates,”
“expects” or words of similar import.

Actual results may differ materially from those expressed in these forward-looking statements, which speak only as
of the date hereof, and are subject to change at any time without notice. Existing and prospective investors,
customers and other third parties transacting business with New Relic are cautioned not to place undue reliance on
this forward-looking information. The achievement or success of the matters covered by such forward-looking
statements are based on New Relic’s current assumptions, expectations, and beliefs and are subject to substantial
risks, uncertainties, assumptions, and changes in circumstances that may cause the actual results, performance, or
achievements to differ materially from those expressed or implied in any forward-looking statement. Further
information on factors that could affect such forward-looking statements is included in the filings we make with the
SEC from time to time. Copies of these documents may be obtained by visiting New Relic’s Investor Relations
website at ir.newrelic.com or the SEC’s website at www.sec.gov. 

New Relic assumes no obligation and does not intend to update these forward-looking statements, except as
required by law. New Relic makes no warranties, expressed or implied, in this document or otherwise, with respect to
the information provided.
How?
Monoids and Sketches
and CRDTs, oh my!
Monoids
超音波システム研究所 / http://bit.ly/26bBTQ1 / CC BY 3.0
Wikipedia
A monoid is an algebraic
structure with a single
associative binary
operation and an
identity element.
http://bit.ly/1Wlrigv / CC0
It’s just a thing
you can “add”
interface Monoid[T] {
// (x + y) + z = x + (y + z)
T add(T x, T y);
// 0 + x = x = x + 0
T unit();
}
interface Monoid[T] {
// (x + y) + z = x + (y + z)
T add(T x, T y);
// 0 + x = x = x + 0
T unit();
}
interface Monoid[T] {
// (x + y) + z = x + (y + z)
T add(T x, T y);
// 0 + x = x = x + 0
T unit();
}
interface Monoid[T] {
// (x + y) + z = x + (y + z)
T add(T x, T y);
// 0 + x = x = x + 0
T unit();
}
interface Monoid[T] {
// (x + y) + z = x + (y + z)
T add(T x, T y);
// 0 + x = x = x + 0
T unit();
}
One data type can
have multiple monoids!
Operation Unit
Sum 0
Product 1
Max -∞
Min +∞
Live Demo!
More Monoids
Count Boolean And
Lists & String
Concatenation
Boolean Or
Set Union
Function
Composition
Tuple Monoids
Monoid[U] & Monoid[V]
➜
Monoid[(U,V)]
Derived Monoids
Count & Sum ➜ Average
Count & Sum & SumOfSquares ➜
StdDev
Sets don’t
scale
Dan Morgan / http://bit.ly/1UiFhGs / CC BY 2.0
Sketches
=
Monoids
+
Physics
Counting by Flipping Coins
HHT
T
T
HHHHHT
HT
T
HHT
HT
T
T
T
T
T
HT
T
T
T
T
T
HT
Unique Count by Hashing
0111101001
1110101100
0010010010
0100100011
1000111000
0100011011
1100100110
1111011011
0011100001
1001011100
1110100101
1001110101
1010111001
1011110111
0000101001
0100101001
0100110000
0011110100
1011011010
0010011011
Set
Cardinality
(uniqueCount)
≈
HyperLogLog
Aldo Schumann / http://bit.ly/1Yqzvme / public domain
Set
Membership
interface ExtensionalSet[T] {
Iterator[T] iterator()
}
interface IntensionalSet[T] {
boolean isMember(T t);
}
Intensional
Sets
≈
Bloom Filters
HashSet
A
HashSet
A
HashSet
A
HashSet
A
BHashSet
A
BHashSet
A B
HashSet
A B
CHashSet
A B
CHashSet
A B
C
Ohnoes!
HashSet
A B
C
HashSet
A B
C
D?HashSet
A B
C
D?HashSet
A B
C
D?
Nopes!
HashSet
A B
C
E?HashSet
A B
C
E?HashSet
A B
C
E?
Hmmm
HashSet
A B
C
E?==
HashSet
A B
C
E?==
Nope!
HashSet
BloomFilter
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ABloomFilter
0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0
ABloomFilter
0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0
A BBloomFilter
0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0
A B CBloomFilter
0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0
A B C
D?
BloomFilter
0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0
A B C
D?
Nope!
BloomFilter
0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0
A B C
A?
BloomFilter
0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0
A B C
A?
Yes*
BloomFilter
BloomFilter Monoid
0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0
0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1
0 1 1 0 1 0 1 1 1 1 0 0 1 0 1 1
+
=
Circling Back:
BloomFilters are a scalable
approximation to Sets
CountMinSketch
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CountMinSketch
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CountMinSketch
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0
A
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
CountMinSketch
10 0 0 0 0 0 0 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0
A
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
BCountMinSketch
0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
A
0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0
0 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0
B CCountMinSketch
0 0 0 0 0 0 1 0 1 2 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
A
0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 0
0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0
B CCountMinSketch
0 0 0 0 0 0 1 0 1 2 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
A
0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 0
0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0
B C
D?
CountMinSketch
0 0 0 0 0 0 1 0 1 2 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
A
0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 0
0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0
B C
D? Min(2,1,0) = 0
CountMinSketch
0 0 0 0 0 0 1 0 1 2 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
A
0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 0
0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0
B C
A?
CountMinSketch
0 0 0 0 0 0 1 0 1 2 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0
A
0 0 0 0 0 0 0 0 0 0 0 0 1 0 3 0
0 0 2 0 2 0 0 0 0 0 0 0 0 0 0 0
B C
A? Min(2,2,3) = 2
CountMinSketch
CountMinSketch
Frequency of Occurrence
Funnels
% of users who do A, then B
Size(A ∪ B) ≈ HyperLogLog
Size(A ∩ B) / Size(A ∪ B) ≈
MinHash
pedrik / http://bit.ly/25WzP1H / CC BY 2.0
What About
Streaming Data?
Streaming is
Distributed-in-Time
Computation
What About
Mutable Data?
CRDTs
Conflict-Free
Replicated
Data
Types
Available,
Eventually Consistent
Data Structures
How Can Two
People Count?
0
0
Shared Counter
0
0
Shared Counter
(+5)
5
5
0
0
Shared Counter
(+5)
5
5
(-4)
(-3)
1 -2
2 -2
0
0
Op-based Counter
(+5)
5
5
(-4)
(-3)
1 -2
2 -2
0
0
Op-based Counter
(+5)
5
5 10
Oops!
{}
{}
Naive Sets
{}
{}
Naive Sets
(+X)
{X}
(+X)
{X}
{X} {X}
{}
{}
Naive Sets
(+X)
{X}
(+X)
{X}
{X} {X}
(-X)
{}
{}
{}
{}
Naive Sets
(+X)
{X}
(+X)
{X}
{X} {X}
(-X)
{}
{}
Oops!
{}
{}
Observed-Remove Sets
(+Xa)
{Xa}
(+Xb)
{Xb}
{Xb} {XaXb}
(-Xa)
{}
{Xb}
0
0
State-based Counter
0
0
State-based Counter
(+5)
{a=5}=5
{a=5}=5
0
0
{a=9}=9
State-based Counter
(+5) (+4)
(+3)
{a=5}=5
{a=5}=5 {a=5,b=3}=8 {a=9,b=3}=12
{a=9,b=3}=12
0
0
{a=9}=9
State-based Counter
(+5) (+4)
{a=5}=5
???{a=9}=9
0
0
Increment-only Counter
(+5) (+4)
{a=5}=5
{a=9}=9{a=9}=9
{a=9}=9
0
0 {a=+5,-4}=1
{a=+5,-4}=1
PN Counter
(+5) (-4)
{a=+5}=5
{a=+8,-4}=4{a=+5,-4}=1
(+3)
{a=+8,-4}=4
0
0 {a:2:1}=1
{a:2:1}=1
Versioned State
(+5) (-4)
{a:1:5}=5
{a:3:4}=4{a:2:1}=1
(+3)
{a:3:4}=4
Replace exactly-once,
in-order delivery
with an idempotent
merge strategy
Summing Up
Monoids allow computations to be done
across many machines and merged
Sketches allow approximate results when the
exact answers are computationally infeasible
CRDTs give an approach for mutable
distributed data
Thank You
kevin@scaldeferri.com
@kscaldef

More Related Content

Similar to Monoids and sketches and crdts, oh my!

Big Data mit Microsoft?
Big Data mit Microsoft?Big Data mit Microsoft?
Big Data mit Microsoft?Olivia Klose
 
Final Project
Final ProjectFinal Project
Final ProjectCan Hu
 
How Computer Games Help Children Learn (Stockholm University Dept of Educatio...
How Computer Games Help Children Learn (Stockholm University Dept of Educatio...How Computer Games Help Children Learn (Stockholm University Dept of Educatio...
How Computer Games Help Children Learn (Stockholm University Dept of Educatio...dws1d
 
기계가 선형대수학을 통해 한국어를 이해하는 방법
기계가 선형대수학을 통해 한국어를 이해하는 방법기계가 선형대수학을 통해 한국어를 이해하는 방법
기계가 선형대수학을 통해 한국어를 이해하는 방법Kyunghoon Kim
 
Vermeulens Beyond Estimation Market Outlook - Q1 2015
Vermeulens Beyond Estimation Market Outlook - Q1 2015Vermeulens Beyond Estimation Market Outlook - Q1 2015
Vermeulens Beyond Estimation Market Outlook - Q1 2015vermeulens
 
Lecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptxLecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptxAzeenShahid
 
IDEALondon Our Startups
IDEALondon Our StartupsIDEALondon Our Startups
IDEALondon Our StartupsIDEALondon
 
Blockchain: An Introduction, by Ruben Merre NGRAVE
Blockchain: An Introduction, by Ruben Merre NGRAVEBlockchain: An Introduction, by Ruben Merre NGRAVE
Blockchain: An Introduction, by Ruben Merre NGRAVERuben Merre
 
In-Memory Distributed Computing - Porto Tech Hub
In-Memory Distributed Computing - Porto Tech HubIn-Memory Distributed Computing - Porto Tech Hub
In-Memory Distributed Computing - Porto Tech HubChristoph Engelbert
 
AWS Simple Workflow: Distributed Out of the Box! - Morning@Lohika
AWS Simple Workflow: Distributed Out of the Box! - Morning@LohikaAWS Simple Workflow: Distributed Out of the Box! - Morning@Lohika
AWS Simple Workflow: Distributed Out of the Box! - Morning@LohikaSerhiy Batyuk
 
Statistics term project_written
Statistics term project_writtenStatistics term project_written
Statistics term project_writtenjpratt23
 
Introduction to blockchain and smart contracts
Introduction to blockchain and smart contractsIntroduction to blockchain and smart contracts
Introduction to blockchain and smart contractsValidity Labs
 
IoT State of the Union - IOT210 - re:Invent 2017
IoT State of the Union - IOT210 - re:Invent 2017IoT State of the Union - IOT210 - re:Invent 2017
IoT State of the Union - IOT210 - re:Invent 2017Amazon Web Services
 
Bitcoin analytics (price prediction and affecting factors)
Bitcoin analytics (price prediction and affecting factors)Bitcoin analytics (price prediction and affecting factors)
Bitcoin analytics (price prediction and affecting factors)Milly Nguyen
 
MaskedVByte: SIMD-accelerated VByte
MaskedVByte: SIMD-accelerated VByteMaskedVByte: SIMD-accelerated VByte
MaskedVByte: SIMD-accelerated VByteDaniel Lemire
 
Connecting the physical world to the cloud
Connecting the physical world to the cloudConnecting the physical world to the cloud
Connecting the physical world to the cloudAmazon Web Services
 

Similar to Monoids and sketches and crdts, oh my! (20)

Big Data mit Microsoft?
Big Data mit Microsoft?Big Data mit Microsoft?
Big Data mit Microsoft?
 
Final Project
Final ProjectFinal Project
Final Project
 
How Computer Games Help Children Learn (Stockholm University Dept of Educatio...
How Computer Games Help Children Learn (Stockholm University Dept of Educatio...How Computer Games Help Children Learn (Stockholm University Dept of Educatio...
How Computer Games Help Children Learn (Stockholm University Dept of Educatio...
 
기계가 선형대수학을 통해 한국어를 이해하는 방법
기계가 선형대수학을 통해 한국어를 이해하는 방법기계가 선형대수학을 통해 한국어를 이해하는 방법
기계가 선형대수학을 통해 한국어를 이해하는 방법
 
Unit 2.pptx
Unit 2.pptxUnit 2.pptx
Unit 2.pptx
 
Piano rubyslava final
Piano rubyslava finalPiano rubyslava final
Piano rubyslava final
 
Vermeulens Beyond Estimation Market Outlook - Q1 2015
Vermeulens Beyond Estimation Market Outlook - Q1 2015Vermeulens Beyond Estimation Market Outlook - Q1 2015
Vermeulens Beyond Estimation Market Outlook - Q1 2015
 
Lecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptxLecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptx
 
IDEALondon Our Startups
IDEALondon Our StartupsIDEALondon Our Startups
IDEALondon Our Startups
 
Blockchain: An Introduction, by Ruben Merre NGRAVE
Blockchain: An Introduction, by Ruben Merre NGRAVEBlockchain: An Introduction, by Ruben Merre NGRAVE
Blockchain: An Introduction, by Ruben Merre NGRAVE
 
In-Memory Distributed Computing - Porto Tech Hub
In-Memory Distributed Computing - Porto Tech HubIn-Memory Distributed Computing - Porto Tech Hub
In-Memory Distributed Computing - Porto Tech Hub
 
AWS Simple Workflow: Distributed Out of the Box! - Morning@Lohika
AWS Simple Workflow: Distributed Out of the Box! - Morning@LohikaAWS Simple Workflow: Distributed Out of the Box! - Morning@Lohika
AWS Simple Workflow: Distributed Out of the Box! - Morning@Lohika
 
Statistics term project_written
Statistics term project_writtenStatistics term project_written
Statistics term project_written
 
Introduction to blockchain and smart contracts
Introduction to blockchain and smart contractsIntroduction to blockchain and smart contracts
Introduction to blockchain and smart contracts
 
Spedicato r ininsurance2015
Spedicato r ininsurance2015Spedicato r ininsurance2015
Spedicato r ininsurance2015
 
IoT State of the Union - IOT210 - re:Invent 2017
IoT State of the Union - IOT210 - re:Invent 2017IoT State of the Union - IOT210 - re:Invent 2017
IoT State of the Union - IOT210 - re:Invent 2017
 
Debugging TV Frame 0x01
Debugging TV Frame 0x01Debugging TV Frame 0x01
Debugging TV Frame 0x01
 
Bitcoin analytics (price prediction and affecting factors)
Bitcoin analytics (price prediction and affecting factors)Bitcoin analytics (price prediction and affecting factors)
Bitcoin analytics (price prediction and affecting factors)
 
MaskedVByte: SIMD-accelerated VByte
MaskedVByte: SIMD-accelerated VByteMaskedVByte: SIMD-accelerated VByte
MaskedVByte: SIMD-accelerated VByte
 
Connecting the physical world to the cloud
Connecting the physical world to the cloudConnecting the physical world to the cloud
Connecting the physical world to the cloud
 

Recently uploaded

Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Monoids and sketches and crdts, oh my!