HackerTrans
TopNewTrendsCommentsPastAskShowJobs

paulmd

no profile record

comments

paulmd
·2 anni fa·discuss
portmaster is a freebsd "package manager" for managing installation and uninstallation of ports. Sort of analogous to the "formula" function of brew where it's compiled in-situ... with your local march!

https://man.freebsd.org/cgi/man.cgi?portmaster

https://github.com/freebsd/portmaster
paulmd
·2 anni fa·discuss
PS: not saying reusing a flag is a good idea, but like, macOS is not Linux, it’s Unix, and mostly it’s the exact same differences on FreeBSD or illumos or openbsd, because the syntax comes from AT&T Research Unix in the 1970s (the oldest known code in FreeBSD is around 1979 iirc, and there is a direct lineage back to sys-v). Obviously it’s a little different, but on the flip side this is how you avoid churn - you don’t change things just for change’s sake, and you fit into the existing style even if you don’t like it.

From the BSD perspective it’s like you’re coming in and shouting about rewriting everything in rust on your first day, especially since BSD does place a much higher emphasis on interface stability etc. For example unlike linux, BSD offers ABI stability, and that is one of the selling points for building something on top of it. Nor is there any systemd or upstart - or a million different directories and styles for conf files. rc.conf basically does almost everything you need for OS conf.

One net benefit is that it’s actually possible to write and maintain documentation, and it doesn’t bitrot in every single major release. Those FreeBSD forum posts from 2007 are still valid. And if you need to build some appliance that will be running unattended for years… BSD doesn’t churn like that.

But the price is you have to learn new syntax (really, the old syntax) for a half dozen system commands. Or just install the gnu version of those packages (“brew/portmaster install findutils gtar greputils” mostly covers it). It’s pretty much the first speedbump everyone hits on their first Unix, and it’s ultimately a trivial one, but yeah, there’s no desire or real reason to churn it either.

It’s the bazaar vs the cathedral, and the cathedral has some advantages too. You’d say code smell, I’d say fine patina. A lot of Unix code has had 30 or 40 years to work out the bugs and edge-cases in a controlled manner. It’s not worth losing that so newbies can have a little easier time their first week. Use gnu versions if there’s a pain point.
paulmd
·2 anni fa·discuss
this isn’t a gnu userland, macos adheres to BSD style where order does sometimes matter. Sometimes specific things have to be first or last arguments etc, it’s not quite as freeform.

it’s understandable if you find it different/jarring but that’s the price of maintaining a consistent style - you don’t change tools that are already working fine just to chase fads.
paulmd
·2 anni fa·discuss
Bitcoin originally evolved from the "hashcash" proof-of-work system, which was intended to be a scalable anti-spam measure (force an attacker to generate a unique proof that is expensive to generate but cheap to verify). And you are basically describing proof-of-stake (force participants to stake, and if they misbehave you slash their stake). I wasn't kidding about "nothing is new under the sun" ;)

In general though others are right that the problem often is that attackers are more willing to play these games than individuals - you are not willing to put up 10 bucks to post on a web forum, but an attacker might think $10 to get a wonderful commercial offer delivered to 1000 people sounds really good! You won't spend 10c to upvote each individual song, but the RIAA will! Etc. It needs to be highly asymmetrical, and ideally have minimal/zero cost to "honest" users with an exponential penalty for attackers.

Obviously we are not living in a post-email-spam world unfortunately, and what we have is basically the "lightning network" with gatekeepers offloading and centralizing a lot of the problem so users don't have to deal with it. But you aren't the first person to make the observation that these are related problems!
paulmd
·2 anni fa·discuss
Then you have a user reputation problem instead… me and my 5 million alts say this is the REAL korn_blind.mp3.exe.

Nothing is new under the sun since the internet was created, these are the same problems that email has tried and failed to solve for 50 years.
paulmd
·3 anni fa·discuss
> including ignoring any of the output from using the tool if you so chose to.

the user isn't merely ignoring the output though, they are actively interacting with the program in a way that the program is presenting as accepting of the agreement being presented to the user.

the agreement is plainly presented in a way that implies that it's an obligation, like any other clickwrap agreement. and everyone except ole and stallman seems to agree that it's self-evidently apparent that it's a clickwrap agreement restricting the freedoms of the user.

