SlideShare a Scribd company logo
1 of 20
Download to read offline
Containerized IDEs, and other
Local As Code techniques
Jan Van Bruggen
Developer Relations @ itopia
Let’s talk about coding, in general
● Defining my terms:
○ “Coding” == Editing lines of code in software and testing results
○ “Device” == Hardware used when coding (Ex: a Mac Mini, a Chromebook, an eGPU, etc.)
○ “Local” == Software running locally when coding (Ex: IDE, CLIs, compilers, web browsers, etc.)
○ “Project” == A team codebase with…
■ necessary dependencies (libraries, OS packages, OS, etc.)
■ recommended helpers (plugins, IDE settings, shell aliases, etc.)
● Some project dependencies & helpers have declarative config files.
○ .idea/ .vscode/ .editorconfig .eslintrc .gitignore .prettierrc.json go.mod package-lock.json
package.json pom.xml requirements.txt tsconfig.json yarn.lock …
● Some don’t.
○ “See README.md for step-by-step instructions on how to…”
Before you can start coding, you need… (on most projects)
Version-controlled? Setup process
📄 Project source ✅ Yes 👍 One command: git clone
📁 Third-party libraries ✅ Yes 👍 One command: npm install
(or pip / maven / cargo / etc.)
📦 OS packages ❌ No 🛠 Manually install & configure
(follow docs, maybe scripts)
🐧 OS ❌ No 🛠 Manually install & configure
(follow docs)
💻 Device N/A N/A
What is the source of truth for each layer?
Version-controlled? Setup process
📄 Project source ✅ Yes 👍 One command: git clone
📁 Third-party libraries ✅ Yes 👍 One command: npm install
(or pip / maven / cargo / etc.)
📦 OS packages ❌ No 🛠 Manually install & configure
(follow docs, maybe scripts)
🐧 OS ❌ No 🛠 Manually install & configure
(follow docs)
💻 Device N/A N/A
Local As Documentation
Local As Code
The point of this webinar
Version-controlled? Setup process
📄 Project source ✅ Yes 👍 One command: git clone
📁 Third-party libraries ✅ Yes 👍 One command: npm install
(or pip / maven / cargo / etc.)
📦 OS packages ❌ No 🛠 Manually install & configure
(follow docs, maybe scripts)
🐧 OS ❌ No 🛠 Manually install & configure
(follow docs)
💻 Device N/A N/A
by automating project setup.
Decrease project onboarding time
Let’s automate!
Version-controlled? Setup process Solutions
📄 Project source ✅ Yes 👍 One command: git clone N/A
📁 Third-party libraries ✅ Yes 👍 One command: npm install
(or pip / maven / cargo / etc.)
N/A
📦 OS packages ❌ No 🛠 Manually install & configure
(follow docs, maybe scripts)
?
🐧 OS ❌ No 🛠 Manually install & configure
(follow docs)
?
💻 Device N/A N/A N/A
OS Packages As Code is tricky but high-value
Version-controlled? Setup process Solutions
📄 Project source ✅ Yes 👍 One command: git clone N/A
📁 Third-party libraries ✅ Yes 👍 One command: npm install
(or pip / maven / cargo / etc.)
N/A
📦 OS packages ? ? ?
🐧 OS ❌ No 🛠 Manually install & configure
(follow docs)
?
💻 Device N/A N/A N/A
Nix is a great tool for most projects
Version-controlled? Setup process Solutions
📄 Project source ✅ Yes 👍 One command: git clone N/A
📁 Third-party libraries ✅ Yes 👍 One command: npm install
(or pip / maven / cargo / etc.)
N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 One command: nix-shell Nix
github.com/NixOS/nix
🐧 OS ❌ No 🛠 Manually install & configure
(follow docs)
?
💻 Device N/A N/A N/A
OS As Code can be both liberating and restrictive
Version-controlled? Setup process Solutions
📄 Project source ✅ Yes 👍 One command: git clone N/A
📁 Third-party libraries ✅ Yes 👍 One command: npm install
(or pip / maven / cargo / etc.)
N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 One command: nix-shell Nix
github.com/NixOS/nix
🐧 OS ? ? ?
💻 Device N/A N/A N/A
Two orthogonal solutions
Version-controlled? Setup process Solutions
📄 Project source ✅ Yes 👍 One command: git clone N/A
📁 Third-party libraries ✅ Yes 👍 One command: npm install
(or pip / maven / cargo / etc.)
N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 One command: nix-shell Nix
github.com/NixOS/nix
🐧 OS ? ? Containerization
or NixOS (nixos.org)
💻 Device N/A N/A N/A
Containerization is accessible and popular, but NixOS isn’t
Version-controlled? Setup process Solutions
📄 Project source ✅ Yes 👍 One command: git clone N/A
📁 Third-party libraries ✅ Yes 👍 One command: npm install
(or pip / maven / cargo / etc.)
N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 One command: nix-shell Nix
github.com/NixOS/nix
🐧 OS ? ? Containerization
or NixOS (nixos.org)
💻 Device N/A N/A N/A
Containerization adds an OS and can install OS packages
Version-controlled? Setup process Solutions
📄 Project source ✅ Yes 👍 git clone N/A
📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional)
🐧 Project OS ✅ Yes: Dockerfile ? Docker
👁 IDE interface N/A ? ?
🍎 Device OS Unnecessary 👍 Bring your own device N/A
💻 Device N/A N/A N/A
Short tangent: Personalization matters, too
Version-controlled? Setup process Solutions
💅 Personalization ? ? ?
📄 Project source ✅ Yes 👍 git clone N/A
📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional)
🐧 Project OS ✅ Yes: Dockerfile ? Docker
👁 IDE interface N/A ? ?
🍎 Device OS Unnecessary 👍 Bring your own device N/A
💻 Device N/A N/A N/A
Personalization is about dotfiles (see github.com/webpro/awesome-dotfiles)
Version-controlled? Setup process Solutions
💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi (chezmoi.io)
📄 Project source ✅ Yes 👍 git clone N/A
📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional)
🐧 Project OS ✅ Yes: Dockerfile ? Docker
👁 IDE interface N/A ? ?
🍎 Device OS Unnecessary 👍 Bring your own device N/A
💻 Device N/A N/A N/A
Containerized OS approach #1: Offline (easy)
Version-controlled? Setup process Solutions
💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi
📄 Project source ✅ Yes 👍 git clone N/A
📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional)
🐧 Project OS (guest) ✅ Yes: Dockerfile 🛠 Manually install & configure Docker Desktop
👁 IDE interface N/A 🛠 Manually install IDE with… …guest OS support
🍎 Device OS (host) Unnecessary 👍 Bring your own device N/A
💻 Device N/A N/A N/A
Containerized OS approach #2: Hybrid (medium)
Version-controlled? Setup process Solutions
💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi
📄 Project source ✅ Yes 👍 git clone N/A
📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional)
🐧 Project OS (remote) ✅ Yes: Dockerfile 🛠 Manually deploy a server Docker on a server
👁 IDE interface N/A 🛠 Manually install IDE with… …remote OS support
🍎 Device OS (local) Unnecessary 👍 Bring your own device N/A
💻 Device N/A N/A N/A
Containerized OS approach #3: Online (medium)
Version-controlled? Setup process Solutions
💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi
📄 Project source ✅ Yes 👍 git clone N/A
📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional)
🐧 Project OS (remote) ✅ Yes: Dockerfile 🛠 Manually deploy a server code-server or
JetBrains Projector
👁 IDE interface N/A 👍 Bring your own web browser N/A
🍎 Device OS (local) Unnecessary 👍 Bring your own device N/A
💻 Device N/A N/A N/A
Containerized OS approach #4: Online & scalable (hard)
Version-controlled? Setup process Solutions
💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi
📄 Project source ✅ Yes 👍 git clone N/A
📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional)
🐧 Project OS (remote) ✅ Yes: Dockerfile 🛠 Manually deploy Kubernetes Selkies (selkies.io)
👁 IDE interface N/A 👍 Bring your own web browser N/A
🍎 Device OS (local) Unnecessary 👍 Bring your own device N/A
💻 Device N/A N/A N/A
Containerized OS approach #5: Online & managed (easy)
Version-controlled? Setup process Solutions
💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi
📄 Project source ✅ Yes 👍 git clone N/A
📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A
📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional)
🐧 Project OS (remote) ✅ Yes: Dockerfile 🤷 “Manually” sign up itopia Spaces or
GitHub Codespaces
👁 IDE interface N/A 👍 Bring your own web browser N/A
🍎 Device OS (local) Unnecessary 👍 Bring your own device N/A
💻 Device N/A N/A N/A
Thanks for watching!
👋
JVanBruggen@itopia.com
JanCVanB@ on GitHub & Twitter
⛅
itopiaSpaces.com
github.com/itopia-inc
🦭
github.com/selkies-project
discord.com/invite/wDNGDeSW5F

