[-] kevincox@lemmy.ml 4 points 3 days ago

It completely depends on the context.

Ads can range from like 1 for relatively subtle ads that are separated from the content and have little to no tracking to 8 for ads that pop-up and obscure the content (I just go back when I see these).

CAPTCHAs can also range from like 3 for reasonable to complete puzzles put at reasonable locations (like signing up for a free account that may be used to spam or similar) to 9 when I have been a customer for 14 years and have purchased hundreds of dollars worth of stuff from the site and they slap them in random flows on the site when I am logged in.

[-] kevincox@lemmy.ml 3 points 3 days ago

I've started turning away from so many sites because they have a CAPTCHA. There are a few sites that are worth it enough to do demeaning work but as I get more fed up they get more rare.

Of course I probably show up as a "blocked threat" on these site's dashboards. So they probably aren't getting the message.

There are very few legitimate usage for CAPTCHAs, but fear mongering CAPTCHA services are trying to convince non-technical people that they are required.

[-] kevincox@lemmy.ml 8 points 5 days ago

The others have made great points about how any amount adds up. Especially with compounding.

But the most important reason me just be making it a habit. If you are saving $50/month you have a place to put your savings and an investment strategy for that money. The next time you get a pay raise or get rid of some recurring spend it will be natural to start saving $60/month, then $100 and more and more. It is much easier to improve an existing habit than starting a new one. So as soon as you have the chance start that got habit.

[-] kevincox@lemmy.ml 24 points 5 days ago

GMail could actually use more competitors. However I definitely won't be trusting Musk with my email.

[-] kevincox@lemmy.ml 13 points 5 days ago

"Residential IPs" are quite valuable for web scraping. Many scraping prevention tools and services use the source IP as the primary metric. If you come from a public cloud provider like AWS, GCP or DigitalOcean you get blocked 99% of the time. If you come from a US residential ISP then you get much more relaxed screening.

[-] kevincox@lemmy.ml 122 points 2 weeks ago

which is supposed to enforce to run apps in secured phones

The point of the Google Play Integrity API is to ensure that the user is not in control of their phone, but that one of a small number of megacorps are in control.

Can the user pull their data out of apps? Not acceptable. Can the user access the app file itself? Not acceptable. Can the user modify apps? Not acceptable.

Basically it ensures that the user has no control over their own computing.

20
submitted 3 months ago by kevincox@lemmy.ml to c/selfhosted@lemmy.world

Is there any service that will speak LDAP but just respond with the local UNIX users?

Right now I have good management for local UNIX users but every service wants to do its own auth. This means that it is a pain of remembering different passwords, configuring passwords on setting up a new service and whatnot.

I noticed that a lot of services support LDAP auth, but I don't want to make my UNIX user accounts depend on LDAP for simplicity. So I was wondering if there was some sort of shim that will talk the LDAP protocol but just do authentication against the regular user database (PAM).

The closest I have seen is the services.openldap.declarativeContents NixOS option which I can probably use by transforming my regular UNIX settings into an LDAP config at build time, but I was wondering if there was anything simpler.

(Related note: I really wish that services would let you specify the user via HTTP header, then I could just manage auth at the reverse-proxy without worrying about bugs in the service)

[-] kevincox@lemmy.ml 141 points 4 months ago

Allowing showing different domains than the actual click target is wildly reckless and should be punishable.

"Oh but our poor advertisers want to use click tracking and it is too hard to set up on their main domain". Oh boo hoo, I'm sure if it is important to them they will figure it out.

86
submitted 6 months ago by kevincox@lemmy.ml to c/toronto@lemmy.ca
[-] kevincox@lemmy.ml 131 points 7 months ago

Because people don't understand how copyright works.

In most countries any copyrightable work that you produce is automatically covered by copyright. You don't need to do anything additional to gain that protection.

Most Lemmy instances don't have any sort of licensing grant in their terms of service. So that means that the original author maintains all ownership of their work.

So technically what these people are doing is granting a license to their comment that allows it to be used for more than would otherwise be allowed by the default copyright protections.

What they are probably trying to accomplish is to revoke the ability for commercial enterprises to use their comments. However that is already the default state so it is pretty irrelevant. Basically any company that cares about copyright and thinks that what they are doing isn't allowed as fair use already wouldn't be able to use their comments without the license note. So by adding the license note all they are doing is allowing non-commercial AI to scrape it (which is probably not what was intended). Of course most AI scraping companies don't care about copyright or think that their use is not protected under copyright. So it is again irrelevant.

[-] kevincox@lemmy.ml 65 points 8 months ago

