Canadian software engineer living in Europe.

  • 9 Posts
  • 320 Comments
Joined 3 years ago
cake
Cake day: June 7th, 2023

help-circle




  • Daniel Quinn@lemmy.catoLinux@lemmy.mlWhy do you use/choose Linux?
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    13 days ago

    I started using it 'cause I was working with a lot of Linux nerds and they convinced me to try it out. I liked the politics of the GPL and the potential in the Free ecosystem.

    25 years later I refuse to use anything else. Windows & Mac are built to take options away from you, to force you do use your hardware their way, and I hate it. My machine does exactly what I want it to, with hundreds of keyboard shortcuts and a solid UI built atop transparent subsystems. Windows ties my hands while pushing ads and AI into my eyeballs. Mac only “Just Works” if you’re using it precisely the way that want you to and exclusively with other iShit. No thanks.




  • This is the typical defence for copyright. It’s also innacurate to the point of being intellectually dishonest. It ignores the reality of capitalism where legal protections only exist for people and corporations that have the money/power to get what they want.

    Your Thing™ example would be cloned and sold on Amazon by a broad range of fly-by-night companies, and that’s if you’re lucky. If you’re unlucky, Amazon will clone it themselves, obfuscate your product in its search results, and sell your product under their brand, sometimes even for more than you’re selling it.

    If your Thing™ isnt a physical product but rather something creative, then 99 times out of 100, there are only really two paths available to you:

    In the lucky case you sell your copyright to a third party that exploits it (and you), offering you a pittance while simultaneously tying your hands, preventing you from creating derivative works or even just giving it away… for the res t of your life, and that of your kids’. In the unlucky case, you can’t afford to promote your product, so you toil for years with little to no reward for your work. Then AI techbros scrape your art and sell it back to you exclusively for their profit.

    Copyright has some great marketing, but it offers you little while the rich claim ownership over your art, and our society.









  • My girlfriend’s dad had hundreds of movies on VHS, pirated from cassettes he’d rented in the past and copied at home by chaining two VCRs together over coaxial cable.

    Software was wild pre-internet. My buddy had Windows 95 on 42 3¼" floppies that we copied onto additional sets of 42 floppies that we kept in heavy boxes and then painstakingly installed onto computers belonging to friends and family around the neighbourhood.

    I also had a whole bunch of audio cassettes that contained music I dubbed from radio, other cassettes, and later CDs (burning your own was at first, impossible, and later, expensive).

    I’m 46.


  • I’ve used FluxCD in the past and have looked into ArgoCD, but honestly, I’ve not seen any big benefit from either to be honest. I use k8s both at home and at work, and in both cases, we do “imperative” deploys: you run helm install ... either directly or via the CI and stuff is deployed.

    So for example at my last job, our GitLab CI just had a section triggered exclusively for merges into master that ran helm install ... for all three environments. We had three values.yaml files, one for each environment, and when we wanted to deploy a new version, the process was:

    1. Create a tag for our release version (ie. 1.2.3) and push it to the repo. This would trigger a build and push the resulting image into the container registry.
    2. Push an update to the repo with the new tag set in the appropriate Helm values file. If we wanted to deploy 1.2.3 to development but not yet to staging or production, then the tag: value in each of the environment files would look like this:
    • k8s/chart/environments/development.yaml: tag: 1.2.3
    • k8s/chart/environments/staging.yaml: tag: 1.2.2
    • k8s/chart/environments/production.yaml: tag: 1.2.2

    Once that change is pushed, the CI will automatically apply it with helm install ... and make sure that all three environments are what they’re supposed to be.

    As for dependent services, that should all be in your Helm chart so they’re stood up and torn down together. The specific case you mention about “Service A” being dependent on “Service B” but stood up before “Service B” is ready is a classic problem, but easily solved:

    The dependent service (“A” in this case) should have an entrypoint that checks for everything else before starting. Here’s what I’m using right now in a project:

    #!/bin/sh
    
    while ! nc -z "${POSTGRES_HOST}" 5432; do
      echo "Waiting for postgres..."
      sleep 0.1
    done
    echo "PostgreSQL started"
    
    touch /tmp/ready
    
    exec "$@"
    

    I’ve even got some code that checks that all the Django migrations have run first for the same situation. The Kubernetes philosophy is that any container should be able to die at any time and be eventually be brought back up and that every container needs to be prepared for this. Typically this means that your containers should operate on the basis of “if I can’t work, die, and hope the problem is solved by the time Kubernetes redeploys me”.