• 0 Posts
  • 36 Comments
Joined 1 year ago
cake
Cake day: July 21st, 2023

help-circle

  • Now listen, Debrid isn’t actually providing any meaningful bandwidth. It’s a third party (fourth party?) service.

    What they are doing is simple: For their paying users (no clue what it costs without making an account, $3 a month?) they offer fast direct downloads. But they aren’t even storing the data themselves (besides caching)! They use premium accounts for other file hosters to get around the download throttling. So instead of you being limited to 1 MB/s or less for most downloads Debrid uses their account to download at full speed, then give you the file.

    So they are pretty much abusing other hosters by allowing their own users to share a premium account for various file hosting platforms. Which will work so long until these hosters start aggressively blocking accounts that use too much bandwidth.

    In addition to that you are paying Debrid money, $4 or something a month? If every YouTube user even paid $1 a month there would be zero need for ads. You are right, bandwidth is relatively cheap, but getting people to pay is difficult. Your suggestion would basically be that YouTube now forces everyone to pay $2 a month or they can’t access the service (or only 480p videos or whatever), which would work! But is far less suitable than charging more for no ads and have only one out of hundred(?) users pay while the rest happily watches ads.

    If every user threw in some coins per month we could have services with zero ads. But even a cheap subscription like $1 or $2 is often too much to convert users. The service has to be free, so that out of a million users maybe a few hundred actually pay.


  • You use a VPN when you either don’t trust your ISP (or the current network connection you are on) or you want to hide who you really are on the internet. Both are absolutely unnecessary when accessing a video hosting platform (you can do this, but you don’t have to). A VPN is also more on the user side of things to connect to a server, the server doesn’t care if you use a VPN.

    Debrid just makes accessing files easier as far as I can see. Like you give it a torrent link and it provides you a direct download? That’s nice and all for piracy, but has absolutely nothing to do with a video hosting platform like YouTube. You could use Debrid to download the video file from a host, but we are talking about providing the actual host you store the videos on.

    I absolutely do not get the points you are trying to make, do you have an example for an infrastructure like YouTube you could build out of a VPN and Debrid?

    Peertube would be an alternative of course, but it obviously has tons of its own issues (mainly resources, it still costs too much to host a large instance and if you try to access one video a million times things would straight up implode). I don’t see a realistic YouTube alternative without investing millions.


  • VPN has absolutely nothing to do with hosting a video platform, no clue why you even bring it up.

    Debrids is just a file download service, isn’t it? But even if it was a video hosting platform, a single server would never be enough. You need at least two (as a fall back). Then you need dynamic scaling for bigger user numbers, which works just fine for CPU and RAM (or even GPU resources), but doesn’t work for storage. So you need extra storage somewhere all servers have access to, but when it comes to videos you’d be paying millions in no time.

    So you need your own cheap storage and datacenters around the world. And CDNs on top to serve your content worldwide (otherwise the experience would suck on another continent if your server is too far away).

    Look up how Google does it, they have their own data storage centers. And if your video is crappy and you’re a nobody, it probably gets stored in a slower location on-demand. So it also loads slower. But if your video is in high-demand with millions of views it gets pushed into a more accessible location (and gets higher priority for CDNs). It’s not just hosting, there is a massive amount of logic and software behind the stack.


  • I pay a very small fee for debrid and VPN servers that offer exactly the same server capacity with enormous bandwidth and virtually no downtime.

    Did you just compare your small private server with YouTube’s infrastructure? Jesus Christ.

    Google had already been paying about 2 million a month for bandwidth in 2015 or so.

    I work for a larger company as a software developer, even with a billion in gross sales, there is absolutely no chance to provide even a tenth of YouTube’s service. Especially for free (without paywalls). The company would go bust in two years.


  • demanding they pay for a service that is worse than what adblockers already offer

    Or you could say they have tolerated adblockers until now and allowed you to use their service without a paywall. Yes, it sucks, we’re used to blocking ads, but it was like having free lunch.

    whilst also running a business that relies solely on critical mass of users rather than any actual value that youtube themselves can uniquely provide

    There have been plenty of other platforms who tried to do what YouTube did, they all failed. YouTube provides a massive infrastructure, about one hour of video is getting uploaded to their servers every second. And it must be kept around, so the amount of data only goes up. A total nobody can upload a 100 hours of video and YouTube will gladly accept that and still make those videos available 5 years from now.

    To say they don’t provide a relatively unique (or at least very difficult) service is insanity.


  • Not sure what kind of shit take that is if you bought a $70 game recently (Baldur’s Gate 3, even I’m waiting for a sale and money is not tight for me), you have cats and probably a Nintendo Switch with Zelda, that’s just what I read on the first page of your profile. So you obviously have money to spend on entertainment, like most adults.

    $20 is clearly too much just to get rid of ads (though it also gets you YouTube Music, like Spotify), but I was talking about content creators who can easily afford this. And most people spend hours on YouTube, probably more time than they use Netflix if we’re being honest.

    I don’t like Google either, but at some point they need to make money. That’s the simple truth. If everyone used adblockers we’d see a lot more content locked down behind a paywall. It is what it is. Then you either pay or you find some other source of content.

    And let’s be real, people pay for entertainment. If I go outside and throw a stone it would probably hit someone with a Netflix/HBO/Disney+/Spotify/Prime or whatever subscription. It’s difficult to find a person who doesn’t have Netflix for example. If Google forces this through YouTube will just be another subscription service (or you get ads). Or they start limiting uploads to save on cost, which would actually kill their platform (as probably 99% of uploaded videos are barely or never watched, around one hour of video per second is getting uploaded right now).



  • Dude, it’s at most 20 bucks a month to get rid of all ads (with YouTube music on top). Any creator who has some following can pay that from pocket change. The big content creators (1M+ subscribers) pull in millions with a mix of ad money and sponsorships. And it would be a business expense on top for them…

    Creators are the last person to actually care about YouTube forced ads, it’s their job, they can afford it easily.

    The only ones really impacted are power users, people who use adblock right now to watch. Which would also include me. But what do you want to do? There is no other platform, if they block adblockers I either have to watch ads or finally pay them money. I’m not going to leave for another platform because there is none. Twitch is there, sure, but it’s only for livestreams and awful for VODs.


  • You do realize the average person watches YouTube on their TV or their phone, with ads? You are not the target audience for Google.

    So I fully expect YouTube to kill adblocking at some point and they might lose what? 10% of users? Of which 5% either come back to watch ads or pay the subscription because all the content is on there?

    I’m 100% pro adblocker, the internet is a mess without, but it’s stupid to think YouTube wouldn’t cut you off the moment you don’t provide any benefit to their service (For example despite adblocking you might give Superchat money to streamers, or join Streamer memberships).


  • I personally like to keep it on. Most of my messaging is with family and friends and it’s good to know if someone read or hasn’t read my message.

    Especially if things are time critical. Picking someone up? Asking if they need anything from the supermarket? If I see that they read the message I know that they are going to reply in a moment. If they didn’t even read the message I won’t have to wait around / can guess that they are currently in the car or wherever.

    Sometimes you also have a spotty connection, so the received + read receipt can tell you if they actually got your message.

    In general if someone sends me a message and I read it… I’m going to fucking reply to it (if I’m not super busy, and even then I might send a quick message back). I seriously don’t get people who just leave things on read and then forget about it.


  • But the NAS is in your house… which basically means if it gets flooded/burns down all your data is gone too.

    I already have my data on my PC, a second backup inside the same house isn’t worth that much. But instead of relying on a cloud service I just rent a virtual server (for various things) and use Seafile to keep my data in sync.

    PC breaks? House burns down? My data is on my own server in a datacenter. My server gets cancelled? My data is on my PCs.

    So even with your NAS you are 100% reliant on a cloud backup still, so why did you get the NAS when you already have a copy of your data on your devices?





  • Vlyn@lemmy.worldtoProgrammer Humor@lemmy.mlSounds great in theory
    link
    fedilink
    English
    arrow-up
    174
    arrow-down
    4
    ·
    11 months ago

    TDD is great when you have a very narrow use case, for example an algorithm. Where you already know beforehand: If I throw A in B should come out. If I throw B in C should come out. If I throw Z in an error should be thrown. And so on.

    For that it’s awesome, which is mostly algorithms.

    In real CRUD apps though? You have to write the actual implementation before the tests. Because in the tests you have to mock all the dependencies you used. Come up with fake test data. Mock functions from other classes you aren’t currently testing and so on. You could try TDD for this, but then you probably spend ten times longer writing and re-writing tests :-/

    After a while it boils down to: Small unit tests where they make sense. Then system wide integration tests for complex use-cases.


  • Multi-threading is difficult, you can’t just slap it on everything and call it a day.

    There are languages where it’s easier (Go, Rust, …) but parallelism is an advanced feature. Do it wrong and you get race conditions or dead locks. There is a reason you learn about this later in programming, but you do learn about it (and get to use it).

    When we’re being honest most programmers work on CRUD applications, which are highly sequential, usually waiting on IO and not CPU cycles and so on. Saving 2ms on some operations doesn’t matter if you wait 50ms on the database (and sometimes using more threads is actually slower due to orchestration). If you’re working with highly efficient algorithms or with GPUs then parallelism has a much higher priority. But it always depends on what you’re working with.

    Depending on your tech stack you might not even have the option to properly use parallelism, for example with JavaScript (if you don’t jump through hoops).


  • At this point you’re just arguing to argue. Of course this is about the math.

    This is Amdahl’s law, it’s always about the math:

    https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/AmdahlsLaw.svg/1024px-AmdahlsLaw.svg.png

    No one is telling students to use or not use parallelism, it depends on the workload. If your workload is highly sequential, multi-threading won’t help you much, no matter how many cores you have. So you might be able to switch out the algorithm and go with a different one that accomplishes the same job. Or you re-order tasks and rethink how you’re using the data you have available.

    Practical example: The game Factorio. It has thousands of conveyor belts that have to move items in a deterministic way. As to not mess things up this part of the game ran on a single thread to calculate where everything landed (as belts can intersect, items can block each other and so on). With some clever tricks they rebuilt how it works, which allowed them to safely spread the workload over several cores (at least for groups of belts). Bit of a write-up here (under “Multithreaded belts”).

    Teaching software development involves teaching the theory. Without that you would have a difficult time to decide what can and what can’t benefit from multi-threading. Absolutely no one says “never multi-thread!” or “always multi-thread!”, if you had a teacher like that then they sucked.

    Learning about Amdahl’s law was a tiny part of my university course. A much bigger part was actually multi-threading programs, working around deadlocks, doing performance testing and so on. You’re acting as if the teacher shows you Amdahl’s law and then says “Obviously this means multi-threading isn’t worth it, let’s move on to the next topic”.


  • You still don’t get it. This is about algorithmic complexity.

    Say you have an algorithm that has 90% that can be done in parallel, but you have 10% that can’t. No matter how many cores you throw at it, be it 4, 10, or a billion, the 10% will be the slowest part that you can’t optimize with more cores. So even with an unlimited amount of cores, your algorithm is still having to wait on the last 10% that runs on a single core.

    Amdahl’s law is simply about those 10% you can’t speed up, no matter how many cores you have. It’s a bottleneck.

    There are algorithms you can’t run in parallel, simply because the results depend on each other. For example in a cipher where you first calculate block A, then to calculate block B you rely on block A. You can’t do block A and B at the same time, it’s not possible. Yes, you can use multi-threading to calculate A, then do it again to calculate B, but overall you still have waiting times while you wait for each result, which means no matter how fast you get, you always have a minimum time that you’ll need.

    Throwing more hardware at this won’t help, that’s the entire point. It helps to a certain degree, but at some point the parts you can’t run in parallel will hold you back. This obviously doesn’t count for workloads that can be done 100% in parallel (like rendering where you can split the workload up without issues), Amdahl’s law doesn’t apply there as the amount of single-core work would be zero in the equation.

    The whole thing is used in software development (I heard of Amdahl’s law in my university class) to decide if it makes sense to multi-thread part of the application. If the work you do is too sequential then multi-threading won’t give you much of a benefit (or makes it run worse, as you have to spin up threads and synchronize results).


  • There’s this Computer Science 101 concept called Amdahl’s Law that was taught wrong as a result of this - people insisted ‘more processors won’t work faster,’ when what it said was, ‘more processors do more work.’

    You massacred my boy there. It doesn’t say that at all. Amdahl’s law is actually a formula how much speedup you can get by using more cores. Which boils down to: How many parts of your program can’t be run in parallel? You can throw a billion cores at something, if you have a step in your algorithm that can’t run in parallel… that’s going to be the part everything waits on.

    Or copied:

    Amdahl’s law is a principle that states that the maximum potential improvement to the performance of a system is limited by the portion of the system that cannot be improved. In other words, the performance improvement of a system as a whole is limited by its bottlenecks.