Canadian software engineer living in Europe.

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

help-circle
  • This wasn’t nearly as interesting as the headline made it sound.

    It’s a physical box you purchase to effectively break the law, so some of the architecture is going to be shady because it has to be.

    • it polls multiple domain servers to get around blocks (and probably updates that list regularly)
    • it obfuscates the endpoints it hits because they’re trying to secure a box they’re handing to someone else from tinkering that would allow people to access their (pirate) services without buying a box.
    • it obfuscates its user agent when connecting to a weather service to avoid being blocked.

    There’s nothing special or nefarious here. Indeed I’ve worked on projects that had to take the same considerations into account.

    The “someone else’s Hulu account” claim sounds like bullshit to me because it doesn’t make sense from a business perspective. They’d want to control the accounts in question and rotate the passwords regularly, again to avoid freeloaders. More likely they’ve paid for 25ish Hulu subscriptions in every region (hence the initial call for IP geolocation) and are then relaying credentials to a box based on this info.

    The only really sketchy thing in this whole video was the disabling of TLS checking, which was likely done to get around sketchy pirate websites with bad or nonexistent certs. It wasn’t clear though which part of the OS this applied to. If it’s only doing this for the pirate streaming, that’s sort of a bullet you have to take if you want the service. So long as the only data being sourced unencrypted/unverified is some audio and video, you’re fine (assuming you’ve already accounted for streaming such data in your jurisdiction, ie. you’ve got a VPN). If you’re pulling down software updates though, you’re gonna have a bad time.


  • Daniel Quinn@lemmy.catoComic Strips@lemmy.worldLeaving
    link
    fedilink
    English
    arrow-up
    48
    ·
    5 days ago

    The term for this “vampire load” the power being consumed across a given network that’s doing literally nothing.

    Those little LEDs are a tiny amount, but when they number in the millions, that shit adds up. People have calculated the cost in terms of tonnes of CO2.


  • At my first-ever tech job back in 2000, I was given a little Celeron desktop computer to do my work: mostly writing some ColdFusion and cutting up images in Photoshop. For the most part, the machine worked fine, except whenever I scrolled down on a webpage in Netscape, the box’s PC speaker would start screaming. I tried to ignore it, but I was in a small room with two other nerds and it was getting really annoying.

    One day, my frustrated colleague decided it was time to investigate. As part of the process, he noticed that there was very little air coming out of the power supply fan port. “Must be a busted fan and that’s causing an overheating alarm” he declared. We unplugged the box, popped it onto my desk, and opened it up. The internals were pristine. No dust, nothing. The computer was practically brand new after all.

    We were just about to crack open the power supply (not recommended, but we were getting desperate) when my colleague noticed that something was wedged inside the fan… it was the biggest (dead, thankfully) cockroach I have ever seen, at least 10cm long. For context, this was in Vancouver, Canada. Those just don’t exist there.

    My colleague jammed his screwdriver in there to grind up the cockroach carcass, then plugged the box back in. After a shittone of dessicated cockroach guts spewed out the back, my little computer was operating normally.

    As best we could guess, the monster crawled into the fan in Malaysia when as was assembled and somehow got pinned in there, died of starvation, and then stowed away to Canada.



  • The right time to look elsewhere was when Microsoft bought it.

    The next best time was when viable alternatives like GitLab and later, Codeberg appeared.

    The next best time was when it became clear that they were stealing your code to feed into their sparkly autocomplete and were going to sell it back to you.

    The next best time was when they dumped a bunch of vibecoded garbage into the codebase and killed the uptime.

    The next best time is now.

    You don’t even have to migrate all your stuff. Just start all your new projects on Codeberg, or GitLab, or something self-hosted. Once you get used to the new place, you can migrate your old stuff when you’re ready.







  • Daniel Quinn@lemmy.catoLinux@lemmy.mlWhy do you use/choose Linux?
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    2 months 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.











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