• 0 Posts
  • 128 Comments
Joined 2 years ago
cake
Cake day: July 3rd, 2023

help-circle





  • I’ve seen some garbage slide through code reviews. Most people don’t do them well.

    I’m doing contract work at a big multinational company, and I saw a syntax error slide through code review the other day. Just, like, too many parenthesis, the function literally wouldn’t work. (No, they don’t have automated unit tests or CI/CD. Yes, that’s insane. No, I don’t have any power to fix that, but I am trying anyway). It’s not hard to imagine something more subtle like a memory leak getting through.

    In my experience, people don’t want to say “I think this is all a bad idea” if you have a large code review. A couple years ago, a guy went off and wrote a whole DSL for a task. Technically, it’s pretty impressive. It was, however, in my opinion, wholly unnecessary for the task at hand. I objected to this and suggested we stick with the serviceable, supported, and interoperable approach we had. The team decided to just move forward with his solution, because he’d spent time on it and it was ready to go. So I can definitely see a bunch of people not wanting to make waves and just signing off on something big.




  • I’ve been pushing to add some basic checks on PR, and people are reluctant. There’s one repo that I’m code owner on so I spent the like 15 minutes to apply a code formatter and add a GitHub action to check. But on the main repo people are dragging their heels. I’m like just pick ruff or black and do it. It’s going to take like 10 minutes. I’m not asking for us to go crazy and add automated tests right now, but can we at least get something to verify the python code is syntactically correct?

    The other day something went through code review until I looked at it and saw there was an extra (, and that shit wouldn’t even run. I’m like please please add an automated check. I’ll do it. Please.

    I think a lot of people just aren’t familiar with how other places do software. This is the same place that was ssh’ing into prod and making changes right on the machine until like this month.



  • I’m kind of bummed no one at my job really does code reviews seriously. I don’t really get any feedback, so it’s hard to improve.

    That’s also probably why the older code is an idiosyncratic mess of mutations and "oh yeah you need this config file that’s not in source control " and “oh sorry I guess I hard coded that file path, huh?”


  • There was a website where users could request something or other, like a PDF report. Users had a limited number of tokens per month.

    The client would make a call to the backend and say how many tokens it was spending. The backend would then update their total, make the PDF, and send it.

    Except this is stupid. First of all, if you told it you were spending -1 tokens, it would happily accept this and give you a free token along with your report.

    Second of all, why is the client sending that at all? The client should just ask and the backend should figure out if they have enough credit or not.




  • I had that specific problem trying to run an elden ring mod (reforged) this week.

    /home/myuser/Games/er_reforged/ERRv2.0.1.1-541-2-0-1-1-1762909215/ERRv2.0.1.1/internals/modengine/bin/me3: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by /home/myuser/Games/er_reforged/ERRv2.0.1.1-541-2-0-1-1-1762909215/ERRv2.0.1.1/internals/modengine/bin/me3)
    [RED]Error:[/]
    me3 failed to launch due to error code 1: Unknown
    

    That kind of thing happens on Windows sometimes, but there’s also more people finding and posting solutions.

    Of course, a regular user isn’t installing mods for games. That’s already kind of a niche activity.

    Linux is still my choice, though.





  • One of my jobs went to microservices. Not really sure why. They had daily active users in the thousands, maybe. But it meant we spent a lot of time on inter-service communication, plus local development and testing got a lot more complicated.

    But before that, it was a single API written in Go by an intern, so maybe it was an improvement.