Skip to content

WiP: 2026 USRSE CON and MIT ReproNIM STAMPED talks - #33

Draft
yarikoptic wants to merge 30 commits into
masterfrom
2026-usrse-con-talk
Draft

yarikoptic wants to merge 30 commits into
masterfrom
2026-usrse-con-talk

Conversation

@yarikoptic

Copy link
Copy Markdown
Member

No description provided.

yarikoptic and others added 27 commits May 22, 2026 14:16
Companion to talk-proposal-draft.md: where the history-arc proposal
asks "how did we get here", this MVC-spined proposal asks "why does
it compose, and what makes standards load-bearing?".  Sole author
(Y. Halchenko).  Re-reads the CON stack as Model–View–Controller at
the stack scale, with extra emphasis on metadata schemas (LinkML,
pydantic, JSON Schema, SHACL, DataLad Concepts), schema-driven UIs
(vjsf → DANDI meditor; shacl-vue from psychoinformatics-de), the
con/validation harmonization recursion, and the "service-tied UI"
anti-pattern contrast (Cockburn's Hexagonal Architecture; Evans's
Smart UI; Fowler's Service Layer / Anemic Domain Model; GoF Adapter
/ Strategy / Façade).  Closes with the six-lens table (MVC / STAMPED
/ FAIR / YODA / Purpose / SciOps) and a three-action Monday checklist.
Abstract ~576 words, Connection ~270 words.

Co-Authored-By: Claude Code 2.1.148 / Claude Opus 4.7 <noreply@anthropic.com>
* 2026-usrse-con-talk:
  A thorough pass over abstract/submission -- need to trim a little
Re-read the MVC proposal as continuous narrative, matching the rhythm
of the companion talk-proposal-draft.md:

- Convert the six bolded sub-headers in the abstract ("Models — ...",
  "Views — ...", "Controllers — ...", "The anti-pattern contrast.",
  "Many lenses, one stack.", "Punchline.") into prose paragraphs.  The
  M/V/C terms still anchor each paragraph in **bold** but as
  in-sentence emphasis, not mini-titles, so the abstract now reads as
  one argument rather than a slide outline.
- Same treatment for the Connection section: collapse the three
  bulleted RSE-bridging items into one paragraph with inline
  `**RSE <-> ...**` markers.
- Drop in `{=latex} \newpage` raw-attribute fences so Abstract,
  References, and Connection each start on a fresh page in the PDF
  render (HTML drops them silently), mirroring the layout already used
  in talk-proposal-draft.md.

All citations, named anti-patterns (Smart UI / Anemic Domain Model /
Service Layer / Adapter-Strategy-Façade), the Hexagonal-Architecture
cure, the six-lens table, and the Monday-checklist take-home are
unchanged.  Word counts: Abstract ~624 (was ~580 — small growth is
the cost of de-bulleting), Connection ~298.

Co-Authored-By: Claude Code 2.1.158 / Claude Opus 4.7 <noreply@anthropic.com>
* 2026-usrse-mvc-proposal:
  talk-proposal-mvc: flowing-prose abstract + per-section page breaks
  Add talk-proposal-mvc.md (sole-authored US-RSE proposal)
Replaces the acknowledgements slide inherited from
2024-distribits-datalad.html with the one built for 2026-dhmc-ieeg.html:
a tiered grid of the people from centerforopenneuroscience.org/whoweare,
generated by tools/mk_whoweare.py, with the project logos and Funders
tier that were hand-added to it.

Copied verbatim, as a starting point to modify -- the only change is the
regenerate hint inside the generated block, retargeted from
2026-dhmc-ieeg.html to this deck so `--inject` does not write into the
wrong file.

NOTE: the previous slide carried funder and collaborator logos that the
new one does not -- BMBF, ERDF, CBBS, FZJ, binc, LSA on the funders
side, and HBP, CONP, VBC, CBRAIN, brainlife among the collaborators.
Those are recoverable from this commit's parent; decide deliberately
which belong on the US-RSE version rather than losing them by omission.

Co-Authored-By: Claude Code 2.1.295 / Claude Opus 5 (1M context) <noreply@anthropic.com>
Replaces the two-logo Funders row with a single row carrying everyone who
sustains the work, ordered by when they started doing so:

  Dartmouth  infrastructure, and the acceptance and encouragement to
             work in the open
  PBS        the department currently hosting CON
  CCN        funds that sustain YOH; CON is listed among CCN's
             Associated Programs.  Directed by Jim Haxby, now Tor Wager
  DBIC       collaborates on ReproNim as infrastructure.  Jim Haxby
             directed it from 2008 until June 2021, Tor Wager since
             July 2021 (dbic.dartmouth.edu/history.html)
  NSF, NIH   the grants
  AWS        Open Data Sponsorship Program -- storage *and egress* for
             DANDI, OpenNeuro and EMBER, which is why downloading from
             them costs nothing

