vbernat

Joined 15 years ago

Karma
1,948
Submissions
498
Member since
Oct 18
Personal blog: https://vincent.bernat.ch/en/blog
View on Hacker News

Recent submissions

Comment · 19 days ago
Comment · 22 days ago
In Zsh, you can set PATH with path=(~/.local/bin $path). There, it works as shell expansion works.
Comment · 28 days ago
It's already using a high port. Forwarding a high port directly with SSH prevent exposing the service through a virtual host and provide HTTPS (but I didn't think of it until your mentioned it). And it would open the service to be discovered by enumerating all possible ports, like you mentioned in your first comment.

sish and ngrok are mentioned in the intro along with the reasons I didn't go this way (specific SSH server to run for the first and not self-hosted for the later).

This domain is crowded with solutions. I only explored that myself because the "free" solutions only requiring an SSH client were unreliable, including the free tier of ngrok (broken SSH tunnel).

Comment · 28 days ago
The attack you mention is solved in the second part of the article.
Comment · 1 month ago
Comment · 1 month ago
Comment · 1 month ago
"anorack" is a specific spell checker to tell if we need "a" or "an". It uses espeak to decompose a word into phonemes.
Comment · 1 month ago
I am setting cache to `false` and directly use actions/cache:

    - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
      if: ${{ inputs.setup-go == 'true' }}
      with:
        path: |
          ${{ env.gocache }}
          ${{ env.gomodcache }}
        key: ${{ runner.os }}-${{ runner.arch }}-go${{ steps.go-setup.outputs.go-version }}-${{ hashFiles('go.sum') }}-${{ env.today }}
        restore-keys: |
          ${{ runner.os }}-${{ runner.arch }}-go${{ steps.go-setup.outputs.go-version }}-${{ hashFiles('go.sum') }}-
          ${{ runner.os }}-${{ runner.arch }}-go${{ steps.go-setup.outputs.go-version }}-
You get one new cache every day, and you can still load the most recent one if you are the first run today.
Comment · 1 month ago
If you like watching the first animation, you can get it for the other diagrams with a well-known video game code.
Comment · 2 months ago
Mostly, they try to avoid it by allocating extents instead of blocks (so, they look for a contiguous space to store most files) and by delaying allocation to accommodate for a growing files.
Comment · 2 months ago
Author here. This article features interactive demonstrations of the spanning tree protocol (an old protocol to detect and fix loops in Ethernet networks) using MSTPD (user-space implementation for Linux) compiled to WebAssembly with Emscripten.
Comment · 2 months ago
Comment · 2 months ago
This is not untrue, but I suppose that if you don't prevent bots from accessing your website, they won't try to use the more advanced scrapers running JS and won't trigger your analytics.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton