SlideShare a Scribd company logo
1 of 57
Debugging
Python apps
inside k8s
andrii@hachyderm.io
# cat ./misc/about-me.yaml
---
name: Andrii Soldatenko ⎈
work: Dynatrace
about:
- pythonista: and OSS contributor
- fan: of debuggers
- speaker: At many conferences
links:
- https://asoldatenko.org/about-me/
andrii@hachyderm.io
HowcanI debugPython
program?
andrii@hachyderm.io
viaprints> ?
logs
import logging
…
# 'application' code
logger.debug('debug message')
logger.info('info message')
logger.warning('warn message')
logger.error('error message')
logger.critical('critical message')
logs
2024-04-18 13:04:04,653 - simple_example -
2024-04-18 13:04:04,653 - simple_example - DEBUG
INFO -
- debug message
info message
2024-04-18 13:04:04,653 - simple_example -
2024-04-18 13:04:04,653 - simple_example - WARNING - warn message
ERROR - error message
2024-04-18 13:04:04,653 - simple_example - CRITICAL - critical message
viaREPL?
andrii@hachyderm.io
(main, Mar 14 2024, 15:09:12)…
"copyright", "credits" or "license" for more
Python 3.12.2
Type "help",
information.
>>>
viaREPL?
andrii@hachyderm.io
(main, Mar 14 2024, 15:09:12)…
"copyright", "credits" or "license" for more
Python 3.12.2
Type "help",
information.
>>>
viaREPL?
andrii@hachyderm.io
$ python -i cycle_length.py
>>> cycle_length
<functools._lru_cache_wrapper
>>> pprint.pprint({l for l in
{'cycle_length', 'functools',
>>>
object at
locals()
'pprint',
0x104328bf0>
if not l.startswith(' ')})
'sys'}
usingduckdebugging?
Usingdebuggers!
DAP
Pythondebuggers
Debugging ondevenv
from enum import Enum
from fastapi import FastAPI
...
ModelName):
@app.get("/models/{model_name}")
async def get_model(model_name:
import pdb; pdb.set_trace()
if model_name is ModelName.alexnet:
return {"model_name": model_name,
if model_name.value == "lenet":
return {"model_name": model_name,
"message": "Deep Learning FTW!"}
return {"model_name": model_name, "message": "Have some
"message": "LeCNN all the images"}
residuals"}
from enum import Enum
from fastapi import FastAPI
...
import pdb; pdb.set_trace()
"Deep Learning FTW!"}
return {"model_name": model_name, "message": "Have some
"LeCNN all the images"}
residuals"}
Debugging ondevenv
@app.get("/models/{model_name}")
async def get_model(model_name: ModelName):
import pdb; pdb.set_trace()
if model_name is ModelName.alexnet:
return {"model_name": model_name, "message":
if model_name.value == "lenet":
return {"model_name": model_name, "message":
Debugging ondevenv
INFO: 127.0.0.1:51061 - "GET /openapi.json HTTP/1.1" 200 OK
> /Users/andrii/work/debugging-containerized-python-applications/main.py(27)get_model()
-> if model_name is ModelName.alexnet:
(Pdb) l
22
23
24 @app.get("/models/{model_name}")
25 async def get_model(model_name: ModelName):
26 import pdb; pdb.set_trace()
if model_name is ModelName.alexnet:
return {"model_name": model_name,
27 ->
28 "message": "Deep Learning FTW!"}
29
30 if model_name.value == "lenet":
31 return {"model_name": model_name, "message": "LeCNN all the images"}
32
(Pdb) n
You buildityouownit!
DOCKERFILE
# temp stage
FROM python:3.12.2-slim
WORKDIR /app
as builder
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
RUN apt-get update && 
apt-get install -y --no-install-recommends gcc
COPY requirements.txt .
RUN pip wheel --no-cache-dir --no-deps --wheel-dir /app/wheels -r requirements.txt
# final stage
FROM python:3.12.2-slim
WORKDIR /app
COPY --from=builder /app/wheels /wheels
COPY --from=builder /app/requirements.txt .
RUN pip install --no-cache /wheels/*
COPY main.py .
RUN ["uvicorn", "main:app", "--port", "8000", "--host", "0.0.0.0"]
Define aproblem
Debugging containerizedpython
apps
Remotedebugging
containerizedpythonapps
andrii@hachyderm.io
VSCODE
Step1:Addattachconfig
$ cat .vscode/launch.json
{
"name": "Python Debugger: Attach",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
}
}
Step2:AdjustDockerfile
FROM python:3.12-slim-bookworm
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN pip install --no-cache-dir
EXPOSE 5678 8000
-r requirements.txt
CMD ["python", "-m", "debugpy", "--wait-for-client", "--listen", "0.0.0.0:5678", "-m",
"uvicorn", "main:app", "--port", "8000", "--host", "0.0.0.0"]
andrii@hachyderm.io
Step3:Build
docker build -f Dockerfile-debugpy -t asoldatenko/py-sample-app-debug .
python:3.12-slim-bookworm
1/6: FROM
STEP 2/6: WORKDIR /usr/src/app
--> Using cache abcb4b08ab5f9df1a0e10bfa0dec85461cb6524d829ca61045310b8241c10022
--> abcb4b08ab5f
STEP 3/6: COPY . /usr/src/app
--> 8c9b8a5ce997
...
Successfully tagged localhost/asoldatenko/py-sample-app-debug:latest
875242325d5b07fbc223a33832df6bdf625dda750464d1be5fa088dd0807d0b0
andrii@hachyderm.io
Step4:Run
docker run -p 8000:8000 -p 5678:5678 asoldatenko/py-sample-app-debug
0.00s - Debugger warning: It seems that frozen modules are being used, which may
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off
0.00s - to python to disable frozen modules.
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to
disable this validation.
andrii@hachyderm.io
Step5:Connect
PDB CLONE Doesn’t work
with 3.12
def main():
import pdb_clone.pdb as pdb
pdb.set_trace_remote(host=b'127.0.0.1', port=7935, frame=None)
a = 2
b = 3
c = a + b
$ python samples/pdb_clone_example.py
PDB CLONE
$ telnet localhost
Trying ::1...
…
7935
PROCESS_PID:43030
PROCESS_NAME:samples/pdb_clone_example.py
> /users/andrii.soldatenko/work/debugging-containerized-python-applications/samples/
pdb_clone_example.py(4)main()
-> a = 2
(Pdb) n
> /users/andrii.soldatenko/work/debugging-containerized-python-applications/samples/
pdb_clone_example.py(5)main()
-> b = 3
PDB CLONE
-> b = 3
(Pdb) l
1 def main():
2 import pdb_clone.pdb as pdb
3 pdb.set_trace_remote(host=b'127.0.0.1',
a = 2
b = 3
c = a + b
port=7935, frame=None)
4
5 ->
6
7
8 main()
[EOF]
(Pdb)
PuDB
PuDB
FROM python:3.12-slim-bookworm
WORKDIR /usr/src/app
COPY requirements.txt /usr/src/app
COPY ./samples/pydb_example.py /usr/src/app
RUN pip install --no-cache-dir -r requirements.txt
RUN pip install pudb
EXPOSE 6899
CMD ["python", "pydb_example.py"]
PuDB
def main():
from pudb.remote import
set_trace(term_size=(80,
set_trace
24), host="0.0.0.0")
a = 1
b = 2
c = a + b
if name == " main ":
main()
PuDB
def main():
from pudb.remote import
set_trace(term_size=(80,
set_trace
24), host="0.0.0.0")
a = 1
b = 2
c = a + b
if name == " main ":
main()
PuDB
python samples/pydb_example.py
pudb:6899: Please start a telnet session
telnet 0.0.0.0 6899
pudb:6899: Waiting for client...
using a command like:
PuDB: telnetlocalhost6899
PuDB: telnetlocalhost6899
andrii@hachyderm.io
docker-entrypoint.sh
https://github.com/ashleymcnamara/gophers
#!/bin/sh
...
if [ "$REMOTE_DEBUG_PORT" ]; then
echo "Starting application with remote
debugFlags="--wait-for-client --listen
main:app --port 8000 --host 0.0.0.0"
debugging on port $REMOTE_DEBUG_PORT"
0.0.0.0:$REMOTE_DEBUG_PORT -m uvicorn
# Simply setting this environment variable is enough to force the debugger to
# pause on start --- we don't care about the value.
cmd="python -m debugpy $debugFlags"
fi
…
docker-entrypoint.sh
#!/bin/sh
...
if [ "$REMOTE_DEBUG_PORT" ]; then
debugging on port $REMOTE_DEBUG_PORT"
0.0.0.0:$REMOTE_DEBUG_PORT -m uvicorn
echo "Starting application with remote
debugFlags="--wait-for-client --listen
main:app --port 8000 --host 0.0.0.0"
# Simply setting this environment variable is enough to force the debugger to
# pause on start --- we don't care about the value.
cmd="python -m debugpy $debugFlags"
fi
…
FinalDockerfile
FROM python:3.12-slim-bookworm
WORKDIR /usr/src/app
COPY . /usr/src/app
COPY docker-entrypoint.sh /entrypoint
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5678 8000
ENTRYPOINT ["/entrypoint"]
kubectlapply-f ./config/sample-
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: sample-app
namespace: demo
spec:
containers:
- name: sample-debug
image: asoldatenko/py-sample-app-debug
env:
- name: REMOTE_DEBUG_PORT
value: "5678"
LIVE DEMO B
./start.sh
kubectl-ndemoport-forward
sample-app5678:5678
TIP: Debuggingwithan
ephemeraldebugcontainer
kubectl debug -it -n demo 
sample-app --target=sample-debug 
—image=busybox 
--share-processes -- sh
TIP: Debuggingusingacopyof
POD
kubectl debug -it -n demo 
sample-app --copy-to=sample-debug 
—image=asoldatenko/debug:0.0.2 
--share-processes -- sh
NAME
sample-app
sample-debug
3m43s
READY
1/1
2/2
STATUS
Running
Running
RESTARTS
2 (40m ago)
0
AGE
43m
Burngit commitSHA intodocker
image
FROM python:3.12-slim-bookworm
WORKDIR /usr/src/app
COPY . /usr/src/app
COPY docker-entrypoint.sh /entrypoint
ARG GIT_HASH
ENV GIT_HASH=${GIT_HASH:-dev}
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5678 8000
ENTRYPOINT ["/entrypoint"]
Burngit commitSHA intodocker
image
docker build -f Dockerfile-debugpy-sha --build-arg GIT_HASH=${GIT_HASH::7} -t
asoldatenko/py-sample-app-debug .
docker run --rm asoldatenko/py-sample-app-debug env | grep GIT_HASH
GIT_HASH=80907a7
K9s
K9s: plugin.yml
plugin:
a plugin to provide a `ctrl-l` shortcut to tail the logs while
# Defines
in pod view
#--- Create debug container for selected pod in current namespace
# See https://kubernetes.io/docs/tasks/debug/debug-application/debug-
running-pod/#ephemeral-container
debug:
shortCut: Ctrl-H
description: Add debug container
scopes:
- containers
command: bash
background: false
confirm: true
args:
- -c
- "kubectl debug -it -n=$NAMESPACE $POD --target=$NAME --
image=nicolaka/netshoot:v0.11 --share-processes -- bash"
Summary
The debugger doesn't fix your bugs, it just runs them in slow motion.
Don’t forget to add some details to your python apps inside images
Of course, you have to scale down traffic to 1 instance to avoid misses of
requests to your pod
Use debugger as much as possible
Automate you rotine with hotkeys/plugins
FutureReading:
https://github.com/andriisoldatenko/debug
https://github.com/andriisoldatenko/debugging-containerized-go-applications
https://github.com/andriisoldatenko/debugging-containerized-python-applications
Questions
Slides:
andrii@hachyderm.io

More Related Content

Similar to "Debugging python applications inside k8s environment", Andrii Soldatenko

Similar to "Debugging python applications inside k8s environment", Andrii Soldatenko (20)

Python Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CIPython Flask app deployed to OPenShift using Wercker CI
Python Flask app deployed to OPenShift using Wercker CI
 
Labs_BT_20221017.pptx
Labs_BT_20221017.pptxLabs_BT_20221017.pptx
Labs_BT_20221017.pptx
 
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ -  Automated Malware AnalysisIstSec'14 - İbrahim BALİÇ -  Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
 
Ato2019 weave-services-istio
Ato2019 weave-services-istioAto2019 weave-services-istio
Ato2019 weave-services-istio
 
Weave Your Microservices with Istio
Weave Your Microservices with IstioWeave Your Microservices with Istio
Weave Your Microservices with Istio
 
All Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioAll Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istio
 
Docker In Bank Unrated
Docker In Bank UnratedDocker In Bank Unrated
Docker In Bank Unrated
 
Scratch pcduino
Scratch pcduinoScratch pcduino
Scratch pcduino
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
 
How to send gzipped requests with boto3
How to send gzipped requests with boto3How to send gzipped requests with boto3
How to send gzipped requests with boto3
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
Symfony2 for Midgard Developers
Symfony2 for Midgard DevelopersSymfony2 for Midgard Developers
Symfony2 for Midgard Developers
 
Simple docker hosting in FIWARE Lab
Simple docker hosting in FIWARE LabSimple docker hosting in FIWARE Lab
Simple docker hosting in FIWARE Lab
 
PHP QA Tools
PHP QA ToolsPHP QA Tools
PHP QA Tools
 
Parrot Drones Hijacking
Parrot Drones HijackingParrot Drones Hijacking
Parrot Drones Hijacking
 
Serverless, The Middy Way - Workshop
Serverless, The Middy Way - WorkshopServerless, The Middy Way - Workshop
Serverless, The Middy Way - Workshop
 
First python project
First python projectFirst python project
First python project
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.js
 

More from Fwdays

More from Fwdays (20)

"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"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
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
 
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast..."Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
 
"Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others..."Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others...
 
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
 
"Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv..."Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv...
 
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin..."How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
 
"Leadership, Soft Skills, and Personality Types for IT teams", Sergiy Tytenko
"Leadership, Soft Skills, and Personality Types for IT teams",  Sergiy Tytenko"Leadership, Soft Skills, and Personality Types for IT teams",  Sergiy Tytenko
"Leadership, Soft Skills, and Personality Types for IT teams", Sergiy Tytenko
 

Recently uploaded

Recently uploaded (20)

Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 

"Debugging python applications inside k8s environment", Andrii Soldatenko