• 0 Posts
  • 66 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle

  • India is just like anywhere else, you get what you pay for. There’s plenty of cheap dogshit contractors there but there’s also some pretty good “expensive” ones. I say “expensive” because they’re still cheaper than domestic, just a lot more than the cheap ones.

    The interesting bit though is that the end state of all this outsourcing is an inversion. As US companies pour more and more money into foreign contractors the quality of those contractors steadily increases which then drives their prices up. Concurrently with that as the domestic market languishes and skills atrophy domestic prices fall. Eventually the US will find itself as the cheap 3rd world country the other countries are outsourcing to. That assumes of course other countries are as blindingly short sighted and stupid as the US. The more likely scenario is that those countries enact subsidies, tariffs, and tax breaks to protect their domestic markets in which case the US doesn’t become the hot outsourcing market and instead just continues to fade into irrelevancy.





  • The opt outs don’t work. Even if you opted out of the telemetry that only disabled some of it, not all of it, and MS constantly re-enables it with updates. I can’t count how many times I’ve had to uninstall OneDrive, But. It. Keeps. Coming. Back. Windows 10 you could previously disable most of the worst crapware that MS shoveled in. Windows 11 you can’t disable it, they just don’t give you the opt outs anymore. It’s all mandatory. Even worse, they started backporting that stuff into Windows 10 as well. Did you notice when MS silently installed copilot on your Windows 10 system?

    Ultimately though, I just don’t want to keep fighting a losing battle against a company I despise. I’m done giving my money to them. It would be one thing if they provided a good service that I enjoyed like Valve does with Steam, but the last time I actually liked a version of Windows was when XP was released. It’s basically been downhill since then. If there was a decent alternative to Android I’d switch that as well, but unfortunately Linux phone just isn’t ready for prime time yet. But thanks to the amazing work by Valve, for gaming systems, Linux is finally a viable alternative.



  • One thing you’ll have to do (which is kind of annoying that it isn’t enabled by default) is go into the steam options and toggle “Enable Steam Play for all other titles”. That enables proton/wine for everything in your library. In the early days of Steam on Linux Valve setup a white list of games that ran under Wine that mostly contains their own titles in it, and for some reason they just never removed that behavior even though that list is unmaintained these days.



  • Steam is available and runs great. Valve has really put an insane amount of work into making Linux gaming smooth and painless. They have their own flatpak equivalent called pressure-vessel that steam uses by default, and everything that steam supports in Windows is 100% supported in Linux as well. If you check out protondb.com you can put in your steam account name and it will scan it and tell you any games in your library that will have issues in Linux, but outside of a few of the competitive shooters that have super aggressive anti-cheat generally everything either works out of the box, or after some minor tweaks (typically adding a few launch parameters).

    Additionally, there’s an excellent unified launcher called Heroic that lets you connect with and use the GOG, Epic, and Amazon Gaming stores, and provides a convenient wrapper around Wine/Proton for actually running the games.

    Finally there’s another launcher called Lutris that a lot of people swear by and supports some of the less used stores like Itch.io, although when I tried it recently I ran into some problems getting it to work.


  • The EOL of Win 10 and MS silently installing copilot on my desktop was the final straw for me. I’ve been running 100% Linux now for a couple months with no real issues so far. I expected a few games to give me issues but so far if anything I’ve had fewer issues with games than I did even in Windows. Had a couple hardware problems, although those I’ve mostly been able to solve.

    I’ve got it setup to dual boot “just in case”, but haven’t actually needed to which is great. If I still haven’t needed that partition a year from now I’ll probably just reformat it as extra storage and keep a Win10 VM around if I really get stuck on something.





  • So I was spitballing some ideas around this a while back, although I was more focused on income inequality at the time. I think the best idea I came up with was something like a progressive taxation system where a company’s taxes were determined by the highest paid employee (including the value of benefits and things like stock grants) minus the lowest paid employee, divided by the company head count. If executives want to keep bringing in eye watering salaries they either need to pay all their employees significantly more, or hire a hell of a lot more of them at current rates. There’s probably some flaws and things that could be tweaked there, but I think it’s a start.



  • As LiPoly said, it doesn’t really solve the problem. It’s not useless, it does accomplish something, but not that. Locking dependencies isn’t a security thing, it’s a reproducible builds thing. You can accomplish that by just using a traditional static version of everything, but now you’ve got a maintenance headache as you’re constantly needing to go in and update your dependency versions. You could instead use version ranging, but now you never actually know which version of a dependency any given build is going to end up using. Locking allows you to have the best of both worlds.

    To understand how this works, lets take a look at a hypothetical. Lets say you have a code base, and a CICD setup. Additionally you’re using a git-flow style release management where your release version is in master, your active development is in develop, and your feature work is done in feature branches. What you do is setup your version ranges to cover what the semantic versions of things say should be compatible (generally locked major version, and possibly locked minor depending on the library, but unlocked patch). In your CICD for CI builds of develop and feature branches you include a step that updates your lock file to the latest version of a library matching your version range. This insures that your develop and feature branches are always using the latest version of dependencies. For your master branch though, its CI job only builds, it never updates the lock file. This means when you merge a release to master your dependencies are effectively frozen. Every build from the master branch is guaranteed to use exactly the same versions of dependencies as when you merged it.