As you know, Tesla and many other companies are pushing the idea of self-driving. “The car will drive itself; you only need to supervise it” – this is the message. “And later, your car will be smarter and can drive without any supervision”. But they all want you to buy now, and smartness will come later. Maybe.

But is it safe? Let me start with something simple. Even simple tools like adaptive cruise control and lane keep assist can fail, and you need to be ready for this case. Ideally, you need to know when it is safe to use them.

For example, imagine you are driving 75 miles per hour in the leftmost lane. To the left of you,

About 6 months ago, I upgraded the CPU in my home computer. I got a much faster CPU, but most importantly, I got much more memory. As a result, I can do more on that computer. But I found out very quickly that I don’t have enough storage space. And everybody knows current SSD prices. I don’t mind spending this money. I just don’t want to pay $400 dollars for something that I spent $170 18 months ago.

But then I remembered that some time ago, I upgraded the SSD for my relative from 512 GB to 1 Tb and I kept the old one. It is an NVMe drive, and after I plugged it in, I found that

I think many of you have seen some developers repeat some common subexpression. For example, it can be something like this:
Point newPoint = new Point(Field1[i+1].Field2.Field3.x, Field1[i+1].Field2.Field3.y));

As you can clearly see, the part “Field1[i+1].Field2.Field3” is repeated twice. Many developers will try to convince you that it is fine because the compiler can inline and remove common subexpressions and, as a result, performance will not suffer.

This statement is correct for almost any language, and it is actively used as an excuse to write this code, and I’ve seen and heard it way more than I wanted. But this code is quite bad, and it is why I always insist on fixing this code. Let