gchristensen changed the topic of #nixos-chat to: NixOS but much less topical || https://logs.nix.samueldr.com/nixos-chat
parsley936 has quit [Remote host closed the connection]
worldofpeace_ has joined #nixos-chat
worldofpeace_ has quit [Client Quit]
rajivr has joined #nixos-chat
<infinisil> Or direct link: https://remarkable.com/#What_Is_New
<samueldr> AFAIK it should be relatively trivial to run [Mobile] NixOS on it
<samueldr> except that IIRC it's armv7l
<infinisil> Yeah the comments mention that it's very open :D
<samueldr> unless they upgraded to the i.MX8 for the remarkable 2
<infinisil> Only mentions "1.2 GHz dual core ARM"
<samueldr> might be a different SoC, but still the same family, and still 32 bit
<samueldr> if it ends up being an i.MX8 it'll be close to the librem 5 phone
<infinisil> I see
<adisbladis> I really hope it's aarch64, though I doubt it
<samueldr> same
<infinisil> Also still excited for my librem 5!
<samueldr> for "embedded like" use of an integrated platform like theirs it doesn't make much difference to stick with armv7
<samueldr> and it might make updating the 1 and 2 together easier even
<adisbladis> samueldr: Also some of the reddit comments seem to indicate that the i.MX7 may be a better fit anyway
<samueldr> it may as well be
<samueldr> though all the wishes for aarch64 are mainly due to selfishness and build farm logistics :)
<adisbladis> Same :)
<adisbladis> I just want to use Nix with the official binary cache
<samueldr> I would rather we have armv7l builds going on and healthy than forcing aarch64 down the throat of everyone
<samueldr> (it's not too far off, we have the technology, we might mainly need some people to invest some of their time picking loose threads)
<samueldr> like, we had a machine doing builds successfully for a small while, if we took some time to properly look into the problems and fix them we should be able to get it going
<samueldr> but time is the most precious ressource we don't really have
<samueldr> since there's no one really working only for the sake of the distro
<samueldr> (I exclude those working on the sake of nix itself as it, in itself, is a full job!)
<infinisil> I don't know a lot about these things, so question: If all chips used RISC-V, would we not need separate caches anymore?
<infinisil> Or is this something different entirely
<samueldr> I don't know, why do you say that?
<samueldr> uh
<samueldr> cache as in cpu cache or as in nix binary cache?
<infinisil> Nix cache
<samueldr> oh
<infinisil> Like, would we not need x86_64-linux vs aarch64 anymore
<samueldr> might, might not
<samueldr> risc-v AFAIUI has the same issue as ARM has, if not worse
<samueldr> see, we have a generic aarch64 target
<samueldr> but we could be targeting cortex-76 instead
<samueldr> AFAIUI risc-v has similar "architectures" with different features, so we could target the common denominator
<samueldr> I say "maybe worse", because RISC-V *allows* integrator to implement custom instruction on top (might be misremembering the exact details)
<infinisil> Hmm I see, so it might work, but it would be slow everywhere
<samueldr> or not as efficient
<infinisil> Yeah, I see
<samueldr> we also have that issue with x86_64 too
<samueldr> so you might have an integrator using the "GOBRRR" instructions to go faster, which if your toolchain generates GOBRRR instructions it goes fast on those CPUs, but works on these CPUs only...
<samueldr> anyways, I'm not 100% sure of the details, and I think ARM also has something similar
<samueldr> and yeah, it's *already* an issue with new instructions like e.g. AVX
<infinisil> samueldr: Though I guess this issue about different instruction extensions could be resolved relatively easily at the last build step for binaries
<infinisil> Because the efficiency of binaries for compilers and such don't matter that much
<samueldr> yeah
<samueldr> but in practice it's a different input *somewhere* in Nixpkgs
<samueldr> though luckily AFAIK on x86_64 it's mostly fast maths stuff, so it's not been a real problem
<infinisil> What if nixpkgs had builtin support for all the different CPU instruction sets. So you could specify your CPU in configuration.nix, compile a bit (or substitute from cache), and have everything be a bit faster
<samueldr> I think we do already
<samueldr> but it might be at a higher level than you think
<infinisil> Afaik the closest thing is impureUseNativeOptimizations
<samueldr> platform gcc.arch gcc.tune maybe
<{^_^}> #61019 (by volth, 1 year ago, open): platform.gcc.arch: support for AMD CPUs
<infinisil> :O
<samueldr> though yeah, it'd be interesting to see a "leafy" version of optimizations
<infinisil> Yeah
<infinisil> Maybe everything in environment.systemPackages
<infinisil> Hm but services wouldn't profit then
<infinisil> This might be tricky to do
<samueldr> we could walk the config and apply it to all packages maybe?
<samueldr> can the types.package be (ab)used to do it?
<infinisil> Ah all package options
<samueldr> there is some post-processing that can be done, right?
<infinisil> Hmmm
<infinisil> Not with the type
<infinisil> But if we had a `mkPackageOption` kind of thing, it could be as the `apply` of the option
<infinisil> I guess something like that might work
<infinisil> But then again, not sure if worth the complexity!
<samueldr> probably isn't
<infinisil> Yea
<samueldr> (this might not have aged well)
<samueldr> (and is kind of a bad meme)
<samueldr> just saying, since I'm implementing it that way, I'm officially calling "hamburger menus" hamburglar menus
<samueldr> first, the stripes fit better when comparing it to the hamburglar's outfit
<infinisil> Hehe nice page
<samueldr> and then the hambuarglar menu is stealing the menu items away from you
ravndal has quit [Ping timeout: 264 seconds]
ravndal has joined #nixos-chat
<bqv> i liked gentoo...
endformationage has quit [Quit: WeeChat 2.7.1]
waleee-cl has quit [Quit: Connection closed for inactivity]
<danderson> pie_: I wouldn't say we understand how the dns stack works, but tailscale now has support for about 5 different ways of reconfiguring DNS on linux :)
<danderson> overwriting /etc/resolv.conf, legacy resolvconf (that doesn't understand per-interface configs), openresolv (that can do per-interface overrides and exclusive mode), networkmanager (via dbus), and systemd-resolved
<JJJollyjim> i had a job interview a while ago, where i mentioned i had been playing with nixos
<JJJollyjim> they asked what it was, and i tried to explain, and they said "oh so it's like the new gentoo?"
<JJJollyjim> D:
<c74d> "2432.83 MiB download, 9990.85 MiB unpacked" v_v
<c74d> no, Gentoo strains the computer with building packages; NixOS, with downloading them :-p
<c74d> downloading and unpacking
<c74d> and all too often building, too
cjpbirkbeck has quit [Ping timeout: 240 seconds]
<c74d> (more seriously, the Gentoo that I remember lacked NixOS's centralized declarative configuration, and NixOS lacks Gentoo's USE-flags; the one similarity I see is that both allow easily patching packages)
<ashkitten> huh, kimsufi emailed me about some ddos attack on my server that they automatically mitigated
<ashkitten> wonder what that was
cole-h has joined #nixos-chat
<ar> c74d: you can configure options for packages in nixos
<JJJollyjim> new zealand's stock exchange has been closed for 4 days due to an ongoing bitcoin-extortion DDOS lol
<JJJollyjim> It's a great target to DDOS
<JJJollyjim> Cos if you make it such that some people can't access it
<JJJollyjim> They're breaking the law by not allowing everyone to access it fairly
<JJJollyjim> So they have to take it down for everyone
<{^_^}> #12877 (by copumpkin, 4 years ago, open): Standard gentoo-like "use" flags across nixpkgs
<c74d> ar: aye, but there isn't a standard set of options and a way to set them globally rather than per-package
<cole-h> Um
<eyJhb> I have too much power in NixPkgs. Those "Comment and close" and "Comment" are too close to each other! :(
FRidh has joined #nixos-chat
<cole-h> Heh.
<cole-h> (All maintainers have that ability, FWIW)
<eyJhb> Yeah :p
<eyJhb> I really wish I had more hours in the day
<eyJhb> Or I should start structing my day a little better.
<cole-h> Ouch. Too close to home.
<eyJhb> :p
<eyJhb> Do you try to do it cole-h ?
<cole-h> No lmao
<eyJhb> "This guy must be joking!!" - cole-h 2020
<eyJhb> :D
<cole-h> I wake up, hack on my flake, go to work, come home 8 hours later and hack on my flake, go to sleep, repeat.
<eyJhb> My still GF in front of strangers, need to find a official date in front of others, is not happy if I do that :p
<eyJhb> So I need to incoporate time for everything :p
<eyJhb> Ahh fuck me
<eyJhb> `fileserver: require specification of name` does it need to require one, or is it a bug?!
<cole-h> From your TODO list? :P
<eyJhb> Pretty much
<cole-h> heh
<eyJhb> A lot of fixed issues, that I have not closed
xd1le has quit [Read error: Connection reset by peer]
xd1le has joined #nixos-chat
<eyJhb> I have 31 todos in my code...
<eyJhb> `grep -ir1 -A 0 -B 0 "TODO(" | grep -v context | grep -v '\-\-' | wc -l` so a lot to do in general :p
<eyJhb> But I would rather have a lot of todos in my code, than none at all and just guess where I might have messed up
viric has joined #nixos-chat
viric has quit [Remote host closed the connection]
viric has joined #nixos-chat
<pie_> danderson: hooray?
cole-h has quit [Quit: Goodbye]
<eyJhb> What is up with git merging atm.?
<eyJhb> EVERY SINGLE THING has a merge conflict.
<eyJhb> I am currently splitting a commit into two, and not changing a thing. And I have merge conflicts.
<eyJhb> Wth.
<bqv> Rip
<eyJhb> Why the HELL does Docker not support deleting a image from a Registry using the command line?
<eyJhb> Except using curl. (command line being the docker cli)
<JJJollyjim> it's fine, they're about to start deleting images for you without you having to do anything :D
<eyJhb> Garbage collect, or just... fun JJJollyjim ? :p
<JJJollyjim> yeah they've decided "storing everyones stuff forever for free" is a bad business model
<JJJollyjim> they're also gonna rate-limit pulls
<eyJhb> A little yay and a little nay
<eyJhb> That does not sound fun
<eyJhb> I am on a shared connection
<eyJhb> With the fucking university.
<viric> I've seen the nixbuild.net
<viric> I wonder how faster it is than a local build
<viric> a PR would also make hydra build things, isn't it?
<joepie91> <JJJollyjim> yeah they've decided "storing everyones stuff forever for free" is a bad business model
<joepie91> I think that kind of obscures the actual systemic problem and reason for this
<joepie91> which is "they always knew it was a bad business model, but the VCs ran out of patience with throwing money at that particular black hole"
<joepie91> and IMO it's important to frame it that way because it explains why this keeps happening at startups
<joepie91> throw a big bag of money at giving people free shit to tempt them away from competitors and slowly bleed those out or prevent them from building up a business, and then once the market has been captured, take away the freebies
<bqv> Lol, boy am I glad I refused to ever use docker
<eyJhb> bqv: why?
<joepie91> in other words: depending on a VC-backed startup (especially in their initial growth phase) is basically a guarantee that you will get screwed down the line in some yet-to-be-determined way
<joepie91> because that is quite literally how the economics work, it's what people mean when they say "customer acquisition budget"
<bqv> eyJhb: because I'm not remotely victim to this situation now
<eyJhb> I think not many are bqv :p
<JJJollyjim> ++joepie91
<eyJhb> I think many are not victims to this*
<eyJhb> I might be, I have to see my fatso go...
<eyJhb> :(
<eyJhb> The best container ever - https://hub.docker.com/r/eyjhb/fatso
<eyJhb> I sholud have put a trojan into this - https://hub.docker.com/r/eyjhb/yafu
<eyJhb> Shame
<bqv> Yikes
<bqv> Yeah containers are an unpleasant concept to me
<sphalerite> viric: no, borg will build stuff on PRs but hydra doesn't until it's merged or for branches that it's specifically configured to build
<eyJhb> I like them, quite much! :p
<viric> ah I don't know borg
<viric> hydra, borg and nixbuild.net, three farms?
<eyJhb> viric: I assume nixbuild.net can be used by us, without access to hydre/borg, etc. without much computing power when we are forced to rebuild the worsd :p
<eyJhb> world*
<sphalerite> viric: yeah hydra builds stuff for the official binary cache and advances the channels; ofborg does PR checks, including building packages and tests.
<sphalerite> viric: nixbuild.net is unrelated to the nixos foundation and is a service that anyone can use to power remote builds.
<viric> ok, thank you
<viric> unclear to me, what power does nixbuild.net have, to forecast build times.
<sphalerite> I don't think the people who run the service are on IRC, so maybe email them if you want more info.
<viric> They'd say try it
<viric> Fine. Thank you :)
<eyJhb> I wonder if it is pr. started CPU hour, or the count minutes/secs, etc.?
<viric> I mean it could run in a CPU slower than my computer.
<eyJhb> Yeah, there is a need for specs :p
<eyJhb> Intel Atom ;) :p
<viric> I doubt I'd pay for such a thing. I often have simply more patience.
<eyJhb> viric: start a Firefox build
<eyJhb> I can't build that locally
<adisbladis> "The pricing of nixbuild.net is very simple: 0.12 EUR (excl. VAT) per CPU hour."
<adisbladis> Umm, that's not that simple imho
<viric> I built multiple chromium for the libva thing :)
<eyJhb> viric: :(
<eyJhb> We can't all have nice hardware! :p
<eyJhb> adisbladis: nope :p
<viric> 400€ laptop of years ago, dual core
<viric> patience!
<adisbladis> I mean, maybe it's simple to measure
<eyJhb> Btw. still looking for those ears adisbladis. I want to find some from Bobs Burgers
<adisbladis> But it sure is hard to forecast what the true cost is going to be
<eyJhb> viric: I think mine ran out of memory, but that might be because of tmpfs while building :p
<viric> 8GB here. no tmpfs
<adisbladis> eyJhb: You still have some time ;)
<eyJhb> Still, x230, i7-3250m (dual core with HT), 16 GB ram
<eyJhb> I might be able to do it now however
<eyJhb> adisbladis: I guess I can ship it as long as you are in Sweden :p
<viric> eyJhb: i3 here. Yours runs faster :)
<eyJhb> How does it look with NZ atm.? Stil dicks regarding traveling to it?
<eyJhb> viric: which model do you have ? Mine is from 2012 :p
<viric> i3-5005U
<viric> mine is newer, definitely
<eyJhb> Ahh, the good old "U" series
<eyJhb> I think you need to go 2-3 generations farther in the x2xx series before the CPU is better than mine....
<eyJhb> Because they use the U series
<adisbladis> eyJhb: They're like a cult atm with their PM being the cult leader
<adisbladis> So yes, it's not moving forward
<eyJhb> Any more cases of covid-19?
<eyJhb> ANd sucks... :(
<viric> eyJhb: it doesn't take much power, doesn't weight much, etc.
<adisbladis> Yeah, they have more cases (of course they do, what did they expect)
<adisbladis> Virus gonna virus
<viric> what's that U about, in detail?
<eyJhb> viric: U -> Ultrabook, uses less power but has less POWEEEER basically
<viric> "Mobile power efficient" it says
<eyJhb> adisbladis: true. They cannot close forever! At least we hope not
<adisbladis> eyJhb: I am considering options for where to spend the winter
<adisbladis> eyJhb: Even if they close forever it's not gonna work out for them... It's not like they can infinitely stop citizens
<adisbladis> You'd think we would have learned by now that the measures taken don't really work...
* bqv wants builtins.fromYaml
<bqv> YAML has been a strict superset of JSON since 1.2
<bqv> What?!
<sphalerite> yup all valid JSON is valid YAML
<sphalerite> the data model is the same I think? YAML just has sugary syntax
<sphalerite> the kind that gives you diabetes
<bqv> Yikes
<bqv> Well. I think I still want to write normal looking yaml
<sphalerite> we use builtins.toJSON in various places around nixpkgs to generate YAML files :)
<bqv> Hmm
<bqv> I wouldn't mind that, actually, if there was a fromYAML
<sphalerite> or a yaml2nix tool hehehe
parsley936 has joined #nixos-chat
rardiol has joined #nixos-chat
rardiol has quit [Client Quit]
Jackneill has joined #nixos-chat
Jackneilll has quit [Read error: Connection reset by peer]
<eyJhb> If anyone is bored - http://165.22.90.78:32772/
<eyJhb> Basically, portscan the host for up to 7 challenges :p For as long as i have it runnig
rardiol has joined #nixos-chat
<eyJhb> pie_: I know you want some of this
<adisbladis> "We store this data insecurely, so be sure to enter all your personal details." <3
<eyJhb> True :p It sounds like I am collecting info, but I am very much net :D
<eyJhb> I can't even see what you type in, if you leave anything funny :(
rardiol has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
noonien has quit [Quit: Connection closed for inactivity]
<eyJhb> And down they go!
xd1le has quit [Read error: Connection reset by peer]
xd1le has joined #nixos-chat
Jackneill has quit [Ping timeout: 256 seconds]
<eyJhb> Am I just weird, that during coding breaks when I have a soft logical problem (e.g. where to place this logic) that I talk to people and still maintain my ability to think about said problem?
<eyJhb> Other way of putting it, isn't it quite normal to speak to colleagues etc. about non-code, while in-mind solving/thinking about a problem at work?
<sphalerite> I don't think I can do that well
<sphalerite> would be a cool skill to have. Maybe it can be practised!
Jackneill has joined #nixos-chat
<eyJhb> I do it all the time, but it is viewed as "not working"
<eyJhb> But it is just simple things, like if I have any real logical problem, with actually writing such logic then I can't. But more of it "should this go here, or here". I might be in the category of software architecture
xd1le has quit [Read error: Connection reset by peer]
<eyJhb> sphalerite: might just be me that is weird, but I have been doing it since always.
<joepie91> eyJhb: happens to me to a degree
<eyJhb> But I can also have videos in the background, but mostly music
<eyJhb> joepie91: how much of a degree?
xd1le has joined #nixos-chat
<joepie91> eyJhb: when I have to actively think about something, my mind context-switches away from the engineering problem, but during relatively mind-numbing tasks things slowly get solved in the background, and often detaching from it for a bit makes the answer immediately obvious when I get back to it
<joepie91> one factor seems to be the "fresh look", another factor seems to be the random associations with other things when I get mild sensory input from doing the laundry or idly chatting away a bit or whatever
<eyJhb> Yeah, pretty much that. That is how I do it as well, but so many frown upon it
<eyJhb> Which is annoying as hell
<FireFly> there's a component in the "figuring something out when taking a walk/in the shower/right before sleep", where your thoughts kind of just wander, but I guess that's different (since the point there is the lack of distractions)
<joepie91> eyJhb: "frown upon it" in what sense?
<eyJhb> Honestly, I can do my laundry, and still call it work (at times). Because often you have some kind of maybe abstract problem, that doesn't need you to 1. 100% focus on it 2. be in-front of a computer to solve. Just thinking about it, and laying it out
<eyJhb> joepie91: "it is not work"
<eyJhb> That you shouldn't be payed for it, etc.
<joepie91> ah, right.
<joepie91> I'm a freelancer so that helps
<eyJhb> FireFly: it is a fine line, sometimes distractions can be good etc. :p
<joepie91> I charge for the time that I am spending on a project; whether that is my fingertips hitting plastic shields on mechanical switches or whether that is pondering about a weird problem, does not matter
<eyJhb> joepie91: yeah, I work from home as well. But I still have friends, etc. who does not see it as "work"
<joepie91> if I am doing work that means that I cannot be working on my own things, that is work :P
<eyJhb> ^^^^
<eyJhb> However, that is a little problem here :p
<joepie91> eyJhb: I mainly mean that it "helps" in that I set the conditions of what constitutes "work" and the clients only care about cost:result ratio
<eyJhb> This started as my own thing , and I am getting payed to do it now. But I guess I cannot work on anything other of my own besides that :p
<joepie91> this is harder in regular employment where $boss often dictates your method of working
<joepie91> eyJhb: if someone pays me to work on my own thing, then whatever work I do on that thing that falls in the scope of what the client wanted, is paid work
<eyJhb> joepie91: ever done the dishes while thinking about a probelm and calling it work, or go for a walk and call it work?
<joepie91> I got a dishwasher so that I never have to do the dishes again :P
<eyJhb> Pans and pots?
<joepie91> dishwasher
<eyJhb> I will smack you if you put pans into it
* eyJhb smacks joepie91
<joepie91> everything goes in the dishwasher here
<eyJhb> Then, the walk part I guess -;p
<eyJhb> Or vaccuming
<eyJhb> Any stand up activity
<joepie91> anyway, for me it's usually laundry, or a shower/bath, or toilet break, or plopping down on the couch and petting the cat, or plopping down on my bed and staring at the ceiling, or otherwise cleaning
<joepie91> walks not so much
<joepie91> it annoys me that I have no way to put what I thought of into practice
<joepie91> without first having to walk back
<eyJhb> But you constitutes that as working hours, as long you think about the problem at hand?
<eyJhb> True..
<joepie91> eyJhb: yes
<eyJhb> That is why you walk in a medium circle around your place :p
<joepie91> medium circle gets boring :P
<eyJhb> Big problem, big circle, medium, medium circle etc.
<joepie91> but yeah, basically, I include breaks in my work time so long as it sits inbetween 'active work'
<eyJhb> Tiny problem, ballerina spins
<joepie91> because that is when most hard problems get solved
<eyJhb> Precisely
<joepie91> eyJhb: heh, if I knew what was gonna be a big or small problem upfront, my job would be a lot easier
<eyJhb> That is hard as holy hell to explain to someone not in this field
<joepie91> yeah
<eyJhb> Yeah, true... Mine are usually small and then "ohh I need to refactor ALL THIS...."
parsley936 has quit [Ping timeout: 240 seconds]
<eyJhb> Then you extended circle!
<joepie91> I usually get pretty far with "my job is to solve unsolved problems, which also means that noone solved them before me so I can't know how long it'll take to solve them"
<joepie91> eyJhb: for me it's not usually refactoring, I do that preventatively
<joepie91> it's more that I discover additional edgecases
<eyJhb> Don't think that will help me often :p
<joepie91> and sometimes have to rearchitect the entire thing to simplify those
<joepie91> which I guess is conceptual refactoring, but involves little code refactoring
<eyJhb> Well, little code refactoring can take time, when you need to change the unit tests, etc.
<eyJhb> I had to just rename a single thing, and make it into a list. Took forever...
<joepie91> unit tests
<joepie91> unit tests :P
<eyJhb> Still takes forever :p
<joepie91> as if I have those
<eyJhb> Mainly because this thing, is what everything is build around. So it might be 1-2 lines at the core and then everything needs to change :p
* joepie91 basically only writes automated tests for super fragile/security-critical things and regression prevention
<joepie91> eyJhb: a lot of that can be prevented through good API design though
<eyJhb> I write them most of the time for regression, and to ensure I have covered all the cases
<joepie91> you won't ensure that you have covered all the cases :P
<eyJhb> Link me anything on that, because this is basically a API
<joepie91> unit tests are spot checks, not categorical tests
<eyJhb> Nope, but I will ensure that it works in the cases I need it, at least what I described it should do :p
<eyJhb> Best part is people with 100% covered, saying it will never crash or do something enexpected
<eyJhb> 100% being all lines have been touched
<joepie91> eyJhb: I have no good comprehensive resources on this, but most of "good API design" for future changes is a) continuous refactoring to improve code quality and simplify the mental model, even if there is no *immediate* obvious benefit for it, and b) leaving space for extension of an API down the line, can be simple things like 'return an object with a key instead of a scalar value'
<joepie91> another useful trick is to, during the initial design phase, design your API to be overly extensible with extension points everywhere
<eyJhb> I do a little of both, depends on the place
<joepie91> because it's much easier to remove all the unnecessary extension points at the end, than to keep adding new ones throughout the development process
<eyJhb> But sometimes, you then end up with using too much time on that, is what I have experienced
waleee-cl has joined #nixos-chat
<eyJhb> But I might not have learned it the other way
<eyJhb> Which is harder I guess
<joepie91> eyJhb: I don't find there to be such a thing as "too much time" :P
<eyJhb> You can easily spend too much time on something, with deadlines and only 24 hours in a day :p
<joepie91> but I am also very outspoken about my development approach, so if someone wants it "done tomorrow, no matter what" then they're not gonna hire me
<joepie91> yeah so deadlines are not really a thing for me
<joepie91> it's done when it's done
<joepie91> only exception is uncontrollable outside factors
<joepie91> (eg. government legislation)
<eyJhb> Well, I have no hard deadlines as well, luckily
<joepie91> otherwise, you hire me when you want it done well and built to last forever, not when you want it done quick
<eyJhb> But after almost a year at this place, and I have not done a single demo yet :p
<joepie91> eyJhb: you can also just reduce the scope and build that well first :)
<joepie91> which is how I usually approach it
<eyJhb> Currently I want something to work again, so I can use it and start to teach
<joepie91> start with the simplest thing, build that out, extend it in a few places, see if the design holds up, first version does the bare minimum but does it well and reliably
<joepie91> new features don't get added until the foundations are solid
<eyJhb> Because once I reach that point, I have all the time in the world. And I am fairly close to it
<joepie91> this means you have something to show fairly early on, without compromising on quality
<eyJhb> True, what makes this harder is all the external factors
<eyJhb> Basically a cloud deployment way
<eyJhb> With specific use features
* joepie91 cannot parse that
<eyJhb> fix that parser!
<joepie91> nah, too busy reviewing code
<joepie91> always unfortunate when you encounter dangerous code practices in fairly security-critical libraries...
<eyJhb> What I am making is basically a way to deploy to the cloud, with a very specific way of managing and handle what is to be deployed etc... I guess
<eyJhb> if access == true || username == "admin":
<joepie91> nah, braceless conditionals
<eyJhb> Does.. Not sound fun? Not sure?
<eyJhb> Ah
<eyJhb> Yeah, that is fun
<eyJhb> Or switch statements with missing breaks
<joepie91> this is one of those irritating things where people *insist* on doing this wrong because it "looks cleaner"
<joepie91> eyJhb: yeah, switch statements are pretty much just a bad idea to use
<sphalerite> go team match
<joepie91> a well-designed match expression is indeed much safer
<ar> joepie91: can't you enforce some uncompromising code formatting tool (in the spirit of python black, rustfmt, or gofmt)?
<joepie91> ar: these are third-party dependencies
<joepie91> (also, "code formatting" as a general thing is IMO undesirable, this is really not a formatting issue so much as it is a dangerous-use-of-language-features issue)
<sphalerite> eyJhb: no, not that kind of match expression.
<ar> joepie91: well, i'd assume an uncompromising code formatting tool would transform if (foo) bar; into if (foo) { bar }
<joepie91> ar: it shouldn't "transform", the whole problem with brace-less syntax is that the code is ambiguous, so it cannot automatically determine what the correct code would be, it can only explode and yell at the user :)
<joepie91> ar: but aside from that, my complaint is about the principle of "code formatting" as an automated thing
<joepie91> this is separate from avoiding footguns
<joepie91> even if automated code formatting accidentally nukes a few footguns as a side-effect, that doesn't make the concept in and of itself a good one
<joepie91> :p
<{^_^}> bitcoinjs/bip39#138 (by joepie91, 1 minute ago, open): Code quality/safety concerns
<eyJhb> sphalerite: :( Come on. preg_match for if conditions
<eyJhb> What are you doing atm. with bitcoinjs joepie91 ?
<joepie91> eyJhb: nothing, dep review for customer
<eyJhb> That does not sound fun
<joepie91> shrug, decent enough, pays the bills, useful to the ecosystem
<eyJhb> Are you freelance with own company, or freelance as in private person
<eyJhb> ?
<joepie91> eyJhb: that is functionally the same thing here
<joepie91> registered as a sole trader, is the equivalent I guess
<joepie91> but it's formally a company
<eyJhb> It makes a huge difference for most companies as far as I have seen
<joepie91> I have a company registry number, do sole-trader company revenue tax filings, have a VAT number, business bank account, etc.
<joepie91> but the company is me, liability-wise, I can arbitrarily transfer assets between the two so long as it's documented, etc.
<eyJhb> Yeah, but still makes a great big of difference to me. I do the same thing
<joepie91> not sure what difference you're talking about :P
<eyJhb> me -> some
<eyJhb> Damn it
<eyJhb> Just having something be a company, makes some feel safe :p
<joepie91> dunno, can't say I've run into that
<joepie91> then again, most of my clients come from IRC, find me through issue threads, etc.
<joepie91> so they already kinda know who I am
<joepie91> may be different if that's not the case :P
parsley936 has joined #nixos-chat
<eyJhb> It is :p
<eyJhb> On IRC? Is there a for-hire IRC channel?
<joepie91> eyJhb: dunno
<joepie91> occasionally someone rolls into #Node.js going "oh no I have a problem I need someone to do this"
<joepie91> or just asking me whether I'm for-hire for something after helping them out
<eyJhb> And then you say, 200$ an hour
<joepie91> more like 90 EUR/hr, but yes :P
<joepie91> though I've been working on a commercial-support-y thing ltaely
<joepie91> lately*
<eyJhb> If you can do that full time, then you make a pretty good living :p
<eyJhb> Like, 8 hours a day
<joepie91> I don't have full-time workweeks
<joepie91> (intentionally)
<eyJhb> How many hours a week?
<viric> end of his office time
<joepie91> eyJhb: varies
<joepie91> but about 30 hours is my target
<joepie91> or well, "target"
<joepie91> soft max, really
<joepie91> I do paid work to pay the bills, not because I want to be doing paid work :P so I do enough to tick that box and the tax authority "are you a business" box and the rest of my time is for own projects
<eyJhb> joepie91: The thing is. you just need a ton of money and then do whatever you want to do!
xd1le has quit [Read error: Connection reset by peer]
xd1le has joined #nixos-chat
<ar> new usb-c altmode: ratbrain. page 7 on https://www.biorxiv.org/content/10.1101/703801v4.full.pdf
<samueldr> hm, I don't see details about it
<samueldr> they say they're using a single UBS-C cable
<samueldr> though it could be like those PCIe extender that re-uses HDMI connectors or USB connectors
<samueldr> and totally-not-usb
<samueldr> or it could also be normal usb, not an alt mode
{`-`} has joined #nixos-chat
rardiol has joined #nixos-chat
<elvishjerricco> Huh. TIL you can't use sudo in a buildFHSUserEnv. I guess it makes some sense
endformationage has joined #nixos-chat
MichaelRaskin has joined #nixos-chat
<sphalerite> elvishjerricco: not from a security perspective I think? But given the mechanisms involved, yes
<elvishjerricco> Right
<elvishjerricco> The weird stuff with becoming root but also being in a user namespace to make mount points...
<sphalerite> yep
cole-h has joined #nixos-chat
FRidh has quit [Quit: Konversation terminated!]
cjpbirkbeck has joined #nixos-chat
tokudan has quit [Remote host closed the connection]
tokudan has joined #nixos-chat
neeasade has quit [Ping timeout: 256 seconds]
rajivr has quit [Quit: Connection closed for inactivity]
cole-h has quit [Quit: Goodbye]
wildtrees has joined #nixos-chat
abathur has joined #nixos-chat
<energizer> is there a way to scroll sideways by holding down a key and scrolling down?
<samueldr> depends on the GUI toolkit, but shift often does
<energizer> nice, thanks
<energizer> what about sideways home/end?
<samueldr> I know nothing of the sort
<samueldr> and it annoyed me the other day :)
<energizer> is there a hardware device that's a dedicated scroller?
<samueldr> I wonder if you can remap a trackball to do it
<samueldr> I mean, mapping at the trackball level, software it's pretty sure you can
<bqv> > lib.formats.yaml
<{^_^}> attribute 'formats' missing, at (string):321:1
<bqv> > lib.format.yaml
<{^_^}> attribute 'format' missing, at (string):321:1
<bqv> huh
<bqv> oh
<joepie91> samueldr: yes
<joepie91> samueldr: I used to have a mouse with vertical scroll
<joepie91> where you could tilt the scrollwheel and hold it
<joepie91> to scroll to the side
<joepie91> so this is 100% protocol-possible
<samueldr> oh, that I know
<jtojnar> > pkgs.formats.yaml
<{^_^}> <LAMBDA>
<joepie91> (I still miss this feature...)
<samueldr> I do have mice with horizontal scrolling by nudging the wheel
<jtojnar> bqv^
<bqv> yeah, i know
<bqv> that was the "oh"
<samueldr> what I wondered is about the e.g. kensington trackball, they have software (on windows) to configure the trackball, which (1) I don't know if it saves on the device and (2) allows remapping the ball
<samueldr> (I was lightly looking at trackballs recently due to one of my mice exhibiting early signs of dying)
<energizer> looks like mousing around in x11 is a MotionNotify event, scrolling is a ButtonRelease event
<energizer> but anyway if i had a regular mouse and a trackball idk how to map only the trackball movement to scrolling, that doesnt seem possile
<energizer> possible
wildtrees has quit [Quit: Leaving]
<energizer> it would have to be a trackball that pretends to be a keyboard
<infinisil> Nice, estimated to be shipped "mid-to-late November 2020"!
<infinisil> So 2020, if we're lucky
<sphalerite> energizer: that's only with the crappy old-fashioned X event thingy (not sure about the full technical details of what's what)
<sphalerite> energizer: but if you run `libinput debug-events` (from the libinput package) you should see some more interesting scroll events, including fractional scrolling if you're not using a classical mouse wheel
<bqv> TIL grand theft auto has a plot
<bqv> that seemed to have gone completely over my head
<sphalerite> So I have a device, and I've managed to build a kernel for it and at least sort of start booting it. I think I need a device tree for it to get any further, since the last messages it prints are "Failed to get CPU node" and "sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns", while the stock kernel says "sched_clock: 32 bits at 387MHz, resolution 2ns, wraps
<sphalerite> every 5541893118ns"
<sphalerite> Anybody know where I should start reading up on how to make this stuff work?
<sphalerite> bqv: which GTA?
<energizer> sphalerite: can it distinguish between multiple plugged-in mice?
<sphalerite> energizer: yes
<bqv> i'm not even sure
<sphalerite> bqv: 2D or 3D?
<bqv> i wasn't playing
<bqv> i'm listening to an interview
<sphalerite> fine :p
<bqv> i've only ever played 5
<energizer> sphalerite: nice. so i could interpret trackball +x as scroll horizontal, and if i wanted a "horizontal end" button, could i simulate pressing shift+scroll 10000 times
<sphalerite> but yeah I only recently started playing the series, starting with GTA III. Great stuff.
<sphalerite> energizer: uuuh probably.
<sphalerite> energizer: "horizontal end" would probably be better to implement with a single event that has a very large positive X delta though :)
<energizer> sphalerite: if i want to just make a keyboard shortcut for horizontal-end, do i do that with libinput, or somewhere downstream?
<sphalerite> energizer: I'm not sure exactly unfortunately. I think for injecting events you either want something using the XTest extension for X11 (like xdotool), though I'm not sure the extension or xdotool support the rich events that libinput does; or using uinput, which is the kernel's mechanism for injecting input events from user space.
<sphalerite> energizer: I'm 99% sure what you want can be achieved using uinput, but (a) not sure if any specific tools support what you want (ydotool is one tool using uinput which might be able to do this) and (b) uinput allows injecting arbitrary input events, which may be a security issue depending on how your computer is used.
rardiol has quit [Ping timeout: 258 seconds]
<energizer> sphalerite: is the event that i want to inject "mouse scrollwheel device moved very far"?
<sphalerite> energizer: I'm less certain that it's possible with Xtest, but I wouldn't be surprised if it is.
<sphalerite> energizer: yes.
<energizer> sphalerite: ok thanks
<sphalerite> there may also be some third option that injects events into libinput or something, outside xtest and uinput, but I don't know of one.
<samueldr> there may be useful things in the input utils stuff from kraxel https://git.kraxel.org/cgit/input/
rardiol has joined #nixos-chat
<sphalerite> based on the readme, doesn't look like it to me
<samueldr> oh, yeah, I had input-kbd in mind, which might be adapted for other input devices
<samueldr> oh, no, it's not intercepting
<samueldr> though input-events does allow to see the raw events, and grab the device, so that + uinput could be the ticket
<samueldr> I have this old thing I should figure out the packaging for https://github.com/samueldr/nimwiit
<samueldr> this is a fun uinput wrapper to make both variants of the wiimote protocols work the same
<samueldr> wow, what a dolt, not even any instructions in the README about how to use this
<samueldr> if you didn't know, earlier and later wiimotes behave differently!
<samueldr> not sure if since 2015 the kernel handles it for you though
<bqv> infinisil: how are we meant to use pkgs.formats.* with default values?
<bqv> what's the merging semantic
<infinisil> bqv: Is it not working how you'd expect?
<bqv> it wasn't previously
<bqv> i haven't tested recently
<bqv> but it seemed setting a value would override the default
<bqv> ..wait, maybe that's just me being an idiot, i should be setting default in config, not in option.default
<infinisil> Yea, the default in options translates to `mkOptionDefault <the default value>`
<infinisil> Which for attribute sets means that setting any other value in the normal config overrides the whole default
<infinisil> I've recently investigated about how this could be improved
<bqv> yeah cause setting it in config still isn't ideal, it'd mean having to use mkForce for everything
<bqv> my current hack is to manually do recursiveUpdate, but i reckon something nice could be done with submodule types
<infinisil> Also you can't see defaults in config in the manual
<bqv> also yes
parsley936 has quit [Remote host closed the connection]
<ashkitten> ooh i think firefox 80 solved my issues with hardware video decoding flaking out
<ashkitten> no more green flashes, no more dissolving into a blocky mess so far
<bqv> you've seen the green flash?! i thought that was just an old shanty
<ashkitten> been happening since i enabled hw decode
<ashkitten> but seems to not be in ffx 80
<bqv> was making a pirate joke...
<ashkitten> OH
Jackneill has quit [Ping timeout: 256 seconds]
<energizer> samueldr: how's the battery life on nixos mobile?
<samueldr> untested
<samueldr> though in reality it should be "depends on what you're running, on what kind of devices"
<samueldr> e.g. if you run on android-based devices I'm sure there are things that help power use that isn't done
<samueldr> if you use a mainline-first device (like the pinephone) it should be better, and comparable to other distros *assuming the same software is selected*
<energizer> eg i'm curious if it's 90% as long as android or 50% or 30%
<samueldr> since we don't have a "low power" mode on android-based devices figured out, where we're almost sleeping the device, but not quite, it's not comparable
<samueldr> (with the caveat that for the time being, our pinephone builds don't use crust, as it still needs to be built using Nix, so currently compared to other pinephone distros it might not be as good in suspend)
<energizer> mhmm
<genevino> mmmhhh
<samueldr> hm?
<genevino> samueldr: well i use nixos on 2 laptops, it's great
<samueldr> Mobile NixOS doesn't care about laptops really ;) https://mobile.nixos.org/devices/index.html
<genevino> oh ok that's something different than i thought it would be
<samueldr> I understood that, why I was cheeky :)
<genevino> well, good. :)
<genevino> most people hate nitpickers, i don't.
<samueldr> because yeah, on regular use, NixOS is just a Linux distro that's managed in a neat way