Keep everything in version control Jul 10, 2025 store subversion git mercurial cvs life version project code repository system
3 min read

Store everything related to any of your projects in a version control system. The necessary resources are already available: free tools like Subversion, Git, Mercurial, and CVS, ample disk space, cheap and powerful servers, ubiquitous Internet access, and even project hosting services. Once you have installed the version control system, saving your work in the repository is very simple: just execute the corresponding command in the clean directory with the code. And you only need to master two new basic operations: committing (commit) changes you made in the code to the repository, and updating (update) your working version of the project to the one in the repository. Once the project is placed in the version control system, you can easily view its history, find out who wrote each piece of code, and refer to a specific version of a file or project using a unique identifier.
...
To do something hastily and run away is a crime Jul 09, 2025 john run time tests code work
3 min read

It’s getting close to evening. The team is diligently working on the new functionality planned for the current iteration; it seems even the air in the room is pulsing with the rhythm of work. However, John is a bit in a hurry: he has a date waiting for him. However, he manages to finish writing his part of the code, compiles it, registers it in the version control system – and hastily leaves. A few minutes later, the “red light” comes on: the application build is broken. John didn’t have time for automated tests, so he went with the “hack and run” principle, which caused the entire team’s work to come to a halt. The situation has changed – the work rhythm has been disrupted.
...
Prevent the occurrence of errors Jul 08, 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.
...
Do not repeat your code Jul 04, 2025 in • DRYMETHOD
code repetition abstract strategy dry open closed principle srp principle software logic duplication
3 min read

“Don’t Repeat Yourself (DRY)” is probably one of the most important principles of programming, and it underlies many other well-known correct approaches and design patterns in software development. A developer who has learned to recognize duplication and can eliminate it using appropriate techniques and suitable abstraction is capable of writing much clearer code than one who constantly clutters the application with unnecessary repetitions. Code duplication is ballast Every line of application code requires maintenance, and it serves as a source of potential errors in the future. Duplication leads to unnecessary increased code volume, which raises the likelihood of errors and makes the system overly complex. Increased system volume due to duplication, firstly, it prevents developers from fully understanding the system, and secondly, it does not guarantee that changes made in one place do not It will be necessary to repeat it in other places where this logic is duplicated.
...
You are negotiating Jun 29, 2025 servers system manager need server
3 min read

Have you encountered projects where reasonable technological solutions are “buried” for the sake of saving costs? The conversation goes something like this: “Do we really need X?” asks the project manager. You can substitute X with almost anything essential for system operations: software product licenses, redundant servers, external backups or power sources. The question is always asked in a fatherly tone, as if you were spending all your pocket money on comics and chewing gum, while serious adults need to think about buying new buckets in which they will carry their future profits. The correct answer to this question is: “Yes. Absolutely necessary.” But for some reason, almost no one responds. After all, we have a technical education, and any technical discipline is an art of compromise.
...
Warning - Common code ownership Jun 25, 2025 study code context dependencies parts number
2 min read

My first project in the company. I just defended my thesis, and I’m eager to prove myself, so I stay late at work and thoroughly study the existing code. Working on my first task, I apply everything I’ve been taught: comments, event logs, extracting common code into libraries (where possible), all that stuff. I feel completely ready for code review, but my colleagues seem to pour cold water on me: I get criticized for code reuse! How so? During my university studies, code reuse was hailed as one of the best practices in software development. All the articles and textbooks I read, guided by experienced professional programmers—were they all wrong? It turns out, I overlooked something very important. Context. The fact that two directly unrelated parts of the system use the same logic means less than I thought.
...
Architectural compromises Jun 22, 2025 in • ATAMCBAMCOSTCOST BENEFITCOST BENEFIT ANALYSIS METHODINSTITUTEITALIANITALYMETHODPOLANDSWEDENSWEDISHVAZA
vaza sweden poland king time soa atam architecture tradeoff benefit analysis metod sei software engineering institute architecture software ship ships swedish king italy benefit analysis method cbam
2 min read

An architecture cannot accomplish high security, high availability, high abstraction, and high performance all at once. All that software architects need to do is know, understand, and relate one real narrative to their peers and clients. I am speaking of Vaza’s history. In 1620, there was a war between Sweden and Poland. An attempt was made to bring this expensive war to an early end by the Swedish King by ordering the construction of a galleon known as the vase. The ship was not like the others. It was unlike any other ship of the time in its features. It had to be longer than sixty meters in order to safely convey 300 men at a time to Poland while also carrying 64 weapons on two battery decks.
...
First say yes Jun 21, 2025 in • EDAMAME
edamame product request round windows work
3 min read

Recently, I was at the grocery store and searched for edamame, green soybeans (I only vaguely guessed they were some kind of vegetable). I didn’t I knew where to look for this product: in the vegetable section, in the frozen section. products or on the shelves with canned goods? Finally, I gave up and asked a store employee for help. She didn’t know either! The store employee could have reacted to my request in different ways. She could have made it clear that only a fool doesn’t know where to look for it, or just brushed it off. vague hints, or even just say that they don’t have such a product. But she deemed it possible to find a solution and help the customer.
...
Two mistakes can cancel each other out, making them difficult to correct Jun 16, 2025 code allan klumpp apollo everything timetolive problems fix defect users
3 min read

Code never lies, but it can be internally contradictory. Sometimes contradictions cause confusion: how can this even work? In his interview, Allan Klumpp, the lead software developer for the Apollo lunar module, revealed that the engine control software contained a defect that caused the lunar module to behave erratically. However, there was another bug in the program that compensated for the first one, and during the Apollo 11 and 12 moon landings, this software was successfully used before the bugs were discovered and fixed. Let’s consider a function that returns an exit code. Let’s say it returns false when it should return true. Now imagine that the calling function does not implement the check for the return value. Everything works perfectly until one day someone discovers the lack of a check and adds it.
...
Only the code will tell the truth Jun 09, 2025 code comments program source description
3 min read

In the end, the semantics of a program are defined by the working code. If you only have it in the form of a binary file, it will be difficult to read! However, the source code is usually available if it is your own program, a typical commercial development, an open-source project, or a program in a dynamically interpreted language. When reading the source code, the meaning of the program should be obvious. You can confidently know what the program does just by looking at the source code. Even the most precise description of technical requirements will not tell the whole truth: it contains not a detailed description of what the program actually does, but general wishes of the requirements compiler. An architecture document may contain a description of the planned architecture, but it will not describe the necessary implementation details.
...