SlideShare une entreprise Scribd logo
1  sur  88
@pcameronpresley
Taking a Gamble With
Functional Domain Modeling
Cameron Presley
Cameron@TheSoftwareMentor.com
@pcameronpresley
https://blog.TheSoftwareMentor.com/Presentations
No Need To Take Notes!
@pcameronpresley
3
@pcameronpresley
What Are We Covering?
Introduction to Blackjack
Defining the Domain
Implementing the Domain
Implementing common workflows
4
5
@pcameronpresley
Overview
Game played with a standard deck of cards
Objective is to get closest to 21 points
without going over
Involves one or more players playing against
the dealer
6
@pcameronpresley
Set Up
Each player is dealt two cards face-up to
form their hand
Dealer is dealt two cards (one face-up) to
form their hand
7
@pcameronpresley
Game Play
On their turn, a player can take an action
Once all players have taken their turn, dealer
takes their turn
After dealer completes their turn, each
player compares their hand with the dealer
8
@pcameronpresley
Player Turn
Players can either “Hit” or “Stand”
◦ Stand – Ends the turn, staying in
◦ Hit – Draw a card
If their hand goes over 21, they “bust”
ending their turn and leaving the round
9
@pcameronpresley
Scoring
Aces can be worth 1 or 11 points
Face cards are worth 10 points
Number cards are worth that many points
If a player or dealer is dealt a hand worth 21
points (an Ace and a 10 point card), they
have a Blackjack, winning automatically
10
11
12
@pcameronpresley
What are the nouns?
Game played with a standard deck of cards
Objective is to get closest to 21 points
without going over
Involves one or more players playing against
the dealer
13
@pcameronpresley
14
@pcameronpresley
Each player is dealt two cards face-up to
form their hand
Dealer is dealt two cards (one face-up) to
form their hand
15
@pcameronpresley
16
@pcameronpresley
On their turn, a player can take an action
Once all players have taken their turn, dealer
takes their turn
After dealer completes their turn, each
player compares their hand with the dealer
17
@pcameronpresley
18
@pcameronpresley
Players can either “Hit” or “Stand”
◦ Stand – Ends the turn, staying in
◦ Hit – Draw a card
If their hand goes over 21, they “bust”
ending their turn and leaving the round
19
@pcameronpresley
20
@pcameronpresley
Building Up the Dependency Chart
21
@pcameronpresley
Determining Dependencies using
“has-a”
Game has a Deck, a Dealer, and Players
Deck has one or more Cards
Dealer has a Hand
Player has a Hand
Hand has one or more Cards
Card has a Rank and Suit
22
@pcameronpresley
23
@pcameronpresley
24
@pcameronpresley
25
26
@pcameronpresley
27
@pcameronpresley
Rank
Represents one of 13 possible values
Rank can be an Ace OR a Two OR a Three…
How to Model?
28
@pcameronpresley
Introducing The Sum Type!
Type that can be one of a finite number of
choices
Each choice is a different constructor
When a type can be A or B or C
29
@pcameronpresley
Rank
30
@pcameronpresley
31
@pcameronpresley
Suit
Represents one of four possible values
Suit can be Hearts or Clubs or Spades or
Diamonds
How can we model this?
32
@pcameronpresley
Suit
33
@pcameronpresley
34
@pcameronpresley
Card
Represents the combination of any Rank
and Suit
13 Ranks x 4 Suits = 52 possibilities
How can we model combinations?
35
@pcameronpresley
Introducing the Product Type!
Type that specifies the combination of other
types
It’s the product of the possible values for all
types it combines
36
@pcameronpresley
Card
37
@pcameronpresley
38
@pcameronpresley
Deck
Represents the Cards to be used in the game
Players and Dealers will be drawing from this
during the Game
How to model?
39
@pcameronpresley
Introducing the Type Alias!
40
Any code that can work on a Card
List will work on a Deck
@pcameronpresley
41
@pcameronpresley
Hand
Represents one or more Cards that a Player
or Dealer has
How to model this?
Leveraging a Type alias!
42
@pcameronpresley
43
Any issue with Hand and Deck being
interchangeable?
@pcameronpresley
Making Deck Different
44
In order to create this type, a Card list must be specified
Deck != Card list
@pcameronpresley
45
[]
[]
[]
@pcameronpresley
46
@pcameronpresley
Player
Represents someone playing the game
Has a Hand and an ID
How to model?
47
@pcameronpresley
Player
48
@pcameronpresley
49
@pcameronpresley
Dealer
Represents who every player is competing
against
Has a Hand
How to model?
50
@pcameronpresley
Dealer
51
@pcameronpresley
52
@pcameronpresley
Game
It’s what’s being played!
Consists of a Deck, a Dealer, and 1 or more
Players
How to Model?
53
@pcameronpresley
Game
54
@pcameronpresley
55
@pcameronpresley
Status
Represents the Player or Dealer during the
game
Can be one of 3 possible values
- Blackjack, Busted, Stayed
How to model?
56
@pcameronpresley
Status
57
To construct Stayed or Busted, an integer is needed
No dependencies to construct the Blackjack type
@pcameronpresley
58
@pcameronpresley
Points
Represents how much a Card is worth
Ace = 1 or 11 points
Face Cards = 10 points
Number Cards = That number of points
How to model?
59
@pcameronpresley
Points
60
To construct the Hard type, need an int
To construct the Soft type, need a tuple of int and int
@pcameronpresley
61
@pcameronpresley
Action
Represents what a Player can do during the
Game
Can either be Hit or Stay
How to model?
62
@pcameronpresley
Action
63
@pcameronpresley
64
@pcameronpresley
Domain Defined
65
66
67
@pcameronpresley
68
69
@pcameronpresley
Scoring a Hand
How Would You Score a Hand?
Calculate how many points each card is
worth
Sum them up!
70
@pcameronpresley
Scoring Rules
Aces can be worth 1 or 11 points
Face cards are worth 10 points
Number cards are worth that many points
71
@pcameronpresley
72
@pcameronpresley
How to add points?
73
@pcameronpresley
Scoring a Hand
74
75
@pcameronpresley
Drawing A Card!
76
What do we do if the deck is empty?
@pcameronpresley
Introducing the Maybe Type!
Allows us to model the absence of a value
Compile time checked
Forces us to do the right thing
77
@pcameronpresley
78
Most languages have this construct
In F#, it’s called Option
@pcameronpresley
79
By using Option, we’re signaling that this function may return
a value and that callers will need to deal with the absence of
value
@pcameronpresley
Let’s Draw Multiple Cards!
80
@pcameronpresley
81
m
@pcameronpresley
82
Where did maybe come from?
Where did let! come from?
Where did return come from?
@pcameronpresley
83
84
@pcameronpresley
What Did We Cover?
Introduction to Blackjack
Defining the Domain
Implementing the Domain
Implementing common workflows
85
@pcameronpresley
Resources
◦ Thinking Functionally (series) by Scott Wlaschin
◦ Functional Architecture : a definition by Mark Seemann
◦ Functional Architecture Is Ports and Adapters by Mark Seemann
◦ Algebraic Data Types Aren't Numbers on Steroids by Mark
Seemann
◦ Domain Modeling Made Functional by Scott Wlaschin
@pcameronpresley
88
Thanks!
Any questions?
◦ Cameron@TheSoftwareMentor.com

