SlideShare a Scribd company logo
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
Software is both
archeology and time-
travel
Copyright 2024 Kudzera,
LLC
Your job is to deliver
value in a timely
manner
Copyright 2024 Kudzera,
LLC
How do you enable the
future to be just as
efficient?
Copyright 2024 Kudzera,
LLC
Extensibility
Copyright 2024 Kudzera,
LLC
0) Think about the humans
Copyright 2024 Kudzera,
LLC
Extensibility Themes
Copyright 2024 Kudzera,
LLC
1) Reduce Commit Complexity
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
2) Be Mindful of OCP
Copyright 2024 Kudzera,
LLC
Open-Closed Principle
Copyright 2024 Kudzera,
LLC
Code should be open to
extension and closed
for modification
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
When To Split
● Are easy things hard to do?
● Do you encounter pushback against similar features?
● Do you have consistently high estimates?
● Do commits contain large changesets?
● Are you mixing policy changes with mechanisms changes
Copyright 2024 Kudzera,
LLC
Policies vs. Mechanisms
Copyright 2024 Kudzera,
LLC
3) Separate Policies and
Mechanisms
Copyright 2024 Kudzera,
LLC
From backoff documentation
Copyright 2024 Kudzera,
LLC
From Flask documentation
Copyright 2024 Kudzera,
LLC
4) Data-Driven Designs
Copyright 2024 Kudzera,
LLC
Data options
● Can you put your data in a collection?
● Configuration Files?
● Persistence Layers (i.e. databases, bucket storage, etc.)?
Copyright 2024 Kudzera,
LLC
5) Develop Libraries First
Copyright 2024 Kudzera,
LLC
Good Library Design
● README-driven
● Tested
● Easily Consumable
● Clearly-stated opinions
● Releasable (w/ Documentation)
● Extensible
● Composable
Copyright 2024 Kudzera,
LLC
Composability
Copyright 2024 Kudzera,
LLC
From Flask documentation
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
6) Create Building Blocks
Copyright 2024 Kudzera,
LLC
Architectural Extensibility
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
Dependencies
Copyright 2024 Kudzera,
LLC
Physical Dependencies
Copyright 2024 Kudzera,
LLC
from typing import Callable
@dataclass
class Metadata:
does_match: Callable[[User], bool]
if __name__ == "__main__":
run_self_test()
Copyright 2024 Kudzera,
LLC
pip install requests
Copyright 2024 Kudzera,
LLC
Physical Dependencies
● Hard-coded into source code
● Easy to follow from A to B
● Easily understandable
● Easy to find, hard to change
● Hard to substitute or mock out
● Understandable by static analysis tools
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
pipdeptree
Copyright 2024 Kudzera,
LLC
pydeps
Copyright 2024 Kudzera,
LLC
pyan3
Copyright 2024 Kudzera,
LLC
What Happens If You Need
Something To Change?
Copyright 2024 Kudzera,
LLC
A
B
C
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
A
B
C
Copyright 2024 Kudzera,
LLC
A
B
D
Copyright 2024 Kudzera,
LLC
A
B
Whatever
Copyright 2024 Kudzera,
LLC
Logical Dependencies
Copyright 2024 Kudzera,
LLC
requests.post("table-management/pizza-made", {
"id": order,
"pizza": pizza.to_json()
})
# meal is an abstract type
meal: Meal = meal_factory.create("pizza")
Copyright 2024 Kudzera,
LLC
Logical Dependencies
● Typically determined at run-time
● Readability suffers
● Debuggability suffers
● Hard to find, easy to change
● Easy to substitute or mock out
● Not understandable by static analysis tools
● Crucial for Abstraction
Copyright 2024 Kudzera,
LLC
7) Trade-off Dependencies
Judiciously
Copyright 2024 Kudzera,
LLC
Event-Driven Architectures
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
def complete_order(order: Order):
package_order(order)
notify_customer_that_order_is_done(order)
notify_restaurant_that_order_is_done(order)
Copyright 2024 Kudzera,
LLC
Architectural Extensibility
Copyright 2024 Kudzera,
LLC
Producer
Transport
Consumer
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
Producer
Transport
Consumer
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
pypubsub
Copyright 2024 Kudzera,
LLC
from pubsub import pub
def notify_customer_that_meal_is_done(order: Order):
# ... snip ...
pub.subscribe(notify_customer_that_meal_is_done, "meal-done")
Copyright 2024 Kudzera,
LLC
from pubsub import pub
def complete_order(order: Order):
package_order(order)
pub.publish("meal-done", order)
Copyright 2024 Kudzera,
LLC
8) Use Event-Driven
Architectures to Decouple
Producers and Consumers
Copyright 2024 Kudzera,
LLC
Pluggable Architectures
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
Plug-in examples
● pytest
● poetry
● hypothesis
● pylint
Copyright 2024 Kudzera,
LLC
Plugging Into Algorithms
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
Copyright 2024 Kudzera,
LLC
@dataclass
class PizzaCreationFunctions:
prepare_ingredients: Callable
add_pre_bake_toppings: Callable
add_post_bake_toppings: Callable
Copyright 2024 Kudzera,
LLC
def create_pizza(
pizza_creation_functions: PizzaCreationFunctions
):
pizza_creation_functions.prepare_ingredients()
roll_out_pizza_base()
pizza_creation_functions.add_pre_bake_toppings()
bake_pizza()
pizza_creation_functions.add_post_bake_toppings()
Copyright 2024 Kudzera,
LLC
pizza_creation_functions = PizzaCreationFunctions(
prepare_ingredients=mix_zaatar,
add_pre_bake_toppings=add_meat_and_halloumi,
add_post_bake_toppings=drizzle_olive_oil
)
create_pizza(pizza_creation_functions)
Copyright 2024 Kudzera,
LLC
pizza_creation_functions = PizzaCreationFunctions(
prepare_ingredients=cook_bulgogi,
add_pre_bake_toppings=add_bulgogi_toppings,
add_post_bake_toppings=garnish_with_scallions_and_sesame
)
create_pizza(pizza_creation_functions)
Copyright 2024 Kudzera,
LLC
Plugging Into Packages
Copyright 2024 Kudzera,
LLC
Stevedore
Copyright 2024 Kudzera,
LLC
from abc import abstractmethod
from typing import runtime_checkable, Protocol
@runtime_checkable
class UltimateKitchenAssistantModule(Protocol):
ingredients: list[Ingredient]
@abstractmethod
def get_recipes() -> list[Recipe]:
raise NotImplementedError
@abstractmethod
def prepare_dish(inventory: dict[Ingredient, Amount],
recipe: Recipe) -> Dish:
raise NotImplementedError
Copyright 2024 Kudzera,
LLC
class PastaModule(UltimateKitchenAssistantModule):
def __init__(self):
self.ingredients = ["Linguine",
# ... snip ...]
def get_recipes(self) -> list[Recipe]:
# ... snip returning all possible recipes ...
def prepare_dish(self, inventory: dict[Ingredient, Amount],
recipe: Recipe) -> Dish:
# interact with Ultimate Kitchen Assistant
Copyright 2024 Kudzera,
LLC
from stevedore import extension
def get_all_recipes() -> list[Recipe]:
mgr = extension.ExtensionManager(
namespace='ultimate_kitchen_assistant.recipe_maker',
invoke_on_load=True,
)
def get_recipes(extension):
return extension.obj.get_recipes()
return list(itertools.chain(mgr.map(get_recipes)))
Copyright 2024 Kudzera,
LLC
from setuptools import setup
setup(
name='ultimate_kitchen_assistant',
version='1.0',
#.... snip ....
entry_points={
'ultimate_kitchen_assistant.recipe_maker':
['pasta_maker =
ultimate_kitchen_assistant.pasta_maker:PastaModule'],
},
)
Copyright 2024 Kudzera,
LLC
9) Use Pluggable Python for
Extension Points
Copyright 2024 Kudzera,
LLC
0) Think about the humans
1) Reduce Commit Complexity
2) Be Mindful of OCP
3) Separate Policies and Mechanisms
4) Consider Data-Driven Design
5) Develop Libraries First
6) Create Building Blocks
7) Trade-off Dependencies Judiciously
8) Use Event-Driven Architectures to Decouple Producers/Consumers
9) Use Pluggable Python for Extension Points
Copyright 2024 Kudzera,
LLC
10) Don't Overextend Yourself
Copyright 2024 Kudzera,
LLC
Who Am I?
Principal Software Engineer
Cloud Software Group
Owner of Kudzera, LLC
Author of Robust Python
Organizer of HSV.py
Extensible Python:
Robustness Through
Addition
Patrick Viafore

More Related Content

Similar to Extensible Python: Robustness through Addition - PyCon 2024

Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
DOCOMO Innovations, Inc.
 
TDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceTDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and Salesforce
Doug Ayers
 
The LCG Digital Transformation Maturity Model
The LCG Digital Transformation Maturity ModelThe LCG Digital Transformation Maturity Model
The LCG Digital Transformation Maturity Model
Lima Consulting Group
 
Enabling Agility Through DevOps
Enabling Agility Through DevOpsEnabling Agility Through DevOps
Enabling Agility Through DevOps
Leland Newsom CSP-SM, SPC5, SDP
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
DOCOMO Innovations, Inc.
 
Amazon CI-CD Practices for Software Development Teams
Amazon CI-CD Practices for Software Development Teams Amazon CI-CD Practices for Software Development Teams
Amazon CI-CD Practices for Software Development Teams
Amazon Web Services
 
Leadership Session: The Future of Enterprise IT (ENT220-L) - AWS re:Invent 2018
Leadership Session:  The Future of Enterprise IT (ENT220-L) - AWS re:Invent 2018Leadership Session:  The Future of Enterprise IT (ENT220-L) - AWS re:Invent 2018
Leadership Session: The Future of Enterprise IT (ENT220-L) - AWS re:Invent 2018
Amazon Web Services
 
