From 820320b2634613de5998a7943fecf3f118dc34a4 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Fri, 8 May 2026 18:58:46 -0400 Subject: [PATCH 1/8] Drafting CON talk --- 2026-usrse/talk-proposal-draft.md | 74 +++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 2026-usrse/talk-proposal-draft.md diff --git a/2026-usrse/talk-proposal-draft.md b/2026-usrse/talk-proposal-draft.md new file mode 100644 index 0000000..12f3822 --- /dev/null +++ b/2026-usrse/talk-proposal-draft.md @@ -0,0 +1,74 @@ +# Reuse, Compose, Extend, Standardize: Two Decades of RSEing Open (Neuro)Science at CON + +## Authors + +- Yaroslav O. Halchenko \, Department of Psychological and Brain Sciences, Dartmouth College / Center for Open Neuroscience, ORCID 0000-0003-3456-2493 +- Cody C. Baker \, Center for Open Neuroscience, ORCID TODO +- Austin Macdonald \, Center for Open Neuroscience, ORCID TODO +- Isaac To \, Center for Open Neuroscience, ORCID TODO +- Vadim Melnik \, Center for Open Neuroscience, ORCID TODO + +## Keywords + +reuse, modularity, community standards, federation, reproducibility, distributed data management, neuroinformatics, FAIR, open source, research software engineering + +## Abstract + +For two decades the team of **Center for Open Neuroscience (CON)** has been building an open, and largely domain-agnostic research-software stack — first for neuroimaging, then for neuroscience broadly, now used across various disciplines. +We did it by, at large, repeating four actions: **Reusing** what already exists; **Composing** smaller modules into environments and systems, rather than ship silo-ed monoliths; **Extending** the upstream projects we depend on; and **Standardizing** common "languages" of data we exchanged. +The "Age of AI" doesn't really change anything of that! +It does often help to expedite those actions, but also in turn benefits back from having such modular and transparent structure of the stack to "divide and conquer" the responsibilities, while avoiding duplication of efforts. + +In 15 minutes we walk the layers of that stack and, at each, name one concrete thing the audience can start using **right away**: + +- **Reuse — Systems and Methods.** CON's Yaroslav's first move (~2005) was *not* writing code: it was joining Debian GNU/Linux efforts, with then a new random German on the Internets, later long-time collaborator Michael Hanke, packaging FSL and PyEPL under the **pkg-exppsy** project — the precursor to [NeuroDebian](https://neuro.debian.net/). The lesson set the tone for everything since! [PyMVPA](http://www.pymvpa.org/) (2007) followed: an early reproducible-analysis library shipped with a full test suite and buildbot CI when neither was common in scientific Python and Python itself was not common; today we'd contribute upstream to scikit-learn / nilearn instead. The same instinct lives on in [duecredit](https://github.com/duecredit/duecredit) — embedded scholarly-credit tracking that did *not* reinvent CSL rendering: we built on [citeproc-py](https://github.com/citeproc-py/citeproc-py) and stayed on as co-maintainers when it needed care. **Take home:** before your next project, do one upstream-search pass; add `pytest` + a one-file CI workflow to one repo this week. +- **Reuse → Extend — distributing software.** Most of what NeuroDebian pioneered now flows through Debian Med, Debian Science, and conda-forge. A successful bridge dissolves into the commons. **Take home:** file an ITP at Debian Med or a conda-forge feedstock for a tool you currently distribute by URL. +- **Compose — data management on common substrate.** [DataLad](https://www.datalad.org/) layers reproducible versioning and distribution on top of `git` and `git-annex` — tech everyone already knows. The same substrate scales out through [registry.datalad.org](https://registry.datalad.org/), which federates DataLad datasets across institutions and clouds and provides discovery over **petabytes** of data with no recentralizing platform. **Take home:** convert one shared-data folder into a DataLad dataset. +- **Compose — small acquisition & compute units.** [ReproStim](https://github.com/ReproNim/reprostim), [HeuDiConv](https://github.com/nipy/heudiconv), [NeuroConv](https://neuroconv.readthedocs.io/), and the [ReproNim/containers](https://github.com/ReproNim/containers) collection each tackle one slice of acquisition-to-pipeline reproducibility. [con/duct](https://github.com/con/duct) is the leanest of them — execution monitoring built on brainlife's `smon` plus ideas from [ReproMan](https://github.com/ReproNim/reproman), after we learned ReproMan itself was too heavy for everyday use. *Resist monoliths, even your own.* **Take home:** wrap your next pipeline run in `duct` or in a `repronim/containers` recipe. +- **Standardize — data and metadata.** [BIDS](https://bids.neuroimaging.io/) and [NWB](https://www.nwb.org/) make data exchangeable across labs and vendors; [LinkML](https://linkml.io/) and [concepts.datalad.org](https://concepts.datalad.org/) extend the same idea to *metadata*. Pragmatism is fine in the meantime: DataLad's `run` started with an ad-hoc RUNCMD format and is being generalized into [BEP028](https://github.com/bids-standard/bids-specification) provenance and a BIDS prov exporter. *Ship pragmatic now, formalize upstream later.* **Take home:** validate one of your datasets against a community standard. +- **Standardize at scale — federated archives.** [DANDI](https://dandiarchive.org/), [EMBER](https://emberarchive.org/), and [OpenNeuro](https://openneuro.org/) put real data online at population scale, all built on the standards above and discoverable through the same federation pattern. *Federation is what lets a small RSE center reach population scale.* +- **Reuse, in reverse — cross-platform tracking.** [AnnexTube](https://github.com/con/annextube) and `mykrok` pull research outputs back from commercial platforms (YouTube, Google) into the same `git`+`git-annex` substrate. *Your data is yours, even when someone else hosts it.* +- **For HI and AI.** All of the above stays self-contained, well-described, and openly shared — equally legible to **HI** (human investigators) and **AI** agents. The "T" of our [STAMPED](https://stamped-principles.org/) principles (Tracked) extends naturally to AI sessions and AI↔human attribution (a thread we will pick up in a separate BoF), but every layer below is what makes AI-era reproducibility tractable rather than aspirational. + +We close with a one-slide **Monday checklist** of five concrete actions distilled from above — none requires neuroscience, all work today. + +## References + +1. *DataLad: distributed system for joint management of code, data, and their relationship.* Halchenko et al. JOSS 2021. +2. *The Brain Imaging Data Structure (BIDS).* Gorgolewski et al. Sci. Data 2016. +3. *Neurodata Without Borders (NWB).* +4. *DANDI Archive.* +5. *OpenNeuro: An open resource for sharing of neuroimaging data.* Markiewicz et al. eLife 2021. +6. *EMBER Archive.* +7. *ReproNim: A center for reproducible neuroimaging computation.* (NIH NIBIB P41 EB019936) +8. *PyMVPA.* +9. *NeuroDebian.* Halchenko & Hanke. Front. Neuroinform. 2012. +10. *duecredit — automated scholarly credit tracking.* ; *citeproc-py.* +11. *con/duct — small process-execution monitor.* +12. *DataLad Registry.* +13. *BEP028 — BIDS provenance.* +14. *LinkML.* ; *DataLad Concepts.* +15. *AnnexTube.* +16. *STAMPED principles.* +17. *con/serve — Digital Research Artifact Archive.* +18. *Distribits — distributed-data community.* +19. *Center for Open Neuroscience.* + +## Connection to Mission, Goals, & Interests of US-RSE Community + +CON is, by construction, a prototypical US-RSE organization: a small team of full-time research software engineers (five "centroids") whose job is to design, ship, and steward open infrastructure used by domain scientists they do not directly report to. Almost everything we build or co-build — pkg-exppsy/NeuroDebian, PyMVPA, DataLad, duecredit, HeuDiConv, NeuroConv, ReproMan, con/duct, registry.datalad.org, BIDS/NWB/LinkML extensions, the STAMPED principles, and now `con/serve` — was scoped from the outset to be **domain-agnostic**, even when first motivated by neuroimaging. RSEs in genomics, geosciences, HPC, and digital humanities already use them; the talk makes those entry points explicit. + +The talk's title verbs are also its takeaways for the US-RSE audience: + +- **Reuse.** Whenever an upstream existed or could be grown, we joined it: pkg-exppsy/NeuroDebian → Debian, PyMVPA's intent → scikit-learn / nilearn, duecredit → citeproc-py, DataLad → `git`+`git-annex`, con/duct → brainlife's `smon`. The cheapest reproducible thing is the one you didn't have to build. +- **Compose.** `con/duct` is small on purpose; ReproStim / HeuDiConv / NeuroConv / ReproNim-containers each do one job; `registry.datalad.org` federates rather than recentralizes; BIDS, NWB, and LinkML are independent building blocks that can be picked up à la carte. +- **Extend.** When the commons we depend on needed care, we stayed on as maintainers (citeproc-py), generalized our ad-hoc work upstream (RUNCMD → BEP028 + BIDS prov exporter), and pushed packages into Debian Med / Debian Science / conda-forge so others could re-use them in turn. +- **Standardize.** Common tech (`git`), common data standards (BIDS, NWB), and common metadata standards (LinkML, concepts.datalad.org) so RSEs across fields can read each other's work — and so AI agents can too. + +We embody the bridging role US-RSE foregrounds: + +- **RSE ↔ engineering industry.** Sustained collaboration with **Kitware** on NWB browse/analyze/visualize tooling — a textbook example of an academic RSE center partnering with a non-academic engineering shop. +- **RSE ↔ domain scientists.** Direct co-development with neuroscience labs at Dartmouth, Stanford (OpenNeuro), Allen Institute (NWB/DANDI), and FZ Jülich. +- **RSE ↔ global RSE community.** We help organize [distribits.live](https://www.distribits.live/), bringing DataLad-adjacent practitioners across continents into one room — a model other RSE sub-communities can copy. + +For the US-RSE audience the talk offers (a) a concrete, layer-by-layer tour of reusable infrastructure, (b) a working example of a multi-institutional RSE center sustained for over a decade through NIH P41 and collaborator funding, and (c) a Monday checklist that does not assume anything neuroscience-specific. From 6727943abfbb17b2510d60a59952119b55e12085 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Sat, 9 May 2026 12:44:59 -0400 Subject: [PATCH 2/8] few more links and fixups --- 2026-usrse/talk-proposal-draft.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2026-usrse/talk-proposal-draft.md b/2026-usrse/talk-proposal-draft.md index 12f3822..08d5388 100644 --- a/2026-usrse/talk-proposal-draft.md +++ b/2026-usrse/talk-proposal-draft.md @@ -48,10 +48,10 @@ We close with a one-slide **Monday checklist** of five concrete actions distille 12. *DataLad Registry.* 13. *BEP028 — BIDS provenance.* 14. *LinkML.* ; *DataLad Concepts.* -15. *AnnexTube.* +15. *AnnexTube.* (demo: ); *mykrok.* (demo: ) 16. *STAMPED principles.* 17. *con/serve — Digital Research Artifact Archive.* -18. *Distribits — distributed-data community.* +18. *Distribits — Technologies for distributed data management (conference & community).* 19. *Center for Open Neuroscience.* ## Connection to Mission, Goals, & Interests of US-RSE Community From 173a7819c210ac1047f797d2eaf28fb074ad1ddb Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Sat, 9 May 2026 13:36:19 -0400 Subject: [PATCH 3/8] ORCIDs (by claude from CON website...) --- 2026-usrse/talk-proposal-draft.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/2026-usrse/talk-proposal-draft.md b/2026-usrse/talk-proposal-draft.md index 08d5388..149d7ae 100644 --- a/2026-usrse/talk-proposal-draft.md +++ b/2026-usrse/talk-proposal-draft.md @@ -3,10 +3,10 @@ ## Authors - Yaroslav O. Halchenko \, Department of Psychological and Brain Sciences, Dartmouth College / Center for Open Neuroscience, ORCID 0000-0003-3456-2493 -- Cody C. Baker \, Center for Open Neuroscience, ORCID TODO -- Austin Macdonald \, Center for Open Neuroscience, ORCID TODO -- Isaac To \, Center for Open Neuroscience, ORCID TODO -- Vadim Melnik \, Center for Open Neuroscience, ORCID TODO +- Cody Baker \, Department of Psychological and Brain Sciences, Dartmouth College / Center for Open Neuroscience, ORCID 0000-0002-0829-4790 +- Austin Macdonald \, Department of Psychological and Brain Sciences, Dartmouth College / Center for Open Neuroscience, ORCID 0000-0002-8124-807X +- Isaac To \, Department of Psychological and Brain Sciences, Dartmouth College / Center for Open Neuroscience, ORCID 0000-0002-4740-0824 +- Vadim Melnik \, Department of Psychological and Brain Sciences, Dartmouth College / Center for Open Neuroscience, ORCID TODO (not listed on CON site) ## Keywords From a0e23f7284fb05df79321478a3a7e69dc32ea040 Mon Sep 17 00:00:00 2001 From: Yaroslav Halchenko Date: Sat, 9 May 2026 17:53:46 -0400 Subject: [PATCH 4/8] AInstructions --- CLAUDE.md | 215 ++++++++++++++++++++++++++++ INDEX.md | 380 +++++++++++++++++++++++++++++++++++++++++++++++++ SOUL.md | 413 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1008 insertions(+) create mode 100644 CLAUDE.md create mode 100644 INDEX.md create mode 100644 SOUL.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..dbcac59 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,215 @@ +# CLAUDE.md — guidance for authoring & curating CON talks + +This file is loaded automatically when you (Claude / Claude Code) work in +this repository. It complements: + +- **`SOUL.md`** — *what* CON talks are about, voice, visual style, fixed + metadata, citation conventions, and the recurring story arcs. +- **`INDEX.md`** — *which slides exist already* and how to find them per + topic and per talk. + +Read both before authoring or editing a deck. Treat them as the source of +truth for cross-talk decisions. + + +## Repository layout (relevant subset) + +``` +README.md — repo overview, build/PDF instructions +SOUL.md — mission, voice, visual identity, references +INDEX.md — talk-by-talk catalog + topic lookup +CLAUDE.md — this file: how to author & curate +LICENSE — CC-BY-SA +gulpfile.js, package.json — npm/gulp setup for `npm start` live reload +css/custom.css — small site-wide CSS overrides +reveal.js/ — vendored reveal.js (do not modify) +reveal.js-mermaid-plugin/ — vendored mermaid plugin +pics/ — all images (canonical assets are listed in SOUL §4) +pics/borrowed/ — third-party images +3rd-party/ — third-party PDFs cited in slides +embed/ — small HTML iframes referenced by some decks +posters/ — poster sources (separate flow) +2026-usrse/ — venue-specific drafts: proposal, BoF/poster templates, + lineage diagrams +2026-ohbm-ossig/ — OHBM Open Science Room submission +2026-repronim-YODA-BIDS-webinar/ — companion notes/planning to that deck +2026-ca-origami-retreat-aicoding/ — planning + per-slide screenshots for that deck +.html — top-level reveal.js decks +``` + +`` follows `--` (or with a trailing +`-name`/`-aicoding` for sub-decks at the same venue). The published mirror +is `https://datasets.datalad.org/centerforopenneuroscience/talks/.html`. + +The repo is a [DataLad](https://datalad.org/) dataset (note `.datalad/`, +`.gitattributes`); commit binary assets via DataLad if introducing new +ones. For text-only edits to existing HTML, plain `git` is fine. + + +## Workflow for creating a new deck + +1. **Decide the arc** (`SOUL.md` §7) — Origin/Stack/Today, Challenges/ + Solutions/Take-home, YODA-principle-a-day, Nirvana, AI-ladder, or + Reuse/Compose/Extend/Standardize. Copy the spine, then customize. +2. **Pick the parent deck** for that arc from `INDEX.md` (e.g. for a + data-archives talk, start from `2023-brain-dandi.html` or + `2023-lbl-building-dandi.html`). +3. **Create `.html`** at the repository root. Use the parent + deck as a starting point — `cp` it and edit, or assemble fresh from + the title-slide template in `SOUL.md` §3. +4. **Set the standard reveal.js header** with theme `beige`, the four + plugins (Markdown / Highlight / Notes / Mermaid), `1400×1050` canvas, + and the `Reveal.initialize` block matching `SOUL.md`. +5. **Title slide**: CON letterhead → title → social handles → CON/PBS/ + CCN/Dartmouth affiliations → QR code (see "QR codes" below) → venue + + date + live-slides URL → logo strip with the Ukraine ribbon last. +6. **Pull reusable slides** by copying full `
` elements from + the talk file referenced in `INDEX.md`. Adjust hyperlinks but keep + `data-src="pics/..."` paths verbatim — all decks share the `pics/` + tree. +7. **End with**: + - one or more "Take-home" / "Monday checklist" slides; + - an Acknowledgements slide (the canonical layout is in + `2024-distribits-datalad.html`); + - a final "Thank you!" slide. Yoda-SVG sign-off is appropriate when + the deck has YODA flavoring. +8. **Test** the deck by opening it in a browser. For a development + loop, `npm install` then `npm start` per `README.md`. +9. **Update `INDEX.md`** with the new deck (per-talk entry + any + topic-lookup additions). +10. **Commit** the new deck *and* the QR code *and* the `INDEX.md` + update together. Use the repo's git workflow (DataLad-managed). + +### QR codes + +The live-slides URL is **fully determined by the deck filename**: + +``` +https://datasets.datalad.org/centerforopenneuroscience/talks/.html +``` + +so the QR code can (and should) be generated **at deck-creation time** +— do not wait for "after publishing". The same URL is already hard-coded +into the title-slide template, and every older deck in the corpus +follows this convention (e.g. +`pics/2024-distribits-datalad-qrcode.png`, +`pics/2025-distribits-YODA-qrcode.png`, +`pics/2026-repronim-YODA-BIDS-webinar-qrcode.png` — open any of them +side-by-side with the title slide of the matching `*.html` deck to +confirm). + +Save as `pics/-qrcode.png` and reference it from the title +slide ``. The repo's already-generated QR PNGs were produced with +the `qrcode` Python package (which also installs a `qr` CLI). Install +once with `uv` (do **not** forget `--with pillow` — without it `qr` +fails at import-time with `ModuleNotFoundError: No module named 'PIL'`): + +```bash +uv tool install qrcode --with pillow +``` + +Then for each new deck: + +```bash +TALK_ID=2026-usrse-con-talk +URL=https://datasets.datalad.org/centerforopenneuroscience/talks/${TALK_ID}.html +qr "$URL" > pics/${TALK_ID}-qrcode.png +``` + +The default output is a ~490×490 1-bit PNG, which is what the older +title slides reference. `qrencode` from your distro works too if it's +installed. + +The PNG itself is binary; commit it via DataLad +(`datalad save -m '+ qrcode for ' pics/-qrcode.png`). + +### Subdirectory conventions + +- Companion notes (planning, per-slide screenshots, companion + TODO files) live in a directory matching the deck name without the + `.html` extension, e.g. `2026-ca-origami-retreat-aicoding/`. +- Long-running drafts of submissions, BoFs, posters, etc. live under + the venue directory (e.g. `2026-usrse/`). +- Do **not** introduce a new top-level subdirectory just for one talk. + +## Workflow for curating / editing existing decks + +- **Small fix** (typo, link rot): edit in place, commit a focused diff. +- **Adding a new slide**: prefer copying a similarly-structured slide + from a sibling deck (consult `INDEX.md`) over inventing layout from + scratch. Reveal.js's section-vertical structure is touchy; cargo-cult + carefully. +- **Updating a citation**: keep the small/`` blockstyle from + `SOUL.md` §5; bold the speaker's name; link the DOI directly. +- **Refreshing a screenshot**: drop into `pics/` with a date suffix + (e.g. `datasets.datalad.org-20251021.png`). Don't delete the older + one — older decks still reference it. +- **Yanking a slide for reuse**: copy the *entire* `
...
` + block, then walk through any `class="fragment"`, `data-fragment-index`, + `data-transition` attributes — they are usually fine but occasionally + need to be adjusted to fit the new local context. + +## Authoring conventions to match the existing corpus + +- **Use `data-src` for ``**, not `src`. Reveal.js lazy-loads on + approach. +- **Reveal markdown sub-decks** — use them for content-heavy sections: + ```html +
+ +
+ ``` +- **Mermaid diagrams** — wrap in `
` + and stay within widely-supported flavors (`flowchart`, `gitGraph`, + `graph TB|LR`). Newer decks set theme variables per-diagram. +- **Speaker notes** — ``. Fine to be + long; press `s` to view in reveal.js. +- **Section dividers** — soft radial gradient + (`
`) + for "Challenge:" intros. +- **No new CSS files** — augment `css/custom.css` if you must, but + inline-style most layout tweaks (matching the existing decks). +- **No emojis** in slide text unless the deck already uses them + (the corpus does not, except in occasional small flourishes). + +## What goes where in this folder + +| If you're producing… | Put it in… | +| --- | --- | +| New slide deck | `.html` at repo root | +| QR code image for the deck | `pics/-qrcode.png` | +| Per-deck planning notes / screenshots | `/` directory | +| Venue-specific submission docs (PRD, BoF, poster, abstract) | `/` (e.g. `2026-usrse/`) | +| New reusable image | `pics/` (or `pics/borrowed/` if third-party) | +| New citation PDF | `3rd-party/` | + +## Don't do these + +- Don't switch the reveal.js theme. **`beige`** is the visual identity. +- Don't introduce a build step in a deck (each `.html` must be + openable as a single file). +- Don't move or rename existing `.html` files — published live + links depend on the URL. +- Don't add a new top-level subdirectory for slides; keep decks at the + root and notes in a sibling directory named after the deck. +- Don't `git rm` historical assets from `pics/` — older talks reference + them. +- Don't write new English-language documentation files at the root + unprompted. The three docs (`SOUL.md`, `INDEX.md`, `CLAUDE.md`) plus + the existing `README.md` are intentional. Use `/PLAN.md`, + `TODO.md`, etc., per existing companion-notes convention. + +## When the user says "draft a talk for X" + +A reasonable flow: + +1. Skim `SOUL.md` to anchor on style. +2. Pick the arc (`SOUL.md` §7) and parent deck (`INDEX.md`). +3. Search `INDEX.md`'s topic-lookup for matching reusable slides. +4. Produce `.html` (and the companion `/PLAN.md` if + the deck warrants one). +5. Update `INDEX.md` with the new talk's entry. +6. Surface a list of slides borrowed (with source `:
` + pointers) so the user can sanity-check sourcing. diff --git a/INDEX.md b/INDEX.md new file mode 100644 index 0000000..58ab36e --- /dev/null +++ b/INDEX.md @@ -0,0 +1,380 @@ +# INDEX — talks and reusable slides + +A catalog of every talk in this repository plus a topic-wise lookup of +*where to copy slides from* when authoring a new deck. Pair this file +with `SOUL.md` (mission/style) and `CLAUDE.md` (authoring workflow). + +Slide IDs use the form `#section-[/sub-]` where `n` counts +**top-level `
`** elements in the source file (1-based). When a +top-level section has vertical sub-slides, `sub-m` counts those (1-based). +This matches reveal.js's URL-fragment numbering: `#//`. + + +## Per-talk inventory + +### `2026-usrse-con-talk.html` — *Reuse, Compose, Extend, Standardize: Two Decades of RSEing Open (Neuro)Science at CON* *(draft)* +- **Venue / date**: US-RSE'26 (proposal-stage draft). +- **Spine**: the four-verb spine (Reuse / Compose / Extend / Standardize) plus a "Reuse, in reverse" coda and an HI+AI close. +- **Reusable highlights**: + - Title slide (per `SOUL.md` §3). + - "Two decades, four verbs" intro slide (NEW). + - "When it began for us" verb-tagged timeline (NEW; extension of `2024-distribits-datalad.html` § timeline). + - Reuse: NeuroDebian + PyMVPA blocks borrowed from `2022-nih-compcore.html`. + - Compose: DataLad sandwich mermaid + extensions diagram from `2024-distribits-datalad.html`; registry stats from `2025-distribits-YODA.html`; small-units table referencing ReproIn / HeuDiConv / ReproStim / NeuroConv / ReproNim-containers / con/duct. + - Extend: a NEW "From RUNCMD to BEP028" mermaid summarizing the upstream-lift pattern. + - Standardize: BIDS slide + BIDS-minder image (from `2023-bids-dicom.html`) + LinkML/concepts.datalad.org bullets. + - Federated archives slide (DANDI + EMBER + OpenNeuro) with DANDI deep-dive borrowed from `2023-brain-dandi.html`. + - "Reuse, in reverse" 3-up table (AnnexTube / mykrok / con/serve). + - HI+AI section pointing to `2026-ca-origami-retreat-aicoding.html`. + - Monday checklist (NEW; 5-action wrap-up). + - Acknowledgements + Yoda SVG sign-off. +- Notes: drafted in support of `2026-usrse/talk-proposal-draft.md`. + Companion files in `2026-usrse/`. QR code TBD; uncomment the + `data-src` line in the title slide once the live URL is published. + +### `2026-ca-origami-retreat-aicoding.html` — *A few words of intro into AI assisted coding* +- **Venue / date**: CA Origami Retreat 2026. +- **Spine**: AI-coding ladder + spec-driven workflow + CON tools. +- **Reusable highlights**: + - Title slide with Avogadro Corp book reference (intro hook). + - "Reality Check" disclaimer slide (idiocracy GIF). + - YODA-Beyond-Code-and-Data table (traditional vs. expanded YODA scope). + - `con/serve` "The Vault" mermaid diagram (inbound / hub / outbound). + - **AI Coding Maturity Ladder** Levels 1–5 (Chat → Mid-loop → In-the-loop → + On-the-loop → Multi-agent). + - 5-Stage Development Loop mermaid. + - Mapping table: Vibe coding vs. Spec-driven vs. Compound engineering. + - Spec-driven tools ecosystem table (spec-kit / OpenSpec / Compound / + LAD). + - AI-assisted projects table (mykrok, AnnexTube, con/serve, + citations-collector, dandi-cli). + - Reusable-skills table (con/skills repo). +- Notes: planning notes in `2026-ca-origami-retreat-aicoding/PLAN.md`, + rendered checkpoint screenshots in the same directory. + +### `2026-repronim-YODA-BIDS-webinar.html` — *ReproFlow & YODA: Structure your studies* +- **Venue / date**: ReproNim Webinar, 2026-02-06. +- **Spine**: YODA principle-by-principle deep dive with BIDS framing. +- **Reusable highlights**: + - The full YODA principles canon (`yoda-principles-reordered.png`). + - Principle 1: Version control everything — `Why version control?` + table with PhD Comics 1531; VCS-as-experiment slides; `datalad run` + walk-through; `datalad rerun`; "datalad runs in the wild" registry + statistics; `git-annex addcomputed`; `con/duct`. + - Principle 2: Portable compute environments — software-container + families; `datalad-container`; `ReproNim/containers`; + `datalad containers-run`; clean-record CEREBRA/MRIQC. + - Principle 3: Modular composition — modules-and-layouts ladder; + BIDS as layout; OpenNeuroDerivatives walkthrough. + - "Look up you must not!" corollary slide + (`pics/yoda-do-not-look-up.png`, + `pics/depends-on-untracked-file.png`). + - Reality Check / disclaimer slide pattern. +- Notes: companion materials in + `2026-repronim-YODA-BIDS-webinar/{notes,planning}/`. + +### `2025-distribits-YODA.html` — *Pragmatic YODA: principles and their wild life encounters* +- **Venue / date**: distribits 2025, recorded + . +- **Spine**: same YODA spine as the 2026 ReproNim webinar — older but + shorter; many slides identical and reused there. +- **Reusable highlights**: see ReproNim entry above; this is the *parent* + of that deck. Use either as a source for YODA section material. + +### `2025-ca-origami-retreat.html` — *A challenge on the way to Neuroscience Nirvana: WORKAROUNDS!* +- **Venue / date**: CA Origami Retreat 2025. +- **Spine**: Nirvana / archives / make-re-use-convenient framing. +- **Reusable highlights**: + - WordNet "nirvana" definition pre block. + - "Where data go to die / how data are reincarnated" Q-and-A slides + (Buddha background). + - "What makes data re-use INconvenient?" two-slide pair (data bugs; + ad-hoc data access; opinionated software) with bug / feed-me cartoons. + - "What allows to make data re-use convenient?" — Standards (BIDS) and + Validation (BIDS). + - "What if standard does not (yet) fill the bill?" + - Closing "talk in BIDS" Nirvana slide. + +### `2024-distribits-datalad.html` — *"What's in the DataLad sandwich" AKA the DataLad ecosystem* +- **Venue / date**: distribits 2024. +- **Spine**: DataLad origin → sandwich layering → ecosystem → CI / health. +- **Reusable highlights**: + - "When it began for us" timeline (git → PyMVPA → GitHub → + git-annex → DataLad first commits). + - First use case: arjlover crawler → website-crawler-born mermaid. + - "From an email to a proposal" Joey-email screenshot timeline. + - "More layers to the sandwich" mermaid (datalad → git-annex → + git-annex-remote-archives → git-annex → git-annex-remote-datalad). + - DataLad crawler pipeline gitGraph (incoming → processed → master). + - DataLad realizations & shortcomings checklist. + - DataLad **extensions** mechanism + extension template + initial + extension graph. + - DataLad core "what it is" definition slide with JOSS citation. + - DataLad Extensions & Their Health (`pics/datalad-extensions.png`). + - DataLad Handbook overview (3-row table). + - "DataLad fulfilled original promise of a Data Distribution" + (`datasets.datalad.org` snapshot). + - Examples-of-use: OpenNeuro, brainlife, CONP infrastructure use; + YODA + ReproNim/containers; DANDI alternative view + Dropbox. + - "DataLad ecosystem" `DataLad-minder.svg` figure. + - **CI / testing / monitoring stack**: DataLad-all-changes-are-tested, + extensions tested daily, git-annex daily, daily-status-email, + `con/tinuous` archives, datalad-installer. + - Acknowledgements slide with funders + collaborators. + +### `2024-distribits-datalad-name.html` — *"What's in the DataLad name" AKA How come DataLad?* +- **Venue / date**: distribits 2024 (lightning). +- **Spine**: just the naming history (datagit → ftf → datalad). +- **Reusable highlights**: name-history single-slide timeline (good + warm-up / origin-story slide). + +### `2023-brain-dandi.html` — *DANDI: distributed archives for neurophysiology data integration* +- **Venue / date**: BRAIN Initiative talk, 2023. +- **Spine**: archive challenge → DANDI ingredients → standards → testing. +- **Reusable highlights**: + - "Challenge: Develop a BRAIN Initiative Archive" (radial-gradient + section divider). + - "Where data go to die" → DANDI born. + - "What data is in DANDI" `dandi-slide-modalities.svg`. + - "Data chronology and demographics" + `20230622-NWB-and-DANDI-tutorial-updates.svg`. + - "Ingredients needed to build an archive" — People / Standards / + Technologies / FOSS / Automations. + - DANDI users by role (submitter / researcher / developer SVGs). + - DANDI integrates standards (`20210421-INCF-dandischema.svg`). + - DANDI ecosystem (`DANDI-ecosystem.svg`). + - **Testing the entire archive**: docker-compose; DataLad-mirroring + of dandisets; `con/tinuous`; webshots; trivial IO across all + dandisets (`dandisets-healthstatus.png`). + - "DANDI ..." final summary bullets (modular FOSS, integrates, + novel-tech adoption, automated QA). + +### `2023-lbl-building-dandi.html` — *Building an Archive for Large-scale Neuroscience Data* +- **Venue / date**: LBL talk, 2023. +- **Spine**: same as `2023-brain-dandi.html` but longer; with a Brief + Bio section for general-audience framing. +- **Reusable highlights**: see DANDI entries above; this is the larger + parent deck. Includes: + - "Brief Bio" slide (Born in Siberia → Ukraine → US trajectory). + - "Standard for neurophysiology data: NWB" slide. + - "Standards make DANDI FAIR for People" slide. + - DANDI schema deeper-dive (`dandi-slide-schema.svg`). + +### `2023-bids-dicom.html` — *BIDS 4 DICOM WG-16* +- **Venue / date**: DICOM WG-16 meeting, 2023. +- **Spine**: BIDS as a meta-standard, and where BIDS ↔ DICOM + collaboration could go. +- **Reusable highlights**: + - "Brief Bio" (variant). + - BIDS-Steering iframe slide. + - "Standard for neural datasets: BIDS" with the 2016 BIDS Sci Data + citation (canonical citation slide). + - "BIDS ..." features bullets, including "you've seen one BIDS dataset + you've seen them all". + - BIDS-minder upstream-images slide + (`bids-standard.github.io/.../BIDS-minder.svg`). + - DICOM ↔ BIDS chronology (1982 DICOM → 2014 BIDS). + - Clunie MICCAI 2017 5-image fragments (data is in `pics/2017-Clunie-*.png`). + - **"All standards are 'Bad', but some are used"** — recurring + rhetorical slide. + - DICOMs in BIDS workflow (sourcedata, .json sidecars, BEP019, PR#1450). + +### `2023-brain-dandi-imgdatasrc.html` — short DANDI talk +- Tiny deck (86 lines), title-only template; safe to ignore as source. + +### `2022-nih-compcore.html` — *An Integrated and Trusted Scientific and Statistical Computing Core* +- **Venue / date**: NIH SSCR pitch, 2022. +- **Spine**: trust → noise → human IO → standards → FOSS distribution + → data management → archive → all the projects in one walk. +- **Reusable highlights**: + - Yarik-goal cartoon (`pics/yarik-goal.svg`) — the "north star". + - "Brief Bio" slide (canonical version; reused in 2023 talks). + - CON principles (`con-principles.png`) — used in title slides. + - **"Integration & Trust Tiers"** ladder (Social / Data acquisition / + Methods/Analytics / Software systems / Data management / Services). + - "Trust is largely a social aspect" framing slides. + - "How can we minimize unexplained variance?" — minimize-human-IO + bullets, simulations, assertions, peer-review, provenance, re-use. + - **3rd-party / "God-is-at-the-computer"** slide (recursive trust). + - Phantom QA / Nuisance study figure (F1000 2020 citation). + - **ReproNim 5 steps** (`pics/repronim-5steps.png`, + ). + - OBC (Open Brain Consent) born-in-2014 slide; outcomes; OBC tools. + - "Challenge: minimize human IO to understand data" → BIDS → BIDS-Apps. + - **ReproIn / HeuDiConv** sequence-naming → automated BIDS slides. + - **Beyond ReproIn**: ReproStim / ReproEvents / con/noisseur. + - "Challenge 2007: no ML framework" → **PyMVPA** features / + classification / searchlight / hyperalignment / TRANSFusion; + PyMVPA-on-phone deployment punchline. + - **NeuroDebian** born-2009 slide; integration figure; + user-perspective figure; `nd_overview.svg` developer view; benefits + bullets (Conda-Forge / Fedora / Gentoo handoff, + "Containerization comes for free"). + - **DataLad-in-one-figure** (`pics/datalad_process_tuned/00base_preview.png`). + - Provenance capture: 3-step `datalad run` / `datalad containers-run` + / `datalad rerun` code blocks. + - **Extend DataLad** extensions overview. + - DataLad CI / health (testing-extensions / git-annex daily / + `con/tinuous` archive). + - "In DataLad We Trust" + decentralized RDM citation. + - **DANDI**-section duplicate (modalities / services / standards / + schema / "Webshots of all dandisets"). + - Closing "Integrated and Trusted" bullet manifesto. +- This deck is the **richest single source** of reusable CON-history + material — borrow heavily for any retrospective talk. + +### `2022-tx-big-neuroscience.html` — *Towards the Big Data Neuroscience Nirvana* +- **Venue / date**: ACNN Workshop 2022 (Texas). +- **Spine**: Nirvana / archives / making re-use convenient + DataLad CI + health quick tour. +- **Reusable highlights**: prototype of the Nirvana arc later refined in + `2025-ca-origami-retreat.html`. Includes "Big Data" section, the + largest-Git-repo / `datasets.datalad.org` snapshot, the for-users / + for-developers slide pair, and DataLad / extensions / git-annex daily + validation triplet. + +### `0000-zoom-background.html` — Zoom background slide template +- Not a talk; layout source for sharing CON banner during Zoom. + +## Topic-wise lookup + +Use these as a fast "where do I steal a slide for X?" cheat sheet. + +### Reuse / upstream contribution / NeuroDebian +- `2022-nih-compcore.html` § "NeuroDebian from user perspective", § "Under-the-hood for a NeuroDebian developer", § Overall benefits. +- `2024-distribits-datalad.html` § "git-annex is built and tested daily", § datalad-installer, § acknowledgements. +- *Asset*: `pics/neurodebian*.{png,svg}`, `pics/nd_overview.svg`, + `pics/neuropy_history.svg`. + +### Compose / DataLad ecosystem / sandwich layering +- `2024-distribits-datalad.html` § Sandwich mermaid, § Extensions + template, § DataLad ecosystem (`DataLad-minder.svg`), § "DataLad for + developers". +- `2022-nih-compcore.html` § Provenance + extensions list. +- *Asset*: `pics/DataLad-minder.svg`, `pics/datalad-extensions.png`, + `pics/tall-burger.png`, `pics/datalad_process_tuned/`. + +### Compose / small acquisition+compute units (HeuDiConv / ReproStim / +ReproNim-containers / con/duct / ReproMan) +- `2022-nih-compcore.html` § ReproIn / HeuDiConv / Beyond-ReproIn. +- `2025-distribits-YODA.html` § "datalad-container", § "ReproNim/ + containers" walkthrough, § ReproMan reference. +- `2026-repronim-YODA-BIDS-webinar.html` § same Principle 2 section. +- `2025-distribits-YODA.html` § con/duct; § "datalad runs in the wild"; + § `git-annex addcomputed`. +- *Asset*: `pics/webshot-repronim-containers.png`, + `pics/repronim-containers-{workflow,show,yoda-lower}.png`, + `pics/webshot-con-duct.png`, `pics/screenshot-duct-*.png`, + `pics/duct-mriqc-cerebra.png`, `pics/borrowed/reproin-logo.jpg`. + +### Extend / standards work / BIDS BEPs +- `2023-bids-dicom.html` § BIDS features, § BIDS-minder, § DICOMs-in-BIDS + workflow, § "All standards are bad, but some are used". +- `2022-nih-compcore.html` § Microscopy-BIDS citation. +- *Asset*: `pics/BIDS-minder.svg`, `pics/bids-logo-wide.png`, + `pics/bids-yoda.png`, `pics/bep028-example1.png`. + +### Standardize / data archives / DANDI / OpenNeuro / federation +- `2023-brain-dandi.html` (whole deck) — best DANDI walkthrough. +- `2023-lbl-building-dandi.html` — extended version. +- `2024-distribits-datalad.html` § DANDI alternative-view slide; + § OpenNeuro infrastructure use. +- *Asset*: `pics/dandi-slide-{modalities,services,standards,schema}.svg`, + `pics/DANDI-{ecosystem,FAIR,users-*}.svg`, + `pics/dandiarchive-webshots.png`, `pics/dandisets-healthstatus.png`. + +### YODA principles + "Look up you must not" +- `2025-distribits-YODA.html` and `2026-repronim-YODA-BIDS-webinar.html` + — full YODA spine. +- *Asset*: `pics/yoda*.{png,svg}`, `pics/principle-{vcs,computeenv, + structure}.png`, `pics/depends-on-untracked-file.png`, + `pics/yoda-hierarchy-with-containers.png`, + `pics/yoda-do-not-look-up.png`, `pics/yoda-all-the-way-down.png`. + +### Provenance / `datalad run` / `datalad rerun` / RUNCMD → BEP028 +- `2025-distribits-YODA.html` and `2026-repronim-YODA-BIDS-webinar.html` + § Principle 1. +- `2022-nih-compcore.html` § Provenance capture (3 code-block slides). +- `2024-distribits-datalad.html` § DataLad crawler gitGraph. + +### CI / con/tinuous / daily-tested git-annex / health dashboards +- `2024-distribits-datalad.html` § three-image stack of + PR-test screenshots; daily-status email iframe; `con/tinuous`. +- `2023-brain-dandi.html` § identical CI slides re-used for DANDI. +- `2022-nih-compcore.html` § "PART of an answer: AUTOMATION" + 3 + testing slides. +- *Asset*: `pics/con-tinuous-{github,term,term-dandi-cli}.png`, + `pics/datalad-extensions.png`, `pics/datalad-git-annex.png`, + `pics/webshot-datalad-installer.png`, + `pics/datalad-daily-status-email-subject.png`, + `embed/datalad_git-annex_daily.html`. + +### Trust / accountability / variance / phantom QA / OBC +- `2022-nih-compcore.html` § "Trust is largely social", § Nuisance + study, § ReproNim 5 steps, § OBC born/outcomes/tools. +- *Asset*: `pics/god-is-at-the-computer.jpg`, + `pics/MRI-scanner.png`, `pics/f1000-webshot-20200930*.png`, + `pics/repronim-5steps.png`, `pics/OBC_LogoCheck.svg`, + `pics/obc-{main,ultimate,tools}.png`. + +### PyMVPA / "we ported the intent upstream" +- `2022-nih-compcore.html` § PyMVPA Features → searchlight → + hyperalignment → TRANSFusion → "phone deployment". +- *Asset*: `pics/pymvpa*.png/svg`, + `pics/pymvpa_logo_fromfusionposter.svg`, + `pics/pymvpa_on_phone.jpg`, + `pics/uniform_analysis.svg`. + +### "Make re-use convenient" / Nirvana framing +- `2025-ca-origami-retreat.html` — full deck. +- `2022-tx-big-neuroscience.html` — original. +- `2023-brain-dandi.html` § "Where data go to die". + +### AI angle / HI+AI / AI-coding ladder / con/serve +- `2026-ca-origami-retreat-aicoding.html` — full deck. +- `2026-repronim-YODA-BIDS-webinar.html` § hand-off to AI talk + (Appendix-style slide referenced from the AI talk's "Previously on…"). +- *Asset*: `pics/borrowed/ai-ladder-skills.png`, + `pics/borrowed/2026-ai-intensifies.png`, + `pics/surface-depth-v2.jpg`, `pics/borrowed/idiocracy-fixed.gif`. + +### CON identity / acknowledgements / funders +- `2024-distribits-datalad.html` final acknowledgements slide is the + canonical layout: software → some-slides-origin → Funders → Collaborators. +- `2022-nih-compcore.html` § "Trust ladder" CON banner. +- *Asset*: `pics/con-{principles,ack-*,webshot-*,logo_*}.{png,svg}`, + `pics/con-ccn-dartmouth-letterhead.svg`, + `pics/borrowed/{nih,nsf*,bmbf_2020,binc,erdf,cbbs_logo,LSA-Logo,fzj_logo, + hbp_logo,conp_logo,vbc_logo,repronim_logo,openneuro_logo,cbrain_logo, + brainlife_logo,dandi_logo,bannerthanks}.{png,svg,jpg}`. + +### Speaker bio / "Brief Bio" slides +- `2022-nih-compcore.html`, `2023-bids-dicom.html`, + `2023-lbl-building-dandi.html` — three near-identical versions of + Yarik's bio + CON-principles `r-stack`. + +### Title / opening hook archetypes +- `2025-ca-origami-retreat.html` opens with "WORKAROUNDS!" reveal. +- `2026-repronim-YODA-BIDS-webinar.html` opens with Reality-Check GIF. +- `2024-distribits-datalad.html` opens with QR code + logo strip + (canonical template). + +### Closing slides +- "Save your questions for the panel discussion" / "Let me know what to + fix": + `2024-distribits-datalad.html`, `2025-distribits-YODA.html`, + `2026-ca-origami-retreat-aicoding.html` ("Let the AI agents be with + you", with the Yoda SVG as a sign-off). + +## How to use this index + +1. **Pick a story arc** from `SOUL.md` §7. +2. Walk the per-talk list above for the arc's parent deck — its slide + anchors are your "free" content. +3. For each section of the new deck, consult the *topic-wise lookup* to + pull supporting slides from sibling decks rather than re-creating + them. +4. When you copy a slide, update relative `data-src` paths only if the + new deck lives in a subdirectory (it shouldn't — keep new decks at + the repo root). +5. Add the new deck to this index when committed. diff --git a/SOUL.md b/SOUL.md new file mode 100644 index 0000000..120deb0 --- /dev/null +++ b/SOUL.md @@ -0,0 +1,413 @@ +# SOUL — what these talks are *for* and how they look + +This file is the long-lived "soul" of the [Center for Open Neuroscience +(CON)](http://centerforopenneuroscience.org/) talks repository. It captures +the recurring **mission**, **voice**, **visual style**, **resources**, and +**citation conventions** that any CON talk should inherit. New talks should +read this first; reusable slide content is indexed in `INDEX.md`. + +The technical "how to author / build" guide lives in `CLAUDE.md`. + + +## 1. Mission + +CON talks exist to advocate, by way of working examples, for a single +recurring thesis: + +> **Build science as reusable, composable, extensible, standardized +> infrastructure — and, as much as pragmatic, *bridge* upstream +> rather than re-implementing.** + +Concretely, almost every talk in the corpus revisits some subset of: + +- **Reuse** — "the cheapest reproducible thing is the one you didn't have to + build". `pkg-exppsy → NeuroDebian`, `PyMVPA ←→ scikit-learn → nilearn`, + `duecredit → citeproc-py`, `DataLad → git + ←→ git-annex`, `con/duct ← + brainlife smon`. We *join* upstreams instead of forking. +- **Compose** — small units (HeuDiConv, ReproStim, ReproNim/containers, + con/duct, DataLad subdatasets, DataLad extensions, BIDS dataset modules, ...) + over silo'd monoliths. +- **Extend** — when the commons we depend on need care, we stay on as + (co)maintainers (fail2ban, citeproc-py) as long as needed, or even take over + the development (heudiconv); we generalize and standardize ad-hoc work + upstream (DataLad RUNCMD → BEP028 BIDS provenance); we push packages into + Debian / Debian Med / Debian Science / conda-forge so others reuse them in + turn but also extend our "workforce". +- **Standardize** — common tech and underlying data models (`git`, + `git-annex`), common data standards (BIDS, NWB, HED, DICOM), common metadata + (LinkML, concepts.datalad.org), common organizational layouts (BIDS, YODA, + STAMPED). Standards are the language across labs and across HI ↔ AI. +- **Federate, don't recentralize** — `registry.datalad.org`, DANDI/EMBER/ + OpenNeuro, datasets.datalad.org, neurobagel, ... all distribute + discovery and/or storage rather than becoming a single platform. + Joining forces where we can contribute (neurobagel, babs) to instill our principles + and make interchangeable to be "federatable", instead of taking over +- **Make things Convenient** -- buggy, unreliable, hard to use, or requiring + manual action when could be automated -- is INCONVENIENT. + +Recurring framings the speaker leans on: + +- "Where data go to die / how data are reincarnated" → archives + reuse + (`2022-tx-big-neuroscience.html`, `2025-ca-origami-retreat.html`, + `2023-brain-dandi.html`). +- "Sandwich" / "burger" / "minder" — DataLad as **layered tech** over + `git-annex` over `git`, with extensions / remote helpers as additional + layers. +- "All standards are bad, but some are used" (D. Clunie, MICCAI 2017) — + used to justify pragmatic standardization (`2023-bids-dicom.html`). +- "Make re-use convenient" — every time data integration is mentioned, the + conclusion arrives back at this. +- **YODA** as a vocabulary of reproducibility (Version control everything; + Look up you must not; Modular composition). +- **HI + AI** — the recent (2026) framing: the same self-contained, well- + described, version-controlled artifacts serve both human investigators + and AI agents. + +## 2. Audience and tone + +- Audiences range from neuro-domain (NWB/DANDI, BIDS WGs, ReproNim + webinars) to general RSE / HPC / data-management (US-RSE, distribits, CA + Origami retreat, NIH compcore). Talks usually pick a domain hook and + then quickly broaden to the domain-agnostic stack. +- Voice: first-person plural ("we"), occasionally first-person ("Yarik's + first move was..."), liberal Yoda phrasing on YODA-flavored decks + ("Track you must!", "Look up you must not"), and dry humor in Reality + Check / disclaimer slides ("idiocracy-fixed.gif"). +- Concrete "Take home" / "Monday checklist" lists at section ends are a + staple — the audience should leave with one thing they can do this week. +- Respect for collaborators is loud: every deck ends with an Acknowledgements + slide naming **funders** (NIH, NSF, BMBF, ERDF, BInC), **collaborators** + (HBP, CONP, VBC, ReproNim, OpenNeuro, CBRAIN, brainlife, DANDI), and + upstream people (Joey Hess, Michael Hanke, the DataLad team). +- Solidarity tag: a small Ukrainian flag ribbon + (`pics/Ukrainian_Blue-Yellow_ribbon.svg`) appears in the title slide + logo strip — keep it. + +## 3. Visual style and reveal.js conventions + +All decks are [reveal.js](https://revealjs.com/) HTML, **theme `beige`**, +with the highlight plugin's `monokai` syntax theme. The repository's vendored +`reveal.js/`, `reveal.js-mermaid-plugin/`, and `css/custom.css` are the +canonical assets. Do not introduce a new theme without reason. + +### Standard header + +```html + + + + + + + Talk Title + + + + + + + + + +
+ +
+ + + + + + +``` + +- **Canvas size**: `1400 x 1050` is the current default + (`2025-distribits-YODA`, `2026-repronim-YODA-BIDS-webinar`, + `2026-ca-origami-retreat-aicoding`); older decks used `1920 x 1080`. + Stick to **1400×1050** for new talks unless the venue insists on 16:9. +- **Plugins**: always include `RevealMarkdown`, `RevealHighlight`, + `RevealNotes`, `RevealMermaid`. Recent decks add `RevealSearch` + (Ctrl+Shift+F) — fine to include. +- **`data-src`** for images so reveal.js lazy-loads them. + +### Title slide template + +```html +
+ + + +