Assets.  pics/dartmouth-logo.svg and pics/ccn-logo.svg are extracted
from pics/con-ccn-dartmouth-letterhead.svg, which already carries both
as separate Inkscape layers -- no new third-party artwork, no licensing
question.  AWS is the official "Powered by AWS" badge, the one AWS
publishes for exactly this acknowledgement purpose.  PBS and DBIC get
text rather than logos because neither has one: both sites are Dartmouth
Drupal instances using the Dartmouth wordmark.

Every claim above was checked against a primary source before being put
on a slide; the directorship dates are quoted from DBIC's own history
page and Tor Wager's title from the CCN staff page.

Co-Authored-By: Claude Code 2.1.295 / Claude Opus 5 (1M context) <noreply@anthropic.com>
Replaces the text placeholders with the real marks, so every entry in the
"Funders and in-kind support" row is now a logo:

  PBS   pics/borrowed/pbs-mark.svg -- cut from the official
        PBS_logo_green.svg served by dartmouthpbs.org.  No square variant
        exists (that host answers every other path with its SPA fallback),
        so the <text> wordmark was dropped and the result cropped square.
        The brain outline and the rule that ran under the wordmark are a
        single path, so the horizontal extent comes from the twelve inner
        detail paths instead: x[34..142], squared about the centre.
        NOTE: the square mark loses the "Psychological & Brain Sciences"
        text, making PBS the only unlabelled entry in the row; the full
        lockup is kept as pics/borrowed/pbs-logo.svg if we want it back.

  DBIC  pics/borrowed/dbic-logo.png -- the half-brain banner from
        dartmouth.edu/dbic/.  It is a CSS background (header_full.jpg),
        not an <img>, so it came from the rendered page's computed
        styles, trimmed to content (736x223).  Carries the centre's name,
        so it needs no caption.

Captions dropped from Dartmouth, CCN, NSF and NIH -- each names itself.
AWS keeps one, because its official badge reads only "powered by aws" and
never mentions the Open Data programme.

Slide measures 852px of the 1050px canvas; 129 slides, no HTTP errors and
no broken images.

Co-Authored-By: Claude Code 2.1.295 / Claude Opus 5 (1M context) <noreply@anthropic.com>
The acknowledgements grid had YOH's own entry commented out, inherited
from the dhmc deck where the speaker left himself off.  This talk makes
the collaboration map its backbone, so the map has to include him.

Also updates 2026-usrse/2026-usrse-con-talk-associations-plan.md with a
"Current state" section: what is committed, what each phase's status is,
the six known defects in the association tooling, the evidence already in
hand, the five questions still blocking, and the side findings (the
duplicate id="dandi" anchors, the "Center for Open Science" mislabel on
dartmouthpbs.org, the stale CCN title).

Slide measures 865px of the 1050px canvas; 129 slides, no HTTP errors.

Co-Authored-By: Claude Code 2.1.295 / Claude Opus 5 (1M context) <noreply@anthropic.com>
Replaces the hand-placed four-logo strip with two bands generated from
content/selections/acknowledgement.yaml in the con.org repo, via
scripts/render_ack_projects.py:

  Worked on directly              DataLad, ReproNim, DANDI, EMBER, BIDS,
                                  NWB, INCF
  Large communities we take part in  scikit-learn, PsychoPy, HCP, and an
                                  "...and many more" link to /projects

Ten of 71 project records.  The ellipsis is deliberate: a slide listing all
39 collaborating projects would say nothing, and claiming completeness
would be false either way.

Logos come from the site's own theme/static/img/3rd/, copied into
pics/con-projects/ (384K).  Heights are computed per aspect ratio rather
than fixed, because the intrinsic shapes run from 206x75 (scikit-learn, a
wordmark) to 1024x1024 (DANDI, a square mark) and one height makes the
wordmarks enormous.

Slide measures 895px of the 1050px canvas; 129 slides, no HTTP errors, no
broken images.

Co-Authored-By: Claude Code 2.1.295 / Claude Opus 5 (1M context) <noreply@anthropic.com>
INCF moves from the "worked on directly" band into "Funders and in-kind
support", between NIH and AWS: INCF backed the grassroots standardization
work on NIDM and BIDS, which is support rather than something we built.

BIDS now uses pics/bids-logo-wide.png.  The logo the generator had picked up
from the website is the before/after directory-tree illustration, which at
42px tall is a grey smudge.

Verified: 129 slides, acknowledgements slide 895px of 1050 -> fits, no HTTP
errors, no broken images.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Updates the plan's §0 to what is actually true after converting the
association layer, and marks §3 superseded.

The reshaping finding: ORINOCO-Lite/con-site-specific is not a destination we
were heading toward, it is a live corpus of 24 XYZProject, 35 XYZPerson, 8
XYZOrganization and 9 XYZAgentRole records for CON, already carrying
associated_with with object and roles.  Everything the first association
schema invented existed there in better form, and the one thing missing is
exactly what this work set out to add: temporal extent and provenance of the
date.

