SlideShare uma empresa Scribd logo
1 de 142
Baixar para ler offline
Feature branches and toggles
in a post-GitHub world
Devoxx Poland 2017
Sam Newman
@samnewman@devoxxpl
Sam Newman &
Associates
@samnewman@devoxxpl
Sam Newman
Building
Microservices
DESIGNING FINE-GRAINED SYSTEMS
@samnewman@devoxxpl
2004
@samnewman@devoxxpl
@samnewman@devoxxpl
to
Banbury
Oxford
Reading
High Wycombe
London Marylebone
to
Luton
St Albans
London St Pancras
Rugby
Milton Keynes
Central
Watford Junction
London Euston
Bedford
Wolverton
Fenny Stratford
Bow Brickhill
Woburn Sands
Aspley Guise
Ridgmont
Lidlington
Watford North
Garston
Bricket Wood
How Wood
Park Street
St Albans Abbey
Millbrook
Stewartby
Kempston Hardwick
Bedford St Johns
Bletchley
Leighton Buzzard
Cheddington
Tring
Berkhamsted
Hemel Hempstead
Apsley
Kings Langley
Bushey
Harrow & Wealdstone
Wembley Central
wick
Coventry
Leamington
Spa
Northampton
Long Buckby
Coventry
Arena
@samnewman@devoxxpl
to
Banbury
Oxford
Reading
High Wycombe
London Marylebone
to
Luton
St Albans
London St Pancras
Rugby
Milton Keynes
Central
Watford Junction
London Euston
Bedford
Wolverton
Fenny Stratford
Bow Brickhill
Woburn Sands
Aspley Guise
Ridgmont
Lidlington
Watford North
Garston
Bricket Wood
How Wood
Park Street
St Albans Abbey
Millbrook
Stewartby
Kempston Hardwick
Bedford St Johns
Bletchley
Leighton Buzzard
Cheddington
Tring
Berkhamsted
Hemel Hempstead
Apsley
Kings Langley
Bushey
Harrow & Wealdstone
Wembley Central
wick
Coventry
Leamington
Spa
Northampton
Long Buckby
Coventry
Arena
@samnewman@devoxxpl
to
Banbury
Oxford
Reading
High Wycombe
London Marylebone
to
Luton
St Albans
London St Pancras
Rugby
Milton Keynes
Central
Watford Junction
London Euston
Bedford
Wolverton
Fenny Stratford
Bow Brickhill
Woburn Sands
Aspley Guise
Ridgmont
Lidlington
Watford North
Garston
Bricket Wood
How Wood
Park Street
St Albans Abbey
Millbrook
Stewartby
Kempston Hardwick
Bedford St Johns
Bletchley
Leighton Buzzard
Cheddington
Tring
Berkhamsted
Hemel Hempstead
Apsley
Kings Langley
Bushey
Harrow & Wealdstone
Wembley Central
wick
Coventry
Leamington
Spa
Northampton
Long Buckby
Coventry
Arena
@samnewman@devoxxpl
to
Banbury
Oxford
Reading
High Wycombe
London Marylebone
to
Luton
St Albans
London St Pancras
Rugby
Milton Keynes
Central
Watford Junction
London Euston
Bedford
Wolverton
Fenny Stratford
Bow Brickhill
Woburn Sands
Aspley Guise
Ridgmont
Lidlington
Watford North
Garston
Bricket Wood
How Wood
Park Street
St Albans Abbey
Millbrook
Stewartby
Kempston Hardwick
Bedford St Johns
Bletchley
Leighton Buzzard
Cheddington
Tring
Berkhamsted
Hemel Hempstead
Apsley
Kings Langley
Bushey
Harrow & Wealdstone
Wembley Central
wick
Coventry
Leamington
Spa
Northampton
Long Buckby
Coventry
Arena
@samnewman@devoxxpl
R3
@samnewman@devoxxpl
R3
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl https://www.flickr.com/photos/jubilo/6965626176/
@samnewman@devoxxpl
R3-R4 Merge Bug Fix Team
@samnewman@devoxxpl
R3-R4 Merge Bug Fix Team
yay
@samnewman@devoxxpl
Continuous Integration
@samnewman@devoxxpl
@samnewman@devoxxpl
@samnewman@devoxxpl
CI Tool
@samnewman@devoxxpl
CI Tool
!
@samnewman@devoxxpl
CI Tool
! "
@samnewman@devoxxpl
@samnewman@devoxxpl
@samnewman@devoxxpl
!
@samnewman@devoxxpl
! !
@samnewman@devoxxpl
! !
1. Validate the integration
@samnewman@devoxxpl
! ! "
1. Validate the integration
@samnewman@devoxxpl
! ! "
2. When the build breaks, fix it!
1. Validate the integration
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
1. Validate the integration
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
1. Validate the integration
…
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
1. Validate the integration
…
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
1. Validate the integration
…
"
"
"
"
@samnewman@devoxxpl
! ! " !
2. When the build breaks, fix it!
3. Integrate daily
1. Validate the integration
…
"
"
"
"
@samnewman@devoxxpl
R3
R4
@samnewman@devoxxpl
R3
R4
! ! !
@samnewman@devoxxpl
R3
R4
! ! !
! ! !
@samnewman@devoxxpl
R3
R4
! ! !
! ! !
@samnewman@devoxxpl
Integrate Once A Day
@samnewman@devoxxpl
How can you deal with
half-finished work?
@samnewman@devoxxpl
Option 1:
@samnewman@devoxxpl
Option 1:
Wait to check in
@samnewman@devoxxpl
Option 2:
@samnewman@devoxxpl
Option 2:
Make a branch!
@samnewman@devoxxpl
Trunk
@samnewman@devoxxpl
Trunk
@samnewman@devoxxpl
Trunk
F1
@samnewman@devoxxpl
Trunk
F1
@samnewman@devoxxpl
Trunk
F1
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
Trunk
F1
F2
@samnewman@devoxxpl
we are deferring integration!
Trunk
F1
F2
@samnewman@devoxxpl
Pain of merge = fn (
size_of_merge,
duration_since_last_merge)
@samnewman@devoxxpl
Big merges = commit race!
@samnewman@devoxxpl
Merging refactoring is
*really* hard
@samnewman@devoxxpl
Option 3:
@samnewman@devoxxpl
Option 3:
Check in anyway
@samnewman@devoxxpl
Option 3:
Check in anyway
err…wat?
@samnewman@devoxxpl
Trunk-based development
@samnewman@devoxxpl
Everyone integrates into trunk
@samnewman@devoxxpl
Trunk
@samnewman@devoxxpl
Trunk
@samnewman@devoxxpl
integrate often…
Trunk
@samnewman@devoxxpl
integrate often…
Trunk
…fast feedback…
@samnewman@devoxxpl
integrate often…
Trunk
…fast feedback…
…break up merge pain
@samnewman@devoxxpl
integrate often…
Trunk
…fast feedback…
…break up merge pain
err…but what about half-finished features?
@samnewman@devoxxpl
Feature Toggles
@samnewman@devoxxpl
Feature Toggles
Hide the partially
implemented feature in
the running system
@samnewman@devoxxpl
…
super_widget = off
…
@samnewman@devoxxpl
…
super_widget = off
…
…
super_widget = on
…
@samnewman@devoxxpl
…
super_widget = off
…
…
super_widget = on
…
super widget!
@samnewman@devoxxpl
…
super_widget = off
…
…
super_widget = on
…
$. run -Dsuper_widget=on
super widget!
@samnewman@devoxxpl
…
super_widget = off
…
…
super_widget = on
…
$. run -Dsuper_widget=on
super widget!
@samnewman@devoxxpl
But what about changes to existing
functionality?
@samnewman@devoxxpl
@samnewman@devoxxpl
iBatis
Persistence
@samnewman@devoxxpl
iBatis
Persistence
@samnewman@devoxxpl
iBatis
Persistence
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
iBatis
Persistence
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
Abstraction
Hibernate
shipping every two
weeks…
@samnewman@devoxxpl
Branch by abstraction
@samnewman@devoxxpl
Important Rules:
@samnewman@devoxxpl
Important Rules:
Use a flag in as few places as possible
@samnewman@devoxxpl
Important Rules:
Use a flag in as few places as possible
Remove them once you’re done
@samnewman@devoxxpl
Side Benefits:
@samnewman@devoxxpl
Side Benefits:
Can be used for A/B testing
@samnewman@devoxxpl
Side Benefits:
Can be used for A/B testing
And with some work, canary releasing
@samnewman@devoxxpl
split.io, launch darkly
@samnewman@devoxxpl
@samnewman@devoxxpl
@samnewman@devoxxpl
https://trunkbaseddevelopment.com
@samnewman@devoxxpl
Continuous Delivery Book…
@samnewman@devoxxpl
Published in 2011
@samnewman@devoxxpl
Treat every check-in as
a release candidate
@samnewman@devoxxpl
https://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change-4608108
@samnewman@devoxxpl
Ops Meta-Metrics - John Allspaw
@samnewman@devoxxpl
Ops Meta-Metrics - John Allspaw
@samnewman@devoxxpl
Keep batch size small
@samnewman@devoxxpl
Integrate often
Keep batch size small
@samnewman@devoxxpl
Integrate often
Keep batch size small
Ship often
@samnewman@devoxxpl
And there there was Git
@samnewman@devoxxpl
@samnewman@devoxxpl
Goal
@samnewman@devoxxpl
Goal
Merge a patch in less than 3 seconds
@samnewman@devoxxpl
Branches much more lightweight
@samnewman@devoxxpl
Merging of text is better but…
@samnewman@devoxxpl
https://www.semanticmerge.com
@samnewman@devoxxpl
And then there was GitHub…
@samnewman@devoxxpl
2008
@samnewman@devoxxpl
https://github.com/blog/3-oh-yeah-there-s-pull-requests-now
@samnewman@devoxxpl
https://vimeo.com/2979844
@samnewman@devoxxpl
https://vimeo.com/2979844
@samnewman@devoxxpl
http://readwrite.com/2011/06/02/github-has-passed-sourceforge/
@samnewman@devoxxpl
But PRs use branching!
@samnewman@devoxxpl
Open Source
@samnewman@devoxxpl
Open Source
“Untrusted” Committers
@samnewman@devoxxpl
And then there was gitflow…
@samnewman@devoxxpl
@samnewman@devoxxpl https://www.flickr.com/photos/hackny/8675049276/
@samnewman@devoxxpl
Ops Meta-Metrics - John Allspaw
@samnewman@devoxxpl
But if I merge in frequently,
why do I need GitFlow?
@samnewman@devoxxpl
@samnewman@devoxxpl
“Trunk-based development is likely the most controversial
practice discussed in this book
@samnewman@devoxxpl
“Trunk-based development is likely the most controversial
practice discussed in this book
- Gene Kim, Jez Humble, Patrick Debois & John Willis
[…]
However, the data from Puppet Labs’ 2015 State of DevOps
Report is clear: trunk-based development predicts higher
throughput and better stability, and even higher job
satisfaction and lower rates of burnout.“
@samnewman@devoxxpl
@samnewman@devoxxpl
“We found that having branches or forks with very short
lifetimes (less than a day) before being merged into trunk, and
less than three active branches in total, are important aspects
of continuous delivery, and all contribute to higher
performance. So does merging code into trunk or master on a
daily basis. “
- State Of Devops Report, 2016
@samnewman@devoxxpl
So are branches evil?
@samnewman@devoxxpl
Keep batch size small
@samnewman@devoxxpl
Integrate often
Keep batch size small
@samnewman@devoxxpl
Integrate often
Keep batch size small
Ship often
@samnewman@devoxxpl
http://samnewman.io
@samnewman
Thank You!
Also thanks to Don Clark for the people icons
https://commons.wikimedia.org/wiki/File:Gender_neutral.svg CC BY-SA 4.0