"free software that only prints a message and exits unless you agree to a clickwrap with further licensing terms" is not a road that FSF should go down. And it's only because of the GPL severability clause that it's not a crisis, everyone knows it's a farce, except for a bunch of the users, who are affirmatively taking action to indicate consent with an additional licensing agreement.

it's not facially clear that in most jurisdictions that the clickwrap agreement is null and void merely because the software is free. you can end up paying for lots of free stuff in life if you're not careful. you agreed to the agreement, it's on you.

you are of course free to remove the prompt and use the software yourself, and ole rants and raves about that on his website. but, agreeing to the license is a separate thing from the GPL license, most likely. just like paying for credit monitoring is different from getting your free credit reports or freezes - they'll try and railroad you into paying, definitely! and just because it's supposed to be free, doesn't mean you're not getting charged if you agree to it!
paulmd
·3 anni fa·discuss
I don't think anyone would make a deal with oracle on a "don't worry this isn't legally binding, you're just stating your intent to comply" basis.
paulmd
·3 anni fa·discuss
sure, but the other guy wants me to submit a picture in a funny hat, not a citation. and the third guy wants me to add some additional legal provisions and disclaimers to the GPL license.

you need a more generalized --clickwrap-consent parameter really. One that just says "whatever it is, I accept and I'll do it".

And that's exactly the thing GPL was supposedly founded to get away from. Restrictions on user freedoms. Especially violations so routine and tedious that we open-palm-slam "accept" without reading them.

You could absolutely write this to not look like a clickwrap agreement and lean on users. "please cite me, I'm an academic and impact matters" in the manfile or --help is not something anyone would ever get upset about or probably even patch to remove.

The only reason it's OK is because basically everyone knows it's not enforceable because of the severability part of the GPL. But it's blatantly designed to look like a serious and enforceable notice to users who don't know that, and require affirmative action from the user to "consent" and bypass the screen. And clickwrap agreements of this type are generally enforceable if there is not something like the GPL that allows you to ignore it.

like I flatly do not get why this is even debatable or questionable, the dude is trying to pull a fast one on users with a scary-sounding legal notice that implies that you need to accept this clickwrap agreement. and it's not entirely clear that he cannot actually burden you with this in all jurisdictions, since it's an agreement between you and the author that exists outside the actual source code/distribution. You can end up paying for free stuff in lots of places in life, if you're not aware about what "should" be free, and those agreements stand and are enforceable even though the thing was supposed to be free. You agreed to it. You don't have to, the GPL says that, you can edit the software to remove it without consenting, but you did accept it.

Letting the camel's nose under the tent on clickwrap agreements on GPL'd software is such an incredibly bad idea legally and morally, and this dude has been an utter dick about anyone who questions that. Sure, "he's willing to do it and nobody else is stepping up" but on the other hand he's also going off and attacking other maintainers doing their jobs, too. But that's not Stallman's problem I guess. That's another problem that only works with N=1 jerk, if that was normalized we'd have a problem.

I do not get why this guy is getting this special blessing or dispensation from FSF. Like it's not just that he's a random weirdo releasing under GPL and then trying to add additional terms (lol get stuffed), this is all occurring with the FSF's blessing, Stallman's signoff, and in the GNU distribution. Official GNU clickwrap license I guess.

At the end of the day - if the guy can't be satisfied with a polite request in the manfile, wow that sucks. But the GPL isn't about you, it's about the end user. There are explicitly licenses like BSD that require acknowledgement if that's your thing!
paulmd
·3 anni fa·discuss
did you ignore all the stuff before that about the implication of using that option and what the user agrees to by using it?

this is like saying that a user doesn't actually agree to anything just because they clicked "accept" in a EULA. you're just clicking buttons in software, it doesn't obligate you to anything!!! but actually yes that is most likely fairly binding in a lot of jurisdictions.

that is, again, literally the definition of a clickwrap licensing agreement and you cannot do that in GPL software, even if it's non-monetary. Requiring the user to submit a selfie in a funny hat would not be permissible under the GPL either. You can't limit what the user does with the software and how, or else it's not GPL.

it's open and shut, clickwrap agreements completely subvert and nullifies the moral stand the FSF is trying to make. And it doesn't matter how innocuous it seems, it undermines the whole point of the exercise.

