Add multilingual language and systems learning tracks

This commit is contained in:
Admin committed 2026-11-01 15:46:21 +08:00
1 parent 07338189fc
commit d8d1c40118
844 files changed
+6061

No files matched your search

+9
View File
@@ -0,0 +1,9 @@
# Networking & Protocols · 1
[Agila University track](https://edu.agilaos.com/track.php?track=29&lang=en)
About 15 minutes per lesson. Predict, run, change, explain, then complete the check in University.
- [Lesson 1: Name, address, connection, request](lesson-1/lesson.html)
- [Lesson 2: A byte stream needs framing](lesson-2/lesson.html)
- [Lesson 3: Timeouts, retries, and idempotency](lesson-3/lesson.html)
+1
View File
@@ -0,0 +1 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>Name, address, connection, request</title><h1>Name, address, connection, request</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>DNS resolves a name; transport establishes communication; TLS authenticates and encrypts a channel; HTTP describes requests and responses. Failure at one layer should not be mislabeled as another. The University DNS incident is a useful example: a healthy web server could not help a client that still cached a failed name lookup. Draw the layers and choose a test for each.</p><p><strong>Practice and evidence:</strong> Predict the example or draw its state transitions. Change one assumption, test the boundary, and record the actual result. Explain what this small model does not establish about a production system.</p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p></html>
+5
View File
@@ -0,0 +1,5 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>A byte stream needs framing</title><h1>A byte stream needs framing</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>A TCP read may return part of a message or several messages together. Define framing using a length, delimiter, or specified format. Validate maximum length before allocation and handle truncated input. The model parses a two-byte length prefix from fixed bytes; no network connection is made in the sandbox.</p><p><strong>Practice and evidence:</strong> Predict the example or draw its state transitions. Change one assumption, test the boundary, and record the actual result. Explain what this small model does not establish about a production system.</p><pre><code class="language-python">packet=bytes([0,3])+b&quot;cat&quot;
length=int.from_bytes(packet[:2],&quot;big&quot;)
assert length&lt;=100 and len(packet)-2==length
print(packet[2:].decode())
</code></pre><p><strong>Expected result:</strong> <code>cat</code></p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p></html>
+4
View File
@@ -0,0 +1,4 @@
packet=bytes([0,3])+b"cat"
length=int.from_bytes(packet[:2],"big")
assert length<=100 and len(packet)-2==length
print(packet[2:].decode())
+8
View File
@@ -0,0 +1,8 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>Timeouts, retries, and idempotency</title><h1>Timeouts, retries, and idempotency</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>A timeout does not prove a server did nothing: the action may have completed before the response was lost. Use an idempotency key for operations that must not run twice. Bound retries and add backoff. The model returns the same stored result for repeated keys instead of applying the side effect again.</p><p><strong>Practice and evidence:</strong> Predict the example or draw its state transitions. Change one assumption, test the boundary, and record the actual result. Explain what this small model does not establish about a production system.</p><pre><code class="language-python">results={}
def complete(key):
if key not in results:results[key]=len(results)+1
return results[key]
print(complete(&quot;lesson-1&quot;),complete(&quot;lesson-1&quot;))
print(len(results))
</code></pre><p><strong>Expected result:</strong> <code>1 1
1</code></p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p></html>
+6
View File
@@ -0,0 +1,6 @@
results={}
def complete(key):
if key not in results:results[key]=len(results)+1
return results[key]
print(complete("lesson-1"),complete("lesson-1"))
print(len(results))