Prevent the occurrence of errors Mar 25, 2025 july dd recording date errors user users instructions
3 min read

Error messages are the most critical form of interaction between the user and the system. They arise when the user’s communication with the system is on the verge of breaking down. It is easiest to assume that errors occur due to user fault from entering incorrect data. However, the mistakes people make are predictable and happen systematically. Therefore, you can “debug” the interaction between the user and the system just as you debug the interaction between other components of the system. Let’s say the user needs to enter a date within a specific range. Instead of allowing them to enter any date, wouldn’t it be better to provide a tool like a list or calendar that shows only the permissible dates? This would eliminate any possibility of entering a date outside the allowed range.
...
The golden rule of API design Mar 24, 2025 in • APIC#JAVA
designing api java code testing users method tests
3 min read

Designing application programming interfaces (APIs) is difficult, especially in the general case. When developing an API that will have hundreds or thousands of users, you need to consider that over time it will most likely need to be changed, and these changes can disrupt the functioning of the client code. Moreover, you need to consider the potential impact on your API from its users. If the API class calls its own method, it should be remembered that the user is capable of creating a subclass of your class and overriding this method, which can lead to disaster. And you won’t be able to change this method because some of your users have given it a different meaning. You become dependent on your users when it comes to choosing the internal implementation.
...
Try not to alter the timetable Mar 23, 2025 express start problems delivery project quality times schedule time
2 min read

There are several reasons why a software project might not succeed. One of the most common reasons projects fail is modifying the work schedule in the middle of the project without adequate planning. These kinds of failures can be avoided, but it will require a large team effort to do so. Changes to a project’s schedule or resource allocation usually don’t result in any problems. Problems occur when you have to work longer hours in the same amount of time or shorten the schedule without reducing the task. The myth that you may shorten the schedule to save costs or speed product delivery is one that is widely held. More hours are typically put in, or “less important tasks” (such as modular testing) are abandoned in order to produce a product faster or with better functionality that doesn’t delay delivery.
...
Commentary on comments Mar 22, 2025 in • BASIC
basic programming interface code comments program programming reading
3 min read

At my first programming class at the university, the instructor handed out two sheets for us to write the program text in BASIC. On the board, he wrote the assignment: “Create a program to input and calculate the average of 10 bowling scores.” Then the teacher left the room. Is this task difficult? I don’t remember my solution, but it seems there was a FOR/NEXT loop and no more than 15 lines of code. In each form for the program code, we would write the code by hand before entering it into the computer – it was about 70 lines. I had no idea why the teacher gave us two forms each. Since my handwriting has always been terrible, I used the second form to neatly rewrite my code, hoping to earn a couple of points for style.
...
Hard work does not justify itself Mar 19, 2025 act work week hours project software
3 min read

Every programmer needs to be convinced that intense work is often unjustified. You can deceive yourself or your colleagues into thinking that by staying late at the office, you are making a significant contribution to the project. But in reality, by working less, you can achieve more—sometimes significantly more. If you are trying to work “productively” and with focus for more than 30 hours a week, you are likely overworking. It might be worth considering reducing your workload, which will allow you to work more efficiently and accomplish more. It may seem that my statement contradicts common sense and is generally debatable. However, it is a direct consequence of the fact that programming and software development, in general, require continuous knowledge expansion. As you work on a project, you will come to better understand the subject area and, hopefully, find more efficient ways to achieve your goals.
...
Code is design Mar 15, 2025 design construction building cost work
3 min read

Imagine waking up in the morning and finding out that a groundbreaking breakthrough has occurred in the construction industry. Now, millions of cheap and incredibly fast robots can create various materials literally from thin air, using almost no energy, and they can repair themselves. But that’s not all: if there are clear blueprints, the robots will build a building according to them without any human intervention, and the cost of this work will be negligible. One can imagine how this will transform the construction industry, but what changes will occur at a higher level? How will architects and designers behave when the cost of construction becomes negligible? Today, expensive construction is necessarily preceded by the creation and thorough testing of physical and computer models.
...
Know your IDE Mar 09, 2025 in • CJAVAMETHODUNIX
code debuggers integrated development environment ide modern java unix ides time tools method
4 min read

In the 1980s, the programming environment, as a rule, did not differ much from an advanced text editor – at best. Today, we take syntax highlighting for granted, but back then it was a luxury not available to everyone. Code formatting tools existed as external tools, the use of which corrected spacing. Debuggers also “lived” separately as programs for step-by-step code execution, and working with them required knowing a multitude of mysterious key combinations. In the 1990s, companies began to realize the profit potential of more convenient and useful development tools. The Integrated Development Environment (IDE) combined previously offered editing features with a compiler, debugger, formatting tools, and other instruments. At that time, menus and mice became popular, which meant that developers no longer needed to memorize complex key combinations to work with their editor.
...
You need to take care of the code Feb 24, 2025 sherlock holmes enjoy code programmers work programmer programming
3 min read

You don’t need to be Sherlock Holmes to understand that good programmers write good code. Well, the bad ones don’t. They create ugly things that everyone else has to clean up. But you want to write good code, right? Then you need to strive to become a good programmer. Good code doesn’t just appear out of nowhere. Its emergence is not caused by the favorable alignment of the planets. To make the code good, you need to work on it, and quite a bit. You will create good code only when you truly strive for it. Good programming is not the result of mere technical competence. I have encountered very smart programmers who are capable of creating strong and impressive algorithms, know the standards of their language perfectly, and yet write completely terrible code.
...
One binary file Feb 06, 2025 in • GIT
environment bazaar git code changes version production
3 min read

I have encountered projects where part of the code was rewritten during the build process so that a separate binary file was generated for each runtime environment. This approach always complicates things unnecessarily and creates the risk of incompatible versions appearing with each installation. At the very least, several almost identical instances of the program are built, each intended for installation in its corresponding environment. Too many moving parts arise, which means more opportunities for error. Once, I worked in a team where after every property change, it was necessary to save the code and conduct a full build cycle, so the testers were idle every time a minor bug was found (did I mention that the project also took an incredibly long time to build?
...
Learn foreign languages Feb 04, 2025 charlemagne language programmers languages machine ideas
3 min read

Programmers need to communicate. And communicate a lot. In a programmer’s life, there are periods when communication mainly occurs with the computer—more precisely, with the programs running on it. This communication is based on expressing ideas in a form understandable to the machine. The ability to turn ideas into reality through programs and with almost no use of physical matter still evokes delight. A programmer must be fluent in machine language—real or virtual—and the abstractions that can be linked to this language using developer tools. It is important to know many different abstractions; otherwise, some ideas are very difficult to express. A good programmer should be able to go beyond everyday routines and recognize that there are other languages that are more expressive for other tasks.
...