Hello, CASP minions.
This is an ongoing collection of interesting real-world materials,
to go with the boring stuff you learn in class.
-
The Power of Linux Piping
Practical example of connecting various programs.
-
Bit-Twiddling Hacks
Helpful site to learn the various patterns of bitwise operations.
-
Notes on Varnish
Note also that he knows what he's talking about, even though he sounds like a dick.
-
You're Doing it Wrong
Dick guy again, basically the same arguments. Still interesting.
-
Stroustrup's Vector vs List Experiment
Great example why big O is just one half of the story.
-
Linus' Rant on Array Parameters in C
A detailed examination from the man himself, underlining the dangers of hiding C concepts with unneccessary syntactic sugar.
-
Valgrind
The manual memory-managers best friend.
-
GDB - Debugging C Code
"Learn C The Hard Way" is in itself a great resource.
-
The Lost Art of C Struct Packing
A lost art, that you will know!
-
The Stack Frame
Great overview of stack frame layout on x86-64.
-
Implementing a Frame Allocator
Ongoing series on implementing a kernel in the rust language.
-
Understanding the x64 Code Models
Relocation in detail.
-
Data-Oriented Design
Thinking about locality and how OOP might screw it up for you.
Code Examples
These short snippets are supposed to highlight very specific
and concrete aspects of C and x86 programming.
-
C - Stack vs. Heap
Easy things to miss when dealing with memory.
-
C - Pass by Value
Showcasing the pitfalls of pass by value for the uninitiated.
-
C - Struct Padding
Another in a long series of unintuitive results.
-
C - Casting
The classic unexpected cast to unsigned.
-
x86 - Basic I/O
Calling functions for basic I/O in x86.