• 0 Posts
  • 28 Comments
Joined 1 year ago
cake
Cake day: July 10th, 2023

help-circle
  • This message is displayed in the browser because Google asked your browser to do it, and your browser got the message and put it there.

    When displaying ads, the end user experience is 100% client-side. You are using your screen and speakers to observe it. You can turn off your speakers and screen if you want, which will effectively “block” the ad.

    But that is silly. Not only do you own your screen and speakers, but you have control of what you’re browser is doing, too (if you use a respectable browser). When HTML, CSS, JavaScript, and other content is downloaded, just that happened: file downloads. After it has been downloaded, your browser then consumes it.

    When it is consumed, a lot happens, but ultimately, the code in the browser displays content. Your (respectable) browser does all of this, and will change the look depending on local fonts, accessibility options, etc. With an ad block add-on, it will also remove these ads.

    However, when ads are removed, the DOM is mutated with deleted or replaced content. It is possible for a website to then write ad block detection scripts to see if the ad contents have been removed or not. There are many ways to do this, and this screenshot is the result of one way of doing it.

    However, enter the cat-and-mouse-chase of ad block block blocks. You can block your ads, then block the ad block block like this screenshot. These types of ad block rules are less common, but many public ones are available. Check the uBlock Origin lists in the setting page. By default, only about a third of the lists are enabled, and these extra blocks are in there.

    Another avenue of determining that ads were not loaded is for the server to inspect if client-side (you) requests were made to fetch the ads. Even if this is in place, the server cannot determine if you have actually watched the ad or not. It could try to do more client-side attempts at validating that you somehow displayed it, but again, that’s client-side.

    Imagine if you were sent a letter and a pamphlet in the mail. Imagine if the letter said that you could mail them back for a free sample of their product, but only if you read the pamphlet. They would have to trust that you read it, because you are reading your mail in the privacy of your own home. However, you could opt to toss the pamphlet (like an ad blocker) and never read it. It’s your mail, your home, and your choice.



  • Some printers detect when cartridges have been refilled by the user and are programmed to stop working then.

    This is absurd. I would like to hear how this benefits the consumer without attempting to talk about “quality” or something. This would be like my car not starting cause I didn’t use Shell gas.

    What’s more upsetting is that printers are client side all the way. There is nothing about them that needs to reach out to the Internet to print pages. The printer itself handles the “letting you print.” So the thing sitting on your desk, that you own, is choosing this for you.


  • I agree. That would be absurd.

    However, I don’t like not having the option of using HTTP if I want to use it. It’s okay if the webserver redirects me, but I don’t like if my browser does it when I didn’t tell it to. I might want this when doing development, port tunneling, VPN stuff, etc. In most cases, it won’t matter, but when it does, it will be a pain in the ass.


  • I disagree. While in practice, this is often the same website, it is a different protocol and a different port. It just happens to use the same DNS address. You’re explicitly giving your browser a FQDN, and it is ignoring it and doing something else.

    I hope this feature can be disabled. Google has been ignoring the W3C and has shipped proprietary, insecure features in their chromium engine for a while now, so it wouldn’t surprise me if they made it permanent 🤷






  • Otherwise monitors, cables and video cards would have compatibility issues.

    You’re right, and this was absolutely a thing. Video cards could produce whatever they were capable of, and monitors could display whatever they were also capable of. You could also push resolutions and refresh rates to monitors that was beyond the monitors’ specs, and you would also risk damaging the monitor by doing this.

    I don’t think you were pushing 4000x3000 resolution through VGA.

    You don’t need to believe me. That’s your choice. I had friends that could do the same. This was with a Matrox card and a 21" Acer CRT. The display was nearly impossible to read, and the color mask broke up the individual pixels too much, anyway.

    Just like today no one is pushing video streams to giant building sized screens over consumer HDMI or DVI.

    Digital video has upper limits in its specs. This is the whole point of this conversation.

    Another example is XLR VS 3.5mm jack. In theory you can push audio signal of any quality over both, but XLR by spec is balanced and shielded, while 3.5mm is not. This means that XLR is capable of pushing much better audio.

    A bit of incorrect information here. There is no “unshielded 3.5mm spec.” Good cables have shields, but not all. XLR doesn’t have the ability to transport higher frequencies because it’s balanced, or “much better audio.” On paper, unbalanced audio is better for short runs because there is more opportunity for XLR signals to have extremely minute signal quality issues due to the hot and cold signal mirroring, but it’s so small that it doesn’t matter.



  • In general, what is the highest frequency that can be carried over a wire?

    I know it can do these resolutions in practice because I have personally operated CRTs at 4000x3000 resolution in the early 2000s. This could be considered “the 4:3 of 4K.” It was not done on fancy equipment or high-end monitors. Analog stuff really could just go to really high resolutions and refresh rates with above-average, but typical stuff.

    CRTs simply respond to waveforms for red, green, blue, vertical sync, and horizonal sync. That’s it. If you want more horizonal pixels, make your scan lines denser. If you want more vertical pixels, add more scan lines. Want a faster refresh rate? Simply run all the signals faster.

    There is no hard upper limit to it. With digital signals, there are throughput limits per spec due to bit rates, but with analog, there are no bits. Resolutions like 40k x 30k are theoretically possible. The difficult parts are rendering the signal at these high frequencies, and being able to meaningfully display them. The VGA connection itself has no limits.



  • This is my opinion, too. Their “autopilot” feature is a glorified driving aid. It’s not self-driving. It’s supposed to help with driver fatigue, and you’re supposed to keep both hands on the wheel. If it makes a mistake, that’s okay, because you’re driving the car, right?

    Traditional cruise control without radar will maintain the speed you asked and it won’t stop for emergency vehicles, but we don’t blame that. Even though the “autopilot” feature does more automation, you’re supposed to drive the car in an identical fashion with identical attention compared to traditional cruise control.

    But safety is still what matters first. If you’re sending a freeway-speed land missile into motorcyclists and police cars, I don’t care if you were driving a 90s Civic or a car with automated driving features. The car hit someone. Fix that problem first, then figure out who to blame later.

    In my option, until we have cars that are guaranteed to function as a completely autonomous experience, and the manufacturer of the car doesn’t tell you to keep your hands on the wheel, you’re still driving it. It’s your responsibility. You can still steer, brake, change lanes, evade, etc. That’s on you. As far as I’m concerned, anyone who thinks otherwise might as well blame their heated seats or radio station.

    I understand that Tesla would be improving their software, and I agree with this, too. It’s not great that they are fudging things quite a bit by pushing the self-driving rhetoric. They should focus on this, and it should be improved. But I still think that negligent drivers are at fault.





  • I wouldn’t want to reduce security by allowing privileged ports as any user, or running modified operating systems that have lessened security baked-in. This security principle is in place for good reasons, and they should remain in place.

    If you are exposing your LAN to your Internet connection, you’re doing something wrong. If you are not, but are using a firewall that doesn’t support NAT, then I don’t trust your firewall. If your firewall supports NAT, and you’re attempting to subvert Linux security measures instead of using it, then you’re doing something wrong.


  • The reason you can’t host as port 80 on unmodified Android isn’t because “Google won’t let you.” Android is open source. You can do what you want with it. Android runs on Linux, and ports 0-1023 are privileged ports that can only be used as root.

    Unmodified Android does not allow userland apps to run as root for very good reasons, so you don’t have access to these ports. That’s all there is to it. If you attempted to do the same thing on Ubuntu, you would also not be able to use port 80 without root.

    However, this is a naive approach to hosting a website. Production web stacks, when hosted on a machine, typically use a least-privileged model where not only ports are banned, but most file access is, too.

    Most dynamic web stacks won’t host on port 80 directly. Most will serve either a socket connection or host multiple ports on threads, i.e. ports 3000 to 3007. These connections would then be proxied via something like Nginx to serve as a load balancer, and Nginx can also manage SSL for you, too.

    If Nginx is started as root, it can host on port 80. If not, serve on port 8080 and use NAT to redirect it to port 80 with your firewall. You are using a firewall for publicly-hosted content, right?