Another lesson I learned from almost 2+ decades of using Emacs:
Track your customizations in a version control. Using customize package and reading the diff in dot Emacs file has taught me quite a bit about certain aspects of the package.
Side note: It would be awesome if Emacs could do the versioning as part of saving the customizations - build Emacs with libgit2 and make it a native git client.
I froze for a moment seeing this article after having worked at a major anti-virus company long time back and used some low level Win32 APIs.
Fortunately, I followed some of the techniques from “Programming Applications for Microsoft Windows” book and Detours project to intercept and execute custom code mostly based on loading custom DLL in target remote process and using DllMain() to execute.
I did something similar (~2015) but using the kernel NFS client and having multiple mounts to the same volume using different IP addresses.
Using vectored IO and spreading across multiple connections greatly improved throughout. However, metadata operations cannot be parallelized easily without application side changes.
In more modern kernels, NFS supports ‘nconnect’ mount option to open multiple network connections for a single mount. I wonder if the approach of using libnfs for multiple connections is even required.
I used BDB as a Win32 profiler backend. The profiler was lightweight and would write a flat file with profiling data and function addresses to keep the captured data small.
A post processing tool would read the profiler data and create a BDB file with support for extracting call graphs and topN sort of analysis.
The final GUI was implemented in Visual Basic since other developers would not use the TUI/CLI based tools in console.
The next project used BDB to store file system metadata on embedded NAS storage. We implemented a fast ‘find’ like service based on file metadata (stat fields) stored in BDB with support for user defined file metadata.
I first encountered Trie in code storing Unix network group mappings. Since IP addresses in a domain mostly vary at the end, a lot of IP addresses share the same first part. This greatly saved space and lookup time.
Same here. I worked at a NAS storage (NFS) vendor and this was a common practice. Could not look at server implementation in Linux kernel and open source NFS client team could not look at proprietary server code.