 Command

Sam Foreman's personal site. Vim-style keybinds for navigation; theme + font pickers below.

Theme
 Font
Keybinds
Navigation
j / ↓ Next item k / ↑ Previous item g First item in region G Last item in region zz Center focused item h / l Move left/right region ] / [ Next/previous heading } / { Next/previous block ⌃D / ⌃U Half-page down/up
Layout
<zh> / <zl> Toggle left/right sidebar <zj> / <zk> Focus main/navbar <S-h/j/k/l> Focus left/main/navbar/right ⌃H / ⌃L Focus left/right sidebar ⌃J / ⌃K Focus main/navbar ⇧C / ⇧E Collapse / expand all sections
Dialogs
⌃P / : Command palette ⌃X Theme picker / Search ? Show keybinds Esc / ⌃C Close dialog
History
⌃N Next document ⌃B Previous document ⌃O History back ⌃I History forward
 Search
about: Sam Foreman docs/test: Docs Test ideas: πŸ’‘ Ideas about/more: πŸͺͺ More now: Now more: βž• More posts: πŸ“¬ Posts projects: πŸ“š Projects talks: πŸŽ™οΈ Talks webtui: Style posts/2025: πŸ“† 2025 posts/auroragpt: πŸ€– AuroraGPT posts/ai-for-physics: βš›οΈ AI for Physics posts/dope-slides: πŸ’… How to Make Dope Slides posts/ezpz-at-alcf: πŸ‹ ezpz @ ALCF posts/ezpz-v1: πŸ“ ezpz-v1 posts/jupyter: πŸ“— Jupyter posts/resume: πŸ§‘πŸ»β€πŸ’» Sam Foreman’s RΓ©sumΓ© posts/svgbob: πŸ«₯ svgbob posts/torchtune-aurora: πŸͺ› Torchtune on Aurora posts/torchtune-patch-aurora: πŸš‘ Torchtune Patch on Aurora talks/auroragpt-siam25: AuroraGPT talks/ai-for-science-2024: Parallel Training Methods talks/aurora-gpt-fm-for-electric-grid/auroragpt-fm-for-electric-grid: AuroraGPT: Foundation Models for Science talks/hpc-user-forum/auroragpt: AuroraGPT talks/alcf-hpc-workshop-2024/alcf-hpc-workshop-2024: Deep Learning and Foundation Models at Scale talks/demo-slides: AuroraGPT: Training Foundation Models on Supercomputers talks/incite-hackathon-2025: ALCF Incite Hackathon 2025 talks/llms-at-scale: Training LLMs at Scale talks/llms-on-polaris: Training LLMs on Polaris talks/openskai25: Open SkAI2025 webtui/components/accordion: Accordion webtui/components/badge: Badge webtui/components/button: Button webtui/components/checkbox: Checkbox webtui/components/dialog: Dialog webtui/components/input: Input webtui/components/popover: Popover webtui/components/pre: Pre webtui/components/progress: Progress webtui/components/radio: Radio webtui/components/range: Range webtui/components/separator: Separator webtui/components/spinner: Spinner webtui/components/switch: Switch webtui/components/table: Table webtui/components/textarea: Textarea webtui/components/tooltip: Popover webtui/components/typography: Typography webtui/components/view: View webtui/contributing/contributing: Contributing webtui/contributing/contributing: ## Local Development webtui/contributing/contributing: ## Issues webtui/contributing/contributing: ## Pull Requests webtui/contributing/style-guide: Style Guide webtui/contributing/style-guide: ## CSS Units webtui/contributing/style-guide: ## Selectors webtui/contributing/style-guide: ## Documentation webtui/installation/astro: Astro webtui/installation/astro: ## Scoping webtui/installation/astro: ### Frontmatter Imports webtui/installation/astro: ### <style> tag webtui/installation/astro: ### Full Library Import webtui/installation/nextjs: Next.js webtui/installation/vite: Vite webtui/start/ascii-boxes: ASCII Boxes webtui/start/changelog: Changelog webtui/start/installation: Installation webtui/start/installation: ## Installation webtui/start/installation: ## Using CSS webtui/start/installation: ## Using ESM webtui/start/installation: ## Using a CDN webtui/start/installation: ## Full Library Import webtui/start/installation: ### CSS webtui/start/installation: ### ESM webtui/start/installation: ### CDN webtui/start/intro: Introduction webtui/start/intro: ## Features webtui/start/plugins: Plugins webtui/start/plugins: ## Official Plugins webtui/start/plugins: ### Themes webtui/start/plugins: ## Community Plugins webtui/start/theming: Theming webtui/start/theming: ## CSS Variables webtui/start/theming: ### Font Styles webtui/start/theming: ### Colors webtui/start/theming: ### Light & Dark webtui/start/theming: ## Theme Plugins webtui/start/theming: ### Using Multiple Theme Accents webtui/start/tuis-vs-guis: TUIs vs GUIs webtui/start/tuis-vs-guis: ## Monospace Fonts webtui/start/tuis-vs-guis: ## Character Cells webtui/plugins/plugin-nf: Nerd Font Plugin webtui/plugins/plugin-dev: Developing Plugins webtui/plugins/plugin-dev: ### Style Layers webtui/plugins/theme-catppuccin: Catppuccin Theme webtui/plugins/theme-custom: Custom Theme webtui/plugins/theme-everforest: Everforest Theme webtui/plugins/theme-gruvbox: Gruvbox Theme webtui/plugins/theme-nord: Nord Theme webtui/plugins/theme-vitesse: Vitesse Theme posts/2025/06: 06 posts/auroragpt/aurora-gpt: 🏎️ Megatron-DeepSpeed on Intel XPU posts/auroragpt/determinstic-flash-attn/deterministic-flash-attn: 🎰 Deterministic `flash-attn` posts/auroragpt/flash-attn-sunspot: πŸ“Έ `flash-attn` on Sunspot posts/auroragpt/long-sequences: πŸš‚ Loooooooong Sequence Lengths posts/auroragpt/checkpoints: πŸ’Ύ Converting Checkpoints posts/auroragpt/spike-skipper: πŸ”οΈ Spike Skipper posts/auroragpt/mpi4py-reproducer: πŸ› `mpi4py` bug on Sunspot posts/auroragpt/startup-times: 🐒 Starting Up Distributed Training on Aurora posts/auroragpt/startup-times: ## Response posts/auroragpt/startup-times: ### Measuring / Calculating Startup Time posts/auroragpt/startup-times: ## Minimal Working Example posts/ai-for-physics/diffusion: 🎲 MCMC + Diffusion Sampling posts/ai-for-physics/l2hmc-qcd: 🎒 L2HMC for LQCD posts/jupyter/test: 🏁 `l2hmc` Example: 2D $U(1)$ talks/auroragpt/alcf-hpc-workshop-2024/auroragpt-alcf-hands-on-hpc-workshop-2024: AuroraGPT: ANL's General Purpose Scientific LLM posts/jupyter/l2hmc-4dsu3: πŸ”³ `l2hmc-qcd` Example: 4D SU(3) talks/incite-hackathon-2025/auroragpt: LLMs on Aurora: Overview talks/incite-hackathon-2025/ezpz: LLMs on Aurora: Hands-On talks/openskai25/ai4science: Scientific AI at Scale: AuroraGPT posts/2025/04/28: πŸ”₯ Building PyTorch 2.6 from Source on Aurora talks/openskai25/training: Scientific AI at Scale: Distributed Training posts/2025/05/03: 🚧 Frameworks Issue with numpy \> 2 posts/2025/06/01: πŸ“° Nice Headings posts/2025/10/06: 🎨 Mixing Between Distributions While Training posts/2025/06/14: πŸ—οΈ Building PyTorch 2.8 from Source on Aurora posts/2025/09/12: 🍹 BlendCorpus + TorchTitan @ ALCF posts/2025/11/12: 🧊 Cooling Down Checkpoints: Best Practices for Model Evaluation posts/2026/01/10: πŸ‹ ezpz: distributed PyTorch across any hardware posts/2025/06/02: πŸ§œβ€β™€οΈ Mermaid posts/2025/09/17: πŸ“Š `pbs-tui`: TUI for PBS Job Scheduler Monitoring posts/2026/05/01: Running 50k Python Processes on Aurora with ezpz yeet posts/2026/05/01: ## What it does posts/2026/05/01: ## CLI surface posts/2026/05/01: ### Choosing a local copy method posts/2026/05/01: ### Tarball source posts/2026/05/01: ### Generic (non-venv) sources posts/2026/05/01: ## How it works posts/2026/05/01: ### Local copy + patch posts/2026/05/01: ### Greedy fan-out posts/2026/05/01: ## Scaling on Aurora: 8 β†’ 4096 nodes posts/2026/05/01: ### Two regimes posts/2026/05/01: ### Why tarball broadcast scales so much better than per-file rsync posts/2026/05/01: ## Reproducing posts/2026/05/01: ## Complete workflow posts/2026/05/01: ## See also posts/2026/01/07: πŸŽ‰ Happy New Year! posts/2026/02/28: ⏱️ Comparing Launchers on Aurora posts/2026/02/28: ## torchrun posts/2026/02/28: ## ezpz posts/2026/04/27: Pre-Training AuroraGPT with TorchTitan posts/2026/04/27: ## Two-Week Summary (Apr 12–27, 2026) posts/2026/04/27: ## Detailed Breakdown posts/2026/04/27: ### Week 1: Apr 12–18 β€” Benchmarking, LR Finder, XPU Fixes posts/2026/04/27: #### Benchmarking (Apr 12–15) posts/2026/04/27: #### LR Finder (Apr 12–14) posts/2026/04/27: #### Scaling Study (Apr 12) posts/2026/04/27: #### Upstream Syncs (Apr 12–18, syncs 6–14) posts/2026/04/27: #### XPU Bug Fixes (Apr 18) posts/2026/04/27: #### RL Experiment (Apr 18) posts/2026/04/27: ### Week 1.5: Apr 18–25 β€” Production Readiness posts/2026/04/27: #### Torch 2.12 Benchmarks (Apr 18) posts/2026/04/27: #### LR Finder Extensions (Apr 20–21) posts/2026/04/27: #### XPU Fixes (Apr 23) posts/2026/04/27: #### Torch 2.13 Environment (Apr 25) posts/2026/04/27: #### 2B Scaling Study on Torch 2.13 (Apr 25) posts/2026/04/27: #### Production Training (Apr 25) posts/2026/04/27: ### Week 2: Apr 26–27 β€” Optimizer Competition posts/2026/04/27: #### RL Multi-Task Refactor (Apr 26) posts/2026/04/27: #### Docs Reorganization (Apr 26) posts/2026/04/27: #### Generic HF Dataset Streaming (Apr 26) posts/2026/04/27: #### New Optimizers (Apr 26) posts/2026/04/27: #### Architecture Tweaks (Apr 26–27) posts/2026/04/27: ## Competition Results posts/2026/04/27: ### Round 1–3: Speedrun β€” 2N, GBS=48, 1000 steps posts/2026/04/27: ### 10B Full Training β€” 8N, GBS=384, ~3,178 steps posts/2026/04/27: ### Round 4: Reproducible Speedrun β€” 2N, GAS=8, GBS=384, 1000 steps posts/2026/04/27: ## Key Discoveries posts/2026/04/27: ## Infrastructure Built posts/2026/04/27: ## High-Level posts/2026/04/27: ## Detailed Breakdown posts/2026/04/27: ### Week 1: Apr 12–18 β€” Benchmarking, LR Finder, XPU Fixes posts/2026/04/27: #### Benchmarking (Apr 12–15) posts/2026/04/27: #### LR Finder (Apr 12–14) posts/2026/04/27: #### Scaling Study (Apr 12) posts/2026/04/27: #### Upstream Syncs (Apr 12–18, syncs 6–14) posts/2026/04/27: #### XPU Bug Fixes (Apr 18) posts/2026/04/27: #### RL Experiment (Apr 18) posts/2026/04/27: ### Week 1.5: Apr 18–25 β€” Production Readiness posts/2026/04/27: #### Torch 2.12 Benchmarks (Apr 18) posts/2026/04/27: #### LR Finder Extensions (Apr 20–21) posts/2026/04/27: #### XPU Fixes (Apr 23) posts/2026/04/27: #### Torch 2.13 Environment (Apr 25) posts/2026/04/27: #### 2B Scaling Study on Torch 2.13 (Apr 25) posts/2026/04/27: #### Production Training (Apr 25) posts/2026/04/27: ### Week 2: Apr 26–27 β€” Optimizer Competition posts/2026/04/27: #### RL Multi-Task Refactor (Apr 26) posts/2026/04/27: #### Docs Reorganization (Apr 26) posts/2026/04/27: #### Generic HF Dataset Streaming (Apr 26) posts/2026/04/27: #### New Optimizers (Apr 26) posts/2026/04/27: #### Architecture Tweaks (Apr 26–27) posts/2026/04/27: ## Competition Results posts/2026/04/27: ### Round 1–3: 1000-step speedruns, 2 nodes, GBS=48 (17 configs) posts/2026/04/27: ### Round 4 (10B full training, 8 nodes, GBS=384, 5 configs) posts/2026/04/27: ### Round 5 (2 nodes, GAS=8, GBS=384, local dataset, 8 configs β€” in progress) posts/2026/04/27: ## Key Discoveries posts/2026/04/27: ## Infrastructure Built posts/ai-for-physics/l2hmc-qcd/2du1: 🎒 l2hmc-qcd Example: 2D U(1) posts/jupyter/l2hmc/4dsu3: πŸ”³ l2hmc-qcd Example: 4D SU(3) talks/2025/10/08: AERIS: Argonne's Earth Systems Model posts/ai-for-physics/l2hmc-qcd/4dsu3nb/index-broken: πŸ•ΈοΈ l2hmc-qcd Example: 4D SU(3) talks/2025/10/15: Training Foundation Models on Supercomputers talks/2025/09/24: Training Foundation Models on Supercomputers talks/2025/10/24: Training Foundation Models on Supercomputers talks/2026/06/03: Production Pre-Training at Scale: The Good, the Bad, and the Restarts talks/2025/12/16: AuroraGPT: Training Foundation Models on Supercomputers posts/drafts/2025/09/22: πŸ“ 2025 Annual Report
 Theme Current: Light j/k or ↑/↓ + Enter

πŸ’… How to Make Dope Slides

A guide to creating polished presentation slides using Quarto and Reveal.js with custom CSS.

Sam Foreman 2024-08-13

Quarto 🀝 Reveal.js

So, after making a promise some time ago on twitter [^1], and having many questions following my talk on Parallel Training Techniques last week, I’m finally getting around to writing this up.

The slides are written using Quarto, a flavor of Markdown, and uses the built-in Quarto + Reveal.js functionality.

For this post, I’ll focus on the slides I presented at last years Lattice 2023, shown below:

Tip

πŸƒβ€β™‚οΈ Follow Along…

Once you’ve Installed Quarto, you can build these slides yourself by:

  1. git clone saforem2/lattice23
  2. cd lattice23 && quarto preview

This will create a docs/ directory with the following structure:

πŸ“‚ docs/
β”œβ”€β”€ πŸ“‚ assets/
β”œβ”€β”€ πŸ“‚ css/
β”œβ”€β”€ πŸ“„ index.html
β”œβ”€β”€ πŸ“„ lattice23.md
β”œβ”€β”€ πŸ“„ search.json
└── πŸ“‚ site_libs/

Once you’ve created this, and the docs/index.html file looks how you want, you can add the docs/ directory to your GitHub repo:

$ git add docs
$ git commit -m 'Create site'
$ git push

Once you’ve enabled the GitHub page, the site will be automatically built and updated alongside the repo.

Getting Started

Whenever I give a talk, my workflow is typically:

  1. Create new GitHub repo for it

  2. Hunt down the GitHub repo from my last talk and[^2]:

    $ cp -r old_talk/{_quarto.yml,index.qmd,references.bib,css/*} new_talk/

Honestly, other than that, 90% of the work is done automatically by Quarto. The remaining 10% consists of figuring out why my css is broken (see CSS).

The best place to start for learning to make slides with Quarto and Reveal.js is the official documentation:

  1. Quarto / Presentations / Revealjs:
    1. Reveal Basics
    2. Presenting Slides
    3. Advanced Reveal
    4. Reveal Themes
  • The slides are written in markdown Quarto (.qmd)[^3], a pandoc-compliant based markup language.

  • For a single slide deck, the content will be placed in index.qmd and our directory structure will look something like:

    πŸ“‚ lattice23/
    β”œβ”€β”€ πŸ“‚ assets/            # for images, etc.
    β”‚   └── πŸ–ΌοΈ thumbnail.png  # can be used as social preview image
    β”œβ”€β”€ πŸ“‚ css/
    β”‚   β”œβ”€β”€ πŸ“„ callouts.css
    β”‚   β”œβ”€β”€ πŸ“„ dark.scss
    β”‚   └── πŸ“„ default.css
    β”œβ”€β”€ πŸ› οΈ _quarto.yml        # Configuration goes here
    β”œβ”€β”€ πŸ“„ index.qmd          # Quarto document containing slides content
    └── πŸ“œ references.bib     # BibTex references
  • Equations are rendered using $ delimiters for inline math and $$ for display math[^4].

  • We can use Divs and Spans from Pandoc.

    • <span>’s: are created by wrapping text in square brackets, and will be treated as a <span> with attributes if it is followed immediately by attributes, e.g.:

      • Example: [This is *some text*]{.class key="val"}

      • idk what I’m doing really, so I mostly find myself doing things like [blue text]{style="color:#1E88E5;"} which produces blue text.

    • <div>’s: are created by wrapping text with a line consisting of at least three colons :::.

      • Example:

        ::: {#special .sidebar}
        Here is a paragraph.
        
        And another.
        :::
      • We can use either attributes in curly braces or a single unbraced word, which will be treated as a class name.

🎁 Install Extensions

Find the full list of available extensions at Quarto Extensions

To install various icon sets used in the example slides, we can install the following extensions:

$ quarto install extension mcanouil/quarto-iconify      # https://icones.js.org/ [<-- Contains rest of icon sets ??]
$ quarto install extension shafayetShafee/bsicons       # bootstrap icons
$ quarto install extension schochastics/academicicons   # OrcID, Google Scholar, ...
$ quarto install extension quarto-ext/fontawesome       # Font Awesome icons

note that these aren’t necessary for functionality, but provide additional icons that I like to use πŸ€·πŸ»β€β™‚οΈ

Metadata

The first section of our index.qmd contains the YAML metadata for the Quarto document.

Explicitly, we see this consists of:

Expand for yaml
---
format:
    revealjs:
        title-block-style: none
        slide-number: c
        title-slide-style: default
        chalkboard:
            buttons: false
        auto-animate: true
        reference-location: section
        touch: true
        pause: false
        footnotes-hover: true
        citations-hover: true
        preview-links: true
        controls-tutorial: true
        controls: false
        logo: 'https://raw.githubusercontent.com/saforem2/anl-job-talk/main/docs/assets/anl.svg'
        history: false
        theme: [dark, css/dark.scss]
        css: [css/default.css, css/callouts.css]
        self-contained: false
        embed-resources: false
        self-contained-math: false
        center: true
        highlight-style: 'atom-one'
        default-image-extension: svg
        code-line-numbers: true
        code-overflow: scroll
        html-math-method: katex
        fig-align: center
        mermaid:
            theme: dark
    gfm:
        output-file: 'lattice23.md'
---

The complete list of Reveal.js options are listed, with descriptions at: Quarto – Revealjs Options

Title Slide

  • Starting with the title slide[^5]:

    FigureΒ 1: Title Slide

    • The full slide contents are included below:

      Expand for quarto
      # {.title-slide .centeredslide background-iframe="https://saforem2.github.io/grid-worms-animation/" loading="lazy"}
      
      ::: {style="background-color: rgba(22,22,22,0.75); border-radius: 10px; text-align:center; padding: 0px; padding-left: 1.5em; padding-right: 1.5em; max-width: min-content; min-width: max-content; margin-left: auto; margin-right: auto; padding-top: 0.2em; padding-bottom: 0.2em; line-height: 1.5em!important;"}
      
      [MLMC: Machine Learning Monte Carlo]{.style="color:#939393; font-size:1.5em; font-weight:bold;}  
      [for Lattice Gauge Theory]{style="color:#777777; font-size:1.2em; font-weight: bold;"}
      [<br>&nbsp;]{style="padding-bottom: 0.5rem;"}  
      [](https://samforeman.me) Sam Foreman  
      [Xiao-Yong Jin, James C. Osborn]{.dim-text style="font-size:0.8em;"}  
      [[[ `saforem2/`](https://github.com/saforem2/)]{style="border-bottom: 0.5px solid #00ccff;"}`{`[[`lattice23`](https://github.com/saforem2/lattice23)]{style="border-bottom: 0.5px solid #00ccff;"}, [[`l2hmc-qcd`](https://github.com/saforem2/l2hmc-qcd)]{style="border-bottom: 0.5px solid #00ccff;"}`}`]{style="font-size:0.8em;"}
      
      :::
      
      ::: footer
      [2023-07-31 @ [Lattice 2023](https://indico.fnal.gov/event/57249/contributions/271305/)]{.dim-text style="text-align:left;'}
      :::
    • For the background, I made a simple animation saforem2/grid-worms-animation that is hosted on GitHub pages as a simple html website

    • This static GitHub page is then used as an IFrame Background natively in Quarto with Reveal.js

    • This is as simple as:

      # {.title-slide .centeredslide background-iframe="https://saforem2.github.io/grid-worms-animation/" loading="lazy"}

Single-Column Slides

Other than the title slide, the remainder of the slides are all relatively straightforward to construct.

For single-column slides, constructing the content is as simple as writing it in Markdown:

Code

# Overview

1. [Background: `{MCMC,HMC}`](#markov-chain-monte-carlo-mcmc)
    - [Leapfrog Integrator](#leapfrog-integrator-hmc)
    - [Issues with HMC](#sec-issues-with-hmc)
    - [Can we do better?](#sec-can-we-do-better)

2. [L2HMC: Generalizing MD](#sec-l2hmc)
    - [4D $SU(3)$ Model](#sec-su3)
    - [Results](#sec-results)
3. [References](#sec-references)
4. [Extras](#sec-extras)

Slide

FigureΒ 2: Overview Slide

Centered Slides

We can center all the text on a slide by adding the {.centeredslide} class to the slide header, e.g.

index.qmd

---
format:
    revealjs:
        theme: [style.scss]
---

# Title {.centeredslide}

style.scss

.centeredslide {
    text-align: center;
}

Multi-Column Slides

Side-by-side content (either text or images)

  • Note that we additionally have a ::: footer element included at the bottom of the slide.

  • The code used to generate the slide above is included below:

    Expand forquarto
    # Markov Chain Monte Carlo (MCMC) {.centeredslide}
    
    :::: {.columns}
    
    ::: {.column width="50%"}
    
    ::: {.callout-note title="Goal" style="text-align:left;!important"}
    Generate **independent** samples $\{x_{i}\}$, such that[^notation]
    $$\{x_{i}\} \sim p(x) \propto e^{-S(x)}$$
    where $S(x)$ is the _action_ (or potential energy)
    :::
    
    - Want to calculate observables $\mathcal{O}$:  
      $\left\langle \mathcal{O}\right\rangle \propto \int \left[\mathcal{D}x\right]\hspace{4pt} {\mathcal{O}(x)\, p(x)}$
    
    :::
    
    ::: {.column width="49%"}
    <img src="/assets/normal_distribution.dark.svg" />
    :::
    
    ::::
    
    If these were [independent]{.style="color:#00CCFF;"}, we could approximate:
    $\left\langle\mathcal{O}\right\rangle \simeq \frac{1}{N}\sum^{N}_{n=1}\mathcal{O}(x_{n})$
    
    $$
    \sigma_{\mathcal{O}}^{2} = \frac{1}{N}\mathrm{Var}{\left[\mathcal{O} (x) \right]}\Longrightarrow
    \sigma_{\mathcal{O}} \propto \frac{1}{\sqrt{N}}
    $$
    
    [^notation]: Here, $\sim$ means "is distributed according to"
    
    ::: footer
    [ `saforem2/lattice23`](https://saforem2.github.io/lattice23)
    :::

πŸ’… CSS

My web developer friend laughs at me, but when something is broken / doesn’t look right / I want it to look different, I:

  1. Pull up Chrome Tools ( ⌘ + βŒ₯ + I )
  2. Inspect element of interest ( ⌘ + ⇧ + C )
  3. Make changes to the CSS
  4. Save the new rule to my .scss file πŸ€·πŸ»β€β™‚οΈ

I’m guessing this might be obvious to some people, but it took me a while to figure out how things worked so maybe its helpful for others.

Expand for css

FigureΒ 4: Example of selecting an element and making a change to the CSS.

πŸ“ƒ GitHub Page

To enable your GitHub page, you can do the following:

FigureΒ 5: Instructions for building a GitHub page using the docs/ directory off the main branch.

In this case, the repo is:

saforem2/lattice23

and the site is published at

https://saforem2.github.io/lattice23

πŸ““ References

Tip

β€οΈβ€πŸ©Ή Status

    Last Updated: 12/22/2025 @ 18:27:29

[^1]: And countless other people IRL

[^2]:
    One thing I’ve been meaning to do, is clean up all my `css/*`
    files and move them all to a single repository, but I’ll save that
    for another day.

[^3]: _An open-source scientific and technical publishing system_

[^4]: [Equations](https://quarto.org/docs/authoring/markdown-basics.html#equations)

[^5]:
    Quarto comes with lightbox support, so you can click on images to
    display them full screen.
NORMAL  main  sam.onl/ posts/dope-slides/index.mdx Β· Top 1:1