- Fix broken cross-refs in training.qmd (em-dash parsed as part of ID)
- Remove footnote from table cell in ml_systems.qmd
- Add @tbl- references for 22 unreferenced tables across 5 files
- Comment out stale SVG prevention hook in pre-commit config
- Auto-fixes from bibtex-tidy, blank-line collapse, pipe-table prettify
The data bar now uses a smooth vertical gradient derived from the layer
intensities: each color stop matches the wire flowing into it, and PGF
interpolates between stops. This makes data's cross-cutting role visible
— two distant bright layers produce a gradient that stays warm across
the space between them, revealing skip connections through data.
Each wire's color matches its layer's intensity, showing how strongly
each layer plugs into the shared data bus. The About page now shows
three example stacks (HW Acceleration, Training, Responsible Engineering)
to illustrate how the lens shifts across chapters.
Add prose explaining how the ML Systems Stack's data bar shading
reflects cross-layer data flow and skip connections, priming readers
to interpret the visual cue as they progress through chapters.
- Revise prose, index entries, and references across all 16 chapters
- Update quarto config (epub/html) for vol1 and vol2
- Add render_figures.py testing script
- Update inject_parts.lua filter and header-includes.tex
- Update notation, appendix_dam, and references.bib
- Remove vol1/vol2 foreword files
The TikZ-rendered broadcasting diagram had clipping issues in result
cells (text overflow). Replace with a custom SVG using the book palette
that clearly shows A(3,1) + B(1,4) = Result(3,4) with dashed cells
for virtually expanded dimensions.
Shift right-side annotations inward so text bounding boxes stay fully
within their containing ellipses. Verified programmatically that all
text elements are safely inside boundaries with no crossings.
Move the directional arrow and annotation text below all ellipses
(y=455/473, well below the government ellipse bottom at y=445).
Combine the two separate annotations into a single clean line.
Redesign layout to prevent text from crossing ellipse boundaries:
- Widen canvas, enlarge all four ellipses for breathing room
- Simplify detail items to match prose (audit trails, verification,
explainable interfaces, SE workflows for Team; leadership, hiring,
reviews for Organization; auditing firms, certification, professional
societies for Industry)
- Place org-band items at x=530 y=260-316 (inside org, outside team)
- Place industry-band items at x=610 y=160-188 (inside industry)
- Add directional annotation: "Requirements flow inward" with arrow
- Add "Technical practices enable compliance" outward annotation
- governance_layers.svg: nested ellipses showing Government Regulation
(outermost, crimson), Industry certification, Organization safety
culture (navy), and Team engineering practices (innermost, green).
Replaces human_centered_ai.png.
- activity_classification.svg: four-panel progression showing how
rule-based activity classification grows from 1 rule (walking) to
unmanageable complexity (baseball?), motivating the shift to ML.
Stick figures with code snippets. Replaces activities.png.
Both use the book's standard palette and are not yet wired into
chapter .qmd files.
Replace the solid blue background (copied from Edge Impulse source)
with a clean white/light background using the book's standard palette:
- Navy (#004c97) for edge device icons
- Forest green (#2e8b57) for the central "Edge Hub"
- Crimson (#a31f34) for cloud connectivity (visually distinct)
- Gray dashed lines for data links
Retitled to "Edge Device Deployment" with subtitle matching the
figure caption. Added a small legend. Prints well in grayscale.
Reorganize DL zone layout: put title on single line ("Deep Learning"),
subtitle directly below, icon centered at y=185 (well below subtitle),
and milestone markers starting at y=250+. Eliminates the collision
between title, icon binary text, "Image recognition" label, and
"2012 AlexNet" milestone that occurred when all occupied the same
vertical space.
- interpretability_spectrum: add small model icons (tree, line, sigmoid,
forest, network, deep network) under each label, plus bottom annotations
- bio_nn2ai_nn: redesign artificial neuron with z|f combined node matching
original PNG, separate Linear/Activation Function labels
- fairness_threshold: thicker dotted threshold lines, bolder plus-sign
markers, bright blue/red matching original PNG style
- ai_dl_progress: replace abstract icons with era-specific illustrations
(checkerboard for AI, email spam filter for ML, binary+magnifier for DL),
widen SVG to 1100px for proper DL zone spacing
- edge_ml_iot: separate cloud icon from smartphone to fix overlap
- Widen gap between ML systems stack layers and data bar in both
margin and full-size variants so connector lines are clearly visible
- Add D·A·M Intersection Landscape Venn diagram (SVG + PNG) to the
D·A·M Taxonomy appendix with reference table and explanatory prose
- Add forward references to the Venn from Introduction and Part III
- Add learning objective for intersection mapping
- Chapter prose refinements across multiple chapters
Updates the PDF configuration file to correctly point to the index file for the first volume of the book.
This ensures the PDF generation process uses the correct entry point, which is crucial for structuring the book's content.
Clarifies the importance of understanding system behavior in the face of environmental changes that impact model performance.
Emphasizes the need for quantitative signals that connect distribution shift to expected performance loss and how data drift monitoring is crucial to preventing silent degradation.
Adds introductory sections ("Purpose" and "How to Use This Appendix") to several appendices, providing context and guidance for readers.
Improves overall structure and clarity by adding Key Takeaways callouts to chapters and implementing minor textual edits.
Refines rule for usage of `.unnumbered` on sub-headers in `CLAUDE.md`.
Addresses minor bugs and enhances indexing for improved searchability.
Second pass fixing remaining issues found by comprehensive audit:
- benchmarking: converted ~38 bold pseudo-headers to proper #### headers
for training metrics, inference metrics, benchmark pitfalls, MLPerf
scenarios, and organizational issues sections
- responsible_engr: removed 7 overly-granular #### headers (each only
1 paragraph) under "When Responsible Engineering Succeeds" and "Why
Engineers Must Lead", converted to flowing prose
- frameworks: removed one remaining bold lead in body text
- training: moved footnotes closer to their references, consolidated
summary paragraph
12 chapters confirmed CLEAN with no issues.
Covariate Shift, Label Shift, Concept Drift, and Label Quality Drift
each get their own #### header under "Detecting and Responding to
Data Drift". These are important named concepts with multi-paragraph
discussion, equations, and footnotes — exactly the case where sibling
headers are justified.
Also updated CLAUDE.md decision tree with guidance on when parallel
named concepts should get their own headers.
A section with exactly one child header should have the child removed,
letting content flow under the parent. Also renumbered Rule 8→9 for
header level decisions and updated the decision tree.
A lone sub-header is the only child at its level under a parent header,
adding no navigational value while fragmenting continuous prose. Removed
all 64 instances across 14 chapters, letting content flow directly under
the parent header.
Cross-reference IDs preserved as []{#sec-...} anchors where needed.
Affected: introduction, dl_primer, dnn_architectures, training,
frameworks, workflow, data_engineering, data_selection, hw_acceleration,
benchmarking, serving, ops, model_compression, responsible_engr.
Removed three #### headers (Distributed Processing Architecture,
Battery and Thermal Constraints, Extreme Resource Constraints) that
were the only sub-header under their parent ### section. The content
flows directly as prose under the parent header instead.
The ##### headers under Data/Model/System/Ethical Challenges sections
were too fine-grained — each covered only 1-2 paragraphs under a parent
#### that already named the theme. Converted to flowing prose with
inline emphasis for key terms.
Also updated CLAUDE.md style guide with "too granular for headers"
exception to prevent this pattern in future edits.
Codifies rules for consistent use of headers vs bold text across
all QMD chapters. Headers for section divisions, bold only inside
callouts, definition lists, fallacy/pitfall labels, and list items.
Training and Frameworks chapters restructured for clarity.
Data Selection chapter expanded. Header-includes.tex updated.
Various minor fixes across all chapter files.
Downscale 3 cover images (hw_acceleration, workflow, conclusion) to
1000x571 to match the majority of chapters. Data_engineering, serving,
and data_selection covers left at original dimensions due to different
aspect ratios requiring lossy cropping. Also includes prose and LaTeX
updates across multiple chapters.