🖥️ Diapositivas — Sesión 02 (vie 2 oct)
Esta página es la Tarea 1. Lo guía por la instalación de las herramientas que usará todo el trimestre: pixi para los entornos, git y GitHub para el control de versiones, y JupyterLab para los cuadernos. Cada paso termina en un estado que usted puede verificar, así siempre sabe si funcionó antes de seguir. Presupueste una a dos horas; pida ayuda temprano si un paso falla.
Al final tendrá: pixi y git instalados, una cuenta de GitHub, su repositorio personal del curso MLGEO2026_UWNETID (reemplace UWNETID por su identificador — en la Universidad de Washington, el UW NetID), el libro del curso corriendo localmente y una confirmación empujada a su propio repositorio.
Paso 1 — Instale pixi¶
macOS / Linux / WSL2, en una terminal:
curl -fsSL https://pixi.sh/install.sh | shEn macOS con Homebrew, brew install pixi también funciona. Después de instalar, cierre y reabra la terminal para que su shell tome el PATH nuevo.
Verifique:
pixi --versionEl éxito se ve así: se imprime un número de versión, por ejemplo pixi 0.48.0. Si el comando no se encuentra, reinicie la terminal; si sigue sin encontrarse, el instalador imprime la línea que hay que agregar al perfil de su shell — agréguela y reinicie otra vez.
Paso 2 — Instale git y cree una cuenta de GitHub¶
Compruebe si git ya está instalado:
git --versionSi no: en macOS, ejecutar ese comando dispara el instalador de las Xcode Command Line Tools (acéptelo); en Ubuntu/WSL2, sudo apt install git.
Luego:
Cree una cuenta en github.com y configure la autenticación de dos factores (vea 1.5).
Dígale a git quién es usted, con el mismo nombre de usuario y correo que la cuenta de GitHub:
git config --global user.name "superseismo" git config --global user.email "superseismo@uw.edu"Instale la GitHub CLI y autentíquese:
gh auth loginAcepte los valores por defecto (GitHub.com, HTTPS, iniciar sesión con un navegador web) y siga las indicaciones del navegador.
Verifique:
git --version
gh auth statusEl éxito se ve así: git imprime una versión 2.40 o más nueva, y gh auth status reporta Logged in to github.com con su nombre de usuario.
Paso 3 — Cree su repositorio del curso¶
Cree su repositorio personal del curso, llamado MLGEO2026_UWNETID (su identificador en mayúsculas, por ejemplo MLGEO2026_SUPERSEISMO). Este repositorio guarda sus tareas y su trabajo de proyecto durante el trimestre. Créelo una sola vez, con un comando:
gh repo create MLGEO2026_UWNETID --public --add-readme --license mit --cloneEsto crea el repositorio en GitHub con un README y una licencia MIT, y lo clona en una carpeta del mismo nombre. Ejecútelo desde el directorio donde guarda el trabajo del curso — fuera de carpetas sincronizadas con la nube como Dropbox o Google Drive.
(¿Sin terminal? El equivalente en el navegador está en 1.5; luego clónelo.)
Verifique: abra https://github.com/SU-USUARIO/MLGEO2026_UWNETID en un navegador (con su nombre de usuario de GitHub).
El éxito se ve así: la página del repositorio carga y muestra un README y un archivo LICENSE, y ls MLGEO2026_UWNETID en su computadora muestra los mismos archivos.
Paso 4 — Clone el libro del curso e instale su entorno¶
Clone el repositorio del curso y deje que pixi construya el entorno desde el archivo de bloqueo:
git clone https://github.com/geo-smart/mlgeo-book.git
cd mlgeo-book
pixi installEl primer pixi install descarga unos cuantos gigabytes de paquetes; espere varios minutos con una conexión rápida — y más con una lenta: si su conexión es inestable, simplemente reejecute el comando cuando se corte. Luego lance JupyterLab desde dentro del entorno:
pixi run jupyter labVerifique: JupyterLab se abre en su navegador (o imprime una URL http://localhost:8888/lab?token=... para abrir).
El éxito se ve así: la interfaz de JupyterLab carga y su navegador de archivos muestra la carpeta book/. Deténgalo más tarde con Ctrl-C en la terminal.
Paso 5 — Prueba de humo: ejecute un cuaderno¶
Una prueba de humo (smoke test) es una verificación corta y rápida de que la maquinaria básica funciona de principio a fin: los paquetes se importan, un cálculo pequeño con respuesta conocida devuelve esa respuesta, y aparece una salida. El nombre viene de las pruebas de hardware: se enciende el aparato nuevo y se comprueba que nada eche humo. Una prueba de humo no demuestra que un resultado científico sea correcto. Demuestra que la instalación no falla de entrada, en segundos y no después de una hora de cálculo real. Córrala primero en cualquier máquina nueva y después de cada cambio del entorno. También es lo primero que otra persona ejecuta para saber si su repositorio funciona en su computadora. Este paso prueba el entorno del libro del curso; el paso 6 agrega una prueba de humo a su propio repositorio.
En JupyterLab, abra cualquier cuaderno del capítulo 1 — por ejemplo book/Chapter1-GettingStarted/1.7_get_geodetic_gnss.ipynb — y ejecute las primeras celdas (Shift-Enter).
El éxito se ve así: las celdas de importación terminan sin ModuleNotFoundError, y la primera celda de datos o de gráfica produce salida. Si las importaciones fallan, probablemente está corriendo un kernel fuera del entorno pixi: compruebe que lanzó JupyterLab con pixi run jupyter lab desde el directorio mlgeo-book.
Paso 6 — Empuje un cambio a su propio repositorio¶
Cierre el círculo empujando una confirmación a MLGEO2026_UWNETID. En una terminal, vaya a su repositorio del paso 3, edite README.md (agregue una línea de título, su nombre y una oración sobre lo que quiere obtener de este curso), y luego:
git add README.md
git commit -m "Introduce myself in the README"
git pushYa que está en eso, copie los archivos de entorno del libro del curso a su repositorio, para que su propio trabajo sea reproducible desde el primer día:
cp ../mlgeo-book/pixi.toml ../mlgeo-book/pixi.lock .
pixi remove --pypi mlgeo-synth(Ajuste la ruta ../mlgeo-book/ si sus carpetas viven en otro lado.) El segundo comando quita una línea que solo tiene sentido dentro del libro: instala el paquete mlgeo_synth del libro desde la carpeta del libro, que no existe en su repositorio. Sin quitarla, cada pixi run en su repositorio falla con «does not appear to be a Python project». Todos los demás paquetes conservan la versión exacta fijada en el archivo de bloqueo del libro.
Ahora dele a su repositorio su propia prueba de humo. Guarde esto como smoke_test.py en el repositorio:
"""Smoke test: check that the course environment runs before doing real work."""
import platform
import numpy as np
import pandas as pd
import xarray as xr
# A calculation with a known answer: a line rising 2.5 mm/yr must give slope 2.5.
t = np.arange(0.0, 10.0, 0.1)
slope = np.polyfit(t, 2.5 * t + 1.0, 1)[0]
assert abs(slope - 2.5) < 1e-9, f"expected slope 2.5, got {slope}"
print(f"Python {platform.python_version()} on {platform.system()} {platform.machine()}")
print(f"numpy {np.__version__}, pandas {pd.__version__}, xarray {xr.__version__}")
print("smoke test passed")Regístrela como tarea de pixi y córrala:
pixi task add smoke "python smoke_test.py"
pixi run smokeEl éxito se ve así: la última línea impresa es smoke test passed. Agregue a README.md una sección How to run que nombre el comando (pixi run smoke) y registre el sistema operativo y el tipo de máquina de la primera línea impresa, por ejemplo Tested on Darwin arm64. Luego confirme y empuje:
git add pixi.toml pixi.lock smoke_test.py README.md
git commit -m "Add course environment and smoke test"
git pushVerifique: recargue la página del repositorio en GitHub.
El éxito se ve así: su edición del README, los dos archivos pixi y smoke_test.py son visibles en GitHub, y las confirmaciones aparecen bajo Commits con su nombre de usuario. En clase, el lunes 5 de octubre, un compañero o compañera clonará su repositorio y correrá pixi run smoke guiándose solo por su README.
Listo — y qué entregar¶
Ya tiene un banco de trabajo funcional: un entorno fijado que corre los cuadernos del libro y un repositorio que registra su trabajo e indica cómo comprobar que funciona. Entregue la URL de su repositorio MLGEO2026_UWNETID en la plataforma del curso (Canvas en la Universidad de Washington); la historia de confirmaciones es la evidencia de que lo completó.
Dos seguimientos: