parsley936 has quit [Remote host closed the connection]
<ashkitten>
even aside from writing docs, i kinda hate markdown in every chat app now
<ashkitten>
it's frustrating how every chat app nowadays turns *blinks* into italic
<ashkitten>
riot is the worst
<ashkitten>
>.< becomes quote formatted
<ashkitten>
which i think is out of spec, shouldn't it require a space after the leading >?
<gchristensen>
yeah
<abathur>
I enjoy that teams has fenced code blocks, but they do the fancy auto-convert thing as soon as you type ```, so you can't append a syntax type?!
<cole-h>
Anything in particular make it good, or just nothing made it bad?
<gchristensen>
I am really happy to hear that, worldofpeace!
<drakonis>
cole-h: glass half full vs glass half empty?
<cole-h>
:P
<worldofpeace>
cole-h: twell, bh, all the crap I've ordered online has arrived. and I got to spend sometime with my friends, since I'll take this day as a birthday
<samueldr>
happy new birthday date day!
<cole-h>
Oh? Happy birthday then!
<worldofpeace>
lol, I get two birthdays. International nonbinary day, and the other birthday
<cole-h>
Tomorrow that'll be me (playing around with crap I've ordered) -- package arrived at Mather ~an hour ago. Would be real cool if it came today, but not holding my breath.
<cole-h>
Do you get to eat $yourFavoriteSweet twice due to that? :D
<cole-h>
Those days are probably when r-ryantm went rogue and started closing PRs en-masse
<worldofpeace>
the 50w graph looks soo impressive
<cole-h>
jk, they're maybe not
<samueldr>
nah, that's most likely a data acquisition glitch
<worldofpeace>
too bad I never learned how to read, guess I'll never know what that graph was
<cole-h>
lol
<worldofpeace>
graham's always sending me these squigly thingies and I just like "well, that was that"
<cole-h>
"This just in: One of the NixOS 20.03 and 20.09 RMs was never able to read, shocks world with efficience in slamming random keys that somehow make sense in the conversation. More at 11."
<worldofpeace>
sometimes he puts pretty colors too
<cole-h>
s/efficience/efficiency/
<worldofpeace>
what can I say, I'm just talented in almost every way
<worldofpeace>
I don't think anyone would believe me if told them I'm actually 10 years old
<worldofpeace>
well, maybe from this particular conversation, just perhaps
<gchristensen>
I'm just 12, so maybe they would
<cole-h>
I'd ask the metric you used before judging believability
<cole-h>
:P
<cole-h>
gchristensen: :o You have a rockin' beard for 12!
<worldofpeace>
gchristensen: wow, you're like... way older than me. I look up to the big kids around here
<worldofpeace>
see this is why assuming age is futile
<cole-h>
What is that lint supposed to catch and why?
<gchristensen>
it isn't likely that your implementation of Mul(tiplication) uses +
<cole-h>
Oh, I see. So, it's to protect against an impl of [whatever the subtraction trait is called] from using addition
<gchristensen>
this is an implementation of Multiplication not Subtraction
<cole-h>
Right
<cole-h>
I was giving another example
<cole-h>
:P
<gchristensen>
right :)
<gchristensen>
"Gourami's model of federation is meant to decentralize not just on the level of architecture, but also on a social level -- where there is no central "fediverse" everyone participates in, but rather your server and the servers you choose to federate with. Gourami intends to mimic real world, physical communities, where a sense of place is restored."
waleee-cl has quit [Quit: Connection closed for inactivity]
* cole-h
wishes he could fast-forward through real life like he does YouTube videos
<gchristensen>
I am officially an old man. I don't need to write what I was writing.
* samueldr
is curious
<samueldr>
yelling at cloud?
<cole-h>
I'm so glad that I decided to add swap to my computer. Making this tarball is eating up half of my swap and all of my available memory (which is only like 10G cuz I have Firefox open)
avn has quit [Ping timeout: 246 seconds]
<cole-h>
It's taking all my willpower to hold off on upgrading to a Ryzen... The only thing holding me back is the knowledge that 4xxx is right around the corner.
ninjin has quit [Remote host closed the connection]
ninjin has joined #nixos-chat
<aleph->
Heh neat
ninjin has quit [Remote host closed the connection]
ninjin has joined #nixos-chat
cole-h has quit [Quit: Goodbye]
cjpbirkbeck has joined #nixos-chat
cjpbirkbeck has quit [Client Quit]
<eyJhb>
Having fitness centers open again is weird. Should one go to the gym and try to get fit, risking covid-19, or just stay at home...
hexa- has quit [Quit: WeeChat 2.7.1]
hexa- has joined #nixos-chat
ixxie has joined #nixos-chat
ixxie_ has joined #nixos-chat
ixxie_ has quit [Client Quit]
avn has joined #nixos-chat
__monty__ has joined #nixos-chat
avn has quit [Read error: Connection reset by peer]
ixxie has quit [Quit: Lost terminal]
waleee-cl has joined #nixos-chat
<manveru>
never been to a gym, so that one's easy :)
<manveru>
so it only took me forever, but i finally have self-renewing certs, ACL, consul connect, policy definitions in nix for vault/consul/nomad, and a bunch of other stuff actually running :)
<philipp[m]>
adisbladis: So I've been using eshell for a few days now and it's mostly very nice but I can't really get around the way it uses buffers for indirection every time.
parsley936 has joined #nixos-chat
<eyJhb>
manveru: :( I actually quite enjoy it, when there is no threat of getting sick
<eyJhb>
And I have the time for it
<manveru>
a friend of mine just had to get tested because someone at his gym got covid
<eyJhb>
I am unsure if they would even tell me if someone had covid-10 here
<eyJhb>
19*
<philipp[m]>
Where are you?
<eyJhb>
philipp[m]: Denmark, Fitness World
<eyJhb>
They tend to be ... not nice, and expensive
<eyJhb>
I think there are two-three stands to get hand sanitizer, a lot more for equipment.
<eyJhb>
But who the hell does not place a single one at the weights?!
<philipp[m]>
Don't you have contact tracing by the state in place? In that case they would tell you and not your gym.
<eyJhb>
We have a app for it I guess
<philipp[m]>
You surely also have some officialls interviewing infected about where they were and informing/testing/quarantining their contacts.
<philipp[m]>
>To prevent a second wave, health authorities will begin more actively tracking people who may have been in contact with infected people and if necessary put some in isolation in empty hotels, she said.
<eyJhb>
philipp[m]: would still require Fitness World to cooperate with the health ministry, which I think they might. But I still think they will not handle it well...
<adisbladis>
eyJhb: You're not gonna live a satisfactory life being afraid
<eyJhb>
adisbladis: I don't think that going to the gym is very satisfactory to begin with :p
<eyJhb>
I think I well eat cake instead then
<adisbladis>
I mean, better try to stay healthy and balance the risks
<eyJhb>
No no adisbladis , you convinced me. Cake from here on out
<eyJhb>
The lady is already making muffins.
<eyJhb>
:D
<adisbladis>
Alright :P
<adisbladis>
Oh then you have no choice
<adisbladis>
Muffins it is
<eyJhb>
Yeah, basically
<eyJhb>
I should have been to the gym today as well, but I was yesterday and my body is broken..
<adisbladis>
I've had covid-19 already, tbh it's quite liberating to have had it. I feel like I can do whatever and not worry.
<eyJhb>
Well... There are just multiple degrees of it and mutations and no one is sure you even have antibodies for it
<eyJhb>
I think there are three strains here in Northen Jutland
<philipp[m]>
If you survive without too bad long term effects.
<adisbladis>
Anyway, we're gonna live with this shit for a long time to come
<adisbladis>
Better find some new normal
<eyJhb>
I had a tooth removed and couldn't open my mouth for 1-2 years. I think I will implode if I get covid-19 with my luck :p
<eyJhb>
But not living in fear as well...
<eyJhb>
Out pretty much each day
<philipp[m]>
My new normal is doing sports outside Β―\_(γ)_/Β―
<eyJhb>
Constantly raining ...
<eyJhb>
ALso, I miss lifting weights :(
<eyJhb>
One of the main reasons for going to the gym
<gchristensen>
I miss the pool
<eyJhb>
Wonder what etu is doing
<gchristensen>
also hugs
<eyJhb>
gchristensen: the beach!
<eyJhb>
Fish hugs might not be that nice
<eyJhb>
Don't you have a close 10 person circle you see gchristensen ?
<gchristensen>
no, because it is too high risk for my family right now
<eyJhb>
Ah.. So how do you see then? If any?
<gchristensen>
2-3 meters away on the front lawn. sometimes I'll serve them cake
<philipp[m]>
gchristensen: Same. I'm not worried for myself or my so but my family is full of cancer survivors, my dad is even a lung cancer survivor. Can't risk infecting them.
<gchristensen>
ooooof. yeah. that is a scary situation
<philipp[m]>
That's not looking too bad on the US scale.
<gchristensen>
nah, we're doing really well right now
<gchristensen>
though going back above 1.0 is disappointing
<eyJhb>
I somehow wish that DK had remained to close its borders until 0 cases a day, and then opening up to nordic contries that had the same
<eyJhb>
Understandable gchristensen
<adisbladis>
Border closures ruin lives :/
<gchristensen>
*gesturing to the whole scenario* ruins lives too
<adisbladis>
At least DK got it right about partner reunification
<eyJhb>
adisbladis: how come?
<gchristensen>
truth.
<eyJhb>
True
<adisbladis>
eyJhb: I don't want to go into too much detail, but for me personally border closures have been having a far worse effect than any virus ever could
<gchristensen>
adisbladis <3
<eyJhb>
Sorry to hear that, I can understand that
<eyJhb>
I would have assumed that SO, etc. could be together. But not allow to travel back and thoughts
<eyJhb>
But I guess that would mean loosing jobs
<adisbladis>
In DK that's the case
<eyJhb>
Not in GB?
<adisbladis>
But not where I need to go
<eyJhb>
Honestly I have no clue where you are anymore :p
<eyJhb>
Ahh
<eyJhb>
:(
<eyJhb>
For me it has meant getting closer with someone
<adisbladis>
I'm perfectly on board with not allowing tourism
<adisbladis>
But families being separated is not ok
<philipp[m]>
No argument there (and not just in covid-19 related cases)
<eyJhb>
OK with not seperating families, but there is a need to stay in a single country then
<eyJhb>
I have began to try and strecth out. I suck at it. I can't even sit in a 90 \degree angle with my legs straght
<philipp[m]>
I think I'm about to give up on wireguard/android being able to do anything dynamically und just build a tinc vpn aswell.
<eyJhb>
Most cats are elegant right?
<eyJhb>
This fucker just walked across my keyboard
<gchristensen>
I am sure this cat did it very elegantly
<eyJhb>
Well, she did only hit space. But it was her entire hind leg that did it. Covered most of the key
<eyJhb>
Also close to dropping the switch now..
<gchristensen>
when can we get thunderbolt wirelessly, so I can set down my laptop and my monitor, webcam, speakers, assorted keyboards and mice, etc. all connect automatically without me plugging anything in? (this question is predicated on it being perfectly secure, and born out of me, tired, confused why my peripherals didn't immediately start working when I sat down.)
<pie_>
ah the ol its not plugged in problem
<eyJhb>
I have done that before
<eyJhb>
But I looove my dock
<gchristensen>
which dock do you have?
<philipp[m]>
Did you double check that last "o" before you sent?
<gchristensen>
that sounds off topic for #Nixos-chat :x
<adisbladis>
Sort of on that topic, I wonder how susceptible Qi devices are to being overloaded
<adisbladis>
Like, if I was walking around with an inductive hot plate in my backpack how much damage could I do?
<philipp[m]>
I think in practice it's not easy to give induction devices decent range.
waleee-cl has quit [Quit: Connection closed for inactivity]
<gchristensen>
the dang inverse square law strikes again
<philipp[m]>
Iirc there is a possibiltiy to get around that with modulation (magnetic fields are weird), but it's not easy to do.
<eyJhb>
adisbladis: you destructive swede
<eyJhb>
Reduced my 200 line function to 28 lines
<eyJhb>
Granted, I just split it up into functions. But damn it is beautiful
<eyJhb>
Also, overall 100 lines reduced of the 425 I had
<gchristensen>
I think that for the amount we take an attributeset and create a script from the result, this should be in the lib: mapAttrsToString = f: attrs: pkgs.lib.strings.concatStringsSep "\n" (pkgs.lib.attrs.mapAttrsToList f attrs);
<eyJhb>
I still cannot read Nix
<eyJhb>
It takes forever for me
<adisbladis>
What did I do? :O
<__monty__>
eyJhb: Nice, a quarter less bugs.
<{^_^}>
__monty__: 15 hours, 5 minutes ago <abathur> oops; affordances. If you're choosing project-specific semantics, they should line-up with things people already have to learn about your project...
<{^_^}>
__monty__: 15 hours, 6 minutes ago <abathur> __monty__ I agree it's a potential outcome. But I also imagine a presentational markup aesthetic like "as little as I can get away with", plus a small number of semantic aff
<abathur>
reverse order, nice
<__monty__>
I just got to "aff" and started being confused.
<abathur>
hehe
<abathur>
I made the mistake of copying the message when you left and then went to look up the bot source to make sure I remembered the tell syntax, but between I forgot there was a linewrap in the copy
<__monty__>
What you said there is sensible. But I'm not sure it's the result you'd get.
<sphalerite>
adisbladis: if you want to do damage I'm sure you'll get further with a microwave oven magnetron :p
<__monty__>
"I'm just experimenting with home-brewed radar technology, sue me!"
<sphalerite>
adisbladis: though I guess if you're going there it's hard to rule out damage to yourself.
<adisbladis>
sphalerite: I tried building that once
<adisbladis>
But getting sufficient portable power was tough
<abathur>
__monty__ Yep. The underlying issue is an itch, but I'm leery of it (especially given the large number of barely-used plain-text formats I've seen while surveying the landscape) and keep it pretty far down my priority list. :]
<infinisil>
Related to that: Is there a way to control which window firefox opens a link in? Because I have different windows for different times, and it's annoying when the wrong one gets chosen
waleee-cl has joined #nixos-chat
<clever>
infinisil: at least with chrome, its whichever window had focus last
<philipp[m]>
I'm pretty sure it's the same in FF.
<infinisil>
Hmm
cole-h has joined #nixos-chat
ixxie has joined #nixos-chat
<sphalerite>
philipp[m]: try closing the window and see how many tabs firefox asks you to confirm closing :p
<philipp[m]>
I finished my working day and closed all my tabs since. Maybe I'll remember tomorrow.
<leah2>
cole-h: passwords and "oh let's open a shell quickly and run htop" :)
<cole-h>
Yeah, it's gonna be a struggle. I was on a website that allowed me to emulate the colemak layout without actually switching it... Just doing basic exercises I was doing 10wpm lol
<leah2>
i think it's way more comfy for touch typing tho
<cole-h>
Oh yeah
<leah2>
i can't do it very well yet. still waiting on the hw i want to learn it on relaly
<cole-h>
I was looking at my keys the first half (which didn't help since I'm on QWERTY right now)
<leah2>
but touch typing qwerty is painful for me
<cole-h>
The second half I just looked at the visualization and I sped up a decent amount
<leah2>
i learned the key positions rather quickly i feel
<leah2>
fluency takes a lot of time tho
<cole-h>
Better to do it now before classes start up again :P
<__monty__>
cole-h: Fwiw, I vastly prefer the dvorak locations for ',."<>.
<cole-h>
(Though I will be keeping a QWERTY layer because I really don't want to switch my keys around when I play games in Windows lol)
<__monty__>
So consider how it might feel if you got used to it.
<cole-h>
tbh I might just make a layer for all of the interesting layouts
<cole-h>
Kinda wanna try Workman as well
<philipp[m]>
ajs124++
<{^_^}>
ajs124's karma got increased to 5
<eyJhb>
cole-h: I actually love that they are moved, it is so much more enjoyable :p
<eyJhb>
joepie91: that makes a whole of a lot of sense
<cole-h>
Another thing I dislike about dvorak (just look at it) is the braces being moved up a row
<cole-h>
s/look/looking/
rajivr has quit [Quit: Connection closed for inactivity]
<__monty__>
Non-issue imo. Maybe programmer dvorak's variation is more to your liking?
<__monty__>
It's just a slight twist to the hand for me and pinky needs to reach for backspace often anyway.
<__monty__>
If you like obsessing over such small differences, custom keyboards with custom firmware would probably be a great hobby ; )
<samueldr>
(tip: look carefully at the picture, this is a shitpost)
<drakonis>
which instance providers are considered to be reasonably good?
<samueldr>
instance of?
<samueldr>
like, let's say, you wanted to run nixos and a bouncer?
<samueldr>
vultr isn't bad, the nixos wiki runs off of it, and {`-`} (the logging bot) does too
<joepie91>
drakonis: you mean VPS providers?
<samueldr>
(I'm extending from something drakonis said elsewhere)
<drakonis>
yes
<drakonis>
vultr's only issue is that the new user promo credit lasts a month
<drakonis>
i have to eat up $50 of credit in a month or it expires
<samueldr>
aw, when I started it was up to a year
<samueldr>
(but it was a deal where you pay upfront and they double it)
<samueldr>
vultr "has" support for nixos by providing an iso image, where you do an install just as you want
<drakonis>
apparently there's a $100 for 30 days promo going on?
<samueldr>
no idea
<samueldr>
I haven't kept tabs on promos for new users, being a non-new user
<drakonis>
didnt want to get billed monthly
<drakonis>
apparently its acquired through referral codes
<joepie91>
drakonis: my typical list of recommendations is afterburst, ramnode, ram host
<joepie91>
all of them are providers that I regularly forget I have services at because it just works
<drakonis>
aight so i get billed in a monthly basis
<drakonis>
unavoidable isnt it
<joepie91>
yeah, most providers do month-to-month billing
<joepie91>
I think ramnode actually has hourly stuff now though
<drakonis>
hm i can claim the credit without charging for the plan though
<drakonis>
interesting
<drakonis>
but i need to add the card
<drakonis>
no nodes in my country though
<drakonis>
a shame
<abathur>
I don't really waaaant a VPS, but I do kinda want to have a finger daemon and I haven't found anything lighter-weight that'll do arbitrary ports
<joepie91>
drakonis: which country?
<drakonis>
brazil
* joepie91
boots up internal VPS provider database
<drakonis>
i think the bigger providers might have it?
<joepie91>
oh, that's a challenging one
<drakonis>
i can work with one available in north america anyways
<joepie91>
yeah seems there's not much in Brazil
<drakonis>
anywhere
<drakonis>
plus the whole mess we're in right now
<drakonis>
hardly favorable
<joepie91>
possibly EDIS, but they're okay-ish
<drakonis>
DO does prepaid
<joepie91>
heh yeah
<drakonis>
not looking to burn through my funds
<drakonis>
not exactly lush with funds right now
<drakonis>
flush
<drakonis>
hmm linode has prepaid too
<drakonis>
but the promo code doesnt specify whether the credit is temporary or not
<drakonis>
was it packet that sponsored nixos with hosting?
<samueldr>
yes
<drakonis>
hmm
<samueldr>
well, machines, for building
<drakonis>
i see
<drakonis>
they probably dont do charity do they? :V
<ixxie>
anybody got an example of configs for a server that hosts several microservices networked together *somehow*?
<joepie91>
drakonis: what is your budget, and what are your minimum reliability requirements?
<drakonis>
i just need to spin up on demand
<drakonis>
remember that my country's currency is highly devalued right now
<drakonis>
so paying in dollars is a pain
<joepie91>
and resource requirements
<joepie91>
if you strictly need on-demand, then I think the only affordable choices are going to be digitalocean, linode, and ramnode
<drakonis>
not keen on high specs right now
<ixxie>
Hetzner cloud is also *very* affordable
<drakonis>
just need something i can use for irc
<drakonis>
and any other smaller tasks
<__monty__>
Irc doesn't sound very on-demand.
<ixxie>
Hetzner is in Europe so you can pay in Euros if that helps
<__monty__>
Maybe irccloud or matrix?
<joepie91>
drakonis: if you don't really care about reliability and just want the cheapest possible, a "NAT VPS" may be an option, 3 EUR per year is typical
<joepie91>
but the caveat is in the name; IPv4 is NAT'ed
<joepie91>
you only get dedicated IPv6 addresses
<joepie91>
they are very resource-constrained, but also cheap as hell
<joepie91>
oh, seems it's more like $4/year nowadays :P
<ixxie>
drakonis: have you considered running your own server on an old machine / raspberry pie?
<drakonis>
hmm
<drakonis>
i have, but an rpi is kind of pricey here
<drakonis>
irccloud...
<drakonis>
not a good deal, really.
<drakonis>
5 bucks
<drakonis>
i'd rather just pay for linode or digitalocean
<__monty__>
Don't they have a free plan?
<drakonis>
its... bad...
<samueldr>
the free plan disconnects you
<drakonis>
it only stays active for 2 hours
<drakonis>
and i have to use their client
<samueldr>
drakonis: other non-pi sbcs?
<samueldr>
are any of them less pricey?
<drakonis>
they're all expensive, we have pretty crazy electronics taxes
<samueldr>
I had hopes that, like, one of them wouldn't :)
<drakonis>
and i dont think i can find them sold in here without importing
<drakonis>
i could try to find any other SBC
<drakonis>
i'm expecting them to be sold at the same price as the rpi
<drakonis>
its uhh
<drakonis>
300-400brl
<drakonis>
75 bucks really
<drakonis>
i think those are the prices they'd have before restocking
<__monty__>
Matrix is not an option?
<drakonis>
i have used matrix before
<drakonis>
could try again
<drakonis>
the freenode bridge is pretty janky though
<__monty__>
I know there's also free hosted browsers. Don't know how reliable they are though.
<drakonis>
the problem is that i'm not looking to do just irc here
<ixxie>
drakonis: maybe you can install NixOS on an abandoned smartphone :D
<drakonis>
hahaha i wish i had one to spare now
<ixxie>
drakonis: another possibility is if someone has a laptop with a broken screen
<drakonis>
but all of the ones i have aren't fit for roms
<drakonis>
i'm spending a lot of time home right now, it isnt a pressing concern right now
<drakonis>
its usually the 8 hours gap in my logs that gets me
<drakonis>
i need DO to build a cluster
<drakonis>
although i can always set it up by myself on my local machine
<drakonis>
TA business and such
<ixxie>
what kind of cluster
<drakonis>
compute cluster
<drakonis>
hadoop
<ixxie>
so you use / will use DO?
<drakonis>
i'm thinking about it
<ixxie>
we're working on the DO plugin for NixOps atm
<infinisil>
Continuing our discussion in #haskell about nixpkgs fixed-point structure here
<julm>
__monty__: oh, I didn't know about nix-direnv. It does almost the same indeed 8) AFAICS here are the differences (only by reading the code) my .envrc uses a global shasum of the selected .nix dependencies instead of .git/HEAD and timestamp comparisons, uses flock(1) to avoid concurrent direnv on the same dir, works without a grep hack even with latest direnv by using DIRENV_DUMP_FILE_PATH, does not
<julm>
require to set keep-derivations=true nor keep-outputs=true by using nix-instantiate+nix-store, runs the shellHook even when loading the cached environment to update envvar like GPG_TTY, also works without --pure, and (but this is another concern) installs nix and nixpkgs if not already there in the expected versions
<infinisil>
"Cale: Well, in general, nix needs a much stronger standard library of data structures and things that have nothing directly to do with the production of derivations"
<infinisil>
Cale: What kind of functions do you think are missing from nixpkgs' lib?
<Cale>
Well, just replicating all the stuff we have for Data.List/Data.Map/Data.Set in Haskell would be a nice start :)
<infinisil>
Basically a builtin way to have Nix expressions depend on other repos
<Cale>
Yeah, I've heard a little bit about flakes -- haven't fully understood the details, but I've heard that they might be a way forward to splitting things up
<__monty__>
From what I've seen the technical issues are the *least* of your problems if you want to split up nixpkgs.
<infinisil>
I think at least lib would be rather easy to split
<infinisil>
stdenv a bit harder
<infinisil>
I'd split nixpkgs into at least these parts: lib, stdenv, package builders, packages, nixos
<infinisil>
But then you run into the problem that package builders need things like Haskell, which depends on all kinds of packages
<infinisil>
And it's a recursive mess
<infinisil>
So maybe package builders and packages should be left together
<Cale>
Maybe package builders can just be explicit about what they need as arguments
<Cale>
even if those arguments will eventually be built using them
<infinisil>
I mean, that's kind of already happening
<infinisil>
All package declarations define the list of dependencies as their arguments
<Cale>
Yeah, it's just that they're all lumped into pkgs
<infinisil>
Cale: Hm, so you mean we should have like a structured pkgs set with e.g. firefox in `pkgs.applications.browsers.firefox`?
<Cale>
Well, that would be nice, but really I'm referring more to this practice of passing this single argument which is an attrset of the entire universe
<Cale>
rather than making explicit arguments for the exact dependencies
sm[m] has joined #nixos-chat
<Cale>
so that readers of the code can see exactly what's going in
<Cale>
and don't have to look inside the abstraction to know what's really depended on
<infinisil>
samueldr: Yeah lol, also got that when I checked the current twitter hackings
<infinisil>
Cale: I'm still not sure how that would even look
<infinisil>
Or work
<Cale>
I mean, currently, things don't usually use *all* of pkgs
<Cale>
They just use the things they need
<Cale>
I'm just saying give them only the things they need
<Cale>
Yeah, the binders often pick out only the things that are needed
<Cale>
But then when these things get called, they're called with all of pkgs as the argument
<julm>
samueldr: sure, free to wash your brain with the best soaping ads available for your profile :\
<infinisil>
Indirectly yeah, `pkgs.callPackage` calls functions by only picking out the arguments they require from pkgs
<Cale>
Yeah, this callPackage shenanigans is something that I'm not even sure ought to be possible :D
<Cale>
because it sort of slightly breaks referential transparency in a way
<infinisil>
Cale: The only thing I can imagine by your suggestion to pass things explicitly is to do `firefox = import ./path/to/firefox { libfoo = libfoo; libbar = libbar; ... }`
<Cale>
Yeah, exactly
<infinisil>
And that's better how?
noonien has quit [Quit: Connection closed for inactivity]
<infinisil>
Well I guess you don't have to know about callPackage
<Cale>
Because if I have the question "what is firefox?"
<Cale>
I now have a place in the code which is an actual answer to that question
<infinisil>
You already have that now
<Cale>
it's not implicitly constructed by this fixed point
<Cale>
I dunno
<infinisil>
Well it still is though, libfoo and libbar would still get in scope through the fixed-point
<Cale>
It's a minor problem when you only have one fixed point, but it gets really weird and crazy when there's more than one
<infinisil>
That I can agree with, I guess you mean the .override/.overrideAttrs/.overrideWhatever things all over the place
<Cale>
I'm saying remove the fixed point combinator (probably), and define everything step by step
<Cale>
So you can walk through the chain of definitions in the code and see how everything is built
<Cale>
Maybe that's asking too much, but I think it would clarify the understanding of things quite a bit
<Cale>
It might be a bit of a pain to manage, since it means kind of duplicating the information about what everything depends on
<Cale>
Like, the nice thing about the status quo is that the dependencies are listed as the arguments to the function which we're defining
<Cale>
and then not again
<samueldr>
julm: I took this as a direct approval that I am in control, and allowed to block ads
<Cale>
But... I dunno, it's also not really duplication of information in some sense
<infinisil>
Cale: You mean we should do something like `let libfoo = ...; libbar = import ./path/to/libfoo { inherit libbar; }; in let firefox = import ./path/to/firefox { inherit libfoo libbar; }; in { inherit libfoo libbar firefox; }
<Cale>
Because in one case they're parameters and in the other case they're arguments
<Cale>
yeah
<infinisil>
I guess that gets rid of the fixed-point, but is that really worth it?
<infinisil>
This would be so much more painful to manage
<Cale>
I'm not sure, but it makes the whole thing much more like an ordinary functional program
<infinisil>
Is there something un-functional about fixed-points though?
<infinisil>
I guess it does make things harder to understand
<Cale>
There kind of is when the thing you're fixing is the entire universe
<Cale>
It makes understanding the program a lot more like understanding an imperative program
<Cale>
because you're successively mutating this universe
<infinisil>
As long as the universe is static that should be fine :P
<infinisil>
You aren't mutating it though
<Cale>
Well, you kind of aren't, but often you're taking in some pkgs, and producing another pkgs
<Cale>
and then that pkgs goes somewhere else and out comes yet another pkgs
<Cale>
and understanding what's going on inside is the whole game
<infinisil>
It does make things dependent on other things yeah
<Cale>
and, like, which version of which package from which pkgs gets used to build which thing
<Cale>
just becomes a really messy and difficult question to answer reading the code and trying to do it in your head
<Cale>
you need a debugger
<Cale>
and so, you end up using the nix repl to try to access things, and hopefully they're sufficiently exposed where you can observe them
<Cale>
and instead, you start to wish there were just explicit definitions of everything, in layers if needs be, but with some sort of human-imposed module structure if not language-imposed
<infinisil>
Hm I kind of get what you mean
<infinisil>
But I think we also shouldn't treat package definitions the same as programs
<infinisil>
Because they're kind of not
<Cale>
Maybe that's *also* true
<Cale>
Maybe we need some damn types
<Cale>
lol
<infinisil>
Back to types it is eh
<Cale>
The way that everything is abstracted over everything else means that I can do a whole lot of things which... I have no idea what it would even mean
<infinisil>
As much as I like Haskell, I'm not sure if Nix could work with static typing!
<Cale>
Like, I can call packages with bits of the standard library replaced if I want
<infinisil>
That's another speciality of Nix/nixpkgs: It's very extensible, you can change almost everything
<infinisil>
And that exists because people need it
<Cale>
Like, I guess to some extent that's understandable
<Cale>
Though, it certainly makes me feel a bit uneasy
<infinisil>
I guess at least the standard library shouldn't need to be changed
<Cale>
Like, when those package definitions got written, their authors probably weren't considering that possibility, and it's unclear what the laws are
<Cale>
If we're going to abstract over something, we sort of want some specification of which things about it we can still rely on
<infinisil>
A possibility I've played around with is to use the NixOS module system (or something similar) for package definitions
<infinisil>
The NixOS module system allows you to abstract functionality into modules, making it rather clear where things happen and what they do
<infinisil>
It's also a giant fixed-point, but it's much clearer what happens, and the interface to what you can do is also much clearer
<Cale>
Oh, another thing I've played around with, but not really used yet is having a little "ur-default.nix" which just enumerates the subdirectories of the directory it's in, and translates them into an attrset
<infinisil>
Oh I have that
<infinisil>
Hold on
<Cale>
the idea being that if you use this a bunch, it becomes a little more obvious where in the filesystem to find stuff
<infinisil>
Hm well it's sprayed throughout my config, but this would be pretty simple to implement using builtins.readDir
<Cale>
yeah
<infinisil>
Actually the argument against doing this kind of thing is that it becomes harder to understand it
<infinisil>
Because it's not just an `attr = value` definition anymore, but some implicit file importing action
<infinisil>
I would like to have something like this for replacing the giant nasty all-packages.nix thoughg
<Cale>
Yeah, it's not *really* what I want, but I've just wished at times for some forced correspondence between the module-like structures in the code and where to locate things in files
<joepie91>
julm: yeah things are going very well at Twitter right now :P
<joepie91>
they just blocked all(!) verified accounts from tweeting
<joepie91>
or changing their password
<joepie91>
meanwhile basically half their userbase is laughing at their incompetence
<infinisil>
Cale: With the NixOS module system you can do things like "which files define this option" or "show me all definitions for this option", which I think goes in that direction
<infinisil>
(the main problem with using the module system for package definitions is that it would be wayy too slow)
<infinisil>
But disregarding that, I think it would be really good
<samueldr>
joepie91: this sure is going to be an interesting story once over
<joepie91>
samueldr: yeah, and about a book's worth of lessons in how not to run ops for a global communications platform
<jneplokh>
I am surprised they didn't just go in maintenance mode right away, just a full shut down
__monty__ has quit [Quit: leaving]
<cole-h>
My keyboard arrived :D
<ixxie>
clackidiclack
Cale has quit [Read error: Connection reset by peer]
<ashkitten>
prescription vr headset lenses are arriving on friday π
* samueldr
wonders how he can get prescribed VR
<cole-h>
ixxie: Only somewhat. Tactile switches (MX browns for now) in this one.
<ixxie>
fluffidifluff
<cole-h>
First impression (coming from MX reds): I prefer linear