---
format:
    revealjs:
        theme: simple
        chalkboard: true
        auto-stretch: false
---

## Development Environment Tools

Keith VanderLinden<br>
Calvin University

## Demos

- Storage & Compute
- Development Environment
    - CLI
    - Python
    - VSCode

::: {.notes}
- *Goal*: Demo the transition from notebook/cloud to script/local:
    - Referring to the infrastructure deployment diagram as appropriate.
    - Re-using the important terms throughout.
    - Installing the dev-environment as needed.
    - Using the SLO project as an example.
1. Show `product.ipynb` (from `data562-slo`) on GoogleColab.
    - Run the notebook.
    - Speculate on the:
        - Storage & Compute (*IaaS*)
        - Development Environment (*PaaS*)
    - Show "Runtime"-"View Resources"/"Change runtime type" (*IaaS* + *PaaS*).
    - This demo assumes that you've locally installed:
        - Linux (e.g., WSL2)
        - Python3
        - VSCode
2. Show local storage & compute.
    - Windows
        - Show system information
        - Show system monitor (ctrl-alt-del)
3. Show local CLI development environment.
    - Local Bash CLI running in a Linux Terminal
        - Linux distribution info: `lsb_release -a`
        - System information: `uname -a`
        - Demo basic Linux commands: `ls`, `rm`/`rm -rf`, `cd`, `pwd`, `mkdir`, `cat`/`more`, `cp`/`mv`, `which`, ``, ...
    - Git runs in the CLI. Demo the SLO repo.
    - Python does too.
        - Run `hello.py` in VSCode Terminal.
        - Activate the venv and run hello again.
4. Show the local IDE (VSCode running in Windows).
    - Python/venv integration - Run `hello.py` in VSCode editor window.
        - The WSL2 plugin communicates with WSL2 (see `which code` in a WSL2 terminal).
        - Hello-world retrospective
            - Revisit the diagram.
            - We've spent some time (re)running hello-world. Get used to it. In terms of infrastructure, it's an important program, with its own Wikipedia page.
    - VSCode plugins
        - Jupyter - Edit/run a notebook (e.g., `product.ipynb`).
        - View the file system (see: "explorer")
        - Git/GitHub integration (cf. Modules 2-3) - The Git/Windows Credential Managers run on Windows, not in WSL2.
        - Code editing (create `src/hello.py`, letting CoPilot create documentation)
        - CLI/WSL2 integration (run `hello.py` in WSL2 terminal)
            - WSL2 is only for some Windows users.
        - CoPilot/Chat (build a simple script)
:::

## Snapshot

*See the live demo.*

![](images/development-environment-demo.png)

::: {.notes}
Link a snapshot of the final state of the demo here, with the VSCode editor showing and the terminal window running `hello.py`.
:::
