What?! Insane take. NixOS is where the most "magic" happens, over and under the hood. It brings it's own language!
Simple package based distros like Arch basically just extract archives. Very few packages trigger post-install steps which usually just (re)generate something like initrd.
Afaik, bricking Ubuntu is either due to user error (e.g. mixing incompatible package sources) or the devs released broken/buggy packages...
If you're not making changes to the bootloader it's essentially impossible to brick nixos: updates are fully atomic and every change can be rolled back by booting into an old generation.
This combined with the fact that the full source code for the system is contained within a single monorepo that I can checkout and grep through makes NixOS the easiest to understand and most transparent distro I have ever used.
> updates are fully atomic and every change can be rolled back by booting into an old generation
Well, the updates themselves yeah, but not what data they use. You cannot always rollback database upgrades for example, without also having to rollback the data source of the database. In most cases you're right though.
I'm saying this as someone who is a fan of NixOS and use it on all my servers because I tend to forget what I do if I just ssh in and fix stuff. Although I'm on Arch/CachyOS on all other hardware.
> Simple package based distros like Arch basically just extract archives. Very few packages trigger post-install steps which usually just (re)generate something like initrd.
Sure it's simple, just like 80% solving the problem is usually significantly simpler than solving it 100%. Nix (and its generation) is the only package manager that actually works.
Try installing kde and gnome, then uninstalling both and check how many packages remain.
Nix can do that with the whole world with nothing residing.
> Try installing kde and gnome, then uninstalling both and check how many packages remain.
Sounds like a package manager or package problem. Competent package managers (e.g. dnf) remove unneeded packages and all their owned files. Albeit, I think with apt you need to do a manual autoremove to remove orphaned packages.
Not suggesting that they're equivalently powerful compared to nix, but this specific thing shouldn't be a problem with traditional package managers.
A common issue with most package managers is that if you have A installed, and then you install B which depends on C, and that C happens to also be an optional dependency of A, then uninstalling B will not uninstall C as C won't be orphaned (because of A).
That's interesting. I'm surprised. Just some cursory websearching and didn't see anything that gave a solution here for DNF at least. Funky! Seems like there should be a way to deal with this.
I'm a relative newbie with Nix, but I recently installed a Gnome extension through Home Manager, and then removed it again. It left some native functionality unusable because the install flipped a pref and the dev had forgotten to revert that on uninstall. They fixed it quickly and it was nice and all, but it's still somewhat unpredictable to me when I will run into such cases.
Well to be fair, nix packages (as in the actual packages and not the modules/services) also mostly just extract archives. I mean the entire system is built on the assumption that 'config && make && make install' is how the thing is built.
Then nix layers way more nicety on top by offering modules, but nothing prevents you from ignoring all that and just using installing packages.
I'm comparing it to my experience with Ubuntu where packages can have complex install dependency flows that can destroy your system at any time. They also pollute your entire system. This is simple in the same way assembly is a simple way to program. You can do anything and destroy anything. It's essentially spaghetti code but in OS form.
You can say it's "user error" or "packaging error", which is arguably true, but this "user error" and "packaging error" literally does not exist in NixOS. Installing a package is unable to touch anything outside of it's own designed nix store folder. That is why it's so much simpler to understand for me. I can check the nix store path and see what a package has. I can fearlessly install a package without worrying my system will break. I don't have to worry about residual dependencies remaining on my system.
They also do a really sloppy job of marking why packages were installed in the initial installation media... A bunch of packages that are not critical get marked as manually installed (so they don't go away if you remove the things that depend on them). At the same time, a bunch of packages that are actually critical don't get marked as manually installed. This means that you can remove a package you don't want and then autoremove will start wanting to uninstall critical parts of your system.
Yeah, I have never, ever broken Ubuntu by installing packages. People are talking in this thread like Ubuntu or other distros are super fragile, but they really aren't.
I've found three "hotspots" that break Ubuntu at a pretty high rate of incidence:
1) Upgrading to the next distro release
2) Installing or updating Nvidia drivers using the built-in management tool
3) Changing to a different kernel "series" (such as switching to a hardware enablement kernel)
In all these cases, I've found that the process stands a solid (hand-waving: 20%) chance of stopping in the middle, requiring manual resolution of broken packages.
Though a good language would point out that what the junior (or in some cases even senior) dev is holding in their hand is in fact a gun and not a gun disguised and marketed as this nice and easy to use toy, which is especially true for Go.
One must keep in mind that devs manage to implement even flawed logic that is directly reflected by the code. I'd rather not give them a non-thread safe language that provides a two letter keyword to start a concurrent thread in the same address space. Insane language design.
Huh, I used the extra time I had during Covid to educate myself on health, nutrition, exercise.
I lost 15 kg, reached my target BMI and have been replacing fat with muscle since.
I am the healthiest I've ever been in my adult life thanks to Covid.
That’s fantastic. Yeah, what is it with all these people who didn’t use their time being boarded up inside their apartments and houses for months at a time for the first and hopefully last time in their lives, to better themselves. Wusses.
The issue is that in many programming languages that offer exceptions, exceptions are misused to handle common and unexceptional non-success cases. I think that is because it is hard to draw a sharp line between the two.
Java already went in the right direction with distinguishing errors from exceptions and having "checked" (that you cannot ignore) exceptions, but the implementation of those concepts sucks. Also, generics, which allow the implementation of "sum types", came later and so sum types were never established as the way to do error handling.
> exceptions are misused to handle common and unexceptional non-success cases.
This is my insurmountable objection to Exceptions.
What people will tell you is that you should only use Exceptions for "real" error conditions which should be rare, but the problem is that the people deciding whether to use Exceptions are writing some library, whereas the people who know whether this is a rare condition are the application writers, using that library only second or third hand, or maybe via some third party component. You might as well provide a language where the primitive integer types don't have a specified size so programmers don't know if numbers will fit in them...
It's also an interesting objection because it means that when you have exceptions... you still need an error handling method for non-exceptional errors.
I once had the same problem. That usually means unhealthy diet and constant eating and lack of exercise that all result in huge insulin spikes and insulin resistance.
Try 16/8 intermittent fasting and a healthier, more balanced diet and walking for a few minutes after meals and you will feel like a new person.
After meals you will feel energized and awake.
Just a note that there are common conditions like postprandial hypotension[1] (or various other types of hypotension) where what you want is more, smaller meals.
The way a doctor explained it to me is blood rushes to the digestive system after we eat and, while normally bodies compensate for that via increased blood pressure (vasoconstriction and heart rate increase), for some people that process doesn't work well and they get a blood pressure drop instead.
Good point. To me it doesn't really matter if I do 2 large meals or 5 small ones. With the "constant eating" I meant the duration and not the frequency.
I eat well and do 16/8. By eat well, an example is a heavy salad, arugula, roast chicken, tomatoes, a bit of cheese, mushrooms, and croutons, light dressing. That's a lunch at 1p. By 2pm, I'm ready to slide under my desk for a nap.
What are you talking about? Do you mean first few frequency bins, and setting the others to zero? That would be a simple linear-phase lowpass filter. And if you do the shifting properly then you will see that it has a positive group delay.
There are filters with negative group delay, however. But FFT is irrelevant for that and it's not a time machine either.
May I get your thoughts on this idea of mine:
We all know the marbles on a rubber sheet experiment. Masses produce "dents" in spacetime that "pull" on other objects.
Couldn't it be that that these dents are balanced out by bulges between the masses, that would additionally "push" smaller masses (like solar systems) towards larger masses (like the centers of galaxies)?
In an experiment it would look like this: the rubber sheet seals the top of a container filled with water. Now if you push down at some point, the increasing water pressure will push up all around that point.
If you now added a marble onto that bulge, it would roll down a steeper angle than it would in the normal experiment ... just like if there was extra mass ("dark matter").
Sabine Hoffensteder had apparently the same intuition as you and set out to develop a theory of dark matter as being anti-gravitating matter. It didn’t work out…
> Because I had this idea that anti-gravitating matter could surround normal galaxies and push in on them. Which would create an additional force that looks much like dark matter. Normally the excess force we observe is believed to be caused by more positive mass inside and around the galaxies. But aren’t those situations very similar? More positive mass inside, or negative mass outside pushing in? And if you remember, the important thing about dark energy is that it has negative pressure. Certainly if you have negative energy you can also get negative pressure somehow.
> So using anti-gravitating matter to explain dark matter and dark energy sounds good at first sight. But at second sight neither of those ideas work. The idea that galaxies would be surrounded by anti-gravitating matter doesn’t work because such an arrangement would be dramatically unstable. Remember the anti-gravitating stuff wants to clump just like normal matter. It wouldn’t enclose galaxies of normal matter, it would just form its own galaxies. So getting anti-gravity to explain dark matter doesn’t work even for galaxies, and that’s leaving aside all the other evidence for dark matter.
She goes into a lot more detail in the video (the blog post is just a transcript), but hearing her describe the thought process is interesting because she spent a lot of time on this theory (I’m assuming after she got her phd), so you’re in good company for coming to this initial conclusion at least :)
Thanks.
I don't see what would clump, because it's not negative-mass matter floating between galaxies that I'm suggesting.
Just like entangled particles that are lightyears apart, when you measure the angular momentum of one, you know the other's because of conservation laws and not because of some hidden object nudging the particle the right way either.
Spacetime bulging the other way ("anti-gravity") would simply be a feature of spacetime to conserve some other property. In my example that would be the water pressure that wants to stay constant.
Some commenter below mention that this is like a waterbed. I like that analogy.
If you put a large marble on a waterbed, not only will it create a trough, it will also ever so slightly lift everything around it.
Analogies are great for explaining versions of complex theories, but they rarely prove or disprove the theory because they aren't a 1:1 mapping to the theory, they're analogous. Similar. But similar is not "is the same"
Anything exists because of survivor bias? That's backwards logic / you've missed/evaded the question.
It's not like asking P(A|A), it's not even asking why P(A) > P(N). It's asking why P(A) > 0, which it evidently is.
Statistically, one could make the argument that there are infinite possibilities of A(nything) and just one of N(othing), so the odds are stacked infinitely high against nothingness.
> Statistically, one could make the argument that there are infinite possibilities of A(nything) and just one of N(othing), so the odds are stacked infinitely high against nothingness.
This reminds me of the classic joke that all probabilities are 50/50. Either a thing happens or it doesn't.
reply