Loading Hack-A-Thon-2026-Day1-Summary.md +15 −38 Original line number Diff line number Diff line Loading @@ -25,11 +25,9 @@ Sources used for this summary: ## Attendees (reconstructed from notes) Scientists & back-end devs present or named in the room: John (Hetrick), Valeria Lauter, Tim Charlton, Erik Watkins, Marie Backman, Becky Anderson, Volker Urban, Jim Browning, Glen Elsarboukh, Kevin Tactac, Lauren (Lauren? mentioned re: iPD / template tabs). Bogdan chaired. Erik arrived late (before Session 1, re-entered notes at p.16). Scientists & software devs present or named in the room: John (Hetrick), Valeria Lauter, Tim Charlton, Erik Watkins, Asmaa Qdemat,Marie Backman, Becky Anderson, Volker Urban, Jim Browning, Glass Elsarboukh, Kevin Tactac. --- Loading Loading @@ -59,7 +57,7 @@ Valeria, Becky and Tim. Key points captured in the notes: ### Where the code is today - **lr_reduction (refined):** "good ideas" in the rewrite, but UI, business logic and interstate coupling all handled in one place; a change in one logic and inter-state coupling all handled in one place; a change in one tends to affect the others. - **QuickNXSv2:** approximately follows the **Model-View-Presenter** pattern and is therefore the better starting point for a clean separation. What is Loading @@ -71,7 +69,7 @@ Valeria, Becky and Tim. Key points captured in the notes: - **One data-reduction UI for both instruments**, sitting on top of a shared back-end that exposes the same surface for LR and MR, with per-instrument specialization encapsulated below. - The mechanism Marie proposed for handling the LR/MR differences: a - The mechanism Kevin proposed for handling the LR/MR differences: a **Strategy pattern** — each reduction-phase function is parameterized by an instrument-specific descriptor (e.g. a `LR` dict and an `MR` dict) so the orchestration code stays common. Loading @@ -94,7 +92,7 @@ Valeria, Becky and Tim. Key points captured in the notes: question was why LR has drifted toward a new workflow separate from QuickNXS. - **Fidelity / correctness first.** John's warning (carefully addressed to Volker): *"the one problem in the back-end is the MR → ref mapping"* — we Volker): *"the one problem in the back-end is the MR → LR mapping"* — we should not fix problems by putting them aside; they may resurface. - **HTML report.** Tim observed that reproducing results via HTML reports is today sufficient for many users (report answers most questions modulo Loading @@ -102,7 +100,7 @@ Valeria, Becky and Tim. Key points captured in the notes: --- ## 11:00 – 12:00 · Scientist Assessment (continued) — the user experience ## 11:00 – 12:00 · Scientist Input (continued) — the user experience This block was originally the "Developer Assessment" slot on the agenda, but in practice the scientists kept the floor and elaborated the UX requirements Loading Loading @@ -144,7 +142,7 @@ a unified back-end must satisfy: - Not a preview. A **check of how good reduction has been, given the instrument setup**. - Leah/Becky: give me the reflectivity *and* let me see intermediate steps - Becky: give me the reflectivity *and* let me see intermediate steps (toggle solve / intermediate stages on/off; plot of projected peak vs. detector; modeled vs. measured shape). "Show exactly where binning is — in R/Q, see what the algorithm is binning along, trace along angle or curve Loading Loading @@ -188,7 +186,7 @@ a unified back-end must satisfy: **ORSO format** was discussed as a candidate for chunked, self-describing output. **12:08 demo:** Bogdan/team showed `mr-launcher` running the new workflow **12:08 demo:** Becky+Erik showed `nr_launcher` running the new workflow just before lunch. --- Loading @@ -203,7 +201,7 @@ notes for this block. ## 13:00 – 15:00 · Session 1 — Deep dive into reduction semantics The afternoon session worked through concrete reduction semantics, largely in front of QuickNXSv2 dev and `mr-launcher`. Notes from pages 14–17 of the in front of QuickNXSv2 dev and `nr_launcher`. Notes from pages 14–17 of the PDF: ### Matching templates to runs Loading Loading @@ -275,10 +273,10 @@ candidate for an early tier-1 PR. command-line switch that fixes the mode for a session. *This was not closed on Day 1 — revisit.* - Related: this architecture also naturally **repurposes to a batch processor** (trade the UI for a liquid/MR function call), which is how processor** (trade the UI for a LR/MR function call), which is how autoreduce re-enters the picture. ### Auto-select runs (after Erik arrived) ### Auto-select runs (after Erik rejoins) - Q: Is there a way to auto-select runs? - A: Input a range of runs; metadata in each run tells the series. Sort by Loading @@ -296,7 +294,7 @@ candidate for an early tier-1 PR. - Four-in flips in template (`thip` – Sample, `that` – Sample, `this`). - Point: need to match up (e.g. substrate / DAS). Off-spec run numbers captured: `nfs59 db 160, 161`. captured: `44159+44160+44161` db 44148`. - Finishing note, written in a box on page 17: **"Agree QuickNXSv2 is V1\* + modularize (LR) + can't block it."** This is the Day 1 threshold-goal agreement. Loading @@ -306,25 +304,7 @@ candidate for an early tier-1 PR. ## 15:00 – 16:30 · pyNEX catch-up (optional) Susan Hubbard had reserved the original pyNEX room, so the group came to the hack-a-thon room and hosted the discussion here. Jim Browning's post-doc (the pyNEX developer) led it. The handwritten notes for this block are sparse; from the transcripts: - pyNEX was pitched as an alternative to Mantid for reading vision data. - The session reviewed off-specular calculation: the speaker walked attendees (for those new to it) through specular vs off-specular: *specular = Q vector matches incident and exit angles; off-specular = anywhere else; the material's nuclear variations / discontinuities drive the offset from Snell's law.* Good context for the REF_M team but unrelated to modularization decisions. - Agreed to run the *dev* QuickNXSv2 (new workflow branch) for demonstration. Explored stitching, the "magic wand" auto-select button (poorly tested, no one remembers using it recently — candidate for deprecation), direct-beam matching, smoothing, polynomial fits, K factor, critical-edge normalisation, and DAT-file save. - Attendees surfaced ergonomic complaints that echo the morning (black-boxed caches, unclear when results are saved, lots of clicking when switching samples). the hack-a-thon room and hosted the discussion here. --- Loading Loading @@ -395,7 +375,7 @@ sparse; from the transcripts: I've attributed it loosely. - A few handwritten shorthand tokens were ambiguous to me — in particular the "UDICE" and "realm" annotations on pages 12 and 15, and several speaker initials where Valeria / Volker / Vallerie were and several speaker initials where Valeria / Volker were hard to disambiguate. Please correct me in your review and I will fold the corrections into the Day 2 summary. - The `quicknxsv2-modularization` branch's pre-meeting deck Loading @@ -405,6 +385,3 @@ sparse; from the transcripts: discussion followed. --- *Ready for your review. Please flag anything I got wrong or missed, and I will update before drafting the Day 2 summary.* Loading
Hack-A-Thon-2026-Day1-Summary.md +15 −38 Original line number Diff line number Diff line Loading @@ -25,11 +25,9 @@ Sources used for this summary: ## Attendees (reconstructed from notes) Scientists & back-end devs present or named in the room: John (Hetrick), Valeria Lauter, Tim Charlton, Erik Watkins, Marie Backman, Becky Anderson, Volker Urban, Jim Browning, Glen Elsarboukh, Kevin Tactac, Lauren (Lauren? mentioned re: iPD / template tabs). Bogdan chaired. Erik arrived late (before Session 1, re-entered notes at p.16). Scientists & software devs present or named in the room: John (Hetrick), Valeria Lauter, Tim Charlton, Erik Watkins, Asmaa Qdemat,Marie Backman, Becky Anderson, Volker Urban, Jim Browning, Glass Elsarboukh, Kevin Tactac. --- Loading Loading @@ -59,7 +57,7 @@ Valeria, Becky and Tim. Key points captured in the notes: ### Where the code is today - **lr_reduction (refined):** "good ideas" in the rewrite, but UI, business logic and interstate coupling all handled in one place; a change in one logic and inter-state coupling all handled in one place; a change in one tends to affect the others. - **QuickNXSv2:** approximately follows the **Model-View-Presenter** pattern and is therefore the better starting point for a clean separation. What is Loading @@ -71,7 +69,7 @@ Valeria, Becky and Tim. Key points captured in the notes: - **One data-reduction UI for both instruments**, sitting on top of a shared back-end that exposes the same surface for LR and MR, with per-instrument specialization encapsulated below. - The mechanism Marie proposed for handling the LR/MR differences: a - The mechanism Kevin proposed for handling the LR/MR differences: a **Strategy pattern** — each reduction-phase function is parameterized by an instrument-specific descriptor (e.g. a `LR` dict and an `MR` dict) so the orchestration code stays common. Loading @@ -94,7 +92,7 @@ Valeria, Becky and Tim. Key points captured in the notes: question was why LR has drifted toward a new workflow separate from QuickNXS. - **Fidelity / correctness first.** John's warning (carefully addressed to Volker): *"the one problem in the back-end is the MR → ref mapping"* — we Volker): *"the one problem in the back-end is the MR → LR mapping"* — we should not fix problems by putting them aside; they may resurface. - **HTML report.** Tim observed that reproducing results via HTML reports is today sufficient for many users (report answers most questions modulo Loading @@ -102,7 +100,7 @@ Valeria, Becky and Tim. Key points captured in the notes: --- ## 11:00 – 12:00 · Scientist Assessment (continued) — the user experience ## 11:00 – 12:00 · Scientist Input (continued) — the user experience This block was originally the "Developer Assessment" slot on the agenda, but in practice the scientists kept the floor and elaborated the UX requirements Loading Loading @@ -144,7 +142,7 @@ a unified back-end must satisfy: - Not a preview. A **check of how good reduction has been, given the instrument setup**. - Leah/Becky: give me the reflectivity *and* let me see intermediate steps - Becky: give me the reflectivity *and* let me see intermediate steps (toggle solve / intermediate stages on/off; plot of projected peak vs. detector; modeled vs. measured shape). "Show exactly where binning is — in R/Q, see what the algorithm is binning along, trace along angle or curve Loading Loading @@ -188,7 +186,7 @@ a unified back-end must satisfy: **ORSO format** was discussed as a candidate for chunked, self-describing output. **12:08 demo:** Bogdan/team showed `mr-launcher` running the new workflow **12:08 demo:** Becky+Erik showed `nr_launcher` running the new workflow just before lunch. --- Loading @@ -203,7 +201,7 @@ notes for this block. ## 13:00 – 15:00 · Session 1 — Deep dive into reduction semantics The afternoon session worked through concrete reduction semantics, largely in front of QuickNXSv2 dev and `mr-launcher`. Notes from pages 14–17 of the in front of QuickNXSv2 dev and `nr_launcher`. Notes from pages 14–17 of the PDF: ### Matching templates to runs Loading Loading @@ -275,10 +273,10 @@ candidate for an early tier-1 PR. command-line switch that fixes the mode for a session. *This was not closed on Day 1 — revisit.* - Related: this architecture also naturally **repurposes to a batch processor** (trade the UI for a liquid/MR function call), which is how processor** (trade the UI for a LR/MR function call), which is how autoreduce re-enters the picture. ### Auto-select runs (after Erik arrived) ### Auto-select runs (after Erik rejoins) - Q: Is there a way to auto-select runs? - A: Input a range of runs; metadata in each run tells the series. Sort by Loading @@ -296,7 +294,7 @@ candidate for an early tier-1 PR. - Four-in flips in template (`thip` – Sample, `that` – Sample, `this`). - Point: need to match up (e.g. substrate / DAS). Off-spec run numbers captured: `nfs59 db 160, 161`. captured: `44159+44160+44161` db 44148`. - Finishing note, written in a box on page 17: **"Agree QuickNXSv2 is V1\* + modularize (LR) + can't block it."** This is the Day 1 threshold-goal agreement. Loading @@ -306,25 +304,7 @@ candidate for an early tier-1 PR. ## 15:00 – 16:30 · pyNEX catch-up (optional) Susan Hubbard had reserved the original pyNEX room, so the group came to the hack-a-thon room and hosted the discussion here. Jim Browning's post-doc (the pyNEX developer) led it. The handwritten notes for this block are sparse; from the transcripts: - pyNEX was pitched as an alternative to Mantid for reading vision data. - The session reviewed off-specular calculation: the speaker walked attendees (for those new to it) through specular vs off-specular: *specular = Q vector matches incident and exit angles; off-specular = anywhere else; the material's nuclear variations / discontinuities drive the offset from Snell's law.* Good context for the REF_M team but unrelated to modularization decisions. - Agreed to run the *dev* QuickNXSv2 (new workflow branch) for demonstration. Explored stitching, the "magic wand" auto-select button (poorly tested, no one remembers using it recently — candidate for deprecation), direct-beam matching, smoothing, polynomial fits, K factor, critical-edge normalisation, and DAT-file save. - Attendees surfaced ergonomic complaints that echo the morning (black-boxed caches, unclear when results are saved, lots of clicking when switching samples). the hack-a-thon room and hosted the discussion here. --- Loading Loading @@ -395,7 +375,7 @@ sparse; from the transcripts: I've attributed it loosely. - A few handwritten shorthand tokens were ambiguous to me — in particular the "UDICE" and "realm" annotations on pages 12 and 15, and several speaker initials where Valeria / Volker / Vallerie were and several speaker initials where Valeria / Volker were hard to disambiguate. Please correct me in your review and I will fold the corrections into the Day 2 summary. - The `quicknxsv2-modularization` branch's pre-meeting deck Loading @@ -405,6 +385,3 @@ sparse; from the transcripts: discussion followed. --- *Ready for your review. Please flag anything I got wrong or missed, and I will update before drafting the Day 2 summary.*