fortunately the GPL includes a "severability" clause that basically allows you to ignore this and grants you a license regardless. but it is not a good look, it is not good behavior, and if every GPL'd package started adding random clickwrap agreements with big "IM A DOODOO HEAD IF I IGNORE THIS" parameters the whole ecosystem would degrade.

Arch and others are not only allowed but actually morally and practically in the right for stripping these messages, and it doesn't reflect well on Ole at all that he then goes on and throws more tantrums because he doesn't like the consequence of the license he chose.

If he wants to go proprietary, or BSD (which requires acknowledgement!), that's fine, but he's being a child and the terms he are adding are utterly uncompliant with GPL, and it's unprofessional for FSF to even humor him on this. If there were a hundred Oles the FSF would have a real problem on its hands, it's only because he's N=1 jerk that this is remotely tolerable.
paulmd
·3 anni fa·discuss
You cannot include a message that requires the formation of a binding contract. This is the old “you can fire someone for no reason but not any reason”, and if the message your product shows is a prompt forcing the user to agree to a binding contract, its not GPL compatible.

I agree that in this case it’s likely not enforceable/binding especially since the GPL specifically allows you to ignore those terms. Hopefully that’s legally binding in your jurisdiction vs the other party.

But it’s a straightforward clickwrap agreement, even if the terms are non-monetary the GPL simply doesn’t allow these at all. Can’t place any stipulations on how the user uses the software.
paulmd
·3 anni fa·discuss
Software cannot be distributed with a clickwrap agreement under the GPL. Requiring the user to affirmatively agree to a contract is a clickwrap agreement even if the terms are non-monetary. The old “you are making a second agreement, not the one the software is distributed under” approach.

Notionally the GPL allows you to disregard this but it may or may not be binding depending on your jurisdiction, and it’s certainly distasteful and against the absolute spirit and most likely the text of the GPL. This is an incompatible term being forced on the end user and the entire license might well be void.
paulmd
·3 anni fa·discuss
as chalst says, once your site becomes successful, spammers will make accounts and upvote their spam and downvote the good stuff.

your solution reduces to the reputation-network problem, it works if everyone is a good actor, or known-good actors (people you know personally) can "vouch" for others across the network (perhaps with reductions in vouch-iness across the network - friend of friends is good, friend of friend of friends ok, 4 degrees out maybe not so much).

But the trivial solution is easily attacked with the "sybil attack", which is one thing crypto was supposed to solve - people would have a good incentive to not forward shit if everyone had to put up a deposit and if they forwarded spam then they'd lose the deposit. But what is the definition of spam, and how can you assert that without attackers using that to kick legitimate users off the network? it's a tough problem.

https://en.wikipedia.org/wiki/Sybil_attack

there's an old form-reply copypasta about spam filtering and how your clever solution will not work for the following reasons: and basically "it requires us to solve a user or server reputation ranking problem" is one of the main reasons spam filtering also will not work - remember Bitcoin originally evolved from HashCash which was meant to solve the spam problem! if I provably spent 10 seconds of CPU time solving this random math problem and the solution is provably never re-used, then it becomes infeasible for an attacker to send a bunch of junk messages because they'd need a whole lot of CPUs, right? Definitely not something they'd have access to via, say, botnets... ;)

the other core problem with a lot of these solutions is, attackers are a lot more willing to spend money to get spam in front of users (people make money running those websites after all) than actual users are to spend money to make a facebook post or whatever. 10 cents to make a bunch of impressions is cheap, but I'm not spending 10c to post my cat!

centralized authorities are a relatively cheap solution to these complex problems: if you post spam then facebook decides that it's spam themselves and bans you, done. If your IP or domain sends a lot of spam email then Spamhaus bans you, done. O(1) (or at least O(N)) solution. And that's kind of the neat thing about mastodon too - you don't have to moderate every message, you just have to ensure the groups you're federating with are doing a decent job of policing their own shit, and if they're a problem you un-federate.
paulmd
·3 anni fa·discuss
ignoring the problem of robots.txt inaccessibility, is it feasible to have Kagi-style "private google" with a more limited number of high-signal-to-noise sites, especially if you drop the concept of e-commerce and some other low-SNR feeds?

perhaps one interesting thing is that a decent number of the highest-SNR feeds don't actually need to be crawled at all - wikipedia, reddit, etc are available as dumps and you can ingest their content directly. And the sources in which I am most interested in for my hobbies (technical data around cameras, computer parts, aircraft, etc) tend to be mostly static web-1.0 sites that basically never change. There's some stuff that falls inbetween, like I'm not sure if random other wikis necessarily have takeout dumps, but again, fandom-wiki and a couple other mega-wikis probably contain a majority of the interesting content, or at least a large enough amount of content you could get meaningful results.

Another interesting one would be if you could get the Internet Archive to give you "slices" of sites in a google takeout-style format. Like they already have scraped a great deal of content, so, if I want site X and the most recent non-404 versions of all pages in a given domain, it would be fantastic if they could just build that as a zip and dump it over in bulk. In fact a lot of the best technical content is no longer available on the live web unfortunately...

(did fh-reddit ever update again? or is there a way to get pushift to give you a bulk dump of everything? they stopped back in like 2019 and I'm not sure if they ever got back into it, it wasn't on bigquery last time I checked. Kind of a bummer too.)

I say exclude e-commerce because there's not a lot of informational value in knowing the 27 sites selling a video card (especially as a few megaretailers crush all the competition anyway), but there is lots of informational value in say having a copy of the sites of asus, asrock, gigabyte, MSI, etc for searching (probably don't want full binaries cached though).

But basically I think there's probably like, sub-100 TB of content that would even be useful to me if stored in some kind of relatively dense representation (reddit post/comment dumps, not pages, same for other forum content, etc, stored on a gzip level5 filesystem or something). That's easily within reach of a small server, not sure if pagerank would work as well without all the "noise" linking into it and telling you where the signal is, but I think that's well within typical r/datahoarder level builds. And you could dynamically augment that from live internet and internet archive as needed - just treat it as an ever-growing cache and index your hoard.
paulmd
·3 anni fa·discuss
I know, that's why I said "the usual response is tl;dr" in the grandparent ;)

Sorry, I actually did write all that shit. Perhaps I am just a bag of words after all…
paulmd
·3 anni fa·discuss
"I made this" dot meme.

See? Shaka, when the walls fell.

Yeah I mean if he's presenting them as ideas he came up with that's intellectual fraud which it seems like most people are uncomfortable with. To some extent we are all living in a soup of ideas and we're just synthesizing from a lot of the same sources and riffing on a lot of the same inputs. But if it's systematic and specific and presented as ideas he came up with then yeah.

I think a lesser form of "intellectual fraud" many of us are guilty of is speaking too authoritatively about things we're not deep experts on, that's why it's always uncomfortable to get called out on things we're wrong about like that. Even things like citing concepts from books we haven't read/etc are kinda "intellectual fraud".

The concept of intellectual fraud is a really interesting one though because it's very ill-defined in general. Academics believe self-plagarism is intellectual fraud, you are presenting ideas constructed for another intellectual exercise as being ones for this exercise, you should independently construct each work or cite your prior works. I kinda feel like that one's a bit bullshit, that you can plagarize your own ideas. Ideas evolve continuously and I think it's a little weird to atomize their development like that.

The idea of "you stole my meme, you should re-attribute when you re-post" is an interesting one that cooked for a bit there too. Like half the time who even knows where a meme came from let alone randomly crediting users every time it's reposted. I think in general it seems things like removing watermarks is going a little far but some people also go nuclear with the u/biggusdickus @xXxBD420xXx ON TWITTER stuff too, and it's also kinda crass with the way memes derive and are remixed to think you own an idea forever. Derivative works in copyrights are really another one where the law is kinda weird, I think we have this sense that Disney doesn't own your star wars slashfic because it's a derivate work, but it do be like that, even your additional creative input is subordinate to that original conceptual ownership. And that really feels weird and out of step.

That's one of the reasons AI gen is awkward too, it's like an exam question of the most impossible chain of intellectual ownership. Who owns the ideas, the person whose stuff was used to train the net and was riffed upon? The company who built the net itself and tuned/trained it etc? The person coming up with the ideas for the prompts and curating/editing the results? Actual artists are influenced by each other all the time, who owns the idea of vintage anime artstyle or whatever, (forgetting assignment of copyright) does some artist from the 80s have social-intellectual ownership of gundam or whatever? how about Touhou? How is a neural net different, and who really owns the ideas? Like, you go to college to learn to mash up ideas gooder and come up with some new twists of your own, and neural nets can do the "ok now draw daft punk in the style of 1980s gundam" art homework assignments now.