Contenu connexe

Tendances

Teaching a Computer To Play Blackjack.doc
Teaching a Computer To Play Blackjack.docTeaching a Computer To Play Blackjack.doc
Teaching a Computer To Play Blackjack.docbutest
 
Deccan rummy – how to play points rummy
Deccan rummy – how to play points rummy Deccan rummy – how to play points rummy
Deccan rummy – how to play points rummy Deccan Rummy
 
Deccan rummy – how to play points rummy?
Deccan rummy – how to play points rummy?Deccan rummy – how to play points rummy?
Deccan rummy – how to play points rummy?DeccanRummy
 
Advanced gambling strategy for blackjack
Advanced gambling strategy for blackjackAdvanced gambling strategy for blackjack
Advanced gambling strategy for blackjackprofessionalgambling
 
5 Methods How To Win Casino Roulette
5 Methods How To Win Casino Roulette5 Methods How To Win Casino Roulette
5 Methods How To Win Casino Roulettemisiacot
 
Automated poker player report
Automated poker player reportAutomated poker player report
Automated poker player reportDanish Bangash
 
Deccan rummy – how to play pool rummy?
Deccan rummy – how to play pool rummy?Deccan rummy – how to play pool rummy?
Deccan rummy – how to play pool rummy?DeccanRummy
 
