SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
PyConFinland19.10.2015
Nix
Python
fordevelopers
devops
shell
virtualenv
Docker
buildout
packaging
testing
building
deployment
developing
nixpkgs
DisNix
Mesos
NixOS
NixOps
development
distributing
ldap
linux
lxml
Aurora
NodeLATEX
darwin
deploying
nix-build
nix-copy-closure
nix-shell
python3
setuptoolsErlang
Haskell
RabbitMQ
containers
dependencies
libxml
libxslt
nix-collect-garbage
openldap
pillow
pyramid
texlive
zope
Nix for Python
developers
by Asko Soukka
‱ github.com/datakurre
‱ twitter.com/datakurre
Dependencies?
Installing a Python package may require external libraries
– Pillow (libjpeg, libtiïŹ€, libwebp, zlib)
– lxml (libxml2, libxslt)
– numpy (gfortran)
– python-ldap (curys-sasl, openldap, openssl)
– ...
Using a Python package may require external software
– Graphviz
– ImageMagick
– LATEX
– NodeJS
– ...
Running a Python application may require external services
– PostgreSQL
– memcached
– Redis
– RabbitMQ
– ...
ONE DOES NOT SIMPLYONE DOES NOT SIMPLY
pip installpip install
What if you could simply deïŹne any dependencies in a
hashbang?
#! /usr/bin/env nix-shell
#! nix-shell -i python -p pythonPackages.pillow
. . . or deïŹne all required dependencies just when calling?
$ nix-shell -p python -p gnuplot -p git --run "python
gitstats input output"→
. . . build an environment with any dependencies?
$ nix-build filename.nix -o env
$ ls env/bin
2to3 dvilj4 makeindex pdflatex
afm2pl dvilj4l makejvf pdfmex
afm2tfm dvilj6 mendex pdftex
...
ctangle gftopk otfinfo python
...
. . . enter into a shell with any dependencies?
$ nix-shell filename.nix
$ which latex
/nix/store/.../bin/latex
$ which python
/nix/store/.../bin/python
$ exit
. . . easily build an app with any dependencies into a single
container?
FROM scratch
ADD myapp.nix.tar.gz /
EXPOSE 8080
ENTRYPOINT ["/app/bin/python3"]
Nix – the purely functional package manager
– Functional DSL for building stuïŹ€
– Builds named by their expression hash
– Builds isolated and reproducible
– Build results immutable and shareable
– Single or multi-user installation
– Garbage collection on request
– Tools for development and distribution
$ nix-build filename.nix -o env
$ tree -L 2 `realpath env`
/nix/store/n8rydlmdqjc4c6yik1dxyhl869jl5fbr-env
bin/python -> /nix/store/64856yqx1rk2f3qi3qs1dmxmsk83yfyw
-python-2.7.10-env/bin/python→
...
bin/redis-server -> /nix/store/p76nwndjnd8mm00k5di8plmj7n8kcnm0
-redis-3.0.2/bin/redis-server→
/nix/store/ + <hash> + <name> + <version>
nixpkgs – the Nix packages collection
– 70 530 commits
– 697 authors
$ bash <(curl https://nixos.org/nix/install)
”Friends sometimes let friends
curl to shell” –Domen KoĆŸar
I DON’T ALWAYSI DON’T ALWAYS
USE CODE EXAMPLESUSE CODE EXAMPLES
BUT WHEN I DO . . .BUT WHEN I DO . . .
Nix ”virtualenv”
with import <nixpkgs> {};
buildEnv {
name = "env";
paths = [
redis
(python.buildEnv.override {
extraLibs = [ pythonPackages.redis ];
})
];
}
$ nix-build filename.nix -o env
Nix build shell
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "env";
buildInputs = [
redis
(python.buildEnv.override {
extraLibs = [ pythonPackages.redis ];
})
];
shellHook = ''
export PYTHONPATH=`pwd`
'';
}
Nix build shell usage
$ nix-shell filename.nix --run "..."
$ nix-shell filename.nix
...
$ exit
shellHook = ''
export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
'';
Nix build shell helper
function nix() {
if [ ! -e shell.drv ]; then
nix-instantiate --indirect --add-root $PWD/shell.drv
fi
echo nix-shell $PWD/shell.drv --run "$@" | sh;
}
$ nix ...
$ rm shell.drv
$ nix-env -qaP|grep -i needle
Nix python package
with import <nixpkgs> {};
buildPythonPackage {
name = "myapp-1.0";
src = ./.;
buildInputs = [];
propagatedBuildInputs = [
pythonPackages.redis
];
doCheck = false;
}
$ nix-env -i -f filename.nix
With custom python dependencies
with import <nixpkgs> {};
let dependencies = rec {
_future = buildPythonPackage {
name = "future-0.15.2";
src = fetchurl {
url = ".../future-0.15.2.tar.gz";
md5 = "...b76714c5ceb8c09ea3a06";
};
doCheck = false;
};
};
in with dependencies;
buildPythonPackage { ... [ _future ]; };
Reproducible
with import (fetchTarball
https://github.com/NixOS/nixpkgs/archive/
2766a4b44ee6eafae03a042801270c7f6b8ed32a.tar.gz) {};
→
→
...
$ nix-collect-garbage -d
Generating Nix expressions. . .
[mercurial]
recipe = collective.recipe.nix
eggs = mercurial
propagated-build-inputs =
keyring=hgtools
keyring=setuptools-scm
mercurial=mercurial-keyring
mercurial=pyopenssl
build-inputs =
mercurial=gettext
nixpkgs =
cryptography=pythonPackages.cryptography
pyopenssl=pyopenssl
. . . with collective.recipe.nix
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "env";
buildInputs = [
pythonPackages.zc_buildout_nix
];
shellHook = ''
export SSL_CERT_FILE=...
'';
}
$ nix-shell filename.nix --run "buildout-nix filename.cfg"
$ nix-env -i -f mercurial-mercurial.nix
github.com/datakurre/collective.recipe.nix
DEPLOY?DEPLOY?
Nix is not a container technology, but
Nix builds are good to go
with any container technology!
Some deployment options
– tar cvz `nix-store -qR env`
– Docker
– nix-build
– nix-serve -p 8080
– nix-copy-closure
– NixOps
– DisNix
Runtime isolation with Docker
$ tar cv --files-from /dev/null | docker import - empty
$ docker run --rm -v /nix/store:/nix/store -p 8080:8080 -v `pwd`:/app
empty /app/result/bin/python /app/hello_world.py→
github.com/datakurre/nix-build-pack-docker
linux-headers-3.12.32
acl-2.2.52
openssl-1.0.1p
attr-2.4.47
python-2.7.10
bash-4.3-p42
bzip2-1.0.6
glibc-2.21
zlib-1.2.8
coreutils-8.24
OïŹƒcial docs
– nixos.org/nix
– nixos.org/nixops
– nixos.org/disnix
Community resources
– nixos.org/wiki
– planet.nixos.org
– conf.nixos.org
From the author
– datakurre.pandala.org/search/label/nix
– gist.github.com/datakurre
Freenode (IRC) channels
– #nixos
– ##nix-darwin
Stop worrying.

