|
★
|
What happens if you write a TCP stack in Python?
|
|
|
How I did Hacker School: ignoring things I understand and doing the impossible
|
|
|
Hacker School's Secret Strategy for Being Super Productive (or: Help.)
|
|
|
Pair programming
|
|
|
"How was Hacker School?"
|
|
|
Some things my kernel can't do
|
|
|
Day 46: Never Graduate
|
|
|
Day 45: I now have Rust code for executing executables!
|
|
|
Day 44: qemu + gdb = so great
|
|
★
|
Day 43: SOMETHING IS ERASING MY PROGRAM WHILE IT’S RUNNING (oh wait oops)
|
|
|
Day 42: How to run a simple ELF executable, from scratch (I don't know)
|
|
|
Day 41: Linkers are upsetting
|
|
|
Day 39: Writing malloc wrong, for fun
|
|
|
Day 40: 12 things I learned today about linkers.
|
|
|
Day 40: Linkers are amazing.
|
|
|
Day 38: After 6 days, I have problems that I can't understand at all
|
|
★
|
Day 37: After 5 days, my OS doesn't crash when I press a key
|
|
★
|
Day 36: On programming without malloc
|
|
|
Day 35: Types in Rust, for beginners
|
|
|
How to call Rust from assembly, and vice versa
|
|
★
|
What happens when you run 'Hello, world'
|
|
|
Writing a kernel using rustboot & rust-core
|
|
|
Day 34b: Writing curl using my TCP stack
|
|
|
Day 34: The tiniest operating system
|
|
|
Day 33: How to make music with ClojureScript
|
|
|
Day 32: Magical Orchestra!!!
|
|
|
Day 31: Binary trees with core.logic!
|
|
|
Day 30: Making music in Clojure with Overtone. Clojure bugs with laziness! Fun!
|
|
|
Day 29: Trying out Emacs!
|
|
|
Day 28: Made a git workflow visualization webapp!
|
|
|
Day 27: Automatically testing changes in state! Visualizing my Git workflow! Floats!
|
|
|
Day 25: ACK all the things
|
|
|
Day 26: Trying to describe the TCP state machine in a readable way. Failing.
|
|
|
Day 24: Unit testing this TCP library
|
|
|
Day 22: Got some TCP packets back!
|
|
|
Day 23: Started writing a TCP stack in Python
|
|
|
Day 21: Trying to TCP
|
|
|
Day 19: A few reasons why networking is hard
|
|
★
|
Day 20: Traceroute in 15 lines of code using Scapy
|
|
|
Day 18: ARP cache poisoning (or: In ur connection, sniffing ur packets)
|
|
|
Day 17: How to write a buffer overflow exploit
|
|
★
|
Day 16: gzip + poetry = awesome
|
|
|
Day 15: How a .gz file is structured, redux
|
|
|
Day 14: When it's hard to write tests, that's when I should be testing
|
|
|
Day 13: Off by one errors
|
|
|
Day 12: Why Julia likes Julia
|
|
|
Day 10: Goals. Goals? Maybe I need to be *reading* more code?
|
|
|
Day 11: How does gzip work?
|
|
|
Day 9: Bytecode is made of bytes! CPython isn't scary!
|
|
|
Day 8: Julia writes Julia! And remembers that open source is hard.
|
|
|
Day 7: An echo server in Clojure
|
|
|
Day 6: I wrote a rootkit!
|
|
|
Day 5: I wrote a kernel module!!!
|
|
|
Day 4: Processes vs threads, and kernel modules!
|
|
|
Day 3: What does the Linux kernel even do?
|
|
|
Day 2: netcat fun!
|
|
|
Day 1: What does a shell even do?
|
|
|
Hacker School Day 1: Messing around with the stack in C
|
|
|
Hacker School Day -4: unit testing in C. checkmk!
|