Yegor Bugayenko's Blog, page 4

November 21, 2023

Avoid Soft Line Breaks Inside a Paragraph

An email, a document, a research paper, a presentation, and even a JavaDoc code block consist ofparagraphs, which are ���self-contained units of discourse in writing dealing with a particular point or idea.���Visually, paragraphs are supposed to be separated by a vertical space that is a bit largerthan a vertical spacing between lines. To achieve this, for example, in HTML, we wrap paragraphs in the

tag, while in LaTeX, we use \par or just an empty line between them. However, some people i...
 •  0 comments  •  flag
Share on Twitter
Published on November 21, 2023 16:00

October 10, 2023

The Method Section: A Recipe for Research

Every empirical research paper must have a section titled ���Method��� (or ���Methodology,��� or ���Study Design���). In this section, you describe what was done to obtain the data presented in the following ���Results��� section. You explain the recipe, which may be replicated later by another researcher, leading to the same (or very similar) results.

[image error]Underground (1995) by Emir Kusturica

The Method section is the essence of the research. Think of it as a recipe: youtell the reader what ing...

 •  0 comments  •  flag
Share on Twitter
Published on October 10, 2023 17:00

September 28, 2023

Related Work: A Critical Taxonomy of Prior Art

In almost any research paper, it is mandatory to have a section titled ���Related Work���(or ���Related Works���), where you refer to the results previously obtained by otherauthors or yourself. By including this section in your paper, you are not only payingrespect to those who laid the foundation for your results, but also motivating and guidingyour readers. Most of them may not be aware of existing studies orthe importance of the problem you are solving. You must put these guys intocon...

 •  0 comments  •  flag
Share on Twitter
Published on September 28, 2023 17:00

September 18, 2023

Five Ingredients of Tech Career

A friend of mine recently asked me what five things he should do in order togrow his technical career in a big company. He is not interested in being a bigmanager, or a CEO. Rather, he wants to be a software expert, an architect, anowner of a technology, and eventually a ���Fellow.��� I���m not sure I was qualifiedto give such advice, but I did anyway. This is what I told him. Maybe this willalso work for you.

[image error]8�� (1963) by Federico FelliniBoredom

Stay focused on one problem for many ...

 •  0 comments  •  flag
Share on Twitter
Published on September 18, 2023 17:00

September 4, 2023

Bibcop: Style Checker for BibTeX

Almost every document you may write in LaTeX format willhave a list of references at the end. Most likely, you willuse BibTeX or BibLaTeX to print this list of references in a nicely formatted way.It is also highly probable that your .bib file will containmany typographic, stylistic, and logical mistakes. I���m fairlycertain that you won���t find the time to identify and correct them.As a result, the ���References��� section in your paper may appear sloppy.I suggest using the bibcop p...

 •  0 comments  •  flag
Share on Twitter
Published on September 04, 2023 17:00

August 28, 2023

Robots vs. Programmers

The release of ChatGPT 3.5 has changed everything for us programmers. Even though most of us (including me) don���t understand how it works, some of us use it more frequently than Stack Overflow, Google, and IDE built-in features. I believe this is just the beginning. Even though, only Microsoft knows what will happen next, let me try to make a humble prediction too. Below, I list what I believe robots (with Generative AI on board) will do in the future.The further into the future, the lo...

 •  0 comments  •  flag
Share on Twitter
Published on August 28, 2023 17:00

August 21, 2023

Fast Tests Help Humans, Deep Tests Help Servers

In order to reveal errors of higher complexity, automated tests are turned into integration tests that involve external resources in test scenarios, instead of their mocks. While this approach improves test coverage, it slows down the entire build pipeline. This compromises the very idea of automated tests, which are meant to be a safety netand help programmers edit code safely. Splitting the tests into ���fast��� and ���deep,��� and then allowing humans to run the former while servers r...

 •  0 comments  •  flag
Share on Twitter
Published on August 21, 2023 17:00

August 14, 2023

The Double-Blind Review Is What Makes Decisions Fair

How does your team review ideas, project proposals, or paper drafts?Imagine I���m on your team and I need a budget allocated to a new project. I craft a proposal, elucidate the motivation, assess the risks, develop a plan, and then what? Do I create a PowerPoint presentation, present to my teammates for half an hour, answer their questions for another half hour, hear their honest feedback, after which they vote and a decision is made? If this is how things are organized within your team, y...

 •  0 comments  •  flag
Share on Twitter
Published on August 14, 2023 17:00

August 7, 2023

Is Two-Step Initialization a Solution or a Symptom?

At times, it might appear practical to execute additional initialization steps for an object after its constructor has completed. However, I���m of the belief that such requirements signal underlying design flaws, such as object mutability,base class fragility, violation of layering, and unfocused abstraction. A constructor should be good enough for all scenarios. If it���s not, refactor the object.

[image error]�������������� (2008) by Igor Voloshin

This is how it usually happens (I found it in Apac...

 •  0 comments  •  flag
Share on Twitter
Published on August 07, 2023 17:00

July 31, 2023

The Hidden Dangers of Method Overloading

Method overloading is a common feature in many programming languages that allows a class to have two or more methods with the same name but different parameters.According to Microsoft, method overloading is ���one of the most important techniques for improving usability, productivity, and readability of reusable libraries.���I disagree. In my opinion, method overloading may lead to less readable code and more bugs,because maintaining two or more implementations under the same name gives r...

 •  0 comments  •  flag
Share on Twitter
Published on July 31, 2023 17:00