Title goes here

+

Optional subtitle / yoda one-liner

+ + + + + VENUE — DATE
+ Live slides/Sources: + …/.html +
+ + + + + + + + + +
+``` + +- **QR code** points to the live-slides URL on + `datasets.datalad.org/centerforopenneuroscience/talks/.html`. + Generate one per talk and save as + `pics/-qrcode.png`. +- **Logo strip** at the bottom: pick the relevant subset from the canonical + set — DataLad, NeuroDebian, ReproNim, OBC, DANDI, BIDS, YODA, + Ukraine ribbon. Keep order roughly stable. +- **Author block**: keep the four-line affiliation (CON / PBS / CCN / + Dartmouth) verbatim across talks for consistency. +- The first `
` is wrapped in another `
` (reveal.js + vertical stack convention) so a vertical sub-deck can sit under the + title without restructuring. + +### Slide-construction patterns to reuse + +These conventions show up across multiple talks; reuse them rather than +inventing new ones. + +- **Section divider** with a "Challenge:" headline on a soft gradient: + `
`. + Used heavily in `2022-nih-compcore.html`, `2023-brain-dandi.html`, + `2023-lbl-building-dandi.html`. +- **Buddha / Yoda backgrounds** for "nirvana" sections: + `data-background="pics/digits-budda.svg" data-background-opacity="0.9"`. +- **Markdown sub-decks**: long content uses + `
+
` — + this is the dominant style in the 2025/2026 talks. +- **Layered fragment images** (showing a dataset directory tree progressively + reveal): `r-stack` or absolutely-positioned `` + layered with descending top/left offsets. See + `2024-distribits-datalad.html` "2017: DataLad crawler pipeline". +- **Mermaid diagrams** for pipeline / sandwich layering / "the Vault" + inbound/outbound. The mermaid plugin is loaded in every deck. +- **Aside notes** (`