Commit Graph

56 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
9d840fc1a0 Merge branch 'dev' into feature/book-volumes 2026-02-10 13:12:34 -05:00
github-actions[bot]
cdd15b5ca1 Update contributors list [skip ci] 2026-01-25 13:41:02 +00:00
Vijay Janapa Reddi
103545ee23 Merge remote-tracking branch 'origin/dev' into feature/volume-restructure
# Conflicts:
#	.codespell-ignore-words.txt
#	README.md
2026-01-24 18:41:46 -05:00
Didier Durand
72adaae229 [Doc]: fixing some typos (#1133) 2026-01-23 14:00:43 -05:00
Vijay Janapa Reddi
b6d8a8eb64 feat(contributors): add fun emojis, legend, and sorting
- Custom emoji set: 🪲 Bug Hunter, 🧑‍💻 Code Contributor, ✍️ Documentation Hero, etc.
- Add legend to all README contributor sections
- Sort contributors by contribution count (most active first)
- Remove old emoji key links, use inline legend instead
- Sync emoji mappings across both generator scripts
2026-01-22 10:23:30 -05:00
Vijay Janapa Reddi
26e9b65db1 Merge latest dev updates into feat/volume-restructure 2026-01-21 19:30:00 -05:00
Vijay Janapa Reddi
a59a169a7f Add sectioned contributor system with per-project tracking
- Rename workflow to update-contributors.yml (more generic name)
- Add generate_main_readme.py to create sectioned contributor table
- Update main README with sections: Book, TinyTorch, Kits, Labs
- Add contribution type badges (emojis) to contributor entries
- Add Marcelo Rovai to kits contributors
- Update workflow to handle all project contributor files
2026-01-21 19:21:47 -05:00
Vijay Janapa Reddi
1f951c2120 Improve kits section table formatting
Update tables in hardware kits documentation with proper formatting.
2026-01-21 17:12:14 -05:00
Vijay Janapa Reddi
0430c85639 Populate contributors from git history
- Scanned git history for each project folder
- Added historical contributors to .all-contributorsrc files
- Generated README contributor tables with emoji badges
- Added generate_readme_tables.py script for future updates

Contributors added:
- Book: profvjreddi, Mjrovai, GabrielAmazonas, hzeljko
- Kits: profvjreddi
- Labs: profvjreddi
- TinyTorch: AmirAlasady, profvjreddi, kai4avaya, minhdang26403,
             didier-durand, karthikdani, jettythek
2026-01-20 13:48:55 -05:00
Vijay Janapa Reddi
149d945a51 Add per-project All Contributors setup
Set up separate contributor tracking for each sub-project:
- book/.all-contributorsrc - Book content contributors
- kits/.all-contributorsrc - Hardware kit contributors
- labs/.all-contributorsrc - Lab exercise contributors
- tinytorch/.all-contributorsrc - Framework contributors

Each project now has:
- Its own .all-contributorsrc config file
- Contributors section in README with All Contributors format
- Project-specific contribution types in the recognition guide
- Cheatsheet in CONTRIBUTING.md (where applicable)

Added @AmirAlasady as first TinyTorch contributor for bug report #1122.

Usage: Comment on any issue/PR with:
@all-contributors please add @username for bug, code, doc, or ideas
2026-01-20 13:35:00 -05:00
Vijay Janapa Reddi
f31355c889 feat(volumes): implement volume separation for textbook
Add infrastructure for publishing Volume I and Volume II as standalone sites:

Volume Configs:
- Add _quarto-html-vol1.yml, _quarto-pdf-vol1.yml, _quarto-epub-vol1.yml
- Add _quarto-html-vol2.yml, _quarto-pdf-vol2.yml, _quarto-epub-vol2.yml
- Update navbar cross-links in all configs (book, kits, labs)

Volume Content:
- Add vol1/index.qmd, vol1/frontmatter/, vol1/backmatter/
- Add vol2/index.qmd, vol2/frontmatter/, vol2/backmatter/

Landing Page:
- Create landing/index.html with AI Engineering branding
- Add navigation to all resources (Vol I, Vol II, Full, TinyTorch, Kits)

Workflows:
- Add build_target input to book-build-container.yml (combined/vol1/vol2/all)
- Add deploy_target input to book-publish-live.yml
- Add matrix entries for volume-specific builds (Linux)
- Update deployment to handle /book/, /vol1/, /vol2/, and root

CLI:
- Update binder CLI to support --vol1 and --vol2 flags

Documentation:
- Update README.md with volume links and new URL structure
- Update book/README.md with correct paths

URL Structure:
- mlsysbook.ai/ -> Landing page
- mlsysbook.ai/book/ -> Full textbook
- mlsysbook.ai/vol1/ -> Volume I standalone
- mlsysbook.ai/vol2/ -> Volume II standalone
2026-01-10 09:28:25 -05:00
Vijay Janapa Reddi
d1ce3a21a1 fix(kits): repair broken lab links and clarify XIAOML Kit terminology
Lab links using @sec-... cross-references were not resolving in
markdown links, causing 404 errors. Replaced with relative file paths.

Also clarified the distinction between XIAO ESP32S3 Sense (Vision/Sound)
and XIAOML Kit (Vision/Sound/Motion via expansion board IMU) throughout
the kits documentation for consistency.
2026-01-07 08:33:57 -05:00
Vijay Janapa Reddi
c0a91c0467 fix(kits): repair broken lab links and clarify XIAOML Kit terminology
Lab links using @sec-... cross-references were not resolving in
markdown links, causing 404 errors. Replaced with relative file paths.

Also clarified the distinction between XIAO ESP32S3 Sense (Vision/Sound)
and XIAOML Kit (Vision/Sound/Motion via expansion board IMU) throughout
the kits documentation for consistency.
2026-01-07 08:33:40 -05:00
Vijay Janapa Reddi
da8e419df6 Merge dev: bring in infrastructure changes
- Cloudflare migration (Netlify removed)
- Book deployed to /book/
- Publish All workflow
- gh-pages cleanup
- Changelog deprecated
- MIT Press reviewer feedback
- Labs rename (collabs -> labs)
2026-01-06 15:24:07 -05:00
Vijay Janapa Reddi
81041d637d refactor(infra): deploy book to /book/, remove Netlify, use Cloudflare
- Deploy textbook to /book/ subdirectory instead of root
- Remove Netlify config (netlify.toml, _redirects files)
- Remove Netlify badges from footer, index, and acknowledgements
- Add root index.html redirect to /book/ as fallback
- Simplify deployment (no more tinytorch/kits preservation needed)
- Update 404.qmd with correct paths
- Each subsite now deploys to its own directory:
  /book/ (textbook), /kits/ (hardware), /tinytorch/ (framework)
2026-01-06 11:02:25 -05:00
Vijay Janapa Reddi
e5b3902e3f refactor(infra): deploy book to /book/, remove Netlify, use Cloudflare
- Deploy textbook to /book/ subdirectory instead of root
- Remove Netlify config (netlify.toml, _redirects files)
- Remove Netlify badges from footer, index, and acknowledgements
- Add root index.html redirect to /book/ as fallback
- Simplify deployment (no more tinytorch/kits preservation needed)
- Update 404.qmd with correct paths
- Each subsite now deploys to its own directory:
  /book/ (textbook), /kits/ (hardware), /tinytorch/ (framework)
2026-01-06 11:02:13 -05:00
Vijay Janapa Reddi
abcd7e668f feat: add Happy New Year announcement banners across all sites
- Book: New Year greeting + navbar, TinyTorch, Kits, Newsletter
- Kits: New Year greeting + navbar, Kits intro, Textbook link
- Labs: New Year greeting + navbar, Labs coming 2026, Textbook link
2026-01-05 18:55:22 -05:00
Vijay Janapa Reddi
34b350dbec refactor: rename collabs to labs
- Rename collabs/ directory to labs/
- Rename workflow files: collabs-publish-*.yml → labs-publish-*.yml
- Update all paths in workflows, Quarto configs, and navbars
- Update cross-references in book, kits, and dev-landing
- Update site-url to mlsysbook.ai/labs/

Note: GitHub repo variable DEV_COLLABS_PATH needs to be renamed
to DEV_LABS_PATH in repository settings.
2026-01-05 18:45:50 -05:00
Vijay Janapa Reddi
2f9bde47ea cleanup: remove macOS metadata files from kits
Remove 23 accidentally committed ._*xref.json files that are
macOS resource fork metadata. These files serve no purpose in
the repository and clutter the codebase.
2026-01-04 07:21:37 -05:00
Vijay Janapa Reddi
63a7984c87 feat(kits): add dev preview announcement banner 2025-12-30 22:29:23 -05:00
Vijay Janapa Reddi
9b4888f0ea feat: ecosystem consistency improvements
- Add custom 404 pages for Kits, Collabs, and TinyTorch
- Update OG images to use high-res book cover (1200x630px)
- Add PWA support with site.webmanifest and apple-touch-icon
- Enable TOC for Collabs (was disabled)
- Move subscribe-modal.js to _brand as shared asset
- Add theme-color meta tags matching project accent colors
2025-12-30 22:23:09 -05:00
Vijay Janapa Reddi
fddbca7e2f Add Open Graph and Twitter Card metadata to all Quarto sites
- Book: site-url, description, og:image with cover art
- Kits: site-url, description, og:image with favicon
- Collabs: site-url, description, og:image with favicon

Enables proper social media previews when sharing links on
LinkedIn, Twitter, Facebook, Discord, Slack, etc.
2025-12-30 22:00:11 -05:00
Vijay Janapa Reddi
fc971d47d3 Unify navbar, fonts, and styles across book, kits, and collabs
- Add Google Fonts loading (Inter, JetBrains Mono) to all projects
- Align typography and navbar styling across ecosystem
- Update _brand/base.scss as canonical reference for shared styles
- Update _brand/tokens.scss to match book crimson accent
- Add consistent mobile responsive styles to collabs
- Document architecture for maintaining style consistency
2025-12-30 21:41:48 -05:00
Vijay Janapa Reddi
22ae3d92a9 docs: reframe README as AI engineering discipline flagship
- Add punch line and mission statement establishing AI engineering
- Rename "About This Project" to "About the Ecosystem"
- Update Learning Stack diagram with systems-focused descriptions
- Move "Start Here" earlier for immediate action orientation
- Add Research to Teaching Loop section under What Makes This Different
- Expand Support section with mission tracking and impact explanation
- Update book/README.md with detailed learning content
- Update kits/README.md with consistent template structure
- Fix all kits links to use mlsysbook.ai/kits
- Change voice from "I" to "we" throughout
2025-12-29 23:53:05 -05:00
Vijay Janapa Reddi
21f444d45e fix: add favicon config to Kits and Co-Labs html configs 2025-12-29 22:27:06 -05:00
Vijay Janapa Reddi
cba96cbd29 style: ensure subscribe button matches other navbar icons across all projects 2025-12-28 20:37:01 -05:00
Vijay Janapa Reddi
2cd085b22e style: add consistent dark/light mode toggle icons to kits and collabs 2025-12-28 20:22:22 -05:00
Vijay Janapa Reddi
91ebd7b7ed feat: add Co-Labs placeholder infrastructure
- Add collabs/ directory with Quarto project configuration
- Create landing page with "Coming 2026" placeholder content
- Add CI/CD workflow for dev deployment (collabs-publish-dev.yml)
- Update navbar in book and kits to link to /collabs/
- Add .gitignore to exclude tex build artifacts from book
2025-12-28 15:21:51 -05:00
Vijay Janapa Reddi
d4edaea714 style: unify subscribe modal branding and use relative navbar links
- Update all subscribe modals to show just "MLSysBook" branding
- Change navbar project links to relative paths for dev site compatibility
- Update book, kits, and tinytorch configs consistently
2025-12-28 15:04:02 -05:00
Vijay Janapa Reddi
8b93b586d7 refactor(kits): update CI/CD workflows and add README
- Change workflow icon to 📦 (package)
- Update dev workflow to deploy via SSH to dev repo
- Use DEV_KITS_PATH variable for consistency
- Add README.md with quick start and directory structure
2025-12-28 14:01:08 -05:00
Vijay Janapa Reddi
849c69a8a9 feat(ci): add PDF build and publish workflow for Hardware Kits
- Create kits-build-pdfs.yml using Docker container with TeX Live
- Update kits-publish-dev.yml to build PDF and deploy with site
- Update kits-publish-live.yml to build PDF and deploy with site
- Add Downloads menu to navbar with Hardware Kits PDF link
- Add _redirects for /kits/pdf shortcut
2025-12-28 13:38:47 -05:00
Vijay Janapa Reddi
0492ebaaac feat(kits): add custom TikZ cover page with circuit board design
- Create custom LaTeX cover page using labdivision-style circuit decorations
- Use teal brand color with traces, nodes, and subtle geometric background
- Display HARDWARE/KITS title on two lines with authors and companion text
- Remove titlepage extension config in favor of custom LaTeX implementation
- Add titlepage-bg.tex for potential future background customization
2025-12-28 13:25:55 -05:00
Vijay Janapa Reddi
959c6cbedf style: redesign Kits PDF cover per MIT Press guidance
- Remove background image (was too similar to main textbook)
- Use teal (#0d9488) solid color cover with white text
- Update author attribution: 'Marcelo Rovai, with Vijay Janapa Reddi'
- Add 'A Companion to Introduction to Machine Learning Systems' tagline
- Creates distinct visual identity while maintaining series connection
2025-12-28 12:10:39 -05:00
Vijay Janapa Reddi
6a1e477510 fix: use Arabic page numbers throughout Kits PDF
- Remove Roman numeral frontmatter/mainmatter switching
- Set Arabic page numbering in before-body-includes.tex
- Simplify chapter command to just reset footnote counter
- All pages now use regular numbers (1, 2, 3...) not (i, ii, iii...)
2025-12-28 12:06:02 -05:00
Vijay Janapa Reddi
c9d0daf8d7 feat: add cover background image to Kits PDF
- Copy cover-image-transparent.png from book
- Add coverpage-bg-image and bg-image positioning config
- Add coverpage-author array for proper cover formatting
- Creates visual consistency with main textbook
2025-12-28 11:28:32 -05:00
Vijay Janapa Reddi
46aa5281da fix: add titlepage-pdf format check to inject_parts filter
The filter was only checking for 'pdf' format but we render with
'--to titlepage-pdf', so the filter wasn't activating
2025-12-28 11:25:41 -05:00
Vijay Janapa Reddi
920b1a418b fix: correct PDF config for part filter and author formatting
- Fix filter-metadata format for inject_parts.lua (nested under filter-metadata.part-summaries)
- Change author to array format for proper newline separation
- Update titlepage elements with separate author lines
2025-12-28 11:24:15 -05:00
Vijay Janapa Reddi
8327c98696 feat: add subscribe popup modal to Kits site
- Copy subscribe-modal.js from book
- Update navbar Subscribe link to use local #subscribe
- Add script include to HTML format config
- Modal now opens in-place instead of redirecting to mlsysbook.ai
2025-12-28 11:21:54 -05:00
Vijay Janapa Reddi
f87c88f699 refactor: switch from profiles to symlink config approach for PDF builds
- Move _quarto.yml to config/_quarto-html.yml
- Move profile PDF config to config/_quarto-pdf.yml
- Create symlink _quarto.yml -> config/_quarto-html.yml
- Update Makefile to switch configs via symlink (matches book approach)
- This fixes the per-file PDF rendering issue caused by profile merging
2025-12-28 11:17:30 -05:00
Vijay Janapa Reddi
4509f1142a fix: correct PDF build command for unified book output
- Use 'quarto render --profile pdf' instead of '--to titlepage-pdf'
- Rename format from titlepage-pdf to pdf (extension adds titlepage filters)
- Profile approach works correctly with book project type
2025-12-28 11:10:23 -05:00
Vijay Janapa Reddi
3b10cb2b18 style: update Kits PDF cover to match book's title structure
Cover now reads 'Hands-On Labs for Machine Learning Systems' mirroring
the book's 'Introduction to Machine Learning Systems' format
2025-12-28 11:05:12 -05:00
Vijay Janapa Reddi
5bdec81783 refactor: simplify PDF profile to use only titlepage-pdf format
- Remove redundant standard PDF format from profile
- Update Makefile to use 'quarto render --to titlepage-pdf --profile pdf'
- Streamline build process to single PDF format with cover page
2025-12-28 11:02:37 -05:00
Vijay Janapa Reddi
5ed5095118 feat: add titlepage-pdf support for Kits PDF build
Copy mlsysbook-ext/titlepage extension from book and configure
titlepage-pdf format with custom cover page for Hardware Kits PDF.

Build with: quarto render --to titlepage-pdf --profile pdf
2025-12-28 10:59:41 -05:00
Vijay Janapa Reddi
628344883a feat: add dark mode support to Kits site
Create dark-mode.scss with teal accent color adaptation and configure
Quarto to enable light/dark theme toggle matching the Book behavior.
2025-12-28 10:53:46 -05:00
Vijay Janapa Reddi
312f7c8dbd docs: add purchase links to platform overview pages
Add "Where to Buy" section to each hardware platform overview page
with direct links to official vendors and current pricing.
2025-12-28 10:06:40 -05:00
Vijay Janapa Reddi
91241ce9ad docs: add textbook connection to Kits opening paragraph 2025-12-28 10:00:10 -05:00
Vijay Janapa Reddi
47cfa50b55 style: remove top margin from carousel caption bar 2025-12-28 09:59:51 -05:00
Vijay Janapa Reddi
1dd5d4897e fix: update hardware kit prices to December 2025 values
Updated prices across all pages based on current retailer pricing:
- XIAOML Kit: ~$40 (was $15-50)
- Grove Vision AI V2: ~$25 (was $20-30)
- Arduino Nicla Vision: ~$95 (was $100-120)
- Raspberry Pi: $60-145 (reflects 2025 price increases)

Also fixed carousel caption bar padding for even spacing.
2025-12-28 08:19:14 -05:00
Vijay Janapa Reddi
baf11336f8 refactor: improve Kits content organization per MIT Press standards
Getting Started:
- Restructured as step-by-step guide (Select → Setup → Choose Lab → Start)
- Added textbook connection section for academic context
- Clearer prerequisite expectations

Platforms:
- Renamed title from "Hardware Kits" to "Hardware Platforms" (avoid site title collision)
- Removed system requirements (moved to IDE Setup where they belong)
- Focused purely on hardware specifications and comparisons

IDE Setup:
- Added System Requirements section (moved from Platforms)
- Streamlined introduction
- Now contains all setup-related prerequisites in one place

Style:
- Improved carousel caption bar legibility (bolder text, larger font)
2025-12-27 18:07:54 -05:00
Vijay Janapa Reddi
754bd218df refactor: reorganize Kits content structure
Replaced old content files with new streamlined organization:
- getting-started.qmd: Concise hardware selection and lab navigation
- platforms.qmd: Detailed hardware specs and comparisons
- ide-setup.qmd: Development environment setup procedures

Removed old files:
- ide_setup.qmd (replaced by ide-setup.qmd)
- kits.qmd (content moved to platforms.qmd)
- labs.qmd (content redistributed)

Getting Started is now action-oriented rather than pedagogical.
2025-12-27 18:00:29 -05:00