<MichaelRaskin>
I wonder if unqualified «100% safe rollback» is a bit _too_ optimistic about NixOS as an unconditional statement; after all, we did have _some_ widely discussed situations where rollback required non-trivial work (even if not as much as repairing after an interrupted apt command)
abathur has joined #nixos-chat
abathur has quit [Ping timeout: 250 seconds]
__monty__ has joined #nixos-chat
ottidmes has joined #nixos-chat
<aanderse>
MichaelRaskin: for many setups we offer zero rollback ability because of state
<MichaelRaskin>
Exactly, and even Nix itself has some interesting state — which is why «100% safe rollbacks» slightly annoys me whenever it appears in some comment/twit/whatever
abathur has joined #nixos-chat
abathur has quit [Ping timeout: 265 seconds]
<aanderse>
literally one line for me to snapshot a vm, Anne 3 clicks to rollback so honestly i haven't thought about it too much
<MichaelRaskin>
I was thinking about accidentally attracting people by false promises and not clearing up the confusion before they hit the limitations; sure, I guess all regular contributors (let alone crucial committers) have a feeling for where the edges lie and use things safely.
<ottidmes>
really need to buy a new case for my local server, just had to reroute the power due to some work being done on the powerlines, tried to power it again, no luck, is the front panel once again gotten loose. Maybe I should just put some tape on it... Luckily this motherboard has a power button on it, so I just pressed it instead
<ottidmes>
eyJhb: when I saw that, I was like, that's not that special, right, but then I realized it was WORDS per minute, not keystrokes
aleph- has quit [Ping timeout: 240 seconds]
aleph- has joined #nixos-chat
Church- has joined #nixos-chat
aleph- has quit [Read error: Connection reset by peer]
waleee-cl has joined #nixos-chat
cole-h has joined #nixos-chat
<eyJhb>
Yeah infinisil , that is on Dvorak :D So slowly moving forward
<eyJhb>
joepie91: who in their right mind would think that was a good idea... :p
slack1256 has joined #nixos-chat
<pie_[bnc]>
did they put mayonnaise in the cpu socket
<pie_[bnc]>
if not ill be disappointed
<ottidmes>
Hmm, now I am hungry, better start my dinner XD
slack1256 has quit [Ping timeout: 256 seconds]
slack1256 has joined #nixos-chat
<ashkitten>
infinisil: does nixoses automatically reboot after switching?
<infinisil>
ashkitten: Nah
<ashkitten>
i don't know how to interpret this journald log lol
<infinisil>
Not sure what you mean
slack1256 has quit [Remote host closed the connection]
<ashkitten>
last night i started a system rebuild with nixoses, it looks like at about 01:42 today a user ssh'd in as root from this machine's ip address, systemd started a bunch of stuff, and then at 01:45 the whole system reboots
<ashkitten>
systemd restarted*
<gchristensen>
opened up a tin of anchovies and my dog is so, so, so unhappy with me for depriving her of these evidently-delicious morcels.
<infinisil>
ashkitten: If the new system activation failed, it attempts a rollback, and if that fails it reboots
<ashkitten>
i see
<infinisil>
Ctrl-C handling is pretty shitty, maybe that was it
<infinisil>
(terminates some but not all processes)
<infinisil>
Makes me want to write it in not-bash :)
<ashkitten>
i was not at the computer at the time
<ashkitten>
other weird thing, if a nixoses deploy fails it seems like it doesn't even save the built store paths?
t3rm1nal has joined #nixos-chat
t3rm1nal has left #nixos-chat ["Leaving"]
<infinisil>
ashkitten: Yeah, I guess that could be done
<infinisil>
Though not sure if it makes sense
<ashkitten>
what could be done?
<infinisil>
To save the built store paths
<ashkitten>
oh, right
<infinisil>
Though if it fails, I'm not sure if this makes sense
<infinisil>
Why would you want to retain a system closure that doesn't work
<ashkitten>
i think it should be, because it took 5 hours to build it
<infinisil>
Ah
<infinisil>
I guess the last build could just be kept alive
<infinisil>
ashkitten: Oh, actually it shouldn't have been GC'd if you just used `nix-build` to build it
<infinisil>
Because that makes the `result` symlink
<ashkitten>
yeah, but if i don't link the result
<infinisil>
What do you mean?
<ashkitten>
i guess i could not do --no-out-link
<infinisil>
Ah yeah that would prevent it from creating the link
<infinisil>
I guess that's an advantage of how nixoses is just a `nix-build` :)
<ashkitten>
lol, fair
Jackneill has quit [Ping timeout: 240 seconds]
<ottidmes>
infinisil: So is nixoses your simplified take on nixops?
<infinisil>
Not simplified (though currently it is decently simple), but rather my opinionated take on how deployment would optimally be done
<infinisil>
I guess kind of a playground of sorts too right now
<ottidmes>
I said simplified because much of nixops is the focus on automated cloud installs, which AFAIK you don't seem to be doing
<ottidmes>
Like the name of the project :)
<infinisil>
ottidmes: Automated installs is kind of on my wishlist though :P
<ottidmes>
I used nixops at some point, but the benefits were not worth the hassle for me, I have not enough machines to make it worth it, have an automated install mechanism that handles both servers and clients like desktops, which suffices for me, but I definitely can improve
<infinisil>
But it would be mostly provider agnostic then
<{^_^}>
Infinisil/nixoses#1 (by Infinisil, 10 weeks ago, open): Name change
<cole-h>
I thought we already went over this infinisil -- Nixus is the superior name
<cole-h>
:P
<ottidmes>
Really ought to setup builders properly and systematic updates (which now is, ssh into machine, pull updates of the NixOS config, dry-build, boot build, reboot)
<infinisil>
cole-h: I'm still kind of undecided, but I like Nixus too!
<ottidmes>
Yep, like that one too, kinda like Nixes (where you would have the same problem again)
<ottidmes>
If you wanted to build a nice looking command line application (I want to show code fragements and make it easy to navigate, and fold/unfold things), what library would you use (I am open to most languages)? I am planning to build a tool around Nix traces to make them actually useful to me
<infinisil>
Ohh nice
<clever>
infinisil: i did glance at the code, and found a patch to nix, that would change which stack it could give
<clever>
infinisil: currently, nix gives the force-stack, not the call-chain from the exprs
<clever>
so if you do `let foo = f x;` and then pass `foo` elsewhere, the `--show-trace` blames that elsewhere, not where you did `f x`
<infinisil>
Oh that would be nice
<clever>
infinisil: but fixing it, would likely harm the performance of nix at all times
<clever>
so i was thinking, it would have to be a compile-time option
<cole-h>
clever: Is this the thing you were talking about yesterday with ottidmes? Adding `Pos`?
<clever>
yeah
<infinisil>
ottidmes: I think I saw a modern version of ncurses somewhere on hackernews at some point
<infinisil>
Can't find it anymore though, might have been for rust
<clever>
infinisil: ive used brick lately (a haskell lib) and it works great for that style of UI
<clever>
infinisil: basically, it has 2 functions, an event loop (event + state -> state) and a render function (state -> ui layout)
<clever>
and you just fill those in
<ottidmes>
infinisil: I think I am going with Rust, saw 2 good libraries
<ottidmes>
Hmm, might try brick first then
<cole-h>
ottidmes: If you opt for Rust, link it here/to me and I'll try to help out. Sounds like a useful tool.
<clever>
ottidmes: brick also supports alternate screen switching (what vim/less does to restore the shell upon exit), and can restore the shell when it runs an IO action, to temporarily escape the curses UI
<infinisil>
clever: How state should be done :)
<infinisil>
I've used the 2D library gloss which also works like that
<clever>
ottidmes: and it has support for some things like bracket paste
<ottidmes>
saw some Python libs too, but most were old or undocumented, and I am not the biggest Python fan
<cole-h>
I prefer tui-rs over cursive tbh -- those old-style UIs I'm kinda lukewarm on
<__monty__>
Brick looks great. Only downside is no windows support.
<pie_[bnc]>
__monty__: oh. TIL.
<ottidmes>
cole-h: Moreover, the library does not provide any input handling nor any event system and you may rely on the previously cited libraries to achieve such features. (tui-rs)
<clever>
ottidmes: brick has support for a single brick channel (STM based) to pipe a custom sum-type into the event loop
<__monty__>
Sad thing is people are clamoring for windows support but no one's stepped up so far afaik. I don't personally care about the kind of person voluntarily torturing themselves with windows but I'd rather have more people using my programs than fewer.
<clever>
ottidmes: and then you can trigger things from another thread
<ottidmes>
clever: never mind, those other libs work well together, so you can do what they say and just use those other libs to handle them, while calling the drawing of tui-rs
<pie_[bnc]>
__monty__: yea
<cole-h>
ottidmes: I used that event-handling code in my project -- no need for more dependencies
<ottidmes>
cole-h: It uses termion, which is one of those libs mentioned
<ottidmes>
but sure, you going to need one of them backends anyway, so not really an extra dependency
<cole-h>
Fair enough. But I never reached for termion explicitly.
<ottidmes>
Does Nix have a KDE XML syntax highlighting description?
<ottidmes>
tilpner: Thanks! Saved it to the project
<ottidmes>
I am thinking of hiding away (should still be able to inspect them, but they should not be too on the surface) lib functions by default, and put user code on the foreground, cause that is were you are likely the most interested in.
<ottidmes>
the call-chain patch for Nix would be something for a stage 2 of the project, I plan to first focus on the trace as it is now
<sphalerite>
gchristensen: do you use the waylandy emacs with client-server functionality at all?
<gchristensen>
I haven't :)
<sphalerite>
hm, looks like it doesn't support it :(
<gchristensen>
really? :/
drakonis has joined #nixos-chat
<sphalerite>
okay no I think emacsclient just lacks support for it a little
<sphalerite>
^ works great, but just `emacsclient -c` will try to use X (=> xwayland) or the terminal
<eyJhb>
gchristensen: which dog breed?
<viric>
I've just found qaul.net
<viric>
"The repo has a shell.nix if you want to use nix to get dependencies, however this doesn't actually build the project."
<gchristensen>
eyJhb: when we adopted her, they said "totally" blue heeler -- but anyone who has touched a blue heeler knows a dog this fluffy isn't... so maybe mixed with spitz?
<viric>
I didn't expect to find nix in that kind of software. It sounds great.
<sphalerite>
viric: there's a nixy person who's quite involved with it, that's probably why :)
<sphalerite>
aah it's spacekookie
<sphalerite>
(wasn't sure it was her)
<viric>
Great to know!
* spacekookie
appears in a puff of smoke
<spacekookie>
hello :P
<spacekookie>
Building the qaul.net binaries with nix is something I will do at some point
<spacekookie>
Especially to glue the android build stuff together with Rust
<viric>
How do you build it without nix?
<spacekookie>
Docker and gradle
<viric>
to me it would be harder with those I guess
<sphalerite>
well, the java stuff in nixpkgs isn't so great yet…
<viric>
spacekookie: I was trying to get up to date with decentralized applications today
<spacekookie>
There's specific android building stuff, maybe I could actually use that? idk. It's a bit weird
<spacekookie>
viric: ah nice. How did you find qaul.net ?
<viric>
A post on scuttlebutt
<viric>
that I also tried today
<spacekookie>
Ah haha, okay
<spacekookie>
I'm not actually on scuttlebutt :P
<viric>
I can't say I am. I technically am but...
<viric>
I will drop it quick.
<sphalerite>
qaul.net seems cool, does it also work over the internet?
<viric>
I can't find an explanation of how qaul.net works. The android App wants root acess
<gchristensen>
qual.net seems like a squatted domain?
<viric>
I have used Briar.
<sphalerite>
gchristensen: qaul.net not qual :)
<ottidmes>
gchristensen: lol, I just made the same mistake just now
<gchristensen>
oh
<gchristensen>
this seems like a good first bug :P
<spacekookie>
sphalerite: not yet but we're working on a kind of vpn overlay
<spacekookie>
Like, technically nothing is stopping it, the code just doesn't exist yet
<gchristensen>
(kidding, sorry)
<spacekookie>
gchristensen: you're kidding, but I still registered all possible typos of the name on freenode and making them redirect to #qaul.net XD
<MichaelRaskin>
gchristensen: wrong project. DNS could indeed benefit …
<gchristensen>
haha
<viric>
isn't there any document explaining what qaul.net does and how?
<viric>
spacekookie: I was reading that... severly lacking, yes :)
<sphalerite>
"the software is passed from device to device via a WLAN like a virus"
<sphalerite>
lol
<spacekookie>
:P
<viric>
I didn't understand anything clear from qaul
<sphalerite>
gchristensen: turns out the emacsclient thing is just a minor oversight in emacsclient itself, it doesn't check WAYLAND_DISPLAY. I've written a patch and will send it "upstream" once tested :)
<gchristensen>
oh nice!
<gchristensen>
I haven't updated since Thu Feb 13 21:52:05 2020 +0900, I guess I should (bd843b34d24226d1a8433ed26c9a0ce0fddb552e)
<__monty__>
viric: Since you seem interested. The criticism on secushare's pages is pretty good. Don't read it if you want to feel optimistic about the existing solutions though : )
<cole-h>
qyliss++ gchristensen++ Danke
<{^_^}>
gchristensen's karma got increased to 238, qyliss's karma got increased to 42
<MichaelRaskin>
All of that would be redundnat if only we had an actually good DVCS. But maybe some of these projects will accidentally create it
<cole-h>
sphalerite: I don't like that indentation :(
<colemickens>
gchristensen: have you described what /content-addressed/ is or what powers it or what your workflow is around it? I've wondered about it several times now.