Introduction to Heroku
Introduction to HerokuIntroduction to Heroku
Introduction to Heroku
Salesforce Developers
 
Webinar: Mass Additions – R12 Asset Management
Webinar: Mass Additions – R12 Asset ManagementWebinar: Mass Additions – R12 Asset Management
Webinar: Mass Additions – R12 Asset Management
iWare Logic Technologies Pvt. Ltd.
 
A Definition of Done for DevSecOps
A Definition of Done for DevSecOpsA Definition of Done for DevSecOps
A Definition of Done for DevSecOps
Gene Gotimer
 
Automate Behavior-driven Development | DrupalCon Portland 2022
Automate Behavior-driven Development | DrupalCon Portland 2022Automate Behavior-driven Development | DrupalCon Portland 2022
Automate Behavior-driven Development | DrupalCon Portland 2022
DOCOMO Innovations, Inc.
 
Migrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring CloudMigrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring Cloud
VMware Tanzu
 
Introduction to Data.com APIs
Introduction to Data.com APIsIntroduction to Data.com APIs
Introduction to Data.com APIs
Salesforce Developers
 
OpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for BeginnersOpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for Beginners
Salesforce Developers
 
Product Backlog Refinement with Structured Conversations
Product Backlog Refinement with Structured ConversationsProduct Backlog Refinement with Structured Conversations
Product Backlog Refinement with Structured Conversations
EBG Consulting, Inc.
 
Gen AI: tech du-jour or the next big thing?
Gen AI: tech du-jour or the next big thing?Gen AI: tech du-jour or the next big thing?
Gen AI: tech du-jour or the next big thing?
massimoreferre
 
Tipping Point for CRE Tech - Brandon Weber, VTS
Tipping Point for CRE Tech - Brandon Weber, VTSTipping Point for CRE Tech - Brandon Weber, VTS
Tipping Point for CRE Tech - Brandon Weber, VTS
Ryan Slack
 
