Recent news from Yegor Bugayenko a.k.a. @yegor256 about computers and programmers. The blog is at www.yegor256.com To discuss, join @bloghacks + @zerocracy (EN) or @szdne + @codeahead (RU) To talk about OOP: @elegantobjects + @painofoop (RU)
Министерство науки и высшего образования РФ проводит очередной ежегодный конкурс на соискание премии за достижения в области образования, науки и техники. Как видите, суммарно министерство выделило 67 млн. рублей, за которые все 57 победителей конкурса, если вскладчину, смогут купить 100 метров жилья в столице. Подать документы на конкурс придется лично, прибыв в кабинет 134, что в Брюсов переулке 21. Согласно регламенту, документы придется предварительно 1) распечатать, 2) сохранить на USB флешку, и 3) загрузить на сайт министерства. Мда...
Читать полностью…Пятница, стрим лайв, вопросы и ответы, через пять минут, подключайтесь на YouTube и VK.
Читать полностью…Apparently, a study from Stanford, just published but I can't find where exactly, shows that ~58% of software developers among 50K analyzed in 100+companies make less than three commits per month. Isn't it what Nikita Sobolev told us recently? BTW, 9.5% of software engineers do almost nothing while collecting paychecks, according to the authors of the study.
Читать полностью…Let me show you the most canonical example of the usage of Puzzle Driven Development: objectionary/eo#2931. Half a year ago we started solving this task and identified 38 sub-problems (mostly related to disabled unit tests) that we weren't be able to solve at once. Instead, we left @todo
puzzles in the source code, which we then were fixing/resolving for six months, while the feature itself was already in production! Today we've fixed the last 38th puzzle.
This is exactly how PDD must work: let programmers merge incomplete changes to the "master" branch and then delegate technical debt (puzzles) to other programmers. I suggest you watch this lecture about technical debt, it explains PDD too.
Can you make an annotation for a JUnit test, which will prohibit the test to make any outbound connections through the Socket
class? I've asked this question on StackOverflow but was refused. Create it, put it on Maven Central, we will gladly use it for our test — to make sure they are unit tests, not integration ones.
I need a "DepOps": someone who will regularly upgrade dependencies in our open-source products and release new versions. Apparently, repositories expire over time. In a year or so, without new releases, they become unbuildable and, because of that, not ready for new contributions. Someone, once in a while, has to release, making sure all dependencies are up to date. If you're interested in helping, please text me. This will take a few hours of your time every week.
Читать полностью…If you ask me which single book I would recommend for a junior Java developer to become a senior one, it would be this one: Java Concurrency in Practice by Brian Goetz (currently in Oracle) et al. If you still don't know what to do with the InterruptedException
after you catch it, this #book will explain (much better than my nine years old blog post).
На следующих выходных в субботу 23-го ноября буду выступать на фестивале Формула Будущего в Университете Иннополиса (Казань, Россия). Поделюсь опытом на тему "как программист может одновременно быть еще и немного исследователем". Если вы студент и живете где-то рядом, обязательно приходите: это бесплатно и наверняка будет полезно. Видео доклада будет позже, у меня на YouTube и yegor256news">VK.
Читать полностью…Do you create Maven plugins once in a while? If you do, you definitely know how painful its testing could be. Even the testing harness provided by Maven team doesn't really help. A few weeks ago I've created Farea, a simple #opensource tool for JUnit5, which makes Maven plugin testing great again:
@Test
void worksAsExpected(@TempDir Path dir) {
new Farea(dir).together(f -> {
f.files()
.file("src/test/java/Hello.java")
.write("class Hello {}".getBytes());
f.exec("compile");
});
pom.xml
in the temporary directory, runs "mvn compile
", and then lets you assert on the result. The beauty of it is that you can run this scenario right from the IDE — it's much faster than maven-invoker-plugin and more readable/maintainable. We start using Farea in eo-maven-plugin (part of EO family).
Читать полностью…
Несколько недель назад выступал в Неймарк (Нижний Новгород), рассказывал о девяти ступенях карьеры open source программиста, смотрите, что получилось на YouTube и на VK (31 минута).
Читать полностью…Через 30 минут подключайтесь к прямому эфиру, на YouTube и yegor256news?z=video-226887147_456239323%2Fclub226887147">на VK (на русском языке).
Читать полностью…Новое интервью: Никита Соболев, один из наиболее активных open source разработчиков в стране (5.5K followers on GitHub), один из основных контрибьютеров в CPython, основатель wemake.services и просто увлеченный своим делом программист. Смотрите на YouTube и yegor256news?z=video-226887147_456239320%2Fclub226887147">на VK (78 минут).
Читать полностью…In 20 minutes, we start the 10th lecture for Innopolis students, about object-oriented programming. This time it will be live-coding according of small code snippets, related to OOP patterns and anti-patterns. Join in Zoom.
Читать полностью…Через 15 минут стартует прямой эфир с вопросами и ответами, как почти всегда по пятницам, подключайтесь на YouTube и yegor256?z=video341230412_456239020%2Fpl_341230412_-2">VK.
Читать полностью…Через 15 минут будет лекция номер 5 из цикла SQM для студентов ВШЭ, о метрике по имени Maintainability Index, подключайтесь в Zoom.
Читать полностью…Do you remember KaiCode open source festival? These awesome people were the jury of KaiCode'24. Next year we will need help again: to review projects and select those that deserve a prize. This should take 8-10 hours of your time (maybe a bit more). Ready to volunteer? Text me.
Читать полностью…Только что опубликовали новое интервью со мной в главной роли на YouTube и на VK. Обсудили китайских программистов, айти-импортозамещение, цифровой суверенитет, чебурнет и, как обычно, ленивых программистов.
Читать полностью…We've been using this hand-made badge in our GitHub repositories for many years (for example, in cactoos). What should we do now? Remove it? Replace it with a new "We don't recommend IntelliJ IDEA" badge? :)
Читать полностью…На днях посмотрел #кино Anora (2024) от Sean Baker в кинотеатре Художественный (Москва). Фильм повествует о тяжелой судьбе американской женщины в жестоком мире жестоких русско-армянских мужчин.
Дело было так. Нью-Йорк, наши дни. Среднего качества секс-работница встречает сына русского олигарха, мечтающего об американском гражданстве. Он немедленно в нее влюбляется, летит в Лас-Вегас и там делает ей предложение, после чего они женятся. Узнав об этом, в Нью-Йорк сразу же прилетает папа-олигарх с женой, которая убеждает проститутку отказаться от брачного союза. Несчастная сначала борется, но потом соглашается, бросая им всем в лица дорогую шубу, подаренную мажором в Вегасе. Затем еще немного соплей о морали (иначе Канны не получить) и заразительный смех Серебрякова-олигарха. На этом все.
О чем эта неправдоподобная антироссийская сказка? Она о неравной борьбе женщин с мужчинами. Побеждают в этой борьбе конечно же мужчины, потому что у них деньги, но настоящая победа конечно же за женщиной — ведь она бросает им эти деньги в их наглые смеющиеся русские лица и возвращается на панель с гордо поднятой головой.
Не смотрите эту гадость, посмотрите лучше True Romance (1993) — там тоже про любовь к проститутке, но со старыми добрым гендерными неравенствами, а не вот это вот все.
Sometimes, a JUnit test may run longer than a few milliseconds (this is how fast all of them should be!). In such a case, the entire build output may look confusing, when it stops printing and seems to be hung up forever. To make test output more interactive, add this new MayBeSlow
annotation, from a package just released, to the test and see how it prints in the console. We're already using it in a few Java+Maven projects in the EO family.
Поздравляю коллег по цеху и самого себя с Днем Преподавателя высшей школы, который празднуют в России уже пятый раз 19-го ноября. Мой скромный опыт преподавания (2 университета, 3 года, 98 лекций, 9 курсов, 25+ курсовых работ, 10+ научных статей в соавторстве со студентами) говорит о том, что работа эта совершенно неблагодарная, но очень приятная. Если бы тем, кто учит программистов, платили также, как платят самим программистам, я был бы профессором и больше никем. Но это не точно.
Читать полностью…Sometimes, we need to inspect the files left by a unit test in a temporary directory. We can't do this, in Maven+JUnit5, if we use the standard @TempDir annotation: temporary directory is destroyed when tests finish. In order to solve this problem I created a tiny Java library that introduces the @Mktmp
annotation — it works exactly the same way, but keeps the temporary directory in the target/
directory, letting me inspect them when tests finish.
In 10 minutes we start our Friday Q&A session, this time in English. Join us on YouTube and yegor256news?z=video-226887147_456239301%2Fclub226887147">VK.
Читать полностью…Через 20 минут начинаем очередную лекцию из SQM курса, для студентов ВШЭ, подключайтесь в Zoom.
Читать полностью…From now on, every Monday I will recommend you one book to read. If you are a software engineer, they may be helpful.
Let's start with this one called Continuous Delivery, by Jez Humble (he is currently in Google) and David Farley. When the book was published, in 2010, we barely knew what was continuous integration, while some of us were already experimenting with Apache Continuum and Eclipse Hudson (both retired now). If I'm not mistaken, the "continuous delivery" concept was introduced by the authors, formulated as such (my favorite quote from this book):
There should be two tasks for a human being to perform to deploy software into a development, test, or production environment: to pick the version and environment and to press the "deploy" button.
Вчера Дональд Трамп победил на выборах в США. Станет ли он президентом? Выполнит ли обещания и остановит ли войны? Помирит ли нас с американцами? Обсудить эти вопросы приглашаю в наш политический чат для программистов: @szdne (работает с 2017-го года).
Читать полностью…In a few seconds we start Friday Q&A session, please join on YouTube and yegor256news?z=video-226887147_456239315%2Fclub226887147">on VK (this time, in English).
Читать полностью…Только что опубликовали новый 25-й выпуск черно-белого айти, в котором обсудили и Linux, и JetBrains, и WordPress, и биткоин, и налог на бездетность, смотрите на YouTube и yegor256news?z=video-226887147_456239310%2Fclub226887147">на VK (59 минут).
Читать полностью…In 15 minutes we start a lecture for Innopolis students, about OOP (in English). This time it will be a live-coding experiment with the Takes Framework. We will try to create a web app with the help of it. Join in Zoom.
Читать полностью…In 20 minutes, you may join the lecture about OOP, for Innopolis students. This one will be about inheritance. In Zoom.
Читать полностью…