Preferences

OvervCW
Joined 73 karma

  1. Mullvad at least is funded by their VPN subscriptions.
  2. In my experience Chrome does not just load faster, but it also uses less memory than Firefox because of its more aggressive tab hibernation that is enabled by default.

    On my laptop I had to switch from Firefox to Chrome because it kept filling up all of my RAM resulting in other applications crashing.

  3. The document you linked mentions $50M in advertising/subscription revenue.
  4. You can install uBlock Origin on Firefox mobile; it's the only reason I use it.
  5. It is the desktop where Firefox has a 4% market share right now. Once you consider all traffic it drops down to 2%.

    Source: https://gs.statcounter.com/browser-market-share/desktop/worl...

  6. Why do they use air for this instead of water?
  7. How would this stop people from using their iPhone to take pictures of AI generated images?
  8. In what way is it NP-hard? From what I can gather it just eliminates nodes where the pod wouldn't be allowed to run, calculates a score for each and then randomly selects one of the nodes that has the lowest score, so trivially parallelizable.
  9. Which is strange, since one of their measurement units is literally based on a body part.
  10. >Did I add explicit checks for all the errors my function calls might return?

    You can check anything with a linter, but it's better when the language disallows you from making the mistake in the first place.

    >You can forget to use `with` in Python, I guess that's also C now too eh?

    When using `with` in Python you don't have to think about what exactly needs to be cleaned up, and it'll happen automatically when there is any kind of error. Consider `http.Get` in Go:

    resp, err := http.Get(url)

    if err == nil { resp.Body.Close() }

    return err

    Here you need to specifically remember to call `resp.Body.Close` and in which case to call it. Needlessly complicated.

    >Then stop writing spaghetti and use a higher level abstraction like `x/sync/errgroup.Group`.

    Why is this not part of the standard library? And why does it not implement basic functionality like collecting results?

  11. No need to talk about generics when we can talk about something simple like the inability to implement type safe enums in Go.
  12. They are similar in the sense that there are very few abstractions, relying on the programmer to reimplement common patterns and avoid logical mistakes.

    You have to put thought into such things as:

    - Did I add explicit checks for all the errors my function calls might return?

    - Are all of my resources (e.g. file handles) cleaned up properly in all scenarios? Or did I forget a "defer file.Close()"? (A language like C++ solved this problem with RAII in the 1980s)

    - Does my Go channel spaghetti properly implement a worker pool system with the right semaphores and error handling?

  13. In this specific blog post I suppose only "Ranging Directly over Integers" counts, but I was more generally referring to the introduction of features like generics.
  14. I'm amused by posts like this because it shows that Go is finally slowly moving away from being an unergonomically simplistic language (its original USP?) to adopt features a modern language should have had all along.

    My experience developing in it always gave me the impression that the designers of the language looked at C and thought "all this is missing is garbage collection and then we'll have the perfect language".

    I feel like a large amount of the feeling of productivity developers get from writing Go code originates from their sheer LOC output due to having to reproduce what other languages can do in just a few lines thanks to proper language & standard library features.

  15. What does DO mean in this context?
  16. Serverless only makes sense if the lifetime doesn't matter to your application, so if you find that you need to think about your lifetime then serverless is simply not the right technology for your use case.
  17. Agree, it seems like they decided to use Cloudflare Workers and then fought them every step of the way instead of going back and evaluating if it actually fit the use case properly.

    It reminds me of the companies that start building their application using a NoSQL database and then start building their own implementation of SQL on top of it.

This user hasn’t submitted anything.