Deccan rummy – how to play pool rummy
Deccan rummy – how to play pool rummy Deccan rummy – how to play pool rummy
Deccan rummy – how to play pool rummy Deccan Rummy
 
Design Documentation
Design DocumentationDesign Documentation
Design Documentationvaiyash
 
Bolt Action Dutch Nationals rulepack 2019
Bolt Action Dutch Nationals rulepack 2019 Bolt Action Dutch Nationals rulepack 2019
Bolt Action Dutch Nationals rulepack 2019 Jordy Morsch
 
Intellectual playing cards - Not for everyone
Intellectual playing cards - Not for everyoneIntellectual playing cards - Not for everyone
Intellectual playing cards - Not for everyonedrstevenquay
 

Tendances (14)

Teaching a Computer To Play Blackjack.doc
Teaching a Computer To Play Blackjack.docTeaching a Computer To Play Blackjack.doc
Teaching a Computer To Play Blackjack.doc
 
Deccan rummy – how to play points rummy
Deccan rummy – how to play points rummy Deccan rummy – how to play points rummy
Deccan rummy – how to play points rummy
 
Deccan rummy – how to play points rummy?
Deccan rummy – how to play points rummy?Deccan rummy – how to play points rummy?
Deccan rummy – how to play points rummy?
 
Advanced gambling strategy for blackjack
Advanced gambling strategy for blackjackAdvanced gambling strategy for blackjack
Advanced gambling strategy for blackjack
 
5 Methods How To Win Casino Roulette
5 Methods How To Win Casino Roulette5 Methods How To Win Casino Roulette
5 Methods How To Win Casino Roulette
 
Automated poker player report
Automated poker player reportAutomated poker player report
Automated poker player report
 
Deccan rummy – how to play pool rummy?
Deccan rummy – how to play pool rummy?Deccan rummy – how to play pool rummy?
Deccan rummy – how to play pool rummy?
 
Deccan rummy – how to play pool rummy
Deccan rummy – how to play pool rummy Deccan rummy – how to play pool rummy
Deccan rummy – how to play pool rummy
 
TRADE SECRETS
TRADE SECRETSTRADE SECRETS
TRADE SECRETS
 
Design Documentation
Design DocumentationDesign Documentation
Design Documentation
 
3. research
3. research3. research
3. research
 
Bolt Action Dutch Nationals rulepack 2019
Bolt Action Dutch Nationals rulepack 2019 Bolt Action Dutch Nationals rulepack 2019
Bolt Action Dutch Nationals rulepack 2019
 
Lola 2
Lola 2Lola 2
Lola 2
 
Intellectual playing cards - Not for everyone
Intellectual playing cards - Not for everyoneIntellectual playing cards - Not for everyone
Intellectual playing cards - Not for everyone
 

Similaire à Taking a Gamble with Functional Domain Modeling

Poker Texas Holdem English
Poker Texas Holdem   EnglishPoker Texas Holdem   English
Poker Texas Holdem EnglishMárcio Guerra
 