More Related Content

Similar to Containerized IDEs.pdf

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 2014biicode
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsGR8Conf
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017MarcinStachniuk
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developermpaproductions
 
Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Henry Schreiner
 
Introduction to Docker and Containers
Introduction to Docker and ContainersIntroduction to Docker and Containers
Introduction to Docker and ContainersDocker, Inc.
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using SwiftDiego Freniche Brito
 
CodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labCodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labRon Munitz
 
Improving WordPress Theme Development Workflow - Naveen Kharwar.
Improving WordPress Theme Development Workflow - Naveen Kharwar.Improving WordPress Theme Development Workflow - Naveen Kharwar.
Improving WordPress Theme Development Workflow - Naveen Kharwar.Naveen Kharwar
 
Docker. Micro services for lazy developers
Docker. Micro services for lazy developersDocker. Micro services for lazy developers
Docker. Micro services for lazy developersEugene Krevenets
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplateStanislav Petrov
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Opersys inc.
 
JLPDevs - Optimization Tooling for Modern Web App Development
JLPDevs - Optimization Tooling for Modern Web App DevelopmentJLPDevs - Optimization Tooling for Modern Web App Development
JLPDevs - Optimization Tooling for Modern Web App DevelopmentJLP Community
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategiesrahulbot
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers WorkshopJody Garnett
 
