8152
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)
Yesterday I've mentioned Striff, the tool that finds inconsistencies between documentation and the source code. We installed it already to the EO and it works good. It's free for open repositories. I recommend.
Читать полностью…
I just released a new GitHub action plugin: terald-action. First, create a new Telegram bot via @BotFather. Then, create a chat with the bot and get chat ID. Finally, add two secrets to the repo and configure the plugin in one of your CI workflows:
steps:
- uses: actions/checkout@v6
- run: make
- if: always()
uses: yegor256/terald-action@0.1.0
with:
token: ${{ secrets.TELEGRAM_TOKEN }}
chat: ${{ secrets.TELEGRAM_CHAT }}
make fails, you get a notification in Telegram. We already use terald-action in all our EO-related repos, in this chat.
We need a Java library, similar to Python's seqfile, for EO compiler. It should create a new file/directory in a directory, using the first available number-prefixed name. For example:
Iterator<Path> s = new Seqdir("/tmp", 3).files();
Path p1 = s.next();
assert p1.endsWith("/001-foo.txt");
Path p2 = s.next();
assert p2.endsWith("/002-bar.txt");
Just a few copies are still in Russia. Most probably, we won't ship or print them here any more, since it's a hassle. You can still purchase them with my autograph, shipped by CDEK (click the name of the book to open the form to order):
Elegant Objects Vol.1 (2016): Object-oriented programming spoken by anthropomorphic and immutable objects.
Amazon | GoodReads
Elegant Objects Vol.2 (2017): Object-oriented programming without algorithms, ORM, and MVC.
Amazon | GoodReads
Code Ahead (2018): Software development management by stories and examples.
Amazon | GoodReads
Junior Objects (2020): Object-oriented programming for junior developers by JavaScript examples.
Amazon | GoodReads
Angry Tests Vol.1 (2025): Software testing in its extreme, by examples in Java, JS, Ruby, Python, C++, and Rust.
Amazon | GoodReads
Angry Tests Vol.2 (2026): Even more extreme software testing, for web, mobile, embedded, and desktop.
Amazon
Besides, if you appreciate my work, you can help: review them on Amazon and GoodReads. BTW, e-books are not available, here is why.
iPhone Duo is what happens when you just do what your manager tells you to do: "Whatever you say, boss, as long as you pay me!" Shame on you, Apple.
Читать полностью…
Через месяц, 9-го октября, выступлю на SysAdmin 2026, в кластере «Ломоносов» в Москве. Вход свободный, но нужна регистрация. Видео обещают записать, но лучше лично посетить, потому как и кластер и конференция того стоят (наверное — я не был еще ни там ни там). Доклад будет не только про ИИ, но и про людей.
Читать полностью…
17-го октября в 12:00, в Нижнем Новгороде на ITGorky выступлю с разговором о типичных ошибках опен-сорс разработчиков, особенно ярко проявляющихся в эру ИИ. Вход бесплатный, но нужна регистрация. Будет видео запись, но вы приходите.
Читать полностью…
The 6th ICCQ conference has been granted in-cooperation status by the IEEE. Accepted papers will be published in IEEE Xplore and indexed in Scopus. The CfP deadline is about three weeks away, on August 17 — so there's still time to submit your work. This year, Patrick Cousot is our keynote speaker, and our Program Committee includes three ACM Fellows: Doug Lea, Benjamin Pierce, and Philip Wadler. It's the strongest lineup in our six-year history.
Читать полностью…
Just released a new LaTeX package on CTAN: handstroke. It makes underline more artistic. I already use it in both Angry Tests volumes and intent to use in all slidedecks and other books too. Feel free to use and/or contribute: yegor256/handstroke.
Читать полностью…
I've just published a new blog post: Rat's Skills. The piece is summarizing what equipment you may need to win a power game in the office and get a promotion. I tried to stay practical and concise. It's a long read, but I hope you find if funny.
Читать полностью…
Артемий Лебедев убежден: великий русский язык, ежели запретить в нем обсценную лексику, величие свое непременно утратит. Возможно. Однако всему свое время, Артемий, и свое место. Скажем, тело твое без срамного уда тоже красоту свою утратит. Но не станешь же ты выставлять свой орган на всеобщее обозрение в офисе. Потому что воспитание ты получил соответствующее. Любимой женщине похабщину на ушко шептать да в краску ее вгонять — дело полезное, к деторождению ведущее, сам знаешь, не мне тебя учить — для него и прибереги навыки матерщинника. Или же если, боже упаси, в тюрьме окажешься, тоже нецензурную брань вспомнить пригодится, когда за лучшее место на нарах побороться придется. А со зрителями и читателями, большинство из которых интеллектуальной элитой все еще себя считают, давай общаться, оставаясь людьми воспитанными.
Читать полностью…
Новое интервью у меня на YouTube и VK, с Сергеем Марковым, руководителем разработки ИИ-проектов в Сбере. Обсудили главное: победят ли нас машины? Пришли к выводу, что... Хотя, смотрите сами (with English and Russian subtitles).
Читать полностью…
Two developers can write almost identical code. But one gets $200/hour, while the other gets $10. Why is that? In this video, from the JEEConf 2017 in Kyiv, I break down how a developer’s “price” is actually formed: what CTOs look at when hiring, why experience can sometimes be devalued, and which signals make you an expensive specialist in the market. This is for those who feel like “I’m doing everything right, but for some reason I’m valued lower.”
Читать полностью…
If you love Claude Code as much as I do, you may find this new blog post interesting: Help the Agent to Feel. In the article, I argue that without our help a coding agent can't feel the aesthetics of the source code and the elegance of software design. The agent can write correct code better than us, but it can't write it as pretty as we expect. We can and must help him.
Читать полностью…
One week left until we close submissions for the 9th KaiCode festival of open source projects. You can still submit your baby and get honest feedback from our jury. We don’t care about your product’s popularity — we only pay attention to quality. Winners may receive up to $4,096. So far, we’ve received 103 125 repositories, and more keep arriving.
F102: В пятницу будем общаться в прямом эфире, в 18:00 по Москве, на YouTube. О чем хотите поговорить? Задавайте вопросы в комментах. #friday
Читать полностью…
I just published a new pessimistic blog post about us and AI: Non Cogito, Ergo Quid Sum? In a nutshell, thanks to AI, we programmers will soon lose the meaning of life.
Читать полностью…
Весной выступал на Sbergile, вот видео (25 минут). Главную мысль вы уже наверняка слышали на стримах: не нам нужны агенты, а агентам нужны мы. Зачем? Чтобы чувствовать. Думать они умеют лучше нас.
Читать полностью…
Лермонтов (2025) от Бакура Бакурадзе (это который Шультес) доставил эстетическое удовольствие. Смотрел и вспоминал, как учил великий Тарковский: "поэтичность фильма рождается из непосредственного наблюдения над жизнью." Поэтичность родилась. Но не из сюжета, арок персонажей и перипетий — обошлось без всей этой ерунды. Из костюмов, интерьеров, пейзажей и звуков. Звуков! Не cтолько наблюдал, сколько слушал жизнь молодых офицеров середины XIX века. Точно не зря ему Нику дали за лучшую режиссуру. Тарковский был бы доволен. #кино
Читать полностью…
Лето закончилось. Уверен, вы соскучились по мне также сильно, как и я по вам, уважаемые зрители. В пятницу нас ждет встреча, в привычном формате прямого эфира. Выпуск F101, на YouTube и VK. На какие вопросы хотели бы услышать ответы? О чем поговорим?
Читать полностью…
This is the last call for paper submissions to the 6th ICCQ, sponsored by IEEE and indexed in Scopus. The conference focuses on source code quality, better programming practices, and software maintainability. Don't miss it this year — be brave and submit.
Читать полностью…
Can someone create an open source Java library with a JUnit extension to provide tests with an ephemeral (random) TCP port as argument? We need it badly for EO runtime library testing. Should work like this:
@ExtendWith(
EphemeralResolver.class)
class FooTest {
@Test
void f(@Ephemeral int port) {
// Here we know the "port"
// is random
// and doesn't conflict
// with other processes
// and other JUnit tests
// currently running
}
}
The team is busy. Calls are happening. But the real question is: are they actually working or just looking busy? I gave the talk during DevOn Summit 2017 in Delft, The Netherlands, where I break down the four main killers of productivity that exist in almost every engineering team: endless meetings, useless documentation, the strange role of managers, and the illusion of control; and the alternative of how to manage 100 developers without meetings and task assignment.
Читать полностью…
KaiCode, our annual festival of open source projects, is announcing winners of the 2026 competition (and rewarding some cash to help them grow):
raprogramm/yew-nav-link 6★
Perfect $2048
ahoo-wang/wow 296★
Excellent $1024
choplogic/chop-logic-components 5★
Awesome $512
These projects were selected out of all 153 submitted this year. As you see, popularity didn't matter, but only the quality of code, discipline of development, strictness of testing and delivery pipelines, and the accuracy of documentation. Don't hesitate to give these guys a few GitHub stars, to cheer them up.
Many thanks to nine Jury members, who manually reviewed all 14 finalists. Thanks to the Steering Committee (Alexander Medvednikov and Nikita Sobolev) — they validated the results of the Jury. Thanks to Claude Code — he helped us not to miss important details in every finalist.
You are welcome to submit your open source project to the next year competition!
We've published a new set of benchmarks for Java Stream API: objectionary/sabj25. Unlike all other existing benchmarks, our set covers the entire Stream API of JDK 25. We used these new benchmarks to verify the effect of optimization of Java bytecode by our hone-maven-plugin. Quick conclusion: we can make some Stream pipelines 2x faster.
Читать полностью…
I'm spending about 30 million Anthropic tokens via Claude Code, working 6-7 days per week. What's your mileage?
Читать полностью…
A common management idea is that people work better when they see the bigger picture: company goals, top-level metrics, strategic objectives, and so on. What’s interesting is that research seems to show the opposite. In many cases, exposing employees to those metrics actually hurts motivation rather than improves it. I just published a #blog post arguing that managers should stop sharing some of these numbers with their teams altogether: Don't Blame the Wheel for Missing a Turn.
Читать полностью…
Let's take a break from the Friday Q&A audio sessions for a while and get back to writing and reading. Ask me a question, and I’ll respond with a blog post. The topic can be anything: OOP, management, social issues, philosophy, or whatever else is on your mind.
Читать полностью…
What do you think about the indentation in this small Java snippet? If it looks ugly to you—as it does to me—you may appreciate a formatting principle I suggest for any programming language: Monotonic Indentation (unless I reinvented the wheel). The idea is simple: between any two adjacent lines, indentation may increase by exactly one unit. The blog post explains the principle in detail.
Читать полностью…
It took six months to write the second volume of the Angry Tests book, and today it’s finally published on Amazon. The book goes deeper into building stronger tests, explores many exotic testing techniques, and introduces the concept of Headless Development. If you buy it on Amazon and leave an honest review, I’ll refund 50% of your purchase.
Many thanks to all reviewers, who helped me make it better: Alexey Fedotov, Alexey Sedoykin, Anton Belyaev, Artem Yegorov, Edouard Mangel, Emanuel Trandafir, Gennadii Chursov, Igor Zarvanskyi, Mathieu Ghennassia, Maxim Ivanov, Nikita Vasilyev, Robert Vitonsky, Ruslan Dibirov, and Sergey Karmanovich.
В середине июня несколько экземпляров будет в Москве, заказать можно здесь. Первый том можно заказать здесь.