Yegor Bugayenko's Blog, page 8
October 5, 2020
Spell Check Your LaTeX Writings Using GNU Aspell
Do you use LaTeX
for your academic and technical writings? You don���t?
Well you should! It���s the most only professional instrument for
making properly formatted PDF documents.
MS Word and Apple Pages are for secretaries non-tech people,
while LaTeX is serious. It���s perfect in so many ways, thanks to
Donald Knuth
(the creator of TeX) and
Leslie Lamport
(the author of LaTeX),
but it lacks one very convenient feature:
spell checking.
The only solution I���ve found so far, which works perfectly...
July 28, 2020
Open Source Etiquette
Here is a short list of common courtesy rules for open source
software development. Actually, they apply elsewhere also, but they are most
visible when you do GitHub-based coding. I strongly believe that
sooner or later all programming will be open source and these rules
will apply to everybody. Consequently, it makes sense to start following them now,
whether you are an active Apache contributor or a happy owner
of the ���Java for Dummies��� book.
[image error]Hong Kil-dong (1986) by Kil-in Kim
In no pa...
June 22, 2020
To Measure or Not to Measure
The question was asked
on StackExchange nine years ago (just around
the time the site was launched): ���If not
lines of code, then what is
a good metric by which to measure the effectiveness of remote programmers.���
The answers,
not surprisingly,
were all along this line: programmers are not supposed to be measured!
I bet those who answered were programmers themselves.
Indeed, why
would a programmer be interested in being measured and being
reduced to a mere number?
[image error]Better Call Saul, Season ...
May 18, 2020
Veil Objects to Replace DTOs
Here is a new idea I discovered just a few days ago while working with Codexia, a Ruby web app. I had to fetch data rows from PostgreSQL and return objects to the client. It���s always been a problem for me, how to do that without turning objects into DTOs. Here is the solution I found and gave a name: Veil Objects.
[image error]Constantine (2005) by Francis LawrenceLet���s say I fetch the list of projects from PostgreSQL:
class Projects def fetch @pgsql.exec('SELECT * FROM project') end endThe...
May 12, 2020
EO the Career Killer
It���s time to answer one of the most popular questions I hear from junior programmers when they meet me at a software conference or online: What is the point of studying Elegant Objects (the new object-oriented paradigm I���ve been preaching for the last five years) if almost nobody is using it on real projects? Why swim against the current and learn something that may only harm my career, even if it does seem like a sound technical concept? Where is the profit in making myself an outsider?...
May 4, 2020
Open Source Arms Race
Some companies massively invest in open source software projects, while others still remain skeptical and stay away from this trend. What���s in it for those philanthropists, like Google, IBM or Microsoft? Why spend money on something that doesn���t belong to them and is shared among all of us developers? Don���t they understand that the code they write may be used by their competitors? It seems they do understand, but can���t do anything about it.
[image error]Filth (2013) by Jon S. BairdAs David...
March 2, 2020
Prefixed Naming
If you look at the source code of Takes or Cactoos for the first time, you most probably, like many others, will be triggered by the naming convention, which implies that most class names have two-letter prefixes: BkSafe, RqFake, RsWithStatus, TkGzip, and so on. To be honest, I havent seen a single Java developer who would be comfortable with this convention at first sight. I have, however, seen many who are in love with it now. This article is for those who are interested in moving from the...
February 18, 2020
Fat vs. Skinny Design
It seems that type/class hierarchies in OOP may be designed in two extreme ways: either with full encapsulation of data in mind; or with just a few interfaces making raw data visible, and letting classes deal with it, parse it, and turn it into smaller data elements. You may be surprised, but Im suggesting the second option is more elegant. It seems to me that we dont lose object orientation, but rather gain a lot of flexibility, reusability, testability, and so on.
[image error]Owning Mahowny (2003) by...February 10, 2020
Object Cohesion: Why It Matters
You most probably know about Elegant Objects (EO), an alternative object-oriented paradigm, which claims that objects must be immutable, have no static methods, never use NULL in their code, use no annotations, and so on. We, the EO adepts, claim many things, but not so many people believe us. Those non-believers say that we are trolls, at best. Their main argument is: everybody works differently, why should we listen to you? I have no answer for them well I had no answer, until I created ...
January 14, 2020
One Question You Should Never Ask Your Boss
There are good and bad soldiers in any team. The job of a manager is to understand which is which. Then to promote the good ones and discharge the bad ones. There is one simple indicator I use to make this segregation. Its a simple question I either hear from my people or dont. Those who ask it are the bad soldiers. Their attitude and their behavior require immediate corrective actions. Some of them are curable, while others are not. This question tells me everything, if its being asked. I...