SlideShare une entreprise Scribd logo
1  sur  105
Applied category theory
The emerging science of compositionality @KenScambler
Category theory
From “Seven Sketches of Compositionality”
Fong & Spivak (2018)
Applied category theory
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
Applied category theory
• Emerging field!
• Explosion of papers, research, development in last 5 years
• Builds a common vocabulary of composition across
disciplines
• Enables intuitive, precise visual representations
Brand new ACT Journal
Brand new ACT Book
ACT Topics & papers
Q: Is functional programming applied
category theory?
Q: Is functional programming applied
category theory?
A: Yes! (…arguably)
Plan
• I want to put applied category theory on your roadmap
• The big idea: compositionality
• Case study: Complex adaptive system design: military search & rescue
• Four concepts of composition:
• Monoids
• Categories
• Operads
• Monoidal categories
• Two graphical languages:
• String diagrams
• Wiring diagrams
Compositionality
The meaning of a complex expression is determined by:
1. The meaning of the constituent parts
2. The rules for how those parts are combined
Frege’s Principle of Compositionality
Making big things
Compositionality lets us
Making big things
out of little things
Compositionality lets us
Compositionality lets us
Making big things
out of little things
preserving guarantees
Compositionality applied
• Little programs that work
BIG programs that work?
• Little electric circuits that work
BIG electric circuits that work?
• Little Feynman diagrams that describe real physics
BIG Feynman diagrams that describe real physics?
• Little resource plans that are feasible
BIG resource plans that are feasible?
• Little networks of agents that can solve problems
BIG networks of agents that can solve problems?
Compositionality distilled - monoids
c d
e
f
h
j
a
b
i
g
a b
a b
Compose any two
ab
Associativity – no need for brackets
a b c
Associativity – no need for brackets
a b c
Associativity – no need for brackets
a b c
Associativity – no need for brackets
a b c
Associativity – no need for brackets
abc
With associativity
abc = a b c
Just the sum of
its parts with
Without associativity
+ orabc = a b c
Uh-oh! We need
external data
Identity – doesn’t do anything when you
compose
a
Identity – doesn’t do anything when you
compose
a
Identity – doesn’t do anything when you
compose
a
Compositionality distilled - categories
c d
e
f
h
j
a
b
i
g
a b
The building
blocks are called
morphisms
The colours are
called objects
a b
Can only
compose when
the colours match
ab
The middle bit
disappears
a b
Associativity – no need for brackets
c
a b
Associativity – no need for brackets
c
a b
Associativity – no need for brackets
c
a b
Associativity – no need for brackets
c
abc
Associativity – no need for brackets
a
Identities – don’t do anything when you
compose
a
Identities – don’t do anything when you
compose
a
Identities – don’t do anything when you
compose
Case study: Complex Adaptive System Design
from
“Complex Adaptive System Design” blog posts by John C. Baez
(2016-2019)
“Network Models” by Baez, Foley, Moeller, Pollard (2017)
Military research: search & rescue
• Systems of systems
• Many different kinds of networks
• Complex realtime behaviour
• How to connect them all?
Helo
1
Target
1Port
1
Helicopter knows
the target and
home base
In comms
range
In comms
range
My port
Intent to rescue
Helo
1
UAV
1
Target
1
UAV knows the
target, and the
helicopter as a
home base
In comms
range
Intent to rescue
My port
Overlay the
networks
We now have a
bigger network
working together
Helo
1
Target
1Port
1
My port
Intent to rescue
UAV
1
My port
In comms
range
In comms
range
In comms
range
Intent to rescue
Helo
network
UAV
network
Overlaying is monoidal; you
can always overlay
Helo
network
UAV
network
Overlaying is monoidal; you
can always overlay
over
lay
Combined
network
Overlaying is monoidal; you
can always overlay
How to sew together unrelated networks?
Helo
1
UAV
1
Target
1
UAV
2
UAV
3
UAV
5
Rescue-Scene
UAV
4
In comms
range
In comms
range
UAV-Search-Net
Helo
2
Homebase
Intent to rescue
My port
Havana
1 2
3
4 5
6 7
8
9
How to sew together unrelated networks?
“Take 3 networks of 3, 4
and 2 vertices; return a
network of 9 vertices”
Intent to rescue
Helo
1
UAV
1
Target
1
UAV
2
UAV
3
UAV
5
UAV
4
In comms
range
In comms
rangeHelo
2
In comms
range
Intent to
rescue
My port
Intent to
rescue
Havana
Is that a category?
Network-1 Network-2 Network-3
Nope!
You can’t compose the
networks themselves.
Network-1 Network-2 Network-3
Morphisms with lots of inputs?
The ”type” is the number
of vertices expected in
subnetworks
“Take 3 networks of 3, 4 and
2 vertices; return a network
of 9 vertices”
3
4
2
9
Compositionality distilled – operads
a
c
b
d
a
cb
a
cb
a
cb
a
cb
abc
a
a
a
a
Obvious example: types & functions
receiveInvoice
User
Invoice
Signature
Receipt
storeReceipt
Receipt
Shoebox
Shoebox
login
Username
Password
User
receiveInvoiceInvoice
Signature
storeReceipt
Shoebox
Shoebox
login
Username
Password
Invoice
Signature
fullInvoiceFlow
Shoebox
Shoebox
Username
Password
def fullInvoiceFlow(username,
password,
invoice,
signature,
shoebox) {
user = login(username, password)
receipt = receiveInvoice(user, invoice, signature)
return storeReceipt(receipt, shoebox)
}
Mapping it to reality
Helicopter
Port
UAV
Target
my port
Intent to rescue
Comms channel
Havana
Rescue-Scene
UAV-Search-Net
Homebase
Mapping it to reality
Helicopter
Port
UAV
Target
my port
Intent to rescue
Comms channel
Havana Rescue-Scene := ...
UAV-Search-Net := ...
Homebase := ...
joinNetworks(Rescue-Scene,
UAV-Search-Net,
Homebase)
To actually use an operad, translate
it to the operad of sets & functions,
preserving composition & identity
From “Seven Sketches of Compositionality”
Fong & Spivak (2018)
String diagrams
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
morphisms
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
objects
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
egg
sugar
unbaked
pieadd
meringue
composition
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
tensoring
Tensoring forms a monoid
(up to isomorphism)
lemon butter sugar
make
lemon filling
… on the objects of the category
lemon ⨂ butter ⨂ sugar
lemon
filling
Monoidal categories
Category C
Tensor operation
⨂ : (object, object) -> object
such that (a ⨂ b) ⨂ c ≃ a ⨂ (b ⨂ c)
Unit object
I : object
such that a ⨂ I ≃ I ⨂ a ≃ a
Monoidal categories
f g
x y y z
f g
x y z
f
g
x y
y z
x y
y z
f ⨂ g=
Horizontal composition Vertical composition
x ⨂ y
f ⨂ g=
y ⨂ z
Diagrams inside diagrams
prepare lemon meringue pie
make
lemon
filling
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
Make lemon filling
lemon
butter
sugar
Blend
yolk
Beat
Combine
lemon
filling
Diagrams inside diagrams
prepare lemon meringue pie
fill crust
make
meringue
separate egg
prepared crust
lemon
butter
sugar
yolk
egg
white
sugar
meringue
lemon
filling
unbaked
lemon
pie unbaked
pieadd
meringue
Blend
Beat
Combine
oven
unbaked
pie
baked pie
oven
prepare lemon meringue pie
bake pie
prepare lemon meringue pie
oven
unbaked
pie
baked pie
oven
bake pie
Surprise! It’s another operad
Lemon Meringue Pie operad
prepare lemon
meringue pie
sugar ⨂ white  meringue
prepared crust ⨂ lemon ⨂ butter ⨂
sugar ⨂ egg ⨂ sugar  unbaked pie
egg  yolk ⨂ white
lemon ⨂ butter ⨂ sugar ⨂
yolk  lemon filling
prepared crust ⨂ lemon filling
 unbaked lemon pie