Deploying to DigitalOcean With GitHub Actions
Deploying to DigitalOcean With GitHub ActionsDeploying to DigitalOcean With GitHub Actions
Deploying to DigitalOcean With GitHub ActionsDigitalOcean
 

Similar to Containerized IDEs.pdf (20)

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
 
Drone CI
Drone CIDrone CI
Drone CI
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developer
 
Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024Software Quality Assurance Tooling - Wintersession 2024
Software Quality Assurance Tooling - Wintersession 2024
 
Introduction to Docker and Containers
Introduction to Docker and ContainersIntroduction to Docker and Containers
Introduction to Docker and Containers
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
 
CodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labCodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering lab
 
CI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOWCI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOW
 
groovy & grails - lecture 6
groovy & grails - lecture 6groovy & grails - lecture 6
groovy & grails - lecture 6
 
Improving WordPress Theme Development Workflow - Naveen Kharwar.
Improving WordPress Theme Development Workflow - Naveen Kharwar.Improving WordPress Theme Development Workflow - Naveen Kharwar.
Improving WordPress Theme Development Workflow - Naveen Kharwar.
 
Docker. Micro services for lazy developers
Docker. Micro services for lazy developersDocker. Micro services for lazy developers
Docker. Micro services for lazy developers
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplate
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013
 
