714 karma · joined December 21, 2021
In this case though we've have on one hand a product that definitely does aggregate data about searches, and doesn't do what I need very well; and the other a product that could, but does not currently aggregate data, and does an excellent job serving my needs.
And importantly there is no option of a product, available now, that is verifiably prevented from aggregation. Even a VPN unless I disconnect and get a new random IP between every individual search does not provide that protection. (And then browser fingerprints even.)
Small correction here but it is not 128 random bits entirely: 6 bits are reserved for the version marker.
It was not the optimal solution, agreed. The reason was actually that a significant technical complexity was found while trying to adapt the existing modes. The syntax table vs. tree-sitter parse tree was simply too divergent for a mode to be just switched from one to the other. So the decision which I don't think anybody was completely happy with, but considered the only feasible way to move forward, to have new modes with tree-sitter.
You can see some discussion here: https://old.reddit.com/r/emacs/comments/15g9cna/why_is_emacs... and quick link to the mailing list thread: https://lists.gnu.org/archive/html/emacs-devel/2022-12/msg01...
The article seems to be based on a review of the privacy policies rather than sniffing actual collected data. We can conclude the policy leaves openings for them to do it, but it may not in fact be done at this time.
(Not affiliated with them except as a very happy customer.)
Second is that they should be deployed judiciously: if you're making dozens of them on one PR then something is wrong either with the PR or with you. If it's you, then figure out which 2-5 or so (depending on the changeset size) are most important to you and let the other ones go. If it's the PR, then pulling the author aside and working with them to understand the codebase style, and helping them push a revised changset, is a better route than carpet-bombing their PR. (And you'll probably want to follow up that pairing beforehand for the next couple of PRs they do.)
Third is how to express them: the examples in the article are pretty good in this regard. Remember that these are optional improvements, and some of them can be subjective even if they're backed by common practice in the codebase. Be friendly rather than curt with your colleagues. And give some justification for your suggestion. If you can't come up with a good justification, it might be a sign that the comment isn't worth making.
On the receiving side, also try to take the comments in a friendly spirit. It's easy and natural to react negatively to any kind of comment on something you've worked on. But let that pass and don't make it part of your outward response. And most of all try to remember the suggestions reviewers make, so that they're not forever saying the same thing on your PRs. And if that does arise for some reason, it's again cause for a side conversation.
If I sprinkle a couple of prints and my hypothesis about what state I need to see is wrong, then I have to do another build and run cycle to get more information. If I'm stopped at a breakpoint I can dynamically and interactively root around without having to go through the whole scenario again.
Maybe this is just a different mode of using the debugger than what's being argued against. I will say that stepping through is really only fruitful in my experience when there's an extremely narrow region of code that I've identified as causing the problem.