Mais conteúdo relacionado

Mais procurados (8)

Apache Traffic Server
Apache Traffic ServerApache Traffic Server
Apache Traffic Server
 
IT Change Management Using JIRA
IT Change Management Using JIRAIT Change Management Using JIRA
IT Change Management Using JIRA
 
Dimitra Ntzioni
Dimitra NtzioniDimitra Ntzioni
Dimitra Ntzioni
 
Cod2012 jp D-1 SC2012ConfigMgr
Cod2012 jp D-1 SC2012ConfigMgrCod2012 jp D-1 SC2012ConfigMgr
Cod2012 jp D-1 SC2012ConfigMgr
 
Power Platform Governance
Power Platform GovernancePower Platform Governance
Power Platform Governance
 
Django
DjangoDjango
Django
 
Práctica web de la sesión 8.pptx
Práctica web de la sesión 8.pptxPráctica web de la sesión 8.pptx
Práctica web de la sesión 8.pptx
 
SharePoint Online (365) vs SharePoint On-Premises
SharePoint Online (365) vs SharePoint On-PremisesSharePoint Online (365) vs SharePoint On-Premises
SharePoint Online (365) vs SharePoint On-Premises
 

Semelhante a Feature Branches And Toggles In A Post-GitHub World

Creating A Great Book Trailer On A Budget
Creating A Great Book Trailer On A BudgetCreating A Great Book Trailer On A Budget
Creating A Great Book Trailer On A Budget
Will Kesling
 
Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01
Dale Sternberg
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
JAXLondon2014
 

