<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for zverok</title><link>http://disqus.com/by/zverok/</link><description></description><atom:link href="http://disqus.com/zverok/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Sat, 21 Jun 2025 05:51:29 -0000</lastBuildDate><item><title>Re: That useless Ruby syntax sugar that emerged in new versions</title><link>https://zverok.space/blog/2023-10-02-syntax-sugar.html#comment-6725653148</link><description>&lt;p&gt;It is not "new" by any measure.&lt;/p&gt;&lt;p&gt;IIRC, this was &lt;i&gt;always&lt;/i&gt; in Ruby, like since the language beginning. This is kind of bow to Perl, which has &lt;code&gt;qw[Rome Milan Venice]&lt;/code&gt; syntax (which has different semantics though: &lt;code&gt;[Rome Milan Venice]&lt;/code&gt; is a string literal here, and &lt;code&gt;qw&lt;/code&gt; is split operator; but it is a very widespread for defining word arrays).&lt;/p&gt;&lt;p&gt;I was always fond of it, like one of those "humane" language irregularities that make many small code fragments look lighter, even if you can't objectively explain why do you need that.&lt;/p&gt;&lt;p&gt;"The Hague" case can be solved by &lt;code&gt;\&lt;/code&gt; BTW, though it is a confusing style (but if it is just one instance in a big bunch of homogenous data, might be acceptable): &lt;code&gt;%w[Amsterdam Rotterdam The\ Hague Utrecht]&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;But one way or another, the "irregularity" in this case nicely underlines irregularity of the data ("most cities are one-word, but notice, there is this special case"), so I prefer to think about it this way.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sat, 21 Jun 2025 05:51:29 -0000</pubDate></item><item><title>Re: That useless Ruby syntax sugar that emerged in new versions</title><link>https://zverok.space/blog/2023-10-02-syntax-sugar.html#comment-6718261028</link><description>&lt;p&gt;Well, the change is simply old enough so I didn't see a point in trying to explain "how I look at it, and what thinking have caused it". Everybody have made their minds a long time ago about that.&lt;/p&gt;&lt;p&gt;As for my opinion on it: I recognize the change was disruptive, but it opened a further road for many modern features (like "true" keyword arguments and pattern matching). I understand the "theoretical" reasons for disliking it, but never had emotional connection with those reasons.&lt;/p&gt;&lt;p&gt;And "literally impossible to explain" seems a bit of exaggeration to me. It is, like, two phrases?.. "Generic shape of Ruby's Hash literal is &lt;code&gt;key =&amp;gt; value&lt;/code&gt;. For symbol keys, which are extremely widespread, there is a syntax sugar: &lt;code&gt;foo: bar&lt;/code&gt; is the same as &lt;code&gt;:foo =&amp;gt; bar&lt;/code&gt;." That's it.&lt;/p&gt;&lt;p&gt;I believe the linked post overcomplicates it by not starting with the "right" mental model (showcasing &lt;code&gt;'A':&lt;/code&gt; as the main syntax for symbol keys, and then drawing conclusions that it "converts" a string 'A' to a Symbol).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sat, 07 Jun 2025 07:10:01 -0000</pubDate></item><item><title>Re: Seven things I know after 25 years of development</title><link>https://zverok.space/blog/2025-01-27-7things-euruko.html#comment-6641507397</link><description>&lt;p&gt;For me, it is not as much about features as about preferred style. At some point in history, RSpec seems to have implied the style from my second example: implicit subject (defining subject once and then use &lt;code&gt;it { is_expected.to ...&lt;/code&gt;), one example per test, using rich matchers to better explain what is tested. &lt;a href="http://BetterSpec.org" rel="nofollow noopener" target="_blank" title="BetterSpec.org"&gt;BetterSpec.org&lt;/a&gt; (which promoted this style) was universally recommended resource.&lt;/p&gt;&lt;p&gt;Then, something changed: "tired" from "magic", the community started to require "not smart code", and approach to tests was especially affected. BetterSpec was proclaimed "not endorsed approach", &lt;code&gt;its(:attr)&lt;/code&gt; syntax got evicted from RSpec core (though is still maintained as plugin and even evolves), and IIRC, rspec-rubocop's default settings currently prohibit implicit subjects.&lt;/p&gt;&lt;p&gt;My second example doesn't have as much "new custom helpers" as it may seem: &lt;code&gt;create_record&lt;/code&gt; and &lt;code&gt;respond_with&lt;/code&gt; are &lt;i&gt;matchers&lt;/i&gt; (which RSpec recommends to define for richer tests), &lt;code&gt;subject&lt;/code&gt; is standard RSpec syntax, using it implicitly is standard RSpec feature; only &lt;code&gt;its_block { is_expected&lt;/code&gt; is custom thing, but it follows the old spirit of rspec ( &lt;code&gt;it { is_expected&lt;/code&gt; syntax is still there)—and, I'd say, &lt;i&gt;if&lt;/i&gt; RSpec would evolved in the direction it once was, this would long ago became part of the core.&lt;/p&gt;&lt;p&gt;As for "to much magic, hard to debug" statement—what can I say. My experience begs to differ (I used this approach to specs in many large production codebases through years, taught big teams to do it, and I have my anecdata about efficiency/problems, which not quite matches the common knee-jerk response).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Fri, 31 Jan 2025 01:08:52 -0000</pubDate></item><item><title>Re: How it became like this? Ruby Range class</title><link>https://zverok.space/blog/2024-07-26-range-evolution.html#comment-6554593189</link><description>&lt;p&gt;Oh, thank you for noticing!&lt;br&gt;It is definitely a (small yet nasty) bug after implementing new step behavior and then supporting “legacy” behavior for strings/symbols.&lt;/p&gt;&lt;p&gt;I’ll fix it soon.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sat, 21 Sep 2024 12:52:08 -0000</pubDate></item><item><title>Re: Language, perception, and empathy: Ukrainian's gaze (Notes to the talk rejected by RubyConf)</title><link>https://zverok.space/blog/2023-11-17-not-a-rubyconf.html#comment-6329759828</link><description>&lt;p&gt;I am honestly sorry for how that dialog went (I geniunely missed the mention in that email, got desperate, wrote to Twitter, got corrected, had immediately apologized: &lt;a href="https://twitter.com/zverok/status/1505912671903887369)" rel="nofollow noopener" target="_blank" title="https://twitter.com/zverok/status/1505912671903887369)"&gt;https://twitter.com/zverok/...&lt;/a&gt;. A few weeks after that I suddenly understood I am not subscribed to RubyWeekly anymore, tried to resubscribe and found out my email is banned.&lt;/p&gt;&lt;p&gt;If you still believe I acted in "bad faith" (what should it mean in the context?.. That I wanted to harm you personally, and deliberately misrepresented things?..), I am very sad about it, and I can assure you that I was not. I have only respect for you and everything you do for the community.&lt;/p&gt;&lt;p&gt;That also taught me a valuable lesson to not jump to conclusions and after that, I believe, I never demanded anything personally from you or anybody else.&lt;/p&gt;&lt;p&gt;If you think the phrase you are quoting from the blog post is harmful for you (I tried to make the paragraph neutral and somewhat self-indicting, but I might've failed), I can rephrase or remove it.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Thu, 23 Nov 2023 12:26:07 -0000</pubDate></item><item><title>Re: "Useless syntax sugar": Numbered block parameters</title><link>https://zverok.space/blog/2023-10-11-syntax-sugar1-numeric-block-args.html#comment-6299022054</link><description>&lt;p&gt;Well, `_` is tempting, but its use is widespread as an "unused parameter" (and even have language support, you can repeat it as a parameter name several times), so incredible amount of code would've been broken.&lt;br&gt;Introducing new syntax into a mature language provides pretty narrow design space, unfortunately.&lt;br&gt;Basically, limiting oneself to only use `_1` (maybe even enforcing with a linter) and perceiving it as a sigil to not think much about is the closest thing.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Thu, 12 Oct 2023 15:41:20 -0000</pubDate></item><item><title>Re: A few words on Ruby's type annotations state</title><link>https://zverok.space/blog/2023-05-05-ruby-types.html#comment-6190583565</link><description>&lt;p&gt;I actually did explore Crystal of course, since its early days. It would be appropriate to mention it in the post, but the process of writing was kinda chaotic, and the post already grew big, so... I just skipped.&lt;/p&gt;&lt;p&gt;But I am not as much interested in a "language like Ruby, but with type declarations" as in "what's the design space and consequences of trying to add types to Ruby." Crystal indeed started as an experiment in this domain, but grew far enough (both as a direct result of adding types, and of lang's authors other design decision) that it is only tangentially related.&lt;/p&gt;&lt;p&gt;But once I'll have time I probably should update the post or write a follow up with a few thoughts I've omitted, including this one, which makes it look I am kinda oblivious.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Mon, 22 May 2023 06:17:31 -0000</pubDate></item><item><title>Re: A few words on Ruby's type annotations state</title><link>https://zverok.space/blog/2023-05-05-ruby-types.html#comment-6179094874</link><description>&lt;p&gt;I am actually a part of Ruby core team :) Responsible for a few changes in the language, for better or worse: &lt;a href="https://zverok.space/ruby.html" rel="nofollow noopener" target="_blank" title="https://zverok.space/ruby.html"&gt;https://zverok.space/ruby.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;But I feel the idea feels half-brewed at the moment, so I am just dropping it for a public evaluation and discussion 🤷‍♂️&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sun, 07 May 2023 02:37:12 -0000</pubDate></item><item><title>Re: It is not what you expect, but it is what you want: how Data#initialize is designed</title><link>https://zverok.space/blog/2023-01-03-data-initialize.html#comment-6113477287</link><description>&lt;p&gt;Thanks, fixed! (A bit late indeed :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sun, 12 Feb 2023 07:59:57 -0000</pubDate></item><item><title>Re: Small nice feature that emerged in Ruby 3.1... But has a nasty quirk</title><link>https://zverok.space/blog/2021-12-08-value-omission-debug.html#comment-5643587278</link><description>&lt;p&gt;As a block, unfortunately. Only &lt;code&gt;p(a:, b:)&lt;/code&gt; will produce a desired effect.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Mon, 13 Dec 2021 04:21:52 -0000</pubDate></item><item><title>Re: I forgot how to spellcheck</title><link>https://zverok.space/blog/2021-05-06-how-to-spellcheck.html#comment-5381225461</link><description>&lt;p&gt;Sorry for a late response (Disqus somehow decided they don't need to notify article's author about comments... so I find them just by chance), and thanks for your thoughtful comment!&lt;/p&gt;&lt;p&gt;To address some good points you raised:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Wikidata's lexicographical data (which I would recommend instead of Wiktionary mentioned by you)&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Yes, it might be the way (I am following Wikimedia's efforts for open data, but there are so many of them it is not always easy to guess which is the most reliable and maintained), thanks for pointing it out.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;the LibreOffice package has an extension .oxt, not .odt which is a normal text document&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Oh, thanks, fixed!&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;On the other hand, I would oppose a bit that this cannot be included into Hunspell. From my – maybe too naive – point of view it would be enough to work with frequencies (if provided) and output probability instead of yes/no; and provide an interface to choose a style needed by user and reflect it in the check (maybe frequencies for different styles could be contained in dictionaries).&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Well, it &lt;i&gt;might&lt;/i&gt; work, but there are a few questions to ask. I allow that we can imagine adding some "frequency tag" to the dictionary format, and injecting one more loop in Hunspell's algorithm that checks frequency when present and reorders suggestions/provides correctness probability. (Even this task scares me a lot after all the time spent in the depths of the codebase.)&lt;/p&gt;&lt;p&gt;But then again: where are the data? One-list-per-language word frequency lists exist for some languages okay, but once we'll try to factor in all the style changes (I don't believe in short and non-intersecting "list of styles"), all the author differences (I am mentioning that depending on the author's own traits some errors might be more frequent, and some corrections more desirable), and language change with time, how many dictionaries we'll need to have? &lt;br&gt;Who will prepare them all? Would it be manual, or authomated somehow (which is dangerously close to "machine learning" already: machine takes the input corpora and "learns" word probabilities...)&lt;/p&gt;&lt;p&gt;Another funny thing to note here is however hard we try, Hunspell will never be able to distinguish "you're" from "your" and "that" from "cat"—because it lacks context of surrouding words; and fixing &lt;i&gt;that&lt;/i&gt; would require... well, making it into something else.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Also, aren't the current possibilities of text editors to ignore misspellings or to add words to custom dictionary just a primitive variant of how the user teaches the spellchecker to correspond with his vocabulary/language style? Couldn't be this a way?&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;It definitely could! Once we will have some way to gather these individual corrections (so millions of man-hours wouldn't be wasted by constantly teaching spellcheckers to remember next president's name), to make it more natural for users (so they don't need to click "add to the dictionary" 100 times per day, just correct the word or leave it be if it is considered correct), and the mechanism would understand that user that added "lol" to their dictionary on reddit doesn't want it to be considered correct in their scientific article... But then again, it will be more or less the thing I am writing about in the final words :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Wed, 12 May 2021 16:05:51 -0000</pubDate></item><item><title>Re: I forgot how to spellcheck</title><link>https://zverok.space/blog/2021-05-06-how-to-spellcheck.html#comment-5381192694</link><description>&lt;p&gt;Thanks!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Wed, 12 May 2021 15:41:28 -0000</pubDate></item><item><title>Re: Rebuilding the spellchecker: Hunspell and the order of edits</title><link>https://zverok.space/blog/2021-01-28-spellchecker-5.html#comment-5287658756</link><description>&lt;p&gt;(Now it notified me, too... Just some 9 hours after your comment :))))&lt;/p&gt;&lt;p&gt;&amp;gt; I intentionally didn't reproduce weird Hunspell's peculiarities (especially confirmed to be bugs by Laszlo Nemeth himself), so, to some extent, you can fix Hunspell.&lt;/p&gt;&lt;p&gt;Oh, you are digging much deeper than me, then :) I wonder which ones were confirmed as bugs, and are you in contact with Laszlo about it, or just gathered his opinion from open sources?&lt;/p&gt;&lt;p&gt;&amp;gt; I'm also considering to make suggestion algorithm more tweakable, and maybe even optionally plug in another, faster one.&lt;/p&gt;&lt;p&gt;That was my original intention, too, but now I am kinda disullisioned... So my plans now are as humble as just finish the article series.&lt;/p&gt;&lt;p&gt;&amp;gt; The only problem is, I've no idea yet, which one :)&lt;/p&gt;&lt;p&gt;I had two thoughts about it, not sure whethere they are valuable. (Anyways, they are rather about quality than speed.)&lt;/p&gt;&lt;p&gt;One is, currently Hunspell really lacks pronunciation similarity suggestions: I touched it a bit in the next chapter: &lt;a href="https://zverok.github.io/blog/2021-02-10-spellchecker-6.html#phonetic-similarity-useful-yet-unused" rel="nofollow noopener" target="_blank" title="https://zverok.github.io/blog/2021-02-10-spellchecker-6.html#phonetic-similarity-useful-yet-unused"&gt;https://zverok.github.io/bl...&lt;/a&gt;. It is _theoretically implemented_, but not much dictionaries do it (they should define algorithmic PHONE table in aff-file). At the same time, there are already a lot of sound-alike encoding algorithms, including international ones (like, in this Python library: &lt;a href="https://abydos.readthedocs.io/en/latest/abydos.phonetic.html" rel="nofollow noopener" target="_blank" title="https://abydos.readthedocs.io/en/latest/abydos.phonetic.html"&gt;https://abydos.readthedocs....&lt;/a&gt; — I assume there are a lot for Java, too).&lt;/p&gt;&lt;p&gt;Another thought is that—I'm going to it in articles, too—that with some source for word popularity stats the subjective suggestion quality would probably jump up significantly. In Hunspell's conception times obtaining and maintaining such lists would've been impractical, but now...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Mon, 01 Mar 2021 14:48:33 -0000</pubDate></item><item><title>Re: Rebuilding the spellchecker: Hunspell and the order of edits</title><link>https://zverok.space/blog/2021-01-28-spellchecker-5.html#comment-5285107710</link><description>&lt;p&gt;(Damn Disqus haven't notified me of your comment... I am not even sure it will notify you about my answer! But still...)&lt;/p&gt;&lt;p&gt;&amp;gt; I've been reimplementing Hunspell in Java for the last 1.5 months&lt;/p&gt;&lt;p&gt;Oh, cool! Glad to hear I am not alone on this dark and weird path :)))&lt;/p&gt;&lt;p&gt;&amp;gt; For more "completeness", I recommend checking some large text files in whatever languages you can find and verifying that Hunspell and your implementation produce the same results. That's when I found out that Hunspell's tests aren't covering everything.&lt;/p&gt;&lt;p&gt;Yeah... Preparing demonstration example for every chapter, I often find the thing that I overlooked, or edge case which suddenly works weird... Actually, it is easy to notice my &lt;a href="https://github.com/zverok/spylls/blob/master/CHANGELOG.rst" rel="nofollow noopener" target="_blank" title="https://github.com/zverok/spylls/blob/master/CHANGELOG.rst"&gt;Changelog&lt;/a&gt; follows the schedule of the posts :)&lt;/p&gt;&lt;p&gt;&amp;gt;  For spellchecking, that mostly works, but for suggestions, replicating Hunspell's results exactly proved to be much more difficult and not always worth it.&lt;/p&gt;&lt;p&gt;Oh, one of the harsh truthes of this year-long excersise for me turned out to be you can't "fix" (or "evolve") Hunspell... Every time I tried to "cut the corner, because this edge behavior is weird", it turned out later there actually was some useful behavior that was cut out. It mostly like (and I'll discuss it later in the series) some ML model grown through years, you can't just drop some of the quotients, even if it isn't obvious how it adds up—you need to retrain the whole model from the ground up.&lt;/p&gt;&lt;p&gt;So, it is a sad excercise, actually... But I still don't know what's the alternative.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sat, 27 Feb 2021 11:22:08 -0000</pubDate></item><item><title>Re: Weird Ruby: Invoking Lambdas</title><link>http://metaredux.com/posts/2019/12/17/weird-ruby-invoking-lambdas.html#comment-4728362736</link><description>&lt;p&gt;The last one (===) is more justified than [] or yield because it is not just "you can write this", but can be used in case:&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;br&gt;case foo&lt;br&gt;when 1..20&lt;br&gt;when /\d+/&lt;br&gt;when String&lt;br&gt;when -(x) { x.respond_to?(:to_s) }&lt;br&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;One may think whatever they want about this way of structuring (I personally find it extremely useful), but at least it explains "why Proc should have ===".&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Wed, 18 Dec 2019 05:48:55 -0000</pubDate></item><item><title>Re: Fun with each_with_object and other Enumerator adventures</title><link>https://zverok.space/blog/2019-10-18-each_with_object.html#comment-4660571140</link><description>&lt;p&gt;What's confusing? If what confuses you is &lt;code&gt;File.:write&lt;/code&gt;, it is Ruby 2.7's method reference. Ruby 2.6 equivalent would be &lt;code&gt;each_tuple(&amp;amp;File.method(:write))&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Mon, 21 Oct 2019 14:16:49 -0000</pubDate></item><item><title>Re: Fun with each_with_object and other Enumerator adventures</title><link>https://zverok.space/blog/2019-10-18-each_with_object.html#comment-4656854853</link><description>&lt;p&gt;It is not a bug. each_with_object/each_with_index/reduce produce enumerators which yield &lt;i&gt;two parameters&lt;/i&gt; into a block. All the rest of standard enumerators yield one (even if this one is an array). But one could make custom enumerator yielding any number of arguments.&lt;/p&gt;&lt;p&gt;It is indeed subtle behavior related to Ruby's "non-lambda" procs, but it is absolutely consistent.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Fri, 18 Oct 2019 06:48:19 -0000</pubDate></item><item><title>Re: yield_stelf is more awesome than you could think</title><link>http://zverok.github.io/blog/2018-01-24-yield_self.html#comment-4256853469</link><description>&lt;p&gt;Well, if you look at who proposed the new name... &lt;a href="https://bugs.ruby-lang.org/issues/14594" rel="nofollow noopener" target="_blank" title="https://bugs.ruby-lang.org/issues/14594"&gt;https://bugs.ruby-lang.org/...&lt;/a&gt; ;)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Wed, 26 Dec 2018 06:12:28 -0000</pubDate></item><item><title>Re: The Missing Ruby Reference</title><link>https://zverok.space/blog/2018-04-06-reference.html#comment-4231485384</link><description>&lt;p&gt;Thanks! I'll definitely take a look.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sat, 08 Dec 2018 15:53:19 -0000</pubDate></item><item><title>Re: yield_stelf is more awesome than you could think</title><link>http://zverok.github.io/blog/2018-01-24-yield_self.html#comment-3927601682</link><description>&lt;p&gt;This is array unpacking, not sure if it specified somewhere in particular, but it always worked (like natural part of the language, same as a, b = [1,2,3]). It is particularly convenient in blocks:&lt;/p&gt;&lt;p&gt;{a: 1, b: 2}.each_with_index { |kv, i| k, v = kv ... → separate unpacking statement, ugly&lt;br&gt;{a: 1, b: 2}.each_with_index { |(k, v), i| → it is unpacked in block declaration.&lt;/p&gt;&lt;p&gt;So, being able to say "unpack parameters on method passing" is a logical consequence. I tend not to use it (unlike unpacking in blocks) in code because people get confused, but... well, it is neat nevertheless. You can do this, for example:&lt;/p&gt;&lt;p&gt;def fetcher(len, (first, *)); &lt;br&gt;  "#{len} char words example: #{first})" &lt;br&gt;end&lt;/p&gt;&lt;p&gt;%w[test me please Ruby is cool].group_by(&amp;amp;:length).map(&amp;amp;method(:fetcher))&lt;br&gt;# =&amp;gt;  ["4 char words example: test)", "2 char words example: me)", "6 char words example: please)"]&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sat, 02 Jun 2018 08:14:10 -0000</pubDate></item><item><title>Re: The Missing Ruby Reference</title><link>https://zverok.space/blog/2018-04-06-reference.html#comment-3843945075</link><description>&lt;p&gt;Thanks for the feedback!&lt;br&gt;As the project's source is on GitHub (&lt;a href="https://github.com/rubyreferences/rubyref)" rel="nofollow noopener" target="_blank" title="https://github.com/rubyreferences/rubyref)"&gt;https://github.com/rubyrefe...&lt;/a&gt;, I believe that GitHub issues/PRs is the most flexible and convenient communication channel for opensource project.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sat, 07 Apr 2018 17:15:28 -0000</pubDate></item><item><title>Re: More yield_self awesomeness. Also, the new name proposed.</title><link>https://zverok.space/blog/2018-03-23-yield_self2.html#comment-3843141740</link><description>&lt;p&gt;Suit yourself.  ¯\_(ツ)_/¯&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Sat, 07 Apr 2018 04:23:55 -0000</pubDate></item><item><title>Re: More yield_self awesomeness. Also, the new name proposed.</title><link>https://zverok.space/blog/2018-03-23-yield_self2.html#comment-3841585765</link><description>&lt;p&gt;Well, Rust doesn't hesitate to use .then either ;) &lt;a href="https://doc.rust-lang.org/std/cmp/enum.Ordering.html#method.then" rel="nofollow noopener" target="_blank" title="https://doc.rust-lang.org/std/cmp/enum.Ordering.html#method.then"&gt;https://doc.rust-lang.org/s...&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Fri, 06 Apr 2018 03:10:29 -0000</pubDate></item><item><title>Re: More yield_self awesomeness. Also, the new name proposed.</title><link>https://zverok.space/blog/2018-03-23-yield_self2.html#comment-3831237800</link><description>&lt;p&gt;There is a huge Reddit discussion of whether .then is appropriate metaphor: &lt;a href="https://www.reddit.com/r/ruby/comments/86lqsw/more_yield_self_awesomeness_also_the_new_name/" rel="nofollow noopener" target="_blank" title="https://www.reddit.com/r/ruby/comments/86lqsw/more_yield_self_awesomeness_also_the_new_name/"&gt;https://www.reddit.com/r/ru...&lt;/a&gt;&lt;br&gt;That has some good points, in fact, but I decided to step back now from "deciding" further, the important thing was to raise the naming problem, and now it is up to Ruby core team to decide.&lt;/p&gt;&lt;p&gt;About #map: it is not a good choice, because this way you can't yield_self-ing collections anymore, which is totally legitimate case.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Fri, 30 Mar 2018 04:48:48 -0000</pubDate></item><item><title>Re: You should not implement #to_a for your classes</title><link>http://zverok.github.io/blog/2018-02-02-to_a.html#comment-3761000409</link><description>&lt;p&gt;Of course, as usual, feel free to :)&lt;br&gt;In fact, there is no need to ask every time, you can just translate what you find interesting, I am always for spreading the information and ideas.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">zverok</dc:creator><pubDate>Fri, 16 Feb 2018 05:38:21 -0000</pubDate></item></channel></rss>