• 9 Posts
  • 129 Comments
Joined 1 year ago
cake
Cake day: July 23rd, 2023

help-circle
  • I don’t know if it has any legal value, but here’s what I’ve been doing with online services that really matter (not Reddit, I don’t give a shit about Reddit, but things like my bank):

    I read the TOS - which, in the case of actual serious online services, tends to be shorter - and I make a note of anything I don’t like in it. Then I click agree, then I send an email to info@, support@, legal@, webmaster@ and whatever other vaguely relevant email I can find in the TOS’ issuer’s domain telling them this:

    "I clicked okay because I needed to do XYZ and there was no button to discuss your terms or disagree. But I disagree with the following points. Here are my counter-conditions:

    […]

    If you disagree with my conditions, please send me or my lawyer - who is copied on this email - your counter-proposal within 1 (one) week. If you do not sent me or my lawyer an email within 1 (one) week, I shall consider my conditions accepted, legally binding and superseding the relevant sections of your original TOS."

    And I copy my lawyer.

    I’ve never gotten any reply, because no actual human reads those email addresses. If anything comes up, I’ll pull the counter-email I sent them with my conditions, which they agreed to by not answering. I’ve never had to use them, but I really wish I’ll get the opportunity to test them in court some day, just for shits and giggles.

    And yes, I have enough disposable to pay a lawyer to do this kind of shit. I’m a spiteful man when it comes to tech companies, and I’m quite ready to bankrupt myself to fuck them in the ass.


  • I used to like cocaine, but I hated the addiction and I hated what it did to my nose.

    But here’s the thing: you can’t have cocaine without the side effects. So I chose to stop cocaine. It’s less fun in the short term, but getting your life back together and enjoying the simple pleasures in life more than make up for it in the long run.

    You need to choose Reddit with the side effects, or no Reddit and work on making Lemmy fun. You can’t have the Reddit hit without the side effects.

    But if you put in the effort of trying to make Lemmy fun, it’ll be more rewarding, and it will help rebuild worthwhile communities away from Reddit for the benefit of everybody.

    Up to you.




  • F-Droid is also considering ads that contain no tracking, which removes that moral dillema, IMO:

    You assume everybody is okay with ads.

    I’m not. My brainspace has been highjacked since I was a little kid by stupid advertisers. To this day, I remember ads for products that have disappeared decades ago and that I never gave a shit about at any point in my life.

    Why are advertisers allowed to force their shit into my head?

    I hate ads. I’m utterly intolerant of advertising. I hate the tracking and the malware that come with ads, but I hate ads even more. There are no moral ads. The advertisement industry is a despicable leech that needs to die.

    If F-Droid springs this shit on me, I swear to god I’m gonna start having murderous thoughts…



  • It’s not technical news, It’s newsworthy because of the context.

    Kind of like when people in the Soviet Union were allowed to grow vegetables in their own tiny plot of land for personal consumption: it was important because the Soviet Union denied people private ownership, but simply because everybody in the USSR was on the verge of dying of starvation any minute, the Soviets carved out a teeny tiny exception to the rule.

    Everybody in the free world was completely nonplussed by the ability to grow your own veggies. But it made the news because it was the Soviet Union.

    In this case, the stifling Google mothership implemented a teeny tiny something trivial on their platform, and it’s newsworthy because Google is the Soviet Union of the internet in more ways than one.

    Of course, people with any sense of freedom and sanity consume Youtube videos with FreeTube, Grayjay, NewPipe, LibreTube, Piped, Invidious or whatever else and look at this thinking “So…?” But it’s newsworthy because it comes out of Google.






  • I hate Google as much as the next guy - well, probably a lot more than the next guy actually - but here I’m siding with them for a change.

    They require payment for a feature (your phone number: it is monetizable private data to them and that’s your payment) and you tried to get the feature without paying. And you failed.

    The story here is that AI is frighteningly accurate when detecting embedded screenshots, not that Google is “vicious”: they’re not vicious in this case, they’re simply scary successful at detecting your attempts to game their system. Probably because everybody and their dog tries the same trick all the time, I would assume.

    Generally speaking, I agree with your assessment of Big Data and Google. But not in this particular instance.


  • Well that’s one solution.

    We wouldn’t do this because we have a policy of modifying as little as humanly possible on the target system, because of the nature of some of our customers: we may not have the right to modify stuff right and left willy-nilly on those customer’s systems, and if we do, we have to justify why with a lot of paperwork. So we don’t: we install our stuff in one very formal, very stable spot of the hard disk (on Windows, c:\Users<username>), install missing modules, stick an icon on the desktop and that’s it.

    Historically, we also propose to install Python on the system if it’s missing (used to do that system-wide) and advise our customers to install it system-wide too if they did it themselves so we wouldn’t have to modify our installer (again, if we do, we have to justify the change when the customer is under configuration control, so we try to avoid change). Not anymore obviously.

    So yeah, we wouldn’t install Miniconda just for the purpose of not changing our installers. At this point, that’s enough change that I can just rewrite the installers: either way, I’ll have to communicate the change to the customers, so I might as well do it right.

    But my point was, if Python gracefully handled backward compatibility - as in, for example, you put in the shebang or near the shebang that you want the interpreter and pip to behave like, say, Python 3.10, and Python4.56 behaves like 3.10 did years later - then this is unnecessary work that I wouldn’t have to do.

    I had to rewrite our installers and other things to deal with Python 3.12’s new forcibly-enforced kosher way ot doing things because it won’t do thing any other way and compatibility be damned. That’s my beef with Python: after all this time, it’s still unstable and prone to breaking existing codebases.

    It’s a real problem for us and it has been for a long time: code that’s out there and working is liable to quit working when the Python interpreter changes. I have no idea how a 33-year-old language, ultra-widely used language such as Python is allowed to change regularly with little regard to backward compatibility like it was an early beta weekend project. This is truly unprofessional and it completely boggles my mind.


  • The problem is, our code has to run on a customer install regardless of the install. Typically they downloaded Python and installed it themselves on their machine, and more often than not, they have stuff running on their machines and modules installed for their own stuff, and I can’t go about telling them to install some other version and/or force them to use a certain tool to do so: it’s gonna break their own config and it’s going to piss them off.

    Our code has to run clean without fuss on Linux and Windows, regardless of what’s installed and how. All we require is any Python version between 3.6 and (now…) 3.12. We tell them they can use another version if they want but then they’re on their own if there are problems. We guarantee proper operation between 3.6 and 3.12. I just had to make sure our installers worked properly and performed a venv install when appropriate (almost required with 3.12 now) and our code ran without warning and without throwing a wobbler because of missing stuff that was there before 3.12 because I don’t want to tell people to spend extra efforts to downgrade and/or mess up their install on Win11.


  • Yes of course. If I run pyflakes or mypy on our code, it’s a complete shitshow. But that’s not the point.

    The point is, for better or worse, however imperfect our code is, it run cleanly and predictably in older Python interpreters. When I have to correct legacy stuff that is known to work well, I compromise hundreds of hours of formal and informal testing.

    Imperfect code that has been running flawlessly for a long time and has proven its reliability is better than more perfect code that hasn’t been tested as much.

    In fact, in certain industries like the aero industry, it doesn’t matter if you find slightly bad code after the system has been certified: it’s frozen and you leave it the hell alone unless it’s critical. Fortunately we’re not exactly in that situation, but we do have customers who require - and pay for - configuration control, and those Python issues kind of make everything more difficult needlessly for us. Lucky for us, our Python packages are mostly support code, so it’s not too critical. But we do have to be careful and thorough.



  • I just spent days and days fixing years of old code that had incorrect backslash escapes in string literals because they were upgraded from silent deprecationwarnings to very much not silent syntaxwarnings in 3.12 and I couldn’t find a way to shut them up.

    Yes I know incorrect string literals are bad and they should be fixed, but this was legacy, well tested code and we were fine with the silent errors. But no: Python forced me to halt what I was doing and fix shit that didn’t need fixing for days, then re-release new versions of all our packages, then warn our customers, write an entry in the company’s website’s support page, blah blah blah… Stupid things that, ya know, take a truckload of time.

    And I also had to rewrite our old installers that used to install Python modules system-wide because, again, 3.12 pip now refuses to install outside of a venv unless you use --break-system-packages, and even if you do, it bitches and moans. I didn’t want to fix our old installers either, but there ya go, same thing: no way to make it revert to the old way and let old code grow old peacefully.

    And I had to rewrite our Unix modules that use crypt because inexplicably, for no rational reason, it’s being dropped. WHY??? Yes it’s insecure, but if you need it for backward compatibility reasons, why remove it? Particularly since it’s still there: all you have to do is replace it with passlib.sha512. It’s no biggie, but again, when you have mountains of old code to go through, it takes time to fix it, retest it and re-release it. What’s the point in making things extra-difficult gratuitously?

    And before you say “All you had to do was stick to 3.11 or below”, try installing 3.11 and below for all users in Win11: you can’t. Our users getting new Windows machine essentially have to use Python 3.12, meaning I have to fix all our old code so stuff doesn’t break or look like shit.

    Sigh

    I love this language. I really do. But the Python people essentially give zero shit about backward-compatibility and every 6 months to 2 years, some small things break that become a massive pain in the rear-end to fix.

    And as a result, guess what: as long as whatever version of Python I’m currently using works, I am NOT upgrading it, because I don’t like to have to work overtime for nothing. And that’s not great because Python users should want to get the latest and greatest instead of fearing what new things will get broken.