Article
9722 découvertes · Découvertes choisies sur le web ouvert, des plus récentes aux plus anciennes.
-
A Walk Through a Taiwan Street Market
Today's run ended on a trail that emerged into a neighborhood market on Liren Street in Taoyuan, Taiwan. What began as a routine cooldown walk turned into a reminder of why I enjoy spending time here.
barlows.blog · EN
-
I Confused Learning With Scrolling
The more I've thought about it, the more I've come to realize that I've confused consuming media with learning. I've gotten very good at taking information in. What I haven't been nearly as deliberate about is creating the space to process it and put it into action.
barlows.blog · EN
-
ImapGoose: detecting wake-up from sleep
After the system goes into sleep and wakes up again, ImapGoose would just hang for like 15–20 minutes before finally detecting the disconnection and reconnect. This was super annoying, and understanding the root cause was not trivial at all. ImapGoose sends a NOOP to the server every three minutes. This NOOP is basically like a ping to which the server must reply. The timeout it set to thirty seconds, so why did it take around 20 minutes to detect the disconnection? Part 1 [ permalink ] While the system is asleep, the server sends a RST indicating that the connection is terminated. This messag
Hugo's weblog on WhyNotHugo (雨果) · EN
-
The brief history of lsp_lines.nvim
Back in 2022, LSP implementations could find errors and other diagnostics in code and send them into the editor, but editors lacked good interfaces to actually present this. The best at the time was a panel with a list of errors (not unlike what Eclipse and other IDEs would do a decade earlier). I wanted to see errors in context instead. I found inspiration in how Rust renders compilation errors and warnings into the terminal: rendering a portion of surrounding code, and an ASCII arrow pointing to the relevant portion of code. With the idea, I implemented lsp_lines.nvim , a plug-in that render
Hugo's weblog on WhyNotHugo (雨果) · EN
-
Transactional system upgrades without compromise
This article is about two desirable traits in system upgrades: atomicity and being able to roll back. Atomicity: the upgrade is either applied in full or not applied at all. The system is not left in a broken state because, e.g., “the package manager updated half of the files and then died”. This includes situations like a power failure mid-upgrade. Rollback-capable: if a system upgrade fails, or doesn’t work, it’s still possible to use the device in a previous system state. These two traits dramatically increase the reliability of a device that’s updated in the f
Hugo's weblog on WhyNotHugo (雨果) · EN
-
Status update 2026-08
I’ve been refining the API for libdav . Two big tasks were involved here: (1) more flexible generic types for the async helpers and (2) tidying up error types. Flexible async types [ permalink ] The core of libdav follows a sans I/O philosophy: it produces requests and parses response, leaving network transport up to the caller. This kind of design is clean, flexible, and especially convenient for unit testing. Not to mention that it makes the library actually usable with any HTTP client implementation. For typical consumers writing async Rust code with the hyper HTTP library, writing co
Hugo's weblog on WhyNotHugo (雨果) · EN
-
Stacked PRs: fixing abstractions with more layers of abstraction
In Git, a commit is the minimal unit of changes that can be applied to a repository. We can send multiple commits (e.g. multiple patches) to someone else, and they can selectively apply some of them without applying all of them. Or they can provide feedback for individual patches. Pull requests change this model: each PR contains multiple commits, and the workflow focuses on applying all or none of them. The UI makes it awkward to exchange feedback for a single commit, and provides no convenient mechanism to apply a single one. Stacked pull requests are an attempt to solve the problem introduc
Hugo's weblog on WhyNotHugo (雨果) · EN
-
Use rsync to compare large directory trees
I had to rewrite some large back-ups recently in order for restic to properly de-duplicate them. I checked that the re-written back-ups are identical to the original ones by comparing the entire directory trees of the mounted back-ups. I had some doubts on whether diff -qr or rsync -acni --delete would be the best approach and did some benchmarks and tests using /usr (total: 3.2GB) which has a large mix of files and permissions. I first tried a bind mount, but diff skips comparing anything entirely since it determines that both directories have the same device/inode. I used a copy of /usr inst
Hugo's weblog on WhyNotHugo (雨果) · EN
-
Cutting files is a broken abstraction
Part 1: cutting files is a lie [ permalink ] I’ve written before in detail on how the clipboard works : when I copy something that program announces to others “I have something for you to paste”, and when you paste on another program, that one says “gimme that copied data”. (this oversimplifies, see linked article if you want the full details) So what happens when we cut ? In a text editor, cutting just copies something and removes it from the text file immediately. It’s a “copy and delete” action really. The same applies for image editors, and f
Hugo's weblog on WhyNotHugo (雨果) · EN
-
Status update 2026-10
I’ve completed development work on OAuth support in pimsync. The implementation has been tested primary with NextCloud (both its built-in OAuth provider and the OIDC plugin), but should be usable with any CalDAV/CardDAV server using OAuth for authentication. It should also work with Google’s flavour of CalDAV, although this has yet to be tested. At this point, mostly the documentation is missing — the reference-level documentation is there, but a friendlier “how to” guide covering all the details is still pending. It’s both definitely planned and quite necessary.
Hugo's weblog on WhyNotHugo (雨果) · EN
-
But I don't like anime
I've tried so many times to enjoy anime. I've watched an episode here and there of the next big show and none of them grabbed me. I always thought that maybe anime just wasn't for me. But, it turns out I just hadn't found my niche yet. It all started in Tokyo. Every shop was bright, noisy and overwhelming. Full of every character or show you could think of and something that kept showing up was a little pink haired girl and her big white dog. I was intrigued, who was this cute duo? And that's how I found Spy X Family. A serious and silly anime about a spy forming a family and unknowingly choos
Moonlight & Whiskers · EN
-
Surrounded!
I recently moved to a new city. I am the first to admit I haven't done much exploring since I've been here. There's always been an excuse to stay home. Today, I decided to change that. It wasn't even something difficult. I was just going to explore the nature reserve near my house. So, I put on my shoes and went for a walk. Nature reserves are such great places. One second you're in suburbia and the next you're in the bush. Nothing but you and the trees, birds and wildlife. I wasn't quite sure which way to go on this walk. I had a vague idea but there were many more man-made trails than Google
Moonlight & Whiskers · EN
-
Unexpected Surprises of Project Hail Mary
I jumped on the Project Hail Mary bandwagon recently. Starting with reading the audiobook (would definitely recommend this if you haven't read it yet) and then watching the movie. *** Project Hail Mary spoilers commence *** I went into the book blind, which was excellent because I had no idea what was coming! There were so many surprising things ("we're meeting alien life forms!!??"), but these are the two that stood out the most. Meeting an alien didn't mean violence I was so surprised when the Hail Mary encountered another ship, but then I was concerned. I waited for them to attack or the Ha
Moonlight & Whiskers · EN
-
Why Are You Shooting me!?
I started playing Minishoot Adventures today. I haven't played a twin-stick shooter in a long time, but it didn't take long to remember how they feel. The controls are smooth and easy. Initially, you're alone in this world until you fly around and encounter another machine. "Are you friend?" I wondered. It came closer to my plane and I let it. It killed me. Not friend then. As with most games like this, things start shooting at you the moment you enter the screen and I wondered why. Sure, I'm an unknown object, but am I an enemy? Am I a threat? In games we shoot first and ask questions later.
Moonlight & Whiskers · EN
-
Why is my heart racing?
da-na na naa na, da-na na naa na. That's the Jurassic Park theme song. You're humming it now, right? Sam Neill died this week, and to honour his work, I decided to watch Jurassic Park. Maybe not his best work (what accent was he going for?), but definitely a dose of nostalgia for this 90s kid. Did you know Sam Neill was 45 when they filmed that?? Anyway, he's not why my heart is racing. The movie is! It's been many years since I've seen it. More than a decade, maybe two, and I don't remember the opening scenes with the boring lawyer, but I do remember the T.rex. I remember the T. rex and the w
Moonlight & Whiskers · EN
-
Feeling Sixteen Again
Last night, I went to see a band. I was a little nervous about it. It was my first time going to see a band in my new city. I've never been to the bar, there was no easy parking around, and I didn't know what the crowd would be like. Initially, I considered skipping the support bands and just going to see the headliner, but that would have just been letting the fear of the unknown win. And I'm glad I didn't. They were pretty good bands! I remembered how fun it was to go see an Australian band at a dingy bar. When the support bands were playing, I was happy to hang back a bit, but I noticed tal
Moonlight & Whiskers · EN
-
On duality
I keep going back and forth between wanting something new and being happy with what I already have.
Thu Le · EN
-
What craft means when making gets easier
AI does more of the making now. The deciding is still mine.
Thu Le · EN