unbaked lemon pie ⨂
meringue  unbaked pie
From “Seven Sketches of Compositionality”
Fong & Spivak (2018)
String diagrams in software architecture
• Fantastic for software design
• I’ve used them for years to train junior & senior developers
• Modularity, boundaries
Simon Brown
Level 1
Level 1
Level 2
Level 1
Level 2
Level 3
Level 1
Level 2
Level 3
Level 4
Operad! (maybe)
Operad of wiring diagrams
from
“The operad of wiring diagrams: formalizing a graphical
language for databases, recursion and plug-and-play circuits”
by David I. Spivak (2013)
Inputs x1, x2, x3
Input types
{s,r,t}
{w, x, y, z}
{u, v}
Output type
{a,b,c,d,e}
Compositional SQL queries
SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
TablesConstants
SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
SELECT
SELECT L.student, L.address
FROM attends a1, gender g1, attends a2, gender g2, lives L
WHERE a1.student=g1.student AND a2.student=g2.student
AND L.student=g1.student AND a1.course=a2.course
AND g1.gender=‘male’ AND g2.gender=‘female’
WHERE
(wiring)
In conclusion
• Applied category theory is an exciting new field that seeks to mine
the benefits of compositionality wherever they may be found
• Supports marvelous graphical languages
• Early days!
• Watch this space
The future
• Anything where “making big things out of little things” is an
important part
• So far: category theorists discovering applications and promoting
• Industry might eventually begin to lead the charge
• Computer science & programming will be at the forefront: software
has eaten the world
• Functional programming will be at the forefront: we are early
adopters
People to follow on Twitter
John C. Baez
@johncarlosbaez
Jules Hedges
@_julesh_
Dr. Eugenia Cheng
@DrEugeniaCheng
Jade Master
@JadeMasterMath
Tai-Danae Bradley
@math3ma
Joe Moeller
@CreeepyJoe
Statebox
@statebox
Jelle Herold
@wires_wires
Fabrizio
Remano
Genovese
@fabgenovese
Further reading
• “Seven Sketches of Compositionality” by Brendan Fong, David I. Spivak (2018)
• “Applied category theory course” by John C. Baez (2018)
• “What is applied category theory?” by Tai-Danae Bradley (2018)
• “Network models” by Baez, Foley, Moeller, Pollard (2017)
• “The operad of wiring diagrams: formalizing a graphical language for
databases, recursion and plug-and-play circuits” by David I. Spivak (2013)

Contenu connexe

Tendances

Effective testing with pytest
Effective testing with pytestEffective testing with pytest
Effective testing with pytestHector Canto
 
Introduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksIntroduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksEueung Mulyana
 
Why The Free Monad isn't Free
Why The Free Monad isn't FreeWhy The Free Monad isn't Free
Why The Free Monad isn't FreeKelley Robinson
 
給初學者的Spark教學
給初學者的Spark教學給初學者的Spark教學
給初學者的Spark教學Chen-en Lu
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorZabbix BR
 
Implicit parameters, when to use them (or not)!
Implicit parameters, when to use them (or not)!Implicit parameters, when to use them (or not)!
Implicit parameters, when to use them (or not)!Julien Truffaut
 
On Parameterised Types and Java Generics
On Parameterised Types and Java GenericsOn Parameterised Types and Java Generics
On Parameterised Types and Java GenericsYann-Gaël Guéhéneuc
 
Functional Programming 101 with Scala and ZIO @FunctionalWorld
Functional Programming 101 with Scala and ZIO @FunctionalWorldFunctional Programming 101 with Scala and ZIO @FunctionalWorld
Functional Programming 101 with Scala and ZIO @FunctionalWorldJorge Vásquez
 
Boost your productivity with Scala tooling!
Boost your productivity  with Scala tooling!Boost your productivity  with Scala tooling!
Boost your productivity with Scala tooling!MeriamLachkar1
 
Testing with Spring: An Introduction
Testing with Spring: An IntroductionTesting with Spring: An Introduction
Testing with Spring: An IntroductionSam Brannen
 
OOPs Concepts - Android Programming
OOPs Concepts - Android ProgrammingOOPs Concepts - Android Programming
OOPs Concepts - Android ProgrammingPurvik Rana
 
Introduction to Java Strings, By Kavita Ganesan
Introduction to Java Strings, By Kavita GanesanIntroduction to Java Strings, By Kavita Ganesan
Introduction to Java Strings, By Kavita GanesanKavita Ganesan
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API TestingSauce Labs
 
Perils of Page-Object Pattern
Perils of Page-Object PatternPerils of Page-Object Pattern
Perils of Page-Object PatternAnand Bagmar
 
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...Simplilearn
 

Tendances (20)

Joy of scala
Joy of scalaJoy of scala
Joy of scala
 
Effective testing with pytest
Effective testing with pytestEffective testing with pytest
Effective testing with pytest
 
Introduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter NotebooksIntroduction to IPython & Jupyter Notebooks
Introduction to IPython & Jupyter Notebooks
 
Why The Free Monad isn't Free
Why The Free Monad isn't FreeWhy The Free Monad isn't Free
Why The Free Monad isn't Free
 
給初學者的Spark教學
給初學者的Spark教學給初學者的Spark教學
給初學者的Spark教學
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
 
Implicit parameters, when to use them (or not)!
Implicit parameters, when to use them (or not)!Implicit parameters, when to use them (or not)!
Implicit parameters, when to use them (or not)!
 
