one of the more useful things I realized at some point for how to be a good code reviewer is "that's not how I'd do it" is not constructive feedback and is not a valid reason to request a change, and if you can't think of an actual good reason to block a review, you can save a lot of time for everybody involved by just chilling out about it
life hack: live longer by dying on fewer hills
side thought: I don't get people who are adverse to reading code written by other people. how on earth did you people learn to program?
@aeva I put my hands in the METABLEND made from all computers ever ground up, powered by the eternal spark of the infinity catalyst
how the fuck did YOU learn to program?
@efi from a library book full of BASIC games that I had to carefully copy into the BASIC interpreter by hand like a monk copying manuscripts by candle light
@aeva messed up ngl
@efi I also learned a lot about HTML, CSS, and JAVASCRIPT as a kid by pressing that "view source" button and having a little lookaroo whenever I came across a web site that was doing something interesting
@aeva actually, I learned a lot from messing around with the tomb raider 4 level editor, including a meaning of the word script
I didn't even read english well back then, and had no internet access
@efi that's awesome
@aeva @efi The Warcraft 3 level editor was my very first programming experience.
@aeva @efi whoa, you just gave me flashbacks to copying c++ examples out of books by hand.

@aeva @efi

Did you have some sort of checksum per line? ANTIC had "Typo" and later "Typo 2" for typing in their BASIC listings (some of which were machine code in BASIC strings).

@danmcd @efi I don't remember that being a thing for qbasic
@aeva @danmcd in qbasic it was optional

@efi @aeva

I should be clearer.

