Sometimes developers use a flag or option that looks logical to them, but they do not fully understand it. It could even work in a particular situation but fail miserably under different circumstances. Let me explain what I mean.
At the company where I work, we typically ask candidates to do a test task. The task is very simple, and the algorithm is well known and clearly explained in 1973. For a good developer, it will take half a day. Maybe even less. The final part of that task is to copy lines from many smaller files into one big one. The smaller files are typically around 100 Mb in size.
Several days ago I got the test task from
[...Read More]
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,
[...Read More]
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
[...Read More]
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
[...Read More]
I decided to write this text after I watched this video, and I would like to share my own experience of buying a Tesla Model Y and a Honda CRV. Honestly, it was a day and night experience.
Let’s start with Honda. I watched a lot of videos, and I know the exact model and trim I wanted to buy. I also know how to buy. Just for comparison, when I went to buy another Honda 4 years earlier, I spent the whole day at the dealership. I didn’t know what I wanted, and I just needed a second car. I spent a whole day there. I was lucky, because this was the time when a new model was
[...Read More]
For quite some time, I’ve been monitoring SSD prices because I need more storage on my home computer. Everybody knows that SSD and memory prices are crazy now. While I need storage, I don’t want to pay for the same device several times more than I paid 2 years ago. So I’m waiting and monitoring.
Typically, I was buying Samsung devices, and this time is not an exception. But I’m not a Samsung fan. Every time I’m doing research, and every single time, I conclude that a slightly higher price is totally worth it.
Their product line looks like this. The 990 EVO family is for budget-oriented users who don’t need much. But it's still a quite capable device. Then
[...Read More]
In my last post, I wrote about an incorrect way to disable CPU boost. I did more research on the subject of quiet PC and found that 99% is kind of outdated. The more modern version is specifically CPU disable boost instead of capping the “Maximum processor state.” To do it, you need to run this command as an administrator:
powercfg -attributes SUB_PROCESSOR PERFBOOSTMODE -ATTRIB_HIDE
After that, you will see the “Processor performance boost mode” in the “Advanced Options.” This will allow you to disable it completely, boost efficiency, boost aggressively, etc.
I created several batch files. This one for silent mode:
@echo off
powercfg /setactive "c04704c0-22bb-4636-a096-c5c82cd268c0"
powercfg /setacvalueindex SCHEME_CURRENT SUB_PROCESSOR PERFBOOSTMODE 0
powercfg /setactive SCHEME_CURRENT
echo Silent plan is on
[...Read More]
Quite some time ago, several times I was playing with Microsoft Azure. Once, for myself, once we built the prototype project that required cloud infrastructure. I was able to create a lot of complex things quite easily. Everything was nice, quite intuitive, and I had to use pretty much only common sense and very light internet searching.
But a week ago, I was trying to setup a Azure subscription to pay for GitHub metered usage for testing. But the experience was absolutely horrible. I don’t know if it is related to Microsoft’s statement that AI is doing 30% of their work, but my whole experience feels like I was working with something that barely reached alpha quality.
It started very
[...Read More]