On Parameterised Types and Java Generics
On Parameterised Types and Java GenericsOn Parameterised Types and Java Generics
On Parameterised Types and Java Generics
 
Core java Essentials
Core java EssentialsCore java Essentials
Core java Essentials
 
Python in Test automation
Python in Test automationPython in Test automation
Python in Test automation
 
Functional Programming 101 with Scala and ZIO @FunctionalWorld
Functional Programming 101 with Scala and ZIO @FunctionalWorldFunctional Programming 101 with Scala and ZIO @FunctionalWorld
Functional Programming 101 with Scala and ZIO @FunctionalWorld
 
Boost your productivity with Scala tooling!
Boost your productivity  with Scala tooling!Boost your productivity  with Scala tooling!
Boost your productivity with Scala tooling!
 
Testing with Spring: An Introduction
Testing with Spring: An IntroductionTesting with Spring: An Introduction
Testing with Spring: An Introduction
 
Java 8 Lambda Expressions
Java 8 Lambda ExpressionsJava 8 Lambda Expressions
Java 8 Lambda Expressions
 
OOPs Concepts - Android Programming
OOPs Concepts - Android ProgrammingOOPs Concepts - Android Programming
OOPs Concepts - Android Programming
 
Introduction to Java Strings, By Kavita Ganesan
Introduction to Java Strings, By Kavita GanesanIntroduction to Java Strings, By Kavita Ganesan
Introduction to Java Strings, By Kavita Ganesan
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
 
Java API
Java APIJava API
Java API
 
Perils of Page-Object Pattern
Perils of Page-Object PatternPerils of Page-Object Pattern
Perils of Page-Object Pattern
 
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
Selenium IDE Tutorial For Beginners | Selenium IDE Tutorial | What Is Seleniu...
 

Similaire à Applied category theory: the emerging science of compositionality

Building Applications with a Graph Database
Building Applications with a Graph DatabaseBuilding Applications with a Graph Database
Building Applications with a Graph DatabaseTobias Lindaaker
 
Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Scott Wlaschin
 
Donut chart in Revit with Dynamo
Donut chart in Revit with DynamoDonut chart in Revit with Dynamo
Donut chart in Revit with DynamoWojciech Klepacki
 
How to Have Code Reviews That Developers Actually Want
How to Have Code Reviews That Developers Actually WantHow to Have Code Reviews That Developers Actually Want
How to Have Code Reviews That Developers Actually WantCameron Presley
 
From V8 to Modern Compilers
From V8 to Modern CompilersFrom V8 to Modern Compilers
From V8 to Modern CompilersMin-Yih Hsu
 
The OpenRepGrid project – Software tools for the analysis and administration...
The OpenRepGrid project – Software tools  for the analysis and administration...The OpenRepGrid project – Software tools  for the analysis and administration...
The OpenRepGrid project – Software tools for the analysis and administration...Mark Heckmann
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem Claudson Oliveira
 
Design patterns
Design patternsDesign patterns
Design patternsnisheesh
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampTheo Jungeblut
 
Neo4j Training Modeling
Neo4j Training ModelingNeo4j Training Modeling
Neo4j Training ModelingMax De Marzi
 
Ember. it is time to try
Ember. it is time to tryEmber. it is time to try
Ember. it is time to tryYaroslav Popov
 
Know your platform. 7 things every scala developer should know about jvm
Know your platform. 7 things every scala developer should know about jvmKnow your platform. 7 things every scala developer should know about jvm
Know your platform. 7 things every scala developer should know about jvmPawel Szulc
 
Principles Of Web Design Workshop
Principles Of Web Design WorkshopPrinciples Of Web Design Workshop
Principles Of Web Design WorkshopGavin Elliott
 
How Shutl Delivers Even Faster Using Neo4J
How Shutl Delivers Even Faster Using Neo4JHow Shutl Delivers Even Faster Using Neo4J
How Shutl Delivers Even Faster Using Neo4JC4Media
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++Mike Acton
 
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmxMoved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmxMilen Dyankov
 

Similaire à Applied category theory: the emerging science of compositionality (20)

Building Applications with a Graph Database
Building Applications with a Graph DatabaseBuilding Applications with a Graph Database
Building Applications with a Graph Database
 
Ruby Egison
Ruby EgisonRuby Egison
Ruby Egison
 
Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)
 
Donut chart in Revit with Dynamo
Donut chart in Revit with DynamoDonut chart in Revit with Dynamo
Donut chart in Revit with Dynamo
 
