<gchristensen>
waitfor=0; for f in $(seq 1 10 | sort --random-sort); do if [ $((f % 2)) -eq 0 ]; then waitfor=$((waitfor + 1)); (sleep $f; printf '\r%d' $f >> record)&; fi; done; for i in $(seq 1 "$waitfor"); do wait; done; cat record
<samueldr>
I'm currently the most mildly annoyed at the fact that there's no way to know the final size of a file for most compression schemes
<gchristensen>
yeah.
<samueldr>
probably because they compress "streams" rather than files
<samueldr>
so even though I made a porcelain to "burn" files to block devices (because I'm getting aggravated) I couldn't make it that much better by having an actual ETA
<samueldr>
aggravated that I have to always add the same command line arguments, and aggravated that sometimes I accidentally create a normal file named /dev/sdX and that when I try to burn to /dev/sdX I end up overwriting a normal file and wondering why the heck the thing doesn't change)
<samueldr>
and aggravated at having to deal sometimes with raw disk images, sometimes with compression
<ldlework>
samueldr: right, he's saying we'd have a better chance of taking control of /r/nix
<samueldr>
yeah, but that doesn't solve many issues
<drakonis1>
reddit only takes action if the owners are no show for months
<ldlework>
yeah if the mod of /r/nixos doesn't want to give it up, there's nothing to be done
<energizer>
"Abandoned” subreddits are available for r/redditrequest. Subreddits are considered "abandoned" in the event that none of its mods have been active anywhere on reddit in the past 60 days." /r/nix's mod hasnt been active in 10 years
<samueldr>
the mods AFAIK have been effectively no show for years
<ldlework>
they (mods of /r/nixos) are active on reddit as of ~25 days ago
<samueldr>
and at the very least, it's a hostile action from the mods to, without consultation, change it into a moderated subreddit
<samueldr>
yeah, I was talking about active *on* /r/nixos
<samueldr>
I think people better attached to NixOS and the NixOS foundation may want to do something about that, and not simply ask as community members
drakonis_ has quit [Ping timeout: 260 seconds]
<samueldr>
because the subreddit *is* linked as an official ressource, but right now has been locked without any clear reason
<ldlework>
samueldr: I was just mentioning, because the takeover rules consider mod activity on reddit globally, not just on the relevant subreddit
<bqv>
(can i see if i can adopt it to weechat.el? or is it not very functional)
leah2 has joined #nixos-chat
bqv has quit [Ping timeout: 260 seconds]
bqv has joined #nixos-chat
waleee-cl has quit [Quit: Connection closed for inactivity]
cole-h has quit [Quit: Goodbye]
iqubic has joined #nixos-chat
<ldlework>
Sadly retroarch is missing some art
mog has quit [Ping timeout: 256 seconds]
<ldlework>
I actually have no idea how you're supposed to use retroarch from Nixpkgs
<ldlework>
Retroarch doesn't see any of the cores that get installed
bqv has quit [Remote host closed the connection]
bqv has joined #nixos-chat
<Shados>
samueldr: Sadly, reddit has no real oversight, and there is essentially no chance reddit admins will take action. Case in point: a couple months ago the top mod on r/3dprinting started kicking other, well-respected mods off the team for essentially no reason, followed by yet more mods quitting in protest. Said top mod hadn't posted in that subreddit in *2 years*, and their most recent post was about yet another incidence of booting well-respected mods.
<Shados>
Reddit admins were contacted and did squat.
<sphalerite>
ldlework: neither is more correct than the other, but mine doesn't use nixpkgs.config, because IMHO nixpkgs.config is awful especially for actually configuring packages (like retroarch, as opposed to configuring nixpkgs like allowUnfree)
<ldlework>
sphalerite: do you have a method for rezipping your roms so they match the retroarch db?
<sphalerite>
ldlework: no, I don't actually use retroarch >_<
<ldlework>
oh lol
<sphalerite>
I tried it at one point and therefore still have it in my games user's profile, but usually use distinct emulator programs
<ldlework>
sphalerite: any reason?
<sphalerite>
can't really remember, I think they just worked better, or took less fiddling, or were more obvious how to use
<eyJhb>
And I think it is actually more like 0 tbh. because of some insurrance stuff
<eyJhb>
Well, they are part of ones health
<eyJhb>
It is kind of fucked that everything else is covered, but if you cannot eat beacuse of toothpain, then you are out of luck :/
<Shados>
eyJhb: that's pretty cheap compared to here, honestly. Getting a check-up and clean every 6 months sets you back maybe $140-200 depending on where you go.
<Shados>
($140-200/year, I mean)
<ashkitten>
anyway, good night
<ashkitten>
gchristensen: ky0ko says you're a sentient acorn
<eyJhb>
100 DKK here (13 EUR) for the basis checkup, a additional 150 DKK (20 EUR) if you want xray as well
<eyJhb>
And then there is the price of actual cleaning, around 200 DKK I guess
<ky0ko>
i say things sometimes
<eyJhb>
But a lot less!
<eyJhb>
night ashkitten :)
<sphalerite>
ashkitten: are they part of the skeleton though?
<adisbladis>
> DKK 100
<{^_^}>
"346501.000000 VND"
<eyJhb>
adisbladis: go away :D
<eyJhb>
Or wait, stay, I need help :p
<adisbladis>
eyJhb: :<
<eyJhb>
You know that it isn't wise to reveal yourself...
thibm has joined #nixos-chat
<sphalerite>
Any emacsers here have a nice way of building an expression that you're working on from emacs? I'm still switching to a terminal and pressing up-enter and it feels like this could be so much easier.
<ldlework>
heh
<ldlework>
I'm playing Super Smash Brother Melee on NixOS
bqv has quit [Ping timeout: 260 seconds]
<sphalerite>
ldlework: oh yeah that's one of the games I've spent some time playing as well :D
<sphalerite>
never had a gamecube, but that can't stop me
<eyJhb>
adisbladis: #nixos if you have the time :)
bqv has joined #nixos-chat
<energizer>
ldlework: there's competitive melee on irc, i played a few years ago it was fun
<energizer>
on rizon#dolphpin-ssbm
<energizer>
dolphin*
<ldlework>
energizer: thought you wernt much of a gamer lol
<energizer>
ldlework: haha that's true, i used to play a few, but it's been many years
<ldlework>
coulda tried my game for 5 minutes to reward the effort in packaging it up for nix!
<ldlework>
lol playing melee on a ps3 controller is weeeiiirrrrrddd
__monty__ has joined #nixos-chat
bqv has quit [Ping timeout: 246 seconds]
bqv has joined #nixos-chat
<ldlework>
I just beat super smash melee on nixos :)
<eyJhb>
Did `impermanence` settle on bindmounts for everything?
<etu>
eyJhb: It's a bit tricky
<etu>
eyJhb: It causes issues with files in certain cases
<sphalerite>
ldlework: yeah I use a PS4 controller myself. It's basically the only controller I play with (I don't play many controllery games) so it doesn't feel weird to me :D
<eyJhb>
etu: atm. I am trying to persist .viminfo, but vim does not like the symlink...
iqubic` has joined #nixos-chat
<sphalerite>
eyJhb: wrap it to pass -i ?
<sphalerite>
eyJhb: or set the viminfofile option
<sphalerite>
eyJhb: see :help viminfo-file-name
iqubic has quit [Ping timeout: 256 seconds]
<gchristensen>
ashkitten: :)
<sphalerite>
ldlework: just noticed that support for playstation controller's rumble isn't enabled in nixos's default kernel config
<ldlework>
how to enable
<sphalerite>
ldlework: kernel config HID_SONY_FF
<sphalerite>
ldlework: I'll open a PR
<sphalerite>
err, SONY_FF
<sphalerite>
ldlework: opened PR, cc'd you
<eyJhb>
sphalerite: will look at it :)
<gchristensen>
maybe there should be a "featureful" kernel variant
<gchristensen>
or a way to build modules in addition to
<sphalerite>
gchristensen: our kernel is featureful by default, with most of the features in modules.
<sphalerite>
gchristensen: this PR enables the features _within_ some modules
<gchristensen>
I know it is featureful :P
<sphalerite>
so it doesn't affect anybody who's not using the modules
<sphalerite>
or what do you mean?
<sphalerite>
make allyesconfig? :D
<gchristensen>
nah, it just isn't free to turn on more stuff
<gchristensen>
and there is probably a more minimal-but-pretty-good-hw-support kernel that most people would want to have to suffer through building
<gchristensen>
for example what if you could build other modules in a separate derivation and link them together
<sphalerite>
I'd say the cost is minimal in this case though, and it's hard to draw a line unless you have a "we want to support most things" policy. IMHO if someone wants to build a more minimal kernel that's something they can do themselves, i.e. start from the defconfig and enable whatever they need
<sphalerite>
nixpkgs's kernel config system works well for that use case
<sphalerite>
actually, this is tempting me to try a custom kernel for my laptop :D
<gchristensen>
I still wish for a way to take the current configuration and enable a single module, and not have to build the entire kernel
<sphalerite>
oh yes, that would be nice. Having to rebuild the whole kernel just to patch the radeon driver has probably cost me about a day of waiting for builds, and I can only imagine how much it costs people who spend more of their life building obscure-ish modules.
<gchristensen>
for example sony rumble packs :P
<sphalerite>
hey, that's an extremely common consumer device
<gchristensen>
;)
<gchristensen>
there is an interesting dynamic where the people most likely to be able to make it easy to build a single module, are also the most likely to be able to land a simple enable-this-additional-module flag to nixpkgs
<sphalerite>
hmm?
<ldlework>
"New Super Mario Bros Wii" is fun :)
<sphalerite>
(the kernel above with just defconfig built in 7 minutes for me)
<gchristensen>
sphalerite: I think I mean the pain of needing to recompile the whole kernel for an additional module is mostly carried by people who aren't nixpkgs contributors
<sphalerite>
gchristensen: right, fair enough
<gchristensen>
I'm not griping here or unhappy or blaming btw, just thinking about it
<sphalerite>
gchristensen: another trouble is that just building a module on its own won't actually work, i.e. doesn't seem to be supported by the kernel
<gchristensen>
I am regretably considering writing a kernel module :(
<adisbladis>
Oh no
<gchristensen>
heh, yeah that is something
<adisbladis>
Why
<gchristensen>
adisbladis: because LSMs look fun :(
<sphalerite>
gchristensen: I just tried insmod'ing the hid_sony module built for the same exact kernel version and got Jun 11 13:14:22 bringtnix kernel: hid_sony: Unknown symbol input_ff_create_memless (err -2)
<adisbladis>
LSMs?
<sphalerite>
because the module has dependencies within the kernel that are optimised out if the module isn't built :/
<gchristensen>
adisbladis: Linux Security Modules, the framework AppArmor and SELinux are built on
<sphalerite>
gchristensen: so enabling building individual modules that aren't enabled in the default config wouldn't even help without a lot of upstream work
<gchristensen>
ouch.
<adisbladis>
gchristensen: And you can't use ebpf for this?
<sphalerite>
gchristensen: upstream work that would make building the kernel more expensive as well x(
<gchristensen>
adisbladis: not sure
<gchristensen>
I think ebpf can only be used to monitor it
<adisbladis>
etu: Something something community distribution...
<etu>
adisbladis: My emacs starts too slow you know
<neeasade>
etu: bspwm -- 2comfy
<neeasade>
(it is fullscreen emacs)
<gchristensen>
<3 nix,nixpkgs,community. I needed git 2.27 to fix my autosquash thing, and it was already updated 5 days ago in staging and I'm ready to go.
<neeasade>
gchristensen: bestfeel
rajivr has quit [Quit: Connection closed for inactivity]
<gchristensen>
`git-absorb` is so good
* pie_
stashes that for alter
<pie_>
later
<srk>
cool, I wasted tons of time looking up correct hashes for fixups /o\
FRidh has quit [Ping timeout: 260 seconds]
FRidh has joined #nixos-chat
<__monty__>
How does git-absord determine the right commit to fixup?
<gchristensen>
afaict magic
<joepie91>
pie_: git-stash :P
<pie_>
;p
<neeasade>
til of git-absorb -- looks sweet
<Valodim>
ooh, nice. I had written git-fixup for that a while ago, but never really maintained it. very convenient 8)
<gchristensen>
gosh. I haven't added a new package to my systemPackages in a *long* time. git-absorb just made it
<Valodim>
not your user packages?
<gchristensen>
I don't really use nix-env
<Valodim>
nor home-manager?
<gchristensen>
nor that, though I guess I probably should :)
<gchristensen>
relatedly, I would like to experiment with making many more "profiles". for example, dmenu -- for my purposes -- has no business having coreutils in its list, it should only have, like, firefox, emacs, and pavucontrol
<Shados>
Eh. If you add a fuzzy-matching patch to dmenu, most things are only take ~3 characters to get to, even with a bunch of stuff installed
<gchristensen>
it isn't about ease of use, but authority :P
<steveeJ>
oh nice, I've wished for something that identifies which commit to fixup
<steveeJ>
is that really it?
<gchristensen>
yup
<gchristensen>
you stash all your changes and it'l leven break up the chunks
<steveeJ>
even across multiple files?
<gchristensen>
oh sure
waleee-cl has joined #nixos-chat
<steveeJ>
somehow I'm afraid of it
<gchristensen>
it has, honestly, consistently done "the right thing" in a way I'm impressed by
<adisbladis>
It sounds too good to be true...
<steveeJ>
off-topic: is someone here familiar or even involved with the Holo project? I just stumbled upon it today and I'm intrigued
<joepie91>
pie_: or, if you're Dutch, the Dutch translation of an STD
<pie_>
ive heard the words but no idea what it means
<pie_>
joepie91: loll
<joepie91>
pie_: or, if you do DNS, a Start Of Authority record
<joepie91>
this is not confusing at all :)
<pie_>
TLAs have collisions, today we learned :pp
<joepie91>
pie_: anyway the TL;DR of a sensible SOA is "you have one monolithic application, and then when you have bits that need to scale independently and are ideally stateless, you move those bits out into separate services"
<pie_>
ahha.
<joepie91>
typical example is you run a video uploading site and you move the transcoding into a separate service
<joepie91>
the goal of a sensible SOA is to avoid introducing a distributed system where it's not strictly necessary
<joepie91>
so often you'll still try to centralize state, by having one central DB, moving out stateless bits first, etc.
<joepie91>
microservices throw all of this out the window and go "let's make EVERYTHING distributed for no reason at all!" which is exactly as terrible an idea as it sounds like
<joepie91>
(SOAs also predate microservices by like, 2 or 3 decades?)
neeasade has quit [Ping timeout: 260 seconds]
<joepie91>
anyway the overhead of a microservices architecture is utterly insane, which is why it makes sense for the big cloudycloud providers (who try to look cheap by splitting everything up into lots of tiny pieces) to encourage itr
<joepie91>
it*
iqubic` has quit [Ping timeout: 260 seconds]
iqubic` has joined #nixos-chat
iqubic` has quit [Remote host closed the connection]
drakonis has joined #nixos-chat
leah2 has joined #nixos-chat
drakonis_ has quit [Ping timeout: 272 seconds]
waleee-cl has quit [Quit: Connection closed for inactivity]
hoverbear has joined #nixos-chat
iqubic has joined #nixos-chat
<eyJhb>
lovesegfault: that is a hell of a bad experience with Lenovo
<eyJhb>
I have mostly good, but I had the three years on-site-repair service with them
<lovesegfault>
eyJhb: Yeah, it was pretty nightmareish
cole-h has joined #nixos-chat
<lovesegfault>
To be fair, I _still_ have a Thinkpad P1 and it's worked fine for the past year or so
<lovesegfault>
But that initial experience was traumatizing
<eyJhb>
Have had mine for 5 years now (x230), and really been amazing. But I have had replaced my screen, casing, etc.
<eyJhb>
Not so much because it needed it, but because I could I guess
<bqv>
reasonably speaking, i don't trust anything, which is kind of why i don't try too hard with personal security, because i acknowledge that no matter how hard i try there's always a fault somewhere
<bqv>
so i just try and balance ergonomicity with common sense security
<bqv>
that's kinda why my yubikeys are gathering dust too, they just aren't remotely convenient
<bqv>
setting them up is such a PITA and i think some aspects of my workflows are actually impossible for them
jared-w has quit []
<joepie91>
pie_: "Open"AI - okay, so where's their source code? other than scraps
jared-w has joined #nixos-chat
<Valodim>
a program that can read your pgp key from disk will have a an infinite amount of creative ideas on how to get (around) your passphrase
<bqv>
my guess would be that removing the password from the keys does little to nothing realistically
<bqv>
yeah
<bqv>
figured.
<bqv>
awesome!
<Valodim>
unless you take care to separate your home directory, there is really little point in typing a passphrase
<pie_>
joepie91: meh
<bqv>
i really wish i'd thought of that ...a decade ago? i don't even know how old this key is
ashkitten has joined #nixos-chat
<joepie91>
(I dislike things that brand themselves as "open" and then aren't, at all)
<pie_>
sure
<samueldr>
joepie91: open as mcdonald's
<Valodim>
if it's cached, triply so. if it's convenient enough to type regularly, it will likely be brute-forceable by an offline attacker (side note: pgp doesn't support memory-hard algorithms)
<Valodim>
bqv: you can change or remove your key's passphrase, no problem
<bqv>
tl;dr it's entirely pointless, really
<bqv>
yeah i know
<Valodim>
also if it's a decade old, it's likely using 1024D defaults? if so, you should definitely update. if it's 2048R you should still consider
<bqv>
nono, it was 2048 until i renewed
<Valodim>
you can't renew your primary key, and that's the one that counts
<Valodim>
if by renew you mean update your existing key. if you rotated your primary, you're good :)
<Valodim>
(note to self: I really need to make that PR to get rid of key ids in the maintainers file)
<bqv>
hm, yeah i know all my new subkeys are 4096bit but the primary might still be 2048
<energizer>
Valodim: do you think the whole idea of key agents and password-protecting keys in ~/ is bunk?
<Valodim>
well, not totally
<Valodim>
but in my experience, people feel very bad at the thought of dropping those protections, because they vastly overestimate how efficient they are
<Valodim>
(gotta go :)
<bqv>
exactly
<bqv>
ty, seeya
<__monty__>
I have passphrases on my keys. Figure if someone takes my laptop I'll have enough time to rotate my ssh keys and revoke my gpg keys.
<__monty__>
Not everyone is being threatened by a TLA.
<bqv>
heh
<bqv>
i mean one of the only useful things about having OCD is that i have fundamental issues trusting anyone and anything at this point, so i end up considering this stuff by default even though i frequently mock people for wearing virtual tinfoil hats
<bqv>
at least i'm competent enough that it hasn't turned me into a technophobe
<gchristensen>
orrrrr the flip side is everybody is threatened a base-line amount by TLAs
<bqv>
a healthy amount of danger for your digital immune system
endformationage has joined #nixos-chat
<__monty__>
I was thinking actively. But I agree with your statement if we're talking passively.
<infinisil>
Idea: Make a Nix LSP server, but don't bother trying to make it work under `with <>;` expressions
<infinisil>
So over time, people will automatically stop using `with` to get all the features in all files :)
<bqv>
you don't like the concept of "with" in any circumstance at all, do you
<LnL>
heh
<bqv>
those nix files that have line 2 and 3 be "with builtins;" and "with lib;" are pretty yikes though, in fairness
<bqv>
i think i inherited some
<infinisil>
`with` is convenient, but also causes problems
<samueldr>
with should be used with constraints, like at the expression level imo
<infinisil>
For one, it makes writing any static analysis (which you could really use for an LSP server) much harder
<samueldr>
like `with pkgs; [ hello ]`
<samueldr>
anything that pollutes the more global scope is a footgun
<infinisil>
What if `with <attrs>; <expression with id1 id2 ...>` behaved like `let inherit (attrs) id1 id2 ...; in <expression with id1 id2 ...>`
<infinisil>
Which I think means that you can't nest `with`'s anymore
<LnL>
would be interesting if it only worked for one level of scoping or something
<infinisil>
Yeah that's what I'm going for with these semantics
<bqv>
you raise a good point tbh, thinking back to haskell, there's no with there, but it still feels fine and you just get around it using let bindings to simplify names
<bqv>
or aliases
<energizer>
this feels like a linter-level restriction, not a compiler level one
<infinisil>
With these semantics, I think the restriction should be that you can't define any more variables inside the `with`, so no nested `let`'s or `with`s
<infinisil>
So `with pkgs; [ (let x = 10; in x) ]` would be forbidden
<bqv>
ah yes, my favourite package, `10`
<infinisil>
This means, all identifiers used on the right side of the `with` would come from the attribute that was `with`d
<adisbladis>
with pkgs; with lib; with lib.attrs; someFn someThing
<adisbladis>
What is someFn?!
<bqv>
christ what
<samueldr>
some function
<samueldr>
hopefull
<samueldr>
y
<adisbladis>
I hate this :/
<adisbladis>
I wish I never started using with at all
<bqv>
it's easy with simple scopes like lib.types
<bqv>
but more than that god help you
<samueldr>
whenever I work on things I made that was using with, I'm now tearing it out with proper let binds
<energizer>
infinisil: i think that's backwards?
<energizer>
the thing you really want to prevent is `let x = 5; in with pkgs; x`
<adisbladis>
samueldr: <3
<energizer>
because you cant tell what x is
<LnL>
x is always 5
<infinisil>
energizer: Hm that's a good point
<bqv>
chosen by a random dice roll
<energizer>
LnL: oh you're right
<energizer>
why is that
<LnL>
> let x = 5; in with { x = 42; }; x
<{^_^}>
5
<bqv>
what
<bqv>
nix strikes again
<bqv>
that can't be right
<LnL>
with doesn't change any existing variables
<infinisil>
If it were to have above-suggested semantics that would change
<bqv>
well that simplifies static analysis
<bqv>
check scopes from out to in
<infinisil>
bqv: It's "first check let's, then with's"
<bqv>
i hate this language :D
<infinisil>
Oh, also function arguments
<energizer>
in this case it's not as bad as it looks, you can always tell where things are coming from unless you nest withs
<infinisil>
Which work the same as let's
iqubic` has joined #nixos-chat
<bqv>
but only on wednesdays
<infinisil>
I mean one frequent gotcha with `with` is `{ lib, ... }: with lib; { <try to use options.nix.nixPath>; }` which fails with `options` does not contain the attribute `nix`
<infinisil>
Solution is to use `{ options, lib, ... }:` instead
<cransom>
what would be the pattern to replace a `with pkgs; [ hello bash ]`?
iqubic has quit [Ping timeout: 256 seconds]
<samueldr>
imo it's fine since you're scoped to one expression
<sphalerite>
> let a = "hello"; in let ${a} = "world"; in hello
<samueldr>
what would an attribute set do better, infinisil?
<infinisil>
Then you can do `environment.systemPackages = { inherit (pkgs) hello bash; }`
<samueldr>
what about clashing attribute names?
<infinisil>
Also, you can disable packages with `environment.systemPackages.bash = mkForce null`
<infinisil>
samueldr: Use different ones, also prevents people from installing the same dependency twice
<LnL>
hmm
<bqv>
the package name doesn't have to match the attrname
<infinisil>
Well unless they rename the attribute, which is then their conscious choice
<LnL>
would [ inherit (pkgs) hello bash; ] be ambiguous?
<bqv>
e.g. if this was done by switching out listOf with loaOf then they'd all just be item1 item2 item3... anyway
<bqv>
or whatever the automatic naming thing is
<energizer>
what's the problem with `with pkgs; [hello bash]`? isnt it unambiguous?
<bqv>
i'm on infinisil's train now. mainly because i remember having to do some truly abhorrent hacks to pick the package i want out of a list
<bqv>
which is not necessary if it's an attrset
<cransom>
i was reading the conversation as 'with is completely evil', but i had to scroll back a little further that some are contending against with lib; with pkgs; as being the first lines. which i would agree, that would make life harder.
<energizer>
yes, dont nest withs
<sphalerite>
with import <nixpkgs> {}; with lib; with xorg; with kernel; with linuxPackages;
<samueldr>
that's not even the point, I think, the point is more about scoping the `with` as narrowly as possible
<samueldr>
yeah, I think people dealing in absolutes here isn't that helpful, parcimonious use of `with`, in a narrow scope, is plenty fine
<energizer>
oh that's a good point samueldr
<sphalerite>
yeah agreed
<samueldr>
prepending `with something;` to the whole scope of your file is going to make it harder to reason about the file
<cransom>
sphalerite: you forgot with pythonPackages;
<sphalerite>
`with lib.types;` makes the more complex option type definitions a lot more comfortable
<sphalerite>
cransom: oh yes and haskellPackages
<cransom>
perlPackages!
drakonis has quit [Quit: WeeChat 2.8]
<sphalerite>
texlive!
<energizer>
narrowly-as-possible could be enforced by disallowing `with lib; pkgs.bash`
<energizer>
`with` can only be used if all top-level names in the scope are using it
<sphalerite>
energizer: by having with erase any parent scope?
<sphalerite>
ooooh
<sphalerite>
interesting.
<sphalerite>
Very backwards-incompatible, but interesting.
<energizer>
such as `with pkgs; [ bash python]`
<bqv>
could replace non-unary lib.types members with continuations!
<adisbladis>
OTOH what is with bringing to the table?
<bqv>
lib.types.listOf (t: t.str)
<bqv>
lib.types.listOf (t: t.attrsOf (t: t.str))
<bqv>
no that's worse
<bqv>
nevermind
<sphalerite>
adisbladis: not having to write environment.systemPackages = [ pkgs.vim pkgs.firefox pkgs.zsh pkgs.nautilus ];
<energizer>
[pkgs.python pkgs.bash pkgs.foo] gets old
<energizer>
harder to lint that i think adisbladis
<cole-h>
But yeah, what sphalerite said
<adisbladis>
But imo the pkgs example is a bit contrived
<bqv>
yeah i'm unhappy with strings
<sphalerite>
I don't see how
<adisbladis>
Without breaking the language I don't think there is much we can do to allow it "sanely"
<energizer>
sphalerite: it's possible to avoid backward compatibility by replacing `with` with another keyword like `using`
<sphalerite>
a with that completely replaces a parent scope would be cool though
<energizer>
(incompatibilty
<sphalerite>
energizer: but that doesn't solve the problem: with being awful :p
<energizer>
sphalerite: just deprecate it without breaking it
<infinisil>
We need some replacement for `with`, or make it not as awful
<infinisil>
Can't just get rid of it
<adisbladis>
I think we can
<infinisil>
Well I guess it wouldn't be too bad actually
<adisbladis>
Just ban it :P
<bqv>
well it wouldn't be necessary with a nice healthy type system
<energizer>
are there nix linters?
<bqv>
does nix count?
<energizer>
i suppose it does :)
<infinisil>
Okay so `with` can be problematic when you have `let x = ...; with y; x` because it's easy to be confused where x should come from.
<infinisil>
It can even be problematic with `{ z, ... }: with y; x`, because you might have expected x to be in the argument list, but it's instead coming from y
<infinisil>
Can it be problematic if the file starts with `with { ... }`?
<infinisil>
I guess it might not be problematic in that case, but `with` at the start of the file seems rather useless
<energizer>
what does that do?
<infinisil>
Although `with import <nixpkgs> {};` is a common pattern
<eyJhb>
Is this the with debate again? :p
<adisbladis>
> with { foo="baz"; }; with {foo="bar";}; foo
<{^_^}>
"blablablabl"
<adisbladis>
Ummm
<bqv>
what
<LnL>
haha :D
<adisbladis>
> foo
<infinisil>
adisbladis: (the bot has let definitions in scope)
<adisbladis>
> with { fooo="baz"; }; with {fooo="bar";}; fooo
<{^_^}>
"bar"
<infinisil>
samueldr: I mean it's not too bad if you don't have another with in the file, since you know that all identifiers without a `let` come from the initial `with`
<infinisil>
I frequently use `with import <nixpkgs> {};` to test out something quickly
<adisbladis>
> let fooo = "bar"; in with { fooo="baz"; }; fooo
<{^_^}>
"bar"
<adisbladis>
with is like... Super confusing.
<samueldr>
sure, testing something quick it's fine, but I wouldn't commit code with non-narrow withs
<eyJhb>
But useful at times, right?
<samueldr>
(anymore)
<adisbladis>
eyJhb: I'd say no.
<adisbladis>
It's really not worth it.
<ldlework>
i with builtins
<eyJhb>
Though there is some REALLY bad naming in Nix because of it
<samueldr>
only siths deal in absolutes (said like a true sith)
<ldlework>
because why do i even have to do that
<ldlework>
lol
<eyJhb>
I guess in the whole big it isn't
<eyJhb>
But holy hell some of the lib naming is bad
<infinisil>
eyJhb: Like?
<ldlework>
i really wish builtins were automatically with'd
<infinisil>
ldlework: Some are!
<ldlework>
right?! wtf?!
<infinisil>
Like `map`, `fetchGit`, `fetchTarball`
<ldlework>
as is, it's just a secondary mysterious lib
<eyJhb>
e.g. lib.attrSets.zipAttrs, zipAttrsWith, etg.
<cole-h>
and toString
<bqv>
i hate this language :D
<ldlework>
with a second documentation
<ldlework>
lo
<energizer>
so confusing infinisil
<eyJhb>
Remove the Attrs, I am already working on attrsSets
<ldlework>
i don't hate the language so much anymore
<eyJhb>
I do not need the repetetive strings
<gchristensen>
eyJhb: it used to be the lib was a big attribute set of all the functions, and it still is
<gchristensen>
but you could get them with a more qualified name if you wanted
<bqv>
my hate for nix follows a spiral trajectory. at first it was the bane of my life, then i grew to like it, now it flipflops based on the time of day
<cole-h>
I wish Ratchet & Clank was on PC :(
<infinisil>
Nix isn't perfect, but I still think it's a pretty nice language overall :)
<samueldr>
cole-h: apparently pcsx2 is pretty good with it
<adisbladis>
infinisil: Yes :)
<adisbladis>
People look at me weird when I say I like it
<gchristensen>
infinisil: me too
<cole-h>
samueldr: But I want to play the new one coming out for the PS5 :(
<gchristensen>
it was a nice baby's first FP
<bqv>
i mean if the alternative is chicken scheme, i can understand liking it
<samueldr>
cole-h: now you're being difficult
<samueldr>
cole-h: we have $THING at home
<cole-h>
samueldr: :D
<joepie91>
samueldr: my experience with PCSX2 has been... different :P
<samueldr>
I said *apparently*!
<joepie91>
I actually bought a used PS2 almost specifically for Ratchet&Clank
<cole-h>
samueldr: Man I just really wanna get a PlayStation because most of their games look fantastic
<joepie91>
(they're not that expensive)
<samueldr>
joepie91: I'm basing this off the last pcsx2 development update
<cole-h>
But that's a pretty big chunk of change for an unemployed student...
<joepie91>
ah, my testing was like a year ago
<bqv>
i remember when running pcsx2 required a really high spec computer
<infinisil>
What if we put together a Nix language committee, which gets together to create a standard for the Nix language
<samueldr>
I still have my ps2, and have freemcboot so I don't have to buy overpriced used games
<joepie91>
infinisil: ++
<samueldr>
design by committee!
<infinisil>
The standard Nix wouldn't be fully backwards compatible with current Nix, but we could eliminate all warts like this
parsley936 has quit [Remote host closed the connection]
<bqv>
honestly i just want to see ptyx become a reality
<bqv>
but i have no idea how to support that ideology
<bqv>
effectively
parsley936 has joined #nixos-chat
<samueldr>
bqv: might need some info about ptyx, searching about that term gives me nothing useful
<infinisil>
Who would potentially want to be part of a Nix Language Standard Committee?
* infinisil
lifts hand
<cole-h>
Eelco
<cole-h>
:P
<samueldr>
oh well, it's even named from that poem that my search results were about lol
<bqv>
i would consider it, but i'm hardly a nix person
<eyJhb>
Ohh I hate phishing emails
<eyJhb>
Especially company policy shit, with misinformation
<cransom>
focus group to consider drafting a proposal to form a committee which may propose guidelines towards the next nix language evolution.
<eyJhb>
gchristensen: So not possible to remove?
<eyJhb>
*simplify
<bqv>
in fact, if the language standard committee did have proper typing as at least a wishlist goal, i'd definitely be up for that
<infinisil>
bqv: I don't think typing is realistic for Nix
<infinisil>
Like, actually useful typing
<bqv>
don't shatter my dreams like this
<infinisil>
It would be very bolted on
<bqv>
it worked for python :p
<bqv>
(did it?)
<cole-h>
For some definitions of "worked," probably
<bqv>
:D
<energizer>
it absolutely did, yes
<gchristensen>
eyJhb: remove what?
<energizer>
(not being facetious, mypy is good.)
<eyJhb>
zipAttrs -> zip
<infinisil>
Hm, I can maybe see a very simple type system being useful
<adisbladis>
Mypy is an impressive feat
<infinisil>
One that only has the primitive types
<infinisil>
So no type for "an attribute that has the foo key", but just "an attribute set"
<infinisil>
I guess the ones returned by builtins.typeOf
<gchristensen>
oh so not as robust as python's type system
<bqv>
surely with a proper overarching language committee it might be reasonable to have breaking changes, so it could be within scope to iterate slowly towards a more developed type system
<energizer>
i'm not convinced that the goal of nixlang is sufficiently circumscribed. package definition is a different task from system configuration, and these two objectives have different language needs
<infinisil>
bqv: I think a language standard committee should work towards making the language simpler, removing inconsistencies, slimming it down to what's really needed
<energizer>
trying to do them both in one language might not be a good idea
<bqv>
hmm
<gchristensen>
I feel that defining a system and defining a package is remarkably similar
<infinisil>
bqv: Though I guess I could see new features being a secondary goal after we got a core language defined
<bqv>
there was a discussion on one of peti's streams the other day about rust being a suitable language for every scenario, maybe we should just see if we can make nix a rust target :p
<infinisil>
I guess I don't really see Nix adapting new features, but maybe that's just because it's always been that way :P
<infinisil>
bqv: You mean transpiling Nix -> Rust?
<infinisil>
s/transpiling/compiling
<bqv>
nah, using rust as nix
<gchristensen>
nix is already a compiler
<infinisil>
bqv: Sooo, you'd have to "compile" nixpkgs?
<bqv>
llvm IR -> nix eval cache, perhaps
<bqv>
infinisil: :D
<infinisil>
Reminder that nixpkgs has 18035 Nix files
<infinisil>
Wait that's a bit inflated
<bqv>
in case it wasn't obvious i am being extremely facetious here
<DigitalKiwi>
lol at rust being suitable for everything
<bqv>
but people use rust for web apps these days
<bqv>
i feel like it's not even that outlandish
<infinisil>
Different languages for different needs
<infinisil>
There can't be one for everything
<adisbladis>
Don't you know PHP is the one true language
<bqv>
think of it as configuring the package installation process
<DigitalKiwi>
bqv: which lecturer though
<bqv>
colin
<samueldr>
DigitalKiwi: I don't think I need any of those :) I'm stating this *with* experience
<gchristensen>
samueldr ugh.
<samueldr>
like, I'm looking at $bigwebsite and it's always done in the worst way that'll cause so many issues
<samueldr>
and also, soooooo many websites fail absurdly with non-integer scaling of pixels
<DigitalKiwi>
bqv: ah ok
<DigitalKiwi>
samueldr: no i mean look at how much there is. modern web dev is a mess
<samueldr>
almost nothing in that is necessary lol
<DigitalKiwi>
HOW CAN YOU BE A FULLSTACK DEVELOPER
<samueldr>
first, by understanding there is no such thing as full stack developer
<adisbladis>
DigitalKiwi: Hey, I implement bugs in all layers of the stack.
<samueldr>
in fact, anything bootstrap 3 based (haven't verified 4) will have hilariously broken layouts at their breakpoints with non-integer scaling
<samueldr>
not only bootstrap 3, anything that assumes they can do something like <969 >970 as a breakpoint
<samueldr>
pro-tip: 969.5 falls in-between
<bqv>
i was a full stack developer once
<samueldr>
I think one of the main issues with fullstack development practices, is that "DOM" and "UX" has been forgotten, and left as an implementation detail
<bqv>
it preceded a total mental breakdown :D
<DigitalKiwi>
same, same
<samueldr>
UX done by UI design people, and DOM by whoever is forced to implement it
<DigitalKiwi>
lol burnout what's that
__monty__ has quit [Quit: leaving]
<adisbladis>
Fun fact: "Full stackare" in Swedish is basically "drunk sod"
<Ashy>
Jim Keller leaving Intel, wonder where he'll go next
<samueldr>
adisbladis: full is drunk? is it full as in a loaned word, or a native word coincidentally meaning "full" too?
<joepie91>
DigitalKiwi: a good rule of thumb is that actual full-stack developers do not call themselves fulll-stack developers, they are just "developersf"
<samueldr>
I mean, I kinda assume this be cause "plein" which is the french for "full" can be used to describe someone that's drunk
<joepie91>
developers*
<adisbladis>
Yeah, full is drunk :)
<samueldr>
joepie91: and often I've seen that those that are "actually full stack" know exactly where in the stack their limitations are
<bqv>
which stack though
<samueldr>
bqv: the full one
<samueldr>
didn't you listen?
<joepie91>
DigitalKiwi: also, that 'web skills' thing is nonsense
<bqv>
ah, yes
<adisbladis>
:D
<joepie91>
it's just an enumeration of stuff you could use
<joepie91>
and putting 'classes' under 'fundamentals' for javascript is, uh, kinda laughable :)
<samueldr>
joepie91: CSS is { color: "#ff0000"; } in JS, now
<samueldr>
so it makes sense that classes is under JS!
<samueldr>
(OBVIOUSLY /S)
<joepie91>
it also manages to list 4 different bundlers, of which two are pretty obscure, and none of them is the mother of all bundlers that remains the best option available today
<joepie91>
so uh :P
<joepie91>
this looks like a mix of the MDN sitemap and a "top 100 hackernews frontpage"
<joepie91>
<samueldr> joepie91: and often I've seen that those that are "actually full stack" know exactly where in the stack their limitations are
<joepie91>
right
<DigitalKiwi>
joepie91: i know that's why it's funny
<Shados>
joepie91: ...rollup? Pretty sure I remember that being the best option last time I was poking web stuff.
<joepie91>
Shados: it has never really been the best option. its claim to fame was "eliminates unnecessary exports!" which was already possible *without* rollup, rollup just had it as a default setting (and had various implementation errors in dealing with ESM that meant it produces non-standards-compliant code)
<joepie91>
somewhat ironically the same way Webpack got popular; it didn't do anything actually better than Browserify, it just had different defaults
<joepie91>
it seems that this is the origin story of almost every bundler since Browserify; someone did not understand the capabilities of the existing tools or found the API too awkward, and instead of rolling a small usability wrapper or contributing fixes... they just made a new bundler
<joepie91>
like, whole fresh implementation from scratch
<joepie91>
it's bizarre.
<Shados>
To be fair, "fresh implementation from scratch" describes about 95% of the JS ecosystem
<joepie91>
it doesn't really, though
<joepie91>
a ton of things that look new are just composed of a lot of older parts
<joepie91>
it's the same deal with task runners
<joepie91>
but there's a weird obsession with specifically writing build tools from scratch
<joepie91>
(though at least there's an excuse; none of the existing options actually work well, for varying "bad design" reasons)
<joepie91>
anyway, frankly the only bundler worth caring about since Browserify is Parcel v2, since they've actually gone back to the drawing board, mapped out the problem space properly, drew up an RFC, sensible design, etc.
<joepie91>
everything besides that is just a bad reinvention of already-solved problems
<infinisil>
Hm, I guess programming is mostly just adjusting existing solutions to work with in the context of your project
<infinisil>
Like, there's a million djikstra implementations, but if you wanted one in your new language, you need to implement that still
<joepie91>
infinisil: I would slightly rephrase that into "assembling existing pieces to work within the context of your project"
<infinisil>
Could there be an abstract "problem -> solution" description?
<joepie91>
and sometimes you have to make your own pieces
<infinisil>
Do you though?
<infinisil>
If you had a knowledge base of everything somebody already solved in the past
<infinisil>
The chance of you needing something new are very slim
<ashkitten>
i don't understand bundlers
<joepie91>
infinisil: I mean, that is *basically* the premise of npm
<ashkitten>
like, why?
<bqv>
ashkitten: you sound like you'd make a great web dev
<bqv>
(not sarcasm)
<joepie91>
and it is doing pretty well at that, but you still sometimes need to make your own things
<ashkitten>
no
<joepie91>
ashkitten: because browsers don't do modules (and never will performantly, due to inherent issues with network roundtrips), but you still want to be able to use modules
<joepie91>
literally all a bundler is is "takes a codebase that uses modules, and turns it into one big JS file that can be shipped to a browser / database / other environment without a native module system"
<samueldr>
it all depends how deep you want to go into the "scripting" pool, I guess
<samueldr>
(I purposefully said "scripting" as you can end up doing not-javascript)
<ashkitten>
joepie91: so it's a compiler, but for scripts?
<ashkitten>
that sucks
<joepie91>
ashkitten: no... "scripts" doesn't make sense as a descriptor to begin with, and it doesn't really transform the application code itself at all
<bqv>
well it can
<bqv>
with tree-shaking etc
<joepie91>
it just wires it together slightly differently in a runtime pseudo-module-system
<ashkitten>
okay
<ashkitten>
that still sucks
<bqv>
lmao
<joepie91>
ashkitten: one sec
<ashkitten>
just gimme rust in the browser without js shims, it's all statically compiled wasm no modules needed
iqubic` has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
<bqv>
tbh i'd like that timeline
<ashkitten>
hell, you could probably even compile js to wasm
<bqv>
at least one part of the web trifecta of **** would be solved
<ashkitten>
would that solve the need for a bundler that takes multiple gigabytes of ram and 15 minutes to run in order to "wire it all together slightly differently in a runtime pseudo-module-system"?
<joepie91>
ashkitten: bundlers do not "take multiple gigabytes of ram and 15 minutes"
<bqv>
it would solve the problem that caused the need for a bundler
<ashkitten>
joepie91: tell that to mastodon
<bqv>
lmao
<joepie91>
ashkitten: if your bundling setup takes that long, it is likely because it is calling out to some external tool that takes a ton of time
<joepie91>
bundlers are super simple conceptually
<Shados>
yeah, they generally run in under a second
<bqv>
presumably you want a bundler-minifier with tree-shaking
<bqv>
that will not run in under a second
<ashkitten>
joepie91: i had to upgrade the server running the masto instance i administrate, because i couldn't run rails assets:recompile while the server was running
<ashkitten>
which is ridiculous
<bqv>
just bundling would lead to stuff you really don't want being served in production
<joepie91>
bqv: tree shaking is *extremely* ovevalued
<joepie91>
this is what a bundler does
<joepie91>
overvalued(
<joepie91>
gah
<joepie91>
overvalued***
<bqv>
)
<bqv>
sorry, emacs was unhappy with that
<ashkitten>
okay
<joepie91>
ashkitten: right, I don't doubt that, but it almost certainly wasn't the involvement of a bundler that made that happen unless you ran into some *serious* bug
<bqv>
minifying still requires parsing the bundled result, that can't necessarily always be fast
<joepie91>
parsing JS is fast
<joepie91>
it's more likely the optimization steps that are slow
<joepie91>
but still shouldn't be 15-minutes-slow
<joepie91>
I think I'll actually try and run the Mastodon asset recompile at some point because it has always boggled my mind how people managed to end up with 15 minute build times, and I've never been able to reproduce it in my own projects (which certainly don't lack in complexity)
<bqv>
the reality is that it does, i remember situations where writing just small bits of purescript code i had the bundler take 3-4 minutes to produce a 1mb file
<joepie91>
so if that's a reproducible case of this...
<joepie91>
bqv: minifying absolutely should not take that long
<bqv>
that's not a fault of purescript, nor were there any external processes
<Shados>
uh
<Shados>
Why were "small bits of purescript" producing 1mb of javascript? Does it have a runtime?
<bqv>
nope
<bqv>
well, yes and no
<bqv>
but mostly no
<bqv>
it's almost a literal translation but it comes with a standard library
<bqv>
you can have a runtime *in* purescript
<bqv>
(see halogen etc)
<ashkitten>
joepie91: it's probably because mastodon sucks
<bqv>
i imagine with mastodon it actually is running external things like image processors
<joepie91>
which matches up much more closely with real-world minification runtimes I've seen; typical is 10-60 seconds for production bundles
<joepie91>
occasionally 2 or 3 minutes for reaaaaaaally big bundles
<joepie91>
but 1MB is definitely not reaaaaally big
<joepie91>
(not after minification either)
<joepie91>
so yeah, I don't know what Mastodon is doing that's taking so long...
<joepie91>
but it's probably neither bundling nor minification :P
<ashkitten>
ugh okay i just did a hack i think might work to make nix build mastodon, which is just moving the field resolution for kind-of from resolutions to dependencies
<joepie91>
oh, exception case: unless they are using google's closure compiler crap in which case I 100% believe that it is spending all that time minifying
<ashkitten>
i figure it'll do the same thing
<joepie91>
closure compiler is... special. it has fairly crazy analysis capabilities, and it does produce very small bundles, but it's also well beyond the point of diminishing returns
<ashkitten>
joepie91: okay but are you talking about speed or size
<ashkitten>
because both matter in different ways
<joepie91>
ashkitten: not entirely sure what that question is referring to - talking about speed or size where?
<ashkitten>
nobody thinks about the people with slow internet
<ashkitten>
joepie91: speed of execution, size of result
<joepie91>
right, but in what context? I don't know what statement of mine this is supposed to attach to
<ashkitten>
diminishing returns
<joepie91>
I said a lot of things :p
<joepie91>
oh, right
<ashkitten>
you said both that it produces very small bundles but that it's beyond the point of diminishing returns, and those statements would seem to conflict
<joepie91>
so the thing with closure compiler is that it used to have a serious advantage in resulting bundle size, and that justified the slow analysis speed to people... but other minifiers have pretty much caught up AFAIK without the minification speed penalty
<joepie91>
so while I think CC still technically produces smaller bundles, I'm not sure the difference matters much, especially when you take into account other assets
<joepie91>
and for that slightly smaller bundle size you are now looking at easily a 10x performance penalty
<joepie91>
(in minification speed)
<bqv>
nah, envrc doesn't fix my issue, still can't use shell.nix over tramp
<joepie91>
at least last I looked at CC
<ashkitten>
i've started encoding all my images as interlaced pngs, it's really neat
<joepie91>
CC also has a bit of a habit of actually breaking code by over-eagerly trying to optimize stuff, which is another count against it
<bqv>
oh the progressive png stuff is so cool
<bqv>
i wish it was enforced by law
<joepie91>
all of that plus the high build chain complexity makes CC not a great option in most cases
<ashkitten>
i heard that theres some new browser api or whatever to support having progressive images in some ridiculous overengineered way, where you actually have to generate all stages of your image separately
<bqv>
exectutive order? *looks at trump*
<joepie91>
ashkitten: thinking of <picture> or srcset?
<ashkitten>
on another note we're finally getting around to setting up the server we've had on our coffee table for a year
<joepie91>
work in progress though
<ashkitten>
gonna slot in some ssds
<ashkitten>
move all my stuff to it
<ashkitten>
gonna be great
<samueldr>
there's no 56kbps setting on the firefox throttling options, but it's 15s on "regular 2G", with ~0.5s for the page, the rest for images, for mobile nixos' homepage (on which I should begin thinking about paginating the news items)
<ashkitten>
which is good because uh, my current server hosted by kimsufi has such slow disks half my systemd services time out on a reboot
<joepie91>
samueldr: I've always wondered why there is no 56k option
<ashkitten>
i think that might be partly due to the ashift on those disks not being correct
<samueldr>
and it's apparently not configurable, that's annoying
<samueldr>
probably some mindset of sillycon valley
<samueldr>
it's surprising there's still GPRS and 2G though
<samueldr>
(in that mindset)
<joepie91>
that's why it doesn't make sense to me :P
<samueldr>
chrome's configurable
<Shados>
ashkitten: ZFS should pick the correct ashift pretty much *always*, unless you set up the pool a good 5-6 years ago
<ashkitten>
Shados: it's ashift=9, very possible that the disks are lying about their native block size
<ashkitten>
i've heard extremely varying opinions about whether or not zfs picks the right ashift
<ashkitten>
and the common advice is that too high is much better than too low
<Shados>
Yeah, many do. ZoL ships with a whitelist of lying drives, which at this point is pretty complete.
<ashkitten>
shrug
<Shados>
It *used* to be a major issue during the initial move to 512b sector drives because the whitelist didn't exist or was incomplete, but again that was years back
<ashkitten>
either way my disks are way too slow
<ashkitten>
so it'll be a nice upgrade to have ssds
<ashkitten>
(and be on hardware i own)
<Shados>
bleh, *from 512b
<Shados>
but yeah, kimsufi drives are notoriously often ancient and slow
<ashkitten>
i'll probably end up getting some cheap 1TB ssds
<samueldr>
peculiar
<samueldr>
all my content blocker extensions seem to have stopped working
<samueldr>
on firefox
<samueldr>
they are loaded, I see the "block element" of µblock, but they are as good as neutered
<samueldr>
and unsurprisingly: wow the web without a blocker is horrible
bqv has quit [Remote host closed the connection]
bqv has joined #nixos-chat
<joepie91>
samueldr: oh, then your extension process crashed
<joepie91>
restart firefox and it'll work again
<samueldr>
other extensions are seemingly ok :/
<samueldr>
only blockers seem affected
<samueldr>
(but yeah, I'm restarting firefox)
<joepie91>
it's specifically the page-injected stuff that breaks then I believe
<samueldr>
I have a page-injected extension working fine :)
<samueldr>
that's why I'm puzzled
<joepie91>
not all of the extension code actually runs in the extension process afaik
<joepie91>
hm, weird
<samueldr>
annoying that there's no "your extension crashed" like on chrome
<joepie91>
yeah
<samueldr>
and yeah, a restart fixed it
<joepie91>
Firefox generally has some work to where robustness is concerned
<joepie91>
try having a buggy GPU
<joepie91>
it's a nightmare :P
<samueldr>
I won't
<samueldr>
if that's okay with you
<samueldr>
I have enough of buggy $everything here
<joepie91>
there'll just be constant broken pipes to the GPU process in your logs with no indication in the UI other than all pages suddenly staying blank and all UI non-interactive, as if it's just about to start doing something but won't
<joepie91>
heh
<joepie91>
well actually it was probably the mobo bug
drakonis has joined #nixos-chat
<joepie91>
the same one that led to me running anything other than `radeon` resulting in memory corruption
<joepie91>
that only took me a few months to track down
<joepie91>
apparently Something about the mobo was fucked and when dynamic power management on either the CPU or the GPU was enabled, it would randomly overrun GPU-allocated buffers in RAM
bqv has quit [Ping timeout: 260 seconds]
<joepie91>
far as I can tell the allocation strategy in `radeon` was different enough that those overruns would fuck up other GPU buffers and that was not a big deal, just some visual corruption
<joepie91>
err, sorry, it was fglrx, not radeon
<joepie91>
amdgpu, amdgpu-pro, and radeon however... those would result in it overrunning random chunks of system memory, sometimes application, sometimes kernel
bqv has joined #nixos-chat
<joepie91>
so you get all the symptoms of a bad RAM stick but with none of the reproducibility in memtest
drakonis_ has quit [Ping timeout: 272 seconds]
<joepie91>
ANYWAY the only way to run without memory corruption was to disable power scaling for the CPU in the BIOS and for the GPU in the kernel boot flags, and that only worked with `radeon`
<joepie91>
so that was fun
<joepie91>
samueldr: so yes I would strongly recommend NOT having that if you value your time and sanity :D
<ashkitten>
it's very weird having the process of updating my system be exactly the same as updating a codebase's dependencies
<ashkitten>
but it's also very cool that i basically know that if i can build the new system it'll almost always work when deployed
<danderson>
joepie91: which motherboard is this? Asking for a me so I don't buy it :)
<joepie91>
danderson: unless you were planning on buying an AM3 space heater, I wouldn't worry about it :P
<danderson>
ah, AM3. Yeah, I'm good :P
<danderson>
at this point if I decide on a new build, it'll be AM4 or sTRX4, depending on how poor I'm feeling
<joepie91>
but it was the ASRock 970 Pro3 R2.0
<joepie91>
to my amazement, the damn thing is still being sold
<joepie91>
which apparently had (obscurely) known compatibility issues with AMD GPUs