Semelhante a Feature Branches And Toggles In A Post-GitHub World (20)

Creating A Great Book Trailer On A Budget
Creating A Great Book Trailer On A BudgetCreating A Great Book Trailer On A Budget
Creating A Great Book Trailer On A Budget
 
The Inbounder London 2. May - Kelvin Newman
The Inbounder London 2. May - Kelvin NewmanThe Inbounder London 2. May - Kelvin Newman
The Inbounder London 2. May - Kelvin Newman
 
Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...
Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...
Why Podcasting Is the Missing Piece In Your Inbound Strategy & How to Excel i...
 
Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016Understanding & Facilitating Semantic Search - #SearchFest 2016
Understanding & Facilitating Semantic Search - #SearchFest 2016
 
Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01Flowofproductqualityleanux15 150419180701-conversion-gate01
Flowofproductqualityleanux15 150419180701-conversion-gate01
 
Flow of Product Quality
Flow of Product QualityFlow of Product Quality
Flow of Product Quality
 
Intro to Graph Databases
Intro to Graph DatabasesIntro to Graph Databases
Intro to Graph Databases
 
Design Basics for Non-Designers
Design Basics for Non-DesignersDesign Basics for Non-Designers
Design Basics for Non-Designers
 
New business models - social change for @SPARKdotme
New business models - social change for @SPARKdotme New business models - social change for @SPARKdotme
New business models - social change for @SPARKdotme
 
