Nx compromised: malware uses Claude code CLI to explore the filesystem
semgrep.dev
Object-oriented design patterns in C and kernel development
oshub.org
Implementing Forth in Go and C
eli.thegreenplace.net
Slowing down programs is surprisingly useful
stefan-marr.de
SpaceX's giant Starship Mars rocket nails critical 10th test flight
space.com
What We Find in the Sewers
asimov.press
WebLibre: The Privacy-Focused Browser
docs.weblibre.eu
Gemini 2.5 Flash Image
developers.googleblog.com
Ember (YC F24) Is Hiring Full Stack Engineer
ycombinator.com
The GitHub website is slow on Safari
github.com
Why Aren't People Going to Local and Regional In-Person Events Anymore?
brentozar.com
F-35 pilot held 50-minute airborne conference call with engineers before crash
cnn.com
Apple Revokes EU Distribution Rights for an App on the Alt Store
torrentfreak.com
Adventures in State Space [video]
youtube.com
Internet Access Providers Aren't Bound by DMCA Unmasking Subpoenas–In Re Cox
blog.ericgoldman.org
Using information theory to solve Mastermind
goranssongaspar.com
Dissecting the Apple M1 GPU, the end
rosenzweig.io
Word documents will be saved to the cloud automatically on Windows going forward
ghacks.net
> The article describes how the Linux kernel, despite being written in C, embraces object-oriented principles by using function pointers in structures to achieve polymorphism.
This technique predates object oriented programming. It is called an abstract data type or data abstraction. A key difference between data abstraction and object oriented programming is that you can leave functions unimplemented in your abstract data type while OOP requires that the functions always be implemented.
The sanest way to have optional functions in object oriented programming that occurs to me would be to have an additional class for each optional function and inherit each one you implement alongside your base class via multiple inheritance. Then you would need to check at runtime whether the object is an instance of the additional class before using an optional function. With an abstract data type, you would just be do a simple NULL check to see if the function pointer is present before using it.