JLPDevs - Optimization Tooling for Modern Web App Development
JLPDevs - Optimization Tooling for Modern Web App DevelopmentJLPDevs - Optimization Tooling for Modern Web App Development
JLPDevs - Optimization Tooling for Modern Web App Development
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
Deploying to DigitalOcean With GitHub Actions
Deploying to DigitalOcean With GitHub ActionsDeploying to DigitalOcean With GitHub Actions
Deploying to DigitalOcean With GitHub Actions
 

More from LibbySchulze

Running distributed tests with k6.pdf
Running distributed tests with k6.pdfRunning distributed tests with k6.pdf
Running distributed tests with k6.pdfLibbySchulze
 
Extending Kubectl.pptx
Extending Kubectl.pptxExtending Kubectl.pptx
Extending Kubectl.pptxLibbySchulze
 
Enhancing Data Protection Workflows with Kanister And Argo Workflows
Enhancing Data Protection Workflows with Kanister And Argo WorkflowsEnhancing Data Protection Workflows with Kanister And Argo Workflows
Enhancing Data Protection Workflows with Kanister And Argo WorkflowsLibbySchulze
 
Fallacies in Platform Engineering.pdf
Fallacies in Platform Engineering.pdfFallacies in Platform Engineering.pdf
Fallacies in Platform Engineering.pdfLibbySchulze
 
Intro to Fluvio.pptx.pdf
Intro to Fluvio.pptx.pdfIntro to Fluvio.pptx.pdf
Intro to Fluvio.pptx.pdfLibbySchulze
 
Enhance your Kafka Infrastructure with Fluvio.pptx
Enhance your Kafka Infrastructure with Fluvio.pptxEnhance your Kafka Infrastructure with Fluvio.pptx
Enhance your Kafka Infrastructure with Fluvio.pptxLibbySchulze
 
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdfCNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdfLibbySchulze
 
Oh The Places You'll Sign.pdf
Oh The Places You'll Sign.pdfOh The Places You'll Sign.pdf
Oh The Places You'll Sign.pdfLibbySchulze
 
Rancher MasterClass - Avoiding-configuration-drift.pptx
Rancher  MasterClass - Avoiding-configuration-drift.pptxRancher  MasterClass - Avoiding-configuration-drift.pptx
Rancher MasterClass - Avoiding-configuration-drift.pptxLibbySchulze
 
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptxvFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptxLibbySchulze
 
CNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVMCNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVMLibbySchulze
 
EnRoute-OPA-Integration.pdf
EnRoute-OPA-Integration.pdfEnRoute-OPA-Integration.pdf
EnRoute-OPA-Integration.pdfLibbySchulze
 
AirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdfAirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdfLibbySchulze
 
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...LibbySchulze
 
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...LibbySchulze
 
CNCF_ A step to step guide to platforming your delivery setup.pdf
CNCF_ A step to step guide to platforming your delivery setup.pdfCNCF_ A step to step guide to platforming your delivery setup.pdf
CNCF_ A step to step guide to platforming your delivery setup.pdfLibbySchulze
 
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdfCNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdfLibbySchulze
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdfLibbySchulze
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdfLibbySchulze
 
Advancements in Kubernetes Workload Identity for Azure
Advancements in Kubernetes Workload Identity for AzureAdvancements in Kubernetes Workload Identity for Azure
Advancements in Kubernetes Workload Identity for AzureLibbySchulze
 

More from LibbySchulze (20)

Running distributed tests with k6.pdf
Running distributed tests with k6.pdfRunning distributed tests with k6.pdf
Running distributed tests with k6.pdf
 
Extending Kubectl.pptx
Extending Kubectl.pptxExtending Kubectl.pptx
Extending Kubectl.pptx
 
