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)
In a few minutes starts a lecture no.7 from the "Pain of OOP" course about object-oriented programming, for Innopolis BSc students. You are welcome to join too, in Zoom. This time we'll talk about type casting and reflection — why they are evil?
Читать полностью…Please recommend a non-fiction book on business, life philosophy, management, or history, ideally one that has personally helped you become a better, more effective, and more productive person.
Читать полностью…How many of you are Ruby programmers? A few weeks ago I've released a small gem that joins an array into a good-looking string:
require 'joined'
puts [2, 4, 8, 16, 32].joined
2, 4, 8, 16, and 32
I've just found an interesting document declassified by CIA a few years ago: Simple Sabotage Field Manual. The document was published in 1944. It was teaching people how to sabotage, in order to harm their companies. These instructions are brilliant:
Be pleasant to inefficient workers; give them undeserved promotions. Discriminate against efficient workers; complain unjustly about their work. When possible, refer all matters to committees for "further study and consideration." Attempt to make the committees as large and bureaucratic as possible.
Every time I ask Claude Code or GitHub Copilot to write some code for me, they keep making very similar mistakes. Then, I have to provide a series of refinements for my request to make them understand that I, for example, don't appreciate "Manager" or "Controller" class names and my methods don't return NULL. I'm sick of repeating it over and over again. Here is a full-size prompt for them, to make them understand what elegant coding and testing truly are: yegor256/prompt. Feel free to reuse and contribute.
Читать полностью…Хватить кодить, пятница пришла! Подключайся через 10 минут к прямому эфиру с вопросами и ответами о нелегкой жизни программиста, на YouTube и VK.
Читать полностью…Обсудил я с одним российским издательством возможность публикации Angry Tests на русском языке. Они согласились и перевести и опубликовать, однако, настаивают на публикации электронной версии тоже. Я пока отказываются, мотивируя тем, что книги свои никогда ранее электронными не делал — украдут ведь. Как посоветуете поступить?
Читать полностью…Claude Code was released by Anthropic in February. Two months later, Google released Gemini CLI—an almost identical copy. Claude Code has 16K GitHub stars; Gemini has 41K. That’s all you need to know about marketing, innovation, and business success.
Читать полностью…What do you do to delete a book from a library? This:
library.removeBookById(42)
book = library.getBookById(42)
book.remove()
Take a look at this beauty: GitHub Copilot understands how Puzzle-Driven Development works. It tried to solve an existing puzzle and failed after a few attempts. Then, it replaced the puzzle with a new one, and we merged the half-baked solution. We should all learn from it.
Читать полностью…Записали интервью с Антоном Коробейниковым, активным участником LLVM сообщества и со-автором ряда широко цитируемых статей по биоинформатике. Смотрите на YouTube и VK (80 минут, with English and Russian subtitles).
Читать полностью…In five minutes, a lecture about object-oriented programming, for 2nd year BSc students, you are welcome to join. It'll be about "getters" and DTO in OOP. In English.
Читать полностью…It would be great to have a Telegram bot that takes a GitHub username and returns a summary of his/her/their annual contributions: number of issues, pull requests, lines of code, discussion messages, stars, forks, likes, dislikes, and so on. The bot should format everything nicely into a single Telegram message that a user can repost to their/her/his channel. Anyone else could do the same, helping to promote the bot, and impressing recruiters. Build it—I’ll use it.
Читать полностью…GitHub Copilot Coding Agent ($39/month, launched on Monday) gives you what we all have been dreaming about: AI instead of lazy coders. Look at this pull request: yegor256/micromap#311 Seriously, I love this guy.
ps. With Copilot for Organizations ($19/seat), it's possible to configure coding standards and design principles to be respected by their AI agent.
GitHub Copilot sucks at code reviews. CodeRabbit nails them. We've used it across a few repos, and its pull request feedback is consistently useful. Plus, it’s almost free. The pull request on the picture is this one: objectionary/eo#4223.
Читать полностью…Наконец-то Junior Objects в Москве! Купить можно здесь. В книге, на английском языке, рассказывается о том, как правильно организовать жизнь объектов, на примере игры Space Invaders на JavaScript (здесь исходный код). Книга должна быть полезна начинающим программистам — кому Elegant Objects (vol.1 и vol.2) еще рановато. Число экземпляров ограничено, поторопитесь.
Читать полностью…И снова пятница, программист! Заканчивай работу, приходи общаться и задавать вопросы (прямой эфир): YouTube и VK.
Читать полностью…In a few minutes we start a lecture for Innopolis students, about object-oriented programming, mostly live coding. This time we'll talk about NULL references and why they are bad. You are welcome to join too, in Zoom.
Читать полностью…You don’t need to watch the entire interview with Peter Thiel—a multi-billionaire, PayPal co-founder, Elon Musk’s friend, and Donald Trump supporter—but this thought is important. He seems to believe that the human race must not endure “as is.” Our future selves should be able not only to swap penis for vagina, but to replace our entire bodies—and perhaps even our souls—with something completely different. WTF?!
Читать полностью…Want to show your appreciation for my work? Today is the perfect day! The best gift you could give is a review of one of my books, posted on Amazon and/or GoodReads. Reviews help attract more readers and keep me motivated to write. Thanks in advance!
Читать полностью…A new lecture about OOP, for Innopolis students, this time will talk about -ER suffix for class names. Join in Zoom.
Читать полностью…"Someone has broken into our home and stolen something" says OpenAI meaning that Meta has recruited their most valuable asset: slaves people. On the picture: Meta is buying new researchers for its new project.
Бросай работу, программист! Подключайся к прямому эфиру с вопросами и ответами на YouTube и VK.
Читать полностью…Lecture no.4 from the "Pain of OOP" course for Innopolis BSc students starts in five minutes, you are also welcome to join in Zoom. It's about setters and immutability of objects.
Читать полностью…IEEE agreed to sponsor the 5th International Conference on Code Quality (ICCQ), which we organize this year together with Ural Federal University. The topics of the event are: static and dynamic analysis, program verification, programming languages design, software bug detection, and software maintenance. The deadline for submissions is the 10th of August. Accepted papers will be published in IEEE Xplore and indexed by Scopus.
The event will be streamed live, on our YouTube channel (don't forget to subscribe!). Also, follow us on Twitter.
Программист, пришла пятница, бросай работу! Подключайся, на YouTube и VK (вопросы и ответы в прямом эфире на русском языке).
Читать полностью…This #book will teach you how to use unit testing in complex scenarios and also will explain why you need them: Growing Object-Oriented Software, Guided by Tests by Steven Freeman and Nat Pryce.
Читать полностью…I've just publicly released a simple collection of command-line scripts I've been using privately for years: gitted (written in Python and Bash). They automate four basic Git operations: 1) Start a branch; 2) Pull from upstream; 3) Commit; 4) Push. They also use ChatGPT to generate commit messages automatically. Now, when you want to start a branch, make a few commits, pull from the main repo, and push — you just run:
$ branch 42
$ commit
$ commit
$ pull
$ push
We start the second lecture about object-oriented programming, for Innopolis BSc students, this time will talk/live-code about static methods, join in Zoom.
Читать полностью…In 2016, I gave a talk at JEEConf in Kyiv about the Object-Relational Mapping (ORM) design pattern—which, in reality, is an anti-pattern we should avoid. Before that, I had written a blog post on the same issue and even devoted a section to it in Elegant Objects (Volume 2). The talk is still highly relevant—you can watch it on YouTube (in English).
Читать полностью…