- Towards an understanding of technical debt | Kellan Elliott-McCrea
- Different categories of things which all get lumped together as technical debt.
(tags: programming technical-debt software)
- Type punning isn’t funny: Using pointers to recast in C is bad.
- A common C programming technique (casting between pointers to structures) leads to problems when strict aliasing is turned on (as it is if you set -O2 -O3 in gcc).
(tags: C programming casting punning)
- Type Punning, Strict Aliasing, and Optimization – Embedded in Academia
- More on the type punning/aliasing business.
(tags: C punning aliasing programming)
- Ask HN: Best way to learn modern C++? | Hacker News
- Thread with book and video recommendations
(tags: c++ programming)
- Epistemic extremism – UseOfReason
- Contra Internet (“shoe”) atheism: I don’t need to be able to prove a thing to you before I can rationally believe it.
(tags: philosophy belief epistemology Atheism proof)
- Compressing and enhancing hand-written notes
- How Office Lens might do it, but open source. Introduces various colour spaces.
(tags: images python colour RGB HSV)
- Unrolled thread from @patio11
- “Some people really benefit from hearing advice that everyone knows, for the same reason we keep schools open despite every subject in them having been taught before.” Mostly related to the tech business.
- What every systems programmer should know about lockless concurrency
- “Seasoned programmers are familiar with concurrency building blocks like mutexes, semaphores, and condition variables. But what makes them work? How do we write concurrent code when we can’t use them, like when we’re working below the operating system in an embedded environment, or when we can’t block due to hard time constraints? And since your system transforms your code into things you didn’t write, running in orders you never asked for, how do multithreaded programs work at all? Concurrency—especially
on modern hardware—is a complicated and unintuitive topic, but let’s try to cover some fundamentals.”
(tags: concurrency programming mutex)