e-dant
Joined 9 years ago
Joined 9 years ago
It takes energy and commitment, just like anything else worthwhile in life. Have the courage to not be good at something, to do it anyway, and to keep doing it.
Many years ago, there weren't so many opportunities, have to make some of your own. (I began my adult life in the midst of the pandemic. I am very aware of how empty the world can feel.) Join clubs, large events, book clubs, art shows, these things exist, you can find them. You won't have many friends at first, but you'll meet a lot of people. I nearly took the LSAT for fun because at some point some kind-of-friends/acquaintances were preparing for law school. Take every opportunity, do anything, figure out what you like, and who you like.
Later on, there is simply not enough time in the day. You can wake up grateful every day that you can do whatever you wish. You will never want for a closer friend. There will always be some challenging adventure you can take. Or a comfortable evening with some close friends. Your friends will show up at your door with gifts, you will see the sunset from some mountain you climbed, you'll run through the rain with your friends and laugh, you'll be familiar with half the rooftops in whatever city you're near, you will have career and social opportunities just because of how many people you know.
And finally, you will have a responsibility to provide good prosocial opportunities for someone else who is figuring out the world.
It is possible.
Obviously I’m kidding, and something is rotten
There are benchmarks in there, and comparisons with all the other watchers out there I could find at the time I made it (see "Comparison with Similar Projects" at the very bottom of the readme).
It's a pretty long list. Tons of watchers out there with different design philosophies and shapes of problems they solve.
There are a lot of caveats to the filesystem monitoring APIs provided by kernels. Some projects (like facebook's watchman) take that as a kind of antagonism, and decide to fight back with layers and layers of fallbacks and distrust and rescans. That projects basically only makes sense as a daemon.
Other programs and libraries try to take that complexity and tame it by being super-focused on one platform or providing a lot of configuration options.
Some provide debouncing logic. This particular feature comes up from time to time, I believe, both for practical reasons and because over-reported events from the kernel subsystems, especially for some arcane events like moving a file across mount points can trigger a flurry of hard-to-associate events for the same path.
If you want to avoid dealing with under-documented filesystem event subsystems, you can also just make your own with ebpf. Especially for security-oriented systems, you'll find that the only (nearly) perfectly accurate filesystem event subsystem you can make, is the one you make from the ground up.
Just don’t like the slop that’s getting us there.
Hmmm.