• 0 Posts
  • 16 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.


  • For real. It’s so much better to think about using the screen space you already have. People can do what they want, but I am happy with one screen, a tiling window manager, and workspaces. I can have a dozen or more things going on, and have it packed on a workspace. Fullscreen a window of I need to, then pop it back.

    It’s incredibly efficient. I see stuff like this, and I imagine what it’s like to have text several feet away, screens covered by other screens, lots of neck fatigue, all the monitor borders… like it’s truly bad. It feels like someone watched a lot of TV and “felt” that this was the best way to do it without trying it.

    Butt I digress. It’s not my setup. If they’re efficient with it, more power to them.


  • 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.




  • 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?


  • The sad part is that inkjets aren’t inherently bad. They’re just a different way to print. They can make some fantastic, deep, high-resolution colors. It just so happens that this type of printing is being ran in such an anti-consumer way that it’s borderline unbelievable.

    Ink is cheap. It’s INK. I can go to the art store and find thousands of different types of ink. It’s just water with coloring in it. It’s not special. However, HP sells their ink at a cost that is about 4x the cost of gold by weight. I can understand it being a little more expensive than just ink in a tube, but this is insane.

    We should have inkjet printers that have caps on the top of the cartridges to let you add your own ink. No DRM. Buy common ink at the grocery store, and it’ll work with most vendors. Open the lid, add your ink. Dried up? Wash it under the sink. Really dried up? Buy an empty cartridge for $6.

    Our society has advanced enough to where this is a solved problem. We have figured out INK of all things. We know what ink is, and we know how to put it on a sheet of paper. Civilization hasn’t been stumped on how to put ink on paper for decades, and it’s not like we’re in a position where only vendors like HP can save us. It’s 100% greed, all of it, and it’s so shameless that it reads like something out of Snow Crash or something.

    Imagine if you bought a ketchup bottle from the grocery store, and refilled it with more ketchup when it was almost empty. Then, the ketchup bottle phoned home and figured out that you missed a ketchup subscription payment, so it refused to squirt ketchup. Ain’t it silly when I compare HP’s model to ketchup, yet both circumstances are literally dispensing a liquid?




  • Don’t forget that Vim also keeps every tree of undo history. Wrote someone one way, wanted to try another way, and changed your mind? Switch to the other undo future! Change your mind again? Go back!

    And there’s persistent undo, where your undo history is written a file. Quit Vim, power off your machine for 5 years, power it back on, and you can still undo!