22 ms·
I interviewed Brian J. Fox, the creator of Bash
- saurik 5y agoI have honestly not listened to this interview yet, and I have only glanced at parts of the transcript; but, I am in charge of technology for Orchid--the product Brian is one of the other co-founders of and which he is apparently talking about extensively, that currently looks a lot like what people sometimes call (much to my chagrin ;P) a "decentralized VPN"--and so am watching here to potentially answer any questions (or provide clarifications and corrections).
- poleguy 5y agoI'll bite. I think some of the crowd on HN might be interested in selling bandwidth. It seems like that's not the focus for orchid at the moment (based on the lack of info on the website and the lack of github build instructions.) Is there a support channel for someone interested in trying out staking, running a node, selling bandwidth, etc.? Is there a roadmap for supporting people interested in that side of things?
- saurik 5y agoFWIW, I'd be surprised if it were difficult for an interested developer to compile Orchid (as stated in the README: go type "make" in srv-shared and install any dependencies you are missing... same way I usually build anything ;P there is also a Docker build script for "docker build" as well as a way to wrap the makefile into Docker, which is mentioned in the README: run env/docker.sh). If you aren't a developer: just download a pre-compiled build; the 0.9.33 build that came out a couple days ago works great. I also have GitHub Actions set up to do a complete build of all of our components every time we do a push, and so you're also able to go back 90 days or whatever they hold on to and download a server asset. This also means I know 100% that it compiles OK ;P. As for actually succeeding in selling bandwidth, that is fully possible right now (and has been since the network launched)... but, very awkwardly, not to the (vast) majority of people who are currently running our client in its default configuration. You will need to get users to 1) purchase OXT and manually set up their account and 2) get them to change the default "curator". This is due to a combination of factors, but the deepest one--as in the one that is serving to be most difficult to fix, both internal and external to the project, as well as the one that personally frustrates me the most (if you know who I am ;P)--is that our users mostly buy in using "in-app purchases", which has led to us implementing various restrictions on spending them. The result, though, is that if you go through all of the trouble to get set up right now, you won't actually get to experience anyone paying for your bandwidth in practice, even though I solemnly swear that the system is legitimately decentralized in that nothing is actively preventing that from happening: the system launched in December 2019 and has been "fully functional" ever since. I, thereby, am quite reticent to publish an easy-to-follow guide where step 5 is "now be disappointed in the result", as I don't even think that is a valuable use of time for the people who are trying to contribute to the system. The best things you can do to help are: 1) lobby against Apple/Google; 2) improve the state of play for wallets; and 3) get people to download/use the client. (As for something like a "roadmap", I try to prevent anyone from telling people about the order/timing of work we are doing because the system should be considered functional "as is"; I think most projects that have "roadmaps" in this space use them to cause people in the ecosystem to speculatively purchase large quantities of what should really be a "utility token". I hope you understand.) (That said, there is some public discussion of this specific task--to make it easier for people who have a copy of the server to run a node--related to an issue that I feel able to point you at: https://github.com/OrchidTechnologies/orchid/issues/103 https://github.com/OrchidTechnologies/orchid/issues/103. I will, admittedly awkwardly, not comment on whether or not I intend to make a commit in the near future to address this deficiency.)
- dlss 5y ago> our users mostly buy in using "in-app purchases", which has led to use implementing various restrictions on spending them. Browsing through the code, it looks like Orchid's xdai contract is https://blockscout.com/xdai/mainnet/address/0x6dB8381b2B41b74E17F5D4eB82E8d5b04ddA0a82/transactions https://blockscout.com/xdai/mainnet/address/0x6dB8381b2B41b7... -- which shows in-app purchases of bandwidth being a bit less than $75,000 total for the last two years. Is that right, or am I missing something? > I think most projects that have "roadmaps" in this space are using it to cause people in the ecosystem to speculatively purchase large quantities of what should really be a "utility token". https://www.coingecko.com/en/coins/orchid-protocol https://www.coingecko.com/en/coins/orchid-protocol shows Orchid's trading volume as $22 million for just today...
- caslon 5y agoSo, basically what you're saying is that it's centralized, just not at the protocol level?
- saurik 5y agoWhile I think the word "decentralized" has a lot of nuance that people often forget (as an example: federated systems are also "decentralized", though I'd argue they barely live up to the term), the core problem is an equivocation on the word "it": Orchid, with the prepaid access credits system we had to put in place to satisfy Apple/Google, essentially is "a network of networks", all of which share not only the protocol (that would be trite) but share the entire mechanism for staking and selection: there is no difference at the level of the staking system between what "network" you are on for this purpose... there is but one shared pool of servers. The issue is that the money comes in different shapes and forms, and individual users have access to different forms of money and individual servers accept different forms of money... and due to restrictions put in place by Apple and Google, we were forced to go to great lengths to support the ability to pay for the service using "in-app purchases", which results in a very large number of users having money that has been constructed--on the blockchain--to only be able to be spent with a set of servers that we are legally required to collect personal information from, making it "permissioned" if you want to accept that money... which you don't have to, but you aren't going to make much money. It thereby isn't that the software we have released is in any way centralized: it isn't. The directory of providers isn't either. It isn't that any of the "protocols" I designed for this are somehow decentralized vs. centralized (I'm not even sure what that would mean: it would be like claiming OpenVPN is decentralized but NordVPN isn't? at best that would be, as I said, "trite"). The status is more that you are opening up shop in a bazaar, but weirdly most of the customers aren't carrying around cash, but you aren't allowed to accept credit cards. There's nothing preventing you from selling to any of these people, though. There isn't some server I'm running that is holding the entire thing together like the keystone. Where it just kind of burns me up, though, is that the vast majority of people in the crypto space are just looking for "an easy buck", and so what they are looking for are easy to follow instructions to "stake money and get rewards", and the reality is that I know that the current state of Orchid would make those people sad, and so I don't go out of my way to bother making a "guide" where step 5 is "you are now sad"; to me, this is part of "being honest about what we have". But like, it isn't hard to run the server: you just need to be pretty comfortable calling functions on Ethereum contracts with a wallet and be able to deal with a relative paucity of documentation... I think that maximally prevents deception. There are other solutions right now that, in contrast, I would argue "aren't honest": they are actively getting people to run servers, for example, but they don't even have payments at all yet, and have said every month for over a year that they will have payments in place "soon"... or they have a system set up to pay for servers using "inflation" on some underlying investment asset, and then report an APY that is largely based on the value being held up by speculation. Orchid has had payments working--in a way that is absolutely decentralized and which works over a legitimate utility token... but at a small scale--ever since we launched in December of 2019. It is just that we were also forced to build a second set of users by companies like Apple and Google to support their App Store monopolies, and those systems massively out-compete our decentralized users :/.
- voltagex_ 5y agoWhat is the carbon impact of Orchid?
- saurik 5y agoSo, I will argue "very little": Orchid's decentralized node "directory" runs on Ethereum, but transactions are only very seldom made to modify it (it is more than just servers coming and going, but not much more); in the future, when Ethereum moves to proof of stake, I'd expect this to drop from "very little" to "almost none" (well, as "overhead"). The real blockchain transaction volume we do is for backing the payment system, and there I'll note that Orchid's payment layer is somewhat chain agnostic: I designed the payment protocol to support some level of negotiation on how the payments happen. Right now, many of the active users happen to use xDAI (which is not based on proof of work).
- SV_BubbleTime 5y ago> I never thought that any piece of software I wrote would have any longevity at all and I'm super surprised to find out that many pieces of software I wrote have some longevity and of course, Bash is the most famous of those and is now available on multiple planets as well as basically every computer that exists on the earth today. Not a bad legacy at all.
- dls2016 5y agoI guess when your grandfather created the Monopoly Man, you have a lot to live up to!
- jahnu 5y agoWow! The history of Monopoly continues to amaze me! :) Here's more in case anyone is interested: https://timharford.com/2021/05/cautionary-tales-do-not-pass-go/ https://timharford.com/2021/05/cautionary-tales-do-not-pass-...
- SavantIdiot 5y agoRe-written: I'm surprised Bash shell passed muster for mission critical NASA applications given it isn't based on a formally verifiable language that they tend to use (e.g. Ada).
- saurik 5y agohttps://www.pcmag.com/news/linux-is-now-on-mars-thanks-to-nasas-perseverance-rover https://www.pcmag.com/news/linux-is-now-on-mars-thanks-to-na... > Linux Is Now on Mars, Thanks to NASA's Perseverance Rover > Previous NASA Mars rovers mostly used an operating system from Wind River Systems. But this time, the space agency chose Linux for Perseverance's Ingenuity helicopter drone. https://linuxunplugged.com/396 https://linuxunplugged.com/396 > [audio] Tim Canham, the Mars Helicopter Operations Lead, shares Linux’s origins at JPL and how it ended up running on multiple boxes on Mars.
- mst 5y agoI know one of the DoD sysadmins who was involved in making this happen, and have taken great joy in listening to her brag about it any time she likes. Never gets old for me :D
- dooglius 5y agoFrom what I've read, one of the things the helicopter project did was to see how well ignoring the usual heavy verification would go--it used consumer-grade off-the-shelf hardware as well, for instance.
- capableweb 5y ago> From what I've read Could you recall any sources to this? Just because they are using OTS hardware doesn't mean it doesn't go through verification and testing, it just means they are buying hardware instead of making it themselves.
- deleted 5y ago[deleted]
- valleyjo 5y agoI met Brian’s son on a bicycle tour in Japan. Super random.
- josh64 5y agoI met him too at an Apple store in Sydney. He must travel a lot!
- hdjjhhvvhga 5y ago> Interviewer: Richard Stallman is obviously a very controversial figure today, some of the stuff he's done in the past few years totally sucked and various; it's like not someone I even want to talk about anymore. I'm kind of ashamed I share his first name. This is one of the most disgusting things I've read since the original Selam Gano hate piece. It seems like hating RMS has become fashionable in some circles.
- robert_foss 5y agoIt is fashionable, but for good reasons.
- alerighi 5y agoFor no good reason to me. Stallman predicted years ago things that only now are getting the attention of people, most notably the fact that with proprietary software it's the software that controls the user and not vice versa: just see the recent news, for example we now discuss about the control that Apple has on the store, or the fact that it's legitimate to scan the user internal memory and reporting to the police, something Stallman again predicted years ago. I think that in the end he is right. In a world where software is becoming more and more part of our lives, and not something for a couple of nerds like in the 80s, it's fundamental to embrace the free software, if we want to be free and not slaves of corporations like Apple, Google or Microsoft. Of course the media is against Stallman: it's the same media that is controlled by the companies that makes billions with proprietary software at the expenses of the users! Unfortunately most technicians don't understand the message of Stallman, that is not about money (free software != you don't pay for it) or about convenience (some proprietary programs are better than free ones and vice versa), but about something more important, democracy, that in the world we are transitioning to cannot exist if the software is a small oligarchy of 5 gigants.
- Permit 5y ago> Of course the media is against Stallman: it's the same media that is controlled by the companies that makes billions with proprietary software at the expenses of the users! I've been struggling with putting my thoughts into words regarding this point. There are two points that I want to make: 1. The idea you expressed is so clearly and obviously incorrect that it's surreal to see it on Hacker News. The American media conglomerates are not owned by Apple, Google or Microsoft. (This point is boring and probably not worth spending much time on) 2. The idea you expressed is so frequently posted in other contexts that I wish we had a separate word for it in English. There is this tendency for people (especially in conspiracy-focused groups) to make this same argument. I usually see it as some variation of "follow the money" or "who profits" followed by an extremely tenuous connection between some action and a profit-motive. These arguments usually treat companies (eg. Microsoft) or entire industries (eg. the media) as homogeneous entities with a single-minded focus on profit. In reality, these companies and groups are comprised of individuals with orthogonal and conflicting motivations (many of which have nothing to do with profit). The moment you realize this, ideas like "The American media manufactured a campaign against Richard Stallman so Microsoft could sell more copies of Microsoft Office" seem ridiculous. Whoever runs NBC does not have their paycheck tied to profits over at Microsoft. I wish I could more concisely express this idea.
- imglorp 5y agoNote Chet Ramey is the other principal behind Bash. I went to school with him and he stayed and still works there :) https://www.amazon.com/Bash-Reference-Manual-Chet-Ramey/dp/0954161777 https://www.amazon.com/Bash-Reference-Manual-Chet-Ramey/dp/0...
- hirsin 5y agoWas surprised to not see Chet's name come up. When we were shipping WSL, I got the team in touch with Chet to give WSL a test run, with no major surprises (a couple edge case bugs, IIRC). I'm bummed I never met him in person while at Case, but always a fun little factoid that came in handy the one time.
- krisrm 5y agoUnrelated to the article, but WSL is a true gem :) I spend many an evening writing Rust on my Ubuntu WSL setup, and no reboots necessary in the morning (Windows-intensive job). Thank you for your work on it.
- gumby 5y agoThe scope of the interview was Brian, and bash only came up rather than being the focus of of the interview. However it makes sense that bash was used as a hook for audiences like the HN crowd. In other words I don’t think Ramey was being dissed in this case.
- jsrcout 5y agoHe wrote a full-featured Emacs for the Apple II back in the day... Gonna have to look that up. Wouldn't have thought that was even possible.
- ksherlock 5y agoAMACS.
- jeofken 5y agoThere is a really great book which is available online about implementing Emacs. Anyone know it’s name? Would love to reread it. It has a lot of C and builds around a “redisplay” process.
- chillpenguin 5y agoAre you thinking of "The Craft of Text Editing: Emacs for the Modern World" by Craig A. Finseth?
- jeofken 5y agoYES!! Thank you
- chillpenguin 5y agoNo problem. I actually haven't read it yet but it's on my list. Sounds like you recommend it. I'll have to check it out!
- jeofken 5y agoMany years ago I worked on a test editor with a data structure like VI, where each buffer was a list of strings, rather than emacs where a buffer with two strings where point implicitly is between them, but written in pure style and scriptable in Clojure. It’s a great book - a gem amongst code books.
- nmz 5y agoI find it so strange that podcasters use mp3 instead of using opus, considering the space savings, which you might think does not matter, but all of my podcasts are on my phone, which is always somehow running out of space.
- detaro 5y agoHow many clients understand opus files? How many break if you try let them figure out the one they understand? Then you are down to providing a separate feed and hoping the people interested in an Opus variant find it. Not very effective. Sadly the podcast ecosystem is fairly brittle like that due to client/aggregator expectations. (e.g. there is a whitelist of a dozen CAs your HTTPS cert is allowed to have if you want it to work with iTunes etc)
- leokennis 5y agoJPEG isn’t the best. WhatsApp isn’t a particularly fantastic app. But it’s what everyone is using, so it’s the safe choice.
- tomc1985 5y agomp3 is everywhere. mp3 is eternal. embrace mp3
- fouc 5y agoAbsolutely. Winamp is still the best mp3 player also.
- IggleSniggle 5y agoOk I'll say it. It really whips the llama's ass!
- cozzyd 5y agoSafari doesn't support opus.
- mattl 5y agoDoes the iPod support opus? I doubt too many podcasts are played on original iPods these days but there’s something to be said for the fact they can be.
- MisterTea 5y agoWhy is the title not "An interview with Brian J. Fox, the creator of Bash"? These "I did Y" or "I made X" sound like typical reddit style attention seeking posts.
- glow8 5y agoWhat's wrong with "I did Y" titles? If it's OP who's posting their content, it makes sense to me.
- pattisapu 5y ago"Check out this unusual thing that I was able to do" is the emphasis rather than "Here is an interview with this person of interest."
- codetrotter 5y agoI don’t read it that way. Titles like “I did X” are interesting to me because then I know it’ll be a firsthand account. Whereas if it says just what it is it could be more likely that it is instead only talking about the same interview from another source that I had already seen.
- folkrav 5y agoI'd rather know upfront that the author is the poster. Full disclosure and all.
- mhh__ 5y agoWhy shouldn't people seek attention for their work? Why should titles read like they are in a journal, after all they wouldn't allow you to comment at all.
- tomc1985 5y agoI took over a bunch of his code at one of my previous jobs, and let's just say it kept me employed for a good long time. It's been kind of difficult for me to reconcile considering that this is the dude who co-wrote frickin bash, but then I look at how weird of a language it is for shell-scripting and I totally understand.
- etaioinshrdlu 5y agoWell, Brian is firmly in the LISP-style camp of programming which eschews static typing, promotes heavy use of macros, one-man-army style development, excessively interesting code. He also doesn't like automated testing, or any kind of tests. "Why would you plan for failure?" It is not a scalable attitude to have in the modern software world.
- tomc1985 5y agoYeah, there were aspects of it that were utterly genius, and aspects of it that kept me busy for a while.
- simtel20 5y agoYes, at a prior job I tried to follow a bug in his metahtml interpreter many years ago, and the code bottomed out at an unfinished if condition. Actually an unstarted condition. It was just shipped that way. Very difficult to follow such a smart person's code I situations like that.
- fao_ 5y agoIt depends on what you mean by scale, PG's Viaweb sold for $49 million and it was built completely around this approach. Lisp has a debugger that allows you to edit code while it is running, and allows you to continue half-finished evaluations with the fixed version, so what it means to "fail" in any given circumstance is altered by that meaning.
- AQuantized 5y ago
- stevebmark 5y agoI hoped you would have asked about LSD use - Bash is such an insane tool with dynamic scoping, horrific array operations, incomprehensible rules for quotes, simultaneously unquestionably useful and one of the most painful programming environments to work in. Acid (big at the time, even bigger than today) must have been involved in the creation of Bash, I'd love to hear more about it.
- kragen 5y agoMost of that stuff is just required compatibility cruft with ksh. I think the array operations were new, maybe, but bash really didn't have a chance to go back and redesign the language from scratch. It had to be able to run existing ksh scripts correctly.
- arp242 5y agoThe problem – as always – has been one of compatibility. The original Bourne shell from the 70s didn't have scoping at all, or functions, or arrays, and ksh added stuff on top of that in ways which maintained compatibility. Changing all of that would be like Python 3, except worse. Bash copied a lot from ksh and zsh (and zsh also copied a lot from ksh), which was a closed "improved Bourne shell" at the time.
- dylanz 5y agoIf you're ever in Santa Barbara, check out his band: https://chillpointband.com https://chillpointband.com. They rock.