Add multilingual language and systems learning tracks
This commit is contained in:
1 parent
07338189fc
commit
d8d1c40118
844 files changed
+6061
No files matched your search
@@ -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)
|
||||
@@ -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>
|
||||
@@ -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"cat"
|
||||
length=int.from_bytes(packet[:2],"big")
|
||||
assert length<=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>
|
||||
@@ -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())
|
||||
@@ -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("lesson-1"),complete("lesson-1"))
|
||||
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>
|
||||
@@ -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))
|
||||
Reference in new issue
Block a user