Troubleshooting Ecommerce Performance
 Troubleshooting Ecommerce Performance Troubleshooting Ecommerce Performance
Troubleshooting Ecommerce Performance
Diego Cardozo
 
900 keynote abbott
900 keynote abbott900 keynote abbott
900 keynote abbott
Rising Media, Inc.
 

Similar to Extensible Python: Robustness through Addition - PyCon 2024 (20)

Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
 
TDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceTDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and Salesforce
 
The LCG Digital Transformation Maturity Model
The LCG Digital Transformation Maturity ModelThe LCG Digital Transformation Maturity Model
The LCG Digital Transformation Maturity Model
 
Enabling Agility Through DevOps
Enabling Agility Through DevOpsEnabling Agility Through DevOps
Enabling Agility Through DevOps
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
Automate, Integrate, Innovate - AI-powered GitLab CI for Drupal module develo...
 
Amazon CI-CD Practices for Software Development Teams
Amazon CI-CD Practices for Software Development Teams Amazon CI-CD Practices for Software Development Teams
Amazon CI-CD Practices for Software Development Teams
 
Leadership Session: The Future of Enterprise IT (ENT220-L) - AWS re:Invent 2018
Leadership Session:  The Future of Enterprise IT (ENT220-L) - AWS re:Invent 2018Leadership Session:  The Future of Enterprise IT (ENT220-L) - AWS re:Invent 2018
Leadership Session: The Future of Enterprise IT (ENT220-L) - AWS re:Invent 2018
 
Introduction to Heroku
Introduction to HerokuIntroduction to Heroku
Introduction to Heroku
 
Webinar: Mass Additions – R12 Asset Management
Webinar: Mass Additions – R12 Asset ManagementWebinar: Mass Additions – R12 Asset Management
Webinar: Mass Additions – R12 Asset Management
 
A Definition of Done for DevSecOps
A Definition of Done for DevSecOpsA Definition of Done for DevSecOps
A Definition of Done for DevSecOps
 
Automate Behavior-driven Development | DrupalCon Portland 2022
Automate Behavior-driven Development | DrupalCon Portland 2022Automate Behavior-driven Development | DrupalCon Portland 2022
Automate Behavior-driven Development | DrupalCon Portland 2022
 
Migrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring CloudMigrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring Cloud
 
Introduction to Data.com APIs
Introduction to Data.com APIsIntroduction to Data.com APIs
Introduction to Data.com APIs
 
OpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for BeginnersOpenID Connect and Single Sign-On for Beginners
OpenID Connect and Single Sign-On for Beginners
 
Product Backlog Refinement with Structured Conversations
Product Backlog Refinement with Structured ConversationsProduct Backlog Refinement with Structured Conversations
Product Backlog Refinement with Structured Conversations
 
Gen AI: tech du-jour or the next big thing?
Gen AI: tech du-jour or the next big thing?Gen AI: tech du-jour or the next big thing?
Gen AI: tech du-jour or the next big thing?
 
Tipping Point for CRE Tech - Brandon Weber, VTS
Tipping Point for CRE Tech - Brandon Weber, VTSTipping Point for CRE Tech - Brandon Weber, VTS
Tipping Point for CRE Tech - Brandon Weber, VTS
 
Troubleshooting Ecommerce Performance
 Troubleshooting Ecommerce Performance Troubleshooting Ecommerce Performance
Troubleshooting Ecommerce Performance
 
900 keynote abbott
900 keynote abbott900 keynote abbott
900 keynote abbott
 

More from Patrick Viafore

User-Defined Types.pdf
User-Defined Types.pdfUser-Defined Types.pdf
User-Defined Types.pdf
Patrick Viafore
 
The Most Misunderstood Line In Zen Of Python.pdf
The Most Misunderstood Line In Zen Of Python.pdfThe Most Misunderstood Line In Zen Of Python.pdf
The Most Misunderstood Line In Zen Of Python.pdf
Patrick Viafore
 