Enhancing Data Protection Workflows with Kanister And Argo Workflows
Enhancing Data Protection Workflows with Kanister And Argo WorkflowsEnhancing Data Protection Workflows with Kanister And Argo Workflows
Enhancing Data Protection Workflows with Kanister And Argo Workflows
 
Fallacies in Platform Engineering.pdf
Fallacies in Platform Engineering.pdfFallacies in Platform Engineering.pdf
Fallacies in Platform Engineering.pdf
 
Intro to Fluvio.pptx.pdf
Intro to Fluvio.pptx.pdfIntro to Fluvio.pptx.pdf
Intro to Fluvio.pptx.pdf
 
Enhance your Kafka Infrastructure with Fluvio.pptx
Enhance your Kafka Infrastructure with Fluvio.pptxEnhance your Kafka Infrastructure with Fluvio.pptx
Enhance your Kafka Infrastructure with Fluvio.pptx
 
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdfCNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
 
Oh The Places You'll Sign.pdf
Oh The Places You'll Sign.pdfOh The Places You'll Sign.pdf
Oh The Places You'll Sign.pdf
 
Rancher MasterClass - Avoiding-configuration-drift.pptx
Rancher  MasterClass - Avoiding-configuration-drift.pptxRancher  MasterClass - Avoiding-configuration-drift.pptx
Rancher MasterClass - Avoiding-configuration-drift.pptx
 
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptxvFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
 
CNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVMCNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVM
 
EnRoute-OPA-Integration.pdf
EnRoute-OPA-Integration.pdfEnRoute-OPA-Integration.pdf
EnRoute-OPA-Integration.pdf
 
AirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdfAirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdf
 
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
 
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
 
CNCF_ A step to step guide to platforming your delivery setup.pdf
CNCF_ A step to step guide to platforming your delivery setup.pdfCNCF_ A step to step guide to platforming your delivery setup.pdf
CNCF_ A step to step guide to platforming your delivery setup.pdf
 
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdfCNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdf
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdf
 
Advancements in Kubernetes Workload Identity for Azure
Advancements in Kubernetes Workload Identity for AzureAdvancements in Kubernetes Workload Identity for Azure
Advancements in Kubernetes Workload Identity for Azure
 

Recently uploaded

Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 

Recently uploaded (20)

Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Saket Delhi 💯Call Us 🔝8264348440🔝
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Uttam Nagar Delhi 💯Call Us 🔝8264348440🔝
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 

