What Ruby’s top-level methods actually are, who they belong to and how they are namespaced. A few days ago, a curious question was asked on /r/ruby, which can be boiled down to this: How are the methods of the Kernel module available in the top-level scope? The question was dedicated to rand method, but (as the author correctly suggests) it also...
Some thoughts on how programming’s unlikely relations to poetry, and some implications of those relations I don’t have much time recently to work on articles about programming (especially considering my typical article length); but I have some previously written content to share. This article was drafted as a Twitter thread on my 39th birthday:...
A “stories-first” approach to refactor a small yet complicated piece of business code Recently, I didn’t have time or resource for serious writing. I had plans for several long articles for the summer that gone, but unfortunately not many have came of that. But last night I have stumbled upon famous (so it seems, though I have never seen it...
Silent changes in payment methods on big creator funding platforms raise some unpleasant questions. UPD Aug 13, 2024: The kind-of-official reply from BuyMeACoffee, and my response to it. UPD Aug 14, 2024: A support email to one of the users gives BuyMeACoffee’s reasons, and also they blocked me on X (Twitter). What happened Recently, many...
Understanding the core class design and usage via its evolution Years ago, my studies into the Ruby Evolution started with the persuasion that mastering the programming language to express one’s intentions clearly and efficiently may grow significantly by understanding how it evolved and what intentions were put behind its various elements....
One Ruby thing I never noticed before. While working on Ruby Evolution-themed articles (and looking for a shape for the future book), I am starting to look deeper and deeper into the history of the language—and into other languages, too, trying to understand when some solutions became common in the industry, or, vice versa, when something has...
This is the first part of what’ll hopefully become a new series and potentially even a book. It is dedicated to studying various elements of Ruby programming language design decisions, how they evolved with time, and how they look in a wider context. This part is dedicated to method definitions—their general shape and ways to specify arguments....
For three months already, I haven’t published anything on my blog/Substack. In truth, I have a few drafts/half-written posts/unfinished projects to share, but neither of them felt like being worth completing. The amount of duties my service requires has changed recently, too, leaving me much less spare time to write. But if I am being honest with...
Part 1: Welcome to reality …so, the story goes like this: Just a few months after ChatGPT became an Internet darling, I suddenly understood that it (and LLMs in general) rendered my biggest personal project irrelevant. One might ask: so what? In the ever-changing industry, nobody has a steady ground underneath their feet. A lot of software...
At the end of September, I returned to— more peaceful parts of Ukraine, let’s say. And a Reddit discussion inspired me to start writing what I expected to be a short blog post. The discussion was about new Ruby syntax elements from recent versions, and, as usual, a fair share of participants expressed some variety of displeasure. I don’t care...
I have been writing in Ruby for almost 20 years; my first version was Ruby 1.6. I was always curious to observe how the language evolves, always trying to see what the changes might help me understand about my own usage of it, the community, and the ways of thinking in code. For me, understanding how it changes helped me to understand how it is....