pcouy

joined 2 years ago
[–] pcouy@lemmy.pierre-couy.fr 5 points 10 months ago (9 children)

It's often a good idea to make the code itself very explicit through verbose function and variable names, rather than writing comments that could lead to inconsistencies between code and comments (by not updating the comments at the same time as the code) (see "Fallacious Comments" from the catalog)

[–] pcouy@lemmy.pierre-couy.fr 2 points 10 months ago

They are both serialization formats that are supposed to be able to represent the same thing. Converting between these 2 formats is used in the article as a way to highlight yaml's parsing quirks (since JSON only has a single way to represent the false boolean value, it makes it clear that the no value in yaml is interpreted as a boolean false and not as the "no" string)

Anyway, I disagree with your point about YAML and JSON not being interchangeable

[–] pcouy@lemmy.pierre-couy.fr 2 points 10 months ago (1 children)

Did you find the article stupid, or are you talking about yaml parsing ?

[–] pcouy@lemmy.pierre-couy.fr 7 points 10 months ago (2 children)

The problem is specifically that in't not exactly clear what's considered ambiguous. For instance, no is the same thing as false, but as evidenced in the linked post, in the context of country codes, it means "Norway" and it's not obvious that it might get interpreted as a boolean value.

It's the same thing as this famous meme about implicit type conversions in JS :

[–] pcouy@lemmy.pierre-couy.fr 7 points 10 months ago (4 children)

In any almost other context (where boolean values exist), strings must be delimited by quotes, eliminating the ambiguity with false as string contents and the false boolean value

[–] pcouy@lemmy.pierre-couy.fr 26 points 10 months ago (6 children)

I think most open-source contributions come from a tiny fraction of users who initially get involved because they want to improve the project or fix a bug for their own usage

[–] pcouy@lemmy.pierre-couy.fr 35 points 10 months ago

ENS stands for Ethereum Name Service

[–] pcouy@lemmy.pierre-couy.fr 3 points 10 months ago

"ENS domain"

IPFS is also strongly related to several blockchain stuff (not a blockchain itself though)

[–] pcouy@lemmy.pierre-couy.fr 2 points 10 months ago
[–] pcouy@lemmy.pierre-couy.fr 4 points 10 months ago (1 children)

CIDR ranges (a.b.c.d/subnet_mask) contain 2^(32-subnet_mask) IP addresses. The 1.5 I'm using controls the filter's sensitivity and can be tuned to anything between 1 and 2

Using 1 or smaller would mean that the filter gets triggered earlier for larger ranges (we want to avoid this so that a single IP can't trick you into banning a /16)

Using 2 or more would mean you tolerate more fail/IP for larger ranges, making you ban all smaller subranges before the filter gets a chance to trigger on a larger range.

This is running locally to a single f2b instance, but should work pretty much the same with aggregated logs from multiple instances

[–] pcouy@lemmy.pierre-couy.fr 6 points 10 months ago (3 children)

I used to get a lot of scrappers hitting my Lemmy instance, most of them using a bunch of IP ranges, some of them masquerading their user agents as a regular browser.

What's been working for me is using a custom nginx log format with a custom fail2ban filter that mets me easily block new bots once I identify some kind of signature.

For instance, one of these scrappers almost always sends requests that are around 250 bytes long, using the user agent of a legitimate browser that always sends requests that are 300 bytes or larger. I can then add a fail2ban jail that triggers on seeing this specific user agent with the wrong request size.

On top of this, I wrote a simple script that monitors my fail2ban logs and writes CIDR ranges that appear too often (the threshold is proportional to 1.5^(32-subnet_mask)). This file is then parsed by fail2ban to block whole ranges. There are some specific details I omitted regarding bantime and findtime, that ensure that a small malicious range will not be able to trick me into blocking a larger one. This has worked flawlessly to block "hostile" ranges with apparently 0 false positives for nearly a year

[–] pcouy@lemmy.pierre-couy.fr 2 points 10 months ago

I've already joined it, people over there are indeed extremely helpful

view more: ‹ prev next ›