How to Classic Indian Rummy
How to Classic Indian RummyHow to Classic Indian Rummy
How to Classic Indian RummyGauravwwww
 
Top Money Earning Card Games in India
Top Money Earning Card Games in IndiaTop Money Earning Card Games in India
Top Money Earning Card Games in IndiaBhupendra Chahar
 
Top Money Earning Card Games in India
Top Money Earning Card Games in IndiaTop Money Earning Card Games in India
Top Money Earning Card Games in IndiaBhupendra Chahar
 
Ch11 Search & Sort
Ch11 Search & SortCh11 Search & Sort
Ch11 Search & Sortleminhvuong
 
53252470-SCI-DAMATH-GAME.ppt
53252470-SCI-DAMATH-GAME.ppt53252470-SCI-DAMATH-GAME.ppt
53252470-SCI-DAMATH-GAME.ppthoneybal egipto
 
Blackjack dominance
Blackjack dominanceBlackjack dominance
Blackjack dominanceChidi Ibe
 
Social Media Game Concept - Hearts ( as visible in Windows games arena)
Social Media Game Concept - Hearts ( as visible in Windows games arena)Social Media Game Concept - Hearts ( as visible in Windows games arena)
Social Media Game Concept - Hearts ( as visible in Windows games arena)Ankit Gupta
 
Poker in Numbers
Poker in NumbersPoker in Numbers
Poker in NumbersPokerCoUk
 
22049748 poker-strategies-and-poker-tools
22049748 poker-strategies-and-poker-tools22049748 poker-strategies-and-poker-tools
22049748 poker-strategies-and-poker-toolsRumbleDub
 
Almost horseshoes presentation
Almost horseshoes presentationAlmost horseshoes presentation
Almost horseshoes presentationMike Bonafede
 
Gaming for beginners
Gaming for beginners Gaming for beginners
Gaming for beginners JHeaman
 

Similaire à Taking a Gamble with Functional Domain Modeling (15)

Poker Texas Holdem English
Poker Texas Holdem   EnglishPoker Texas Holdem   English
Poker Texas Holdem English
 
How to Classic Indian Rummy
How to Classic Indian RummyHow to Classic Indian Rummy
How to Classic Indian Rummy
 
Top Money Earning Card Games in India
Top Money Earning Card Games in IndiaTop Money Earning Card Games in India
Top Money Earning Card Games in India
 
Top Money Earning Card Games in India
Top Money Earning Card Games in IndiaTop Money Earning Card Games in India
Top Money Earning Card Games in India
 
How To Play 500 Rummy
How To Play 500 RummyHow To Play 500 Rummy
How To Play 500 Rummy
 
Ch11 Search & Sort
Ch11 Search & SortCh11 Search & Sort
Ch11 Search & Sort
 
53252470-SCI-DAMATH-GAME.ppt
53252470-SCI-DAMATH-GAME.ppt53252470-SCI-DAMATH-GAME.ppt
53252470-SCI-DAMATH-GAME.ppt
 
Blackjack dominance
Blackjack dominanceBlackjack dominance
Blackjack dominance
 
Social Media Game Concept - Hearts ( as visible in Windows games arena)
Social Media Game Concept - Hearts ( as visible in Windows games arena)Social Media Game Concept - Hearts ( as visible in Windows games arena)
Social Media Game Concept - Hearts ( as visible in Windows games arena)
 
Poker in Numbers
Poker in NumbersPoker in Numbers
Poker in Numbers
 
22049748 poker-strategies-and-poker-tools
22049748 poker-strategies-and-poker-tools22049748 poker-strategies-and-poker-tools
22049748 poker-strategies-and-poker-tools
 
Blackjack Coded in MATLAB
Blackjack Coded in MATLABBlackjack Coded in MATLAB
Blackjack Coded in MATLAB
 
Minibridge
MinibridgeMinibridge
Minibridge
 