Robust Python.pptx
Robust Python.pptxRobust Python.pptx
Robust Python.pptx
Patrick Viafore
 
Tip Top Typing - A Look at Python Typing
Tip Top Typing - A Look at Python TypingTip Top Typing - A Look at Python Typing
Tip Top Typing - A Look at Python Typing
Patrick Viafore
 
RunC, Docker, RunC
RunC, Docker, RunCRunC, Docker, RunC
RunC, Docker, RunC
Patrick Viafore
 
DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
 DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th... DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
Patrick Viafore
 
Controlling Raspberry Pis With Your Phone Using Python
Controlling Raspberry Pis With Your Phone Using PythonControlling Raspberry Pis With Your Phone Using Python
Controlling Raspberry Pis With Your Phone Using Python
Patrick Viafore
 
C++17 not your father’s c++
C++17  not your father’s c++C++17  not your father’s c++
C++17 not your father’s c++
Patrick Viafore
 
Building a development community within your workplace
Building a development community within your workplaceBuilding a development community within your workplace
Building a development community within your workplace
Patrick Viafore
 
Lambda Expressions in C++
Lambda Expressions in C++Lambda Expressions in C++
Lambda Expressions in C++
Patrick Viafore
 
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web ApplicationsBDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
Patrick Viafore
 
Hsv.py Lightning Talk - Bottle
Hsv.py Lightning Talk - BottleHsv.py Lightning Talk - Bottle
Hsv.py Lightning Talk - Bottle
Patrick Viafore
 
Controlling the browser through python and selenium
Controlling the browser through python and seleniumControlling the browser through python and selenium
Controlling the browser through python and selenium
Patrick Viafore
 

More from Patrick Viafore (13)

User-Defined Types.pdf
User-Defined Types.pdfUser-Defined Types.pdf
User-Defined Types.pdf
 
The Most Misunderstood Line In Zen Of Python.pdf
The Most Misunderstood Line In Zen Of Python.pdfThe Most Misunderstood Line In Zen Of Python.pdf
The Most Misunderstood Line In Zen Of Python.pdf
 
Robust Python.pptx
Robust Python.pptxRobust Python.pptx
Robust Python.pptx
 
Tip Top Typing - A Look at Python Typing
Tip Top Typing - A Look at Python TypingTip Top Typing - A Look at Python Typing
Tip Top Typing - A Look at Python Typing
 
RunC, Docker, RunC
RunC, Docker, RunCRunC, Docker, RunC
RunC, Docker, RunC
 
DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
 DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th... DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
DevSpace 2018 - Practical Computer Science: What You Need To Know Without Th...
 
Controlling Raspberry Pis With Your Phone Using Python
Controlling Raspberry Pis With Your Phone Using PythonControlling Raspberry Pis With Your Phone Using Python
Controlling Raspberry Pis With Your Phone Using Python
 
C++17 not your father’s c++
C++17  not your father’s c++C++17  not your father’s c++
C++17 not your father’s c++
 
Building a development community within your workplace
Building a development community within your workplaceBuilding a development community within your workplace
Building a development community within your workplace
 
Lambda Expressions in C++
Lambda Expressions in C++Lambda Expressions in C++
Lambda Expressions in C++
 
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web ApplicationsBDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
BDD to the Bone: Using Behave and Selenium to Test-Drive Web Applications
 
Hsv.py Lightning Talk - Bottle
Hsv.py Lightning Talk - BottleHsv.py Lightning Talk - Bottle
Hsv.py Lightning Talk - Bottle
 
Controlling the browser through python and selenium
Controlling the browser through python and seleniumControlling the browser through python and selenium
Controlling the browser through python and selenium
 

Recently uploaded

Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 

Recently uploaded (20)

Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 

Extensible Python: Robustness through Addition - PyCon 2024

Editor's Notes

  1. https://www.pexels.com/photo/macro-photography-of-a-pavement-crack-2847615/
  2. https://www.pexels.com/photo/boys-playing-with-toys-3939173/
  3. https://www.pexels.com/photo/barriers-on-asphalt-road-9826960/