• 2 Posts
  • 1.03K Comments
Joined 3 years ago
cake
Cake day: September 24th, 2023

help-circle





  • GitHub. You’re hosting public stuff so there’s no more risk of your data being sold on GitHub than anywhere else public. GitHub is what recruiters understand and expect.

    I’ll get downvoted by extremists but this is the best option if you want a job and aren’t also an extremist.

    I would consider Codeberg or maybe even Tangled for actual projects you’re working on, but for just showing stuff of there’s no advantage to not using GitHub.


  • Not exactly. It means that any of the code could lead to memory unsafety, but it’s still better than Zig or C because you still only have to read 5% of the code to debug/fix those issues, instead of 100%.

    5% is clearly better than 100%. Whatever else you think about this port you can’t argue against that. In fact I can prove that it’s better.

    1. Does Rust’s memory safety design improve memory safety? Yes, this is proven by experience (e.g. see Google’s blog posts).

    2. Does “normal” (not slop) Rust code rely on some unsafe? Yes. All Rust code must use some unsafe because it’s used in the standard library, and even if you ignore that (there is an effort led by Amazon to formally verify it), it’s usual for Rust projects to use at least some unsafe. Let’s say 0.1% of lines.

    3. So 0.1% unsafe is clearly better than 100%. Is it possible for 0.1% unsafe to be better than 100%, but somehow 5% isn’t? That would require things to be non-monotonic which is completely implausible.





  • It doesn’t mean you made the wrong decision. Changing the names has a potential cost - you break something (this is especially risky for environment variables which have insanely global scope, no static type checking, etc.).

    Not changing the names has a potential cost too - causing confusion in future, wasted time, or even bugs due to the increased chance of mistakes.

    I’m currently leaving a company where they almost never clean up their messes. Tons of old unused code is just left in the repo. Causes huge wastes of time.

    Don’t underestimate the potential cost of not keeping things orderly. There was a famous case (Knight Capital) caused by not cleaning up an old unused CLI flag and it cost them $440m and destroyed the company.






  • Well I disagree. If you create a popular project, and then are a complete dick about reasonable requests, then that seems like an immoral thing to do to me.

    Of course you’re allowed to say “sorry I don’t have time to work on this any more”, or “I don’t think this feature belongs in this project” or whatever. Totally fine. But there are still behaviours that IMO are not ok. For example if Homebrew decided to inject donation request code into every package it installs. Or if ffmpeg added code that detected porn and refused to decode it.

    “BuT iTs FrEe! They can legally do what they like!” Sure, but it still makes them a dick.


  • That’s a lot of words. I think the reasons are pretty simple:

    1. Some people just don’t care.
    2. The Git CLI is poorly designed e.g. the many different ways to delete something.
    3. Some Git concepts are very poorly named, e.g. the “index”, “ours/theirs”. This adds to the confusion.
    4. There are many Git GUIs but only a very small number of actually decent ones (if you’re wondering: GitX, SourceGit, Git Extensions, and the Git Graph VSCode extension).
    5. There are a lot of idiots out there telling people not to use Git GUIs, when they are clearly the best way to learn how to use Git. Its easy to get into a mess if you can’t see what you’re doing.
    6. Git isn’t actually as simple as us pros would like to think. The underlying model and even the implementation isn’t too complex (I’ve written a Git client form scratch; not too hard apart from the lack of specs/docs). But you can easily get into a state where you’re pulling from a remote and someone else has pushed to the same branch so you need to resolve that (oh btw don’t do what Git tells you to!), and maybe it involves submodules too, and you basically need to fully understand Git’s model and be pretty good at the awful CLI too to resolve it.