Don't point out something wrong immediately

This is not a post on a technical topic, but rather on a common pitfall for engineers – we like to point out something wrong the moment we see it. Understandably, we are very good at it. We are basically trained for it. When it comes to code reviews, or design…

How and why the Relational Model works for databases

This is a note on, the Turing Award laureate, Ted Codd's revolutionary paper — A Relational Model of Data for Large Shared Data Banks [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjv9YXhpbf1AhW_kIkEHazED9cQFnoECAYQAQ&url=https%3A%2F%2Fwww.…

`defaulted` constructor in C++

You have seen Foo() = default;. It declares a default constructor (duh!). But what does it really do, and when is it actually useful? "When is it useful" is a very interesting question in my opinion because next time when you see = default; in other people's code, you would understand why…

How electrical energy powers the light bulb in your house

> You do not need a wire to transfer electrical energy. You do need a wire to harness electrical energy and turn it into something else (e.g. light). Derek posted a video on his Veritasium channel about the big misconception about electricity [https://www.youtube.com/watch?v=bHIhgxav9LY&t=…

C++ exception (3) – catching an exception

This is the third post of a series that I am making on C++ exceptions. C++ exception (1) — zero-cost exception handlingThis is the first post of a series I am making on C++ exceptions. C++ exception (1) — zero-cost exception handlingThis is the first post of a series I am making…

C++ exception (2) — throwing an exception

This is the second post of a series that I am making on C++ exceptions. C++ exception (1) — zero-cost exception handlingThis is the first post of a series I am making on C++ exceptions. C++ exception (1) — zero-cost exception handlingThis is the first post of a series I am making…

C++ exception (1) — zero-cost exception handling

This is the first post of a series I am making on C++ exceptions. C++ exception (1) — zero-cost exception handlingThis is the first post of a series I am making on C++ exceptions. C++ exception (2) — throwing an exceptionThis is the second post of a series that I am making…

Application Binary Interface from the Ground Up

ABI [https://en.wikipedia.org/wiki/Application_binary_interface] stands for Application Binary Interface. It includes a set of rules e.g. calling conventions. For a long time, I found the concept of ABI hard to grasp. I want to take a step back and see if we start from…