IT Hare on Soft.ware

Disclosure: On this site you won’t find specific advice on “how to call function xyz()”. Interpreting C++ ARM and #pragma dwim is also out of scope.

We’re treating our readers as intelligent beings who can use Google and/or StackOverflow, where all such specific questions were answered more than once.

What you will find is opinions, more opinions, and even more opinions on all the aspects of software development - and with a large chunk of them based on real-world experience too.

Your mileage may vary. Batteries not included.


Java vs C++: Trading UB for Semantic Memory Leaks (Same Problem, Different Punishment for Failure)

Quote: “with all due disrespect to mutable static/global data, I have to say that the problem of semantic memory leaks is NOT restricted to statics”
Another Quote: “semantics of good code is about the same regardless of Java/C++ choice”

C++: “model of the hardware” vs “model of the compiler”

Quote: “we MUST NOT care about compiler internals beyond our task definition (which is based on (a) humans, and (b) hardware, that’s it).”
Another Quote: “My problem with introducing a ‘model of the compiler’ into the picture, is that it can be used to justify pretty much anything without any relation to real-world requirements.”

How Blockchains Get Attacked and How Bitcoin Got Hacked, Part II

Quote: “Armed with this information, criminals could steal user’s cryptocurrencies.”
Another Quote: “The Lightning Network is the next generation of proposed solutions to the Bitcoin scalability problem”

How Blockchains Get Attacked and How Bitcoin Got Hacked, Part I

Quote: “Security is often cited as the foremost advantage of choosing blockchain technology over centralized systems.”
Another Quote: “There are recorded cases of hackers either compromising or taking advantage of loopholes in self- executing contracts on the blockchain”

Too Much Unit Testing Is Detrimental for Code Quality?

Quote: “Code quality tends to be Quite Bad(tm) when there is no unit testing at all, reaching maximum when there are 0 to 10% of the unit testing methods, and degrading afterwards.”
Another Quote: “It is quite easy to get past the optimum amount of unit testing for your project. And whenever your unit testing starts to affect your code in a negative way – you should stop”

CAS (Re)Actor for Non-Blocking Multithreaded Primitives

Quote: in 2017, I started to feel that the Dark Ages of mutex-based thread sync were over
Another Quote: Another issue which almost universally rears its ugly head when speaking about not-so-trivial uses of CAS is the so-called ABA problem.

Testing Memory Allocators: ptmalloc2 vs tcmalloc vs hoard vs jemalloc While Trying to Simulate Real-World Loads

Quote: “if you DO want to get performance from changing mallocs, make sure to test them with your own app”
Another Quote: “in our humble opinion, overall winner so far (by a nose) is jemalloc.”