<andi->
spinning rust usually degrades over time. Slowdowns are to be expected ;-)
<cole-h>
It's not even that old x) It's like a year
<cole-h>
5GiB/400GiB :')
<andi->
ouch
<andi->
did you apply some `perf` yet to see where the time is being spent?
drakonis2 has quit [Ping timeout: 256 seconds]
<cole-h>
No, I'm too scared :)
<andi->
Can't you just copy the data from a faster backup? ;-)
<cole-h>
I sure wish I could :)
<cole-h>
Would you like to sponsor that faster backup? ;^)
<andi->
I usually trade backup capacity. Requirement: >100km distance from Frankfurt
<cole-h>
Well, I am West Coast, so I think that qualifies
drakonis_ has joined #nixos-chat
<andi->
You have ~1.5TB of spare capacity? :-)
drakonis has quit [Ping timeout: 260 seconds]
<cole-h>
Nope x)
<gchristensen>
I'm writing about pivot points (like nix-build's symlink outputs, and /run/current-system) and am remembering this job where we hard coded the IP of a database server in 50k wordpress configs which we decided to fix with sed... but it turned out we got it wrong and broke all of the sites in a few min
<gchristensen>
and thinking, like, man, dns woulda been cool
<cole-h>
...
<cole-h>
lol
<samueldr>
confirmed, tumblr accounts are all wordpress blogs
<gchristensen>
the reasons I love NixOS come from not a point of theoretical good taste
<gchristensen>
but because of all the nightmares I saw
<gchristensen>
samueldr: hah
<gchristensen>
another nice lesson from that co was w.r.t. api safety. a VERY common bug was (if (!db_has_record_for("foo-bar")) { db_add_record_for("foo_bar", ...); }
<gchristensen>
except the data tructure stored was [{"name": "foo_bar", ...}, {"name": "foo_bar, ...}]
<gchristensen>
run that on every pageload for an extremely popular website and your record grows infinity {"name": "foo_bar, ...} and all of a sudden your individual queries are entire megabytes worth of data
<gchristensen>
mysql transaction logs blow up incredibly fast, fast enough that the database leader is forced to cycle logs faster than the replica can ingest them
<gchristensen>
and then your replica is out of sync and has to be recreated from scratch, via a very painful restoration process using non-atomic filesystems
<gchristensen>
a number of problems here, but it all started with a - vs. a _ in a 2-stage, check-then-set API
<gchristensen>
that is when I learned the truth that database replicas have to be more powerful than the database leader... for the very obvious reason that they are doing more work than the leader.
* gchristensen
rants
<lovesegfault>
I wrote literally the most evil piece of Rust code I've seen today
<emily>
so while openssh upstream is deprecating SHA-1 ssh-rsa host keys (only host keys, not user key pairs, I found out), it turns out that NixOS has holdover config re-enabling DSA keys from February 2016 even though OpenSSH upstream deprecated them a major version ago :|
<emily>
for all those SSHv2 hosts with DSA keys only in the wild I guess
<emily>
(7.6 dropped SSHv1)
<emily>
(after 2016, to be clear, but still years ago now)
<samueldr>
emily: maybe something to bring up on -dev, there's a bunch of nixos devs that don't hang out here, maybe some of them would be concerned or like to know about that?
<emily>
I assume it's just holdover legacy infra waiting for a PR to remove, saying this partially so I don't forget to actually open such a PR...
<samueldr>
probably ye
<emily>
but also ummm the last time I touched ssh stuff I got like 50 comments from the same person trying to convince me to revert it so I'm kind of scared that if I touch it I will find all the people out there actually using DSA keys in 2020
<emily>
it doesn't really harm anything unless you see a DSA key fingerprint and are like "yep sure let's TOFU that" I guess
<samueldr>
hmmm, how great would it be to be able to say "cp file ${terminal.tab0.pwd}/", or something similar
<samueldr>
at least, I would find that really neat
<gchristensen>
!
<gchristensen>
love that
* samueldr
needs to figure out how to better nerd snipe others
waleee-cl has quit [Quit: Connection closed for inactivity]
<samueldr>
wow, what a friend just got
<samueldr>
>> We're writing to let you know that on May 27, 2020, we sent you an email announcing that you could now transfer your Google Play Music library to YouTube Music. Unfortunately we haven’t yet finished rolling out access to the transfer tool in Canada, so you can’t transfer just yet, but we'll be sure to notify you when it becomes available.
<gchristensen>
....huh
drakonis1 has quit [Quit: WeeChat 2.8]
<ashkitten>
someone should make a nix powered shell that lets you eval nix code inline
<ashkitten>
(and not just with `nix eval`)
<energizer>
`nix repl`?
<gchristensen>
"In fact, it's possible that some of you weren't in primary school yet when [...] 2002" *feels nauseous*
<gchristensen>
I mean it is fine it just is a reminder
<elvishjerricco>
I wish there was an easy way to *test* a time machine backup. I've been very impressed with how easy it's been to just let it backup to a server, with the occasional zfs rollback to fix some macOS derp. But I don't actually know that I could realistically restore from this backup if it came down to it...
endformationage has quit [Quit: WeeChat 2.6]
<pie_>
elvishjerricco: VM?
<pie_>
wont get you all the way but...
<elvishjerricco>
Isn't making macOS VM's kind of a massive pain? :P
<pie_>
probably. idk.
<gchristensen>
depends how much you want to do with them automatically
<elvishjerricco>
gchristensen: nothing really. Just wanna see if I ca
<elvishjerricco>
If I can restore a new mac from my backup
<ashkitten>
gchristensen: in fact i was only 2 years old :p
<gchristensen>
ashkitten: :D
<gchristensen>
(aren't I 12?)
<ashkitten>
are you?
<gchristensen>
no, but my parents often say "aren't you 12?" after I do something neat.
<gchristensen>
~ where did the time go ~
<ashkitten>
lol
<gchristensen>
cool... my talk came in at 38 minutes. time for bed.
<gchristensen>
(goal: 40)
drakonis_ has quit [Read error: Connection reset by peer]
drakonis_ has joined #nixos-chat
drakonis has joined #nixos-chat
drakonis1 has joined #nixos-chat
drakonis_ has quit [Read error: Connection reset by peer]
<eyJhb>
Back on the road to replace one of the monitors...
drakonis has quit [Ping timeout: 246 seconds]
KeiraT has quit [Ping timeout: 240 seconds]
KeiraT has joined #nixos-chat
<sphalerite>
gchristensen: I heard a lot of people are angry at 12 though
parsley936 has joined #nixos-chat
<eyJhb>
Jesus christ
<eyJhb>
The other had the same as well
<eyJhb>
So thrid monitor now
__monty__ has joined #nixos-chat
<eyJhb>
__monty__ just missed the small rant
<__monty__>
More display fun?
<eyJhb>
Drove 1.5 hours to return the display from yesterday, got a new one
<eyJhb>
New scratches
<eyJhb>
They have small balls of dirt on the screen, which just scratches it
<__monty__>
>.<
<eyJhb>
So... Thrid screen now!
<eyJhb>
And I didn't bring the other one, because now they are offering money back so I can buy a new one
<eyJhb>
But then I would have two different screens and that won't work
<__monty__>
I'm starting to think you should just get one of those ultrawide monitors.
KeiraT has quit [Ping timeout: 240 seconds]
<eyJhb>
Well.. In theory I can actually connect 5 + 3 + 2 monitors (I think). Maybe I just need them all
<__monty__>
Yes, 3x the monitors 1/3 times the problems, wait...
<eyJhb>
Mo' monitors!
KeiraT has joined #nixos-chat
drakonis1 has quit [Read error: Connection reset by peer]
drakonis1 has joined #nixos-chat
drakonis has joined #nixos-chat
drakonis1 has quit [Ping timeout: 272 seconds]
drakonis1 has joined #nixos-chat
drakonis has quit [Ping timeout: 246 seconds]
drakonis has joined #nixos-chat
drakonis1 has quit [Ping timeout: 272 seconds]
<hyperfekt>
i'm running a different distro in docker and installing things is sooo slow ^^ i've been pampered by nix
<bqv>
People born in 2002 are adults now
<bqv>
aaaaa
<MichaelRaskin>
People who have never seen a world where «the enemy» is not completely free to ensure arbitrarilty absurd security measures are used?
<gchristensen>
MichaelRaskin: yeaaaaaaaah!
<MichaelRaskin>
I guess even publicising The Moscow Quarantine Epic Fail won't make people notice what side the «security» is playing…
<MichaelRaskin>
(Moscow: let's introduce electronic passes and … check them for 100% of people entering the subway. Queue: infinitely long. Official case count 2 weeks later: jumps)
<MichaelRaskin>
The only difference with a typical security control line is that unlike terrorists infection is actually present around…
waleee-cl has joined #nixos-chat
<eyJhb>
Sweet sweet 2k screens
<eyJhb>
sphalerite: The dark side has been joined once more :(
<sphalerite>
eyJhb: nooooooooooooo
<sphalerite>
also: what do you actually mean by 2k?
<eyJhb>
Well, I heard someone call the res for 2k, but I guess not quite. QHD then :p
<eyJhb>
But not sure how well my computer handles it tbh :p
CRTified[m] has joined #nixos-chat
<CRTified[m]>
Hi, I have a problem with audacity and pulse, maybe someone here has an idea. When starting, I get this output: https://gist.github.com/CRTified/d424e8c07a1dd8590b1a69855250d549 - and from there on, I can't use the microphone input of my onboard sound card. Looking at the VU-Meter in pavucontrol suggests that there is just ~1 sample/second coming from the soundcard, and no application can record anything with it. I
<CRTified[m]>
can also only choose ALSA for audio interfacing, although I use pulse. There is also no pulse entry, but just a large list of actual audio hardware available in my system. I'm on nixos-20.03.1950.48723f48ab9 as my main channel right now
<CRTified[m]>
I didn't ask there as I guess that it's more a problem of pulse/audacity, and less one of nixos?
<eyJhb>
No clue :D Just wanted to ensure you where aware :) No offense meant. But sorry, I can't help at all. Everything audio on my machine is hell to begin with...
<CRTified[m]>
To be fair: I'm planning to do some VLF stuff, so I just want to use audacity to peek at the waveform and remove unnecessary stuff from recordings
<sphalerite>
eyJhb: so 2560x1440? The same as the new ones have?
<sphalerite>
eyJhb: lol obligatory lego
<eyJhb>
Yeah, yours have that too, right sphalerite ?
<eyJhb>
Remember I work at LEGO :p
<eyJhb>
Want something waaay cooler?
<eyJhb>
*to see*
<sphalerite>
eyJhb: wait, you do?? I just said "obligatory lego" because you're Danish :p
<eyJhb>
Special contract, hired to work with cyber security :p But yes! :D
<eyJhb>
20 years anniversary gift from LEGO to all its little bees
<sphalerite>
nice
<eyJhb>
Best part about getting a contract in November
<eyJhb>
Christmas gifts
<adisbladis>
eyJhb: Nix at LEGO? ;)
<eyJhb>
But sphalerite , your screen is 2560x1440, right? :p
<eyJhb>
adisbladis: I am actually pushing it!
<eyJhb>
Trying to at least
<eyJhb>
And they are actually at a point where it might make sense. So if anyone wants to pith it to them, I might know the people who can make it work.
<eyJhb>
The only problem is, that they need to learn it then, and have some serious nixops :D
<adisbladis>
Whoop whoop :)
<eyJhb>
But they are heavy users of MS
<sphalerite>
eyJhb: yes it is. Why?
<eyJhb>
sphalerite: just wanted to make sure! But do you have a single 27" monitor?
<sphalerite>
eyJhb: sort of. I have the 14" one in my laptop, 2560x1440, the new 27", also 2560x1440, and the 27" one I already had, which is 3840x2160
<eyJhb>
5 monitors?
<eyJhb>
Active at once?
<sphalerite>
what? No
<sphalerite>
3 monitors in total
<sphalerite>
and I'm not using the 4K one
<eyJhb>
Ah
<eyJhb>
Makes sense...
<eyJhb>
I mostly use the third one for stuff (videos)
<sphalerite>
yeah, I'm almost certainly going to sell the 4K one
<sphalerite>
not yet sure whether to replace it with a P2720D or with money in my bank account and space on my desk
__monty__ has quit [Quit: leaving]
<eyJhb>
Do you have a VESA mount sphalerite ?
<eyJhb>
That saves a lot of space
<savanni>
I know this might be a basic question, but if I have two different channels set up on my root account, how can I specify in `configuration.nix` that I want to get a package from one channel and not the other? In my case, I've got 20.03 and unstable in my channel list, and I'm wanting to install one package from unstable.
<savanni>
Err... okay, this is weird. I'm getting zoom from the unstable channel, and nix is saying that I need to add allowUnfree to my configuration file. But... allowUnfree is already there. Is there a different rule for when I'm pulling from something that isn't the default repository?
<gchristensen>
yeah... probabl y...
<sphalerite>
eyJhb: I do, but it only has a mount for one monitor
<sphalerite>
eyJhb: I don't actually have a space problem though, it's more about the money :p
<savanni>
OH! found it! I can put { config = { allowUnfree = true; } } to the parameter list for importing unstable.
<clever>
savanni: if you dont specify config like that, it loads config.nix from $HOME
<sphalerite>
savanni: #nixos ;) but yeah, that
<savanni>
Thank you! I've now been able to do the obligatory zoom upgrade.
<emily>
is the version on 20.03 unusable? the update should probably be backported in that case
<savanni>
20.03 still has version 4.
<savanni>
So, technically still usable for about five more days. :D
<eyJhb>
And now the old monitor is fixed as well!
<eyJhb>
sphalerite: Understand that. They are not cheap
joepie91 has quit [Quit: killed]
Guest30241 has joined #nixos-chat
Guest30241 has joined #nixos-chat
Guest30241 has quit [Changing host]
Guest30241 has quit [Changing host]
Guest30241 has joined #nixos-chat
Guest30241 is now known as joepie91
<bqv>
i heard about this forced zoom update
<bqv>
what's the purpose of it
<bqv>
more trackers?
numkem has quit [Remote host closed the connection]
drakonis_ has joined #nixos-chat
drakonis has quit [Ping timeout: 272 seconds]
monsieurp has quit [Remote host closed the connection]
drakonis has joined #nixos-chat
monsieurp has joined #nixos-chat
drakonis1 has joined #nixos-chat
drakonis_ has quit [Ping timeout: 246 seconds]
drakonis_ has joined #nixos-chat
drakonis has quit [Ping timeout: 256 seconds]
drakonis1 has quit [Ping timeout: 272 seconds]
<cole-h>
lol, zoom's web interface actually refreshes the page while it's waiting to join a meeting and after like 5 refreshes it kicks me out
<eyJhb>
All Zoom updates are forced, right?
<ldlework>
eyJhb: it's a website
<eyJhb>
ldlework: regarding bqv :p Seems app based. I just remember when we used it, if you did not have the lastest version it would not work
<eyJhb>
Did not tell you that though, it just didn't work
<ldlework>
seems fairly typical for website-based services
<bqv>
idk, i don't use zoom
<eyJhb>
Does the app just open a website?
<bqv>
i just remember hearing about it on the radio
<ldlework>
eyJhb: i mean it's the same kind of principle, there's gonna be some service/infrastructure behind it
<ldlework>
if they change that sufficiently, well, the client gotta change too
<eyJhb>
Ah, but most will say "your client is out of date"
neeasade has quit [Ping timeout: 258 seconds]
<ldlework>
in this case it would be
<eyJhb>
This didn't say a thing, just tried to connect forever
<ldlework>
oh gotcha
<eyJhb>
srhb: If you have ever had Tryg, their website sucks..
<eyJhb>
Won't load a damn page because their JS is a missmatch of everything
<eyJhb>
ldlework: that is the worst part
<srhb>
eyJhb: I have, but it's been a while. I think it was usable then.
<eyJhb>
srhb: I currently have no idea if I have insurance on my car, as their site won't let me see the messages sent :(
<srhb>
Great! :D You can only legally use public transportation then <3
* srhb
is helping
<srhb>
But I think old school companies like that are usefully more helpful on the phone to be honest :P
<eyJhb>
NO! :( I finally got it open, luckily :D But unsure if they have made a mistake..
<eyJhb>
But they are cloooseeed
<eyJhb>
:/
<eyJhb>
But srhb , if you open Trygs website, and then your console, it is full with JS debug statements
<srhb>
And here I thought that was the case on basically every website!
<eyJhb>
Most websites WORK while they do it
<srhb>
Point taken.
<eyJhb>
Trygs is 99% errors
<eyJhb>
:P
<eyJhb>
I think I should cool down on the monitors. 6 actual working ones, and 4-5 LCDs just for random projects
<cole-h>
gchristensen: 👏
drakonis1 has joined #nixos-chat
drakonis_ has quit [Ping timeout: 272 seconds]
<gchristensen>
=)
<cole-h>
Worth getting out of bed early!
<gchristensen>
oh cool, I'm glad!
<cole-h>
(Not really, I'm usually up that early... but I had stayed up a little later than I should have)
<cole-h>
14% the way through my transfer at <1MB/s speeds :D
<gchristensen>
guh
drakonis1 has quit [Quit: WeeChat 2.7]
drakonis has joined #nixos-chat
<cole-h>
I should get another external and use ZFS's encryption on it instead of going through like 2 layers of indirection
<gchristensen>
time for a nap
<cole-h>
🛌
<LnL>
oh, how did it go? :)
waleee-cl has quit [Quit: Connection closed for inactivity]
<drakonis>
flakes rfc accepted?
endformationage has joined #nixos-chat
<bqv>
fcp, but basically yes
<drakonis>
finally
<drakonis>
the time has come
<sphalerite>
fcp is the chance for people to shout "I object!" like at a wedding
<bqv>
it would have made a lot more sense if something in the flakes changes to nix was entirely backwards incompatible, but it isn't
<drakonis>
the backwards compatible stuff might come in the future
<drakonis>
incompatible
<gchristensen>
the design evolved significantly throughout the RFC, and released code is hard to change
<LnL>
it's a way to get feedback from the community
<gchristensen>
and it is much better to get away from "just doing stuff" and in to a more collaborative approach
<emily>
has anything actually been changed in response to feedback since nixFlakes became suitable for MVP NixOS use? I assumed that the RFC would go on for a fair bit longer as people had the chance to actually try it out for the first time, rather than just bikeshedding on GitHub
<gchristensen>
and for a big change like that...
<bqv>
but is that to say the code won't be changing from here on?
<emily>
if the attitude is "released code is hard to change" why even bother with an rfc :/
<bqv>
exactly
<gchristensen>
eh?
<LnL>
same
<bqv>
i mean the consensus seems to have been "don't use flakes until the rfc is accepted, it's experimental!" but at the same time "the rfc is here so people can use and test flakes"
<bqv>
that's shroedinger level bizarro
<gchristensen>
try flakes, don't depend on flakes
<gchristensen>
part of that is a fear that even as an RFC, the code would be defacto forever. so, the message was: don't depend on flakes because it is experimental, per the rfc
<LnL>
is there a plan not to make flakes experimental for the moment?
<bqv>
so the significance of this rfc is that it means the code as it stands will exist forever (modulo further RFCs?)
<gchristensen>
I think it is still experimental, but could be merged in to nix master
<LnL>
yeah that's what I thought
<emily>
it seems like there's somewhat of a conflation of "should we have something vaguely like flakes?" and "what should flakes look like?"
<emily>
I feel like there's consensus on the former but the latter has barely been explored with actual practical experience yet
<gchristensen>
let's experiment!
<bqv>
someone write up an rfc, oh wait
<LnL>
yeah, what's wrong with that?
<gchristensen>
yeah I don't understand the dissatisfaction here
<emily>
well, I'm happy to experiment, but then what does "released code is hard to change" mean if not "the design of flakes won't change substantially if the RFC is accepted, since it's already coded"?
<emily>
maybe I'm misinterpreting but it sort of seems like the intent is to rubber-stamp flakes as they exist because they were already implemented?
<gchristensen>
no, that is literally the opposite of what I'm saying
<bqv>
i know i'm being flippant, but i am genuinely unsure what exactly i'm meant to be celebrating, it seems like we're popping the champagne for passing a milestone that has basically no significance
<gchristensen>
it being an RFC makes it very, very clear as to what the status is. "just doing it" makes it much harder to communicate the status
<gchristensen>
emily: I think you're conflating two conversations, where my comment was in reply to bqv's question about why not just do it
<emily>
ah, fair enough
<gchristensen>
bqv: if you don't think it is a milestone, that iso kay
<gchristensen>
to me, this is a major milestone
<bqv>
i guess i was happy to believe this was just my personal qualm with unnecessary levels of bureaucracy, but other people making the same comments makes me think i'm not insane here
<cransom>
it almost maybe kind of feels like a nix 3.0 to me.
<gchristensen>
bqv: the important part about RFCs is communicating intent and collaborating around design. Nix needs that. you don't have to like it, but we need it. the evidence that we need it is in the fears people have around flakes overall, even given the level of planning and collaboration and design iteration which has already gone in to it.
<gchristensen>
like, maybe bureaucracy is a bad word to you, but bureaucracy is a well defined structure and system with benefits too
<bqv>
i definitely don't believe bureaucracy is inherently bad, but everything should be in moderation, and this feels like excess to me. for example, i would have been quite happy with this rfc had it been accepted at the moment channels were deprecated
<gchristensen>
okay
<LnL>
I think you don't realise hi
<gchristensen>
it is okay that don't appreciate the amount of effort that went in to communicating and collaborating on this problem. I don't mind that you don't appreciate it. I do know it was necsesary.
<LnL>
how much work has gone into this over the past 2 years
<gchristensen>
^
<LnL>
the require-nix talk is basically what started all this
<bqv>
i don't quite see how i'm undermining effort, i'm saying this step in and of itself seems bizarrely unnecessary given i don't think you can possibly argue to me that there will not have to be at least one further rfc, probably several more, before flakes are actually cemented. i suppose i'm starting to understand why andir phrased it as "this seems rushed"
<gchristensen>
you're not undermining it
<LnL>
that already was a poc which was implemented and experimented with
<abathur>
there's probably a separate general issue with transparency in/of collaborative decision-making processes
<abathur>
the process is most-visible to people inside the collaboration, and it seems like it's tricky to address in all kinds of organizations
<ldlework>
i am desperate for a new standard so i can do my system config for the last time
<ldlework>
or at least get several years out of it
<LnL>
urgh, stop importing stuff in your setup.py!
neeasade has joined #nixos-chat
<ldlework>
In totally unrelated news, the original author of Styx responded to my email, gave me ownership over the original organization, and joined our IRC channel to contribute to design discussions.
<ldlework>
I am currently writing up my own RFC for the goals of 0.8 to generalize Styx away from a "static site generator" to a more open-ended "programable content pipeline".
<ldlework>
We wanna simplify the core, and move actual data-transformation features out to external packages. Join us in #nixos-styx if you want :)
<ldlework>
FINE JERKS!
<bqv>
o.o
<ldlework>
hehe
<danderson>
stupid question: what's a Styx?
<danderson>
ah, static site generator in nix. Wild!
<bqv>
emily: sky sent me a beautifully polite letter informing me that they know i'm leaving them and they're sorry about that. a start difference from when i was hounded by calls from virgin's indian callcenter and i had to shake them off by telling them i was leaving the country.
<bqv>
reasons to never (ever) go virgin
<ldlework>
I kinda wish Nix had the pipeline operator
<ldlework>
foo bar |> biz baz == biz baz (foo bar)
<gchristensen>
I also wish for this, especially when adding builtins.trace places
<ldlework>
most good ml's have it
<ldlework>
(i mean i don't know of one without it)
<gchristensen>
Nix
<ldlework>
is nix really an ml
<ldlework>
hmm
<gchristensen>
dunno, I wasn't really paying attention
<ldlework>
if you squint it's kinda
<ldlework>
everything's an expression: check
<gchristensen>
hmm... `with ...; `
<ldlework>
that's an expression right
<gchristensen>
I guess, just a weird one
<ldlework>
yeah it takes a term after it
<ldlework>
it's just weirdo ya
<ldlework>
auto-currying: check
<ldlework>
partial application: check
<ldlework>
pattern matching: fail
<ldlework>
pipeline operator: fail
<ldlework>
curry operator: fail
<ldlework>
it's doing ok
cjpbirkbeck has joined #nixos-chat
<energizer>
no way to close the `with`
waleee-cl has joined #nixos-chat
<gchristensen>
with only applies to the expression immediately following
* energizer
retracts
<abathur>
A question I've had percolating is how/to what extent flakes will impact which packages do/don't belong in nixpkgs (particularly Nix-ecosystem utilities themselves?)
<bqv>
undetermined :)
<adisbladis>
It opens up a whole other discussion around "what's the minimum version required to eval nixpkgs"
<abathur>
like, I've seen a lot of mentions about what it could/would enable, but have no concrete sense of what the aspirations are at that meta/organizational level
<adisbladis>
Which currently seems somewhere between 2.1 and 2.0
<adisbladis>
Depending on how you interpret things
<adisbladis>
abathur: Hard to say exactly.. The opinions on this are very split to say the least.
<adisbladis>
Actually I find reliance on Nix 2.3 features in nixpkgs
evanjs has joined #nixos-chat
<bqv>
*sigh* its been a while since ive had to call the police
<adisbladis>
bqv: What's up?
<bqv>
escalating a noise complaint, cause the local council do nothing but wave their impotence at me
<energizer>
what's the noise?
* adisbladis
is guessing local chavs
<bqv>
i don't know, that's half the problem.. it sounds like something resonating really bizarrely loudly, but it happens at the most random of times, without prejudice, 24/7 and only for a few seconds
<energizer>
ugh inconsistent noises are the worst
<joepie91>
bqv: my bet is compressor
<bqv>
been trying to put up with it for over a year now, but i'm autistic so it bothers me way more than any reasonable person, i've got ocd so it tends to lead to incredibly distressing thoughts, i'm locked at home so i can't exactly avoid it, and it's horrifyingly warm so i have to have the windows open
<energizer>
how often bqv?
<bqv>
but nobody in the neighbourhood seems to notice except that one time earlier today when i pointed it out to the neighbour while talking to him and he noticed it
<bqv>
i genuinely feel like i'm being taken the piss out of, it happens around 3 times a day on average and with the windows open it's loud enough to drown out the tv
<bqv>
joepie91: i was suggesting ventilation above a nearby shop to the council and the shop manager, but that seems to have gone nowhere
<bqv>
i don't want to be "that guy" but having put up with it for a year alongside the standard range of bullshit live serves, i'm genuinely at wit's end
<eyJhb>
bqv: are you British?
<bqv>
was that not obvious?
<eyJhb>
It was! But wanted to be sure
<bqv>
sorry, drunk and frustrated
<joepie91>
bqv: if it's only for a few seconds at a time, it's unlikely to be ventilation, as that needs at least a few minutes to be effective in most cases; but a far-away compressor exactly meets your description
<joepie91>
compressors vibrate heavily, make a lot of noise, and if it's a tank compressor and left powered on, it will periodically switch on for a few seconds to reobtain the target pressure when it drops below the threshold
<joepie91>
(non-assholes would at the very least shut their compressor off at night)
<drakonis>
hmm
<eyJhb>
It is more than a few secounds most of the time (10 I would say)
<drakonis>
darkest dungeon and dicey dungeons are on sale...
<eyJhb>
How long is it for bqv ?
<bqv>
always between 5-15 seconds at a guess
<joepie91>
eyJhb: depends a ton on the compressor and the threshold. some are configured super tightly and will switch on when even *slightly* under the target pressure, in which case they will only need a few seconds to return to their normal level
<energizer>
bqv: can you record it?
<eyJhb>
joepie91: Lived with one for years, was for 5-10s
<bqv>
probably, yeah. i (and indeed the police) were expecting the council to provide me with equipment to do so
<eyJhb>
I think I lived with one from I was 7-8 to 20
<eyJhb>
:D
<joepie91>
eyJhb: mine needs more like 30-60 seconds, but I've also seen (or well, heard...) ones that need 5 seconds or so
<joepie91>
it really varies widely :P
<bqv>
do you have a sample of the kind of sound?
<joepie91>
bqv: this is a typical noise for a cheap air compressor: https://www.youtube.com/watch?v=srKB-wgrDio -- however, if it's far away and you're hearing the vibrations, it will likely sound considerably different
<joepie91>
the switch-on/switch-off clunk is the tell-tale noise when you hear the compressor itself, but it gets lost in walls etc. so if you're hearing the low rumble you'd not hear the switch-on/off
<adisbladis>
joepie91: I've used it and wasn't impressed at all
<adisbladis>
I think it's pretty good we don't have it
<adisbladis>
If you get something wrong you just solidify that approach
<adisbladis>
I think they got their python packaging pretty wrong for one
<eyJhb>
Isn't it just sugar anyways?
<eyJhb>
If I am going to have a 2560x1440 resultion, then fontsize 14 is waay too small on a 24"
<eyJhb>
Can't read much
cjpbirkbeck has quit [Remote host closed the connection]
<ldlework>
Let's say I have N packages each of which exports a function returning an attrset of functions
<ldlework>
Let's say I wanted to load all of the packages, call their function, get back each's attrset of functions and merge them.
<ldlework>
There's no way to then somehow using lazy magic, also have the thing I passed to the functions, be the merged attrset?
<ldlework>
right?
<bqv>
pretty sure that would end up with infrec unless you significantly restricted the definition of "function"
<ldlework>
let a = lib: { foo = text: lib.b text; }; b = lib: { bar = builtins.toUpper; };
<ldlework>
something like this, where we then call a and b with a set derrived from merging the results of a and b :(
<bqv>
the crux of it is, as long as the keys are determinable without infrec, that's probably possible using lib.fix
<bqv>
and if it isn't then it's probably a limitation of lambda calculus, not nix
<ldlework>
is it documented
<eyJhb>
Anyone has a lightweight Youtube player?
<ldlework>
I see some comments
<bqv>
tl;dr lib.fix (f: a) = a (a (a (a ...))); which allows for things like `lib.fix (self: [1] ++ self)` (which would infrec, but otherwise would result in an infinite list of 1s
<samueldr>
eyJhb: I use mpv, but not for discovery
<ldlework>
bqv: can you help with my example?
<samueldr>
eyJhb: only for consuming known urls
<eyJhb>
samueldr: hmm, need something for discovery as well. I never know what to watch
<samueldr>
sorry, I already know what to watch / use the youtube sub box still
<ldlework>
WOAH
<ldlework>
I DID IT
<ldlework>
bqv: neattt
<eyJhb>
samueldr: so you take the sub box, and the copy paste?
<samueldr>
copy the URL from the video in the sub box
<samueldr>
so I still interact with the youtube website
<eyJhb>
I see
<eyJhb>
THere must be something better for us samueldr !
<pistache>
eyJhb: you can search from MPV, and it's quite easy to make a script that does a search and asks you which result to play
<pistache>
not sure if that's what you're looking for
<eyJhb>
Would be nice to integrate it with subs + suggested next
<ldlework>
"By using a lock file (with the --lock command line flag), you can ensure that the code pulled from a URL is the same as it was during initial development. "
<ldlework>
What programming languages force you to lock every package?
<adisbladis>
You should do the right thing by default ffs
<bqv>
isn't that the holy grail of insecure things
<eyJhb>
Physlock does NOT play well with these monitors, and not at all well with displaylink
<eyJhb>
Damn it
<ldlework>
Are there any?
<adisbladis>
bqv: tbf so does nixos.org
<joepie91>
deno is a big pile of nonsense
<bqv>
nixos.org doesn't claim to be "secure (in bold)"
<joepie91>
their "sandboxing" also consists of basically a process-global "allow fs/net" flag
<joepie91>
which is precisely 0 useful in real-world software
<adisbladis>
joepie91: I arrived at that conclusion fairly quickly
<ldlework>
Are there any programming languages which require you to lock all dependencies or refuse to build?
<eyJhb>
So now I need a script to force the screen to use the LVDS1 on lock, yay
<ldlework>
It's 2020 afterall.
<adisbladis>
ldlework: Most package managers has hashes
<joepie91>
adisbladis: many, many people unfortunately did not
<adisbladis>
And they write lock files by default
<joepie91>
adisbladis: it's gaining a lot of traction by virtue of who wrote it
<joepie91>
(hey, does that remind you of some other language...? with a similar import style...?)
<ldlework>
adisbladis: Python? Ruby? Rust? Nix? Which of these produce lock files by default?
<bqv>
ldlework: javascript and go are the only ones off head that write lockfiles
<adisbladis>
ldlework: Rust has Cargo, Cargo.lock
<ldlework>
Yes but by default?
<ldlework>
I'm pretty sure you can just write some rust, get some dependencies and build your thing.
* joepie91
is more than a little annoyed by deno considering how much time he's had to spend explaining to people for the Nth time why its design is awful
<adisbladis>
Yes, Cargo.lock is produced by default
<adisbladis>
If you don't use a package manager that's up to you
<adisbladis>
That's fair and OK
<adisbladis>
Python has the excuse of historical baggage
<bqv>
there are no languages that reject TOFU, if that's what you're asking
<adisbladis>
Deno does not
<ldlework>
To be clear I'm with you that lock file by default makes perfect sense :)
<ldlework>
I'm just saying, it's not really typical.
<joepie91>
ldlework: you can use Rust (rustc) without using Cargo; however, when you *do* use Cargo, it will write lockfiles
<adisbladis>
ldlework: It is typical for new stuff
<ldlework>
Fair enough :)
<adisbladis>
I think the rust/cargo situation is fair, after all rustc never claimed to be more than a compiler
<ldlework>
This isn't exactly related, but if you never been to 365tomorrows you can do yourself a favor: https://365tomorrows.com/
<ldlework>
it's sci-fi flash fiction and some of it is really really good
parsley936 has quit [Remote host closed the connection]
<adisbladis>
joepie91: So what else about deno is awful?
parsley936 has joined #nixos-chat
<adisbladis>
I never got much further than the "hello world" of webservers
<joepie91>
adisbladis: aforementioned "sandboxing", and the general approach with which it's been developed/marketed, which is more or less "we're just gonna build a runtime that has all the things that are popular"
<joepie91>
while disregarding the actual technical implications or tradeoffs of that
<joepie91>
it's very strongly based on the very nebulous "best practices" that you find in certain circles of developers with strong opinions not backed by any actual understanding of the problem domain
<joepie91>
(see also: why it markets itself as a "typescript runtime" even though it's not really any fundamentally different from what ts-node has been doing for a long time)
<joepie91>
like, it's not like it gets any runtime performance benefits from being a "typescript runtime" or anything like that. it literally just transpiles the TS to JS and then shoves it into V8
<adisbladis>
I was wondering about that
<adisbladis>
Like.. Why make the runtime tied to TS
<joepie91>
well it isn't really, at all :P
<joepie91>
it's really just a parlour trick
<adisbladis>
I don't even know why I looked at this tbh
<joepie91>
this is, IIRC, defended by "well we want to implement our own TS transpiler in Rust to make it faster"
<adisbladis>
It just popped up on my radar somehow
<joepie91>
conveniently leaving out the explanation of how they couldn't do that with Node
<joepie91>
and the entire damn thing is like this. it's all just appeals to what is currently "hot" as a badly-informed "best practice", wrapped into a pile of marketingt
<joepie91>
and very little actual technical substance or reason to exist
<adisbladis>
Also while I like rust, I don't see how Rust improves this equation at all
<adisbladis>
V8 is still CPP
<adisbladis>
If anything it just adds a horrible FFI boundary
<adisbladis>
joepie91: Btw, I really appreciate your insights here
<joepie91>
adisbladis: well, Rust is popular, so :P
<joepie91>
adisbladis: np, apologies if they are more ranty than usual
<adisbladis>
Nah, this is good stuff
<joepie91>
this thing has been getting on my nerves something fierce
<adisbladis>
I need to hear some ranting
<joepie91>
the irritating thing with bad hyped tech is that, if you do support within that ecosystem, you get to choose between spending N time now repeatedly explaining to people why it is bad, or 100N time later unfucking the broken things people have built with it
<bqv>
adisbladis: TIL vterm and emacs-libvterm are the same thing >_>
<adisbladis>
bqv: I'm sorry :/
<adisbladis>
I package vterm before it was in melpa and called it emacs-libvterm
<bqv>
eh, better i know than i don't :p
<adisbladis>
packaged*
<bqv>
fair enouhg
<joepie91>
adisbladis: anyway basically deno's claim to fame is having been developed by ryan dahl, the guy who originally wrote the first version of Node.js
<joepie91>
adisbladis: and so a *ton* of people are assuming "oh, that must mean he knows all the good bits about Node *and* all the mistakes that have now been fixed", which is pretty much how he's been marketing it
<adisbladis>
joepie91: I figured I used to do a lot of js/ts so I should at least have a look of it
<joepie91>
except Dahl hasn't really been involved in Node for years now, the first versions of Node were frankly pretty crap...
<joepie91>
and the story kinda starts to break down when you really look at it
<adisbladis>
I never got past the lock file :P
<eyJhb>
Chromium bastard creating ~Downloads
<joepie91>
and has all the hallmarks of "broken clock is right twice a day"
<joepie91>
adisbladis: right :P most people unfortunately don't recognize the red flags
<joepie91>
at least most people I've talked to
<adisbladis>
joepie91: And if I get this right, their "use ES modules" model means all nested dependencies are essentially "vendored" ?
<joepie91>
apparently we've collectively learned nothing from MongoDB
<joepie91>
adisbladis: that's not inherent to ES Modules, I'm not sure how they specifically implement it
<joepie91>
(ESM is its whole own bucket of bad, but that's a different rant)
<adisbladis>
I mean, either you're pointing to a URL which is not reproducible, or to a versioned URL which makes upgrading nested deps hard
<adisbladis>
If there is a vuln anywhere in your dependency graph it seems non-trivial to upgrade?
<joepie91>
I haven't looked at its dep model in enough detail to say anything about that with certainty, but it would not surprise me
<adisbladis>
At least that's how I interpret their model
<adisbladis>
But I may have missed something
<joepie91>
I'll probably have a look at it later and see if I can spot it
<ashkitten>
im just gonna listen to nothing but big giant circles for the rest of my life huh
<cole-h>
Why not small tiny circles?
<abathur>
I don't let JS take up much of my head-space, positive or negative, but I guess I roughly think of its entire ecosystem as like a very diffuse version of the shitshow that is Python packaging
<adisbladis>
I've had enough Python packaging for 15 lifetimes
<abathur>
less misery per square inch than python packaging, for sure, but also a little bit of misery everywhere
<cole-h>
adisbladis: :')
<adisbladis>
abathur: At least JS packaging has far less native bindings
<energizer>
i'm so glad poetry is catching on
<abathur>
I was glad I don't livestream my coding when I was trying to figure out how to forcibly namespace a package that I'm injecting around the oil shell in order to be able to develop atop its parser
<energizer>
yeah that oil packaging is ..strange
<abathur>
since it uses ~python2.7 and has a flat namespace
<cole-h>
My coding livestreams would look like this: *looks something up* *asks question in IRC* *maybe write some code* *repeat*
<abathur>
I figured out how to force the namespace in, but I ultimately had to write an import-rewriter in my own code to be able to rewrite the oil-internal imports when I'm running it...
<abathur>
I've thought about doing it from time to time mostly because I suspect it'd goad me into being more productive, but I also suspect it'd only work if no one ever asked a question
<abathur>
because I feel like I'd constantly end up off-task if it involved actual interaction
<energizer>
you could just not read the feed
<energizer>
ublock it
<abathur>
yeah, obs or something
<abathur>
and just not even open it
<cole-h>
But then, why stream?
<adisbladis>
cole-h: I'm far too embarassed to do some coding livestreams
<abathur>
but I guess, debatably, the other part of the value is the surprise connection with someone who is in to whatever your'e doing
<adisbladis>
What if people find out I'm actually an idiot?
<abathur>
adisbladis: nod; I suspect we've all got that imposter syndrome
<cole-h>
I'm definitely in that same boat of "I'll be too distracted if anyone talks to me", but I'm also someone who wouldn't watch an un-interactive streamer.
<energizer>
solution: get a commentator!
<cole-h>
Part of the reason I show up to peti's nixpkgs-haskell-update streams is because it's fun to just interact.
<cole-h>
Though I'm pretty sure we get sidetracked a lot because of it...
<abathur>
my favorite brand of imposter syndrome, however, is reading my own old comments or design docs and being like: oh, that's kinda smart--have you gotten dumber in the last N years?
<cole-h>
RIP
<bqv>
abathur: hang on, you use oil shell?
<bqv>
what's it like?
<adisbladis>
abathur: Been there done that...
<abathur>
I don't daily-drive it atm, but I've been working on a python package that uses its parser in order to resolve executable paths (primarily for Nix, but debatably for anyone interested in nailing down paths)
<adisbladis>
resholved <3
<adisbladis>
abathur++
<{^_^}>
abathur's karma got increased to 3
<abathur>
heh
<adisbladis>
abathur: It's coming up in conversation at work fairly frequently
<bqv>
ah ok
<abathur>
have you used it? I didn't realize anyone but graham had
<abathur>
bqv but if you've got questions there's at least an off chance I have an answer
<adisbladis>
Not for anything "real", but I've tried it
<abathur>
nod
<abathur>
I've got it building a chain of projects into my profile on macOS
<adisbladis>
I love the concept of it
<abathur>
which, honestly, was a very small Big Day for me heh
<adisbladis>
I wish we could run it on every single shell script in nixpkgs at some point
<joepie91>
abathur: having worked with both JS and Python, JS packaging is miles and half a globe ahead of Python where avoiding packaging headaches is concerned
<abathur>
yeah, not sure what fraction it'll do
<bqv>
abathur: no, no real questions then, i was just curious of the experience of someone using oil full-time
<bqv>
i think i considered it round about the time i switched to elvish
<abathur>
joepie91: nod, it is
<adisbladis>
joepie91: Having worked fairly extensively on JS packaging and even more on Python packaging, I agree
<joepie91>
honestly the biggest issue in JS packaging is the role of npm inc
<joepie91>
but at least they will now maybe have vaguely competent people at the helm, having been acquired by github
<abathur>
bqv how do you like elvish? I've been watching elvish, oil, and xonsh for a while but staying in bash because gravity mostly
<bqv>
i haven't been using elvish for months (years?) now, i switched to fish, and then a month ago to xonsh
<abathur>
but, obviously, the attraction of oil is that it's actually trying to plot out the bash -> what? transition
<abathur>
ah
<bqv>
i think i rapidly gave up on elvish due to the fact that at the time it was nowhere near ready enough for full-time use
<adisbladis>
And here I am trying to use less shell
<abathur>
yeah, elvish has looked a bit early every time I took a look
<abathur>
it's a lot of work
<adisbladis>
Generally speaking I think shell is a race-to-the-bottom game
<abathur>
well, it's a lot like Nix in some sense
<bqv>
xonsh is serving me well, at least
<joepie91>
shells peaked when computers booted to BASIC, change my mind :P
<adisbladis>
^_^
<abathur>
if you're willing to "work" for things that don't "work" on first run, then whatever shell you love is best
<abathur>
but if you want shit to just "work"
<abathur>
then yes, it's a race to the bottom :)
<abathur>
wait
<abathur>
bad emphasis
<abathur>
"just work"
<adisbladis>
I still can't accept how horrible bourne is for interactive use
<adisbladis>
I wan't to write semi-programs inline
<abathur>
I have a little hope oil will pop out well positioned in the next year or two
<abathur>
Andy's working on rewriting the important bits in c++
<abathur>
well
<abathur>
generated rewrite
<abathur>
mypy or whatever
<adisbladis>
abathur: Have you used fish?
<abathur>
so he's hoping to overcome most of the too-slow-for-a-daily-driver stuff
<abathur>
no
<adisbladis>
I think fish multi-line editing is really hard to beat
<abathur>
but I gather fish is the gold standard for interactive from what I've seen
<adisbladis>
It lacks the expressiveness of oil/elvish
<adisbladis>
But omg those interactive features
<abathur>
nod
<energizer>
multi-line editing seems like too much to ask for a shell, nothing wrong with ^X^e
<infinisil>
I can <Esc>v to edit the zsh command in a vim buffer :P
<abathur>
at some point I've kinda wanted to (try? I don't know if it'd *actually* help) figure out how to swap bash for oil in Nix and do a mass rebuild and send him a list of the errors
<adisbladis>
Multi-line and all
<abathur>
one of the things he's been continually working on is collecting real-world shell examples, because his goal isn't quite to have literal parity with bash--but more like, "enough" coverage that he can convince edge-cases to tweak for cross-compat
<abathur>
not that the bash in Nix is terribly erudite, but at scale it's probably one of the largest single-repo corpuses
<adisbladis>
abathur: We use enough bashims that it's probably a good test case =)
<abathur>
nod
<adisbladis>
Occasionally I'm dreaming of stdenv being !bash
<ashkitten>
the road quest soundtrack... hnnnn
<energizer>
execline?
<adisbladis>
energizer: I'm not kink shaming, but...
<energizer>
adisbladis: i havent actually used it but it seems totally ok to me
<adisbladis>
I've used it =)
<adisbladis>
It's pretty neato
<adisbladis>
But I wouldn't want to replace stdenv with it
<abathur>
speaking of kinks, I didn't realize until bash 5.0 that $EPOCHREALTIME was one of mine
<energizer>
adisbladis: how come?
<adisbladis>
energizer: I'd be more interested in getting actual data structures
<adisbladis>
And less exec()
<adisbladis>
Basically, a real programming language
<bqv>
oh execline, i conceptually love it
<abathur>
adisbladis: at sufficient scale, would it make sense for Nix to author/support/throw resources at) a shell tailored to its purposes (both in terms of performance and features?)
<bqv>
and started replacing all the bash scripts in my config with it