ANTIC Magazine was, "The ATARI Resource". It had type-in programs, like its peers in other 6502-era machine magazines (e.g. Creative Computing, which touched all of them, and I'm sure there are others but I only know the two Atari ones.) You needed TYPO(2) the program to enter lines with less frustration.

qbasic? I didn't realize there were type-in programs that late in history, but I moved away from the 6502-generation straight into 68k boxes.

@danmcd @aeva wait I completely misread... I have no clue what you're talking about
my first machine was a windows 98 with a pentium 3

@efi @aeva

Kids... 🤣. (Sorry had to do that)

Type-in basic programs predate the Pentium by 15-20 years.

Look up the 6502 processor, and the late 70s early 80s machines that used it: Apple ][ (][+, //e); Atari 400/800/XL/XE, Commodore VIC-20 or 64/128

Modems topped out 1200baud until 1985...

"It was the 80s"

@danmcd @efi wanna feel old I'm nearly 40 lol
@danmcd @efi I transcribed old BASIC programs from a book into qbasic without knowing which parts were incompatible, and if something didn't work after I exhaustively checked every line, I think I either tried to narrow it down to things I could remove or moved on to another. The main thing I remember not being compatible were some kind of shape drawing routines, but the memories are really fuzzy. Definitely wasn't a type-in shell.
@aeva @efi the fun comes when your reviewee is a tox brogrammer and hurls personal attacks
@Nimbius666 @efi my studio doesn't hire people like that
@aeva @efi never work at a startup. That was the lesson I learned.
@efi @aeva magnetic needle and a steady hand
@aeva I’ve always found it interesting when someone new joins a codebase and wants to change a lot of things. Often there’s a lot to be learnt from a fresh perspective, but also a lot of it is just about familiarity. Absorbing a new codebase is definitely a skill.
@bnut @aeva "it ain't good cruft, but it's my cruft..."
@aeva it's ok I'll just read code generated by AI then.
@grumpasaurus I said "written by people". I was very careful to write "written by people".
@aeva I think that's the rub right? Because I think it's very that people who simply don't want to read other people's PRS are likely the people who will simply commit things written by AI that they haven't even bothered to review
@grumpasaurus I don't know that I've had the displeasure of having to review an entirely stochastic code submission yet, but my current policy for my hobby projects is I reserve the right to report people as spam, block them, and/or be mean to them as necessary. If or when that situation eventually comes up at work, my current feelings are that I'm paid enough to conduct myself with professionalism and dignity when working with clients.

@aeva it's just tiring, is all. Easier to come up with new logic and write it than it is to learn existing logic.

At least, that's how it is for me

@aeva by reading short snippets and specs and reinventing everything else
@aeva Other people’s code is fine. Six months ago me was clearly an idiot though.
@aeva unironically it's must faster to learn programming by just writing your own thing and then inspecting via debugger when you have a misunderstanding. Other people's code _can_ be joyful to read, and it's nice when you actually do see some well-written code, but most code is OO spaghetti that just makes you more confused than when you started.
@NickDrisc0ll I guess there's a lot of people who know how to write but can't read so why not
@aeva well debugging is impossible without reading, so not really.
@aeva it was not until quite recently, in the grand scheme of things, that I had positive PR experiences that didn't involve pushback from a senior male employee that boiled down to (or was plainly stated as) this.

At my current job, in fact, I had a
shit ton of anxiety about PRs for probably the first six months due to numerous, numerous experiences where a PR was used to gatekeep and delay my contributions. Especially when I could look at other PRs where male colleagues were doing exactly the same thing and were approved without even a comment on it.

I'm not as anxious now specifically because I've received good feedback at my current job (not coincidentally, none of it was ever shaped like this).
@aud my last job (about 10 years ago) I worked at a place like that and they tracked individual "velocity" as a performance review metric. every single thing I'd try to submit took a week to get through review no matter how trivial.
@aud that team also did a thing where the entire team votes on the "point" score of a given ticket, and mine always got voted low for some reason 🙄
@aeva haaaaaaaaaaa wow that pisses me off.

and that is also familiar for reasons I'm not going to allow my brain to consider for now.
@aud I like to think in the long term I came out ahead for getting fired from that place, but I wouldn't wish that on anybody.
@aeva hey, what a surprise, I was also 'laid off' from the place that blocked my PRs.
@aud @aeva I once had a PR gatekept for *over a year* for literally no stated reason.
@aud @aeva I've also had a PR gatekept over a disagreement about a *code comment*. I wish I was exaggerating.
@be @aeva "tech is a meritocracy", typically said by trust fund assholes who wrote code once that also sucked....
@aud @aeva But of course the problem was me being mad about getting treated this way repeatedly over years, so I was the one who had to get pushed out, not the one guy repeatedly doing this shit.
@aeva @aud programming famously a field given to consensus based on good reasoning and NOT superstition and prejudice
@SnoopJ @aeva begins invoking GPL like a litany
@SnoopJ @aeva "I must not redistribute or fork without source. Redistributing or forking without source is the community killer. I will redistribute or fork with source and allow the violation to pass over me..."
@aeva @aud that feels extremely hostile and would make me feel extremely concerned about escalation
@hipsterelectron @aud it was a very upsetting and confusing place. At the time I felt like I got along with the people on my team and they certainly seemed friendly. I'm not even sure they realized they were doing it.
@hipsterelectron @aud unexamined prejudice and cognitive dissonance makes people do strange and awful things sometimes. (and sometimes people are just twofaced jerks idk)
@aeva @aud tech guy whose favorite character is gaston and prefers the uncomplicated first half of the film with the torches and pitchforks before it got woke

@aeva @aud planning poker has to be one of the dumbest things I've experienced. Not so much on the consensus building RE time estimation, but the nonsense "complexity points" thing which ultimately maps to time anyway "1 point is an hour, 4 points is a day, 8 points is a week etc" It's still a time estimation, just with a bogus abstraction wrapped around it for some reason.

Maybe the abstraction exists to make it easier to handwave BS like you dealt with

@beeoproblem @aud my rule (i'm a lead now) is the person doing the work provides their estimates, and my job is mostly to keep track of the error bars and keep an eye out for signs of other problems. if someone were to ask a month for something that should only take a day, then the why is something I need to look into, but generally what happens instead is people usually under estimate the amount of time needed and I may need to ask them to add more time so our planning is more accurate.
@beeoproblem @aud imo velocity is a shit metric. imagine trying to budget your finances with "velocity". don't spend any less, just yell at your money until it spends faster
@aeva @beeoproblem I feel like it's obvious from what you said, but clearly in the hands of someone who is a team lead "in good faith", these metrics can be tools

but in explicitly or implicitly biased hands, they're weapons. Same story as ever, I suppose.
@aeva @beeoproblem having said that, it's nice to hear your approach as a team lead. It's always nice to hear about good environments and practices...