Weitere Àhnliche Inhalte

Was ist angesagt?

Linux Container Technology 101
Linux Container Technology 101Linux Container Technology 101
Linux Container Technology 101
inside-BigData.com
 

Was ist angesagt? (20)

Docker: the road ahead
Docker: the road aheadDocker: the road ahead
Docker: the road ahead
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
 
Rootless Containers & Unresolved issues
Rootless Containers & Unresolved issuesRootless Containers & Unresolved issues
Rootless Containers & Unresolved issues
 
"Containers do not contain"
"Containers do not contain""Containers do not contain"
"Containers do not contain"
 
The State of Rootless Containers
The State of Rootless ContainersThe State of Rootless Containers
The State of Rootless Containers
 
DockerVC Hackathon Presentation
DockerVC Hackathon PresentationDockerVC Hackathon Presentation
DockerVC Hackathon Presentation
 
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
 [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui... [KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
[KubeConUS2019 Docker, Inc. Booth] Distributed Builds on Kubernetes with Bui...
 
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
 
Containers technologies
Containers technologiesContainers technologies
Containers technologies
 
Hydra: Continuous Integration and Testing for Demanding People: The Details
Hydra: Continuous Integration and Testing for Demanding People: The DetailsHydra: Continuous Integration and Testing for Demanding People: The Details
Hydra: Continuous Integration and Testing for Demanding People: The Details
 
LXC
LXCLXC
LXC
 
Linux Container Technology 101
Linux Container Technology 101Linux Container Technology 101
Linux Container Technology 101
 
Raspberry pi x kubernetes x tensorflow
Raspberry pi x kubernetes x tensorflowRaspberry pi x kubernetes x tensorflow
Raspberry pi x kubernetes x tensorflow
 
Lxc- Introduction
Lxc- IntroductionLxc- Introduction
Lxc- Introduction
 
Seven problems of Linux Containers
Seven problems of Linux ContainersSeven problems of Linux Containers
Seven problems of Linux Containers
 
Lxc – next gen virtualization for cloud intro (cloudexpo)
Lxc – next gen virtualization for cloud   intro (cloudexpo)Lxc – next gen virtualization for cloud   intro (cloudexpo)
Lxc – next gen virtualization for cloud intro (cloudexpo)
 
[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive[KubeCon EU 2020] containerd Deep Dive
[KubeCon EU 2020] containerd Deep Dive
 
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
[KubeConEU] Building images efficiently and securely on Kubernetes with BuildKit
 
Docker ćŽŸç†èˆ‡ćŻŠäœœ
Docker ćŽŸç†èˆ‡ćŻŠäœœDocker ćŽŸç†èˆ‡ćŻŠäœœ
Docker ćŽŸç†èˆ‡ćŻŠäœœ
 
SCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with ChefSCALE 2011 Deploying OpenStack with Chef
SCALE 2011 Deploying OpenStack with Chef
 

Andere mochten auch

PATHS Evaluation of the 1st paths prototype
PATHS Evaluation of the 1st paths prototypePATHS Evaluation of the 1st paths prototype
PATHS Evaluation of the 1st paths prototype
pathsproject
 
My E-mail appears as spam - troubleshooting path - part 11 of 17
My E-mail appears as spam - troubleshooting path - part 11 of 17My E-mail appears as spam - troubleshooting path - part 11 of 17
My E-mail appears as spam - troubleshooting path - part 11 of 17
Eyal Doron
 

Andere mochten auch (14)

Hydra: Continuous Integration and Testing for Demanding People: The Basics
Hydra: Continuous Integration and Testing for Demanding People: The BasicsHydra: Continuous Integration and Testing for Demanding People: The Basics
Hydra: Continuous Integration and Testing for Demanding People: The Basics
 
The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, KafkaThe Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
The Current Messaging Landscape: RabbitMQ, ZeroMQ, nsq, Kafka
 
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
 
Think before you speak
Think before you speakThink before you speak
Think before you speak
 
Dealing with a spoof mail attacks and phishing mail attacks a little story ...
Dealing with a spoof mail attacks and phishing mail attacks   a little story ...Dealing with a spoof mail attacks and phishing mail attacks   a little story ...
Dealing with a spoof mail attacks and phishing mail attacks a little story ...
 
How does sender verification work how we identify spoof mail) spf, dkim dmar...
How does sender verification work  how we identify spoof mail) spf, dkim dmar...How does sender verification work  how we identify spoof mail) spf, dkim dmar...
How does sender verification work how we identify spoof mail) spf, dkim dmar...
 