(really it's sort of like raising a kid, yeah the parents did a lot of it but the kid is also kind of their own intellectual entity, and the exact behavior will depend on trained responses to a particular life scenario ("prompt").)

Intellectual ownership is a super interesting concept, like don't we all own these ideas we're discussing right now? is it some star trek TNG writer, because they wrote the proto-meme that sparked our discussion 30 years later? Which neuron initiated the wave, and does it even matter? (stolen meme: which pebble causes the avalanche?) Like physically it isn't even one thing, it's brain waves, neurons firing themselves in self-organizing clusters. Can you say who owns a meme? (which version?) Like yeah if it's a bunch of direct stolen quotes that he's presenting as his own that's easy, but, the concept of intellectual ownership (and the accompanying intellectual fraud) is really interesting and fuzzy in human society. derivative works are a sticking point in mapping onto our ideas of "ownership", and we intellectually derive all the time as a matter of course of life, sometimes inappropriately (like the "talking authoritatively about things you don't know all that well" thing). Our brains are information summary generators right down to things like daily routines, and that's inherently "derivation" of information in the ownership sense. Who really made any of that, which neuron is the "brush your teeth or they'll fall out" neuron and is that owned by my parents or by the dentist or by university biology, or some dead guy from the 1900s who invented the toothbrush? Which neuron was the one where I got good at python, and how much of that weight is from being good at C#/java? We are just giant idea machines that riff off what's worked, constantly, deriving and mashing up ideas is all we do.

Ideas are weird and "I own that" really doesn't work for derivation, we have this inherent idea that if we add enough of ourself to it then we have at least some ownership of something that's not subordinate to someone else's ownership. Our ownership of the idea is intuitively relative to how much we add vs re-use... and that is our society-organism's gradient descent. ;) And maybe that gradient-descent is why the idea of your friend claiming those ideas as his own is offputting, or getting caught lacking on something you don't know well that you spoke too rashly about - it's an error in the backprop, if you will, and socially we know that and that's why it's taboo. It's fine to estimate the backprop a bit wrong (some fuzz even can improve results!) just try not to fire grossly wrong too much or in an adversarial fashion.

(and in this model... self-plagarism isn't really a thing. I cited me, that's who I'm always citing, there is no error in the social backprop there, that's why it doesn't really "feel" wrong.)

Memes as elements of cultural communication are interesting in that light because there's an explicit physicality to it that isn't present in just a raw idea. We definitely have a cultural idiom for "that's my image you can't steal it", despite it actually being a token/stimulus/idea itself in our culture ("the sign becomes its own pure simulacra" dot meme). Because that intentionality is also present in any act of creation. Art doesn't have to be good art, it just has to be trying to communicate a message, and the element implicit to that act of creation is really intentionality.

Just a random interesting tangent I've been thinking about lately. Completely independent idea with no input from current events or anything else happening or being discussed by anyone else - original idea do not steal. You're all on notice, better cite your shit, cause my ownership of those ideas is clearly the most significant! /s

(anyway the real meme weapon was Metal Gear all along. The Orange, pretty good, kept you waiting huh, even the idea of surpassing metal gear? All according to the will of the patriots... in 1992 nobody was prepared for a memetic weapon of that kind. It caught humanity unprepared. It's hilarious that one of the greatest theses about memes is itself an absolute memetic powerhouse, Kojima is really a William Gibson-level visionary about where things were going to go and also a master of the medium before it even existed. Modern meme but also not an unfair summary of Kojima's work: https://www.youtube.com/watch?v=srTqxL_6Ysg )
paulmd
·3 anni fa·discuss
> I'm honestly appalled by the pervasive tendency to rely on repetition of cliches in favor of original communication, for example.

Shaka, when the walls fell ;)

honestly there's an interesting argument to be made there that memes and cliches provide a higher symbol density to our communications via shared context/subtext. A meme has additional layers of context and nuance that are implicitly carried along with the actual words themselves, it has higher "meaning-density".

Whether or not you like them, this is how human communications are evolving, and have been for a long time, particularly as we reshape language around our new technologies. "lol" as an interjective is a tonality carrier, just like vocal tone. Emojis are short textual-form memes. Etc etc. Image memes as high-density multilayered communication are just another form.

I mean half the time when I write out a longform comment, the response I get is "I ain't reading all that shit" even here on HN. ;). People just want higher symbol density, it's the same reason they don't read the article or watch the video. The human brain is a meaning-density machine and we inherently seek ways to increase the amount and preciseness of meaning-interchange. Higher meaning-density per symbol is a great way to do that given our physical limitations at processing more symbols.