Containerized IDEs.pdf

  • 1. Containerized IDEs, and other Local As Code techniques Jan Van Bruggen Developer Relations @ itopia
  • 2. Let’s talk about coding, in general ● Defining my terms: ○ “Coding” == Editing lines of code in software and testing results ○ “Device” == Hardware used when coding (Ex: a Mac Mini, a Chromebook, an eGPU, etc.) ○ “Local” == Software running locally when coding (Ex: IDE, CLIs, compilers, web browsers, etc.) ○ “Project” == A team codebase with… ■ necessary dependencies (libraries, OS packages, OS, etc.) ■ recommended helpers (plugins, IDE settings, shell aliases, etc.) ● Some project dependencies & helpers have declarative config files. ○ .idea/ .vscode/ .editorconfig .eslintrc .gitignore .prettierrc.json go.mod package-lock.json package.json pom.xml requirements.txt tsconfig.json yarn.lock … ● Some don’t. ○ “See README.md for step-by-step instructions on how to…”
  • 3. Before you can start coding, you need… (on most projects) Version-controlled? Setup process 📄 Project source ✅ Yes 👍 One command: git clone 📁 Third-party libraries ✅ Yes 👍 One command: npm install (or pip / maven / cargo / etc.) 📦 OS packages ❌ No 🛠 Manually install & configure (follow docs, maybe scripts) 🐧 OS ❌ No 🛠 Manually install & configure (follow docs) 💻 Device N/A N/A
  • 4. What is the source of truth for each layer? Version-controlled? Setup process 📄 Project source ✅ Yes 👍 One command: git clone 📁 Third-party libraries ✅ Yes 👍 One command: npm install (or pip / maven / cargo / etc.) 📦 OS packages ❌ No 🛠 Manually install & configure (follow docs, maybe scripts) 🐧 OS ❌ No 🛠 Manually install & configure (follow docs) 💻 Device N/A N/A Local As Documentation Local As Code
  • 5. The point of this webinar Version-controlled? Setup process 📄 Project source ✅ Yes 👍 One command: git clone 📁 Third-party libraries ✅ Yes 👍 One command: npm install (or pip / maven / cargo / etc.) 📦 OS packages ❌ No 🛠 Manually install & configure (follow docs, maybe scripts) 🐧 OS ❌ No 🛠 Manually install & configure (follow docs) 💻 Device N/A N/A by automating project setup. Decrease project onboarding time
  • 6. Let’s automate! Version-controlled? Setup process Solutions 📄 Project source ✅ Yes 👍 One command: git clone N/A 📁 Third-party libraries ✅ Yes 👍 One command: npm install (or pip / maven / cargo / etc.) N/A 📦 OS packages ❌ No 🛠 Manually install & configure (follow docs, maybe scripts) ? 🐧 OS ❌ No 🛠 Manually install & configure (follow docs) ? 💻 Device N/A N/A N/A
  • 7. OS Packages As Code is tricky but high-value Version-controlled? Setup process Solutions 📄 Project source ✅ Yes 👍 One command: git clone N/A 📁 Third-party libraries ✅ Yes 👍 One command: npm install (or pip / maven / cargo / etc.) N/A 📦 OS packages ? ? ? 🐧 OS ❌ No 🛠 Manually install & configure (follow docs) ? 💻 Device N/A N/A N/A
  • 8. Nix is a great tool for most projects Version-controlled? Setup process Solutions 📄 Project source ✅ Yes 👍 One command: git clone N/A 📁 Third-party libraries ✅ Yes 👍 One command: npm install (or pip / maven / cargo / etc.) N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 One command: nix-shell Nix github.com/NixOS/nix 🐧 OS ❌ No 🛠 Manually install & configure (follow docs) ? 💻 Device N/A N/A N/A
  • 9. OS As Code can be both liberating and restrictive Version-controlled? Setup process Solutions 📄 Project source ✅ Yes 👍 One command: git clone N/A 📁 Third-party libraries ✅ Yes 👍 One command: npm install (or pip / maven / cargo / etc.) N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 One command: nix-shell Nix github.com/NixOS/nix 🐧 OS ? ? ? 💻 Device N/A N/A N/A
  • 10. Two orthogonal solutions Version-controlled? Setup process Solutions 📄 Project source ✅ Yes 👍 One command: git clone N/A 📁 Third-party libraries ✅ Yes 👍 One command: npm install (or pip / maven / cargo / etc.) N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 One command: nix-shell Nix github.com/NixOS/nix 🐧 OS ? ? Containerization or NixOS (nixos.org) 💻 Device N/A N/A N/A
  • 11. Containerization is accessible and popular, but NixOS isn’t Version-controlled? Setup process Solutions 📄 Project source ✅ Yes 👍 One command: git clone N/A 📁 Third-party libraries ✅ Yes 👍 One command: npm install (or pip / maven / cargo / etc.) N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 One command: nix-shell Nix github.com/NixOS/nix 🐧 OS ? ? Containerization or NixOS (nixos.org) 💻 Device N/A N/A N/A
  • 12. Containerization adds an OS and can install OS packages Version-controlled? Setup process Solutions 📄 Project source ✅ Yes 👍 git clone N/A 📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional) 🐧 Project OS ✅ Yes: Dockerfile ? Docker 👁 IDE interface N/A ? ? 🍎 Device OS Unnecessary 👍 Bring your own device N/A 💻 Device N/A N/A N/A
  • 13. Short tangent: Personalization matters, too Version-controlled? Setup process Solutions 💅 Personalization ? ? ? 📄 Project source ✅ Yes 👍 git clone N/A 📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional) 🐧 Project OS ✅ Yes: Dockerfile ? Docker 👁 IDE interface N/A ? ? 🍎 Device OS Unnecessary 👍 Bring your own device N/A 💻 Device N/A N/A N/A
  • 14. Personalization is about dotfiles (see github.com/webpro/awesome-dotfiles) Version-controlled? Setup process Solutions 💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi (chezmoi.io) 📄 Project source ✅ Yes 👍 git clone N/A 📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional) 🐧 Project OS ✅ Yes: Dockerfile ? Docker 👁 IDE interface N/A ? ? 🍎 Device OS Unnecessary 👍 Bring your own device N/A 💻 Device N/A N/A N/A
  • 15. Containerized OS approach #1: Offline (easy) Version-controlled? Setup process Solutions 💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi 📄 Project source ✅ Yes 👍 git clone N/A 📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional) 🐧 Project OS (guest) ✅ Yes: Dockerfile 🛠 Manually install & configure Docker Desktop 👁 IDE interface N/A 🛠 Manually install IDE with… …guest OS support 🍎 Device OS (host) Unnecessary 👍 Bring your own device N/A 💻 Device N/A N/A N/A
  • 16. Containerized OS approach #2: Hybrid (medium) Version-controlled? Setup process Solutions 💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi 📄 Project source ✅ Yes 👍 git clone N/A 📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional) 🐧 Project OS (remote) ✅ Yes: Dockerfile 🛠 Manually deploy a server Docker on a server 👁 IDE interface N/A 🛠 Manually install IDE with… …remote OS support 🍎 Device OS (local) Unnecessary 👍 Bring your own device N/A 💻 Device N/A N/A N/A
  • 17. Containerized OS approach #3: Online (medium) Version-controlled? Setup process Solutions 💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi 📄 Project source ✅ Yes 👍 git clone N/A 📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional) 🐧 Project OS (remote) ✅ Yes: Dockerfile 🛠 Manually deploy a server code-server or JetBrains Projector 👁 IDE interface N/A 👍 Bring your own web browser N/A 🍎 Device OS (local) Unnecessary 👍 Bring your own device N/A 💻 Device N/A N/A N/A
  • 18. Containerized OS approach #4: Online & scalable (hard) Version-controlled? Setup process Solutions 💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi 📄 Project source ✅ Yes 👍 git clone N/A 📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional) 🐧 Project OS (remote) ✅ Yes: Dockerfile 🛠 Manually deploy Kubernetes Selkies (selkies.io) 👁 IDE interface N/A 👍 Bring your own web browser N/A 🍎 Device OS (local) Unnecessary 👍 Bring your own device N/A 💻 Device N/A N/A N/A
  • 19. Containerized OS approach #5: Online & managed (easy) Version-controlled? Setup process Solutions 💅 Personalization ✅ Yes: dotfiles 👍 chezmoi init myusername chezmoi 📄 Project source ✅ Yes 👍 git clone N/A 📁 Third-party libraries ✅ Yes 👍 npm install / pip / maven … N/A 📦 OS packages ✅ Yes: *.nix file(s) 👍 nix-shell Nix (optional) 🐧 Project OS (remote) ✅ Yes: Dockerfile 🤷 “Manually” sign up itopia Spaces or GitHub Codespaces 👁 IDE interface N/A 👍 Bring your own web browser N/A 🍎 Device OS (local) Unnecessary 👍 Bring your own device N/A 💻 Device N/A N/A N/A
  • 20. Thanks for watching! 👋 JVanBruggen@itopia.com JanCVanB@ on GitHub & Twitter ⛅ itopiaSpaces.com github.com/itopia-inc 🦭 github.com/selkies-project discord.com/invite/wDNGDeSW5F