| 7. 10. 2024 | Windows dynamic linking depends on the active code page – nullprogram.com
|
| 3. 10. 2024 | Slim Reader/Writer Locks are neato – nullprogram.com
|
| 4. 9. 2024 | Giving C++ std::regex a C makeover – nullprogram.com
|
| 31. 7. 2024 | Deep list copy: More than meets the eye – nullprogram.com
|
| 30. 6. 2024 | Symbol inspection tools for w64devkit: vc++filt and peports – nullprogram.com
|
| 25. 5. 2024 | Arenas and the almighty concatenation operator – nullprogram.com
|
| 24. 5. 2024 | Guidelines for computing sizes and subscripts – nullprogram.com
|
| 14. 4. 2024 | Speculations on arenas and custom strings in C++ – nullprogram.com
|
| 5. 3. 2024 | Protecting paths in macro expansions by extending UTF-8 – nullprogram.com
|
| 5. 2. 2024 | An improved chkstk function on Windows – nullprogram.com
|
| 28. 1. 2024 | Two handy GDB breakpoint tricks – nullprogram.com
|
| 17. 12. 2023 | So you want custom allocator support in your C library – nullprogram.com
|
| 8. 10. 2023 | My personal C coding style as of late 2023 – nullprogram.com
|
| 5. 10. 2023 | A simple, arena-backed, generic dynamic array for C – nullprogram.com
|
| 30. 9. 2023 | An easy-to-implement, arena-friendly hash map – nullprogram.com
|
| 27. 9. 2023 | Arena allocator tips and tricks – nullprogram.com
|
| 27. 8. 2023 | How to link identical function names from different DLLs – nullprogram.com
|
| 23. 8. 2023 | Everything you never wanted to know about Win32 environment blocks – nullprogram.com
|
| 31. 7. 2023 | "Once" one-time concurrent initialization with an integer – nullprogram.com
|
| 26. 6. 2023 | Solving "Two Sum" in C with a tiny hash table – nullprogram.com
|
| 22. 6. 2023 | My ranking of every Shakespeare play – nullprogram.com
|
| 31. 5. 2023 | Hand-written Windows API prototypes: fast, flexible, and tedious – nullprogram.com
|
| 29. 4. 2023 | My favorite C compiler flags during development – nullprogram.com
|
| 23. 3. 2023 | Practical libc-free threading on Linux – nullprogram.com
|
| 15. 2. 2023 | CRT-free in 2023: tips and tricks – nullprogram.com
|
| 13. 2. 2023 | Let's implement buffered, formatted output – nullprogram.com
|
| 12. 2. 2023 | Let's write a setjmp – nullprogram.com
|
| 11. 2. 2023 | My review of the C standard library in practice – nullprogram.com
|
| 18. 1. 2023 | u-config: a new, lean pkg-config clone – nullprogram.com
|
| 8. 1. 2023 | SDL2 common mistakes and how to avoid them – nullprogram.com
|
| 18. 12. 2022 | QOI is now my favorite asset format – nullprogram.com
|
| 12. 10. 2022 | I solved the Dandelions paper-and-pencil game – nullprogram.com
|
| 5. 10. 2022 | How to build a WaitGroup from a 32-bit integer – nullprogram.com
|
| 3. 10. 2022 | Illuminating synchronization edges for ThreadSanitizer – nullprogram.com
|
| 9. 8. 2022 | The quick and practical "MSI" hash table – nullprogram.com
|
| 31. 7. 2022 | My new debugbreak command – nullprogram.com
|
| 26. 6. 2022 | Assertions should be more debugger-oriented – nullprogram.com
|
| 23. 5. 2022 | My take on "where's all the code" – nullprogram.com
|
| 14. 5. 2022 | A lock-free, concurrent, generic queue in 32 bits – nullprogram.com
|
| 30. 4. 2022 | Luhn algorithm using SWAR and SIMD – nullprogram.com
|
| 14. 3. 2022 | A flexible, lightweight, spin-lock barrier – nullprogram.com
|
| 7. 3. 2022 | Compressing and embedding a Wordle word list – nullprogram.com
|
| 18. 2. 2022 | The wild west of Windows command line parsing – nullprogram.com
|
| 31. 12. 2021 | A new protocol and tool for PNG file attachments – nullprogram.com
|
| 31. 12. 2021 | Some sanity for C and C++ development on Windows – nullprogram.com
|
| 4. 12. 2021 | Fast CSV processing with SIMD – nullprogram.com
|
| 15. 9. 2021 | OpenBSD's pledge and unveil from Python – nullprogram.com
|
| 14. 9. 2021 | Billions of Code Name Permutations in 32 bits – nullprogram.com
|
| 22. 8. 2021 | Test cross-architecture without leaving home – nullprogram.com
|
| 30. 7. 2021 | strcpy: a niche function you don't need – nullprogram.com
|
| 29. 6. 2021 | More DLL fun with w64devkit: Go, assembly, and Python – nullprogram.com
|
| 31. 5. 2021 | How to build and use DLLs on Windows – nullprogram.com
|
| 23. 4. 2021 | The cost of Java's EnumSet – nullprogram.com
|
| 14. 4. 2021 | Effects of Fortuna – nullprogram.com
|
| 11. 3. 2021 | A guide to Windows application development using w64devkit – nullprogram.com
|
| 8. 2. 2021 | Well-behaved alias commands on Windows – nullprogram.com
|
| 30. 1. 2021 | Single-primitive authenticated encryption for fun – nullprogram.com
|
| 31. 12. 2020 | State machines are wonderful tools – nullprogram.com
|
| 24. 11. 2020 | You might not need machine learning – nullprogram.com
|
| 17. 11. 2020 | Improving on QBasic's Random Number Generator – nullprogram.com
|
| 19. 10. 2020 | I Solved British Square – nullprogram.com
|
| 25. 9. 2020 | w64devkit: (Almost) Everything You Need – nullprogram.com
|
| 4. 9. 2020 | Asynchronously Opening and Closing Files in Asyncio – nullprogram.com
|
| 1. 8. 2020 | Conventions for Command Line Options – nullprogram.com
|
| 31. 7. 2020 | Exactly-Once Initialization in Asynchronous Python – nullprogram.com
|
| 29. 6. 2020 | Netpbm Animation Showcase – nullprogram.com
|
| 24. 5. 2020 | Latency in Asynchronous Python – nullprogram.com
|
| 15. 5. 2020 | w64devkit: a Portable C and C++ Development Kit for Windows – nullprogram.com
|
| 4. 5. 2020 | How to Read UTF-8 Passwords on the Windows Console – nullprogram.com
|
| 1. 5. 2020 | When Parallel: Pull, Don't Push – nullprogram.com
|
| 13. 2. 2020 | A Go Module Testbed – nullprogram.com
|
| 22. 1. 2020 | A Makefile for Emacs Packages – nullprogram.com
|
| 22. 1. 2020 | Go's Tooling is an Undervalued Technology – nullprogram.com
|
| 29. 12. 2019 | Purgeable Memory Allocations for Linux – nullprogram.com
|
| 28. 12. 2019 | Unintuitive JSON Parsing – nullprogram.com
|
| 10. 12. 2019 | Efficient Alias of a Built-In Emacs Lisp Function – nullprogram.com
|
| 9. 12. 2019 | Chunking Optimizations: Let the Knife Do the Work – nullprogram.com
|
| 19. 11. 2019 | On-the-fly Linear Congruential Generator Using Emacs Calc – nullprogram.com
|
| 15. 11. 2019 | Infectious Executable Stacks – nullprogram.com
|
| 28. 10. 2019 | Legitimate-ish Use of alloca() – nullprogram.com
|
| 27. 10. 2019 | Legitimate Use of Variable Length Arrays – nullprogram.com
|
| 25. 9. 2019 | No, PHP Doesn't Have Closures – nullprogram.com
|
| 10. 8. 2019 | Keyringless GnuPG – nullprogram.com
|
| 22. 7. 2019 | The Long Key ID Collider – nullprogram.com
|
| 10. 7. 2019 | Predictable, Passphrase-Derived PGP Keys – nullprogram.com
|
| 30. 6. 2019 | Go Slices are Fat Pointers – nullprogram.com
|
| 29. 5. 2019 | UTF-8 String Indexing Strategies – nullprogram.com
|
| 1. 5. 2019 | Looking for Entropy in All the Wrong Places – nullprogram.com
|
| 28. 3. 2019 | Fibers: the Most Elegant Windows API – nullprogram.com
|
| 22. 3. 2019 | Endlessh: an SSH Tarpit – nullprogram.com
|
| 10. 3. 2019 | An Async / Await Library for Emacs Lisp – nullprogram.com
|
| 9. 3. 2019 | Python Decorators: Syntactic Artificial Sweetener – nullprogram.com
|
| 24. 2. 2019 | The CPython Bytecode Compiler is Dumb – nullprogram.com
|
| 6. 2. 2019 | Some Galois Linear Feedback Shift Generators – nullprogram.com
|
| 25. 1. 2019 | The Day I Fell in Love with Fuzzing – nullprogram.com
|
| 23. 1. 2019 | A JavaScript Typed Array Gotcha – nullprogram.com
|
| 25. 12. 2018 | A Survey of $RANDOM – nullprogram.com |