Implementing Recommendations in the PATHS system, SUEDL 2013
Implementing Recommendations in the PATHS system, SUEDL 2013Implementing Recommendations in the PATHS system, SUEDL 2013
Implementing Recommendations in the PATHS system, SUEDL 2013
 
Past perfect tense Nurlaela 201212500067
Past perfect tense Nurlaela 201212500067Past perfect tense Nurlaela 201212500067
Past perfect tense Nurlaela 201212500067
 
Semantic Enrichment of Cultural Heritage content in PATHS
Semantic Enrichment of Cultural Heritage content in PATHSSemantic Enrichment of Cultural Heritage content in PATHS
Semantic Enrichment of Cultural Heritage content in PATHS
 
WordBenchç†ŠæœŹçŹŹ3ć›žć‹‰ćŒ·äŒš
WordBenchç†ŠæœŹçŹŹ3ć›žć‹‰ćŒ·äŒšWordBenchç†ŠæœŹçŹŹ3ć›žć‹‰ćŒ·äŒš
WordBenchç†ŠæœŹçŹŹ3ć›žć‹‰ćŒ·äŒš
 
Personalizing Access to Cultural Heritage Collections using Pathways
Personalizing Access to Cultural Heritage Collections using PathwaysPersonalizing Access to Cultural Heritage Collections using Pathways
Personalizing Access to Cultural Heritage Collections using Pathways
 
