Repository navigation
WiP: 2026 USRSE CON and MIT ReproNIM STAMPED talks - #33
Draft
yarikoptic wants to merge 30 commits into
Draft
yarikoptic wants to merge 30 commits into
yarikoptic wants to merge 30 commits into
Conversation
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
|
🚀 Preview of f821073: It will be live once the GitHub Pages deployment finishes. |
…-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
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.