Guides
Süleyman Poyraz’s notes on software development and system administration. Guides are organised by topic and maintenance status.
Docker
- Multi-architecture images: building for AMD64 and ARM64 with Buildx.
- A static application with scratch: compiling C++ statically and running it in an empty base image.
- Running GUI applications: X11, Wayland, display sockets, GPU acceleration and permissions.
- Building and testing C++: multi-stage builds, CMake, CTest and dependency caching.
- Why USB access fails: device mapping, kernel modules and host limitations.
Linux
- Expanding an LVM volume without losing data: online disk expansion with lsblk, pvresize, lvextend and resize2fs.
- Finding CPU bottlenecks with perf: profiling, call graphs and flame graph analysis.
C++
- Creating a portable CMake project: targets, CMakePresets, toolchains and build types.
- Managing dependencies with vcpkg: vcpkg.json manifest mode and modern CMake integration.
- Migrating from GCC to Clang: standard libraries, linker compatibility and compiler diagnostics.
- Profiling with Tracy: instrumentation and real-time frame/zone analysis.
Emacs
- Using CMake and LLDB in Emacs: modern debugging with Eglot, project.el, compile and dape.
Virtualisation
- ARM64 Linux on Apple Silicon: QEMU, HVF acceleration, guest images and architecture differences.
- Testing Linux USB/IP on macOS: vhci_hcd limitations, QEMU USB passthrough and virtual Linux networking.
Vim
- Vim key combinations: movement, editing, search, macros and window management.
Archive
Linux and image-processing notes are retained separately with their original content. Each document states its scope and what must be completed before reuse.
Archived installation commands should not be assumed to have been tested on a current system. Maintained documents also distinguish source review from practical testing.
Contributing
See the contribution guide for document and maintenance rules, and the maintenance notes for the most recent recorded review findings.