Defects cleared, including one the new validator exposed: the bound rule was
backwards.  An artifact shows the oldest or newest surviving trace, never the
event, so a `started` from a first commit is an upper bound and an `ended`
from a last commit a lower one.  Six bounds in the PsychoPy evidence were
wrong.

Still open, recorded rather than resolved: HED has no record anywhere on the
site; the xyzrins: namespace is literally the demo namespace yet all 67
records use it; whether same-pid records merge across stores; and whether a
handover belongs in End's Trigger slot.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The row staggered because `.cww-org` was `justify-content: flex-end` inside a
`min-height: 78px` cell: marks sat on a common bottom edge with tops ranging
over 40px, and the one cell carrying a caption was taller still, so nothing
lined up.  The cell is now a fixed 66px with the mark centred in it.  All
eight logos measure to a single centreline (y=931) instead of eight tops.

INCF and AWS become compact marks with no caption, cropped from the lockups
the way the PBS mark was: INCF keeps the glyph and "incf" and drops the
spelled-out "International Neuroinformatics Coordinating Facility", AWS keeps
"aws" and the smile and drops "powered by".  Both are trimmed to their ink.

DBIC still carries its own white plate; that is the next one to cut out.

Verified: 129 slides, slide 884px of 1050 -> fits, no HTTP errors, no broken
images.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* 2026-reproAI-MIT:
  Initial sketches for MIT talk
…refrain

The published abstract says what the talk does: "walks through ongoing CON
projects through those five lenses".  Lenses, not section headers -- and its
body runs strictly chronologically, 2000 Pearlmutter through pkg-exppsy,
PyMVPA, NeuroDebian, DataLad, BIDS, the archives, to STAMPED.

The deck had inverted that: the five verbs were section headers and the
chronology was one 90-second burst that never came back.  This replaces the
burst with a seven-era spine where each era names its projects, carries a
verb as a lens, and ends on the people who were there.

Eras: 2000-2004 Debian immersion / 2005-2008 pkg-exppsy + PyMVPA /
2009-2012 NeuroDebian / 2013-2016 DataLad + BIDS / 2017-2020 OpenNeuro +
NWB + ReproNim / 2021-2024 DANDI + EMBER + HED / 2025- STAMPED +
ORINOCO-Lite.  Each also carries an explicit AI note, which the abstract
promises ("alongside our AI adoption") and the deck only delivered once.

Written as markdown, per 2026-dhmc-ieeg.html, so the source stays editable.

The acknowledgements refrain
----------------------------
tools/mk_ack_eras.py generates one standalone fragment per era from
con-site-specific's records, and the slide pulls it in with an <iframe>.
The grid grows 1 -> 2 -> 2 -> 10 -> 24 -> 32 -> 33 across the talk:

  new      joined within this era      red ring, bold name
  present  joined earlier, still here  normal
  past     association already ended   dimmed and greyscaled
  unseen   has not joined yet          omitted

Order is strictly chronological and NEVER regrouped by state.  Sorting the
new arrivals first made every face jump position between eras, which
destroys the whole effect -- the point is that the grid grows and the eye
can see where.

Why an iframe, tested rather than assumed
-----------------------------------------
reveal can load external markdown with data-markdown="x.md", which would be
the obvious choice.  It is fetched over XMLHttpRequest, and file:// blocks
that as cross-origin, so the slide comes up EMPTY when the deck is opened as
a plain file -- which CLAUDE.md requires to keep working.  An <iframe> still
RENDERS under file://; only script access into it is blocked, which nothing
here needs.  Both were checked in Chromium under both protocols before
choosing.

Dates come from the earliest association anywhere in the store, not from the
site-root ones alone: whoweare.html only starts in 2015, so site-root dates
would put one person in each of the first three eras.  The project records
know better -- Hanke on PyMVPA from 2007-05-24 and NeuroDebian from
2009-03-28, YOH on Fail2Ban from 2005-07-04.  The founding director is
pinned present from the first era, since his own association is deliberately
undated.

Verified: 135 slides, no HTTP errors, no broken images, and the only
overflowing slide is the pre-existing HI<->AI stance table carried in from
the MIT/STAMPED merge.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Each era fragment now has the same sections as the acknowledgements slide
itself -- Centroids, Collaborators, Affiliated Faculty, Emeritus, the two
project bands, Funders and in-kind support -- and a heading appears only
once something is listed under it.  So the slide does not merely accumulate
faces: the SHAPE of the final slide assembles over the talk, and by 2025 the
era fragment is the acknowledgements slide.

People move between sections rather than being dimmed in place.  Someone who
has left appears under Emeritus, which is where they are today; while they
were still staff they appear under Centroids.  The store records today's
tier, so the decision comes from the role instead: all fourteen current
Emeritus carry marcrel:swd on their CON association, i.e. they were staff.

Funders arrive when the money does
-----------------------------------
NSF enters in 2013-2016 and NIH in the same era but later: NSF 1429999
starts 2014-09-01 and NIH's first money here is ReproNim/CRNC on 2016-04-15,
both from the funders' own records.  NeuroDebian was never NIH-funded, so
the 2009-2012 era has no funders row at all -- it has not earned one yet.

