HNHacker News
TopNewBestAskShowJobs

vbernat

1,945 karma · joined October 18, 2011

Personal blog: https://vincent.bernat.ch/en/blog
submissionscomments
vbernat··on Show HN: HN.watch – Videos of all Hacker News posts
This looks a good idea to let people choose their preferred medium. I am not into video either, but I turned one of my latest blog article into a video using Claude, since I thought it would be “easy.” I asked it to build the video by screencasting a browser presenting the interactive diagrams of the article and add some titles. It build some kind of recording app for me. It still took me many hours, but I think I would be faster if I redid it. I would pay to have it done faster, but I want to keep control of the text, not have a summary.

The article: https://vincent.bernat.ch/en/blog/2026-spanning-tree-video

The tool built by Claude to make the video: https://github.com/vincentbernat/vincent.bernat.ch/tree/2808...

vbernat··on Grim Fandango Puzzle Document (1996) [pdf]
Maybe a better URL could be: http://gameshelf.jmac.org/2008/11/grim-fandango-puzzle-desig...
vbernat··on English: A vs. An
"anorack" is a specific spell checker to tell if we need "a" or "an". It uses espeak to decompose a word into phonemes.
vbernat··on Scaling Golang CI by Replacing actions/setup-go
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.
vbernat··on An interactive tour of the spanning tree protocol
If you like watching the first animation, you can get it for the other diagrams with a well-known video game code.
vbernat··on Show HN: I missed the moving blocks, so I built a real Linux disk defragmenter
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.
vbernat··on The quirky personal homepages of programming language creators
The page from which the data is sourced allows this: http://pldb.info/lists/creators.
vbernat··on GoAccess – Open-source real-time log analyzer and interactive viewer
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.
vbernat··on The Legend of the Novell NE2000 [video]
The bug on Linux still exists today on this family (e100, e1000, e1000e). Maybe the root cause is different, but the solution is still to disable TCP segmentation offload and I suppose this is a firmware bug. At some point, Mellanox took over the "top" card segment for servers.
vbernat··on GoAccess – Open-source real-time log analyzer and interactive viewer
It is now mostly unusable for web analytics. So many scrapers are pretending to be browsers. On my site, there is a factor 10 with what I consider an honest view of human visitors.
vbernat··on France to ban unsolicited telemarketing calls
In France, thanks to STIR/SHAKEN, this is not possible any more for the fixed phone numbering plans (and telemarketers have to register their phone numbers in a subset of this numbering plan). For mobile lines, this is still not 100% implemented due to the difficulty of handling roaming, but I think it is becoming efficient as I didn't have a telemarketer with a mobile number since a long time (they seem to hide their number now).
vbernat··on Monitors for Work
After 27" 4K OLED last year, I suppose 24" are next! I didn't have the patience to wait and I have migrated to 27" 4k OLED (Alienware).
vbernat··on Hyprland 0.55 announced the switch to Lua for its config files
I have switched from FVWM to awesome because of Lua. Many years later, I have switched to i3 because it's not using a programming language for configuration. It's fine to have a configuration language if you have time to maintain, but your configuration can become quite complex and difficult to evolve. And it is also far more subject to breakage when upgrading.

I think I've found balance by using a Python daemon as a "companion" for my i3 configuration. It listens and react to event. It enhances the configuration, so when it's broken, it's not a big deal. And the interface exposed by i3 is smaller, so less risk of breakage. https://vincent.bernat.ch/en/blog/2021-i3-window-manager#i3-...

vbernat··on Gone but Not Forgotten: Recovering the Dead Web
It's easy to disprove. This website is not behind CF. Also: https://backlinko.com/cloudflare-users.
vbernat··on Gone but Not Forgotten: Recovering the Dead Web
I don't think CF is that much present, but yes, the situation is dire.
vbernat··on Gone but Not Forgotten: Recovering the Dead Web
I have also restored the very first articles I wrote in the 90s when I was young <https://vincent.bernat.ch/en/blog/2026-old-web-articles>. At the time, they were not "great," but now I think they have some limited historical values. For example, one of them is about how the national phone operator was billing minutes. The information was easy to find in the past but is pretty scarce now.

I didn't use the wayback machine because it didn't archive everything I needed and because I still had the files on my hard drive, but if I didn't, I would have been happy to recover them.

