My name is Alexander Sandler. You can find more about me on the Author page.
This is an archive of an old website I started in 2006 called Alex on Linux. The original website was managed with WordPress, but over time I got tired of paying for hosting and preferred to convert it into a static website.
This is a collection of select essays from the website. Some of these are outdated, while others may be useful to this day (2026).
Essays
Longer Essays
- tcpdump for Dummies
- Bloom filters
- SSH crash course
- Signal handling in Linux
- Few problems that you may encounter when booting Linux
- Backup and restore your Linux installation
- Python’s optparse for human beings
- sed – the missing manual
- How inheritance, encapsulation and polymorphism work in C++
- How debugger works
Useful Tips And Smaller Essays
These are useful tips and smaller essays from the old site.
- Why you need a mutex to protect an int
- Cautionary tale about using threads and fork()
- printf() vs stream IO in C++
- gcc macro language extensions
- UML cheatsheet
- Models for multithreaded applications
- pthread_exit() in C++
- Call a constructor or allocate an object in place
- How less processes its input
- What is direct I/O anyway?
- Direct IO in Python
- Rethinking linked list insertion
- MSI-X - the right way to spread interrupt load
- Why interrupt affinity with multiple cores is not such a good thing
- C/C++ reference counting with atomic variables and gcc
- pthread mutex vs pthread spinlock
- A new kind of virtualization
- Creating new application on top of SSH
- Opening and modifying the initrd
- Useful Linux Networking Commands
- Swap vs. no swap
- How to handle SIGSEGV, but also generate a core dump
- Multithreaded simple data type access and atomic variables
- pthread spinlocks
- Do you need a mutex to protect an int?
- 32bit vs 64bit computers, the QA
- Aligned vs. unaligned memory access
- SMP affinity and proper interrupt handling in Linux
- How to obtain a unique thread identifier on Linux