The institutional rows are marked in the source as EDITORIAL rather than
sourced: Dartmouth, PBS, CCN and DBIC supported the work in kind for longer
than CON has existed, and 2015-07 is simply when the Center they host was
founded.  INCF's backing for the NIDM and BIDS grassroots work has no date
in the store either.

Project logos build the same way, from each project's `started`: PsychoPy
and scikit-learn from 2009-2010, DataLad 2013, BIDS and ReproNim 2016,
NWB 2017, DANDI 2019, EMBER 2024.

Verified under Chromium: 135 slides, no HTTP errors, no broken images, no
unresolved asset paths from inside the fragments, and the only overflowing
slide is still the pre-existing HI<->AI stance table.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
The first three eras had people but no community, which is backwards for a
story whose opening is "joined a Debian developer's lab".  Debian now enters
the communities band in 2005-2008 and stays, so the pkg-exppsy era shows the
thing it is actually about.

Debian Med joins in 2020-02-24, when the NeuroDebian-carried packages began
moving to team maintenance.  It has no mark of its own -- blends.debian.org
uses the same swirl -- so it renders as a text chip rather than a second
identical logo; the generator now supports band entries without a logo.

Both sit under "Large communities we take part in" rather than "Worked on
directly".  The honest claim is participation in something far larger, not
ownership.

The logo is Debian's Open Use logo, the swirl without the word, which is
free for anyone.  The Official Use one is not, and is deliberately avoided.

Verified: 135 slides, no HTTP errors, no broken images, no unresolved asset
paths from inside the fragments.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
The verb sections are gone as sections.  Their 79 slides are redistributed
into the seven eras, so the deck now reads the way the published abstract
says it does -- chronologically through the projects, with the five verbs as
lenses on each era rather than as chapter headings.

  era                         vertical slides
  2000-2004 Debian immersion        2
  2005-2008 pkg-exppsy, PyMVPA      4
  2009-2012 NeuroDebian            15
  2013-2016 DataLad, BIDS          12
  2017-2020 OpenNeuro, NWB         12
  2021-2024 DANDI, EMBER, HED      24
  2025-     STAMPED, ORINOCO-Lite  24

Each era is one top-level section: the era intro, then its projects as
vertical subsections, ending on that era's acknowledgements grid.  Down and
right now mean different things -- right moves through time, down goes into
the projects of the era you are in.

The concepts land where they were first lived.  REUSE, COMPOSE and EXTEND
and their AI beats all sit in 2009-2012, because NeuroDebian and PyMVPA are
where integrating, reusing and building a community first happened.
STANDARDIZE sits with BIDS in 2013-2016, AUTOMATE with the archives in
2021-2024.