vbernat··on Gone but Not Forgotten: Recovering the Dead Web
I often run a linkchecker on my blog and substitute broken URL with links to the Wayback machine. Unfortunately, this is becoming quite difficult to detect broken URL as everybody is fighting bots. I am using linkchecker <https://github.com/linkchecker/linkchecker/> and it respects robots.txt but many sites are now serving 503 or various other codes.
vbernat··on The deadly rise of giant trucks and SUVs
Biking is not meant to replace everything. More people biking means more room for people that cannot bike. Bike-heavy cities like Amsterdam show that most of your "facts" are incorrect (bikes can be used to transport goods, are usable when it rains, are used by a large part of the population). That's a trope common when bike displaces cars, but studies show the reverse (for example in Madrid: https://www.sciencedirect.com/science/article/abs/pii/S02642...). Also, biking is good for health despite the risks (for example https://www.bmj.com/content/343/bmj.d4521).
vbernat··on Google Hits 50% IPv6
It already does. With IPv6, you don't go through some CGNAT box, that could misbehave or just break (and since the biggest chunk of content is available through IPv6, this may not be a priority). Also, a shared IPv4 can be banned by various sites if one of the owner misbehaves. This issue is not present with IPv6.

More on this: https://vincent.bernat.ch/en/blog/2024-why-ipv6

vbernat··on Google Hits 50% IPv6
6rd will soon get away to get native IPv6 instead. Also, 6rd is what allowed France to lead IPv6 deployment.
vbernat··on Leaving Mozilla
But PulseAudio API is still the "standard".
vbernat··on Leaving Mozilla
Options have a maintenance cost. Pulseaudio is the current Linux audio stack, like plain ALSA was before when it replaced OSS.
vbernat··on Porting the ThinkPad X61 to Coreboot
Unrelated, the Emacs-based design of the website is quite nice.
vbernat··on Intro to TLA+ for the LLM Era: Prompt Your Way to Victory
Isn't this line incorrect?

    BB == b > 1 /\ b' = b - 2 /\ w' = w + 1           \* Picked 2 black
It should b > 2, otherwise you'll get in an invalid state.
vbernat··on Project Glasswing: what Mythos showed us
I don't understand why Cloudflare got unrestricted access while Daniel Stenberg got Mythos run by a third party on cURL and only got a report. Well, I understand, but I may be wrong.
vbernat··on New Nginx Exploit
nginx had this defect for a long time too!
vbernat··on A desktop made for one
I find this fascinating. I also like to customize my desktop experience with my own code, but it's more assembling stuff with some additional code as glue.

A word of warning: a reliable lock tool for X11 is difficult. You should look at XSecureLock, which uses a multiprocess approach to avoid leaving the desktop unprotected in case of crash. It also implements a number of countermeasure to ensure the desktop stays locked and the locker stays in the front of the display. It's small too, so easy to audit (but written in C).

vbernat··on Before GitHub
I've switched to GitHub from Trac because of spam. Despite using Akismet and bayesian filters, on a small instance, there were still several spam tickets if you didn't require an account (for the details, https://vincent.bernat.ch/en/blog/2011-migrating-to-github). I am a bit amazed that Trac still exists and is maintained today.
vbernat··on Why Switzerland has 25 Gbit internet and America doesn't
Did you check on https://cartefibre.arcep.fr/? If your address is there, you will know the status of your address and notably the infrastructure operator, which has the obligation to cover your zone before 2030. If your address is not there (and the zone is empty, otherwise, this is up to your municipality to fix the missing address), it means there is no infrastructure operator yet. This is up to your local government to make a deal with an infrastructure operator to cover this zone.

As for the numbers, as it is open data, there are some sites like https://infofibre.fr/ where this is easier to see where we are. You can see that even rural regions have more than 90% of household coverage.

As for definitions, there are two cases for availability: immediate availability (infrastructure operator present up and you have at least one commercial operator after 3 months) or delayed availibility (the infrastructure operator has 6 months to make the address available after being asked by a commercial operator).

vbernat··on Why Switzerland has 25 Gbit internet and America doesn't
In reality, this does not happen that way. If a path already exists, you can pay to use the same duct (unless it's full) to install your own fibers. At least, it works this way in France.
Page 1 of 16Next →