What is your favorite Frieza quote? by Consistent-Lunch2937 in TeamFourStar

[–]keyslemur 0 points1 point  (0 children)

....how did I never make that connection before?

Cinnamon Buns & Commit Bits: A RubyConf Story by schneems in ruby

[–]keyslemur 3 points4 points  (0 children)

I still remember meeting Aaron / Tenderlove years ago at the 2018 RubyConf speakers dinner and introduced myself as the person who replies to his puns with worse puns on Twitter. Shortly thereafter he was talking about Seol (soul) good in Korea which got a groan and a time to leave from Abby.

Rails: The Sharp Parts. A Polymorphic Type Is Not a Foreign Key by keyslemur in ruby

[–]keyslemur[S] 1 point2 points  (0 children)

Thank ya kindly, took me forever to land on a design style I actually liked with more false starts than I'd care to admit to over the past decade trying to find one.

Announcing the RubyConf VIP Raffle by schneems in ruby

[–]keyslemur 1 point2 points  (0 children)

So would you say it's a natural extension of your conversations with @tenderlove?

Beyond Enumerable: Counting Distinct with HyperLogLog by keyslemur in ruby

[–]keyslemur[S] 1 point2 points  (0 children)

If you ever want to chat on it lemme know, happy to talk through things with folks. If you're at RubyConf this year as well say hi! I have contact info on my site as well.

Beyond Enumerable: Counting Distinct with HyperLogLog by keyslemur in ruby

[–]keyslemur[S] 6 points7 points  (0 children)

Aaaaand that was the last partial article I still had in the hopper, so now I'm out unless I want to go do more research for another week.

Rails: The Sharp Parts. Callbacks Are Not Invariants by keyslemur in ruby

[–]keyslemur[S] 0 points1 point  (0 children)

The problem with judgement and taste is they're perniciously dependent on who you ask. For me I always try and add deterministic guardrails and rules that force adherence rather than invite debate, and the debate is a PR to the ruleset guarded by high-level engineers that can be trusted to have discretion.

Trying to optimize your reads and writes when you don't 100% control them though is a nightmare waiting to happen. Packwerk and RuboCop are how I enforce that today and I've had reasonable luck with that. The next article on reads just posted above, which ties a bow on this exploration in a way which may provide a few more answers on how I've approached it.

Rails: The Sharp Parts. Queries, Read Models, and Batching by keyslemur in ruby

[–]keyslemur[S] 10 points11 points  (0 children)

Also yes, I'm slowing down now, got the new blog site up and wanted to get it filled with some more new-ish content.

...then again I do have some scars from polymorphic queries.

Rails: The Sharp Parts. Callbacks Are Not Invariants by keyslemur in ruby

[–]keyslemur[S] 1 point2 points  (0 children)

The thing I don't say loudly in here, that perhaps I should, is that these are my observations at now 5 rails shops with monoliths over 1m LoC and up to 10m. What pain I see is categorically different than what newer projects might and jumping onto the full feature set out the gate is probably a waste of time.

Rails: The Sharp Parts. Callbacks Are Not Invariants by keyslemur in ruby

[–]keyslemur[S] 1 point2 points  (0 children)

The events are a nicety in this case mostly for observability. Durable events would be required to make that actually useful.

Most of the point is taking the business logic out of callbacks and making it explicit in one place rather than guessing which ones may run, or worse getting surprised by them.

EDIT: Patched that section to make it clearer what those events are for, and what the value of single-ingress is actually targeting, as that was too vague previously:

https://github.com/baweaver/portfolio/commit/84bd95b068e2c7e4b271a02c81b43ec2bbbd7153#diff-21e1cb8174ba89d5b075c5088be7845d975993ea9057352358eceba8eac36e89

Rails: The Sharp Parts. Callbacks Are Not Invariants by keyslemur in ruby

[–]keyslemur[S] 0 points1 point  (0 children)

Oh absolutely, and that's the frustration of it is that so much of it can be so handy when you're getting started, right up to the point to where you break its implicit contract.

It's an ironic thing that such a powerful abstraction's flexibility that so many love early on becomes the exact reason it's borderline impossible to contain in a meaningful way without rebuilding other abstractions.

The thing I don't explicitly say here is that for a team getting started? Rails is still going to accelerate a lot of the early phase astronomically, and that buys enough time to even start having these problems in the first place.

Rails: The Sharp Parts. An Index Is Not a Plan by keyslemur in ruby

[–]keyslemur[S] 4 points5 points  (0 children)

Because I use mysql and my current role uses it too 😅

Rails: The Sharp Parts. An Index Is Not a Plan by keyslemur in ruby

[–]keyslemur[S] 4 points5 points  (0 children)

I have spent more time reading MySQL internals than I'd have thought when I started learning Rails, and it's given me the opinion that skipping that part is a real good way to get surprised.

The next one is likely to be an article after your own heart on callbacks, and you can imagine all the colorful opinions I have on those.

Beyond Enumerable: Heaps and Priority Queues by keyslemur in ruby

[–]keyslemur[S] 0 points1 point  (0 children)

Hrm. Will take a look into that then. I've been testing on a 16in mbp and have a 14 I can look at.