<gchristensen>
anyone have a public sway config using swayidle/swaylock that I can borrow? :)
<colemickens>
That does what?
<gchristensen>
turns out the man page has the example I was looking for :)
<gchristensen>
how is sway so good!
<colemickens>
Very -chat question: How stupid would it be to show up in Europe in the summer without any plans other than a Eurail pass?
<colemickens>
It seems like 5-6 years ago, one could travel and book hostels 1-2 days in advance, and be okay. Is that still the case, or do I need to hunker down and actually book trains/hostels nwo?
<colemickens>
s/nwo/now/g
<gchristensen>
that is just about how I did all my travel
<gchristensen>
I'd decide I was done in one place and book the next the night before. sometimes I paid the price, but if I booked a few days in advance it would be reasonable
<sphalerite>
eyJhb: you can disable the extension pack?
<makefu>
also the kernel module does not build right now
<makefu>
so your only choice right now is to revert or to fix the issue :(
<joepie91>
virtualbox rebuilds are a pain
<makefu>
okay not every kernel build for virtualbox is broken *it is something*
<__monty__>
Scenario: I'd like to find out the most recent mtime in a directory tree. Is there a more efficient way than stat'ing each and every file/dir recursively and then finding the max?
<joepie91>
__monty__: not that I know of, but I don't have a comprehensive knowledge of syscalls
<joepie91>
the last few times I needed to do weird stuff with file/dir attributes, I ended up at "okay, just use stat many times" every time
<__monty__>
Yeah, though it seems like stat'ing the /nix/store recursively is ill-advised : /
<__monty__>
Guess I'll go with an approximation.
<joepie91>
__monty__: stat'ing the /nix/store seems pointless? given the forcibly-set-to-0 times
<joepie91>
(for build reproducibility)
<__monty__>
Ah, but I can't take such knowledge into account.
<__monty__>
/nix/store is just a convenient example of a huge directory tree.
<__monty__>
I suspect doing these calls asynchronously or in parallel might speed it up a lot. Assuming directory contents are usually fairly localized on disk the elevator algorithm or whatever could probably optimize lots of these calls fairly easily.
<joepie91>
__monty__: may want to look at whatever it is that rsync does :P
<joepie91>
because it is fast, for lots of small files
<__monty__>
I have no idea in what part of the codebase to look for this though.
<__monty__>
Maybe a simple depth or breadth first change would already speed things up.
<__monty__>
The filelist section sounds relevant but I can't find more detail. I'll take a look at the thesis.
<__monty__>
Hmm, that doesn't talk about how to generate the filelist either.
jasongrossman has quit [Ping timeout: 250 seconds]
<andi->
yay, it compiled \o/ Hacking on a little C wrapper library for libnixstore.. Hopefully this will evolve into a rust crate to at least use some of the nix features without having to reimplement everything :)
<sphalerite>
__monty__: you can use statx to retrieve only the mtime instead of stat which retrieves all the fields. Not sure if it'll make a significant difference though.
<__monty__>
Heh, people believing advertising is representative of real life.
<gchristensen>
nicely done
<gchristensen>
(no woman I've ever known expects a dress to fit in person like it does online)
<simpson>
For some folks, this is Lucky 10000; if one doesn't see the fashion industry early in life, one might think that it's not all about substance, style, and appearance.
<gchristensen>
anyone use thunderbolt with the security options turned on requiring a key exchange?
jackdk has quit [Remote host closed the connection]
noonien has joined #nixos-chat
Synthetica has joined #nixos-chat
__monty__ has quit [Quit: leaving]
drakonis_ has joined #nixos-chat
drakonis has quit [Ping timeout: 264 seconds]
cransom has joined #nixos-chat
drakonis has joined #nixos-chat
drakonis_ has quit [Ping timeout: 250 seconds]
drakonis_ has joined #nixos-chat
drakonis has quit [Ping timeout: 258 seconds]
drakonis_ has quit [Ping timeout: 258 seconds]
drakonis has joined #nixos-chat
pie___ has joined #nixos-chat
pie_ has quit [Read error: Connection reset by peer]
Myhlamaeus has joined #nixos-chat
<pie___>
infinisil, we could try your tag based ontology stuff with my winepackages
<monsieurp>
hello, I'm a total noob wrt writing nix expressions (packages, right?), I've been trying to put one together but to no avail, can somebody help? (is it the right channel btw?)
<gchristensen>
#nixos is a better place to ask for help :)
<monsieurp>
thanks gchristensen
<joepie91>
satisfying: when you write a generic abstraction/design/spec, and you run into a weird usecase later on that you didn't expect and it *exactly* fits into your generic design, proving it to be generic enough
<pie___>
joepie91, :D
<pie___>
definitely
<pie___>
once i had a case where i wanted to restrict something but couldnt and ended up using a hack later in the more generic method to do something xD
<pie___>
thats a bit scary but it worked lol (i still need to go back and do it better IMO)
<joepie91>
lol
<joepie91>
pie___: in my case it was in designing my JS streams implementation
<pie___>
id probably try to look at how haskell does it :p
<joepie91>
it's built around promises, and I'm using the error (throw/catch) channel to communicate not just thrown errors, but also special 'markers' that need to bypass transform stream processing, such as EndOfStream and Aborted
<pie___>
or try to anyway
<joepie91>
(without requiring machinery in said transform streams to accommodate this, and without hampering their ability to intercept such markers)
<joepie91>
with a bunch of rules on which streams are responsible for processing what, such that unhandled errors of any kind always result in a pipeline abort
<joepie91>
and now I ended up needing some way for specific stream implementations to communicate metadata downstream, and well, as it turns out, it fits perfectly into that!
<joepie91>
just have the stream shit its metadata marker onto the throw/catch channel, and if the receiving party exists in the pipeline then it intercepts that marker
<joepie91>
if it does not, then that is an unhandled marker, which should behave exactly the same - abort the entire pipeline
<joepie91>
and that... Just Works
<joepie91>
lol
<joepie91>
the specific usecase for this is a weird edgecase, when implementing a task queue using streams
<joepie91>
where a queue can temporarily run out of values, and be refilled later from another point in the stream, and just throwing out EndOfStream markers would interact poorly with parallelization
<pie___>
uhuh, well good job in any case \o/
<joepie91>
so now the queue stream just consists of two streams, one at the start that produces values and one at the end that tracks processing completion, and the former sends a 'temporarily out of values' marker to the latter
<joepie91>
difficult to explain how it all pieces together in text
<joepie91>
I'll link the code when it's done :P
<pie___>
a diagram might be better idk :p
<pie___>
(concurrency is scary)
<joepie91>
it's a very specific kind of concurrency
<joepie91>
not computational
<pie___>
on the topic of concurrency, still waiting on wine to build...