• 1 Post
  • 41 Comments
Joined 1 year ago
cake
Cake day: July 2nd, 2023

help-circle
  • I don’t think either is actually true. I know many programmers who can fix a problem once the bug is identified but wouldn’t be able to find it themselves nor would they be able to determine if a bug is exploitable without significant coaching.

    Exploit finding is a specific skill set that requires thinking about multiple levels of abstraction simultaneously (or intentionally methodically). I have found that most programmers simply don’t do this.

    I think the definition of “good” comes into play here, because the vast majority of programmers need to dependably discover solutions to problems that other people find. Ingenuity and multilevel abstract thinking are not critically important and many of these engineers who reliably fix problems without hand holding are good engineers in my book.

    I suppose that it could be argued that finding the source of a bug from a bug report requires detective skills, but even this is mostly guided inspection with modern tooling.










  • No. Not in the slightest. If you think that we should vote to defederate from csam before we defederate from csam you have something wrong with you. If you say “that’s not what I mean.” No. That’s exactly what a democracy is.

    Should we have a responsive, responsible team that makes decisions for us? Yes. Is it a democracy? Fuck no. Is it nice that they listen to their users wants and needs? Yes. Should their be transparency in the process? Yes.



  • And all you would have to do is look it up? This isn’t a good argument. What is being gained here by posting about it? This isn’t a secret. They aren’t pulling a fast one over on you.

    You know what would be great? If there was a way we could… I dunno… collate all of these kinds of posts into a kind of… group… where like minded people could… get together and talk about it. I wonder if someone like this could exist. What do you think?







  • I’ll answer in a couple of different ways.

    1. If I am writing library code my why is you have an end use and I don’t care why you use it and you don’t care why I wrote it. You only care about what my code does so you can achieve your why.

    2. If we are working on the same code we have different whys but the same what. Then your comment as to why isn’t the same as mine which makes the comment incorrect.

    3. We are looking at a piece of code and you want to know how it works, because the stated what is wrong (bugs). This might be the “why” you are looking for, but I call this a “how”. This is the case where self documenting code is most important. Code should tell a second programmer how the code achieves the what without needing an additional set of verbose comments. The great thing about code is that it is literally the instructions on the how. The problem is conveying the how to other programmers.

    There are three kinds of how: self evident, complex how’s requiring multiple levels of abstraction and lots of code and complex short how’s that are not apparent.

    The third is where most people get into trouble. Almost all of these cases of complexity can be solved with only a single layer of abstraction and achieve easily readable self documenting code. The problem for many cases is that they start as a one off and people are lousy at putting in the work on a one-off solution. Sometimes the added work of abstraction, and building a performant abstraction, makes a small task a large one. In these cases comments can make sense.

    Sometimes these short, complex how’s require specialists. Database queries, performant perl/functional queries, algorithmic operations, complex compile time optimized templates (or other language specific optimizations) and the like are some of the most common examples of these. This category of problem benefits most from a well defined interface with examples for use (which might be comments). The “how” of these are not as valuable for the average developer and often require specialist knowledge regardless of comments for understanding how they work. In these cases what they do is far more valuable than how or why.


  • See, I think length limits and readability are sometimes at odds. To say that you 100% believe in length limits means that you would prefer the length limit over a readable line of code in those situations.

    I agree that shorter lines are often more readable. I also think artificial limits on length are crazy. Guidelines, fine. Verbosity for the sake of verbosity isn’t valuable… But to say never is a huge stretch. There are always those weird edge cases that everyone hates.



  • fkn@lemmy.worldtoScience Memes@mander.xyzWhy there are no time travelers.
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    1
    ·
    1 year ago

    I think it’s more correct to say that we don’t know how to travel in the other direction on the time axis. It could also simply be our perception of time only works unidirectionally.

    From a mathematics point of view, nothing is preventing going backwards in time… We simply don’t perceive time that way.

    Practically, this does nothing for us.