How to Have Code Reviews That Developers Actually Want
How to Have Code Reviews That Developers Actually WantHow to Have Code Reviews That Developers Actually Want
How to Have Code Reviews That Developers Actually Want
 
From V8 to Modern Compilers
From V8 to Modern CompilersFrom V8 to Modern Compilers
From V8 to Modern Compilers
 
Sylius, the good choice
Sylius, the good choiceSylius, the good choice
Sylius, the good choice
 
The OpenRepGrid project – Software tools for the analysis and administration...
The OpenRepGrid project – Software tools  for the analysis and administration...The OpenRepGrid project – Software tools  for the analysis and administration...
The OpenRepGrid project – Software tools for the analysis and administration...
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code Camp
 
Scalax
ScalaxScalax
Scalax
 
Neo4j Training Modeling
Neo4j Training ModelingNeo4j Training Modeling
Neo4j Training Modeling
 
Ember. it is time to try
Ember. it is time to tryEmber. it is time to try
Ember. it is time to try
 
Quality code 2019
Quality code 2019Quality code 2019
Quality code 2019
 
Know your platform. 7 things every scala developer should know about jvm
Know your platform. 7 things every scala developer should know about jvmKnow your platform. 7 things every scala developer should know about jvm
Know your platform. 7 things every scala developer should know about jvm
 
Principles Of Web Design Workshop
Principles Of Web Design WorkshopPrinciples Of Web Design Workshop
Principles Of Web Design Workshop
 
How Shutl Delivers Even Faster Using Neo4J
How Shutl Delivers Even Faster Using Neo4JHow Shutl Delivers Even Faster Using Neo4J
How Shutl Delivers Even Faster Using Neo4J
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++
 
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmxMoved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
Moved to https://slidr.io/azzazzel/web-application-performance-tuning-beyond-xmx
 

Plus de kenbot

Grow your own tech leads
Grow your own tech leadsGrow your own tech leads
Grow your own tech leadskenbot
 
Responsible DI: Ditch the Frameworks
Responsible DI: Ditch the FrameworksResponsible DI: Ditch the Frameworks
Responsible DI: Ditch the Frameworkskenbot
 
FP adoption at REA
FP adoption at REAFP adoption at REA
FP adoption at REAkenbot
 
Lenses for the masses - introducing Goggles
Lenses for the masses - introducing GogglesLenses for the masses - introducing Goggles
Lenses for the masses - introducing Goggleskenbot
 
Good functional programming is good programming
Good functional programming is good programmingGood functional programming is good programming
Good functional programming is good programmingkenbot
 
Data made out of functions
Data made out of functionsData made out of functions
Data made out of functionskenbot
 
Imagine a world without mocks
Imagine a world without mocksImagine a world without mocks
Imagine a world without mockskenbot
 
2 Years of Real World FP at REA
2 Years of Real World FP at REA2 Years of Real World FP at REA
2 Years of Real World FP at REAkenbot
 
Your data structures are made of maths!
Your data structures are made of maths!Your data structures are made of maths!
Your data structures are made of maths!kenbot
 
The disaster of mutable state
The disaster of mutable stateThe disaster of mutable state
The disaster of mutable statekenbot
 

Plus de kenbot (10)

Grow your own tech leads
Grow your own tech leadsGrow your own tech leads
Grow your own tech leads
 
Responsible DI: Ditch the Frameworks
Responsible DI: Ditch the FrameworksResponsible DI: Ditch the Frameworks
Responsible DI: Ditch the Frameworks
 
FP adoption at REA
FP adoption at REAFP adoption at REA
FP adoption at REA
 
Lenses for the masses - introducing Goggles
Lenses for the masses - introducing GogglesLenses for the masses - introducing Goggles
Lenses for the masses - introducing Goggles
 
Good functional programming is good programming
Good functional programming is good programmingGood functional programming is good programming
Good functional programming is good programming
 
Data made out of functions
Data made out of functionsData made out of functions
Data made out of functions
 
Imagine a world without mocks
Imagine a world without mocksImagine a world without mocks
Imagine a world without mocks
 
2 Years of Real World FP at REA
2 Years of Real World FP at REA2 Years of Real World FP at REA
2 Years of Real World FP at REA
 
Your data structures are made of maths!
Your data structures are made of maths!Your data structures are made of maths!
Your data structures are made of maths!
 
The disaster of mutable state
The disaster of mutable stateThe disaster of mutable state
The disaster of mutable state
 

Dernier

Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 

Dernier (20)

Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 

Applied category theory: the emerging science of compositionality