Almost horseshoes presentation
Almost horseshoes presentationAlmost horseshoes presentation
Almost horseshoes presentation
 
Gaming for beginners
Gaming for beginners Gaming for beginners
Gaming for beginners
 

Plus de Cameron Presley

The Engineer's Playbook: Starting a New Role
The Engineer's Playbook: Starting a New RoleThe Engineer's Playbook: Starting a New Role
The Engineer's Playbook: Starting a New RoleCameron Presley
 
Level Up Your Functional Programming Skills with LINQ
Level Up Your Functional Programming Skills with LINQLevel Up Your Functional Programming Skills with LINQ
Level Up Your Functional Programming Skills with LINQCameron Presley
 
Functional Programming Through Construction : First Principles
Functional Programming Through Construction : First PrinciplesFunctional Programming Through Construction : First Principles
Functional Programming Through Construction : First PrinciplesCameron Presley
 
Establishing a SOLID Foundation
Establishing a SOLID FoundationEstablishing a SOLID Foundation
Establishing a SOLID FoundationCameron Presley
 
How Functional Programming Made Me a Better Developer
How Functional Programming Made Me a Better DeveloperHow Functional Programming Made Me a Better Developer
How Functional Programming Made Me a Better DeveloperCameron Presley
 
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
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingCameron Presley
 
Indy Code - Taking a Gamble With F#: Implementing Blackjack
Indy Code - Taking a Gamble With F#: Implementing BlackjackIndy Code - Taking a Gamble With F#: Implementing Blackjack
Indy Code - Taking a Gamble With F#: Implementing BlackjackCameron Presley
 
How Functional Programming Made Me A Better Developer
How Functional Programming Made Me A Better DeveloperHow Functional Programming Made Me A Better Developer
How Functional Programming Made Me A Better DeveloperCameron Presley
 
Establishing a SOLID Foundation - An Intro to Software Design
Establishing a SOLID Foundation - An Intro to Software DesignEstablishing a SOLID Foundation - An Intro to Software Design
Establishing a SOLID Foundation - An Intro to Software DesignCameron Presley
 

Plus de Cameron Presley (10)

The Engineer's Playbook: Starting a New Role
The Engineer's Playbook: Starting a New RoleThe Engineer's Playbook: Starting a New Role
The Engineer's Playbook: Starting a New Role
 
Level Up Your Functional Programming Skills with LINQ
Level Up Your Functional Programming Skills with LINQLevel Up Your Functional Programming Skills with LINQ
Level Up Your Functional Programming Skills with LINQ
 
Functional Programming Through Construction : First Principles
Functional Programming Through Construction : First PrinciplesFunctional Programming Through Construction : First Principles
Functional Programming Through Construction : First Principles
 
Establishing a SOLID Foundation
Establishing a SOLID FoundationEstablishing a SOLID Foundation
Establishing a SOLID Foundation
 
How Functional Programming Made Me a Better Developer
How Functional Programming Made Me a Better DeveloperHow Functional Programming Made Me a Better Developer
How Functional Programming Made Me a Better Developer
 
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
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
 
Indy Code - Taking a Gamble With F#: Implementing Blackjack
Indy Code - Taking a Gamble With F#: Implementing BlackjackIndy Code - Taking a Gamble With F#: Implementing Blackjack
Indy Code - Taking a Gamble With F#: Implementing Blackjack
 
How Functional Programming Made Me A Better Developer
How Functional Programming Made Me A Better DeveloperHow Functional Programming Made Me A Better Developer
How Functional Programming Made Me A Better Developer
 
Establishing a SOLID Foundation - An Intro to Software Design
Establishing a SOLID Foundation - An Intro to Software DesignEstablishing a SOLID Foundation - An Intro to Software Design
Establishing a SOLID Foundation - An Intro to Software Design
 

Dernier

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Dernier (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Taking a Gamble with Functional Domain Modeling