mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2025-12-05 19:17:28 -06:00
Compare commits
11 Commits
7347932fd8
...
1d9610e1bb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d9610e1bb | ||
|
|
4374fa6738 | ||
|
|
bfd45bd7a6 | ||
|
|
4111ae4a85 | ||
|
|
7fb47b274d | ||
|
|
a54c1b716a | ||
|
|
188f80e3ba | ||
|
|
439b29e562 | ||
|
|
92184a711c | ||
|
|
f2586f9046 | ||
|
|
24d241c26d |
@@ -105,10 +105,14 @@ This textbook gives you a **systems level understanding of machine learning**, b
|
||||
|
||||
### Show Support
|
||||
|
||||
Star the repository. It signals interest and helps us secure resources for open education.
|
||||
Star the repository to join us on the journey.
|
||||
|
||||
[](https://github.com/harvard-edge/cs249r_book/stargazers)
|
||||
|
||||
[](https://star-history.com/#harvard-edge/cs249r_book&Date)
|
||||
|
||||
**Tracking our way to 1 million learners.**
|
||||
|
||||
### Fund the Mission
|
||||
Your support helps provide TinyML kits, workshops, and infrastructure for learners worldwide.
|
||||
|
||||
|
||||
@@ -14,49 +14,53 @@
|
||||
<button class="modal-close" data-close-modal aria-label="Close">×</button>
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<div class="modal-icon">📚</div>
|
||||
<h2 class="modal-title">Get MLSysBook Updates</h2>
|
||||
<p class="modal-subtitle">Be the first to know about new chapters, labs, and resources.</p>
|
||||
<div class="modal-badges">
|
||||
<span class="modal-badge">📚 MLSysBook</span>
|
||||
<span class="modal-badge-plus">+</span>
|
||||
<span class="modal-badge">🔥 TinyTorch</span>
|
||||
</div>
|
||||
<h2 class="modal-title">Stay in the Loop</h2>
|
||||
<p class="modal-subtitle">Get updates on new chapters, hands-on labs, and ML systems resources.</p>
|
||||
</div>
|
||||
<form id="subscribe-modal-form" class="subscribe-form" action="https://buttondown.email/api/emails/embed-subscribe/mlsysbook" method="post">
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="modal-first-name">First name</label>
|
||||
<input type="text" id="modal-first-name" name="metadata__first_name" required placeholder="First name">
|
||||
<input type="text" id="modal-first-name" name="metadata__first_name" required placeholder="Jane">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="modal-last-name">Last name</label>
|
||||
<input type="text" id="modal-last-name" name="metadata__last_name" required placeholder="Last name">
|
||||
<input type="text" id="modal-last-name" name="metadata__last_name" required placeholder="Smith">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="modal-email">Email</label>
|
||||
<input type="email" id="modal-email" name="email" required placeholder="you@example.com">
|
||||
<input type="email" id="modal-email" name="email" required placeholder="jane@university.edu">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Role</label>
|
||||
<label>I am a...</label>
|
||||
<div class="role-options role-options-three-compact">
|
||||
<label class="role-option">
|
||||
<input type="radio" name="metadata__role" value="educator" required>
|
||||
<span class="role-label">Educator</span>
|
||||
<span class="role-label">👩🏫 Educator</span>
|
||||
</label>
|
||||
<label class="role-option">
|
||||
<input type="radio" name="metadata__role" value="student">
|
||||
<span class="role-label">Student</span>
|
||||
<span class="role-label">🎓 Student</span>
|
||||
</label>
|
||||
<label class="role-option">
|
||||
<input type="radio" name="metadata__role" value="industry">
|
||||
<span class="role-label">Industry</span>
|
||||
<span class="role-label">💼 Industry</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="modal-organization">Organization <span class="optional-label">(optional)</span></label>
|
||||
<input type="text" id="modal-organization" name="metadata__organization" placeholder="University, company, or school">
|
||||
<input type="text" id="modal-organization" name="metadata__organization" placeholder="University or company">
|
||||
</div>
|
||||
<input type="hidden" name="tag" value="mlsysbook-textbook">
|
||||
<button type="submit" class="btn btn-primary subscribe-btn">Subscribe</button>
|
||||
<p class="form-note">No spam. Unsubscribe anytime.</p>
|
||||
<p class="form-note">No spam, ever. Unsubscribe anytime.</p>
|
||||
</form>
|
||||
<div id="modal-subscribe-success" class="subscribe-success" style="display: none;">
|
||||
<div class="success-icon">🎉</div>
|
||||
@@ -153,11 +157,31 @@
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.modal-icon {
|
||||
font-size: 2.5rem;
|
||||
.modal-badges {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.modal-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.25rem;
|
||||
padding: 0.5rem 0.875rem;
|
||||
background: #f1f5f9;
|
||||
border-radius: 20px;
|
||||
font-size: 0.875rem;
|
||||
font-weight: 500;
|
||||
color: #334155;
|
||||
}
|
||||
|
||||
.modal-badge-plus {
|
||||
color: #94a3b8;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.modal-title {
|
||||
font-size: 1.75rem;
|
||||
font-weight: 700;
|
||||
@@ -369,6 +393,15 @@
|
||||
color: #cbd5e1;
|
||||
}
|
||||
|
||||
body.quarto-dark .modal-badge {
|
||||
background: #334155;
|
||||
color: #e2e8f0;
|
||||
}
|
||||
|
||||
body.quarto-dark .modal-badge-plus {
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
body.quarto-dark .form-group input[type="text"],
|
||||
body.quarto-dark .form-group input[type="email"] {
|
||||
background: #0f172a;
|
||||
|
||||
@@ -396,6 +396,17 @@ div[class*="margin"] {
|
||||
&.active {
|
||||
color: $link-color-dark !important;
|
||||
}
|
||||
|
||||
// Ensure all Bootstrap icons in navbar have consistent color
|
||||
.bi {
|
||||
color: inherit !important;
|
||||
fill: currentColor !important;
|
||||
}
|
||||
|
||||
// Target SVG icons directly
|
||||
svg {
|
||||
fill: currentColor !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Dark mode toggle - show sun icon when in dark mode (clicking switches TO light)
|
||||
|
||||
@@ -1310,7 +1310,34 @@ blockquote {
|
||||
}
|
||||
}
|
||||
|
||||
// Medium tablets and small laptops - show shortened title
|
||||
// Medium tablets and small laptops - icons only in navbar
|
||||
@media (min-width: 769px) and (max-width: 1100px) {
|
||||
// Hide text labels, show only icons
|
||||
.navbar-nav .nav-link {
|
||||
.menu-text,
|
||||
.nav-text {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
// Keep icons visible and properly sized
|
||||
.bi {
|
||||
font-size: 1.1rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Also hide text in dropdown toggles
|
||||
.navbar-nav .dropdown-toggle {
|
||||
.menu-text {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Tighter spacing for icon-only nav
|
||||
.navbar-nav .nav-item {
|
||||
margin: 0 0.125rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 769px) and (max-width: 991px) {
|
||||
.navbar-brand {
|
||||
font-size: 1.1rem !important;
|
||||
|
||||
@@ -64,19 +64,19 @@ website:
|
||||
collapse-below: "md"
|
||||
title: "Machine Learning Systems"
|
||||
right:
|
||||
- icon: fire
|
||||
text: "TinyTorch"
|
||||
href: https://tinytorch.ai
|
||||
target: _blank
|
||||
- icon: code
|
||||
text: "Hands-on"
|
||||
menu:
|
||||
- icon: code
|
||||
text: "Labs"
|
||||
href: contents/labs/labs.qmd
|
||||
href: /labs
|
||||
- icon: box
|
||||
text: "Kits"
|
||||
href: contents/labs/kits.qmd
|
||||
- icon: fire
|
||||
text: "TinyTorch"
|
||||
href: https://tinytorch.ai
|
||||
target: _blank
|
||||
href: /kits
|
||||
- text: "Downloads"
|
||||
menu:
|
||||
- icon: file-pdf
|
||||
@@ -87,10 +87,6 @@ website:
|
||||
text: "EPUB"
|
||||
href: assets/downloads/Machine-Learning-Systems.epub
|
||||
target: _blank
|
||||
- icon: envelope
|
||||
text: "Subscribe"
|
||||
href: https://buttondown.email/mlsysbook
|
||||
target: _blank
|
||||
- icon: star
|
||||
text: "Star"
|
||||
href: https://github.com/harvard-edge/cs249r_book
|
||||
@@ -99,6 +95,9 @@ website:
|
||||
text: "Support"
|
||||
href: https://opencollective.com/mlsysbook
|
||||
target: _blank
|
||||
- icon: envelope
|
||||
text: "Subscribe"
|
||||
href: https://buttondown.email/mlsysbook
|
||||
- icon: github
|
||||
text: "GitHub"
|
||||
menu:
|
||||
|
||||
@@ -12,8 +12,8 @@ website:
|
||||
type: primary
|
||||
position: below-navbar
|
||||
content: |
|
||||
🎄 **December Release:** Tiny🔥Torch. Don't just `import torch`. [Build it →](https://mlsysbook.github.io/TinyTorch/intro.html)<br>
|
||||
🎄 **December Release:** Tiny🔥Torch. Don't just `import torch`. [Build it →](https://tinytorch.ai)<br>
|
||||
|
||||
🌟 **2025 Goal:** Help us reach 10,000 stars. Each star spreads the word. [Learn more ↓](#support-our-mission)<br>
|
||||
🌟 **2025 Goal reached!** 10,000 stars. Thank you for your support!<br>
|
||||
|
||||
🎉 **Coming 2026:** Textbook published by The MIT Press. [See the news →](https://www.linkedin.com/posts/vijay-janapa-reddi-63a6a173_tinyml-tikz-ai-activity-7338324711145136128-6WU-?utm_source=share&utm_medium=member_desktop&rcm=ACoAAA-V7E4BcYtyZgLSeGhXC2t9jRSlmazfp-I)
|
||||
@@ -2171,7 +2171,7 @@ Our KWS system exemplifies governance challenges that arise when sophisticated s
|
||||
\resizebox{.8\textwidth}{!}{
|
||||
\begin{tikzpicture}[line join=round,font=\usefont{T1}{phv}{m}{n}]
|
||||
%Gear style
|
||||
% #1 number of teeths
|
||||
% #1 number of teeth
|
||||
% #2 radius intern
|
||||
% #3 radius extern
|
||||
% #4 angle from start to end of the first arc
|
||||
|
||||
@@ -1545,7 +1545,7 @@ pics/stit/.style = {
|
||||
}
|
||||
}
|
||||
%gear
|
||||
% #1 number of teeths
|
||||
% #1 number of teeth
|
||||
% #2 radius intern
|
||||
% #3 radius extern
|
||||
% #4 angle from start to end of the first arc
|
||||
|
||||
@@ -1281,7 +1281,7 @@ The operational frameworks, infrastructure components, and governance practices
|
||||
```{.tikz}
|
||||
\begin{tikzpicture}[line join=round,font=\small\usefont{T1}{phv}{m}{n}]
|
||||
\definecolor{Siva}{RGB}{161,152,130}
|
||||
% #1 number of teeths
|
||||
% #1 number of teeth
|
||||
% #2 radius intern
|
||||
% #3 radius extern
|
||||
% #4 angle from start to end of the first arc
|
||||
|
||||
@@ -1470,7 +1470,7 @@ arc[radius=0.53*\ra, start angle=245, end angle= 290];
|
||||
%%top
|
||||
\begin{scope}[local bounding box=GEAR,shift={($(90: 0.5*\ra)+(0,-0.75)$)},
|
||||
scale=1.0, every node/.append style={transform shape}]
|
||||
% #1 number of teeths
|
||||
% #1 number of teeth
|
||||
% #2 radius intern
|
||||
% #3 radius extern
|
||||
% #4 angle from start to end of the first arc
|
||||
|
||||
@@ -1827,7 +1827,7 @@ LineA/.style={violet!80!black!50,line width=3pt,shorten <=2pt,shorten >=2pt,{{Tr
|
||||
Line/.style={violet!80!black!50,line width=2pt,shorten <=2pt,shorten >=10pt}
|
||||
}
|
||||
%Gear
|
||||
% #1 number of teeths
|
||||
% #1 number of teeth
|
||||
% #2 radius intern
|
||||
% #3 radius extern
|
||||
% #4 angle from start to end of the first arc
|
||||
@@ -2092,7 +2092,7 @@ Online learning systems represent another unique attack surface. These systems c
|
||||
Line/.style={line width=1.0pt,Violet,text=black},
|
||||
DLine/.style={dashed,line width=1.0pt,Violet,text=black}
|
||||
}
|
||||
% #1 number of teeths
|
||||
% #1 number of teeth
|
||||
% #2 radius intern
|
||||
% #3 radius extern
|
||||
% #4 angle from start to end of the first arc
|
||||
@@ -3287,7 +3287,7 @@ Larrow/.style={fill=orange, single arrow, inner sep=2pt, single arrow head exte
|
||||
single arrow head indent=0pt,minimum height=6mm, minimum width=3pt}
|
||||
}
|
||||
%Gear style
|
||||
% #1 number of teeths
|
||||
% #1 number of teeth
|
||||
% #2 radius intern
|
||||
% #3 radius extern
|
||||
% #4 angle from start to end of the first arc
|
||||
|
||||
Reference in New Issue
Block a user