Profile avatar
hacopian.de
Ruby on Rails and Postgres enthusiast. Currently exploring local-first and DuckDB. Building www.changebot.ai.
36 posts 141 followers 612 following
Regular Contributor
Active Commenter
comment in response to post
Already fixed! 😅
comment in response to post
Hmm, currently in my app there are two scenarios where this method is called: 1) where the association is preloaded, but potentially called multiple times; and 2) not preloaded and only called once. How would you handle that?
comment in response to post
Yeah, the counterpart pattern is not strictly adhered to. See docs.ruby-lang.org/en/3.4/IO/Bu... and docs.ruby-lang.org/en/3.4/Socke.... But as we've said even when we have a counterpart, mutation may not be the concern, as with exit/exit!. I'm not really sure what to think; gardens evolve, I guess.
comment in response to post
Here's a good example: `exit!` exits the process without calling exit handlers like its counterpart `exit` does, a potentially dangerous action that does not involve mutation. docs.ruby-lang.org/en/3.4/Kerne...
comment in response to post
Docs call bang methods “dangerous": “the dangerous method implies that...[it] permanently modifies its receiver.” Seems to tightly couple “dangerous” with “mutation,” but could “danger” include other risks, as Piotr and Gregory suggest? Maybe, docs suggest a stronger correlation than was intended.
comment in response to post
I read The Man Who Spoke Snakish, possibly because you mentioned it on Facebook years ago -- absolutely loved it. Can’t wait to see how your game brings Slavic and Baltic folklore to life. Wishing you all the best for Zhenya’s Wonder Tales!
comment in response to post
I was under the impression that bang for mutate is a Ruby-ism, like sort! sorts in-place. While bang for exception is a Rails-ism, like find_by! raises if record is not found. My favorite is select! deletes in-place entries that don’t match.
comment in response to post
No one else has, so I will. I had to look at the docs. (value & mask) returns an integer which will be truthy (even if 0), so the Ruby-way would be to call value.allbits?(mask).
comment in response to post
Just finished writing 25 on the binding strip so I’m good to go.
comment in response to post
oh cool, i'm excited to try that! normally, i'm just pouring it over stuff like a neanderthal.
comment in response to post
Here's the list of smells from the talk: Long Method, Divergent Change, Inappropriate Intimacy, Switch Statements, Data Clumps, Feature Envy, Primitive Obssession, and Null Checks.
comment in response to post
Glad you dug it, Adam. The names and concepts all come from @martinfowler.com's seminal book "Refactoring." martinfowler.com/books/refact....
comment in response to post
Always blown away by how much deep, moving work is out there. www.youtube.com/watch?v=l9WC...
comment in response to post
I've felt this way too, but haven't heard anyone else express it. Relatedly, if the user can't do anything about the failed validation, or has no responsibility in causing it, then don't tell them about it. It's probably better to raise or just rely on the database raising.
comment in response to post
Our dog during our vacation to the Austrian Alps.
comment in response to post
Whenever I read about this type of LLM use, I'm reminded of the scenes in Real Genius when students slowly stop showing up to class, leaving tape recorders in their seats -- until eventually, even the professor does the same, lecturing to an empty room. www.youtube.com/watch?v=wB1X...
comment in response to post
go.bsky.app/EuRHN7o
comment in response to post
go.bsky.app/HL9mNDS
comment in response to post
bsky.app/starter-pack...
comment in response to post
Yeah, they could be more discoverable. If you know the creator, you can find them on their profile in their starter packs' tab.
comment in response to post
Have you found starter packs yet? bsky.app/starter-pack...
comment in response to post
Maybe also the rugs hanging on the walls?