gchristensen changed the topic of #nixos-chat to: NixOS but much less topical || https://logs.nix.samueldr.com/nixos-chat
<lovesegfault> bbigras: mine
<lovesegfault> LOL
<lovesegfault> I use that
<bbigras> haha
<ashkitten> mumble with pipewire-pulse seems to have really really bad latency issues
<ashkitten> and its alsa support didn't work at all for me
<ashkitten> but enabling its jack support it was fine
<cole-h> "security.rtkit" is not a confidence-inspiring name lol
<cole-h> even though I know it's for realtime stuff
<ashkitten> the other thing was rocket league (under steam proton)
<ashkitten> where it would cause tons of xruns under certain conditions
<ashkitten> in general, xruns are a bit of a touchy problem with pipewire. if you have an application that causes xruns, it will cause issues for everything in the pipeline
<ashkitten> so it would cause my voice chat to drop out as well
<ashkitten> i'll note that it's a bit of an unsolved problem, not that they don't intend to solve it
<ashkitten> this is my understanding
<cole-h> xruns were a huge pain when I tried setting up jack previously lol.
cosimone has quit [Ping timeout: 268 seconds]
<ashkitten> it'll be better at some point
<cole-h> Looking forward to it for sure
<ashkitten> but as for things i love about pipewire: holy crap using qjackctl to wire up pulse programs to each other is AMAZING
<ashkitten> you can use any pulse or jack control programs you want, together
<bbigras> you are the one who shared a screenshot about it the other day?
<ashkitten> yeah
<bbigras> yeah it looked pretty cool
<ashkitten> we should really have more stuff on the wiki tbh
<ashkitten> i'm too low energy
<lovesegfault> going to switch to pipewire while playing music
<lovesegfault> let's see what happens
<drakonis> pipewire life
<lovesegfault> bluetooth isn't working
<lovesegfault> hmm
<energizer> drakonis: you use it too?
<andi-> pipewire is worse than flakes ;)
<andi-> give it another 4y
<cole-h> andi- is just a hater :P
<andi-> no, i've been doing this for >20y.. at some point I stopped wanting the latest breakage
<drakonis> i'm using kde
<drakonis> so i dont get much of a choice here
<drakonis> no pipewire
<bbigras> it wont work with the pulseaudio bridge with kde?
<lovesegfault> Rebooted to be sure
<lovesegfault> seems to be working now :D
<lovesegfault> playing music
<lovesegfault> hmm, there's a bit of stuttering
<lovesegfault> is there some cli for pipewire?
<lovesegfault> oh, pw-cli
<bbigras> I use pavucontrol to unmute my outputs
supersandro2000 has quit [Disconnected by services]
<lovesegfault> Yeah, pavucontrol works
supersandro2000 has joined #nixos-chat
<ashkitten> anything you try should work
<ashkitten> and it's a bug if it doesn't
<lovesegfault> I can't change the profile from A2DP to LDAC or aptX for my BT headphones
<lovesegfault> also it seems to report them to waybar as speakers :P
<ashkitten> hmmm
<ashkitten> i know it's a bug if that doesn't work
<ashkitten> but i'm not sure if it's meant to be solved
<lovesegfault> Yeah the stuttering is a bit annoying
Dotz0cat has joined #nixos-chat
<bbigras> I think there was a fix with the latest version but I guess you have it with the small channel.
<lovesegfault> yup, I'm on 0.3.18
Dotz0cat_ has quit [Ping timeout: 272 seconds]
danielrf[m] has quit [Quit: authenticating]
danielrf[m] has joined #nixos-chat
<lovesegfault> I reported my issues
<abathur> `d. There are new loadable builtins: mktemp, accept, mkfifo, csv, cut/lcut` ooo
<andi-> new nix builtins?
<andi-> finally a proper socket API?
<abathur> bash 5.1 :)
<gchristensen> hahaha
<abathur> since fiddling around with them for the first time to get Booze working, I've lowkey wondered if Nix could save much time by picking up some bash loadables for common file ops and such
<andi-> I'd love to have (builtins.mkDir "$out/foo" (builtins.copy "build/test" "$out/foo/bar")) or similar to descript my builds
<andi-> no more bash please
<lovesegfault> bash is the ultimate programming language
<abathur> the final boss
<abathur> fwiw, bash source tree already has loadables for common externals like basename, cat, dirname, head, id, ln, mkdir, rm, rmdir, seq, sleep, stat, strftime, tee, uname, unlink, whoami
<gchristensen> pronounced Yiddish?
<energizer> i hope so
<lovesegfault> אױ װײ‎!
<abathur> they won't all behave exactly the same, but the surface area of external calls that could be clipped by a few ms per instance is at least meaningful
<andi-> if the implementation is compatible with coreutils and is also faster than exec'ing a binary
<ashkitten> lovesegfault: i can't tell what that says, my hebrew font is apparently garbage
<abathur> the obvious ultimate answer is for nix, nix-shell, and bash to all join into their final form, the unholy trinity: nix-demon
<lovesegfault> ashkitten: oy vey!
<ashkitten> huh
<ashkitten> i would not expect it to be spelled that way
<lovesegfault> (that's what it says)
<lukegb> Can we implement nix in just bash please thanks
<gchristensen> lol
<lovesegfault> I'm a simple goy, I used google :P
<gchristensen> it used to be perl
<lovesegfault> Maybe it's not written that way
<ashkitten> apparently it is
<energizer> i think "vey" is cognate with "woe" there
<abathur> andi-: probably not, maybe posix? I mostly just observed how surprisingly pleasant it was to load the builtins and thought there might be some performance on the table for Nix if we bothered profiling where time tends to go and evaluate existing loadables for how well they cover what they actually get used for in nixpkgs
<ashkitten> i can barely read hebrew even with nekudot
<pie_> sphalerite: thanks ill check out the bcachefs stuff
LnL has quit [Quit: exit 1]
LnL has joined #nixos-chat
LnL has joined #nixos-chat
LnL has quit [Changing host]
<abathur> here's an example of what I mean andi- with coreutils stat v. loadable stat: https://gist.github.com/abathur/d60f75de1f4988d5cd1f1f01e32e0c80
<abathur> oops, I missed the runtime on the first command; updated it
<andi-> abathur: is that version of bash in nixpkgs already?
<andi-> Just noticed you are on slow-os ;)
<abathur> yes-and-no, I think I had to patch the makefile to get it to include stat for some reason
<abathur> but ${bash}/lib/bash/ should already have a fair set of builtins by default
<andi-> stat for me is like 0.2ms..
<abathur> you can try "finfo" instead of stat, which actually works more like stat
<abathur> so like `enable -f ${bash}/lib/bash/finfo finfo` to load it
<andi-> bash: enable: cannot open shared object /nix/store/fw8bc7hlnc1m6aarihm964g5r74rxqij-bash-interactive-4.4-p23/lib/bash/finfo: /nix/store/fw8bc7hlnc1m6aarihm964g5r74rxqij-bash-interactive-4.4-p23/lib/bash/finfo: undefined symbol: minor
<andi-> o.O
<abathur> ah, hmm, yeah, I just tried that on my nixos desktop and saw the same
<abathur> dunno, not sure what differs there
<abathur> dirname worked
<abathur> so with dirname I get about 15.5ms for coreutils and 963µs for the builtin
<abathur> on nixos builtin time reported 0.000s for the builtin and 0.002s for coreutils
cole-h has quit [Ping timeout: 256 seconds]
rajivr has joined #nixos-chat
<pie_> i always feel cool when i do dumb hacks with gdb
<pie_> i didnt want to have to do a rescan with ncdu but its CWD was bloking an unmount
<pie_> so i attached gdb and did call (int)chdir("/")
<infinisil> Neat! :o
<abathur> heh produced by an LCRNG, and uses getrandom/getentropy, falling back to
<abathur> /dev/urandom or arc4random if available. There is a fallback generator if
<abathur> grr
<abathur> SRANDOM: a new variable that expands to a 32-bit random number that is not produced by an LCRNG, and uses getrandom/getentropy, falling back to /dev/urandom or arc4random if available. There is a fallback generator if none of these are available.
<abathur> heh! l. Bash now allows ARGV0 appearing in the initial shell environment to set $0.
<abathur> x. `test -v N' can now test whether or not positional parameter N is set.
<abathur> some nice little qol improvements here that no one will ever use because apple?
<pie_> >.>
<lovesegfault> bbigras: nix eval --json .#deploy.nodes | jq 'keys' | jq "{ hosts: .}"
<lovesegfault> turns out there's no need for that binary :D
<infinisil> jq 'keys | { hosts: . }' !
<lovesegfault> infinisil: ?
<infinisil> No need for two jq commands
<infinisil> :)
<lovesegfault> Ah! :D
<lovesegfault> damn, jq is omnipotent
<abathur> definitely not all-googleable
<infinisil> Ohh also: jq '{ hosts: keys }'
<lovesegfault> :O
<pie_> snort snort magickkk
<infinisil> > transferTime (11.9 * GB) (57.0 * Mbps)
<{^_^}> "00:27:50"
<infinisil> Loving this
<energizer> infinisil: you implemented `units` in nix?
<infinisil> I sure did!
<energizer> infinisil++
<{^_^}> infinisil's karma got increased to 392
<pie_> > 11.9 * GB
<{^_^}> 9.52e+10
<pie_> > 11.9 * MB
<{^_^}> 9.52e+07
<pie_> > 11.9 * Mbps
<{^_^}> "11900000.000000 s^-1"
<pie_> did you encode types in the exponent lol
<pie_> wait no what
<pie_> ok thats a string
<pie_> i cant read :P
patagonicus9 has joined #nixos-chat
<JJJollyjim> I wonder if there are situations where breaking up a jq command like that leads to better performance because the steps run in parallel
patagonicus has quit [Ping timeout: 260 seconds]
patagonicus9 is now known as patagonicus
<JJJollyjim> exceeding the (de)serialization overhead
<abathur> probably
aleph- has quit [Ping timeout: 272 seconds]
aleph- has joined #nixos-chat
eyJhb has quit [Ping timeout: 240 seconds]
srk has quit [Remote host closed the connection]
eyJhb has joined #nixos-chat
eyJhb has joined #nixos-chat
srk has joined #nixos-chat
<infinisil> Hmm, how could the number of years/month/weeks/days between two dates be calculated?
<lovesegfault> infinisil: that, AIUI, depends greatly on the valid range
<infinisil> valid range?
<pie_> thats probably fractally complicated but you can do an approximation
<lovesegfault> Or do you mean strictly UTC time?
<lovesegfault> that is more tractable
<infinisil> Yeah just ignoring timezones
<lovesegfault> otherwise you end up dealing with calendar changes, and revolutions deciding briefly the year has 7 months, and time going backwards because the new king hates odd numbers
<lovesegfault> etc etc etc
<infinisil> I have two dates in { year, month, day } format and would like to know how many years, month, days (maybe weeks too) are between them
<infinisil> I've got functions for getting the number of days in a specific year, and the number of days in a specific month and year
<lovesegfault> I would cast that product type to just days: u64, then subtract, and then do with the result the back-conversion
<lovesegfault> (divide by 365, then the remainder by 30, etc)
<lovesegfault> it won't be super precise, but probably good enough?
<lovesegfault> is this for AoC?
<infinisil> Yeah no I want something precise!
<infinisil> (if at all possible?)
<pie_> but are months 30 or 31 days? :)
<infinisil> Because like, what if you have 2020-01-31 and 2020-02-29, how many months/days are between those?
<lovesegfault> You will have to write code that is a little verbose
<pie_> infinisil: from what ive seen people talking about time
<lovesegfault> and account for leap years
<pie_> you do not want to attempt to implement precise yourself
<lovesegfault> that will give you acceptable precision
<infinisil> Yeah I've got leap years and stuff all handled and available, I'm just not sure how to make it calculate a duration between dates
<pie_> what logos said. convert to a canonical representation and back (probably)
<lovesegfault> ^
<pie_> *lovesegfault
<lovesegfault> You'll have to iterate over the month var when computing days
<lovesegfault> to do the 31, 29, 31, 30, 31, ... nonsense
<infinisil> I want to have an answer for "If I were to start a timer at 2020-01-31 and stop it at 2020-02-29, how many months/weeks/days will I have waited?"
<lovesegfault> alright, here's my algorithm
<infinisil> With an answer that might depend on the input dates
<infinisil> (this isn't for aoc btw, just coding something for fun :))
<lovesegfault> 1. for the years, compare. If they are the same, continue, else iterate from year A to B, checking whether it's leap and accounting the total number of days
<lovesegfault> 2. for the months, if the same continue. else iterate matching on the month index to account for the number of days (29, 30, or 31), account the total number of days
<infinisil> Yeah I guess years are pretty simple, just a subtraction needed
<lovesegfault> 3. for the days, if the same continue, else the difference is the total number of days
LnL- has joined #nixos-chat
LnL- has quit [Changing host]
LnL- has joined #nixos-chat
<lovesegfault> you'll need to sprinkle in a bit of figuring out which day is smaller first
<lovesegfault> but then this will give you days between any two dates, I think
<infinisil> Hol up, how do months work?
<infinisil> E.g. show it on above example
<infinisil> Because I don't even know what the answer *should* be
LnL has quit [Ping timeout: 264 seconds]
<lovesegfault> Ah, you're right, there's an issue
<infinisil> Maybe there isn't even a reasonable answer
<lovesegfault> you have to count the total days in the month and subtract by the date's day count
<lovesegfault> or something like that
<infinisil> How about: count one month for each full month between the dates
<infinisil> Then calculate the average month length for the two non-full months
<infinisil> And use that average as the month length for the yet-unaccounted days
<infinisil> So e.g. 2020-01-05 to 2020-04-27 would be 2 full months, the average month length of january and april is 30.5 days. We have 26 + 27 = 53 days yet unaccounted for, so that's 30.5 + 22.5, so we have one additional month and 22.5 days
<pie_> you probably dont want to be splitting days
<pie_> is that consistent across years? xD
<infinisil> Yeah the split day isn't really great..
<pie_> obviously i have date fear and will not touch date implementtion with a 10 meter pole
<pie_> so im not helpin
<lovesegfault> If your granularity is date you should avoid having halves anywhere
<infinisil> So maybe just round down, let the average month length be 30 days
<infinisil> So we have 2020-01-05 - 2020-04-27 be 3 months and 23 days
<pie_> youd be losing like6 ddays a year or something no?
<lovesegfault> for any date A {y, m, d} you want to iterate from m = 1; d = 1 to A.m, A.d to count the total days passed so far in the year
<infinisil> It's a *little* odd, because 27 - 05 != 23, but that's because february is so short
<lovesegfault> do this for both dates you're comparing then subtract the date count
<lovesegfault> that should work, right?
<infinisil> lovesegfault: Again, that only gives me a day count, not any months
<lovesegfault> you can convert-back by looking at the month-range
<infinisil> Well that's the tricky bit :)
<lovesegfault> iterating from A.m to B.m and accumulating months accordingly
<infinisil> lovesegfault: Example?
<lovesegfault> nvm
<infinisil> So I think 2020-01-05 - 2020-04-27 should give 3 months and 22 days, just because this would be the obvious answer, so my above implementation doesn't work
<infinisil> But it's only really difficult then when the day of the first date is bigger than the one from the second
<infinisil> E.g. 2020-01-15 - 2020-04-07
<infinisil> Maybe you subtract days from the second date until you reach the same day as the first date. So that would be 2020-03-15
<pie_> time is a line with funky labels
<infinisil> Then that's 2 months + 23 days
<pie_> lovesegfault: i forgot that page exists
<infinisil> But then like, what if you have 2020-01-31 and 2020-03-30
<pie_> lovesegfault: but this is exactly the kind of thing i vaguely remembered exists xd
<infinisil> Removing days from the second date until the day matches the first one gives 2020-01-30, since february doesn't have 30 days!
<infinisil> I mean, 2020-01-31
<pie_> basically clocks are fucked and how do you even deal with this problem set?
<lovesegfault> can you count days from date A till date B?
<infinisil> Yeah
<lovesegfault> but you want the distance in days and months
<lovesegfault> hm
<infinisil> Yup
<lovesegfault> so if m = m it's easy, the other scenarios are:
<lovesegfault> Fuck, B.m < A.m is valid
<lovesegfault> (because you go over the year)
<lovesegfault> ay ay ay
<infinisil> Let's just assume both dates are in the same year for now
<abathur> I don't always regret deciding to rewrite things, but I still kinda regret deciding to rewrite a simple event ~scheduler that basically just checked if the apropriate localtime values matched every 2 seconds
<pie_> oh no
<abathur> my reasons were roughly right, it was too slow to project events more than 2 days out, so if was very hard to validate the schedules for rare events, and players were constantly asking for more notice
<abathur> but man :)
<lovesegfault> pie_: it's okay, infinisil's scope is constrained enough
<lovesegfault> It's UTC time since the UNIX epoch
<lovesegfault> (AIUI)
<infinisil> Yea, only using unix epoch and utc here
<lovesegfault> no "king has ruled every month has a random number of days that changes every 6 months, however long that may be)
<pie_> "It will be easy to calculate the duration of x number of hours and minutes from a particular point in time." ;Đ
<infinisil> Huh, what does that even mean
<pie_> oh god lol "Unix time is the number of seconds since Jan 1st 1970."
sefu has joined #nixos-chat
<infinisil> Leap seconds :)
<lovesegfault> ^
<infinisil> But we don't need to bother with those either luckily
<pie_> are you sure its just leap seconds :P
<pie_> (id hope it is but for me all bets are off at this point)
<infinisil> I am fairly sure yes!
<lovesegfault> infinisil: I think the phrasing of the problem is nonsensical
<pie_> "24:12:34 is a invalid time" ....wat
<lovesegfault> now that I think about it more
<infinisil> lovesegfault: Oh! How about this: We shift the start date to the first of the month, and shift the end date by the same amount
<infinisil> Then we just diff months and days
lunc has quit [Ping timeout: 264 seconds]
<infinisil> I think this might give a reasonable answer
<lovesegfault> what if the end date is 5.01 and the start date 4.30
<lovesegfault> what happens
<pie_> there are only 28 or 29 days in february
<pie_> or 27 sometimes?
<pie_> easiest thing still seems to be to roll the clock forward and see what happens xD
<infinisil> 2020-01-31 to 2020-03-30 becomes 2020-01-01 to 2020-02-29 so that's 1 month and 28 days
<lovesegfault> what is a month
<infinisil> lovesegfault: Then that's 04-01 to 04-2, and that's just 1 day
<lovesegfault> (i mean that question in earnest)
<infinisil> For this question, the duration of a month is dependent on the start/end dates
<lovesegfault> this is cursed
endformationage has quit [Quit: WeeChat 2.9]
* lovesegfault crosses arms
<infinisil> Hehe
<infinisil> Lemme quickly implement this
<lovesegfault> infinisil: now you have to tell me what this is for :P
<infinisil> Um, lemme think
<infinisil> I'm in a rabbit hole here
<lovesegfault> yes
<infinisil> Ohh yeah I wanted nicer output for transferTime
<lovesegfault> I still think the idea of "months elapsed" is not well defined
<lovesegfault> we _can_ define it
<infinisil> > transferTime (11.9 * PB) (5.0 * Mbps)
<{^_^}> "5288888:53:20"
<infinisil> Currently it just shows the hours as the biggest element of a duration
<infinisil> lovesegfault: Yeah definitely
<infinisil> We need to define it in a way that's somewhat reasonable and that has the least surprises
<lovesegfault> that's 30 days
<infinisil> lovesegfault: If we just define a month as 30 days then the difference between 2020-02-01 and 2020-03-01 would be less than a month
<lovesegfault> now let's see how they use Duration
<lovesegfault> ha
<lovesegfault> no "months"
<lovesegfault> lol
<infinisil> I can't be the first one to want to solve this problem!
<lovesegfault> there's no months anywhere
<lovesegfault> lol
* lovesegfault shurgs
<lovesegfault> *shrugs
<infinisil> > :v date
<{^_^}> date = import <nixbotlib/date.nix>
<infinisil> > date.diffDateTime (date.parseDate "2020-02-01") (date.parseDate "2020-03-01")
<{^_^}> { days = <CODE>; hours = <CODE>; minutes = <CODE>; months = <CODE>; seconds = <CODE>; years = <CODE>; }
<infinisil> > :p date.diffDateTime (date.parseDate "2020-02-01") (date.parseDate "2020-03-01")
<{^_^}> attribute 'parseDate' missing, at (string):455:50
<infinisil> > :p date.diffDateTime (date.parseDateTime "2020-02-01") (date.parseDateTime "2020-03-01")
<{^_^}> { days = 0; hours = 0; minutes = 0; months = 1; seconds = 0; years = 0; }
<infinisil> lovesegfault: ^
<infinisil> > :p date.diffDateTime (date.parseDateTime "2020-01-29") (date.parseDateTime "2020-03-01")
<{^_^}> { days = 1; hours = 0; minutes = 0; months = 1; seconds = 0; years = 0; }
sefu has quit [Ping timeout: 245 seconds]
<lovesegfault> infinisil: where's the code?
<infinisil> lovesegfault: For now: https://paste.infinisil.com/opEv0oFRlM.nix
<infinisil> See diffDateTime
<lovesegfault> infinisil: now that I think of it, how is this different than B.m - A.m?
<lovesegfault> (and B.d - A.d)
<infinisil> Well A.d can be bigger than B.d
<infinisil> Same for months
<lovesegfault> Right, fair enough
<lovesegfault> alright, yeah, I think this should work
<lovesegfault> LGTM
<lovesegfault> :D
<infinisil> I haven't tested this very well though!
<infinisil> I'll do some tests in #bottest to not spam here
<infinisil> I'm not yet convinced it doesn't give weird answers for edge cases
<lovesegfault> try mucking around february dates
<lovesegfault> and EOY to SOY diffs
* infinisil is mostly convinced it wworks
* energizer thinks falsehood lists (especially without explanations/examples/citations) are a subpar format for enumerating special cases
* lovesegfault agrees
* infinisil agrees too
<pie_> im open to suggestions
<pie_> lol Norway is not False - Norway's ISO country code is also valid YAML for False.
<infinisil> > transferTime (11.9 * PB) (4.5 * Mbps)
<{^_^}> "670 years, 4 months, 22 days, 23 hours, 12 minutes, 35 seconds"
<infinisil> Aww yeah
<lovesegfault> :D
<infinisil> (btw, this assumes that you start the transfer now, in order to calculate a number of months)
<infinisil> s/months/months and days
<lovesegfault> :D
<infinisil> > showDuration 100000
<{^_^}> "1 day, 3 hours, 46 minutes, 40 seconds"
<infinisil> The possibilities are endless now
<lovesegfault> > showDuration -100000
<{^_^}> value is a function while an integer was expected, at (string):456:1
<lovesegfault> infinisil: ^ should work :P
<lovesegfault> it should just ignore the sign?
<infinisil> Needs brackets for Nix to notice the -
<lovesegfault> > showDuration (-100000)
<{^_^}> "28 days, 20 hours, 13 minutes, 20 seconds"
<lovesegfault> :D
<lovesegfault> nice
<lovesegfault> > showDuration 0
<{^_^}> ""
<infinisil> > newYear = let now = date.epochToDateTime builtins.currentTime; newYear = { year = d.year + 1; month = 1; day = 1; hour = 0; minute = 0; second = 0; }; in "The year ${toString newYear.year} is ${date.prettyDuration (date.diffDateTime now newYear)} away!"
<lovesegfault> > showDuration 999999999999999999999999999999999999999999999999999999999999999
<{^_^}> error: undefined variable 'd' at (string):262:84
<{^_^}> error: invalid integer '999999999999999999999999999999999999999999999999999999999999999'
<infinisil> > newYear = let now = date.epochToDateTime builtins.currentTime; newYear = { year = now.year + 1; month = 1; day = 1; hour = 0; minute = 0; second = 0; }; in "The year ${toString newYear.year} is ${date.prettyDuration (date.diffDateTime now newYear)} away!"
<{^_^}> newYear defined
<infinisil> > newYear
<{^_^}> "The year 2021 is 9 days, 17 hours, 53 minutes, 37 seconds away!"
<lovesegfault> > showDuration (10.1)
<{^_^}> "10 seconds"
<lovesegfault> pretty cool
<infinisil> lovesegfault: Yeah negatives and floats aren't handled properly yet :P
<lovesegfault> negatives should be easy right? just do abs
<infinisil> Well, being pedantic and all, a negative number should mean going *back* in time
<infinisil> So the months aren't the same :P
<lovesegfault> sure but distance is the same in time forwards and backwards
<lovesegfault> right?
<infinisil> Not for months/days though
<lovesegfault> oh god not this again
<lovesegfault> :P
<pie_> oh no. thanks for the reminder <{^_^}> "The year 2021 is 9 days, 17 hours, 53 minutes, 37 seconds away!"
<infinisil> If you go back in time by 30 days on 2020-03-01, you jump over a month, but going forward it's less than a month :)
* lovesegfault nods
<infinisil> > timeTo = dateTime: let now = date.epochToDateTime buitins.currentTime; in date.prettyDuration (date.diffDateTime now dateTime)
<{^_^}> error: undefined variable 'buitins' at (string):403:52
<infinisil> > timeTo = dateTime: let now = date.epochToDateTime builtins.currentTime; in date.prettyDuration (date.diffDateTime now dateTime)
<{^_^}> timeTo defined
<infinisil> > timeTo (date.parseTime "2020-06-01")
<{^_^}> attribute 'parseTime' missing, at (string):458:9
<infinisil> > timeTo (date.parseDateTime "2020-06-01")
<{^_^}> "9 days, 17 hours, 48 minutes, 39 seconds"
<infinisil> Um
<infinisil> That's not right!
<lovesegfault> > timeTo (date.parseDateTime "2038-01-20")
<{^_^}> "17 years, 28 days, 17 hours, 47 minutes, 54 seconds"
<infinisil> > timeTo (date.parseDateTime "2020-12-25")
<{^_^}> "2 days, 17 hours, 47 minutes, 41 seconds"
<infinisil> Ah I guess just negative weirdness
<infinisil> > timeTo = dateTime: let now = date.epochToDateTime builtins.currentTime; in date.prettyDuration (date.diffDateTime now (date.parseDateTime dateTime))
<{^_^}> timeTo defined
<infinisil> > timeTo "2020-12-25"
<{^_^}> "2 days, 17 hours, 45 minutes, 26 seconds"
<lovesegfault> > timeTo "-1"
<{^_^}> value is null while a list was expected, at /var/lib/nixbot/lib/date.nix:112:17
<lovesegfault> > timeTo "0
<{^_^}> error: syntax error, unexpected $end, expecting '"', at (string):458:9
<lovesegfault> > timeTo "0"
<{^_^}> value is null while a list was expected, at /var/lib/nixbot/lib/date.nix:112:17
<lovesegfault> > timeTo "0000-01-01"
<{^_^}> value is null while a list was expected, at /var/lib/nixbot/lib/date.nix:52:24
<infinisil> Hehe
<lovesegfault> hulk smash
<infinisil> The last one doesn't work because unix epoch hasn't started yet
<infinisil> I think
<lovesegfault> > timeTo "1970-01-01"
<{^_^}> value is null while a list was expected, at /var/lib/nixbot/lib/date.nix:52:24
<lovesegfault> > timeTo "1970-01-02"
<{^_^}> value is null while a list was expected, at /var/lib/nixbot/lib/date.nix:52:24
<infinisil> Lol
* infinisil goes debugging
<lovesegfault> > timeTo "1980-01-02"
<{^_^}> "10 days, 17 hours, 43 minutes, 10 seconds"
<lovesegfault> LOL
<infinisil> > date.prettyDuration (date.diffDateTime (date.parseDateTime "1970-01-01") (date.parseDateTime "1970-02-25"))
<{^_^}> "1 month, 24 days"
<infinisil> > date.prettyDuration (date.diffDateTime (date.parseDateTime "1969-01-01") (date.parseDateTime "1969-02-25"))
<{^_^}> "1 year, 1 month, 24 days"
<infinisil> Yeah, that's unix epoch weirdness. But the thing before was negative time weirdness :)
<infinisil> > timeTo = dateTime: let now = date.epochToDateTime builtins.currentTime; in date.prettyDuration (date.diffDateTime now dateTime)
<{^_^}> timeTo defined
<infinisil> > timeTo (date.epochToDateTime 1700000000)
<{^_^}> "2 years, 10 months, 23 days, 15 hours, 48 minutes, 26 seconds"
<infinisil> > timeTo (date.epochToDateTime 2000000000)
<{^_^}> "12 years, 4 months, 25 days, 21 hours, 8 minutes, 15 seconds"
<infinisil> Nice
<lovesegfault> >timeTo "1980-01-01
<lovesegfault> >timeTo "1980-01-01"
<lovesegfault> > timeTo "1980-01-01"
<{^_^}> value is a string while a set was expected, at /var/lib/nixbot/lib/date.nix:45:13
<infinisil> (have to use date.parseDateTime again now)
<infinisil> lovesegfault: One problem I can think of however is that once such a date diff is made, you won't be able to use it for further calculations
<infinisil> So maybe it would be better to actually store the start and end dates directly, and only do the diffing for display purposes
<sphalerite> why not?
<infinisil> sphalerite: Because "1 month" is ambiguous
<sphalerite> oh right yeah. A month is just a terrible unit :)
<infinisil> Yee
lunc has joined #nixos-chat
<samueldr> about thirty ish days, except that one time where it was 18 days long
<samueldr> or even 16 days in greece
<infinisil> Very nice
waleee-cl has quit [Quit: Connection closed for inactivity]
cole-h has joined #nixos-chat
<lovesegfault> infinisil: you around still?
<pie_> hmm how do i translate whats going on with overrides into haskell speak
<bbigras> lovesegfault: I just saw your message about jq. nice! hey have you any idea why https://github.com/bbigras/nix-config/runs/1593770321?check_suite_focus=true#step:4:1 has no output?
aszlig has quit [Quit: leaving]
<lovesegfault> bbigras: I do not
<lovesegfault> I have to give that lints thing some love
<bbigras> lovesegfault: thanks. I saw that you added `--all-files`
<lovesegfault> I might just wait until pre-commit-hooks.nix works with flakes
<lovesegfault> Yeah, I added that, but idk if it makes a difference :P
<bbigras> I should know soon as it's supposed to fail on my repo.
<bbigras> yeah maybe good idea to wait for pre-commit-hooks.nix
<{^_^}> cachix/pre-commit-hooks.nix#67 (by Myhlamaeus, 12 weeks ago, open): Add nix flakes support
<lovesegfault> there's a PR up but it's abandoned
<lovesegfault> Hm, the wiki has sway being started as a user unit
<lovesegfault> but I've never managed to get that to work
aszlig has joined #nixos-chat
<lovesegfault> I have all my other things as systemd user units
<lovesegfault> but sway itself I start from the tty
<lovesegfault> I wonder if anyone has that working
<bbigras> yeah. or use a nice graphical login thing like gdm with it.
<lovesegfault> I really dislike gdm
<lovesegfault> there are some _really_ nice tui login managers these days
<lovesegfault> I've been lazy in adding them to nixpkgs and as a nixos module
<lovesegfault> e.g.
<bbigras> nice
<bbigras> yeah the lint is not working. I wonder if it's like the problem I had with nix-build-uncached. it wasn't running or something.
pinpox has quit [Quit: The Lounge - https://thelounge.chat]
<bbigras> not the problem I have right now, the one I had before.
<lovesegfault> Maybe
<lovesegfault> > shrug
<{^_^}> "¯_(ツ)_/¯"
<lovesegfault> Now I really want to get tuigreet
pinpox has joined #nixos-chat
<lovesegfault> I also want to unify all my color scheme configs
<lovesegfault> no idea how to do that yet
<bbigras> the "Access is restricted to authorized personnel only" part is a bit silly. but it looks nice
<lovesegfault> that's configurable
<lovesegfault> `-g` / `--greeting`
<bbigras> does those tui login manager work with gnome? it could be useful to allow the lady to use my computer.
<lovesegfault> I doubt it
<lovesegfault> AFAIK only GDM works with gnome
aszlig has quit [Quit: leaving]
aszlig has joined #nixos-chat
<bbigras> oh
<bbigras> yeah... my `.pre-commit-config.yaml` file was still in my .gitignore
<lovesegfault> :D
<lovesegfault> bingo
<bbigras> ah it doesn't seem to change anything :(
<lovesegfault> Might be worth trying to use the pre-commit-hooks.nix even though they're not a flake?
<lovesegfault> should be possible, AIUI
<bbigras> yeah I was thinking something like that
<ldlework> I have been working on a VR live-coding app where I can code the VR environment I'm in, from within it. I got it working today. If anyone wants to see it in action I could do a demo.
<energizer> yes ldlework
<siraben> ldlework: sounds interesting!
<ldlework> siraben: I can show you on Discord; but I'll get OBS/Twitch setup to show others.
<siraben> streaming on twitch would be good
ece has quit [Quit: Ping timeout (120 seconds)]
__monty__ has joined #nixos-chat
ece has joined #nixos-chat
<eyJhb> Wait what, sounds cool ldlework ! What is it made in?
<ldlework> Unity
<pie_> neat i think ive seen a similar thing before
<pie_> inb4 it was ldlework
<ldlework> I did actually make this several years ago as a test, but lost the code.
<ldlework> So it's entirely possible.
<__monty__> I missed what it is?
<ldlework> vr livecoding thing
<__monty__> For streaming? Or like a game you program while you're playing it?
<lovesegfault> Why does nix have it's own sandboxing?
<__monty__> lovesegfault: Because of its age and darwin.
<lovesegfault> I guess it's because there was no systemd-nspawn in 2003
<ldlework> __monty__: the latter
<lovesegfault> I constantly wonder whether or not darwin support is worth it
<lovesegfault> especially as Apple makes macOS more and more hostile to non-apple dev tools
<__monty__> Cool.
<__monty__> lovesegfault: Considering nix is imo the best tool to open it back up I think it'd be a mistake to drop it.
<__monty__> Don't think any other BSDs have nspawn support either?
<lovesegfault> freebsd has jails though
<lovesegfault> idk about the other bsds
<__monty__> I think TVL nix wants to do a sandboxing API that can in theory be backed by an arbitrary implementation.
<__monty__> Jails and linux containers aren't identical though.
<lovesegfault> Yeah, I was looking at that today, TVL nix
<lovesegfault> it's full of what I think are good ideas
<lovesegfault> 0-chance of being realized fully though, IMHO
<lovesegfault> and yeah, 1000% jails and linux containers aren't equivalent
<__monty__> I'm glad the project doesn't focus too much on linux. There's so many more cool things out there. I'm hoping Guix will do the heavy lifting for nix-on-hurd for example.
<lovesegfault> I just meant they're both ""native"" sandboxing mechanisms
<lovesegfault> Guix always makes me sad
<__monty__> Being independent means the projects can focus on different things and benefit from cross polination.
<lovesegfault> Right, I like _that_
<__monty__> As I see it many the people working on Guix wouldn't be working on anything nix-like if nix was the only option.
<joepie91> yeah, some fragmentation is valuable imo, just not too much
<lovesegfault> I dislike the "no nonfree sw" thing
<cole-h> That's why you're using Nix :D
<lovesegfault> like, when I got started with Nix my first thought was "this rocks, I wish it used a normal lang, with normal tooling"
<__monty__> I don't think they actively prevent it though? It's just their nixpkgs doesn't include unfree stuff?
<joepie91> lovesegfault: I tend to look at these sorts of things from two perspectives: 1) what can it do for me, and 2) what does it do for the ecosystem
<lovesegfault> __monty__: Yup, their nixpkgs has no nonfree pkgs
<lovesegfault> and there's no unified community nonfree either
<joepie91> lovesegfault: if something scores poorly in 1, I don't really care, I can just not use it. if it scores poorly in 2, that's a problem :)
<joepie91> and in the case of Guix, it only scores poorly in 1 but seems to have only positive effects on point 2, so I'm happy
<siraben> oh man the Guix community is repulsed by nonfree software
<joepie91> even if I would never use it
<lovesegfault> joepie91: fair enough, that's a nice way of looking at things
<lovesegfault> siraben: yeah
<siraben> they didn't even help me try to compile nonfree broadcom drivers when I just intermediately proficient at linux use several years ago
<lovesegfault> And like, I'm a working engineer
<siraben> exactly
<lovesegfault> I have work to do that, sorry, requires nonfree swe
<lovesegfault> yeah, it sucks, but I need it to buy food
<siraben> i have a small nonfree list of packages that i'm fine with using honestly
<siraben> right
<siraben> for me, i need it to complete my degree :D
<lovesegfault> Right, when I was in school the same applied for tools like Vivado
<siraben> "sorry professor, I can't use this software on my principle"
<joepie91> my metric for nonfree stuff is largely "does this involve a silo'd ecosystem"
<lovesegfault> maybe I should reframe me dropping out as a freedom issue :P
<siraben> i've only had to use quartus which is nonfree
<siraben> the other engineering students would use MATLAB or something
<__monty__> Octave didn't cut it?
<joepie91> I don't use nonfree chat systems to talk to friends, I don't use nonfree tools that are meant to be extended with custom plugins or otherwise require a large time investment (as that isn't recoupable), but nonfree drivers? eh, I don't care that much
<leons> lovesegfault: what a conincidence, I'm just now building a few bitstreams using Vivado... it's really ugly
<siraben> __monty__: shrug
<siraben> I'm pretty sure Octave would be fine
<siraben> but when you have to study for a test using MATLAB syntax, I doubt people would try
<lovesegfault> leons: yes, vivado is horrible. The only thing worse than vivado is ISE :P
<siraben> in any case, the hostility of the Guix community made me drop it after a brief moment
<__monty__> We had one. Not really a majority, no.
<siraben> only Nix got my interest back again when I was distro hopping, and after installation I was glad wifi worked haha
<lovesegfault> joepie91: nonfree things I use: firefox, widevine, slack, zoom
<siraben> isn't firefox "effectively free"?
<lovesegfault> intel microcode, and nonfree firmware
<lovesegfault> that's it, I think
<siraben> you'd have to use iceweasel or something
<lovesegfault> siraben: yeah, I want OG firefox
<siraben> joepie91: yeah, i understand dropping nonfree software but nonfree drivers is harder to deal withj
<lovesegfault> ^
<lovesegfault> effing microcode updates...
<siraben> that being said, my next laptop will hopefully not need any nonfree drivers
<siraben> looking at purism/system 76
<V> if microcode is nonfree, arguably the hardware should be considered such as well :)
<lovesegfault> I wonder what my work life will be like post-covid
<siraben> zoom is pretty awful
<joepie91> siraben: of those two, system76 seems to be the better choice, ethically. purism has a... questionable track record
<lovesegfault> V: Sure, I agree. Doesn't change the fact that I need to eat and work, etc
<siraben> joepie91: oh? how come?
<joepie91> whereas I don't really know of anything to fault system76 for
<lovesegfault> siraben: zoom sucks ass
<siraben> lovesegfault++
<{^_^}> lovesegfault's karma got increased to 41
<lovesegfault> depending on post-covid work I might just build a desktop and leave my laptop for my office workdays
<siraben> IIRC purism only had miscommunication woes
<joepie91> siraben: they have a habit of overpromising and then weaseling their way out of their promises (something with binary blobs on supposedly 'free' hardware, don't recall the details), and the librem.one thing was an absolute shitshow
<siraben> not unlike reMarkable tbh
<V> "only"
<siraben> oh then much worse
<lovesegfault> screen sharing simply doesn't work with sway, so I use tmate for my demos, lol
<lovesegfault> my team hates it, I think
<siraben> joepie91:that's unfortunate
<V> for whatever reason they had a middleman for their hardware
<cole-h> lovesegfault: Just record it ;P
<siraben> lovesegfault: i recently switched to sway
<V> which seems odd for a company specialising in... free hardware
<joepie91> siraben: they basically took a bunch of open-source federated stuff, rebranded it as librem.one and presenting it as their own product without being clear about who actually did the work (ie. the upstream), *and* then instituted a moderation policy of "we're not responsible for what our users do", ie. it became a source of abuse
<lovesegfault> siraben: I'm all in on fancy nix nonsense: https://github.com/lovesegfault/nix-config
<siraben> since i'm on a mac, anything involving screen share I reboot in macOS, it's ugly but gets the job done until I figure out xephyr
<lovesegfault> I used a macbook for a bit
<siraben> joepie91: sigh, that's unfortunate
<lovesegfault> but I just couldn't deal with macOS
<joepie91> siraben: so they are... not liked, in the various federated communities
<joepie91> yeah :/
<lovesegfault> went to a thinkpad
<lovesegfault> that also sucked
<joepie91> system76, OTOH, seems to be squeaky clean ethically, from what I've seen
<siraben> lovesegfault: nice, will take a look
<lovesegfault> system76 is really nice, IMHO
<bbigras> lovesegfault: screen sharing should work with sway and firefox-wayland (there's an open issue right now I think), and no idea if it works with zoom.
<V> yeah, system76 is great AFAIU
<lovesegfault> I mean, the laptops kind of suck b/c it's hard to make competitive laptops
<lovesegfault> but support wise it's top notch
<siraben> i recently exorcised dmenu for bemenu
<lovesegfault> bbigras: the issue is zoom sucks on the browser
<lovesegfault> like, almost unusable
<bbigras> ☹️
<lovesegfault> it's their shitty Qt app or nothing
<siraben> yeah zoom on the browser is terrible
<siraben> can't we just all use jitsi
<lovesegfault> tell that to my SV peers
<bbigras> and I doubt the pipewire sharing wouldn't work with their qt app
* siraben throws fists at corporate
<lovesegfault> they will throw up
<siraben> lovesegfault: how come?
<joepie91> siraben: Jitsi seems to run into a lot of scalability problems
<joepie91> for larger calls
<bbigras> I'm able to use jitsi at work. but it's like only with my boss.
<siraben> zoom is only good because of the scalability?
<lovesegfault> bbigras: they do a runtime check on whether you're running GNOME, lol
<joepie91> siraben: yes basically
<bbigras> lovesegfault: oh
<lovesegfault> siraben: they looooove zoom
<joepie91> siraben: that's the main reason I've heard for using zoom, it Just Works with acceptable call quality even in large calls
<lovesegfault> because "it just works"
<bbigras> is the big blue button thing better at scaling?
<siraben> i usually try to use Discord instead but ethically that's no better
<joepie91> bbigras: somewhat, it seems
<joepie91> Discord doesn't do video calls does it
<lovesegfault> discord is worse than zoom, IMO
<siraben> it does
<bbigras> yeah I think I heard something about that
<joepie91> oh.
<lovesegfault> b/c it's reach is longer
<siraben> but people don't really use it
<lovesegfault> no one builds communities on zoom
<siraben> i mostly use it for voice calls and text chat
<lovesegfault> but discord has people on a leash
<siraben> lovesegfault: yeah it's infectious
<lovesegfault> b/c they've built their communities there
<joepie91> but yeah, as I understand it, neither Jitsi nor BBB come close to the scalability of a Zoom call, from what I've seen of various people trying to get Jitsi/BBB going
<lovesegfault> my espresso aficionado friends only hang on discord
<siraben> discord scales pretty well actually, but that's because people are on voice
<lovesegfault> I hate it
<joepie91> so like, if you're looking for a place to put your time, that's the place :P
<lovesegfault> slack is another POS
<joepie91> siraben: well sure but if you just want voice, just use Mumble
<lovesegfault> this stuff all sucks
<siraben> joepie91: yeah i've heard of that
<lovesegfault> but I'll reiterate, food > software quality
<joepie91> Mumble is pretty great for voice IMO
<bbigras> a lot of open source projects uses discord and I'm sad about it
<siraben> lovesegfault: exactly, and that's really the bottom line isn't it
<lovesegfault> bbigras: yeah, that's patheticville
<lovesegfault> siraben: Pretty much, really
<joepie91> bbigras: yeah that is a fucking pain
<siraben> bbigras: including Nix, there's an unofficial (?) discord
<siraben> jonringer is active on it
cole-h has quit [Quit: Goodbye]
<joepie91> bbigras: I hope that once Matrix gets a sensible communities ("spaces") implementation, that will change
<lovesegfault> I mean, IRC kind of sucks, I get it
<joepie91> it's the #1 thing I've seen Discord refugees ask for
<siraben> oh yeah, thoughts on Matrix?
<lovesegfault> I'm just hoping Matrix takes off
<siraben> I use it often
<bbigras> joepie91: yeah me too
<joepie91> followed somewhat closely in spot #2 by voice rooms
<siraben> well via Element client heh
* joepie91 is talking here via Element -> Matrix
<bbigras> me too
<siraben> same
<joepie91> lol, are we secretly a matrix room already
* lovesegfault runs weechat in tmux in a GCP instance :P
<lovesegfault> and then I just use mosh
<LinuxHackerman> what? noooo
<joepie91> lovesegfault: you know, there's a matrix plugin for weechat... :P
<lovesegfault> joepie91: inertia
<joepie91> hehe
<siraben> joepie91: yeah i want to switch to that eventually
<siraben> reduce bloat of using chromium in kiosk mode to chat via Element
<joepie91> more seriously: spaces are currently being worked on, a lot, and I'd expect them to land soon-ish (probably measured in months)
<bbigras> lovesegfault: that explains if you don't reply to pings. haha
<siraben> did you all hear about the Matrix acquisition of Gitter?
<bbigras> no push notification on your phone
<lovesegfault> FWIW my first job, a co of ~20 people, used IRC for comms exclusively and it was fine :P
<bbigras> yah
<bbigras> yeah*
<joepie91> voice channels are not on the official element roadmap I believe, but there have been some third parties showing interest in working on that, via mumble-web
<siraben> i think they're in the intermediate stage now, bridging all the gitter rooms
<lovesegfault> bbigras: Yeah, pings don't work for me :P
<joepie91> and as a workaround, you could add a mumble-web widget to your room
<lovesegfault> I mean, whenever I look I see the red chan
<lovesegfault> but I don't get notifications
<joepie91> <siraben> did you all hear about the Matrix acquisition of Gitter?
<siraben> lovesegfault: nice, where do companies that use IRC exist these days
<joepie91> yeah
* V has notifications on phone w/ quasseldroid
<joepie91> well
<joepie91> Element acquisition*
<joepie91> not Matrix
<lovesegfault> siraben: back at home in Brazil; Stoq
<siraben> opps yeah
<lovesegfault> they built FOSS POS software
<joepie91> Matrix Foundation is not involved :P
<lovesegfault> sponsored by canonical
<joepie91> but in hindsight it's a logical acq
<lovesegfault> got acquired recently, I think
<V> IRC is the most reliable of all of my chat platforms actually
<joepie91> Gitter was pretty much limping along, soon to be dead, it seems
<siraben> FOSS in Asia is even more niche than in western countries, my perspective at least
<V> works excellently on flaky connections
<joepie91> and this gives a home to Gitter communities, without breaking their clients, and expands the Matrix userbase
<joepie91> so it... makes sense, really?
<lovesegfault> Brazil is big on foss
<lovesegfault> but that's just because we're born cheap :P
<siraben> Great, IIRC they have hospitals running on GNU medical software
<joepie91> V: honestly I've found Matrix to work way better on flaky connections :P
<lovesegfault> I really think FOSS stands to shine in weak economies
<siraben> who at apple thought T2 would be a good idea...
<lovesegfault> where paying for foreign SW is even more expensive
<joepie91> V: though that is largely due to client design, clients just retain messages until reconnect (or timeout)
<V> joepie91: I'd perhaps consider using Matrix if it didn't require god knows how much RAM and disk space to run a homeserver
<siraben> I still have a Late 2013 13 inch and a few models later Linux is impossible to install
<joepie91> yeahhhhhhh, Synapse is a pain
<lovesegfault> Like, as a kid I couldn't afford a single piece of SW (windows, office, games, etc)
<siraben> lovesegfault: yeah, that makes sense
<joepie91> V: good news though: Conduit is steadily progressing
<lovesegfault> that's how I got started with Linux :P
<V> yeah, so I hear :)
<joepie91> V: and seems to be performing waaaaaay better than Synapse or even Dendrite
<V> I'll likely get into things once that's ready for production use
<siraben> lovesegfault: there's also, cough pirating cough
<lovesegfault> siraben: yes, super common in BR as well
<bbigras> joepie91: I have been waiting for a rust matrix server for so long... ruma seemed to have stalled for years before conduit was a thing.
<lovesegfault> b/c we don't enforce copyright law at all
<joepie91> yeah
<joepie91> Conduit uses ruma stuff though
<lovesegfault> which is wonderful
<joepie91> I guess that in a sense, it's sort of a spiritual successor
<bbigras> yes I know
<V> give a kid cracked photoshop, they'll have software for a year. teach a kid how to crack software, they'll have an obsession for life :p
<lovesegfault> but we had a father's day at school and one of the dad's worked at canonical and gave us all ubuntu CD's
<bbigras> it's more that Ruma went nowhere for a long time. it was frustrating as I wanted Rust to steal the show.
<lovesegfault> so I installed it and... well
<lovesegfault> here I am
<bbigras> gateway drug
<lovesegfault> yes, lol
<bbigras> first hit is free
<joepie91> V: wonder if that's where the 'hacker culture' in Brazil comes from
<bbigras> well current his is free too. except your time/soul maybe
<bbigras> hit*
<lovesegfault> lost my life to that ubuntu CD
<joepie91> lol
<siraben> China's hardware hacking scene is unparalleled, some guy made an iPhone from scratch
<siraben> oh the things you can do if you just ignore copyright
<lovesegfault> I wrote a whole giant rant about copyright when I was in school
<lovesegfault> it's on my blog, IIRC
<joepie91> fuck copyright, that is all
<lovesegfault> Where I go through the legal argument for why the current application is BS
<lovesegfault> it's about DRM but applied in general
<siraben> what about for arts/music artists?
* lovesegfault finds link
<siraben> they too need food
<joepie91> still fuck copyright :)
<joepie91> yes, copyright does not provide that
<joepie91> the entire premise that copyright "protects artists" just isn't true
<lovesegfault> I talk about artists there
<joepie91> it's not just a solution with bad side-effects; it's not a solution at all to begin with
<siraben> lovesegfault: nice, saved
<siraben> joepie91: I see
<lovesegfault> Favale, Marcella. “Death and Resurrection of copyright between Law and Technology.” Information & Communications Technology Law, vol. 23, no. 2, Apr. 2014, pp. 117–135., doi:10.1080/13600834.2014.925631.
<lovesegfault> HIGHLY RECOMMENDED
<lovesegfault> This paper is super illuminating on the whole lopic
<viric> I'm trying to understand rmlint replay
<lovesegfault> *topic
<joepie91> like, generally the copyright holder is the publisher, not the artist, and it is used to control the artist. artists are under constant threat of lawsuits for making something similar to something else. and so on
<joepie91> all the whole copyright clearly isn't preventing piracy
<joepie91> neither is DRM
<lovesegfault> joepie91: This is not true, the copyright is shared
<viric> Can any English explain what does "lint" mean? as in Preprocessing (reduces files to 35028 / found 29726 other lint)
<joepie91> and DRM-free things can make people money too
<joepie91> so the entire premise doesn't hold up
<lovesegfault> between composer, performer, etc
<joepie91> siraben: or another way to phrase it: if copyright worked, we wouldn't have the meme of "starving artist"
<sphalerite> joepie91: ok but MORE money!
<lovesegfault> copyright does not have as it's goal to "prevent" piracy, the law far far far far predates the concept
<lovesegfault> DRM is about privacy
<joepie91> lovesegfault: not so much shared as that they hold copyrights to different pieces, and it often still goes to a publisher
<lovesegfault> this is the original copyright law
<sphalerite> unrelated: GAH I HATE FAIL2BAN
<joepie91> siraben: anyway, I fully agree that "artists need food" is a legitimate concern. I just disagree that an economic monopoly (because that is what copyright is!) is the solution to that, and I *also* disagree that this is a problem specific to artists, because really it applies to any sort of thing which is difficult to make profitable but beneficial to society, and so a broader solution is needed
<viric> meh. nixpkgs rmlint encodes filenames wrong wrt utf-8
<V> viric: you want #nixos or #nixos-dev
<joepie91> lovesegfault: note: I'm arguing against the common perception of copyright here, not its formal history :)
<siraben> joepie91: of course, it's generalizable to those kinds of professions as well
* siraben throws hands at the state
<lovesegfault> joepie91: Ah, well, "common perception" is not well-defined enough to yield productive debate IMO :/
<viric> V: why would I?
<joepie91> lovesegfault: depends on the purpose of the debate
<viric> V: I talk about rmlint
<V> viric: b/c nixpkgs-related stuff is offtopic in here
<siraben> viric: on topic is off topic for this chnanle
<siraben> channel*
<viric> come on.
manveru has joined #nixos-chat
<viric> I don't even mean there is a fixed rmlint version anywhere
<joepie91> lovesegfault: like, there's a difference between a legislative debate and an ideological one, for example
<lovesegfault> joepie91: even if purpose is just to "talk about the same thing"
<joepie91> in the latter, it very much does matter how the specific person you're debating with, perceives the topic of debate
<JJJollyjim> i think you can idly complain about something nixpkgs-related in here V
<lovesegfault> joepie91: Sure, a difference in focus but they share a lot of state
<viric> moreover I don't know you V or siraben so I won't take your advice.
<V> wow rude
<siraben> wat
<joepie91> hey, uh, let's maybe not do this
<lovesegfault> ^
<lovesegfault> please, no rudeness
<lovesegfault> or I'll go to sleep and no more DRM talk
<siraben> viric: it's in the title of the room, i'm sure someone would be glad to respond to your question in #nixos
<viric> I understood I was told to shut up.
<V> no, you were asked to ask the question in the other channel
<joepie91> I'm not sure why this escalated so quickly. yes, Nix-related questions should go into the on-topic channel. but it's also not uncommon for people to vent here without necessarily expecting a solution...
<viric> joepie91: exactly
<ldlework> Should I bother starting a short demo stream? I think I got it all working? siraben energizer
<siraben> so if the perception that copyright helps artists/similar professions whose work is not profitable is flawed, how does one help them?
<joepie91> if 'venting' is specifically the intention, this channel would probably actually be more suited, since venting disrupts technical questions :)
taktoa[c] has joined #nixos-chat
<JJJollyjim> (oh i didn't read the scrollback and see there was an actual question to some extend)
<JJJollyjim> *extent
<siraben> going a bit further, should the state provide some base compensation?
<siraben> to everyone?
<viric> I don't know much what venting means exactly but I was throwing rmlint questions because there may happen to be a rmlint-aware person here that may be willing to help
<lovesegfault> siraben: Not the state, no
<siraben> ldlework: could you also record it? i'll be mobile-only for a bit
<lovesegfault> viric: if you want to vent, here is appropriate. if you want to fish for answers, #nixos is appropriate
<joepie91> siraben: from a "direct action" perspective: by supporting artists (ie. buying their work, donating, providing them support in getting funding, etc.). from a short-term society-wide perspective: influence public opinion towards arts to value directly(!) funding artists and other good-but-unprofitable ventures. from a long-term society-wide perspective: honestly, probably UBI.
srhb has joined #nixos-chat
<viric> V: I didn't ask any nix-related question.
<viric> or nixpkgs or any nix*
ghuntley has joined #nixos-chat
<joepie91> from a long-long-term society-wide perspective: maybe capitalism wasn't so hot an idea?
<viric> anything I asked was about English and at most rmlint
<lovesegfault> joepie91: out of scope :P
<lovesegfault> this is also a great read, fwiw: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=267848
<siraben> joepie91: yeah I was thinking about UBI-based solution
<V> joepie91: asking the real hard questions here :p
<lovesegfault> I'm not american, but the paper works to derive copyright from the 1st amendment which is pretty cool
<lovesegfault> (to be clear, I'm a staunch syndicalist, but I don't want to go beyond the scope of copyright & DRM right now)
<lovesegfault> God, I can't believe I cited Hegel i was such a douche
<joepie91> lovesegfault: nah, not out of scope. copyright as it is currently applied is a tool of capitalism :)
<lovesegfault> joepie91: sure, but not all tools of capitalism are bad, even if the underlying system is (c.f. welfare, universal healthcare, etc)
* joepie91 shall give those things a read at some point
<V> not so much the tools as the motivations
jackdk has joined #nixos-chat
<joepie91> lovesegfault: that's precisely my point though. *especially* for multipurpose tools, it seems worth evaluating the underlying system that's driving a certain use of it
<ldlework> energizer: siraben: https://youtu.be/Y7XLrValfMk
<lovesegfault> IMO motivation is intractable and doesn't matter. Effect is the only reality
<__monty__> viric: Lint is harmless bunches of dust/fibers, like the stuff that collects in a pocket. Code linting refers to identifying and possibly removing all the little bits of cruft that have snuck into a codebase. They're not problems that cause compiler errors or even necessarily semantic errors but they (subjectively) deteriorate the codebase all the same. There, that's my interpretation of "linting."
<lovesegfault> joepie91: I mean, in a larger scale sure I agree; but at the same time that just causes any conversation about any problem of capitalism to infinitely expand in scope
<lovesegfault> whereas I like to have focused discussion on things that can be improved easily, like copyright
<viric> __monty__: ahhh
<lovesegfault> it's just, idk, less chaotic to talk about :D
<viric> __monty__: rm lint as in "remove the lint" as in files you already have and can get rid of
<joepie91> lovesegfault: *can* copyright be improved easily, though? I'm not convinced
<viric> __monty__: thank you!
<joepie91> all the usual reform proposals etc. fail to address the actual problems with it
<joepie91> and abolishing it is going to require some sort of replacement, even if just for people's subjective perception rather than any real effect
<ldlework> eyJhb: pie_ __monty__: https://www.youtube.com/watch?v=Y7XLrValfMk
<lovesegfault> joepie91: depends on your definition of easily. it's purely legislative which for me falls under "easy"
<joepie91> lovesegfault: is it, though?
<lovesegfault> joepie91: is it purely legislative or are purely legislative processes easy? Which one are you quesitoning?
<viric> likely I have some filename in non-utf8 and that's ruining rmlint listings... how would you find a non-utf8 filename in a large tree?
<siraben> yeah I guess discussion about copyright inevitably becomes one about capitalism, but that's a hairy problem to tackle
<ldlework> siraben: look at my link already!
<ldlework> I need instant validation, you know dis.
<ldlework> lol
<siraben> ldlework: i would but i'm walking in public rn
<ldlework> oh hehe
<joepie91> lovesegfault: that it's purely legislative, mainly
<siraben> when i sit!
<lovesegfault> joepie91: Oh, that I think is hard to argue. copyright exists solely as law, any change happens entirely within the legislative process
<bbigras> don't fall in a manhole
<joepie91> lovesegfault: copyright as a legislative concept is adhered to... "flexibly", to put it politely. it seems to have much more value to people as a mental model of what is and isn't acceptable, morally speaking
<lovesegfault> (mostly of the US)
<lovesegfault> you can't use a moral argument to make a claim about something's legal standing :
<lovesegfault> *:/
<lovesegfault> type mismatch
<joepie91> which means that you not only need to change the law, but also need to change the common perception of what is moral and what isn't, which is influenced by that legislation but not directly controlled by it
<ldlework> rip my need for instant validation
<siraben> quick someone botflood his stream
<joepie91> lovesegfault: most of copyright *among small creators* doesn't happen in legal venues though
<lovesegfault> law can advance faster than morality, or slower. There isn't some universal case here
<joepie91> that's pretty much just the domain of big corps
<siraben> it's only 30 s?
<ldlework> ya
<lovesegfault> (c.f. gay marriage in the US)
<siraben> ah thought you were streaming
<siraben> ldlework: oh that's neat
<siraben> how are you typing?
<ldlework> with my keyboard
<sphalerite> mind: blown
<siraben> oh yes of course lol
<siraben> people don't dev in VR already?
<siraben> as in within VR worlds themselves
<ldlework> there is Neos VR but it is restricted to an in-world visual node-based scripting thing
<siraben> in before you break the spacetime fabric but it was just in-game
<ldlework> Even though the underlying technology supports distributing raw C# assemblies; but the author wont enable that because of "security reasons"
<ldlework> >:
<siraben> ldlework: sounds like unfree software
<ldlework> But this thing I've made is a pretty neat way to give yourself a serious case of megalophobia; which is pretty fun
<ldlework> I like making 2D arrays of spheres that are super massive, and then making them go up and down on slightly varying sine-waves.
<ldlework> It's super vertigo inducing lol
<siraben> megalophobia?
<siraben> i only know megalomania
<ldlework> terror of huge things
<ldlework> like
<ldlework> i can make the spheres absolute massive
<ldlework> lol
<ldlework> like planet size
<siraben> yoikes
<ldlework> it's super unnerving
<joepie91> does emacs not have a VR mode yet?
<ldlework> but also fascinating and interesting
<siraben> i wish i had a VR heaset
<siraben> headset
<siraben> is that FB oculus thing pretty hackable ?
<ldlework> I mean I could stream Emacs into the VR, it's streaming the desktop. Just nothing quite beats Visual Studio / Rider for C# dev
<joepie91> VR is neat but unfortunately also very closed
<joepie91> siraben: assume "no"
<siraben> see, ugh
<joepie91> siraben: new units will not even work without an FB account
<ldlework> They have a switch you can flip to enable sideloading arbitrary APKs
* siraben throws fists for the third time this evening
<ldlework> The FB account is required to interact with their store
<ldlework> Just like any other device, Xbox, playstation, etc
<joepie91> siraben: and they will actually lock you out from your headset if your FB account gets banned, eg. because it uses fake details -- you even lose access to your purchases
<ldlework> And to use their social features, again, just like xbox, etc
<joepie91> siraben: both German and US regulators are currently looking into this though
<siraben> joepie91: bruh
<siraben> RMS was right, yet again
<sphalerite> didn't they also ban someone for posting about breaking his neck while using it?
<ldlework> It doesn't brick your device...
<joepie91> far as I know, it does now
<joepie91> since the recent changes
<ldlework> The actual, practical, problem is that use activity of your device can get your linked facebook account banned, which may be annoying for you if you use Facebook
<ldlework> it will not brick your device..
<viric> hm apparently I have some filenames un cp1251 that converted to utf-8 have "ambiguous output". I can't imagine what from cp1251 is ambiguous translating to utf-8
<ashkitten> ldlework: the main thing is it requires facebook to use, and i don't have a facebook account or want to ever have one
<ldlework> Yeah, I mean, there is that.
<ldlework> But it's no different than any other consumer device like gaming consoles.
<ashkitten> it is
<ldlework> you need an XBox Live account to use XBox Live and the XBox store
<V> sphalerite: they deleted his entire facebook account
<ldlework> it's exactly the same
<sphalerite> I can play games on my DS just fine without an account :D
<siraben> for that stuff, it doesn't mean i can put food on my table any more effectively
<joepie91> ldlework: no it isn't
<ashkitten> yes, but facebook is different because it's fkn facebook
<joepie91> ldlework: it *was* the same when there were separate Oculus accounts
<ldlework> sphalerite: yeah but you can't use any multiplayer games without a Nintendo account
<joepie91> that is what is changing now
<joepie91> (but also even that situation was already crap)
<sphalerite> ldlework: yes I can!
<ldlework> How can you use XBox live or Xbox store with some third party account?
<ashkitten> imagine if playstation needed a twitter account to use. that'd be different than a playstation online account
<joepie91> ashkitten: don't say that so loudly! <.<
<ldlework> Facebook owns the thing
<joepie91> you will give them ideas
<ldlework> Saying "it isn't an oculus account" is pointless as the relevant company is facebook.
<joepie91> ldlework: are you looking to understand the issue that people have or are you just trying to be right
<siraben> is LinkedIn onto this yet
<ldlework> you haven't denoted what the difference is
<ldlework> as soon as you do that i'll be compelled to agree with you
<joepie91> you haven't asked
<ldlework> accusing me of bad faith is pointless
<joepie91> hence why I'm asking what your intention is here
<ldlework> you've made the claim and I've demonstrated how it is the same
<siraben> hey let's be nice
<ldlework> and you just said
<ldlework> "no it's the same!"
<joepie91> okay, so you're just trying to be right, got it
* ldlework blinks.
<ashkitten> okay i need to sleep anyway
<joepie91> then let's not do that
<ashkitten> i shouldn't be arguing pointless stuff
<ldlework> Guess we'll never hear the proposition that denotes the difference between them.
<joepie91> not with that attitude you won't, no
<ldlework> the attitude of stating things in counter-argument, yeah how evil of me
<ldlework> "these things are different"
<ldlework> "no they're the same, because of X, Y, Z"
<ldlework> "your attitude is bad"
<ldlework> "how are they different!"
<ldlework> "i wont tell you!"
<ldlework> k
<JJJollyjim> 🙄
<joepie91> ldlework: what part of "I do not want to have this discussion with someone who shows zero interest in my concern" is not clear to you? we're not in some sort of formal debate club here
<ldlework> literally asking you for the difference that you claimed exists
<ldlework> and you dodge by saying i'm not interested
<joepie91> you are being unnecessarily aggressive and hostile and I am not going to entertain that
<ldlework> based on the fact i have my own opinion
<ldlework> makes perfect sense
<ldlework> i disagreed with you and gave my reasons
<ldlework> to which you accused me of bad faith
<ldlework> and now I'm defending myself and pointing out how baseless that was
<joepie91> <joepie91> you are being unnecessarily aggressive and hostile and I am not going to entertain that
<ldlework> and you are just continuing to retreat into that
<ldlework> you are hostile when you accused me of bad faith for disagreeing with you
<ldlework> it's projection
<__monty__> ldlework: Heh, cool. I could see this being pretty fun. Maybe with a nice and easy API though cause who wants to be thinking of matrix transpositions and the like while playing a game : )
<ldlework> __monty__: Oh I was thinking of doing more of a twitch-stream thing where I just fuck around and make stuff on the spot.
<ldlework> But yeah I have been thinking of a higher-level API so I don't have to do so much work for each thing.
<ldlework> VR interactions are also fairly complex and not easy to just "whip up"
<siraben> ldlework: so is this hot-reloaded?
<ldlework> yeah as soon as i save
abathur has quit [Read error: Connection reset by peer]
abathur has joined #nixos-chat
<ldlework> One thing I wanna try is a bow-and-arrow, where when you shoot it, you go flying with the arrow you shot. XD
cosimone has joined #nixos-chat
<__monty__> You must have an iron stomach cause I hear some people get motion sickness just from standing still and looking around in VR.
<ldlework> Yeah it seems to be a spectrum. There's like two apps that have given me problems. Google Earth being the worst. It has a lot to do with the subtleties of the locomotion involved. The acceleration curves and stuff. Google Earth is something else...
<siraben> VR is great fun, I myself never felt motion sickness
<siraben> ok i recall Google Earth being nauseous
<siraben> but superhot/the Lab/beat saber were fine
<bbigras> did you try a driving game with vr?
<ldlework> DiRT Rally is one of the best things you can do in VR
<siraben> nope, that'd confuse the heck out of me
<bbigras> yeah. it's weird. when you take a tight turn, it feels super weird at first. since your brain and ears balance thing don't agree or something. a friend enjoy it a lot, you get used to it
<joepie91> wonder if the motion sickness issued I had with Obduction were due to its absence of an accel curve
<joepie91> though I still think that "trying to VR over a USB2 cable" was a big factor as well
<ldlework> My problem with Obduction in VR was just the performance. :(
<joepie91> I did experience jitter but that seemed related entirely to the USB2 cable
<ldlework> It was timewarp hell for me. I never even really got started with it. I heard it had some beautiful stuff in it.
<joepie91> anyway I played most of the game in non-VR
<joepie91> and yes, it's a beautiful game
<ldlework> Myst just came out for Quest
<joepie91> ldlework: also, "timewarp hell"?
<ldlework> I've played and beaten Myst so many times I'm not sure I can stomach going through it again, lol but I might.
<siraben> joepie91: probably the lag and such is disorienting
<ldlework> joepie91: Timewarp is the crazy frame interpolation lag-compensation thing built into Oculus tech
<joepie91> siraben: I didn't experience any lag
<siraben> oh the hardware tries to compensate?
<joepie91> at least, no persistent lag, just the jittery lag when a lot of the image changed
<joepie91> ldlework: huh, not familiar with that
<joepie91> but yeah, my jittery lag felt exactly like typical "compressed video over a too-slow connection" lag
<__monty__> ldlework: Articles like this really don't read as if you can use an Oculus Quest 2 without a facebook login tbh, https://www.pcgamer.com/researchers-have-bypassed-the-oculus-quest-2s-forced-facebook-login/
<__monty__> Jailbreaking being possible doesn't change that imo.
<ldlework> __monty__: it's for sideloading apks, a feature you lose if you don't have a facebook account
<ldlework> does nintendo or sony give you the ability to sideload third-party content onto their devices at all?
<__monty__> Don't think you need an account to simply play a game on a switch or a ps5 for that matter, do you?
<ldlework> no, but if you create homebrew and want to load it onto the device
<ldlework> you need to jailbreak those devices
<ldlework> because those companies don't have any feature for that
<ldlework> if your facebook account gets banned, you lose dev access and cannot sideload apks through the official way of doing that, and therefore people trying to jailbreak the quest
<ldlework> so they can do it without fb account
<ldlework> just like on all the other devices out there
<__monty__> That's not quite what the original issue is about though. It's about not being able to simply use the device without a facebook account, as a normal user, not as a homebrewer.
<ldlework> yes, but where is the evidence of that?
<ldlework> that article isn't it
<ldlework> i am happy to know differently, i just haven't seen any evidence you wont be able to use your device at all without an oculus account
<__monty__> There's at least a dozen articles claiming this and no articles claiming the contrary.
<ldlework> where's an article that says you can't use the device at all?
<__monty__> "The social media outfit's controversial enforced account login with its latest VR headset and platform has caused quite a ruckus"
<__monty__> That's from the one I linked.
<__monty__> Enforced account login doesn't sound like "You don't need to log in if all you want to do is play a game."
<ldlework> __monty__: would you stake your life on this over that one quote?
<__monty__> No, I won't stake my life on most things.
<JJJollyjim> what
<__monty__> But every article I found claims the same. So did LTT in their review.
<ldlework> that quote is compatible with what i said too, it's ambiguous.
<__monty__> I literally tried to find just one article that said you can play a game on the Oculus Quest 2 without logging in to facebook/oculus. The latter doesn't count because it might have an expiry date in 2023.
<ldlework> why would there be articles saying you can if there isn't actually this issue in the first place
<ldlework> and it was some confusion over their tos and anti-facebook rhetoric?
<ldlework> I can't find any thing on reddit of anyone getting banned and their quest being bricked
<ldlework> in either /r/quest2 or /r/quest
<__monty__> I'd expect some documentation on the oculus site and I'd definitely expect proponents to defend the product? Same reason you're even having this discussion.
<ldlework> i don't know why they'd document a hoax, if it is one
<joepie91> this is a weird hill to die on.
<__monty__> I'd expect they'd document how to play a game without a facebook login, even if it's just to counteract the "fake news media."
<ldlework> not sure who's dying on a hill, i am just saying i have seen evidence that you lose your dev access and apk sideloading ability, i haven't seen any actual evidence that you cannot use the device to play games at all
<ldlework> i'm plenty willing to believe/know otherwise when there is good reason to
<ldlework> more bad faith attacks for no constructive reason
<ldlework> __monty__: https://www.tomshardware.com/news/oculus-quest-2-users-banned-from-facebook#:~:text=Oculus%20announced%20earlier%20this%20August,to%20actually%20use%20their%20purchase.
<__monty__> ldlework: That looks like all the other articles that say you need a facebook account for Oculus Quest 2?
<ldlework> seem so
lunc has quit [Ping timeout: 260 seconds]
spudly1 has quit [Ping timeout: 264 seconds]
spudly1 has joined #nixos-chat
<patagonicus> Yay. Managed to reduce the number of times stuff has to be copied to create the system image from three to one. :)
<siraben> patagonicus: on your system?
<patagonicus> siraben: This is for SD images with LUKS, so it's homebrew anyway. Instead of having Nix build the root ext4 image (which copies everything needed to a directory first, then creates an image for it -> 2 copies) and then copying that image into the LUKS container, I know just give my script the closure info and copy the individual store paths to the
<patagonicus> LUKS container directly.
<patagonicus> Plus I don't end up with the ext4 images lying around in the nix store, since they don't really add much value anyway.
<viric> I can't make any sense of rmlint wrt symlinks or replay
<LinuxHackerman> patagonicus: nix copy would probably also do
<viric> even with created test directories I can't understand it
<siraben> oh I see, nice!
<patagonicus> LinuxHackerman: nix-copy-closure? That seems to only work via SSH.
<patagonicus> Ah, I see, there's a `nix copy`
<__monty__> viric: Maybe the problem is you assume filenames are utf-8 when in fact they are just bytes?
<sphalerite> patagonicus: nix copy --to /mnt $path
<__monty__> viric: Detox can help you clean up filenames btw, http://detox.sourceforge.net/
<sphalerite> patagonicus: that has the added benefit of registering the paths right out of the box, so you don't have to do the nix-store --load-db dance
<patagonicus> Now I wonder why make-ext4-fs doesn't use that.
<viric> __monty__: the utf8 thing I solved. I had some paths in latin1 and some in cp1251.
<viric> __monty__: now I'm struggling to understand what does rmlint do with symlinks
<sphalerite> patagonicus: because it needs to run within a nix build
<sphalerite> patagonicus: and the nix db isn't available within a build
<sphalerite> recursive nix would fix that
<viric> __monty__: thank you for detox - never heard of it. I did that quite manual with a script & recode
<patagonicus> I'll still need to use the closure info to get the size needed for the image, so all it would replace is the xargs cp I have.
<sphalerite> patagonicus: nix path-info -S
<sphalerite> :p
<__monty__> viric: Fwiw, when I looked into file duplicate finding utilities I decided on jdupes (which seemed most thorough but got stuck for me) and then dupd which seemed to work pretty well and was easily understood.
<patagonicus> sphalerite: That does help. :D
<viric> __monty__: ah! Let me try.
<viric> __monty__: I have two directory trees in external hard disks that I wanted to be able to compare them without them being mounted at once
<viric> about rmlint, I understand it so poorly all its manual that I can't even tell whether it works as expected or not
<sphalerite> patagonicus: what's cruel about this though is that the `nix` CLI gnerally isn't a stbale API
<patagonicus> Yeah, I saw that nix copy is marked as experimental. Shouldn't be too bad.
<__monty__> viric: git-annex might be suitable for that actually, it's all about managing files on diverse not-necessarily simultaneously available storage.
<patagonicus> I don't expect to need this super frequently, spending 15 minutes to update the syntax when I need it is probably fine.
<sphalerite> oh yeah, nix-copy-closure should also work though
<sphalerite> I think
<sphalerite> no nvm
<sphalerite> nix-store --export | nix-store --store /mnt --import
<sphalerite> that will work, but isn't smart about already existing paths. But if you're building fresh images that doesn't matter
<patagonicus> But, yeah, I'll rewrite with nix copy and nix path-info later. Need to fix up a few other things anyway and clean it up.
<patagonicus> Yeah, no, that's the first thing I do after creating the fs and mounting it.
<eyJhb> ldlework: cools!
lunc has joined #nixos-chat
<viric> __monty__: I do use git annex from years, but I'm quitting it.
<viric> __monty__: unbearably slow and I think I end up more confused than not
<viric> understanding why rmlint doesn't do what I expect is an interesting challenge though.
ece has quit [Ping timeout: 240 seconds]
<viric> I want to know "what files of computerA:/path are NOT in computerB:/path"
<viric> __monty__: I think neither jdupes or dupd allow me to do that easily
<__monty__> Are you sure dupd doesn't? I'm not sure whether it stores a file hash but maybe it does and I think both can list uniques rather than duplicates.
<viric> __monty__: I'd need something that dumps the data of computerA to a file, so it can be loaded in computerB for comparison and deciding the duplicates
waleee-cl has joined #nixos-chat
thibm has joined #nixos-chat
<sphalerite> viric: `find $dir -exec sha256sum {} +`?
<viric> well, that's superslow :)
<sphalerite> sure, but you only need to run it once (per machine). Then sorting and comparing should be pretty rapid.
<sphalerite> and the slow bit is going to be reading all the files, which is unavoidable anyway if you want to cover it all exactly.
<viric> I don't care that much to compare every bit, for these files
<viric> it's all media, on btrfs
<sphalerite> aaah
<sphalerite> then use stat -c '%s\t%n' instead of sha256sum?
<sphalerite> (to get the size and filename listed)
<viric> I'll end up doing that, if there is nothing else that does something similar for me.
<viric> But 'rmlint' manuals suggests me that it CAN do that, but I just cannot find how
<sphalerite> or dump it all in a content-addressed structure, then merge all the trees together as symlinks :pp
<sphalerite> galaxy brain: nix-store --add all of them, then nix-store --optimise
<sphalerite> sorry I'll shut up now
<viric> rmlint seems so evolved... it should be able to do that. But I can't tell if this program is a joke or not
<viric> git-annex reports a merge conflict on sync that it automatically resolves... "you may want to examine the result"
<viric> I'm getting out of git annex as quickly as possible. so many years of git annex are hard to undo
<siraben> What's git annex?
<pie_> iirc git annex on conflicts just puts both things in the result
<pie_> i.e. two files next to eachother
<pie_> i havent tried it but i think thats what i read in docs
<pie_> ah. *reads more context*
<pie_> im just considering starting using it...
<viric> For the thousands of files I had it was unbearable - so slow
<viric> slow for fsck, slow for copying, all ridiculously slow.
<pie_> huh...
<viric> And very difficult to remove content
<viric> I understand it's full of safety measures...
<viric> But come on, if I have to tweak refspeacs, add --force or synchronize lots of things at once to delete some files.... at the end it ends up being fragile, unless you give up trying to delete.
<patagonicus> Yeah, git-annex really isn't designed to let you remove stuff. There's some tweaks for many files (which is more a git problem, less a git-annex problem), but at some point it just becomes unusable.
<siraben> we had discussion regarding purism's track record this evening, front page of HN today: https://news.ycombinator.com/item?id=25504641
<patagonicus> Checking, though, is purely dominated by the time it takes to checksum the contents. Unless you go for one of the backends that doesn't checksum the files.
<siraben> git-annex is like git LFS then?
<viric> patagonicus: nah, listings are terribly slow with thousands of files
<viric> siraben: that's more a question for #nixos j/k
<patagonicus> Guess it depends on the size of your files. If it takes 24h or so to read all of them, a minute for listing them doesn't really matter. :D
<patagonicus> siraben: similar. Try to solve the same problem. Git annex is decentralized where LFS is mostly client/server.
<viric> siraben: it's parallel to git-lfs. git-lfs has one backend, while git annex has multiple, and tracks them and allows you to move files among backends (which can be of many kind)
<siraben> I see, well I'll keep that in mind, I haven't really needed to store large files in git yet
<viric> no no, git annex is not "to track large files in git"
<bbigras> I always hoped git annex would replace dropbox for me. but git-annex's use-cases didn't seem to fit my needs.
<viric> git annex is a way to comfortable store large files among multiple devices *by means of git*
<viric> At least it is what it pretends. :)
<bbigras> but git annex stores large files in a different way than git. a bit like lfs but different, right?
<bbigras> like git is supposed to be bad for big files
<patagonicus> Yeah, maybe, although you can also use it for "I have this code and there's a few big files I need to version with it". I'm decently happy with it, certainly beats manually managing files. I used to have a set of 4*2TB disks almost full with data on them plus a bunch of random 2TB and 1TB for a second copy. Keeping track of that without git-annex
<patagonicus> would have been … challenging.
<viric> git annex stores files different than git, with its own tree of objects, and a single worktree of symlinks to the objects
<viric> symlinks don't resolve if the files are not locally present (they may not be, that's fine and git annex tracks where they are)
<viric> you may copy from where they are to local, etc. git annex manages that, how many copies there are spread, etc.
<viric> ls
Dotz0cat_ has joined #nixos-chat
Dotz0cat has quit [Ping timeout: 240 seconds]
<bbigras> lovesegfault: any idea how I could use different channels (nixos-unstable vs nixos-unstable-small) for different hosts with your outputs.nix?
<abathur> viric do you know what you'll be doing instead of git-annex?
<infinisil> bbigras: Oh what's that?
<bbigras> infinisil: what do you mean? what is lovesegfault's outputs.nix file?
<infinisil> Yea
<bbigras> infinisil: https://github.com/lovesegfault/nix-config/blob/master/nix/outputs.nix . it's for his nix-config. he switched to flakes recently and my config is basically a fork of his.
<bbigras> the hosts are defined in deploy.nix
<infinisil> I see
<eyJhb> Just to not screw up my data, I can remove all ZFS snapshots without messing up my data, right?
<lovesegfault> bbigras: I'd have to think about it
<lovesegfault> should be possible
<bbigras> lovesegfault: no hurries. it could be nice to have but I don't need it right now.
<bbigras> lovesegfault: I wanted to ask you for a while. Any reason you use `environment.persistence` instead of `home.persistence` for some of you home stuff?
<lovesegfault> two main reasons
<bbigras> I do have problems with `home.persistence` often on my laptop.
<lovesegfault> 1. I was using impermanence early on, before the home bind mounts existed
<lovesegfault> 2. the home bind mounts never worked well for me
<lovesegfault> I always have weird intractable, hard to reproduce issues
<lovesegfault> whereas the system bind mounts just work
<bbigras> yeah maybe it's the same problem I have. I have to wipe my home and deploy again.
<lovesegfault> huh, weird
<bbigras> yeah. maybe I should report it. it's not the lazy error msg from https://github.com/nix-community/impermanence/issues/17
<{^_^}> nix-community/impermanence#17 (by bbigras, 15 weeks ago, closed): Couldn't perform regular unmount of [...]. Attempting lazy unmount.
cosimone has quit [Remote host closed the connection]
cosimone has joined #nixos-chat
ece has joined #nixos-chat
LnL- is now known as LnL
evanjs has quit [Ping timeout: 272 seconds]
<jtojnar> ugh, the pulseaudio saga just got uglier – someone took pali's code against his will and submitted a new merge request
<gchristensen> what is this saga?
<gchristensen> aah...
<__monty__> jtojnar: Did they explicitly state so? Last I saw pali had simply stopped responding.
<jtojnar> __monty__: yes, in multiple MR, Pali explicitly forbade the inclusion of his wotk
<__monty__> That's certainly unfortunate.
ece has quit [Quit: The Lounge - https://thelounge.chat]
ece has joined #nixos-chat
<viric> abathur: something with btrfs snapshots
<viric> abathur: still unclear
<__monty__> I wonder if that matter from a purely legal standpoint. Since the code is GPL (or is it LGPL) and submitting an MR is arguably an act of publishing, which means they agreed to the terms of the license and made the code available under those same terms?
rajivr has quit [Quit: Connection closed for inactivity]
<patagonicus> Uuh, impermanence looks nice. Yet another thing I want to play around with.
<patagonicus> Yep. I'm a big fan of that, but haven't gotten around setting something like that up for my systems. But I did wipe them a couple of times and it's already quick to reinstall them.
<joepie91> __monty__: publishing your code under a given license means publishing it under that license, and in the case of copyleft it's easy, because the license is infectious
<joepie91> it's also generally considered to be the case, though AFAIK never tested in court, that public licenses are irrevocable
<joepie91> there was a very similar situation with the leftpad incident
<joepie91> where the author had removed their packages from npm, but they were reinstated by third parties to unbreak builds, under the original license
<joepie91> this was generally considered legally okay by everyone
<gchristensen> interestingly the gpl doesn't seem to mention "revok" anywhere
<joepie91> even if ethically there was more debate
<joepie91> gchristensen: checked for revoc?
<gchristensen> oops
<joepie91> English is funny :)
<gchristensen> "All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met."
<bbigras> patagonicus: it seems to work pretty well too. booting is still fast. I don't see any downside except I need to be careful where I put my files. but I always use the sames folders: ~/src, ~/dev, documents... downloads...
<joepie91> it's "revoke" but "irrevocable"
<bbigras> ,locate bin iwctl
<{^_^}> Found in packages: iwd
<patagonicus> bbigras: Not sure I'd really want it for ~. That's just a mess, but I think I'm ok with that. But for the system? Yeah, don't care, just wipe it every boot and ensure that my system is roughly reproducible.
<bbigras> patagonicus: yeah. I only use it for ~ on one system. I kinda like that I don't have to care about all the crap accumulating in my ~/tmp anymore. and a lot of crap dotfiles/folders
<bbigras> but it's still nice without ~
<gchristensen> my ~ is a superfund site of junk, but the rest of the system is pristine checkmark.jpg
<bbigras> tcpcrypt.org doesn't use https...
<bbigras> ah the site expect you to use tcpcrypt for the encryption
<gchristensen> makes sense
<patagonicus> bbigras: I've been thinking about doing a "back this up for a month or so and automatically remove stuff older than 7 days" for some directories. Might be a good compromise - if it turns out stuff was actually important, I can just grab it from the backup and if not it cleans itself.
<bbigras> patagonicus: even stuff that is accessed but not modified in the last 7 days?
<bbigras> that was*
<patagonicus> Well, mostly for my "random downloads and big stuff folder". In that case I'd make sure to move other stuff out of there. But I first need to get my storage cluster running so I can do the backups. :)
<__monty__> TCPcrypt sounds like it's susceptible to downgrade attacks by design?
<bbigras> __monty__: oh I have no idea how it works. I was actually searching nixos options to try iwd for my wifi and I saw tcpcrypt and I was curious what it was.
<__monty__> It's all explained in the next paragraph, should've read first, critiqued second : )
<bbigras> I wonder if it has any downsides or if I should enable it on all my computers for fun. I would still use tailscale and zerotier for vpns.
<bbigras> uh last commit 2016
<bbigras> that's a lot in dog years
<__monty__> Doesn't look like there are downsides. Maybe an extra round-trip per connection to check for TCPcrypt support?
<bbigras> yeah maybe
<__monty__> Maybe also the fact that encrypting SSL/TLS traffic is a bit wasteful.
<bbigras> yeah
evanjs has joined #nixos-chat
<__monty__> I'm having trouble understanding this bit "or example, if you log in to online banking using a password and the connection is over Tcpcrypt, it is possible to use that shared secret between you and the bank (i.e., the password) to authenticate that you are actually speaking to the bank and not some active (man-in-the-middle) attacker."
<bbigras> oh yeah I didn't understand anything about that.
<__monty__> Do they mean you'd use that password as the key for the TCPcrypt connection?
<bbigras> lovesegfault: it's weird. I deployed to my laptop. activation successful but I don't see any change on my laptop. I run the deploy on my laptop and now it's downloading a bunch of stuff.
<bbigras> __monty__: I wonder if you and the bank would need to set tcpcrypt's config or something to use the password for your connection
<__monty__> I think the idea would be you're using the bank's software, which would try to establish a connection with a cleartext identifier and without agreeing on a key for TCPcrypt and then derive the key to be used from the password the user enters in the application and the back knows.
<__monty__> So there's no need for configuration because the application knows to use the derive key rather than agree on one with the server.
<bbigras> lovesegfault: really weird. deploy was succesful but I don't have a new entry in systemd-boot. and for some reason it's suggesting to boot gen 77 when I have 77 to 85. I wonder if it's the same problem you had.
<bbigras> ah maybe
<bbigras> I must say I don't understand everything about that.
<lovesegfault> bbigras: cat /boot/loader/loader.conf
evanjs has quit [Ping timeout: 240 seconds]
evanjs- has joined #nixos-chat
<bbigras> lovesegfault: I'll try it soon. I'm also doing a big gc right now. and for some reason there's stuff on my laptop that should only be on my desktop. but maybe it's something I did wrong in the past. I'll check for that later.
<bbigras> lovesegfault: default is 77
<lovesegfault> manually edit the file and remove that line
<lovesegfault> it'll start working again
<bbigras> I might have ran out of space in /boot recently.
<bbigras> nice, thanks
<bbigras> oh Steam winter sale is on
<aanderse> bbigras: curse you
<aanderse> /me fires up steam
<bbigras> haha. rip your wallet
cole-h has joined #nixos-chat
cole-h has quit [Client Quit]
cole-h has joined #nixos-chat
hexa- has quit [Quit: WeeChat 2.9]
hexa- has joined #nixos-chat
<abathur> patagonicus bbigras gchristensen re impermanence & ~/: 2y ago I read a hash backup outline and was struck by the nix/annex overlap. It gave me a hard-to-explain sense that it's possible (with tooling?) for nix/similar to declare how to compose ~/ from many resources...
<abathur> For example, one thing I want is an ~abstract work/projects bin with at least 2 qualities: I can readily ~GC project copies under my control when they're identical to the next defined source (the bin, my fork, upstream...); my system expressions can slice relevant projects out of the bin (i.e., my laptop needn't have everything on my desktop).
<bbigras> "my laptop needn't have everything on my desktop" you mean your files in home or like having different home-manager configs per system?
<bbigras> lovesegfault: my laptop is downloading stuff that only my desktop is supposed to have right now. I'm deploying with `deploy .#laptop -- --impure`. maybe it's something wrong on my side and not deploy-rs'.
<bbigras> it's also downloading stuff from my work/default.nix
<lovesegfault> bbigras: which machine are you running deploy from?
<lovesegfault> the host machine will have all the drvs for all the machines it deploys to
<lovesegfault> b/c it builds locally, then uses nix copy
<bbigras> ah that must be it. I'm running it on my laptop
<bbigras> I get it that it builds locally but couldn't it only build the one host I'm trying to deploy?
<bbigras> normally I push from my desktop but it has been tricky with the problem I had earlier and when I switched to iwd and didn't have an ip
<bbigras> so the rollback was firing
<abathur> bbigras: both, but focused on projects/files here; it doesn't really *need* a copy of a several-hundred mb server that I haven't had time to touch for 2 years and would probably just run on my desktop and access over the network anyways
<abathur> instead I have different unergonomic choices; currently I have a backup just for my projects directory but technically I have one per system and they accrue different projects over time, and solving a conflict would be manual (so I just avoid working on the same thing in both places)
<bbigras> abathur: because some of us are deploying with nixus or deploy-rs. some config nix files are used on all my computers but some nix config files are only used on some machines.
<bbigras> for files in home I handle it manually. my dev projects are in git repos. but nothing is synced.
<abathur> bbigras: nod, that's basically the gap; I already roughly have different packages and such per system via my nix config
<bbigras> I was looking at systemd-homed today. It seems the dev would like if one day if there would be a way to sync between computers but it's out-of-scope for now
<abathur> bbigras: basically, I hate hate hate having to waste time disambiguating multiple copies of the same crap to figure out if they have critical differences I've forgotten about
<abathur> i.e., I did some WIP in a branch and never pushed it
<abathur> or stashed...
<bbigras> did you consider using syncthing for your files? both computers need to be online for that.
<bbigras> maybe systemd-homed with home on a stick would work too. but you would have everything on both computers. and it seems like the home on a stick with homed is more like a way to explain how it works than a recommandation.
<__monty__> I think this is a problem where conflict free data structures would actually help.
<__monty__> Things wouldn't be automatically merged but conflicts would be easily identified.
<abathur> I'm dispositionally skeptical of automatic syncing; even humans have trouble doing the right thing about merge conflicts
<bbigras> is there simple distributed fs for that? not like AFS or whatever. for work I wish there was something like a cifs mounted home but that would work offline too. for laptops.
<abathur> and I don't want to have to post an HN sob story about how I accidentally a week of work or whatever :)
<bbigras> systemd-homed supports cifs for home. but I wonder what happens if the network drops
<bbigras> I wouldn't be scared of automatic syncing if I had a backup. probably an hourly one at first. one maybe btrfs/zfs snapshots every 5 mins and exported to an external drive.
<__monty__> abathur: The idea is that you *can't* have a conflict when you're using conflict-free data structures. Because the "conflict" is simply encoded in the data structures. You'd then have to resolve the "conflicts" manually but you could do that from any device because they're all automatically synced without loss of data.
<abathur> still have to check the things to make sure you aren't backing up an empty directory because you synced it out of existence :)
<abathur> __monty__: I guess this is the same as or adjacent to CRDTs?
<__monty__> Afaik, yes.
<lovesegfault> Uh, what
<lovesegfault> check started two days ago?! :P
<gchristensen> no darwin builder s:(
* etu pats nixos-unstable
* etu wishes for a channel update for christmas
<lovesegfault> gchristensen: >:(
<lovesegfault> etu: pray to the staging gods :P
<etu> lovesegfault: I do
<lovesegfault> gchristensen: should I just merge PRs even if the darwin eval isn't complete?
<lovesegfault> or do we just wait?
<energizer> what are the chances it breaks someone's setup and the test wouldve detected it?
<gchristensen> it is a darwinbuild not eval
<gchristensen> can be merged without the darwin buidl
<lovesegfault> gchristensen++
<{^_^}> gchristensen's karma got increased to 393
<lovesegfault> got it
<lovesegfault> energizer: v. low
thibm has quit [Quit: WeeChat 2.6]
<colemickens> bbigras: how's flakes+deploy-rs working out?
<lovesegfault> colemickens: it's okay (I'm not bbigras, but we have identical setups)
<lovesegfault> deploy-rs is buggy still
<bbigras> colemickens: not bad. I had some problem earlier but maybe it was because I was trying to switch to iwd and didn't set dhcp. lovesegfault made a pretty nice github action with a matrix. the lint doesn't seem to run on in my case but it's still pretty cool.
<bbigras> hehe
<colemickens> a matrix?
<eyJhb> ,ping
<{^_^}> pong
<bbigras> to build in parallel
<colemickens> oh no
<colemickens> that's annoyingly cool
<lovesegfault> :D
<cole-h> eyJhb: I'm imagining your checking to see if the bot is up because it's not posting PRs? :P
* colemickens resists the alure of MS-influenced dev tools locked away behind gh
<colemickens> (the MS-influenced dev tools is the good part)
<cole-h> I think that part of the bot is still dead (cc gchristensen)
<gchristensen> what part?
<cole-h> Nixpkgs PR mirroring to #nixos
<gchristensen> ah ...
<eyJhb> cole-h: No no, my network is unstable and I did not start a private chat
<eyJhb> It is my little pong body!
<cole-h> eyJhb: Oh, heh.
<eyJhb> If anyone else gets as prompt as {^_^} , you can also be my little ping/pong boddy ! :D
<colemickens> bbigras: lovesegfault thank you both :)
<bbigras> colemickens: 👍️
<lovesegfault> 🚀
<cole-h> Interesting forensic video on the explosion in Beirut earlier this year: https://www.youtube.com/watch?v=3s54_MF2XPk
da_dada has joined #nixos-chat
dadada_ has quit [Ping timeout: 260 seconds]
cosimone has quit [Quit: cosimone]
cosimone has joined #nixos-chat
__monty__ has quit [Quit: leaving]
da_dada has quit [Ping timeout: 256 seconds]
da_dada has joined #nixos-chat
<lovesegfault> cole-h: I watched that, it's amazing
<bbigras> holy shit. I just saw like 10 secs
<cole-h> I remember when it happened, seeing all the different perspectives posted throughout the day
<viric> another bitflip. grmbl.
eyJhb has quit [Quit: Clever message]
eyJhb has joined #nixos-chat
<bbigras> Anyone has a pattern to track a shell.nix in git or something, without pushing it upstream?
<viric> topgit?
<viric> not that I use it
<bbigras> viric: it seems abandoned but yeah maybe something like that. thanks!
<jtojnar> or is it another search query that breaks github
<viric> no results matched
<bbigras> same
<jtojnar> weird, it shows me 1 next to the closed link on the open page
<jtojnar> but the closed page gets me unicorn
<viric> ah I can't go to closed, right.
<jtojnar> stupid firefox not updating url bar until the page loads
<bbigras> got the unicorn
<jtojnar> I swear clicking a link committed it to the URL bar consistently in the past but it has been getting less and less consistent over time
<viric> likely up to the page js
<ashkitten> cole-h: that's some really impressive reconstruction, i wonder what kind of software they use
<joepie91> yeah, up to the page logic
<cole-h> I was atonished as well. It was really cool seeing all the information they had on hand and how they pieced it together and drew conclusions from that information.
<ashkitten> forensics is a really interesting field to me tbh
<abathur> nice, bash 5.1 is in master now :]
<lovesegfault> any wireguard users around?
<bbigras> I use tailscale 😏
cosimone has quit [Quit: cosimone]
<lovesegfault> Right, I do too but I want to get mullvad working
<lovesegfault> Need to watch a soccer game with a brazilian IP
<bbigras> I think I used wireguard before with a config to route all my traffic. but I think I was using that on my phone with my vps as the server.
<lovesegfault> I have the wg0 iface up
<lovesegfault> and sudo wg show tells me it's going
<lovesegfault> but my traffic isn't being routed
<bbigras> you have `allowedIPs = [ "0.0.0.0/0" ];`?
<lovesegfault> yup
<bbigras> you know probably as much as me about those but does `ip route` show the route?
<lovesegfault> nope
<bbigras> lovesegfault: btw, did you disable the magic rollback on some host because it was triggering for now reason? I got `Success activating`but I'm pretty sure there was a rollback
<colemickens> I thought routing all traffic through wg just didn't work on nixos
<lovesegfault> bbigras: Not yeat, but magic rollback is real flaky right now
<bbigras> maybe it's when you use the nixos modules
<bbigras> but I would guess it should work with wgquick
<bbigras> lovesegfault: gotcha. thanks
<colemickens> I could never get it to work with wg-quick either
<colemickens> its soemthing to do with how we setup the fw iirc
<{^_^}> #51258 (by tmplt, 2 years ago, open): wireguard: unable to route all traffic through interface
<colemickens> oh right, there are different netns helpers you can use, especially for one-off use-cases
<colemickens> or when you just need a browser to pop out somewhere else
<bbigras> I think I had firewall rules when I was using wireguard directly.