/proc/net/sockstat gives the number of pages currently in use for TCP buffers.

I need to graph and monitor that one...

FINALLY! I got it! I had been playing around with the tcp_wmem sysctl before, but what I actually needed what tcp_mem: The system-wide number of 4k pages allocated to TCP buffers.

Linux starts throttling connections when the memory used by buffers exceeds the `min` value, and so far I've not found a way to see if/when that value is reached. In any case, ~200MB is certainly not enough for a busy webserver. Set it to 1GB now and file transfers are much faster.

:blobcatthinking: "What does this site look like with ads?"
:blobcatthinksmart: Disable adblocker.
:blobcatthinkOwO: No change.
:blobcatoh: Ads blocked by DNS.

I just can't figure this one out. HTTPS is super fast when I wget localhost on the server, but as soon as I'm fetching the file over the network it just slows down.

It's not as if port 443 is being throttled, the same slowness happens when going through a Wireguard tunnel. :blobcatdead:

It's got to be related to packet latency, but I'm sure I already tried tuning the TCP window sizes in the past.

https+nginx: 800KB/s
ssh+rsync (no cache): 16MB/s

WHY!? :blobcattableflip:

@tyil I dont have USE=vhosts

Looks like it's app-admin/webapp-config doing the magic.

@tyil Gentoo installs (a copy of) web apps in /var/www/localhost/, so you don't have to keep track of the version number.

cgit binary: /var/www/localhost/cgi-bin/cgit.cgi
static files: /var/www/localhost/htdocs/cgit/

(At least, that's what it did on my system. Could be a use flag)

My lazy low-downtime server migration recipe:

A->B: rsync
A: Stop services
A->B: rsync
Update proxy
B: Start services

I have boosts disabled in my home timeline, but I can still tell when @alcinnz is doing his daily boosting spree - the Mastodon front-end starts pruning old posts from my home timeline, presumably because the hidden boosts still count towards the maximum number of items to keep at the client side.

(Which I totally don't blame on @alcinnz! It's just a funny glitch)

@tejrnz @tyil Oh I fully agree that the ease of hash/array deconstruction is Perl's greatest feature, I'm just not sure it should be the default when calling `func(%hash)` - it also causes a few ugly inconsistencies in the standard library. e.g. `push(@array, $val)` doesn't deconstruct @array.

@tejrnz I refuse to acknowledge that smartmatch exists. Agree with some other things, too, but I don't see (1) as much of a problem. If anything, I'd say perlre isn't powerful enough, something built-in like Regexp::Grammars would be nice. I'm sure @tyil would love to remind us that Raku has proper parsers at the language level. :blobcatpeekaboo:

I'd replace (1) and (5) with:

- "0" is false. This has hit me so many times that it'd have helped me more if only undef and empty string were false.

- I'm not too fond of the complexity that %bare hashes vs. $hashrefs introduces. I'd rather see everything as a hashref and have a separate operator to deconstruct a hashref into a list (same for arrays).

Ayo boosted
A while ago on IRC, we got to talking about an old challenge: to list five things you didn't like about your favourite programming language. My favourite programming language that is arguably "general purpose" is Perl, so I gave it a crack. I came up with this:

1. The regular expression engine, perlre, is perversely huge and absurdly complex, and includes way too much functionality, which tempts newbies into using regular expression features unique to Perl in cases where plain old programming constructs like loops would be both clearer and more portable. This unnecessarily contributes to Perl's reputation as unreadable.

2. An empty pattern (i.e. //) means "repeat last pattern". That's weird, though maybe not harmful in itself, but it extends to /$var/ meaning "repeat last pattern" in the case of $var being an empty string. That's almost certainly not what any sane programmer would mean.

3. Smart match sucks, and not merely at an implementation level, but at a design and philosophical level. It takes the idea of implicit behaviour or "do what I mean" to perverse extremes, and flips Perl's usual approach to inferring types from operands (eq vs ==, cmp vs <=>) into choosing behaviour based on types, in really tenuous ways. It just doesn't fit in the language at all, and I pretty much try to pretend it isn't there. @tyil is fond of reminding me that it's somewhat saner in Raku.

4. Checking hash keys with `exists $hash{$key}` in the same way as definition with `defined $hash{$key}` kind of blows as a syntax. The reason this stands out to me is that Perl was designed to imitate good feature of AWK, among other languages, so it's not clear to me why they didn't use the much clearer `$key in %hash` that AWK includes instead. That could then have doubled as an operator for searching a list: `$item in @list`, to satisfy the justifiably common newbie question "how do I check if a value is in a list", without having to persuade them to use hashes instead.

5. I can't put unquoted hyphens in hash keys, because it prompts the lexer to switch to evaluating what I'm writing as an expression (subtraction) rather than a literal string key. The vast majority of the time, my key is either a literal value, or a scalar variable containing the key. Rather than having to make the literal key explicit with $hash{'single-quotes'}, I would much prefer making an expression explicit with e.g. $hash{(parentheses)}, as the latter is the more infrequent case.

my favourite compressor is venti 

@subleq reduces the number of bits.

(sorry, my humor module needs recalibration)

On a more serious note: Since you rarely seem to implement anything, why not at write least write down your ideas in detail. That'll be a good first step. :blobcat:

@Wolf480pl ikr. But I'm pretty sure I chose one of my existing passwords. Or a minor variation thereof.

@Wolf480pl Successfully? Probably only once when testing.

"This is a password I might want to use when I don't have access to my password manager, let's choose something memorable."
- me, 1 year ago.

*Of course* I can't remember it.

Have I mentioned how much I love Wireguard?

Server migrations are so much easier when VMs can keep talking to each other as if they were on a single LAN.

@Wolf480pl Yeah vfat.

Initially created an ext3 boot partition, but grub/efi/whatever-magic-boot-stuff failed to recognize it. And of course my shared kernel image doesn't have vfat support because I don't use it elsewhere.

Show more

A lonely little town in the wider world of the fediverse.