IDE is one thing, Go refuses to compile. Like calm down, I'm going to use it in a second. Just let me test the basics of my new method before I start using this variable.

Or every time you add or remove a printf it refuses to compile until you remove that unused import. Please just fuck off.

15
submitted 8 months ago* (last edited 8 months ago) by kevincox@lemmy.ml to c/toronto@lemmy.ca

This is frustrating. I live in a small apartment and my nearest beer store is over 20min walk. I can get to at least 6 LCBOs in that time and dozens of grocery stores that sell alcohol. I'm not even the worst off..

Note that in the map posted the middle location is Yonge and Dundas which doesn't accept bottles. So if you live in the downtown core you can be walking 30min easy (each way).

You can see a map here, but which ones accept bottles or not aren't indicated until you click "show details". https://www.thebeerstore.ca/locations

How is this acceptable? I am forced to pay a deposit on every bottle but have nowhere to return them. Either I save up and haul a giant bag 20min or drive. Either way a waste of space in my apartment and I don't even drink that much.

It seems that we need a solution.

  1. Make LCBOs take bottles back. (or anywhere that sells alcohol, including Beer Store delivery)
  2. Remove the deposit and recommend recycling (sucks for bottles which are better washed and reused rather than crushed and reformed).
  3. At least make the Yonge and Dundas store accept empties. This would at least give options in downtown core that are less than 15min away. Still not great but closes a gaping hole.
[-] kevincox@lemmy.ml 153 points 8 months ago

Death to HDMI. DisplayPort is the superior port.

[-] kevincox@lemmy.ml 246 points 9 months ago

This is why DisplayPort is the better connector. Because they don't have their thumbs up their asses.

It always saddens me how much user pain has been caused and money wasted in implementing DRM which as far as I can tell hasn't succeeded in preventing a single movie or TV show from being available on torrent sites.

[-] kevincox@lemmy.ml 146 points 11 months ago

Back in the day X was a great protocol that reflected the needs of the time.

  1. Applications asked it to draw some lines and text.
  2. It sent input events to applications.

People also wanted to customize how their windows were laid out more flexibly. So the window manager appeared. This would move all of your windows around for you and provide some global shortcuts for things.

Then graphics got more complicated. All of a sudden the simple drawing primitives of X weren't sufficient. Other than lines, text and rectangles applications wanted gradients, rounded corners and to display rich graphics. So now instead of using all of these fancy drawing APIs they were just uploading big bitmaps to the X server. At this point 1/3 of what the X server was previously doing became obsolete.

Next people wanted fancy effects and transparency (like drop shadows). So window managers started compositing the display. This is great but now they need more control than just moving windows around on the display in case they are warped, rendered somewhere slightly differently or on a different workspace. So now all input events go first from X to the window manager, then back to X, then to the application. Also output needs to be processed by the window manager, so it is sent from the client to X, then to the window manager, then the composited output is sent to X. So another 1/3 of what X was doing became obsolete.

So now what is the X server doing:

  1. Outputting the composited image to the display.
  2. Receiving input from input devices.
  3. Shuffling messages and graphics between the window manager and applications.

It turns out that 1 and 2 have got vastly simpler over the years, and can now basically be solved by a few libraries. 3 is just overhead (especially if you are trying to use X over a network because input and output need to make multiple round-trips each).

So 1 and 2 turned into libraries and 3 was just removed. Basically this made the X server disappear. Now the window manager just directly read input and displayed output usually using some common libraries.

Now removing the X server is a breaking change, so it was a great time to rethink a lot of decisions. Some of the highlights are:

  1. Accessing other applications information (output and input capture) requires explicit permission. This is a key piece to sandboxing applications.
  2. Organize the system around frames to avoid tearing except for when desired (X doesn't really have the concept of a frame).
  3. Remove lots of basically unused APIs like fonts, drawing and many others.

So the future is great. Simpler, faster, more secure and more extensible. However getting there takes time.

This was also slowed down by some people trying to resist some features that X had (such as applications being able to position themselves). And with a few examples like that it can be impossible to make a nice port of an application to Wayland. However over time these features are being added and these days most applications have good Wayland support.

354
Haunted House (xkcd.com)
134
submitted 1 year ago by kevincox@lemmy.ml to c/linux@lemmy.ml

I'm reconsidering my terminal emulator and was curious what everyone was using.

1
submitted 1 year ago by kevincox@lemmy.ml to c/lemmy@lemmy.ml
1
submitted 2 years ago by kevincox@lemmy.ml to c/programming@lemmy.ml
2
submitted 2 years ago by kevincox@lemmy.ml to c/linux@lemmy.ml
view more: next ›

kevincox

joined 3 years ago
MODERATOR OF