Yegor Bugayenko's Blog, page 6

June 13, 2022

The Principle of One

When I make a slide deck for a new presentation, invent a new domain name, think abouta name for a new Java class, itemize bullet points in an academic paper, evenwrite an email���I try to follow a simple principle which helps me makemy content more solid. Well, at least I believe it does. Maybe it will help you as well.The principle is simple: at all costs, try to squeeze the content intoone word, one sentence, one paragraph, or one page.

[image error]True Story (2021) by Eric Newman

A more formal ...

 •  0 comments  •  flag
Share on Twitter
Published on June 13, 2022 17:00

June 4, 2022

Reflection Means Hidden Coupling

Reflective programming (or reflection) happenswhen your code changes itself on the fly. For example, a method of a class, when we call it,among other things adds a new method to the class(also known as monkey patching). Java, Python, PHP, JavaScript, you name it���theyall have this ���powerful��� feature. What���s wrong with it? Well, it���s slow, dangerous,and hard to read and debug.But all that is nothing compared with the coupling it introduces to the code.

[image error]Wheelman (2017) by Je...
 •  0 comments  •  flag
Share on Twitter
Published on June 04, 2022 17:00

March 28, 2022

Bugs Occam���s Razor

For each accepted explanation of a phenomenon, there may be an extremely large, perhaps even incomprehensible, number of possible and more complex alternatives. The principle of parsimony, also knownas Occam���s razor, suggests we prefer the simplest one. For example, ���I can���t open the door and can���t attend the meeting��� is a descriptionof a problem, which could be reduced to ���I can���t open the door���without losing any information, which might be important for thosewho are wai...

 •  0 comments  •  flag
Share on Twitter
Published on March 28, 2022 17:00

February 15, 2022

Fallacies of AI Driven Coding

A few days ago, DeepMind (acquired by Google in 2014) releasedAlphaCode and self-publishedapaperexplaining how their artificial intelligence (AI) can ���understand���a programming contest task written in English and then write a Python, Java or C++ program, whichwould work in about 30% of cases.Earlier last year OpenAI ($1B-funded by Microsoft in 2019)released Codexand published a paper, claimingthat their AI can also solve around 30% of the programming tasks it wastested with.Wire...

 •  1 comment  •  flag
Share on Twitter
Published on February 15, 2022 16:00

November 30, 2021

Academic Teaching is Hard

A few months ago I got an opportunity to teach a single course for3rd-year BSc students at Innopolis University (Russia). The title was ���System Software Design.��� The size of the group was about 150 people and the duration was8 weeks. I was supposed to give them sixteen lectures, two lectures per week. And I was asked to examine their knowledgeby the end of the course. Pretty much a normal job for a universityteacher. And you know, in my opinion, I failed most parts of it. Here is wha...

 •  0 comments  •  flag
Share on Twitter
Published on November 30, 2021 16:00

October 20, 2021

Objectionary: Dictionary and Factory for EO Objects

[image error]

Since the time of Kernighan and Ritchie we share binary code inlibraries. You need to print some text with printf() in C ? You get libc library with700 other functions inside.You need to copy a Java stream?You get Apache Commons IO with copy() and 140 other methods and classes.The same happens in all languages I���m aware of, like Ruby, Python, JavaScript, PHP:you need an object, or a class, or a function, or a method���you have to addthe entire library to your build. Wouldn���t...

 •  0 comments  •  flag
Share on Twitter
Published on October 20, 2021 17:00

October 11, 2021

Calibrated Achievement Points

It���s a well-known problem nowadays: how can we measure the performance and productivity of individual contributors who do non-routine creative work? The best examples are research and development (R&D) teams, which usually consist of software engineers, designers, scientists, architects, quality experts, product managers, and so on. Such professionals deliver results that are hard to get down to simple numbers. Many authors arguethat the very idea of measuring individual performance is ...

 •  0 comments  •  flag
Share on Twitter
Published on October 11, 2021 17:00

Calibrated Achievement Points (CAP)

It���s a well-known problem nowadays: how can we measure the performance and productivity of individual contributors who do non-routine creative work? The best examples are research and development (R&D) teams, which usually consist of software engineers, designers, scientists, architects, quality experts, product managers, and so on. Such professionals deliver results that are hard to get down to simple numbers. Many authors arguethat the very idea of measuring individual performance is ...

 •  0 comments  •  flag
Share on Twitter
Published on October 11, 2021 17:00

September 8, 2021

SIMBA: Simplified Management By Artifacts

Here is a very simple management framework, which we have used in our teams for the last two years. We came to it experimentally,trying to merge some Agile principles, PMBOK ideas, andcommon sense. Our experience so far is positive, even thoughthe proposed rules of work are not really about project management, but more about keeping an eye on the situation and making sureit���s not falling apart. This is the best most modern teams can afford anyway.

[image error]Lion King (2019) by Jon Favreau...
 •  0 comments  •  flag
Share on Twitter
Published on September 08, 2021 17:00

August 10, 2021

Logging in Unit Tests, a Bad Practice

Logging is an inevitable part of debugging. Well, at least in modernhigh-level programming languages and architectures. It wasn���t thirty years ago, in Assembly, but it is now. Sometimes we trace variables, but rarely. More often we just print them to console. Moreover, we don���tjust print them using println or whatever it is we have for consoleprinting; instead, we send messages to a logging framework, which deals with the console or any other logging destinations, like files. The beau...

 •  0 comments  •  flag
Share on Twitter
Published on August 10, 2021 17:00