ruffsl

joined 1 year ago
MODERATOR OF
ros
[–] ruffsl@programming.dev 1 points 2 weeks ago (1 children)

Could you explain a little more on that? Just curious.

[–] ruffsl@programming.dev 7 points 1 month ago (1 children)

Have you had any luck with projectors for coding? I've only ever used them for large mob-programming sessions, like during hackathons. I feel like the low/narrow contrast of projectors makes it hard to use for dark mode, not to mention the space real estate requirements. :P

[–] ruffsl@programming.dev 5 points 1 month ago

Still kind of sad that the transflective display technology demoed in the $100 laptop project from a decade or so ago never took off.

https://youtu.be/CGRtyxEpoGg?si=50jL24kRA22-X_Bo&t=1470

[–] ruffsl@programming.dev 3 points 1 month ago* (last edited 1 month ago)

Personally, I've been happy using an LG TV for a single monitor setup. I have had to switch to KDE Plasma v6 for better font rendering given its unusual OLED pixel layout, as well as for native HDR support. But it's been nice to have a large physical font while still at default DPI. Although, I wouldn't't mind upgrading to 8K later when they get affordable, as the smallest 4K TVs at 42" happen to push the physical DPI down towards that of just 1440p panel.

https://programming.dev/comment/7921093

[–] ruffsl@programming.dev 4 points 4 months ago (1 children)

Tagging an image is simply associating a string value to an image pushed to a container registry, as a human readable identifier. Unlike an image ID or image digest sha, an image tag is only loosely associated, and can be remapped later to another image in the same registry repo, e.g latest. Untagging is simply removing the tag from the registry, but not necessarily the associated image itself.

 

I had to go full Rube Goldberg to clean up old image tags from closed PRs, while still leaving deletion of untagged image to the ECR repo's own lifecycle policy. Never go full Rube Goldberg:

name: ECR Retention Policy

on:
  pull_request:
    types:
      - closed
  workflow_call:
  workflow_dispatch:

jobs:
  clean-unused-ecr:
    name: Delete unused container images
    runs-on: runs-on,runner=2cpu-linux-x64,run-id=${{ github.run_id }},image=ecr_login_image
    steps:
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-region: ${{ env.RUNS_ON_AWS_REGION }}
      - name: AWS ECR Login
        id: login-ecr
        uses: aws-actions/amazon-ecr-login@v2
      - name: AWS ECR Info
        shell: bash
        run: |
          echo "ECR_REGISTRY=${{ steps.login-ecr.outputs.registry }}" >> $GITHUB_ENV
          echo "ECR_REPO=$(basename ${{ github.repository }})" >> $GITHUB_ENV
      - name: Docker meta
        id: docker_meta
        uses: docker/metadata-action@v5
        with:
          images: ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPO }}
          flavor: suffix=-
          tags: type=raw,value=${{ github.head_ref || github.ref_name }}
      # NOTE: This is convoluted because AWS ECR has no simple way to untag image without deletion
      # given we want to leave deletion of untagged image to the ECR repo's own lifecycle policy
      # https://stackoverflow.com/questions/70065254/remove-ecr-image-tag-despite-imagereferencedbymanifestlist-error
      # https://github.com/aws/containers-roadmap/issues/1567
      - name: AWS ECR Cleanup
        shell: bash
        run: |
          REPO_EXISTS=$(aws ecr describe-repositories --repository-names $ECR_REPO 2>&1 || true)
          if echo "${REPO_EXISTS}" | grep -q 'RepositoryNotFoundException'; then
            echo "Repository not found, skipping cleanup."
            exit 0
          fi
          IMAGE_TAGS=$(aws ecr list-images --repository-name $ECR_REPO --query 'imageIds[*].imageTag' --output text)

          docker pull busybox
          docker tag busybox $ECR_REGISTRY/$ECR_REPO:_
          docker push $ECR_REGISTRY/$ECR_REPO:_

          TEMP_IMAGE=$(
            aws ecr batch-get-image \
                --repository-name $ECR_REPO \
                --image-ids imageTag=_ )
          TEMP_MANIFEST=$(echo $TEMP_IMAGE | jq -r '.images[].imageManifest')
          TEMP_DIGEST=$(echo $TEMP_IMAGE | jq -r '.images[].imageId.imageDigest')

          TAG_PREFIX=$(echo ${{ fromJSON(steps.docker_meta.outputs.json).tags[0] }} | cut -d: -f2)
          for TAG in $IMAGE_TAGS
          do
            if [[ $TAG == $TAG_PREFIX* ]]; then
              docker tag busybox $ECR_REGISTRY/$ECR_REPO:$TAG
              docker push $ECR_REGISTRY/$ECR_REPO:$TAG
              echo "Untaged image $TAG"
            fi
          done

          # Delete the temporary image by digest
          aws ecr batch-delete-image \
            --repository-name $ECR_REPO \
            --image-ids imageDigest=$TEMP_DIGEST
[–] ruffsl@programming.dev 2 points 6 months ago (1 children)

Ah man, I'm with a project that already uses a poly repo setup and am starting an integration repo using submodules to coordinate the Dev environment and unify with CI/CD. Sub modules have been great for introspection and and versioning, rather than relying on some opaque configuration file to check out all the different poly repos at build time. I can click the the sub module links on GitHub and redirect right to the reference commit, while many IDEs can also already associate the respective git tag for each sub module when opening from the super project.

I was kind of bummed to hear that working trees didn't have full support with some modules. I haven't used working trees with this super project yet, but what did you find about its incompatibility with some modules? Are there certain porcelain commands just not supported, or certain behaviors don't work as expected? Have you tried the global git config to enable recursive over sub modules by default?

 

cross-posted from: https://programming.dev/post/12247721

🔥 🚢 overviews the recent supply chain attack on XZ library.

[–] ruffsl@programming.dev 0 points 7 months ago

I was more curious about horizontal/vertical scroll snapping of text, given if the underlying vim properties are still limited to terminal style rendering of whole fractions of text lines and fixed characters, then it's less of a concern what exactly the GUI front end is.

[–] ruffsl@programming.dev 0 points 7 months ago (1 children)

Are you using the PWA, self hosted or via code spaces/other VPS? With which web browser?
I tried hosting code server via termux for a while, but a user proot felt too slow, even if the PWA UI ran silky smooth.
Perhaps when my warranty runs out I'll root the device to switch to using a proper chroot instead.

[–] ruffsl@programming.dev 0 points 7 months ago (2 children)

Do you use it combined with terminal emulators?
Wouldn't that result in vertical scroll snapping to textual lines, and horizontal scroll snapping to character widths?
A personal preference I suppose for navigation, but a bit jumpy to read from while moving rapidly.

[–] ruffsl@programming.dev 0 points 7 months ago (7 children)

Only just got a 120Hz monitor recently, so reading scrolling text now is so much easer and faster than before. Looking forward to any IDE that can match that kind of framerate performance as well.

Too bad I don't own a mac to be able to test out the current release of Zed as an IDE. However, I'm not sure about the growing trend of rasterizing the entire GUI, as compared to conventional text rendering methods or GUI libs with established accessibility support.

[–] ruffsl@programming.dev 2 points 9 months ago (1 children)

You could get a fiber optic display/HDMI cable, a fiber optic USB cable, and the USB hub, then just move the desktop tower into another room and run the cables through the walls or ceilings to your display setup. Might only be $100 or so cheaper than then a used business thin client, but at least you could still do something 4K 120Hz HDR 12bit over some distance without compromise. E.g:

view more: next ›