In ironic contrast to the rise of youtube-driven content production - I think people inherently crave symbol density and meaning. But since we've monetized attention, there's a perverse incentive to decrease symbol density/meaning-density to allow greater time for monetization... but I think that also rubs against what our brains want to do.

In the aggregate, the way memes bounce around communities nowadays is also not dissimilar to a neural network working with higher-order objects instead of zeros and ones or floats. Memes that don't get passed between groups are the ones that are less relevant - so we have activation energy in some form, short-term storage, and cross-group linkage between neurons. And the memes are symbolic encodings of some groups of features (concepts). They are an emergent cluster of features that activates various groups reliably.

Higher meaning-density is also the reason some people prefer face-to-face communication or phone calls. Things like facial expressions and tone of voice also increase meaning-density as well. People say things like "it's less ambiguous/more immediate" but I think that's because of those sub-channels increasing the meaningfulness. And while meme culture/emojis isn't all good, maybe it's best viewed as replacing some of those sub-channels we lost in the shift from verbal to written communication rather than a regression to repetitive communication.
paulmd
·3 anni fa·discuss
I was wondering if maybe the long-term change from all this was going to be that two clearances can't be issued without visual/instrument confirmation from the tower of execution of movements. Sort of an IFR/VFR rules for tower operations.

Given how advanced ILS is nowadays you could probably automate all of this - if the plane taking off isn't committed to takeoff (traveling at V1) by the time the landing aircraft reaches decision altitude, an automatic go-around is issued. Basically treat the runway as a "control zone" like trains do, and if the plane on the runway hasn't "cleared the zone" (by whatever definition) then the landing aircraft can't enter the zone.

Certainly that's something that could be conveyed as part of the ILS data at least. Maybe it's undesirable to automate it in the sense of the automation causing more problems (more aborts = more chances for something to go wrong, although the assertion is that by V1 you're committed and by decision altitude you can still abort safely, so this all fits inside the "theory of movements") but you can at least let the landing plane know at decision altitude that there's an aircraft still on the runway. Sort of a "green = runway clear, yellow = committed traffic, yellow bars = moving but uncommitted traffic, red = runway occupied/clearance not granted" type indicator perhaps.

Or maybe if the tower can't visually/instrument confirm execution of movements, the pilot on takeoff has to verbally confirm commit before the landing clearance can be granted. Then it just becomes something specific to zero-visibility operations.

It really seems like there should be some change in how movements are handled/clearances are issued. Maybe we don't need to go to full "one clearance at a time" all the time, but it certainly seems like there should be some tighter rules if the tower can't independently confirm movements are being executed, and perhaps convey that information to the pilot as well (although again, I know that pilots are already information-overloaded, but "is there someone on my runway" is seemingly pretty important and straightforward info).
paulmd
·3 anni fa·discuss
> "brew install docker" is just another way to install Docker Desktop.

No, it's not! that would be "brew install homebrew/cask/docker". As you can see here!

https://formulae.brew.sh/cask/docker

This is the docker CLI utility, ie "brew install docker" which is what I said:

https://formulae.brew.sh/formula/docker

Again, please actually look at the commands you are referencing before spreading misinformation, you are confidently incorrect and being rude about it.

Not only that but the information you are providing has legal implications because these two (completely different!) pieces of software have different licensing... docker-desktop is commercial license, not open-source!

You clearly do not understand the distinction here between the docker CLI utility and backend, and the docker GUI application, and it's very important here.

rancher-desktop is the equivalent to docker-desktop, ie the commercial portion, and docker itself can be used freely because it is (as I said) open source.
paulmd
·3 anni fa·discuss
brew install docker
paulmd
·3 anni fa·discuss
your question is confusing, docker-desktop is a gui utility. rancher-desktop is the equivalent to that.

if you don't want a command line, docker itself (the underlying utility that the docker-desktop GUI drives) is free, in contrast to the GUI portion. Or kubernetes.

so the direct answer is "brew install docker".