PATHS Evaluation of the 1st paths prototype
PATHS Evaluation of the 1st paths prototypePATHS Evaluation of the 1st paths prototype
PATHS Evaluation of the 1st paths prototype
 
My E-mail appears as spam - troubleshooting path - part 11 of 17
My E-mail appears as spam - troubleshooting path - part 11 of 17My E-mail appears as spam - troubleshooting path - part 11 of 17
My E-mail appears as spam - troubleshooting path - part 11 of 17
 
Fichas de la y
Fichas de la yFichas de la y
Fichas de la y
 

Ähnlich wie Nix for Python developers

Practical introduction to dev ops with chef
Practical introduction to dev ops with chefPractical introduction to dev ops with chef
Practical introduction to dev ops with chef
LeanDog
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
Ricardo Amaro
 

Ähnlich wie Nix for Python developers (20)

Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)
 
Packaging Services with Nix
Packaging Services with NixPackaging Services with Nix
Packaging Services with Nix
 
Automating Mendix application deployments with Nix
Automating Mendix application deployments with NixAutomating Mendix application deployments with Nix
Automating Mendix application deployments with Nix
 
Automating complex infrastructures with Puppet
Automating complex infrastructures with PuppetAutomating complex infrastructures with Puppet
Automating complex infrastructures with Puppet
 
Container Monitoring with Sysdig
Container Monitoring with SysdigContainer Monitoring with Sysdig
Container Monitoring with Sysdig
 
2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com2015 DockerCon Using Docker in production at bity.com
2015 DockerCon Using Docker in production at bity.com
 
DockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with DockerDockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with Docker
 
Package Management via Spack on SJTU π Supercomputer
Package Management via Spack on SJTU π SupercomputerPackage Management via Spack on SJTU π Supercomputer
Package Management via Spack on SJTU π Supercomputer
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
 
Practical introduction to dev ops with chef
Practical introduction to dev ops with chefPractical introduction to dev ops with chef
Practical introduction to dev ops with chef
 
Nix: What even is it though?
Nix: What even is it though?Nix: What even is it though?
Nix: What even is it though?
 
RunX ELCE 2020
RunX ELCE 2020RunX ELCE 2020
RunX ELCE 2020
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewCeph, Docker, Heroku Slugs, CoreOS and Deis Overview
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
 
DockerCoreNet
DockerCoreNetDockerCoreNet
DockerCoreNet
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQDocker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
 

Mehr von Asko Soukka

Plone, rabbit mq and messaging that just works
Plone, rabbit mq and messaging that just worksPlone, rabbit mq and messaging that just works
Plone, rabbit mq and messaging that just works
Asko Soukka
 

Mehr von Asko Soukka (9)

Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Embedding BPMN-driven business processes into Plone
Embedding BPMN-driven business processes into PloneEmbedding BPMN-driven business processes into Plone
Embedding BPMN-driven business processes into Plone
 
Plone and Volto in a Jamstack project
Plone and Volto in a Jamstack projectPlone and Volto in a Jamstack project
Plone and Volto in a Jamstack project
 
Deploying Plone and Volto, the Hard Way
Deploying Plone and Volto, the Hard WayDeploying Plone and Volto, the Hard Way
Deploying Plone and Volto, the Hard Way
 
How Plone Excels in GatsbyJS Content Mesh
How Plone Excels in GatsbyJS Content MeshHow Plone Excels in GatsbyJS Content Mesh
How Plone Excels in GatsbyJS Content Mesh
 
ZServer Reloaded with HTTP/2 and WebSocket Support
ZServer Reloaded with HTTP/2 and WebSocket SupportZServer Reloaded with HTTP/2 and WebSocket Support
ZServer Reloaded with HTTP/2 and WebSocket Support
 
Building instant features with advanced Plone themes
Building instant features with advanced Plone themesBuilding instant features with advanced Plone themes
Building instant features with advanced Plone themes
 
Acceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and seleniumAcceptance testing plone sites and add ons with robot framework and selenium
Acceptance testing plone sites and add ons with robot framework and selenium
 
Plone, rabbit mq and messaging that just works
Plone, rabbit mq and messaging that just worksPlone, rabbit mq and messaging that just works
Plone, rabbit mq and messaging that just works
 

KĂŒrzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

KĂŒrzlich hochgeladen (20)

Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Nix for Python developers