• phorq@lemmy.ml
    link
    fedilink
    arrow-up
    38
    ·
    1 year ago

    I count 13 steps, so it just means you’re gonna trip up on 3 of them…

    • db2@sopuli.xyz
      link
      fedilink
      arrow-up
      38
      ·
      edit-2
      1 year ago

      15 steps. You’re not counting the top, and the bottom is step 0 and we all know counting starts there.

      • UnRelatedBurner@sh.itjust.works
        link
        fedilink
        arrow-up
        5
        ·
        1 year ago

        sometimes i start my iterator with = -1. As I only +=1 it with a condition and I know that it will return true on the first cycle. I’ll chuck array[iterator] and need it to be 0 to start with ofc.

        I just have no idea how to not do this, but it looks so bad, i need a i8 instead of a u8 at least because of this

        • Kache@lemm.ee
          link
          fedilink
          arrow-up
          5
          ·
          1 year ago

          What? My intuition is there’s always gotta be some equivalent nicer refactor that could do away with such an awkward construct.

          In what kind of situation would that be totally unavoidable?

          • UnRelatedBurner@sh.itjust.works
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            I could tell you my recent cenario, but it wouldn’t get us anywhere. because I know that it’s avoidable, but it’d take for me to run a different logic for only first element of my array. which is doable, but it’d make the code like 5 extra lines longer, harder to read/follow. But I just simply choose to put -1 and boom it’s fixed, just works.

            another solution would be (without context) is to add one more variable and one more check to my foreach, but that takes more memory and cpu, I usually choose the i = -1, it’s ugly but not as ugly as other solutions would be

  • NegativeLookBehind@kbin.social
    link
    fedilink
    arrow-up
    18
    ·
    1 year ago

    Ok so just learn Kubernetes. And then realize that for it to be useful in a production environment, it needs like 10 other third party things, which you’ll also have to learn, and you’re done!

    • u_tamtam@programming.dev
      link
      fedilink
      arrow-up
      12
      arrow-down
      1
      ·
      1 year ago

      Rule of thumb for kubernetes, if you are learning it “for fun” or on your own, you are not gonna need it :)

        • u_tamtam@programming.dev
          link
          fedilink
          arrow-up
          4
          ·
          1 year ago

          I’ve found it best explained in some stackoverflow answer mentioning the pet vs cattle analogy. In short, if you know how many servers you have from the tip of your tongue, and what they do more or less, then they are akin to pets: you treat them well and keep an eye on each of them.
          Kubernetes is meant for when you have so many of them, that come and go without you even noticing or caring, bearing a number for the sake of production/cost control, this is cattle. Needless to say that this is not your typical app/company running at such a scale, and that there is a 24/7 team of “ranchers” keeping an eye on the herd.

          • CanadaPlus@lemmy.sdf.org
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Thanks. So TL;DR it allows you to set up a little cloud computing service on your own physical machines, minus load balancing which you have to add on?

            • ramius345@sh.itjust.works
              link
              fedilink
              arrow-up
              1
              ·
              1 year ago

              It can be used to scale cloud computing services as much as you want. It’s a scalable container runtime at its core. It provides a means for scaling an overlay network with service discovery and uniform ingress configuration.

    • smik@discuss.tchncs.de
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      10 is a bit exaggerating. What do you really need?

      ExternalDNS is nice so you don’t have to config your DNS manually. You might need to install your own Ingress controller. If you want to automatically add and renew certificates cert-manager is great. Security is important! Speaking of, you should add some kind of secret management (something like sealed-secrets, vault or Secrets Store CSI Driver).

      A really important thing is monitoring so you know your pods and the cluster itself is healthy. Prometheus is still king in that regard in my opinion. PromQL isn’t that hard. Of course some kind of alerting like AlertManager is a must for prod environments. Be aware that the front ends of those tools are not behind a login so something like oauth2-proxy and dex is vital! You might want to have some visualisation too so Grafana is a nice addition. If you add Loki too you got your OPs covered.

      Keeping track of all of your stuff is the hard part so some GitOps is highly recommended. ArgoCD or FluxCD are popular for a reason!

      I think that should cover the basic setup so you may scale your CRUD app without worries!

  • FarceMultiplier@lemmy.ca
    link
    fedilink
    English
    arrow-up
    13
    ·
    1 year ago

    FWIW, I suspect these stairs have been photographed before adding wood steps that are deeper/wider. I base that on the low visible height of the bottom step. A 1.5-2 inch wooden slab would normalize the height of each step.

  • Obi@sopuli.xyz
    link
    fedilink
    arrow-up
    11
    ·
    1 year ago

    I’m usually one to think folks exaggerate the dangerousness of strange staircases in posts like these, but yeah these are definitely gonna cause a few accidents.

  • ShittyRedditWasBetter@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

    K8s basics isn’t that hard, but it builds on quite a bit of knowledge. And running anything of complexity to multiple nodes is going to take at least some intermediate tuning to get your app stable.

    This is fantastic though.