"No, I just use vim"

Assumed Audience Developers — but anyone who picks tools for a living will relate. “No, I don’t use tool X. I do it manually with tool Y, because then I’ll have more grip on what’s happening.” Examples of this are: using git on the command line instead of a GUI using vim instead of an extensive IDE like IntelliJ or VSCode Yes, you’ll understand the lower level part of the problem you’re solving better. But logically this must cost brainpower, otherwise there wouldn’t be more understanding. However, no matter how smart you are, brainpower is a finite resource. ...

September 8, 2022 · 2 min · Rutger de Knijf

I made an online Github Actions upgrader!

TL;DR: gaup.deknijf.com Github Actions is absolutely great. It’s fast, clean, clear, and I’ve yet to encounter a task I can’t accomplish. The main advantage of Github Actions over something like BitBucket Pipelines is the sheer number of modules (called “actions”) that you can just use. Need a docker image built? - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1.6.0 - name: Login to GCR uses: docker/login-action@v1.12.0 with: registry: eu.gcr.io username: _json_key password: ${{ secrets.GOOGLE_SA_KEY }} - name: Build and push run image uses: docker/build-push-action@v2.8.0 with: push: true tags: | eu.gcr.io/<project>/image:${{ github.run_number }} eu.gcr.io/<project>/image:latest cache-from: eu.gcr.io/<project>/image:latest cache-to: type=inline Need some Terraform deployed? ...

January 31, 2022 · 2 min · Rutger de Knijf

CICD trick to keep your dependencies up to date

Most developers know they should pin their 3rd party dependencies. I usually write Python, but this goes for any language. You don’t want to send your commit into CICD and have it be deployed with packages that are different from what you’ve tested it with locally. On the other hand, every day you lag behind with updating those dependencies you’re making doing that very thing in the future more dangerous. Up to the point that it becomes a “project” in itself, or even until it’s just frozen in place because nobody will touch it. ...

January 9, 2022 · 3 min · Rutger de Knijf

`internal_error` in Google Cloud HTTP(S) Load Balancing logs

I’d set up a Google App Engine service which was working fine, but I routed traffic to it via an HTTP loadbalancer. Which was working great in acceptance but not so much in production. It just threw a 404: Not Found at me. Nothing else. I checked the service logs, but traffic didn’t seem to arrive at the GEA service. So what now? I enabled the load balancer logs which delivered this gem: ...

December 11, 2021 · 2 min · Rutger de Knijf

Limit your BigQuery costs with Terraform

Let’s say you are a happy BigQuery user, and you spend about 100 euro a month on it. This may be fine for your (small) business but an expensive query is quick to make. What is expensive? Because really, it’s hard to create one that costs more than 30 euro. But what if someone accidentally deploys something that fires off a 1 euro query every second? That means a 2.6 million (!) BQ bill. If you don’t notice for a few days you’ll find yourself begging Google for a refund of hundreds of thousands of euros. ...

October 6, 2021 · 2 min · Rutger de Knijf