How the slides were placed: by heading against a per-era pattern table, with
anything unmatched inheriting the era of the slide before it.  That second
rule does the real work -- the beats ("AI generates glue. Nobody owns the
glue.", the Model/Controller/View triple, "Provenance doesn't care who wrote
the code") are commentary on the slide they follow, and the authored order
already encodes that.  27 of the 79 had no heading to match on and landed
correctly anyway.  Nothing was dropped: the script reports unmatched slides
and the count is zero.

One manual correction on top: the standards concept block inherited
2017-2020 from the NWB slide sitting between it and BIDS, so M/C/V and the
"Without standards, AI produces cacophony" beats are pinned to 2013-2016
explicitly.

Also dropped: the "Two decades, five verbs" table, which was a summary of a
structure the deck no longer has.

Debian Med now has its own mark -- debianmed-mh.svg from
people.debian.org/~tille/debian-med/logos/, the caduceus-in-a-swirl, which
is scalable where med-06.jpg is not.  It replaces the text chip.

Verified: 137 slides, no HTTP errors, no broken images, and every one of the
seven eras confirmed to end on its own acknowledgements iframe.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
…proMan's

Two stories were being told in pieces across eras.  Both are now told once,
in the era they begin in, running past the era boundary where they have to.

Debian, in 2009-2012.  The era now ends on the whole arc: NeuroDebian, then
the handover upwards to Debian Med, Debian Science and the Debian Python
Team, then DebConf10 (NYC, 2010) and DebConf15 (Heidelberg, 2015).

That handover slide replaces the "Debian Med -- packaging, still there"
slide that sat in 2017-2020 under the line "a successful bridge dissolves
into the commons".  That line read as an ending and it is not one.  What
happened is a two-person team handing packages to teams that scale better,
each with a narrower target: still ours, more hands on them, bus factor
above one.  Roughly 73 package entries under Debian Med, 38 under the Python
Team, 28 under Debian Science -- the scope narrows per team, the breadth
goes up.  Dated by the migrations themselves: psychopy 2020-02, then
nifticlib, gifticlib, odin and cmtk over the two years after.

The two DebConf photos move up from the closing "You are alone / Together"
arc.  They were doing nothing there that the three remaining placeholders
(BIDS, distribits, OHBM) do not do, and here they are evidence rather than
mood: the community came before the software.  DebConf15 carries its own
baked-in caption -- "Debian: We are many and we keep multiplying" -- which
makes the point better than a bullet would.

ReproMan, in 2017-2020.  It was not in the deck at all, which is a strange
omission for a talk about reuse, because the thing it is reused by is here
twice.  Added where the rest of the ReproNim tooling lives, and said plainly
in the notes: ReproMan is the one that did not take off the way the others
did.  The question it asked outlived it.

Then its afterlife, on the next slide and three eras early: con/duct.  The
need came from ReproMan, the sampling approach came from brainlife's smon,
the tool is ours, and it now runs inside ReproNim/containers and ReproStim.
Nobody in that chain started from scratch -- which is the argument of the
whole talk, so it is worth one slide out of chronological order.  Austin's
poster is named there, with Austin named first, because he is presenting it.

Because con/duct is now properly introduced in 2017-2020, the bare
"con/duct -- process monitor" slide in 2025- is dropped; the screenshot
slide there keeps the agent-era framing, which is a different point.

Also fixed, pre-existing and unrelated: a stray "-->" with no opener sat
directly inside div.slides and rendered as visible text at the top of every
slide in the deck.  Verified it terminates no comment before deleting it.

One duplicate removed: ReproNim/containers appeared twice in 2017-2020, both
copies landed by the restructure in 79e9541.

Photo captions are anchored with position:fixed, which resolves against the
transformed .slides canvas rather than the section box -- the section is
auto-height and vertically centred, so bottom:0 on it put the caption across
the middle of the photograph.

Verified: 137 slides, no HTTP errors, no broken images, the only overflow
the pre-existing HI/AI stance table.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
The 2005-2008 era ends on PyMVPA's test suite, which is not what actually
closed it.  NiPy was the entry into the community: before it, two people
packaging for themselves; after it, a room with the people who became
nibabel, nipype, nitime, dipy and scikit-learn.  The deck does not mention
NiPy once.  Written up as a TODO rather than implemented, since it needs a
photo and some dates that are not in hand.

Two things the write-up pins down that were uncertain when raised.

The Paris NiPy-ish workshop and EuroSciPy 2011 are one event, not two:
"Python in Neuroscience", satellite to EuroSciPy, Paris, Ecole Normale
Superieure, 29-30 August 2011, with Gael Varoquaux on the program committee.
Its book of abstracts survives (39 pp, linked), and its table of contents is
the slide with no commentary needed -- NiBabel (Brett, Gerhard, Hanke) on
p13, PyMVPA on p18, NeuroDebian on p21, NiPyPe on p22, and Fernando's nitime
talk on p25.  Five entries, one program.

But the nitime abstract does not mention the IPython notebook.  Its second
half is IPython's then-new ZeroMQ parallel-computing backend -- the
architecture the notebook was built on, shipped four months later in 0.12.
That is a better "small seeds grow big" than the remembered version: the
abstract is about a messaging backend mixed in with a time-series library,
and the notebook is not named yet.  The TODO says to claim that and not the
other thing.  It also notes the abstract signs off with
"Nitime can be found at: http://nipy.org/nitime" -- nitime lived under
nipy.org, which is the direct line back to the NiPy item.

Why it belongs in this deck specifically: per the delivery notes, our slot is
the first after the Plenary, which is Fernando Perez on Jupyter.  His 2011
abstract, from a program we are also on, hours after he speaks.

Records side: nipy.yaml and nitime.yaml already exist in con-site-specific
but are bare stubs with no associated_with and no started, so they cannot
reach the era acknowledgements at all.  Flagged with what they need.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
…ly say

The Debian slide now carries all three marks: the swirl, Debian Med's
caduceus, and the snake-as-swirl for the Python Team -- YOH's own artwork,
from wiki.debian.org/Python.  Only a 300x371 PNG is attached to that wiki
page, so that is what is here; the TODO notes it should be replaced with the
source SVG when it turns up, since the other two are vector.  It lands in
pics/ rather than pics/borrowed/ because unlike the other two it is ours.

The rest is the NiPy TODO, rewritten after checking archives rather than
memory.  Three corrections and one find.

The find: nibabel's git history is ours.  Its root commit is 2007-02-08 by
mhanke-guest, "Move pynifti packaging to alioth (really)", and the
git-svn-id trailer reads svn.debian.org/svn/pkg-exppsy/pynifti/trunk@179.
pkg-exppsy is the repo in this deck's own 2005-2008 era title.  The
file-format layer under essentially every Python neuroimaging tool in use
today is rooted in our Debian packaging repo by way of PyNIfTI.  yoh-guest
appears four days later; Christopher Burns of Berkeley/NiPy arrives
2008-06-30, which is the NiPy convergence showing up in the tree.  One
command reproduces all of it, and it is a better "small seeds grow big" than
anything else available, because the seed is ours.

Correction one: the 2008 workshop and the Paris one are three years apart,
not the same event.  I conflated them yesterday.  The 2008 NiPy workshop I
could not source at all -- the surrounding record is consistent (Perez and
Brett went full-time at UC Berkeley BIC that year, Neurospin began
refactoring FFF toward NiPy, Varoquaux joined Parietal) and nothing
contradicts it, but the event itself is not in anything public I could
reach.  Flagged with where to look (nipy-devel archive, 2008) and an
instruction not to put a date or attendee list on a slide until it is found.

Correction two: nipype's split checks out.  Repo root 2009-07-15, Jarrod
Millman, Satra leading it out -- "soon after" is right.  nitime's root is
2009-09-02, Fernando Perez.

Correction three, to my own: I had written that the slide should not claim
the notebook, full stop.  Wrong emphasis.  The printed abstract is about
IPython's ZeroMQ backend and does not name the notebook -- but in the talk
itself Fernando demoed what shipped weeks later as the notebook, and
NeuroDebian packaged it soon after.  That makes the slide stronger, not
weaker: the written record is a messaging backend mixed in with a
time-series library, four pages from our own two abstracts, and what was
shown that day became Jupyter.  The TODO now says to tell both halves.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
The deck tells this story four times and never names it: splitting a larger
project into smaller ones is itself the step that buys agile development and
reuse.  It is the face of COMPOSE nobody says out loud -- you can only
compose from small modules because somebody decomposed them first.  Slide
16/10 presents the modules as though they were found that way.  They were
not; each one is a split.

  2007   PyNIfTI                     -> nibabel                     (to build)
  2009   nipy                        -> nibabel, nipype, nitime     (to build)
  2015-  datalad                     -> datalad-* extensions        (17/2)
  2020   NeuroDebian, two people     -> Debian Med/Science/Python   (16/14)
  2024   ReproMan + brainlife smon   -> con/duct                    (18/7)

The 2020 row is the one worth pausing on: that is the same move applied to
people rather than code, and the slide for it already argues it in those
terms ("a handover upwards" -- small team wide scope, big teams each
narrower).  Decomposition is a social technique as well as an architectural
one, and saying so costs nothing because the slide is already written.

The cost is the other half, and the deck already has the slide for it
without the cause.  N packages means N repos, N CI configs, N release
processes, N doc builds, N packaging recipes, plus cross-version testing
between them that did not exist when it was one tree.  19/17 lands exactly
that burden -- "by 2024 the harness was bigger than several of the projects
under it... that is why a small RSE center was dragged toward AI assistance,
not for the science but for the maintenance of the meta-layer" -- but
presents it as if it arrived from nowhere.  One added clause traces it to
the splits, and the payoff slide after it (con/skills + con/yolo, "we
automate the harness itself") is already the answer, as is
/introduce-reuse-compliance at 16/8 at the per-repo scale.

Which makes a concrete, non-hype claim available for this specific room:
decompose for reuse, pay for it in scaffolding, let AI carry the
scaffolding.  The whole talk's argument, at the scale of a build system, to
an audience that has personally had the monorepo-versus-many-repos argument.

Recommended against: a sixth verb word-slide.  REUSE / COMPOSE / EXTEND /
STANDARDIZE / AUTOMATE is an anchor phrase the deck is built on and a sixth
word dilutes it.  This belongs as the second half of COMPOSE.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
The in-era COMPOSE word slide now reads (DE)COMPOSE, the "(DE)" in a lighter
tint.  The word has a hidden half, and that is the whole idea: you can only
compose from small modules because somebody split them out first.  The Act I
verb slide stays plain COMPOSE on purpose -- introduce the five words
cleanly, reveal the hidden half once the content has earned it.

The rest is the TODO, reworked around a correction that changes what the
pattern means.  I had written the splits as X -> Y, which reads as X being
replaced.  It is not: nipy is still there after nibabel, nipype and nitime
came out of it, and datalad is still there as the domain-agnostic core after
the extensions.  So is NeuroDebian, as the repo and the backports, after the
packages went to the Debian teams.  The parent surviving is what makes this
a technique rather than an obituary, and the table now carries a column for
it.

ReproMan is the exception and gets presented as one -- its slide notes
already say it is the one that did not take off.  Four cases, three where
the parent is still shipping: that is a pattern, not a rule, and saying so
is more convincing than pretending otherwise.

PyNIfTI -> nibabel is deliberately not in that table.  That one is
absorption, not extraction; it belongs with the root-commit fact.

And the reason this is urgent rather than merely good hygiene.  AI can
produce very large codebases very fast, and what it does not produce is
clean working surfaces.  Module boundaries are the surfaces both humans and
agents work against -- what makes a change local, a test meaningful, a reuse
possible.  A monolithic ad-hoc beast is harder to maintain and extend
whether or not the next contributor is an AI, and agents make the beast grow
faster, so the boundary problem arrives sooner and larger.  Which gives this
room a concrete claim: decompose and reuse rather than generate another
monolith, pay for it in scaffolding, let AI carry the scaffolding.

Noted for placement: that beat extends two the deck already has -- "AI tends
to produce silos" and "AI generates glue, nobody owns the glue" -- and the
new idea is that a silo and a monolith are the same failure seen from
outside and from inside.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
…t 2015

They were all dated from the Center's founding, 2015-07, which made the
2009-2012 era look like two people working alone in a vacuum.  YOH joined
Jim Haxby's lab in the PBS department in 2009 as a postdoc -- the CV says
Postdoctoral Fellow, 2009-2012, straight on from the Rutgers-Newark
sysadmin post -- and Hanke was there 2009-2011 before returning to Germany.
NeuroDebian was built inside that department, not next to it.

So Dartmouth College, PBS and DBIC move to 2009 in the in-kind support band,
and Haxby now appears, ringed as new, under Affiliated Faculty in the
2009-2012 fragment.  Only the year is sourced; the month in the table is a
placeholder and any date in 2009 lands in the right era.

CCN deliberately stays at 2015-07: CON is one of its Associated Programs,
which it became as a Center, not as a postdoc.  It still first appears in
2013-2016, which is correct.

Haxby's date is an EARLIEST_OVERRIDE rather than a fix in the store, because
the store has only one association for him -- the Center's own record,
2015-07-22 -- and there is no Haxby-lab or PBS project record for a 2009
association to hang off.  The override is commented as temporary and should
go away when con-site-specific grows that record.  The institutional rows
were already marked EDITORIAL for the same reason.

Build-up is now 1, 2, 3, 10, 24, 32, 33 across the seven eras.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
The Codeberg slide attributed a sentence to Codeberg that Codeberg never
wrote.  "AI exemplifies silo projects." is ours; it was set in quote marks
under their name, and the link went to a Codeberg issue rather than to the
post.  Our line is now the heading, unquoted, and underneath it are two
sentences that are actually theirs, verbatim:

  "... by adopting LLMs people tend to code single-use software from
   scratch.  While this leads to an increase in 'shared' code, it is mostly
   code that not only has not been 'written' by anyone but is also not
   maintained by anyone."

  "You can develop at a rapid pace, build things as if you had a large team.
   Only that you have none.  In fact, you are (often) alone, working with a
   statistical machine that turns energy into code."

The second one is chosen deliberately and the notes say not to point at it:
"you are (often) alone" is this deck's own closing beat, arriving
independently from a forge's July 2026 blog post.  Let the room hear it
twice, forty minutes apart.  Attribution is now the three authors, the post
title, Codeberg e.V., and the right URL.

Then the same question asked of everything else in the deck.  All 127 links
now return 200; before this commit two did not resolve and several landed
somewhere other than where they claimed.

Fixed:

- heudiconv.repronim.org was dead -- no response at all, in two places.
  Now heudiconv.readthedocs.io.
- dbic.dartmouth.edu redirects to the generic Dartmouth home page.  The DBIC
  site is at www.dartmouth.edu/dbic/.
- The Networked Intelligence paper was cited as "Pryor, R. et al."  It is
  Choudhury, S. et al. -- 18 authors, no Pryor among them.
- "Scale the connections, not just the agents." was in quote marks with the
  speaker notes admitting it is a paraphrase.  Same defect as the Codeberg
  slide, caught by looking for it.  Unquoted now, with the authors' own
  sentence from the abstract underneath, which says "scale models" where we
  say "agents".
- goo.gl/CvaY1e, for the NICEMAN OHBM 2018 poster, resolves to a Google Doc
  edit link.  Citation kept, link dropped.
- github.com/datalad/git-annex and github.com/myyoda/myyoda both redirect
  elsewhere; pointed at con/git-annex and the myyoda org directly.
- debian.org/devel/debian-med redirects to blends.debian.org/med, which is
  now linked directly.

Verified and correct, no change needed: the PyMVPA DOI (Hanke, Halchenko,
Sederberg et al., Neuroinformatics 7:37-53, 2009), the "Open is not enough"
DOI (Halchenko and Hanke, Front Neuroinform 6, 2012), the DataLad JOSS paper
(10.21105/joss.03262, 2021) -- all three check out against Crossref on
title, year, volume, pages and authors.  arXiv:2607.13220's title is exact.
arXiv:2401.00077 is SciOps, Johnson et al., and the note now adds that YOH
is a co-author on it, which is worth saying out loud from the podium.

Could not verify: "All standards are bad, but some are used", attributed to
D. Clunie at MICCAI 2017.  A spoken remark at a conference nine years ago is
not indexed anywhere I can reach, and nothing contradicts it.  Left as is --
YOH was presumably in the room.

The wiki.debian.org links return an anti-bot challenge to curl but are fine
in a browser; not a real failure.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
Two slides shipped a compression of someone else's point inside quote marks
under their name.  Both are fixed; this settles the general case so a third
one does not happen.

The rule, now written into the plan's style section:

  - YOH's own line is a heading, no quote marks.  The display font and the
    position already say "this is the talk speaking".
  - Quote marks mean verbatim, always, and the author is named.
  - Where his line distils a specific source, the source line starts with
    "after".

The standardize slide is the first to use it: "All standards are 'bad', but
some are used." now carries "after D. Clunie, MICCAI 2017" instead of an
asterisk hanging off the word "bad".  The asterisk was ambiguous about its
own scope -- did it mark the word, or the sentence?  "after" marks the
sentence, which is the honest claim, and it is standard usage that needs no
explaining and survives into the published deck where nobody is present to
say it out loud.

Considered and rejected: marking his lines with his portrait from the
acknowledgements grid.  At projection size a face competes with the
one-line aphorism it is meant to annotate; it would spend the portrait's
meaning in the two places it already earns it, the title slide and every
era's grid; and a face beside a claim reads as self-promotion in a talk
whose whole argument is that none of this was done alone.  The typography
carries it for free.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
@yarikoptic yarikoptic changed the title WiP: 2026 USRSE CON talk WiP: 2026 USRSE CON and MIT ReproNIM STAMPED talks Oct 12, 2026
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

🚀 Preview of f821073:

It will be live once the GitHub Pages deployment finishes.
Images whose git-annex content is not on datasets.datalad.org yet are listed in the build summary.
Re-run the Preview workflow to update it.

…-RSE deck

The MIT deck was maintaining its own hand-written acknowledgements, which
means two lists drifting apart.  It now embeds the generated grid instead --
the same fragment the US-RSE deck shows at the end of its last era, built by
tools/mk_ack_eras.py from con-site-specific.  One regeneration updates both
decks.

Not a straight replacement, because the shared grid does not carry
everything the hand-written slide did.  Austin, Cody, Isaac, Joey Hess and
the DataLad / ReproNim / DANDI / EMBER / BIDS / NWB logos are all in the
grid, so they are gone from the hand-written half.  These are not, and
dropping them would have been a real loss:

  - Brent McPherson, with the STAMPED -> DataLad commands PR
  - the slide origins: Oscar Esteban's OHBM 2026 Educational, datalad-course
  - BINC, BMBF, ERDF, CBBS, Sachsen-Anhalt and Julich on the funder wall
  - HBP, CONP, VirtualBrainCloud, OpenNeuro, CBRAIN and brainlife

So the acknowledgements are now a vertical pair: the shared grid, then
"Acknowledgements, continued" with exactly the remainder.  Silently deleting
a funder acknowledgement is not a thing to do to a talk.

The deck embeds ack-now.html rather than ack-2026.html.  They are the same
33 people and the same logos; the difference is that ack-now.html rings
nobody as new.  The red ring means "new in this era", which earns its keep
inside the US-RSE deck's seven-era build-up and reads as an unexplained
highlight on Cody Baker anywhere else.  mk_ack_eras.py now emits it
alongside the seven era fragments, from the same data in the same run.

Verified: 42 slides, no overflow, no broken images, no HTTP errors.  The
fragment's ../pics/ portrait paths resolve correctly from the MIT deck too,
since they are relative to the iframe document, not to the embedding one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY
yarikoptic and others added 2 commits October 12, 2026 11:02
Taking the talk's own advice.  Both decks were carrying their own
acknowledgements -- the MIT one hand-written, the US-RSE one injected by
tools/mk_whoweare.py -- which is exactly the duplication the deck spends
fifteen minutes arguing against.  There is now one slide: the generated
fragment, embedded by both.

The German side of the MIT funder wall (BINC, BMBF, ERDF, CBBS,
Sachsen-Anhalt, Julich) and the platform collaborator logos were leftovers
from the 2024-distribits-datalad layout the slide was copied from, not
acknowledgements this talk owes.  Gone, with CBRAIN.  Brent McPherson and
Oscar Esteban's slide credit are parked in a source comment next to the
slide: Brent belongs in con-site-specific, Oscar's belongs wherever the
borrowed slides land.

Two things had to change in the generator for a single slide to be possible.

Portraits no longer come from scraping the US-RSE deck.  That worked while
the deck carried a hand-written grid to scrape; now that the deck embeds
what this script writes, scraping it would be circular.  They come from
con-whoweare.phtml instead -- the fragment tools/mk_whoweare.py generates
from the live whoweare page, which is also what names the downloaded files.
One source, no cycle, and mk_whoweare.py stays the thing to re-run when the
whoweare page changes.

And every logo is a link again.  The hand-written grid had them -- Dartmouth,
PBS, CCN, DBIC, NSF, NIH, INCF, AWS, and each project -- and the generated
one silently dropped them, which the repo's own slide rules forbid: a reader
following the deck afterwards clicks these.  The URLs are recovered from the
block being replaced, so nothing is invented; Debian and Debian Med are the
only new ones.  target=_top, or a click inside an 880px iframe loads
dartmouth.edu into a box with no way back out.

All 19 logo links and the 33 person links resolve (nih.gov 403s to curl and
is fine in a browser).  US-RSE 137 slides, MIT 41, no broken images, no
overflow beyond the known HI/AI stance table.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKz3AP586yEUj5UEoYs5cY

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant