Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)L
Posts
439
Comments
601
Joined
3 yr. ago

  • I develop professionally in C and C++. No they aren’t. At all. C and C++ are so loaded with footguns it’s a surprise people can get anything done in them without triggering UB.

    The way you parrot undefined behavior is a telltale sign you do not work with either C or C++. If you had any cursory first-hand professional experience with either one of those languages, you'd understand what UB is, why writing your code by laying unfounded expectations on UB is actually either a bug or design error on your behalf, you'd know that for a decade or so there are tooling that throws warnings and errors if you inadvertently use it, and above all UB only means frameworks are ultimately responsible to specify the behavior that is left purposely undefined.

  • If your primary exposure to programming is only typescript or JavaScript maybe you shouldn’t be jumping straight into something like rust.

    That completely contradicts any claim that Rust is user-friendly and provides a decent user experience.

  • Probably was closed

    What do you mean "probably was closed"?

  • A comment on the YouTube video makes a good point that we already have a better word for the concept of dealing with multiple things at once: multitasking.

    I don't think that's a good comment at all. In fact, it ignores fundamental traits that separate both concepts. For example, the concept of multitasking is tied to single-threaded task switching whereas concurrency has a much broader meaning, which covers multi threaded and multiprocess execution of many tasks that may or may not yield or be assigned to different cores, processors, or even nodes.

    Meaning, concurrency has a much broader meaning that goes well beyond "doing many things at once". Such as parallelism and asynchronous programming.

  • Do we really need a video about this in 2024? Shouldn’t this be already a core part of our education as software engineers?

    I'm not sure what point you tried to make.

    Even if you believe some concept should be a core part of the education of every single software engineer who ever lived, I'm yet to meet a single engineer who had an encyclopedic knowledge of each and every single topic covered as a core part of their education. In fact, every single engineer I ever met only retained a small subset of their whole curriculum.

    So exactly what is your expectation?

  • This is pure junior energy. Or trolling, I honestly can’t tell.

    OP makes a valid point, and a strong one to boot.

    Other than name calling, do you have anything to add?

  • You do actually understand that languages that aren’t JavaScript don’t have built in async runtimes and they need to be provided by a library, right?

    How do you explain C#?

  • Programming.dev Meta @programming.dev

    Problem with !data_structures

  • Node.js @programming.dev

    Announcing Deno 2

    deno.com /blog/v2.0
  • Programming @programming.dev

    Concurrency is not parallelism

    go.dev /blog/waza-talk
  • Data Structures and Algorithms @programming.dev

    When to Use Two Phase Commit in Distributed Transaction (2022)

    hongilkwon.medium.com /when-to-use-two-phase-commit-in-distributed-transaction-f1296b8c23fd
  • Data Structures and Algorithms @programming.dev

    Crit-bit trees

    cr.yp.to /critbit.html
  • good: Add foo interface.

    Another commit style is summarizing what a commit does. In this case it would be someting like:

    Adds foo interface.

    I think this style is more in line with auditing code.

  • That's weird. I noticed the post being marked as a dupe from the same community but I only saw one entry.

  • I’m not a fan of CDK as it seems to just introduce more cognitive load for developers and ops (as soon as something goes wrong / gets difficult), often long after the original authors have moved onto new shinier projects.

    I don't think so. If anything, CDK contributes to not only simplify deployments of complex web applications but it also makes said deployments testable and verifiable. Also, features such as constructs and basic modularization contribute to simplify and clarify any deployment. I don't know of any IaC tool that handles this better than CDK, frankly.

  • Data Structures and Algorithms @programming.dev

    Smolderingly fast b-trees

    www.scattered-thoughts.net /writing/smolderingly-fast-btrees/
  • C++ @programming.dev

    Let’s Rescue CMake Presets

    ibob.bg /blog/2024/06/14/rescue-cmake-presets/
  • C++ @programming.dev

    Tracking Shared Pointer Leaks (2023)

    ibob.bg /blog/2023/01/01/tracking-shared-ptr-leaks/
  • C++ @programming.dev

    Tracking Shared Pointer Leaks (2023)

    ibob.bg /blog/2023/01/01/tracking-shared-ptr-leaks/
  • The article makes some interesting points, but the author shows a complete detachment from reality by advocating against CloudFormation and CDK with simplistic and twisted logic (if any).

    An interesting read in spite of this.

  • Cloud @programming.dev

    21 More AWS Services They Should Cancel

    justingarrison.com /blog/2024-08-05-more-aws-services-they-should-cancel/
  • Programming @programming.dev

    ESP32: leaving love notes and entering demoscene territory (2022)

    theor.xyz /esp32-love-notes-demoscene/
  • IMO, fork is the best git client for macOS/Windows

    At first glance it looks like a SourceTree clone. What does fork provide that SourceTree doesn't?

  • Does anyone have any good sources or suggestions on how I could look to try and begin to improve documentation within my team?

    Documentation in software projecte, more often than not, is a huge waste of time and resources.

    If you expect your docs to go too much into detail, they will quickly become obsolete and dissociated from the actual project. You will need to waste a lot of work keeping them in sync with the project, with little to no benefit at all.

    If you expect your docs to stick with high-level descriptions and overviews, they quickly lose relevance and become useless after you onboard to a project.

    If you expect your docs to document usecases, you're doing it wrong. That's the job of automated test suites.

    The hard truth is that the only people who think they benefit from documentation are junior devs just starting out their career. Their need for docs is a proxy for the challenges they face reading the source code and understanding how the technology is being used and how things work and are expected to work. Once they go through onboarding, documentation quickly vanishes from their concerns.

    Nowadays software is self-documenting with combination of three tools: the software projects themselves, version control systems, and ticketing systems. A PR shows you what code changes were involved in implementing a feature/fixing a bug, the commit logs touching some component tells you how that component can and does change, and ticketing shows you the motivation and the context for some changes. Automated test suites track the conditions the software must meet and which the development team feels must be ensured in order for the software to work. The higher you are in the testing pyramid, the closer you are to document usecases.

    If you care about improving your team's ability to document their work, you focus on ticketing, commit etiquette, automated tests, and writing clean code.

  • The only (arguably*) baseless claim in that quote is this part:

    You do understand you're making that claim on the post discussing the proposal of Safe C++ ?

    And to underline the absurdity of your claim, would you argue that it's impossible to write a"hello, world" program in C++ that's not memory-safe? From that point onward, what would it take to make it violate any memory constraints? Are those things avoidable? Think about it for a second before saying nonsense about impossibilities.

  • Custom methods won't have the benefit of being dealt with as if they shared specific semantics, such as being treated as safe methods or idempotent, but ultimately that's just an expected trait that anyone can work with.

    In the end, specifying a new standard HTTP method like QUERY extends some very specific assurances regarding semantics, such as whether frameworks should enforce CRSF tokens based on whether a QUERY has the semantics of a safe method or not.

  • If you could reliably write memory safe code in C++, why do devs put memory safety issues intontheir code bases then?

    That's a question you can ask to the guys promoting the adoption of languages marketed based on memory safety arguments. I mean, even Rust has a fair share of CVEs whose root cause is unsafe memory management.

  • The problem with C++ is it still allows a lot of unsafe ways of working with memory that previous projects used and people still use now.

    Why do you think this is a problem? We have a tool that gives everyone the freedom to manage resources the way it suits their own needs. It even went as far as explicitly supporting garbage collectors right up to C++23. Some frameworks adopted and enforced their own memory management systems, such as Qt.

    Tell me, exactly why do you think this is a problem?

  • From the article.

    Josh Aas, co-founder and executive director of the Internet Security Research Group (ISRG), which oversees a memory safety initiative called Prossimo, last year told The Register that while it's theoretically possible to write memory-safe C++, that's not happening in real-world scenarios because C++ was not designed from the ground up for memory safety.

    That baseless claim doesn't pass the smell check. Just because a feature was not rolled out in the mid-90s would that mean that it's not available today? Utter nonsense.

    If your paycheck is highly dependent on pushing a specific tool, of course you have a vested interest in diving head-first in a denial pool.

    But cargo cult mentality is here to stay.

  • However, we’re still implementing IPv6, so how long until we could actually use this?

    We can already use custom verbs as we please: we only need to have clients and servers agree on a contract.

    What we don't have is the benefit of high-level "batteries included" web frameworks doing the work for us.