🧹 Cleanup Changes:
- Removed check and check-tags commands from CLI
- Cleaned up maintenance.py by removing legacy methods
- Removed command handlers and mappings from main.py
- Deleted binder_legacy file as requested
✅ Verified Functionality:
- All remaining commands tested and working correctly
- help: Shows clean interface without removed commands
- list: Chapter discovery works perfectly (62 chapters)
- status: Configuration status displays correctly
- switch: Format switching works (tested html switch)
- doctor: Health check runs (16/18 checks passed)
- build: Build process starts correctly (tested with foreword)
- preview: Preview server starts correctly
- about: Project information displays properly
- clean: Artifact cleanup works correctly
🎯 Result:
- Streamlined CLI with essential commands only
- No legacy baggage or unused functionality
- All core features preserved and working
🔧 Restored Critical Commands:
- clean: Clean build artifacts and restore configs
- switch: Switch active configuration format
- setup: Setup development environment
- hello: Show welcome message and quick start
- about: Show project information and stats
- check: Check for build artifacts (legacy compatibility)
- check-tags: Check for orphaned git tags
✨ New Modular Architecture:
- CleanCommand: Handles artifact cleanup and config restoration
- MaintenanceCommand: Handles setup, switch, hello, about operations
- All commands properly integrated into main CLI
🎯 Feature Parity Achieved:
- All original binder functionality restored
- Enhanced with better error handling
- Improved user experience with Rich UI
- Modular design for easy maintenance
The CLI migration is now 100% complete with full feature parity
New Commands:
- Add PreviewCommand for live development server with hot reload
- Add DoctorCommand for comprehensive health checks (18 checks)
- Clear command descriptions distinguish build vs preview vs formats
Command Clarity:
- build: Build static files to disk (HTML)
- preview: Start live dev server with hot reload
- pdf: Build static PDF file to disk
- epub: Build static EPUB file to disk
Health Check Features:
- System dependencies (Python, Quarto, Git, Node.js, R)
- Configuration file validation
- Chapter file scanning (62 chapters found)
- Build artifacts status
- Git repository status
- File permissions check
All tests passing - comprehensive CLI ready for use
- Add Netlify badge to meet open source hosting requirements
- Add Edge Impulse logo to acknowledge technical tooling support
- Update Corporate Support description to include technical assistance and hosting services
- Properly recognize both companies' contributions to the project
- Add Enterprise-Scale Infrastructure: AI Factories subsection
- Position AI factories as logical extension of scalable MLOps maturity
- Include technical rationale with post-training and test-time scaling
- Add EU AI Factories initiative footnote for real-world validation
- Maintain academic tone and systems thinking approach
Closes#954
- Add modify_dev_announcement.py script to inject dev preview banner
- Banner shows commit hash, timestamp, and link to stable version
- Make announcement non-dismissible for dev previews
- Maintain original blue announcement styling below dev banner
- Update deploy-preview workflow to use new script
- Script located in tools/scripts/publish/ for external workflow use
Moves the announcement bar configuration to a separate file.
This change allows for easier management of the announcement bar content and enables conditional inclusion based on the build environment. The `dismissable` option is also set to `false` for production builds.
Refactors the section on causes of transient faults for better clarity and flow.
Groups external environmental factors, power/signal integrity issues, and timing/logic vulnerabilities into distinct paragraphs.
Moves the transient fault mechanism figure to be positioned after the external environmental factors paragraph to reinforce the concepts.
Special thanks to @formlsysbookissue for the feedback, so adding to co-author list to credit for help.
Co-authored-by: formlsysbookissue <223422994+formlsysbookissue@users.noreply.github.com>
Improves the section on memory allocation for AI acceleration by providing a clearer definition, highlighting workload-specific challenges, and adding a reference to systolic arrays to illustrate the importance of efficient memory access patterns. These changes aim to enhance the reader's understanding of the critical role memory allocation plays in optimizing AI accelerator performance.
Corrects and standardizes several entries in the benchmarking bibliography file.
This includes:
- Updating title casing for consistency.
- Adding missing 'source' and 'date' fields where applicable.
- Using short names for publisher.
- Standardizing author name formats.
- Adding archive details where applicable.
Elaborates on the tradeoff between performance and energy
efficiency in machine learning systems.
Highlights the importance of considering energy constraints,
especially in edge devices and mobile applications, and
references research on quantization techniques.
- Add proper citations for processor frequency scaling claims using Koomey et al. 2011
- Fix unreferenced INT8 quantization claims with Jacob et al. CVPR 2018 citation
- Add Esser et al. 2019 reference for advanced quantization techniques
- Improve section flow with better contextual introductions and transitions
- Consolidate redundant quantization discussion into coherent narrative
- Connect performance-energy tradeoffs to physical limitations and benchmarking standards
- Reorganize bibliography entries alphabetically for better maintainability
Resolves concerns about unreferenced claims, abrupt transitions, and lack of context.
- Replace unsupported 60% claim with precise 57.3% figure from Boroumand et al. ASPLOS 2018
- Add proper citation for DVFS power reduction claims using Kim et al. HPCA 2008
- Improve DVFS integration by connecting to shared infrastructure discussion
- Link DVFS back to cooling systems showing cascading effects
- Add both new references to bibliography with complete metadata
Resolves concerns about unreferenced claims and abrupt topic transitions.
Thanks to @formlsysbookissue for reporting this issue.
- Added citation [@barroso2022datacenter] to support the claim that memory-bound inference tasks can consume up to 60% of total system power on data movement
- Introduced Dynamic Voltage and Frequency Scaling (DVFS) with proper explanation before its first mention
- Added smooth transition explaining DVFS as a power management technique that adjusts processor voltage and clock frequency based on workload demands
- Maintained academic tone and technical accuracy while improving content flow
Addresses #944
Thanks to @formlsysbookissue for reporting this issue.
- Added comprehensive coverage of all transient fault causes mentioned in characteristics subsection
- Organized causes into logical categories: External Environmental Factors, Power and Signal Integrity Issues, and Timing and Logic Vulnerabilities
- Included detailed explanations for voltage fluctuations, ESD, ground bounce, crosstalk, timing violations, and soft errors in combinational logic
- Maintained existing citations and added proper academic structure
- Ensured consistency between characteristics and causes subsections
Addresses #945
Thanks to @formlsysbookissue for reporting this issue.
- Merged three overlapping subsections (Definition, Importance, Effective) into single cohesive 'Fundamentals and Challenges' subsection
- Added authoritative citations for memory allocation challenges in different architectures (GPUs, TPUs, wafer-scale processors)
- Improved table formatting with bold headers for better visual clarity and readability
- Eliminated redundant explanations while preserving all technical content
- Enhanced pedagogical flow by consolidating related concepts
Addresses #946
Thanks to @formlsysbookissue for highlighting the importance of optical
interconnects in modern AI infrastructure.
- Added discussion of optical interconnects in resource challenges context
- Included concrete examples (TPUv4, Mellanox technologies)
- Added proper citation to Jouppi et al. 2023 TPU paper
- Connected optical technology adoption to germanium supply concerns
- Added explanatory footnote about Mellanox
This addition helps readers understand how emerging interconnect technologies
both address bandwidth limitations and create new material dependencies.
Part of #947
Thanks to @formlsysbookissue for identifying this important clarification.
- Updated Table 3.1: Dendrites now map to inputs, synapses to weights
- Revised explanatory text throughout Chapter 3 to maintain distinction
- Updated quiz question to reflect corrected understanding
- Renumbered mapping list for clarity (1-5 instead of 1-4)
This correction helps students build accurate mental models of how biological
neural structures relate to artificial neural networks.
Part of #947
Corrected a typo in the EPUB path in 'quarto/_redirects' and added missing redirect rules to both 'quarto/_redirects' and 'netlify.toml'.
This ensures that the redirect behavior is consistent across both Netlify and direct GitHub Pages access, resolving discrepancies and improving robustness.
Move compression scripts from tools/scripts/publish/ to quarto/publish/:
- compress_epub.py → quarto/publish/compress_epub.py
- compress_pdf.py → quarto/publish/compress_pdf.py
Rationale:
- Publishing scripts are part of Quarto workflow, not general tooling
- quarto/ directory is mounted in containers, tools/ is not
- Cleaner separation: tools/ = environment, quarto/publish/ = content packaging
- Fixes container path issues where tools/scripts/publish/ was not available
Updated all workflow references to use new paths.
This should resolve the 'No such file or directory' errors in containers.
- Remove quarto/netlify.toml (not used in current deployment)
- Current architecture: mlsysbook.ai → Netlify proxy → GitHub Pages
- Root netlify.toml handles proxy configuration with all features
- Quarto version was outdated (wrong PDF path, missing EPUB redirect)
This eliminates confusion about deployment configuration and maintains
single source of truth in root netlify.toml for proxy setup.
The Roboflow dataset link was duplicated, with an embedded image
that wasn't rendering correctly. This change removes the redundant
link, leaving only the primary hyperlink.
- Remove clean-svgs.sh as it has been fully replaced by clean_svgs.py
- All Quarto configurations now use the cross-platform Python version
- Eliminates dead code and prevents confusion about which script to use
- Add clean_svgs.py as cross-platform replacement for clean-svgs.sh
- Resolves Windows container compatibility issue (os error 193)
- Update all Quarto configs to use Python script
- Maintain all original functionality with improved error handling
- Add comprehensive logging and debug mode
- Use pathlib for cross-platform path operations
- Mark original bash script as deprecated
Fixes Windows build error: '%1 is not a valid Win32 application'
- Add /epub redirect to assets/Machine-Learning-Systems.epub in netlify.toml
- Add /epub redirect to _redirects file for GitHub Pages fallback
- Configure proper MIME type (application/epub+zip) for EPUB files
- Set appropriate caching headers for EPUB downloads
- Maintain consistency with existing PDF redirect patterns
- Replace single PDF button with separate PDF and EPUB buttons
- Use file-pdf icon for PDF and book icon for EPUB
- Provide direct one-click access to both download formats
- Maintain existing PDF functionality while adding EPUB support
- Reduce code block margins from 2rem to 1rem for .listing elements
- Reduce code block padding from 0.75rem to 0.5rem for better compactness
- Reduce pre block margins from 1.5em to 1em and padding from 1em to 0.75em
- Center tables using margin: auto for better visual presentation
- Add specific centering rule for tables within figures
Updates the EPUB configuration to enable hover effects for footnotes and citations, enhancing user interaction.
Also enables linking of citations to their corresponding references for improved navigation within the document.
- Set footnotes-hover to false to disable click-to-reveal behavior
- Set reference-location to document to show footnotes at bottom of sections
- Disable link-external-newwindow for better EPUB compatibility
- Ensures footnotes are visible by default rather than hidden behind clicks
- Add comprehensive footnote styling with Harvard Crimson theme colors
- Style footnote reference links with hover effects and proper superscript
- Improve footnote content typography with better spacing and readability
- Add visual separator line above footnotes section
- Style footnote numbers with crimson color and proper weight
- Enhance back-reference links with subtle hover effects
- Add special styling for code within footnotes
- Ensure footnotes are properly formatted and visually distinct
- Remove box-shadow and border-radius from images to eliminate unwanted backgrounds
- Set explicit transparent background for images and figures
- Remove duplicate image styling blocks for cleaner CSS
- Change figcaption alignment from center to left for better readability
- Add border and outline none to prevent inherited styling issues
- Consolidate image styling into single Enhanced Figure section
Refines the visibility of the changelog based on the output format.
The full changelog is now displayed only in HTML format with Javascript enabled.
For PDF and EPUB formats, a link to the online changelog is provided instead.
Adjusts the visibility conditions for SocratiQ content.
Now includes `epub` format alongside `pdf` for visible content,
and specifies `html:js` to ensure SocratiQ functionality is enabled
only when JavaScript is active in the HTML output. This ensures
SocratiQ is only active in the online version.
Enhances the data governance diagram by improving readability and information display.
This includes adjusting fonts, modifying node styles, and refining labels for better visual representation and comprehension of the data governance pillars.