It (obviously) leverages Nix, which in turn means the environment is declarative and fully reproducible (not "reproducible" as in docker). Now, you can use just Nix's devShells, but with devenv you have a middleground between just Nix package manager and a full fledged NixOS module system. Basically, write out one line of code - and you've got your Postgres, another one - full linter set up for whatever language you're using, etc.
Can I also get the security/isolation benefits that a duly configured docker/podman can provide (container can only act on mounted volume, non-root user, other seccomp settings?).
I feel better doing my "npm install"s in such an environment (of course it's still not a VM – but that's another topic).
When I read about nix, reproducibility is a goal, but security/isolation is a non-goal.
So you can use them in conjunction (or alternation, if for some projects you're okay running without a container) without having to specify your development environments twice.
> I feel better doing my "npm install"s in such an environment (of course it's still not a VM – but that's another topic).
There are basically two kinds of integration you can do for a project with Nix, which I'll call deep and shallow. In shallow integration, you just have Nix provide the toolchain and then you build the project (manually, with a script, with a Makefile, whatever). This is pretty common and pretty easy, and gives you no protection from malicious NPM build scripts.
For deep integration, you can actually have Nix build your whole project. This has some downsides, like that it can't really handle incremental builds. It also imposes restrictions, like no network access by anything but Nix at build time, all packages are built by special build users with no homedirs and no perms to access anything, etc. When you do that kind of build/install, you do get some protection from crypto miners lurking in the NPM registry or PyPI or whatever.
If you don't mind me replying in place of the orginal poster:
Sway is just i3 for Wayland, which in turn means you have multiple workspaces (which are also potentially mapped to multiple monitors). You assign workspace a label (number, or text, or emoji), and you may also bind some application to always open on that workspace. Or you just get a habit of putting specific applications to only specific workspaces. Your entire navigation then sits in your muscle memory - finger on the mod key (win or alt or ctrl - whatever), another finger on the digits row for the workspace index - and you're there.
It's a tiling WM, so you don't spend time arranging windows - they already take the full desktop real estate evenly split between them, and you can also adjust size of each window separately. Again, this sits in your muscle memory.
Point is - no mouse is needed to navigate through workspaces and windows.
You may read my blog post about setting sway up (on NixOS) here:
Thanks for that blog post! I have been meaning to tip my toes into nix for a while now, this might actually push me to it. How long have you been using nix for? How do you like it?
Their moat is good server hardware that can be ordered without talking to a sales person that has one goal - determine how much they can milk your budget.
They used to let you order without talking to sales, now they want to validate the config like Dell and HPE. They are slow and don't respond and their ETAs are terrible and often wrong.
They have multiple friendly, competent resellers who will happily quote their machines, often using online tools, and will often come in around half of, say, Dell’s price. Maybe even better if you want something ridiculous like disks in your machine.
its not really a moat, but its a difficult model to emulate.
what they offer is a set of standard parts, tailored for verticals they think are important. but the secret sauce is that they are willing to customize just that much to make things work the customer.
even if you are a small startup and can't promise more than 100 units/yr, its entirely likely that they will build a custom PCB or riser or chassis on the chance that you will be successful. not a whole design, but a tweak on one of their standard models. they've done that for me before with no NRE, maybe they do charge sometimes.
so their moat is that they have enough money to make those bets, and an engineering organization that can do that in a lightweight enough fashion to make the whole thing work. and they do this while remaining very cost competitive
Given how few people in a “startup” possess the skills to know and articulate their needs and have the network to reach the right people in a company that size, it seems like a reasonable bet to make.
I have a system along these lines lying around. It’s a very low volume Supermicro board, made for a partnership between Intel and a little startup (not mine). The startup might, at their discretion and possibly with an NDA or two, tell you the model number. Then Supermicro would sell you the board.
I have no idea what money, if any, changed hands, other than the fact that I paid, IIRC, about $600 for the board.
Their competition is the enterprise hardware divisions of HP, Dell, and IBM. SuperMicro makes reasonably good quality, lower-cost server equipment. They are, IMO, a pretty good value if you don't want high-end support from the hardware vendor.
ASRock has also pushed into some of Supermicro's traditional product segments via the "ASRock Rack" brand. I have no idea how big that business is, though.
Gigabyte and Zotac also comes to mind, resemble Asrock.
There's a bunch of other kit too, but https://servethehome.com reviews a bunch of the various rack systems.
Example of some late January posts. Albeit none are of the "fits lots of GPU" sort that is helping propel Supermicro, but these folks all have those offerings too,
HPE, Dell, and IBM are glorified CDW-business model salespeople. Megacorps have no use for that when they can engage the source and get their own custom gear.
`Analysts clash on Supermicro’s ability to hold on to its position longer term. Wedbush analyst Matt Bryson said, historically, no company selling servers has had more than 30% market share.
“There’s not a reason Dell can’t do exactly what they’re doing,” Bryson said.
Others aren’t so sure. Some analysts say that established competitors will have a hard time bringing new products to market so quickly and have larger revenue streams from software and services.
Supermicro is trying to gain further market share by doubling down on AI and continuing to ship its servers out quickly. The company is also keeping prices low to entice new customers: Its gross profit margin totaled around 15% in its latest quarter, down from 17% in the previous one. HPE, by comparison, had gross margins of 36% in its latest quarter.`
“There’s not a reason Dell can’t do exactly what they’re doing,” Bryson said.
I find that quote interesting. As someone that worked for Dell, I can figure out why - they're heavily-invested in the support side of things. They're too busy with that and their current consumer and business-class offerings that realistically the server market segment they're already in doesn't exactly overlap with Super Micro, and most likely never will outside of some buzzword AI marketing.
Dell also can’t do what supermicro does because it would eat their margins. The dirty secret is that supermicro is making headway because they’re a lot cheaper than dell or hp. If dell/hp start to compete on price they don’t really gain any additional marginal business to speak of, but they do lose margin on all their current contracts (who presumably want to get the discount too).
The “companies become too stagnant to disrupt their own revenue streams” isn’t just a trope about leadership vision, it’s a very real financial phenomenon. Customers don’t like open price discrimination and often it’s better to keep your best customers than to chase after new ones and push all your margins downwards.
Funny, we're going the other direction, for much the same reasons. I suppose different organizations have different needs and Dell is moving in the wrong direction for us, while SuperMicro seems to deliver in the areas we value.
Quanta and FoxConn. The weird thing though, is the megacorps who can afford to design their own gear in-house are spending money on these outside shops. Waste of money.
Depends how you see it. Spending resources to do it in house when an outside shop does it could be seen as a waste of money too. if someone else is already doing it, why spend money redoing what they do?
Here's the incumbent experience for proper servers:
1. You're a small company. None of the big companies will talk to you. You're a waste of their time.
2. You're a medium company. Maybe the worst sales person on the team is desperate enough to talk to you.
3. You're a big company. They will be only too happy to talk to you.
You want to buy a rack of servers. They will not sell you a rack of servers. No, no, no.
You need to talk about how their SAN is much better than your current SAN. Also they just bought a virtualisation company so maybe you should replace your virtualisation stack with theirs. And have you considered how helpful their outsourcing service could be for running your datacentre? They'll undercut your current team of staff as long as you commit to replacing all your servers with theirs. Also they hear you're making use of REST services, have you considered one of their REST security appliances? They'll throw them in free.
None of these conversations happen with the person trying to buy a rack of servers, they'll happen with a vice president or procument or your finance team. Your rack of servers comes with a bunch of "free" stuff that you didn't want and don't have time to implement. Eighteen months later you're being told to drop all your work that your customers care about, because whoever inked the deal with the free REST appliances looks stupid if they don't get used, so you have to implement them
Supermicro are just selling you a rack of servers.
For production workloads, I generally agree. It's an unsupported hack with a questionable future, I wouldn't do anything money-making with it.
However, for tinkering and consumer workloads, it already works pretty well. Enough of cuDNN and cuBLAS work to run PyTorch and in turn, Stable Diffusion with https://github.com/lshqqytiger/ZLUDA - there's even a fairly user-friendly setup process already in https://github.com/vladmandic/automatic .
I was able to get a personal non-ML related project working on my AMD card in just a few minutes, which saved me a lot of development time before I then deployed the production workload on NV hardware (this is probably why AMD pulled the plug on the project - it's almost more of a boost to NV than anything else, AMD really need people to be writing code on ROCm to deploy on AMD datacenter hardware).
As for the Stable Diffusion thing, a silly edge case - because MIOpen (and therefore PyTorch-on-ROCm) doesn't work on Windows yet (they're slated to ship it next month, I think).
It has filtering capabilities (filter in title, link, text, or username via regex) and softhide (hide all the items on a page without pulling others from the next page).
Fear not, these are configuration options for a project called Home Manager, which manages your user configuration and dotfiles with the help of Nix the package manager:
1. In the beginning, it's very slow. But just iterate and make your project better and better.
2. Use your README to grab the attention of the user. I have a list of features, videos, etc. at the top.
3. I regularly post on various subreddits, Hacker News, etc. trying to support new Nix users. Sometimes I link to my project as an example of code that may help them. I've done this over a couple of years, so there's now a collection of posts people are finding and driving traffic.
4. My experience was that in the beginning, I had to grind out each star one by one. The project never went "viral". But after a certain growth point, Github will pick it up and start recommending it to others.
5. Reddit and Github are now my biggest sources of traffic.
I checked your site. It’s great you have the energy to promote and explain nix.
I think you could get a lot out of that google course teaching technical writing. There were some other HN posts on technical writing recently too. You’re a technical writer now, if you didn’t know already, so it would be worth learning how to apply that skill well. You’ll get a lot more leverage for every input.
Thank you for the feedback and kind words, and you're absolutely right. I have also gotten this feedback on improving my written communication skills already in the past.
I unfortunately have very little time to edit the posts, and for the stuff not yet posted, I do not like to post the drafts. And I have tons (tons!!!) of such drafts. A promise to myself I made is that I am going to have a good cadence of posting for this year.
There are definitely more articles to come, till end of January for sure, and if you've found the stuff useful/intersting, you may would want to subscribe on some medium I use (say Twitter, or Mastodon, links on my website).
Hm. Let's think about what your goal is here. Isn't it to communicate with an imagined reader? What would be the point of cranking out the content if it's basically... borderline unreadable, and therefore not fulfilling the purpose you want it to?
I would say that if you slow down, learn more about how to communicate technical content, and consciously practice those skills, then you'll achieve both your immediate goal and gain a really useful life skill. Just my take! Best wishes on the journey. Oh and GPT4 could massively help with this stuff now too, so you may be able to just keep cranking it out like you already do, but get the bot to rewrite and properly structure it all. Many options.
For the non-initiated, who also have experience with the likes of Ubuntu and Fedora, I made an overview of NixOS in this article, which also provides a guidance on how to bootstrap a functional desktop system:
https://drakerossman.com/blog/nixos-for-apt-yum-users-a-gift...
Also discussing flakes in some other articles of mine.
You may want to read my blog post [1] on that one. It explains exactly how to install Sway with Home Manager.
And no, it is not a design error to have Home Manager separated from nixpkgs, and unlike a child reply suggests, there's no "schism", and the reasons for separation are rather prosaic, as explained in another blog post of mine [2].
Thanks for the suggestion, unfortunately they didn't help in my situation. I'm trying to start Sway from a graphical display manager and all I get after logging in is an empty text-mode console screen.