Practical microservices - NDC 2014
Practical microservices  - NDC 2014Practical microservices  - NDC 2014
Practical microservices - NDC 2014
 
[Unwebinar] How to Write Killer Landing Page Copy
[Unwebinar] How to Write Killer Landing Page Copy[Unwebinar] How to Write Killer Landing Page Copy
[Unwebinar] How to Write Killer Landing Page Copy
 
The Facts & Fairytales of Conversion-Driven Content
The Facts & Fairytales of Conversion-Driven ContentThe Facts & Fairytales of Conversion-Driven Content
The Facts & Fairytales of Conversion-Driven Content
 
Learning How to Build Event Streaming Applications with Pac-Man
Learning How to Build Event Streaming Applications with Pac-ManLearning How to Build Event Streaming Applications with Pac-Man
Learning How to Build Event Streaming Applications with Pac-Man
 
CQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & AxonCQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & Axon
 
Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...
Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...
Lessons from Link Building in 2009 that Apply Today by @staceycav at #brighto...
 
Interview like a journalist heweb17
Interview like a journalist   heweb17Interview like a journalist   heweb17
Interview like a journalist heweb17
 
Deploying & operating microservices
Deploying & operating microservicesDeploying & operating microservices
Deploying & operating microservices
 
Chat Ops - social and technical
Chat Ops - social and technicalChat Ops - social and technical
Chat Ops - social and technical
 
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryan...
 
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
JAX London 2014 "Moving to DevOps Mode: easy, hard or just plain terrifying?"
 

Mais de Sam Newman

Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
Sam Newman
 
Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014
Sam Newman
 

Mais de Sam Newman (20)

Hiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservicesHiding The Lead: Coupling, cohesion and microservices
Hiding The Lead: Coupling, cohesion and microservices
 
It's a trap!
It's a trap!It's a trap!
It's a trap!
 
Rip It Up - The Microservice Organisation
Rip It Up  - The Microservice OrganisationRip It Up  - The Microservice Organisation
Rip It Up - The Microservice Organisation
 
What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?
 
Confusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionConfusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min Version
 
AppSec and Microservices
AppSec and MicroservicesAppSec and Microservices
AppSec and Microservices
 
Confusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessConfusion In The Land Of The Serverless
Confusion In The Land Of The Serverless
 
AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016
 
AppSec And Microservices
AppSec And MicroservicesAppSec And Microservices
AppSec And Microservices
 
Deploying and Scaling Microservices
Deploying and Scaling MicroservicesDeploying and Scaling Microservices
Deploying and Scaling Microservices
 
BETA - Securing microservices
BETA - Securing microservicesBETA - Securing microservices
BETA - Securing microservices
 
Principles of microservices ndc oslo
Principles of microservices   ndc osloPrinciples of microservices   ndc oslo
Principles of microservices ndc oslo
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneyQCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days Ukraine
 
Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014
 
Practical microservices - javazone 2014
Practical microservices -  javazone 2014Practical microservices -  javazone 2014
Practical microservices - javazone 2014
 
Testing & deploying Microservices GeeCon 2014
Testing & deploying Microservices   GeeCon 2014Testing & deploying Microservices   GeeCon 2014
Testing & deploying Microservices GeeCon 2014
 
Practical microservices - YOW 2013
Practical microservices  - YOW 2013Practical microservices  - YOW 2013
Practical microservices - YOW 2013
 

Último

%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Último (20)

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 

Feature Branches And Toggles In A Post-GitHub World