The idea is so good it’s as close to platonic as it gets. The user experience of writing your own nix expressions is so bad that it makes me angry every time I try. Not only that, but at some point the beginner help (!) meta became »use flakes, don’t do what the existing tutorials tell you, yes flakes are unstable beta and there are no tutorials but use it I beg you«. No, please, let me choose my own way to learn!
I haven’t given it a shot in the LLM age yet though, and trying out NixOS in a VM is not only easy, it is practical – in the sense that when you’re happy, you can simply boot that same config/OS anywhere else by just installing that config. And I’ll never forget that one time where I completely borked my everything in the VM, did a kernel rollback with like 3 command line args and a reboot, and the OS was, well, rolled back. As I said, almost platonic.
What I can recommend is using nix-the-package-manager. Whenever I need the newest version of something, `nix-env -i <whatever>` and it’s there and works. If it doesn’t, roll back. If I need a different version, that’s on nixpkgs as well, with the same negligible amount of friction.
I'm not sure if I live in some kind of parallel world, because I never had any problems grokking Nix or NixOS. I started with this book[0] and haven't ever really been confused.
Flakes are de facto standard at this point. Expressions are easy once you get used to them - in fact the Nix language grows on many of us, including myself, once you internalize it.
Using AI to generate Nix config is a superpower. Because the entire system is declared in a single set of config, you can basically spell cast any system you want. I one-shotted a Linux distro with custom branding for boot, installation screen, and login screen, and VPN and dev tools installed and configured by default, at a fortune 500 tech company.
I haven't tried it in almost a year, but using Claude Code for setting up my nix config back then worked amazingly well. I've only dabbled in NixOS, and I'm very tempted to it for my workstation when I reinstall it in the next month.
Given how much Claude Code + Opus have improved in the last year, I'd give it a fighting chance to make a nice Nix config. I'll probably start setting up a spare laptop to get the base configs dialed in before switching over to it.
To close the loop, I set up a new nixos machine, and have been using Claude Code today to work on configuring it. I was able to point it at some attempts I made in the past, ask it to modernize the setup using flakes, ask it to install a bunch of software and make a bunch of setup changes, shell setup and aliases, switch over to using sway, etc.
I've been bouncing around different vim setups for a while (lunar, astro), but they all seem needlessly complex. I do have a working astro setup, but I had a lot of problem in the past trying to apply it on Nix. Plus, I'm a fairly minimal vimer in general, so I've always felt like I might be better off doing a simpler setup.
I asked claude code to set up a minimal but modern vim config, but with: treesitter and LSPs (for python, ansible, bash, json, yml), and then adding a few other little quality of life features that I've come to rely on. It did a pretty good job, from the basic testing I've done with it so far.
It feels much more manageable than something like Astro or Lunar vims. Every time I have to upgrade those, it's a bunch of files with variables I can configure to control, but those settings aren't super well documented. The nix setup I've got is almost 700 lines in a "neovim.nix", but everything about it is configured directly in there, which seems a lot more discoverable. Fewer levels of indirection.
Flakes are the defacto standard and you're leaving one huge point out. Flake files come with flake lock files. You cannot get lockfiles without using flakes.
Obligatory Guix plug. I've found it way easier to understand, but it has teething issues that NixOS doesn't (latest for me was a few problems with DMs). And according to an acquaintance of mine, it works reasonably well with an LLM.
With some strange commentary, ended up watching https://www.youtube.com/watch?v=-ozZIWy7OWk from that playlist and I'm not sure it's AI or what's going on, at one point she said Afroman called one of the police officers a "PDF" which is the first time I heard, doesn't seem Afroman actually said something like that, and I also don't understand at all what's that's supposed to mean. Doesn't seem to be a typo either?
Yes, this sort of thing has been a plague against the English language for a few years now, responsible for such ugly constructions as "to unalive".
(I understand and respect the linguists who would maintain a descriptivist view of this sort of thing, but I'm not a linguist and I'm not required to suspend my aesthetic opinions whenever an ugly fashion rears its head.)
I used to use WikiTok [1] on my phone at times, but now they’ve introduced »words appear word by word« on the mobile version. Baffles me, why one would hide and gradually reveal any sort of content. It’s nauseating!
Bezier curve are just nested lerps! A bezier curve of degree 1 is lerp, what we usually call "bezier curve" is of degree 3.
It's a mathematical property that bezier curves (degree n) can be split exactly into two bezier curves (degree n), which is known as deCasteljau's algorithm:
That page also features some pretty animations on the "lerpy" part - Bezier curves are really simple, it's just that for some reason they are often presented with lots of math jargon that's completely over the top.
This is also used to efficiently draw bezier curves: subdivide them until they're visually straight lines, then plot those.
In my recent experience, a new culture of "I switched to Linux and it's fine" is establishing itself. It's on HN, sometimes on YouTube, sometimes my friends are unhappy with ads in their OS. It takes a very good reason to switch OS (most workflows break, after all), and I think the reasons are piling up into mainstream unhappiness.
I switched to Linux. It was great! Then I got some contract work with Redhat. It was great! I completed the contract and provided a summary of my work in a .odt file I wrote on Fedora using LibreOffice. Suddenly it was not great! The team at RedHat said they could not open my file. That’s odd, I’m using their OS. Ok I’ll send the file in LibreOffice’s conversion to Word 2003 format. They opened the file and they said the formatting was off. They said can you just save it in Word and send it to us? I informed them I was using their operating system. They didn’t respond. I sent another message and said I could move to a different computer. Suddenly it was great again! I got paid handsomely for that work, but I had to use Windows.
This is why I do not believe you can switch to Linux. Because the world still runs on Microsoft. It was not until office for Mac reached feature parity (with office for Windows) when companies seriously considered macOS. Currently office for the web has not reached that parity. So the world is still smiling at Linux the same way you would at your 9 year old nephew saying “aww how cute” and then going back to the real world
When you create LibreOffice documents and you want to send them to others, which may not be LibreOffice users, the normal procedure is to export your documents as PDF files, which ensures that anyone can use them.
Less frequently, you may want to export your documents to MS formats, if you want them to be editable, but that is much less foolproof than exporting to PDF.
I have worked for many years in companies where almost everybody was using MS Office, while I preferred to use LibreOffice (nowadays Excel remains better than any alternative, but I actually prefer LibreOffice Write to MS Word, because I think that the latter has regressed dramatically during the last 2 decades). Despite that, my coworkers were not even aware that I was using LibreOffice, as all the documentation generated by me was in PDF format.
Product documentation in any serious company should be in PDF format anyway, not in word processor formats that cannot be used by anyone who does not have an appropriate editor or viewer. Even using MS Office is not a guarantee that you can use any MS Office document file, as I have seen cases when recent MS Office versions could not open some ancient MS Office files, which could be opened by other tools, e.g. they could be imported in LibreOffice.
PDF is THE choice for cross-platform presentation and printing, but a real PITA for collaboration, funny enough one of the places where the web version of Word is pretty decent. A lot of industries live in Word/Office, and "generate PDF" is a pretty small part of their workflow. Also remember that printing to PDF without an expensive purchase was not a thing for many decades; I've only stopped using the Win2PDF license I bought 25 years ago on my most recent computers!
People often will use .doc rather than .docx when they’re trying to convert to a format that non-Word apps are more likely to be able to parse.
And bad formatting can result in an almost unreadable document. For example all bullet levels becoming the same, which is an example of something I’ve seen before.
Why on earth would you not just send a PDF? LibreOffice even has a handy button just for exporting directly to PDF. Does your customer need to edit your work summary for some odd reason?
I remember looking into the spec of the... I think it was the DWARF debug info format, mostly just out of curiosity. Also out of curiosity, I checked the PDF metadata. Creator: Microsoft Word. Curious.
.odt mostly works fine. Its the standard for editable files on gov.uk and it goes entirely unnoticed by most people so MS Word users presumably are able to open them.
There is also a whole population category that isn’t capable of differentiating Windows from Linux.
Just yesterday I was showing something on Zorin OS to my father and I had to explain to him that I was not using Windows 10 like he is at home.
As long as the web browser is working and he can use his printer, a desktop is a desktop and icons are icons that can be clicked.
Any other operation will be written on paper in a step by step well phrased manner.
OS choice doesn’t matter for him, he will always struggle so making him switch to Linux won’t change a thing of his experience.
My parents, being much over 80 years old, have been using for many years Linux, more precisely Gentoo Linux, but they have no idea what "Linux" is.
Obviously, I have installed all software on their computers and I have kept it up to date.
However, after that, they have just used the computers for reading and editing documents or e-mail messages, for browsing the Internet, for watching movies or listening music, much the same as they would have done with any other operating system. When they had a more unusual need, I had to search and install an appropriate program and teach them how to use it.
They had the advantage of having a "consultant" to solve any problem, but none of the problems that they have encountered were problems that they would not also encounter on Windows. Actually on Linux when you have a problem, you can be pretty certain that someone competent can find a solution, in the worst case by reading the source code, when other better documentation does not exist. On Windows, I have encountered far worse problems than on Linux, when whole IT support departments scratched their heads and could not understand what is happening, for weeks, and sometimes forever.
By far the main advantage of Windows over Linux in ease of use is that it comes preinstalled on most computers. I have installed Windows professionally and it frequently has been far more difficult than installing Linux on the same hardware, but normal people are shielded from such experiences.
Most modern Linux distributions have one great advantage in ease of use over Windows: the software package manager. Whenever you need some application, you just search an appropriate package and you install it quickly and freely. Such package managers for free software have existed many decades before app stores (e.g. FreeBSD already had one more than 30 years ago) and they remain better than any app store, by not requiring any invasive account for their use, or mandatory payments.
>> They had the advantage of having a "consultant" to solve any problem, but none of the problems that they have encountered were problems that they would not also encounter on Windows.
I drew a hard "no family tech support" line decades ago, and the difference then is that they can at least find a Windows tech-support consultant. What happens if an octogenarian phones Geek Squad and says they're running Variant <X> of Linux?
Yes, very true. Lost count of the number of people who moan about ads on YouTube but don't seem to know how they can get rid of them without paying for Premium.
I hate all the Google and Microsoft worship out there. They just have market dominance, they're not our friends.
> Any other operation will be written on paper in a step by step well phrased manner.
Same exact experience, I cannot get my parents to think about what they are doing, they just follow the steps; if an icon changes or if the button is in a different place the whole workflow stops until I help them. Any suggestions here on how to improve the approach?
Avoid jargon/technical language, show practical steps and tell them what to avoid doing on the new system. (Last bit is important. I like to play around with new things to get to know them, but you need to avoid anything which crashes the system, erases etc.)
You'll see a number of stories where this is not the case. I moved my gf to Linux ~2 decades ago instead of upgrading a laptop. She never had issues I had to deal with after that.
You can configure a window resize hotkey. I use Win+(drag the window with right mouse) and it resizes it i the way you expect, moving the corner closest to the cursor. Left click would move the window instead of resizing.
This is by far my favorite way to resize and I don't know why it's not an industry standard.
Flameshot (a screenshot tool) in its newer versions (!!) uses random noise for pixelation, and colors it based on the un-noised surroundings so it blends in reasonably.
It's a nice mix if optically unobtrusive, algorithmically secure, and pleasant to look at.
Noether is one of my heroes. Rising through the ranks to one of the greatest minds we've known, recognized in spite of being a woman in a time where that was unthinkable in science, all odds against her. And yet here she is, the name of one of the most basic, and most beautiful, concepts in physics. The inventor of abstract algebra too (which I hear is as significant, it's just not my domain).
So many great minds have had to fight an uphill battle, but few had it as steep and even fewer were as successful as her doing so.
It really is a shame that she's not as recognized as the Bohrs and Feynmans and Paulis and so on, but at least everyone with a passing interest in theoretical physics ought to know about her.
it was several years between the time I learnt noether's theorem and the time I learnt she was a woman. sad failure of the educational system, it really did deserve to be a more prominent fact since as you say it meant that she had to overcome heavy odds to do what she did.
To expand on Firefox mobile: if you haven’t tried it, give it a shot. uBlock Origin works just like on desktop. I have seen maybe five ads on my phone browser (including Youtube!) since buying it in 2019.
But many browsers on iOS support ad blockers. Most like Brave and Vivaldi have it built in. Others like Orion and Edge have added support for extensions. Firefox is one of the only that does not have any support for an ad blocker.
My only complaint about Firefox on Android is it's slow even with ad blocking. Chrome is noticeably faster. Brave gives you the best of both worlds: speed and ad blocking.
The only issue is that Firefox on mobile is visibly breaking a couple of sites every now and then; if you can put up with that for no ads (I can), then its great.
I haven’t given it a shot in the LLM age yet though, and trying out NixOS in a VM is not only easy, it is practical – in the sense that when you’re happy, you can simply boot that same config/OS anywhere else by just installing that config. And I’ll never forget that one time where I completely borked my everything in the VM, did a kernel rollback with like 3 command line args and a reboot, and the OS was, well, rolled back. As I said, almost platonic.
What I can recommend is using nix-the-package-manager. Whenever I need the newest version of something, `nix-env -i <whatever>` and it’s there and works. If it doesn’t, roll back. If I need a different version, that’s on nixpkgs as well, with the same negligible amount of friction.
reply