Yegor Bugayenko's Blog, page 5

August 23, 2022

Research Paper Simple Template

My first academic paperwas accepted and published in 1998. My most recent one was rejected by SPLASH just a week ago.I���m writing two papers right now and co-authoring about ten others.So far, my results are very poor: way more rejections than I expected.The key lesson I���ve learned so far: the reason most papers get rejectedis not because they are essentially wrong. Instead, reviewers reject thembecause they have no enthusiasm for decrypting a poorly structured text,even though it may ...

 •  0 comments  •  flag
Share on Twitter
Published on August 23, 2022 17:00

August 9, 2022

Declarative and Immutable Pipeline of Transformations

A few months ago I made a small Java library,which is worth explaining sincethe design of its classes and interfaces is pretty unusual. It���s very muchobject-oriented for a pretty imperative task: building a pipeline ofdocument transformations. The goal was to do this in a declarative andimmutable way, and in Java. Well, as much as it���s possible.

[image error]Barfuss (2005) by Til Schweiger

Let���s say you have a document, and you have a collection of transformations,each of which will do someth...

 •  0 comments  •  flag
Share on Twitter
Published on August 09, 2022 17:00

August 3, 2022

The Code and Its Tests in Different Pull Requests

I suggested this idea a few weeks agoon Twitterand got mostly negative reactions. That���s why I wrote this blog post, to elaborate on thesubject in an attempt to convince you. Here is the rule I���m suggesting:always submit changes to the code separately from the changes toits unit tests. Simply put, in one pull request you modify the tests, maybemarking some of them as ���disabled.��� You merge this pull request and thenmake the second one, modifying the code and most probablyremoving ...

 •  0 comments  •  flag
Share on Twitter
Published on August 03, 2022 17:00

July 19, 2022

Command Line Default Options in Linearized Plain Text

[image error]

A few years agoI created xcop,a simple command line tool thatcan check the style of an XML file. It���s similar toCheckstyle (for Java) andPep8 (for Python),but for XML. It���s pretty easy to use xcop: just run it with a few commandline arguments and it returns the list of errors found in your XML file, if there are any. However,some of the arguments may be convenient to have as defaults and instead ofpassing them through the command line on every execution, we could store them in som...

 •  0 comments  •  flag
Share on Twitter
Published on July 19, 2022 17:00

July 4, 2022

Automated Tests Are the Safety Net that Saves You

Automated tests are the ones that are usually called unit tests or integration tests,or just any tests that are being executed automatically. That���s the differencebetween them and manual tests. What is the purpose of automated tests?First and foremost, they reduce the amount of routine work: we don���tneed to remember how to test a module, the tests remember. We just clicka button and a suite of tests, which may consist of hundreds or thousands,runs and reports errors, if any are found. ...

 •  0 comments  •  flag
Share on Twitter
Published on July 04, 2022 17:00

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