Programming Throwdown - 148: Package Management with Max Howell

Episode Date: December 12, 2022

Package managers are an often-overlooked aspect of any operating system, but their importance is not to be underestimated – especially in today’s development environment. As both creator ...of Homebrew and CEO of tea.xyz, Max Howell is intimately familiar with the ins and outs of open-source development, software engineering, and balancing passion with practicality. He shares these experiences and more with us in today’s deep dive into the subject!00:01:00 Introductions00:01:29 When Max started Tea.XYZ00:03:51 British plugs00:08:10 Literally rolling out of bed to work00:11:49 The value of meetups00:13:14 Getting into open-source00:23:00 Mandrake00:25:02 Turning frustration into action00:30:47 Deno00:40:28 OSX’s relationship with Unix00:55:33 Trying out Ruby01:01:13 April Fools prank ideas01:04:13 The cause of sleepless nights with Homebrew01:14:41 What got Max inspired to do Tea01:19:53 From startup to company01:41:55 FarewellsResources mentioned in this episode:Links:Tea.XYZ:Website: https://tea.xyz/Twitter: https://twitter.com/teaxyz_Instagram: https://www.instagram.com/tea.xyz/Github: https://github.com/teaxyzReddit: https://reddit.com/r/teaxyzDiscord: https://discord.com/invite/KCZsXfJphnReferences:101 on Package Management:https://en.wikipedia.org/wiki/Package_managerDeno:https://deno.land/If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: programmingthrowdown@gmail.comYou can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★

Transcript
Discussion (0)
Starting point is 00:00:00 programming throwdown episode 148 package management with max how take it away jason hey everybody so um if you have used any OS, which is everybody who's listening to this, even if you're on your phone, you have had to deal with installing software and managing software of various ways, shapes and forms. If you're a developer, you also have to deal with libraries, static shared libraries, all sorts of ancillary packages. And that makes package management a real challenge and a real opportunity to learn more about the OS. So we're going to kind of dive into all of that and talk about some other stuff that Max has been up to. So we'll jump right into it. We have Max Howell, who's the CEO of TXYZ and the creator of Homebrew. Thanks so much, Max, for
Starting point is 00:01:06 coming on the show. It's great to be here. Cool. So one thing we kind of lead in is just talking about the whole remote revolution, which is almost like two years old now. But I think it's still kind of worth talking about, especially when folks are starting new ventures. When you started TXYZ, did you start it during the pandemic? Was it pre, post pandemic? And how are you handling remote work and return to office and all of these things? That's a good question, especially nowadays. Personally, I feel that I started remote
Starting point is 00:01:46 because I started with open source. It's how I got into programming. And the first bunch of people that I worked with were all over the world. We had a bunch of people in Europe, some people in America, and some people in Australia. So for me, it was just always the natural way to work. And so when I got my first professional job in an office, I didn't like it. I liked the commute.
Starting point is 00:02:08 It sucked and having to get there. But, you know, certainly some great things about being in person, like some ideas only form when you're like bantering around the table. So what was your commute like? When I started working in London, I live in the US now, but this was a while ago. And I lived an hour north of London by train. Is that Chelmsford? I have an aunt in Chelmsford. I don't know. And she says that's north of London. There's probably a million places north of London, but I figured I'd throw a dart at the dartboard. Yeah, I don't know Chelmsford. This happens a lot where people are like, oh, do you know this tiny little town in Britain?
Starting point is 00:02:45 Actually, I probably should. I probably should know better. I lived in Milton Keynes, which is where some of my family still lives, about an hour north of London. Kind of famous city for being kind of modeled on the American model of how cities should be with lots of fast roads and big malls and things.
Starting point is 00:03:04 And so I liked it for that. I've been to Melton Mowbray, which is completely the opposite. Melton Mowbray, I think they're famous for growing honey. And it was very rural, which I think is like a nice break if you've been in urban towns for a while. Melton Mowbray is famous for their pork pies in fact oh oh i didn't know that yeah they're delicious and uh one of the things i miss most i think there's i think i say there's like three things i miss from britain and uh pork pies is one they all begin to be i miss pork pies
Starting point is 00:03:38 pubs and plugs the uh the british plugs electrical why do you miss those i don't know too much about the differences there yeah well obviously the british plugs are famous for being ugly and enormous but um for someone who's passionate about design they're they're very well designed they're kind of beautifully so uh numerous like safety and convenience features built in let's see if i can remember them all it's been a while since i've done this uh this tirade uh but for one they stay in the socket so you can hang them from the ceiling and they have like they were deliberately designed to have like a lot of tension around the the plug parts would equal Yeah, they're out right? Yeah. Yeah so that you could yeah like hang things from them
Starting point is 00:04:37 interesting Mandatory earthing so it's like safety feature and every every single socket has to have an external switch so you can turn it off at all every plug must have a fuse in it so it's fused safety wise as well and then the earth prong prong that's the word is slightly longer than the other two so it goes in first another safety feature so it's always grounded and the electrical the two that are actually live the socket in the wall has covers over those so that you can't like stick a finger or a fork in them and the covers only get removed when the earth pin goes in that's why it's slightly longer so it makes a mechanism that then reveals the live connection so there's no point where there's a hole that you can stick something in while you're using the plug unless you like you know force it open somehow that's probably all
Starting point is 00:05:30 i can remember but you know i've always been like passionate about like these little bits of design that not everybody notices that are just like hidden there and so like i thought that was a bunch of neat things that someone spent the time to do a better job than American plugs, which are terrible. Yeah, I mean, what happened to me there is this house is a few decades old. And when we moved into it, I had the ring door chime plugged in in one of the outlets. And I came back a few days later and it was on the floor. It had just fallen out of the outlet. And so then I went through and had to replace a bunch of the outlet um things that are wired into the wall and sure enough yeah
Starting point is 00:06:10 i wasn't that careful and i gave myself a shock so i got the it wasn't the 220 but i got the what is it 115 volt going through me for a moment which did not feel good you know that's certainly possible with the american ones but you know brit know, British voltage is 240, so that will kill you. Oh, 240, okay. Yeah. So it's part of the reason that there's all that extra safety in there. And, like, they are enormous. So, like, if you have, you know, typical desks set up for a computer,
Starting point is 00:06:38 the whole length of the desk will be, like, sockets behind it because you need that much space. So not everything is great that makes sense so you were uh you were commuting an hour away into london was it by mass transit or you were driving it yeah yeah like one thing that is nice about europe was that you could get everywhere by train or bus etc uh so i'd cycle to the to the train station get on the train which was usually on time this isn't german levels of promptness in britain but it wasn't too bad i think the british could system a hard time when it's relatively good 40 minutes on the train that would drop me at london
Starting point is 00:07:19 euston so i'd get on the escalator go down onto the subway and then ride about five, six stops to Old Street, Shoreditch, which is famous in London for being full of startups. I think it probably still is that. And that's where Lost Femme was. So, yeah, that was the office trip. Interesting. And so that I always, you know, I felt like mass transit is better than sitting in a car for an hour. But I did feel like I'm a pretty tall person. So I was always kind of cramped. So I was kind of hunched over my laptop, you know, and every time the bus runs over a speed bump or something, the seat, you know, kind of partially closes my laptop and I have to open it again. It's, yeah, it's much nicer to kind of roll out of bed into the office. It's way better. Yeah, well, I did that for a bit while I worked at LastFam because I commuted for a year and then decided it was enough and I was going to move to London.
Starting point is 00:08:17 But I didn't want to be in the situation of rushing to find a flat. So I took a tent and lived on the roof of the office for about three months yeah there was a an abandoned lift shaft and at the top it was sealed and i stuck my tent in there um i never i didn't tell my boss and they found out and weren't very happy about it but it wasn't their building so they went too fast so so yeah you went three months how did a custodian not see that there was a tent there um i don't know like british landlords are very thorough i guess wow that is wild but i did literally like get out of bed stumble downstairs after after a few weeks i uh you know wore my pajamas downstairs brushed my teeth got some coffee
Starting point is 00:09:06 and everyone was just used to it it was a real startup way of uh existence for sure that's awesome yeah the uh they don't have that giant hr department to kind of crack the whip on that there was an issue uh at there was an issue at google where people were sleeping in the conference rooms that was a really big deal because I think it's also, you know, the rent is probably similar to London. The rent is so expensive that you could save you an entire year's salary if you just found a way to sleep at the office. Yeah, well, I can understand why they would be doing it for that reason. Well, London's pricey, but it's not San Francisco. People are more used to sharing
Starting point is 00:09:45 flats, as they call it. Cool. So it sounds like TXYZ is fully remote, or at least embraces remote since the beginning. Yes, we already have. We just hired someone from India. It's a bit America-centric at the moment for me. One of the things I wanted to do with this company is because it's commercial open source. And for me, open source is about, it's a global thing. It's not a Western thing. It's not an American thing. It's not a European thing.
Starting point is 00:10:13 I said from the start, I want someone in every time zone. So it was always going to be like this split company. And as I say, for me, I started in open source and I was used to waking up and people had been working overnight. And I'd have to figure out how to slot that work back in with what I was doing. And then make sure that we were planning from, you know, not being able to talk to each other in person, even over the phone. So, you know, it was natural for me to want this company to be that way and to know how to manage that from the start.
Starting point is 00:10:46 And so we're gradually getting to that point. And yeah, we do have an office in Puerto Rico, which is where we're founded. We call it the Tea House. And it's a fun place that is more of a house than an office, several floors for working and several floors for sleeping. So that when we do, we'll meet up and we'll be meeting up next month. There's places for people to stay. And so we say hi for a few days.
Starting point is 00:11:13 And you can do that more with the fact that we're a funded company than I ever could be ever could when we were doing open source. I remember when I was working on apps for Linux and things like that back in 2005 2005 or so and we would meet up like once a year all of us who were working on uh whatever it was and you know that was paid for generously by donations from the community but not everyone could always make it because you know people from all over the world but it was good just to say hi see what people are like have a few drinks and dinner with people
Starting point is 00:11:46 play some games doing doing things that you know not the standard things and i think remote companies need to recognize the fact that you do have to meet up once in a while and you need to do things that aren't just work because otherwise you have people that are just building relationships and all it ever is is work related like at t we have every month we play a game of werewolf over zoom the point of that is to just like make sure that people you know shout at each other a bit essentially in like in a good spirited way get some uh get some emotional contact like just get to know each other as friends, not just colleagues. Yeah, that makes sense. Do you try to meet in person like once a quarter, once a year, once a month?
Starting point is 00:12:30 What's the cadence there and how does that affect things? Yeah, we're doing once a quarter. Like the company was founded last December, but we only finished securing the first round in April. And then we've been staffing up since then. So we're still quite small and only recently exceeded like 12 to 13 people. We don't really have a pattern to it yet. But the plan is every quarter, indeed.
Starting point is 00:12:56 And so far, that's working. Cool. That makes sense. So I want to kind of work us up to Homebrew, which I'm sure anybody out there who uses Mac is familiar with. But kind of work us through, you know, how did you get into open source? And, you know, kind of what was the journey that led you to kind of put the pen down and say, I'm going to build Homebrew? You know, what was that whole progression like? So programming has always been a hobby for me. My dad sat me down in front of a BBC micro,
Starting point is 00:13:32 which was this computer that everyone in Britain had in the 90s. I still don't know if the BBC just slapped their logo on it or they actually had an active hand in making it the British Broadcasting Corporation. But it was called the BBC Micro. And my dad sat me down in front of it and taught me a bit of programming one day. And I really got something out of it.
Starting point is 00:14:01 So I kept coming back to it as a hobby. So was your dad an engineer or was he a hobbyist or how did that work? Yeah, he was a, he was just a hobbyist as well. He dabbled in many different things over his life, but he was super passionate about electronics. And then when personal computing became a thing, he was like first in line to pick one up. He was always very interested in it. But yeah, he never did it as a career or anything. And his programming ability was pretty amateur, but it was enough to get me the spark so that I could understand how to progress.
Starting point is 00:14:36 Well, part of the reason it was easy with the BBC Micro is because it booted straight to a prompt that was BBC Basic, so a basic programming language. It wasn't a shell like Bash. It was a shell which was programming. And so I could straightaway get into writing little programs. And so obviously I made games, and I made games for years. Little toys.
Starting point is 00:15:01 I remember one time I started making something that I called Windows 4 because at the called Windows 4. Because at the time Windows 3.1 was the thing. I was just experimenting, essentially. And at school, during my lunch break, there was a little clique of us geeks who'd go in and just program stuff. And we competed to see who could make the first scrolling adventure game and things like that and like put music on it um so it's always something that i really enjoyed but of course the school didn't teach it wasn't it wasn't a lesson this was the 90s so it wasn't something that was typically taught and i never really considered it as a career so i ended up going to i got a master's in chemistry and um the third year of my degree
Starting point is 00:15:49 i went off to work in industry uh for a year and for the first month i really enjoyed it and i was like messing around with the the big machines and having some fun now like just sorry when i think of chemists i have this stereotype of a person in a lab coat with a beaker and a pipette you know mixing like fluids like is that is that what you did or like kind of like can you educate us on like what the chemists do well you're not far off honestly the lab coat i worked in a physical chemistry lab so there's three kinds of chemistry organic inorganic and physical it's like strange how the first two are just complements of each other and physical chemistry so it had more math or
Starting point is 00:16:30 physics in it than most chemistry and this is the raw one like as physicists will tell you like physics is the real science and then everything else is an applied version of physics and yeah you know physical chemistry was really them saying yeah it's true chemistry is just at the end of the day like raw physics going on down there like electrons are just strangely all anywhere i won't teach chemistry on this podcast but so i was doing physical chemistry which mostly meant like i was measuring physical properties of different things that other people in other labs had made so i was measuring the surface tension of surfactants because i worked at kodak there was a big kodak factory in london at the time i heard recently it's closed down obviously kodak so well over the last 20 years right this was uh 2002 i think uh so i was measuring surface tension and for a while i i used
Starting point is 00:17:28 this like large machine that i had to calibrate and get the hang of it and i enjoyed mastering the machine um but then i went home for christmas and while i was there i realized that i hated it the work was boring and i fell into this huge depression over the next six months where I realized that I hadn't picked the right thing for my career. And I didn't know what to do with myself. So I started programming again, because it seemed like it was fun. I still Linux. And I found open source. Essentially, I discovered open source as just a route trying to find something else to do with myself. Now, how did you do that? So this is the 90s, right? So you weren't on America Online. You weren't on America Online because you're in the UK.
Starting point is 00:18:18 But you're on some... What was the discovery process like back then? Yeah, well, different certainly. So it was 2002, so not quite as nascent. We had broadband internet, so you had a noise-on connection where you didn't have to dial up. And the web was coming along. The web was certainly coming along before Stack Overflow
Starting point is 00:18:43 and things like that, obviously. So, yeah, like, I heard of Linux because of some of the places on the internet I'd been in the late 90s. I used to hang out on this music player forum for this music player called Sonic. There was like two major, because MP3s obviously changed how music was and how it was consumed. And that was a relatively exciting period in the internet. So there was like Winamp was the big one. Right, right.
Starting point is 00:19:18 And it still exists. I don't know if anyone still uses it. Like AOL bought it. Oh, that's right. And then there was that one called Sonic, which was a much smaller one, but it was kind of like the number two. And I liked it because it had really interesting skins. Like the music could like interact with the skin itself.
Starting point is 00:19:41 I don't know, like, you know, downloading mp3s it was illegal and fun but there was a big forum of people who talked and i got to know a lot of these people on there for some reason or another and like a few of them used linux so i heard of linux by this you know little community of people that appealed to me so when I was trying to figure out what to do with myself, I was like, I should install Linux. So I... Where did I get... Because you had to get a CD back then basically.
Starting point is 00:20:13 Because downloading... Yeah, you could download it. It would take forever. Exactly, yeah. Downloading half a gigabyte of 600 megish would be a couple of days at that point. So you would, you know,
Starting point is 00:20:31 like, I don't know if Ubuntu exists at this point, but equivalents of Ubuntu would allow you to, for very cheap, mail off for a CD and they'd mail you back. Oh, I didn't know that. I remember using this program called FXP,
Starting point is 00:20:48 which would basically allow you to resume FTP, which I think you could do anyways. I don't really know what that program even added, any value it added, but I remember I would turn that on and then sure enough, like my parents would pick up the phone and kill the internet, you know, ruin it, and have to resume.
Starting point is 00:21:06 Or I think eventually we also got cable or DSL or whatever it was. And yeah, it went from taking three days to one day and you'd sit there and wait. Yeah, indeed. There was a lot of tools that existed because of the limitations on what you could do back then. Like the first open source app I made was a file usage explorer because I had a three gigabyte hard disk. And so it was very important to me that I didn't have to delete any more music than I wanted to.
Starting point is 00:21:39 And that I could use my computer and figure out where all the disk storage was going and who was being a bad actor. And of course, nowadays, no one cares. Those tools don't exist. Just like your FTP program for resuming FTP, it probably still exists, but I doubt that many people use it or maintain it because
Starting point is 00:21:55 if a download fails nowadays, then you just try again and two minutes later, you've got the whole thing, even if it's huge. Or you're using a more sophisticated protocol like, for instance bit torrent which is uh really the way that these things should be transferred nowadays yeah so i set off for the cd and that's how i got into it and then you know it was addicting like learning how an operating system works until then i'd only use windows and i didn't have to know that much
Starting point is 00:22:22 about how it works because microsoft spent a lot of time making sure it works. Linux doesn't usually work even nowadays, let's face it. You have to be a bit more passionate, but it's there for you if you want to become passionate and learn how these things worked. I'm glad that I went that route. Honestly, it taught me a lot about how operating systems worked. And in many ways, it developed my passion for package managers because it's just such a key part of Linux.
Starting point is 00:22:57 Yeah, I remember getting, I think, Mandrake was the first one that I looked into. And just the package manager blew my mind. Like, I mean, there was, I don't know, thousands and thousands of packages even back then. And I just remember being like, just completely amazed, like just shocked at what I could do. It's like, oh, here's a package that does fluid simulation. I don't know what that is, but it sounds freaking cool. Like I like, I like the ocean. And if I can make the ocean on the computer, it looks awesome.
Starting point is 00:23:27 And so, you know, then you go to the website and you see like the wave propagation and all these things, visualizations of it. I get you excited about that. And then you're just going down the list. Like here's graph libraries. There's all these things. Here's like a free version of paint, like a free version of Photoshop. That's like almost as good as Photoshoposhop like it was just mind-blowing and and that's something that
Starting point is 00:23:50 you know as we get um kind of older and more like familiar with these things we try to take it for granted but like all of us went through that phase where we just kind of randomly scrolled through the package manager and saw just unbelievable amounts of human productivity and human effort. Yeah, I hadn't thought about that in a long time, but you're completely right. I forget how amazing it was that first time. I think I installed Mandrake at one point. I remember a 2E, they call them now, the terminal
Starting point is 00:24:25 user interfaces. Well, actually, it's not terminal. It stands for something else. I forget. Text, perhaps. Unexpected. And yeah, the browsing, this large collection. In fact, it's influenced a T we consider what we're building to be a
Starting point is 00:24:41 kind of app store, for example. And these package managers, in many ways, like the original app stores the original way to like find and install like huge amounts of free open source software and it really was quite amazing seeing all the all the things that people were doing like that was inspiring for me for sure uh because you know i'm the kind of person that whenever I use something, I, I find something that I don't like about it. And then if I don't like it for long enough, I want to do something about it. And my co-founder says that if you want Max to do something, just make sure he's frustrated with it. And it's basically, basically true. So,
Starting point is 00:25:20 you know, I love them, but also hated them. You know, some of the older ones. So what did you hate about them? Like, I remember trying out Debian and wanting to install some package that wasn't in their package registry. So people would provide like a deb you could download, a.deb. And like the first time,
Starting point is 00:25:44 I just remember the huge amounts of frustration because it just wouldn't work it would not install the thing uh because i didn't have a number of other dependencies i needed and then when i tried to install those dependencies it would uninstall some of the other things i had and then i couldn't install the new thing anyway because it depended on two things that were in conflict with each other essentially like these things are a lot better nowadays but back then it was a lot more common because i don't think people appreciated just how vastly huge the open source ecosystem was and was becoming and how much complexity there is in how all these packages depend on each other. It's one of the more complicated graphs that humanity's probably invented, honestly,
Starting point is 00:26:30 all the myriad of different things you need in order to start running Node, in order to work on your React project. I mean, Python still has this problem where if you pip install, there's a command where you can add something to your requirements.txt file in python and i think by default it adds the explicit version so it's like okay you want to use my
Starting point is 00:26:51 software you have to be running you know 13.7.3.1 of software xyz and then that means that you can't run my software with anything else because that other thing will now require something it's a little bit off and so that that problem hasn't gone away. I think Node does a good job with the caret equals where they're willing to tolerate minor revisions, but Python still has a problem. That's the way it should be. And that's how we're building T, incidentally, like carets in general. But Node has the advantage as well that JavaScript doesn't mind if you have two versions of a library loaded. It just shadows them. I'm not sure. Yeah, which means it's part
Starting point is 00:27:32 of the reason that JavaScript programs can end up with 2000 dependencies, right? Like, because some of them are actually like three or four versions of the same library, because it's been overspent. Oh, my mind is just blown. Yes, it's not really how it should work. But on the other hand, like, it depends on your goals. Like, for me, as I was saying, like, these packaging graphs can become so vast and complicated. Like, developers want to get on with work and chip software. So that really should take priority.
Starting point is 00:28:04 So the Node way is, like, you know, Node is so huge now. and chip software. So that really should take priority. So the Node way is kind of like, you know, Node is so huge now, easily the most successful tool for programmers of all time. So they made some good choices or NPM did at least in that respect. It's just the programmers in us are like, this is horribly inefficient and disgusting.
Starting point is 00:28:30 Yeah, I can't't believe although it makes sense because you know i always wondered you know because because whether someone makes a minor or a major revision is completely arbitrary it's up to the developer to decide this is a minor revision or not so i always wondered how um when i built uh you know websites with node that it more or less just worked and i think you just kind of clarified that for me that you know it's running 10 different versions of bootstrap or whatever yeah they bypass dependency hell and everything you know like a lot of popular languages are still loosely typed but like javascript is like the ultimate loosely typed thing as far as i'm concerned so you might end up with like four versions of this library running and they're
Starting point is 00:29:09 all passing around their own versions of these data structures but because like the code that uses it only checks for the stuff it cares about it generally just works until it doesn't suddenly and spectacularly but you know people can't see this because it's a it's it's an audio show you can't see this but patrick is kind of like uh when that gentleman sees the trash uh on the floor and the single tear rolls down his cheek that's what patrick's looking like right now i don't think any of this would work in embedded no i've run through lots of different languages. I started with C++ because the stuff I was doing in open source and Linux was using Qt. It's called Qt.
Starting point is 00:29:53 It's a cross-platform toolkit. And Qt made C++ a lot more bearable. But yeah, I've certainly learned that too strong a typing system just gets in the way of getting work done but not enough of a typing system at all means that all you're doing is saying that well this software is not going to work and I don't know how in a couple of weeks in a month there's going to be some bug one of my users is going to suffer for this and uh I'm just okay with that so nowadays i quite like typescript actually because i feel it's like this nice compromise between the loosey-goosey world of javascript and something which has a strong enough type system that when you when you compile it you
Starting point is 00:30:39 feel that it's done a lot of checking for you probably everything's so we're building a lot of t with typescript using dino oh what is dino i've never heard of that uh do you know it was made by the same guy who made node and it's basically a successor in his mind uh it's an you know an anagram or acronym or whatever it is of node okay so oh interesting oh you have actually i remember reading an article about it but i can't recall the uh oh there was some kind of technical motivations i think maybe around threading maybe i'm sure you would know like why the person forked uh node actually i don't but i'd be very interested to watch talk about it so i must make that happen because i wasn't that into JavaScript until about
Starting point is 00:31:28 three years ago. So I didn't really care apart from like, I made the brute formula for Node and NPM back in the day and things like that. But yeah, there was, there's certainly limitations with Node. You can, you can tell. And so they threw away a lot of the baggage, you know, in order to make it sort of like a fresh start in many ways. And it has, it has a really nice security system where the programs you write with it,
Starting point is 00:31:48 you have to opt in explicitly to aspects of the sandbox. So it allows you to have internet, but only if you compile it so it has internet and file system access, et cetera. So you get some security guarantees that are very nice for what we're doing with T. One of the main reasons that we picked it though is because you can compile your typescript into a single binary with no dependencies
Starting point is 00:32:10 so t is a single binary you can download with no other dependencies like i did this with brew right uh brew you could clone the repository and it worked in the clone it was a working brew system in the end we made an installer because people wanted that. But I'm a believer that with something as fundamental as this kind of developer tooling, every developer has a different preference on how they want it to work. And early adopters, especially, are the ones you want because they're the ones who then evangelize your product. And they want it exactly how they want it.
Starting point is 00:32:42 So give them as many choices as you can so to use a single binary compile it for windows linux and mac we have an installer but you don't have to use it it's up to you yeah it's funny you mentioned that i was thinking about with eternal terminal we're still not in the debian uh you know main uh manager we're in all the other ones and the reason is because back in eternal terminal 2 we're up to 7 now i think i don't actually work that much on it anymore myself but i think it's up to version 7 but in version 2 we didn't support fish which is this similar to bash or it's a it's a shell and we didn't support it my developer uses it ah okay cool so so so yeah there's people are really passionate about it and uh i can't remember
Starting point is 00:33:34 exactly what happened i think i basically just didn't implement it i don't think i closed the issue honestly i can't remember maybe i did some Phish developer got so upset, and they were also one of the Debian maintainers. And for that reason, you know, half a decade later, we're still not in Debian. So I think it was really a lesson that, you know, the people who are kind of the early adopters, as you said, they're also the people who are the most passionate about, and I think that's true for language inventors as well.
Starting point is 00:34:04 You know, to sit down and say, Python and C++ and all these languages, they're not cutting it for me. I'm going to go and invent Rust and spend 10,000 hours evangelizing it. That takes a certain mindset and really good early on to appeal to those people with that mindset, which could be really difficult. Yeah, well, that's a very good point. And it's something that I think a lot more open source projects. When people ask me, how do you make a successful open source project? Appealing to those early adopters is one of the things they say.
Starting point is 00:34:52 Having a great readme is another thing i spend a lot of time talking about and the t readme i probably spend 10 of my time just crafting that we're not out yet but we're going to be out soon and then i know that when it hits hack and use or twitter or you know slash dot if you can actually still go to slash dot i used to read a lot i don't know if that's a thing anymore actually now i'm curious i think it still exists my shot still exists I used to read a lot of slash. I don't know if that's a thing anymore. Actually, now I'm curious. I think it still exists. Slash. still exists. Yeah. They'll read a blurb, the blurb on slash. say two years, brew two, max hells, make new thing. And then they'll click on the link and they'll go to the readme. So, you know, having a readme that carefully explains to people why they need it, how they can use it, and how easy it is for them to try it out. Very important.
Starting point is 00:35:30 Yeah, that makes sense. So I used to use Mac ports and then I switched to brew. So does Mac ports predate brew or is that just my own personal experience? Okay, yeah. So kind of walk us through that. So Mac ports exist. And at some, you know, MacPorts exists. And at some point you say, I'm going to write Homebrew.
Starting point is 00:35:48 You know, what's that? What happened there? And what's that journey like? And how did you kind of bring everybody over to Homebrew? Yeah, well, it's a pretty good story. So I use MacPorts like everybody else on Mac. I was at LastFem, which is a music startup, still exists, not really a startup anymore at the time it was.
Starting point is 00:36:12 And I was working on the client team because I got the job at LastFem because of open source, my work on open source. I worked on this music player called Amarok for Linux, and it was very popular. It was a pretty good piece of software for Linux anyway. And the people at LastFem loved it. So they asked me if I needed a job. And at the time, I was living in my parents' house for free,
Starting point is 00:36:41 having finished my chemistry degree, only just passing it because I was so disillusioned with it. And my parents were ready to kick me out of the house for telling me to go get a job. So perfect timing, frankly. I went and got a job because of open source. So I worked on the client apps because that's what I did on Linux. Like we were a website, but we had little apps that you could use to play the music with and scrabble. We had six apps, Windows, Linux and Mac, Android, iPhone and BlackBerry. BlackBerry had an app store
Starting point is 00:37:17 for a very brief time. It was our least favorite app that we made by far horrible horrible sdks and apis but they rushed it they panicked because of the iphone uh so in order to build all these apps we only had a small team we used mac because it was the only platform where the developer tools were pretty good and you could emulate windows and you could emulate linux so we could build for all platforms and then we had all this open source that we used and combining all of that and building it and making it work and then trying to ship and deploy. It was just a nightmare, frankly. I feel that we spent probably 30 to 40% of our time
Starting point is 00:37:53 just messing around with build tools and developer tools and package managers. So I used to complain about the fact that it was tedious work and it was in the way of us getting what we wanted done and one day one of my co-workers got fed up with my complaints and challenged me to do something about it so i went home and started writing the code for homebrew putting together all the ideas i'd had yeah tell folks like uh what was painful about mac ports because
Starting point is 00:38:26 a lot of folks listening have probably never even heard of mac ports you know especially if you're just getting started homebrew is really kind of taking the mindshare away so so you know what was mac ports the mac ports experience like back then yeah so um i think the worst part for people back then about MagPorts was that you had to build everything from source. So we were talking about Gentoo just before the show. It was a similar kind of model where you build everything all the way up from LibC, which is basically the fundamental library that all open source and all software in
Starting point is 00:39:06 the world derives uh and uh all the way up to whatever you're building and compiling software used to take forever forever because uh these cpus really were very underpowered relatively 20 years ago yeah especially laptops you. They're meant to be small. We had Mac Pros at the time. Oh, nice. The old ones that were even bigger than the cheese grater ones that we've got nowadays. So they had like 16 cores.
Starting point is 00:39:37 They cost like thousands of dollars, but we got them because we were trying to build this software all the time and it took too much time. Even then. So with Mac Pros, you had to build everything software all the time. And it took too much time even then. So with MapPos, you had to build everything from source. Now, the original version of Brew, you had to build everything from source. But I took the very sensible attitude that Apple has already compiled a bunch of these libraries for us.
Starting point is 00:39:57 So let's reuse them. So if you build something like Wget, which is one of the classic uh ways to download things in the terminal like people tend to use curl nowadays because it's more portable and and uh more commonly installed by default but i always use wget as my example with brew it would take five minutes to install it with mac ports it would take three hours so you know yeah what is apple you said apple is already building some things can you dive into that i don't understand yet so uh osx or mac os as we call it now is unix under the hood
Starting point is 00:40:32 uh built on top of free bsd originally i think it's free bsd it's one of the bsd yeah that's right and so uh they didn't bundle a package manager, which, of course, you know, we call Brew the missing package manager for Mac for quite a while. But they did bundle a lot of open source. I think people don't realize how much open source that Apple actually do actively support with macOS. But a lot of these fundamental libraries, they're there and also their libraries that they bundle uh the ones they've written that are closed source contain some things that are very useful to open some packages that they can use so macbook is like it macbook took this attitude all right we're just going to ignore the operating system completely we're going to handle everything ourselves and i get that
Starting point is 00:41:24 especially get that now like if i'd known how difficult it is to make a package manager i might have taken their uh choice honestly but i didn't know what i was doing so i built brew with a different idea and one of my favorite quotes about building open source software is by the guy who made php php uh still extremely huge programming language that I doubt anyone who's only learned to program in the last 10 years has ever touched. But he said, he quoted something along the lines of,
Starting point is 00:41:53 I didn't know what I was doing. I wasn't trying to make a programming language. I just did each part of it as I needed to, step by step. And I think that's how a lot of really big open source projects have come about in time. Because if they knew what they were doing, they would have known that the things they were attempting were difficult, hard, or maybe even considered impossible by experts.
Starting point is 00:42:19 But they didn't know what they were doing, so they just tried it. And then they made something that got some popularity, so they kept having to hack on it because they felt like an obligation to this community that emerged and certainly what happened with me improved so packaging is hard it turns out and i understand why macports would say okay we're just going to do everything ourselves because then they have control over it but it meant that installing wget took three hours from five minutes and yeah i have a similar story about that. I'd never really used Macs until I became a working professional.
Starting point is 00:42:49 So I'd been Linux pretty much the whole time since high school. I got to my first job and I still had some work to do on my PhD. I think my university needed... There was some issue with LaTeX. So basically, my LaTeX files weren't compiled in the right style and they couldn't print like the dissertations of the year or whatever. They were harassing me about this. So I said, oh, not a big deal.
Starting point is 00:43:14 Like I'm just going to open my Mac. I'm going to install like whatever LaTeX program I need on this Mac here while I'm at work. I'm just going to knock this out. And so, yeah, I installed Mac ports. I said, oh oh let me install this mac text and uh mac text it literally took four days i was like port installed mac tech and i came back you know and it's like okay i got some coffee it's still running i did a bunch of work in another tab it's still running it took four days like my my laptop was burning my legs on the bus home
Starting point is 00:43:45 yeah it was really quite crazy honestly interesting you talk about latex because we um we have a white paper like other crypto projects tend to do and we build it from markdown into a pdf that looks like you know a white paper should. And we're using LaTeX. So we recently have, like, packaged the entire LaTeX stack. And, yeah, it's enormous. It's incredible how much work that has been put into this stuff over the last 30 years because, you know, that's how old these kinds of things are. It's a shame that more people don't use it outside of academia honestly because it is a nice
Starting point is 00:44:26 documentation format yeah it takes an enormous amount of time to compile but even now even still i think we're into like the 30 to 40 minutes mark now yeah i think there was uh different modes uh i think even in Mac ports, you could specify flags, I think. And there was a minimal flag. I don't know if I could have even used it, though. But yeah, the default just took forever. It's not worth the risk, though, is it? Because it won't have something you need.
Starting point is 00:44:56 And then you'll find that you wasted one day rather than four. It doesn't work. Yeah, exactly. Always build with everything. But yeah, Mac ports wasn't bad. It just wasn't great. I think the biggest issues I yeah, MacPulse wasn't bad. It just wasn't great. I think the biggest issues I had with it was it wasn't developer friendly. And I wanted to build a tool that as a developer, I could hack.
Starting point is 00:45:12 I wanted a package manager that I could hack. And so Brew was built from the beginning to be more hackable than any package manager before. I'm sure this is part of the reason it was successful. Even though nowadays, I don't think anyone knows you can hack it. And a lot of the hackable features have been removed by the current maintainers over the years because they made it more difficult to maintain.
Starting point is 00:45:35 But yeah, they were cool features, and T's going to have all of them. Yeah, that makes sense. I love how easy it is to add repos. That was one thing. I know with Debianbian, this gets back to Eternal Terminal, you know, when people want to use ET on Debian, you know, they have to copy this really long string and it requires sudo. And so they don't really know what it's going to do to their computer. I think it just it adds some GPG key or something from the internet. But then they have to run update, and now it does something different. And it's just really complicated. With Brew, it's BrewTap, right?
Starting point is 00:46:12 BrewTap and then the place. I think it's integrated with GitHub, right? So BrewTap, the organization name, the repo name, and GitHub, and you're done. You're good. Yeah. Yeah. Yeah, yeah. Like, that was certainly one thing I wanted to do with Brew that I felt that very few of the other package managers had
Starting point is 00:46:33 is make it easy to use and fun to use. Like, get out of your way so you as someone who really doesn't care how the package manager works or what it's for in many ways can just get the software they want installed easily and quickly. And yeah, the taps thing, it was always my plan to make it so that other people could maintain packages outside of what we were maintaining. I didn't really develop that idea very much because it turned out maintaining Groove by itself was a full-time job.
Starting point is 00:47:04 So someone else in the end came up with the name Taps and the idea for Taps, but I rejected their idea and did it differently, which caused the person who did this contribution to quit the project. Oh, no. Well, it happened. Yeah. But I was right because their idea for Taps, right, it would explore the fork graph of Homebrew
Starting point is 00:47:25 and search for formula in the fork graph and then install them. So, you know, on GitHub, you fork projects and then you can add stuff. So this was really good in many ways as an idea, and I've used this idea for other things since then, because open source should, GitHub as a whole, should focus more on forks
Starting point is 00:47:46 that's some good work that gets done in forks and people never find out about them and open source is all about other people starting to work on these projects but anyway this isn't a site uh but i didn't feel that people would be able to trust the tool if it could just install a formula like randomly found in the fork tree without some kind of reputation system and i felt that this would be bad for brew and for the user so instead i changed it so you had to explicitly add tabs and then they were like repositories full of categorized formula effectively maybe it would just be someone who is passionate about these few projects or maybe it's like an organization or an entire uh open source uh project that maintains multiple
Starting point is 00:48:31 different packages and with hindsight that was definitely the right choice because that's how people have used them uh you you find the tap and you trust the person who's telling you about the tap rather than it being some sort of random thing. The original idea was more open source, but it was risky. So yeah, it was always planned to do something like that. And that's because I wanted it to be more like that. Like Mac ports, I tried to contribute to Mac ports once and I couldn't even figure out how.
Starting point is 00:49:01 So I wanted to build a tool that you didn't need to figure out how. It could just like automatically bring in other people's contributions as long as they okayed it. So yeah, it was always a goal. Developer experience, user experience. I'm super passionate about both
Starting point is 00:49:16 of those things. Yeah, that makes sense. We just had some core Ruby developers on the show. And what inspired you to use Ruby for the formula? Yeah, I love Ruby. I've only recently realized how much I miss it. Because the only thing I've ever been able to use it for was Homebrew.
Starting point is 00:49:37 So I picked Ruby for a few reasons. One, I wanted Homebrew to just work on Mac without any messing around. So I wanted, as a result, to pick a scripting language because I wanted people to be able to clone Homebrew and then it immediately just works. There's no compilation step. There's no build system stuff that you have to do. Because at the time, especially, it was extremely common that you couldn't use any software without building it first so you were completely dependent on package managers so you would like find out about a new project and then you go to the website and you'd find
Starting point is 00:50:16 that your package manager that you were using didn't support it yet so then you have to decide whether or not you were going to like figure out how to make the thing work which would take hours or just like not use the thing at all and wait until it appeared in your package of choice yeah i still have this problem today there's a um you know in wi-fi you have the 2.4g and the 5g wi-fi right in linux it's really hard to find a wi-Fi adapter that's 5G that works in Linux. And I found one where I had to build a kernel module from the source. The whole thing took me multiple hours. And then as soon as I upgraded the OS, it stopped working. So finally, I was like, forget it.
Starting point is 00:50:59 I'm going to get a 2.4G SSID up in the house just because of that. So it's still a problem today. It's such a familiar story. 2.4G SSID up in the house just because of that. So it's still a problem today. It's such a familiar story. It's why I rage quit Linux actually was like the seventh time in several months where I didn't have any working Wi-Fi and I had no other internet. So I was just sitting there trying to figure this out by myself. And then I was like like apple just released an intel mac and uh osx looks like it's unix but prettier and with some user experience considerations
Starting point is 00:51:33 so i bought one and never looked back i obviously use linux a lot like a lot of people do nowadays but only as a server and not as a desktop right oh yeah same thing i i have a hard time uh i tried the linux laptop thing back in 2018 i was like oh by now it's got to be a better experience and i was i was back to macbook in six months yeah i haven't i haven't looked into desktop linux in years but i have a friend who recently switched, well, a couple of years ago now. He's been doing this a couple of years still, from Mac to Linux.
Starting point is 00:52:11 It's because mostly he got fed up with Apple, which I get. The guy worked for Apple for years ago, so he had a better understanding, I think, than most people about them and what they're doing. But he decided that what was going on with OS X and iPhone and all that was just not worth it for him anymore, so he switched back to Linux. And he's doing all right.
Starting point is 00:52:33 He doesn't complain, at least. But I think he was politically motivated to a reasonable extent. Yeah, I think if you're motivated, you can do anything. I couldn't get the Thprint uh you know the thumbprint login to work and they're like oh you know the company that releases the thumbprint this is a dell it's not even like a random brand and they're like try building it from source it didn't compile so the thumbprint never worked yeah god you bring back a lot of memories you know like it's basically these kinds of frustrations
Starting point is 00:53:06 that drove me to doing homebrew it's like i want all this stuff to get out of the way because like oh at the end of the day i like making other things and i like playing around with new things i love new tools and apps and utilities that people build in open source and i want to try them out i was like i just want like the whole bit that's difficult to get out of the way so yeah i built it from the start and throughout with those being guiding philosophies for how it should work like the people who did join the project and now maintain it in my absence i drilled it into them like quite thoroughly and maybe even like unpleasantly that the most important thing was that Homebrew was robust, that it worked, that it got the user what they wanted.
Starting point is 00:53:52 And so we spent a lot of time on error messages and stuff. Your experience with compiling your Wi-Fi driver. The problem was the error messages didn't help you to figure out what to do about it, right? Yeah. If they could have been more useful, then probably you would have been able to figure about it right yeah if they could have been more useful then probably you would have been able to figure it out and then it would have been a minor frustration rather than the major frustration that made you abandon even trying to do it and
Starting point is 00:54:13 so with homebrew the error is always like attempting to be helpful and then we built like the doctor command into it so doctor like tries to diagnose what might be wrong with your system for you and give you helpful tidbits. Then direct you to stuff on GitHub that might be able to help you. We used to make it so that when the build failed, we'd search GitHub for you and see if we could find where someone else had already had the same issue. So maybe you could get some help there. Well, I believe that people can fix these problems themselves. It's just we're the experts, and we need to give as much automated help as possible
Starting point is 00:54:51 because we don't have enough time to do it by hand. That makes sense. So when you install Homebrew, I'm assuming it installs a Ruby VM and interpreter because I don't think that comes built in on Mac, right? And then how does that work? That was one of the reasons I chose Ruby is that it came with the Mac.
Starting point is 00:55:10 And I think it's still done. Oh, I didn't know that. Yeah, it's like an older version now. And so, you know, Brew had to like maintain compatibility with this older version for a long time, probably still does. But yeah, it came with it.
Starting point is 00:55:22 So yeah, I picked Ruby because it came with the Mac. I wanted brew to be this thing that just easily installed and just worked immediately without any messing around no installer no build systems and uh i wanted to try out ruby i'd heard great things about how great ruby was uh ruby on rails was like relatively nascent this was like 2007 2000 that was 2009 2009 and uh you know i read some tutorials about ruby and it like looked beautiful and like frankly it is i i miss it because you know i've been doing tea i've been packaging with tea and so i ended up doing some ruby again i'm like ah it's beautiful nice so what is beautiful what's beautiful about ruby
Starting point is 00:56:05 it's just so elegant there's there's a way to do everything in ruby that i used to spend hours rewriting my code just to make it more pretty because i could i knew i always knew there was a prettier way to express it in ruby and you know like the primitives are great. Just today with TypeScript, I was annoyed there's no zip function, for example. There's just not enough functional primitives that come with TypeScript or
Starting point is 00:56:36 JavaScript. You can get libraries that do these things, but then they don't have enough language built-ins to make it so that it works nicely. So I don't like using the libraries, and I just avoid using zip and things like that as a result. But Ruby's standard library was really nicely designed.
Starting point is 00:56:56 And some of the little features, like they'd borrow a few things from Perl, but not too much, so that it was a nightmare. And then you could, you know, the one-liner type input system from Perl, but not too much so that it was a nightmare. And then you could the one-liner type input system from Perl so you can write little scripts that will take inputs from the command line
Starting point is 00:57:15 and then work on them seamlessly and then automatically print outputs. So you could write these really tight little scripts and it just felt so good to use but yeah I couldn't write T in it because I need a type system
Starting point is 00:57:32 nowadays I've learned I learned without a type system and then my first set of professional open source work was C++ which is too typed and too unpleasant in many other ways then everyone was super passionate about things like Ruby and JavaScript and Python,
Starting point is 00:57:48 because suddenly you weren't spending all this time with the type system in your way. I think things like TypeScript have got the right balance between allowing you to escape from it and be able to do reasonably good code when you need to without the type system constraining you. But also the type system is really nice and fast. God, it's fast because I used Swift for quite a few years
Starting point is 00:58:13 because I was quite an iPhone developer for quite some time. So I became super passionate about Swift. I wrote a bunch of open source tooling for Swift. But it takes so long to build a Swift program. Right. Similar to Scala. Scala has the same problem. Like, as a developer, you need these fast debug cycles, because otherwise you
Starting point is 00:58:33 lose what you're doing. Your brain can only hold on to all that context for so long. Yeah, I mean, I was in some C++ templating hellscape about a week ago. And it's interesting. I mean, there's auto now.
Starting point is 00:58:50 And so there's type inferencing and all of that, which definitely helps. I mean, you see auto everywhere now. But occasionally you will still end up with some just complete template nightmare. Here's what I think the problem is with C++ is that people, you know, people will use pound defines and templates because they don't,
Starting point is 00:59:13 instead of using correct design patterns. So like, for example, you know, you could do dependency injection and inject a clock into your class. And so now you have a system clock, you have a fake clock, and you can inject any clock into your class. And so now you have a system clock, you have a fake clock, and you can inject any clock you want. Or you could have a template,
Starting point is 00:59:31 which takes like a class clock. And now like that entire code base needs to be in the header file. And like everywhere you use that class, you have to do bracket, you know, my clock, except when you're in a test. And now, you know, so it's just people use templates
Starting point is 00:59:46 in ways that create landmines, I think. Oh, absolutely. I remember many times having similar issues. And I remember those template errors that could be like three or four pages of compiler output. And like figuring out what the error was. Like Q was nice in that respect. They understood that like C++ standard library
Starting point is 01:00:07 just went over the top and needed to be discarded. So they did their own. I remember having fun with macros. I edited a co-worker's header file at one point and put hash error at the top. And as a result, every single thing you tried to do with error and because of the way the c++ compiler did or maybe i did a trick of some sort it didn't say where the error was
Starting point is 01:00:32 happening and i let him like try to debug it for like 20 minutes before i walked over and like fixed it for him but yeah you could you could really do like evil things it's from an era where you know developers just believe that other developers needed to be able to like wade in there put on their big boots and figure it out but you know we made the right choices by realizing that that wasn't actually a good use of developers time at the end of the day we're trying to improve the world with software and if we're wasting time finding like a prank that your co-worker put in because it was possible it's not good a great april fool's uh prank out there if you're listening to this show and want to know a good april fool's prank yeah you pat if you're in C++, you pound define and replace if with if, you know,
Starting point is 01:01:26 rand is greater than 0.999 and the actual if statement. And so you've created your own quantum computer. And so now you have this beautiful quantum computer that you can use, and it'll run for about an hour or so. Yeah, man. It's just crazy, isn't it, that the language allowed you to literally do a
Starting point is 01:01:50 string replace on keywords and you wouldn't know. You'd have to dig really deep to find that. And like, yeah, we all found open source projects or other people's code where people were doing this stuff with C++. It needs to die. Rust is fabulous in relation.
Starting point is 01:02:07 Did you hear about Rust going into the Linux kernel? I was very excited about that. That happened earlier this week. Yeah, we're recording the show in September. So yeah, this just happened. So I'm really excited about that. Yeah, it's so good. It needs to happen to all the base level
Starting point is 01:02:25 things and the Linux kernel will only benefit, in my opinion. I'm sure there'll be some teething troubles for a while, but I want to see things like OpenSSL replaced with Rust equivalents over the next five to ten years.
Starting point is 01:02:41 The entire security and robustness of everything we've built uh needs it yeah can you imagine when you replace open ssl with a rust version and find you know 3 000 exploits yeah that would that would be a fun thing to read about so i mean i hope someone's doing it i think i think i've read that some people are yeah a lot of open ssl code is is pretty gnarly because it's it's like um it's c that they're compiling with a c++ compiler you know but it but it's a bunch of global functions that are taking classes as objects and everything so it's going to be a brutal yeah it's a brutal port but someone will do it it's an important enough library
Starting point is 01:03:28 oh yeah it's foundational and it's interesting in the respect that it's like 20-30 years old at this point and like it's full of very well tested but still buggy code it's a testament to how bad I think humans
Starting point is 01:03:44 are at programming and why we need tooling to support us yeah totally so what is um like the most kind of uh crazy experience you've had with homebrew like what's a what's an incredibly complicated situation you've had to deal with it could be you know arguments over a package or or some really esoteric error or what's something that kind of really kept you up at night when you're doing homebrew well i certainly did have sleepless nights at various times because it became important and worrying about whether or not i was taking it in the right direction, it mattered to me.
Starting point is 01:04:30 Some people think I'm not a very nice person, but I genuinely care about these bits of open source I put out there and how it impacts the world and what the world is going to get out. I think the reason I'm not considered nice in some ways is that guy who committed the project over the taps thing. I just stood my ground. I stood my ground. I was like, I don't think it should be ways is like that guy who quit the project over the taps thing, right? I just took my ground. I was like, I don't think it should be this way. We need to do it this other way. And it's, it's hard to have like,
Starting point is 01:04:54 especially if you put work into something rejected in that manner. So, you know, I felt like a bad person a lot, but my priority by far was the product, the thing that we were building and how that impacted open source and how that impacted the entire software ecosystem all developers of any kind so you know that that's stuff like that i remember like stories like you know when we put node in we bundled npn with it and then isaac didn't want that so he came up and we argued for like several days about whether or not it was
Starting point is 01:05:27 Homebrew's job to bundle NPN with Node or not and in the end we agreed we agreed with them you know that was something that we tried to do with Brew as well it's like we weren't we didn't consider us to be the most important part of the ecosystem we were just like the middleware
Starting point is 01:05:43 between the people who knew what their open source should do because they're building it and the users who wanted to do something with it. I think a lot of these packages, they take the attitude that they're building the system and what matters most is them. And
Starting point is 01:05:59 I don't agree with that. Yeah, that makes sense. Yeah, I think everything you build has an audience and you need to kind of understand and iterate. There was some issue with Eternal Terminal early on where we have an auto opt-in. There is an error, or not an error message, but there's a little message and delay the first time.
Starting point is 01:06:20 We have an auto opt-in to Sentry so we can collect crashes. And that was a really difficult kind of decision to make, because, you know, I do really respect people's privacy. And we're very careful not to log someone's IP address or anything like that. But even still, like, you know, logging, you know, a crash stack, so it makes some people nervous, it was a difficult decision. But then on the flip side, like I constantly getting issues like, hey, here's a crash. And there's no way to repro. And we don't have all the artifacts. It's just gone.
Starting point is 01:06:54 It's difficult. You're caught in a space. You can't make everyone happy. So you're always kind of a mean person to somebody. But as long as you're a nice person to somebody else at the same time, it works out. I got some stories about crash reporting with Amarok, the music player.
Starting point is 01:07:14 It was very crashy because all of us were relatively junior developers, frankly, at the time. So I built in a thing where if it crashed, it opened up your email client with crashes at Amarok.org with the backtrace in it. And I felt this was a nice compromise there. Like they choose whether or not they're going to send it. And we've made it very simple for them because we grabbed the backtrace and stuck it in an email and they understand how email works.
Starting point is 01:07:39 There's no magic going on that they don't understand potentially reporting things that they can't see. And that worked really well to the extent that they don't understand, potentially reporting things that they can't see. And that worked really well to the extent that we couldn't keep up with all the crashes. And then with Brew, when it crashed, I just dumped as much information as I could that I would need to debug it in the terminal and then gave them the link to opening a new ticket.
Starting point is 01:08:01 I was like, if you want to report this bug, I'll fix it. Just copy and paste everything above into the ticket. Yeah, makes sense. And that was pretty effective. But part of the reason it was effective is that I was very quick to fix the bugs as well. With open source, a lot of the time, you report a bug and you never hear back.
Starting point is 01:08:22 If you've ever reported any tickets to other hear back if you look at your if you've ever reported like any tickets to other projects if you look at your github history you'll find tickets you've opened years ago that never even got a response like open source has a bad rep where you know like in general like we do it for free so you know most people don't really have the time to provide good support. With Homebrew, I quit my job to work on it full time so that I could give it that kind of support. Wow. Let's dive into that. And then that'll be a good segue into tea. So, yeah, kind of walk us through that.
Starting point is 01:09:00 I mean, you quit your job. Was there a ramp where you were already getting donations to a degree where you could quit did you kind of like just take a leap of faith like how did how did that work yeah i've never received a single donation no that's not true i've received some donations but only after i'd left the project okay so you how did you work full-time on it then i saved some money up um you can live fairly frugally in britain if you want to and i wanted to so i saved some money up and then started working at full-time like it had become apparent that it was a success and it was by far the most interesting thing i could think of to work on. And I wanted to make sure it was a big success. So yeah, I quit. And I survived about six months on what I had.
Starting point is 01:09:50 I remember going to the bank and asking them what happens when you go overdraft, because I was about to go overdraft the next day. And they looked at me and I was like, you know, an idiot because I was 28 and I didn't understand how banks work. They told me it'd be fine. But, you know, I had to get another job. So I got another job at that point, worked for TweetDeck, made their mobile apps. But it began like this cycle for me where I would get jobs that I, you know, I wanted to do most of them.
Starting point is 01:10:21 I don't like working on things I don't like. But, you know know my story is that I couldn't imagine working in chemistry for the rest of my life it made me extremely depressed so if I don't like the work then I get depressed so I have to like it to a certain extent but what I've wanted to do for the last 15 years pretty much is work on open source I find that it's just the place that I bring the most value to the world and I get the most satisfaction. I love working with these big communities and building tools that everybody needs, whatever kind of thing they're working on. It's just incredibly rewarding.
Starting point is 01:10:59 And so I cycled for years between full-time work and working on Homebrew and my other open source projects. I've got quite a lot. None of them as big or as famous as homebrew of course uh until i burned out essentially like i it'd been years i've been doing two jobs essentially all the time and never really having enough time for the open source work and so i felt homebrew was good enough at that point, and so I left the project. People had turned up that were excellent. You really can get the best people in the world for open source,
Starting point is 01:11:31 because they turn up, and they have to really want to do it. You're not paying them. They love it. Right, right. Yeah, that is amazing. I mean, I think you're right that it's a permanent mark on civilization.
Starting point is 01:11:44 You could get a paycheck for that paycheck. I joke that I have direct deposit and direct withdrawal. The money comes in, the know, century, decades or centuries, way out of the future, and no one's using any of these things anymore. You know, those ideas will make their way into the derived projects. And, you know, the next person who builds a package manager is going to have a GitHub integration that's really lightweight like that. Right. And so in this way, those are the marks that are permanent. Yeah, well, brew. There's so many different brews now. The one I found the other day is called Pearl Brew. It did have a lot of influence, the ideas that it propagated.
Starting point is 01:12:36 And all the ideas I had for brew were based on other package managers I'd used. There were certainly some innovations in there where I'd put two of these ideas I had because of using other people's tooling together and made something that was better and newer. But yeah, we were all building on the shoulders of giants in open source, and it's part of the reason it's so great. That's why we hate the idea of software patents, right? All open source people hate that because the very idea that you
Starting point is 01:13:06 couldn't take some good idea someone else has had and use it to make something better or new or different is very offensive but you know that's the world yeah you know that was a big deal like uh around 10 years ago and then i haven't heard very much about patents or patent trolling in a while. So I don't really know what happened there. It'd be fascinating to dive into that. We should do a whole show on just patents and what really happened there. It seems like we're in some type of healthy situation now. I don't know if it's like a hostage situation or what's going on, but it seems like the patent trolls have died down lately at least yeah i think you're right and i hadn't really noticed that so that is is a huge relief there was certainly a period where it was starting to look like these software patterns and
Starting point is 01:13:56 the trolls that owned them were going to seriously disrupt and damage software and the internet yeah so something happened yeah Yeah, totally. Maybe it was the Free Software Foundation. Maybe they pulled it off, what they were trying to do. Yeah, I think. I mean, the last I'd heard about it was, you know, these big companies, these FANG companies, were all stocking up on these patents.
Starting point is 01:14:19 And so I think it created almost like this mutually assured destruction type scenario. And maybe that got everybody to calm down. Yeah. Yeah. So, okay, let's jump into tea. So tea is, you've said so far, tea is a package manager. So kind of tell us about like what got you inspired to do tea?
Starting point is 01:14:41 Was it straight from homebrew to tea or was there anything in the middle? And kind of what, you know, lead us into like what tea is all about and what you're trying to do tea was it straight from homebrew to tea or was there anything in the middle and kind of what you know lead us into like what tea is is all about and what you're trying to do there yeah so well i stopped working on homebrew like 2015 2016 and i'd been like winding down for about a year or so before that really uh i'd become very interested in iPhone apps, which I stopped being interested in a few years ago. So in between, I did a lot of iPhone work and made a lot of open source for the iPhone ecosystem as a result. But I never thought I would do another brew. My people have asked me all the time since, are you ever going to do another one and like i certainly been keeping notes over the years about what i would do if i made something like a brute two like i'm
Starting point is 01:15:33 a possessive note taker in many ways and i had pages and pages of it which i've put into t but i didn't think i would like i don't typically go back and do sequels. I like new projects and new ideas, but it's been long enough. And, well, I have a son now. Oh, congrats. Just, thank you. It's four months. He's quite a little rascal.
Starting point is 01:16:07 About a year ago, me and my girlfriend were trying to get pregnant and at the time i was working on uh open source and some other little projects i was trying to make some like micro sasses and stuff like that i wanted to work for myself and i wanted to be able to work on open source when i wanted to be able to work on open source so we got pregnant a lot quicker than expected so uh it the gynecologist suggested it would take a year but it took about two weeks and uh suddenly i found that i all my plans were in a bit of disarray so i was like okay i've either got to go back into industry you know get a normal job so i can like provide for a family or I got to figure something out. So I pulled over all my old ideas and came across Brew2, the ideas I'd written down
Starting point is 01:16:54 there. And I had a friend who's been trying to get me into crypto and Web3 for years. So he got into it like, you know, very early. I never found it very interesting because it seemed like it was just about money, you know very early but i never found it very interesting uh because it seemed like it was just about money you know right and i thought you know i thought bitcoin was very interesting and innovative and quite astonishing in some ways like that white paper's worth reading um but it still just seemed like money but he'd been trying to get me into that and i was like okay well maybe there's something there so i was also reading up on web3 and seeing what it was like whoever called it web3 that was a great idea
Starting point is 01:17:28 incidentally like whether or not it will earn the title is yet to be seen but it made it sound different and interesting and so that got me into it and it was while i was late night exploring my backlog of ideas and playing around with openSea and NFTs and digital contracts, that I suddenly realized that there was a possibility there to combine Brew with Web3 and, in effect, provide a mechanism for funding open source. So people like myself could live off open source rather than either turn into a passion project where you're begging for donations or seeking bounties or make it useful to Microsoft so they'll hire you. You can keep your project for yourself, make some money with it. So essentially, I then found out my friend and he thought it was a genius idea.
Starting point is 01:18:21 And we managed to get at this point where, we're $18 million of funding. I started active development on it in April. And we genuinely believe we can change how open source is funded. So let's walk through that. So you have a friend who's really into crypto. And the two of you kind of click with this idea which i think is a phenomenal idea basically you have this new kind of uh uh let's say more liquid more electronic way of transferring money you have a marketplace where you have um one thing just segue one thing you'll
Starting point is 01:18:59 know now that you have a kid it's going to take a few years. When your kid starts preschool, you'll be sick pretty much all of September. But you have this marketplace where on one side you have, you know, people who are using open source software and are getting value from it. And on the other side, you have the people producing it. And so it seems like you can create, you know, a very efficient market there. How did that turn into a funded company? So like, who did you speak to? Like, what's that chain of events like?
Starting point is 01:19:34 Because, you know, a lot of people know absolutely nothing about, even people who have been in the industry, I even put myself in this position, know nothing about startups. We've heard the word seed round. We don't know really what it means. And so kind of walk us through what that journey was like till now. It's a good question. And it's fun stories, really. So, well, I'm very fortunate because when you have something that's as well known as Homebrew, it makes things a lot simpler.
Starting point is 01:20:10 You know, we estimate that Homebrew has 40 million users and it's probably true because they're not all developers they're also all these other professions that need the tooling that comes with homebrew right initially it's going to be very focused on developers but over time it can evolve i've built t to be the ultimate packaging tool, but we can talk about its future set in a minute. So, yeah, like, so my friend has known me for years and he's wanted to work with me on something this big before. We've worked on minor startups and done contracting together and things. Timothy Lewis. So he, because he's been in crypto so long,
Starting point is 01:20:42 just knew a lot of people that were willing to invest in the sector i remember the first meeting we had with one of our first investors i was talking it through and he was fascinated by my story and i said how you know the only things i'd ever got from homebrew were google once sent me a blanket and things like this like great pitch stories because it's true they sent me a blanket and they said thanks for homebrew wow i didn't know your address oh it's google right i mean they didn't ask me for my address you know they've had you've had like give back to open source programs for years and this is one of the first and all it was that year was a blanket like now they actually throw money at it but yeah at the time i got a uh similarly i got a google home
Starting point is 01:21:24 it's actually in the kids' playroom right behind me, behind this wall. Yeah, I don't remember exactly how it worked, but yeah, I remember giving them my address and then being a little skeptical, but yeah, a random Google Home just showed up at my house a week later. Yeah, that's nice. But still, certainly not enough to pay the bills if you're going to do open source full time but yeah so I was pitching and then this guy was like okay I'm going to just
Starting point is 01:21:52 invite my friend down to talk to you and the guy was like a developer and so the guy turns up and my co-founder goes so do you know Homebrew and he was like what the package manager for Mac and he's like yeah do you use it and he was like, what? The package manager for Mac? And he's like, yeah. He said, do you use it? And he was like, oh, God, we use it all the time.
Starting point is 01:22:08 So, you know, the first key moment in us, like, starting to build this raise, and I'd had, like, this enormous piece of validation from just, like, some guy who'd been invited to, like, vet me, essentially. So it does definitely help if you have something as big as homebrew behind you that's really cool actually one one really quick homebrew story and then i want to get back to tea but i um i actually think maybe not solely maybe solely responsible for keeping homebrew alive at facebook which is now Meta. There was a whole enterprise engineering team that wanted to kill Homebrew.
Starting point is 01:22:50 And they actually, we were in this arms race where Homebrew installs things to user local. So they were locking down user local to where when you ran brew commands, it would fail in really odd ways. And then somebody, I think it was a colleague of mine, maybe I did, we submitted something to Homebrewer when it couldn't read user local. It told you that like right off the bat.
Starting point is 01:23:15 So then people started writing scripts where it was like chmod user local, then run Homebrew. And then an hour later, you know, Puppet would kick in and like change it back and you'd be in this arms race and uh um and and the alternative to all of the points you mentioned earlier the alternative was not developer friendly it was painful and um it was basically like the it was a internal version of the app store so you would go to like the equivalent of like the apple app store and you would search for like you know lib open ssl and then you'd have to click the button to install it and it's like just ridiculous um and so there's yeah there's this big uh battle back and forth we finally won and so i think there's still a ton of people uh using using homebrew it's just a
Starting point is 01:24:01 testament how good the experience is that's a great story i love it i haven't really heard one like it before because you know i know that these big companies use it uh probably still because i obviously my famous failed google interview i was like you won't use it and you won't hire me um wait wait hang on i don't you have to you have to you have to explain that one. What happened? So it was like 2015, and I was looking for new work. So my wife at the time said, why don't you reply to Google's emails for a change? Because they've been trying to recruit me since Homebrew got big. So I didn't know what I was going to do.
Starting point is 01:24:43 I didn't really want to work for somewhere like Google, but I thought, why thought why not i'll just do the interview so the recruiter phones me and said well we're skipping over the phone interview because of your uh you know prestige i was like well okay but i don't have a computer science degree right because obviously i knew that google interviews were always like computer science-y. And the recruiter said, oh yeah, we know, that's fine. We'll have custom interviews for you. I was like, well, okay, excellent. Then the first interview when I got there was asking me to invert a binary tree, which obviously I didn't know how to do. So it wasn't a good day. I had some interviews that were better than others, but I figured I didn't get it. And then a week later they phoned me to say that I didn't get it. And then I
Starting point is 01:25:28 immediately went to Twitter and typed 90% of our engineers use the software you wrote, homebrew in brackets, but you can't invert a binary tree on a blackboard so F off. And at the time I had like 600 followers, so I didn't
Starting point is 01:25:44 think it would matter. By the end of the next week, I had 15,000 followers. Oh my gosh. That's amazing. This tweet had been on Hacker News like eight times. Supposedly, it caused Google to look at their interview process and make changes. I have friends who were at Google at the time. They said there was a big fuss, a big stink made.
Starting point is 01:26:06 But it also led to me getting like 200 job offers from other companies. That's awesome. It was a pretty remarkable week. I felt bad because, as I say, I had very few followers. I didn't think it would be like a viral tweet
Starting point is 01:26:21 where this place had like 4 million views or something. It still gets replies. It's like it happened yesterday. 2015 happened yesterday 2015 people seven years ago what you should do is you should you should sort the offers based off like your own personal priority and then you know put them into a binary tree and invert it yeah well after that i did go home and figure out how to do it because jonathan blow you know jonathan blow oh the developer braid right yeah yeah exactly like yeah he i've always admired the guy and then suddenly he's in my twitter thread telling me that i'm a bad developer because i can't do this and i hurt my feelings honestly the guy was a bit of a hero of mine and like he said i watched his documentary and i loved
Starting point is 01:27:06 his games and he's like you're probably not a good developer actually max you should probably go and learn how to do that no i went and learned it thanks jonathan well it's good that you took it on the chin and you know some people would have been crushed by a lot of the things you talked about i mean having to change disciplines you disciplines, getting your hero kind of taking a sucker punch at you, but you kind of took all of these opportunities to step forward, you know? Well, I appreciate that. I guess it's always been the kind of person I am.
Starting point is 01:27:37 Always trying to move forward with things. So yeah, I took the job at Apple. Apple offered me work and I lasted a year. I was right. I don't work well at big companies, too much process. I also found this out. I mean, I worked for big companies for, I don't know, 15 years or something. But now that I'm at a smaller company, it's so much better.
Starting point is 01:27:59 It just fits my personality so much better. Okay, so based off someone who's made you know one of the most popular package managers you know you secured some funding and so you have uh you said 13 people right now i think it's more just like someone else and people keep dying i'm a little hands off with that side of things at the moment, even though I'm the CEO, because I'm actively building the product. You know, I'm the key developer at this point. We're hiring more so I can stop being the key developer. But, you know, the truth is,
Starting point is 01:28:33 I know the thing we're building, like, very thoroughly. I've been thinking about it for years. So I'm finishing that off. We're hoping to launch it soon-ish this year. Essentially, it's like a package manager, but overpowered. And is this like OS agnostic? Like what kind of packages are you managing?
Starting point is 01:28:52 So at this point, it's the same sort of stuff that Brew manages and packages like Debian's, Apt, and Yum, and all the Linux ones. So that base part of the stack. But because part of our product offering is going to be this blockchain component, that's where we're storing the package data. And we're not storing it, you're storing it.
Starting point is 01:29:14 As open source maintainers, you will publish using a private key into our chain, essentially an NFT that represents releases for your open source and dependency information. So we're building essentially an agnostic package registry for once and for all. I want there to be one source of data for all open source packages. It's awfully duplicated.
Starting point is 01:29:39 Even with brew, I made it worse by doing yet another one. Although, you know, I get why. But this time, essentially, we're making the database. But because this graph understands the entire open source ecosystem and how it depends on each other,
Starting point is 01:29:54 when you put some token into that graph, it can distribute it automatically using digital contracts to the rest of the graph. So if React, for example, is given some token, then all of React's dependencies, the node portion and the portion under node that is the part that we're starting with, that T is going to package,
Starting point is 01:30:18 can be given a percentage decreasing all the way down to libc, essentially. This is the golden principle of it and why it's going to work we're not changing how open source works as well like you're not going to have to like pay to use t and t is just going to be one client of this blockchain component so we're using like the steeping system effectively so we're doing like what banks do with interest effectively but you invest some money with the bank and the bank gives you an interest payment as a reward. A blockchain will, using proof of stake, give these rewards to the open source ecosystem. So you'll get a little bit of that reward as thanks for securing this network.
Starting point is 01:31:00 So we're expecting developers and companies, especially companies, I think like these fan companies that don't want to use Homebrew but are forced to, like Facebook, should be basically investing tens of millions of dollars a year into the open source that they use. And because we are building a set of tooling around that to assist that, essentially we're automating the part of the process for these companies or individuals or projects or groups on figuring out what open source they use and allowing them to put money into that system. Well, right now, you know, Google have to email you and say, hey, we want to send you a Google Home. Like, how do we do it? And then, you know, there's a limit to how many projects they can support in that manner because it's so manual
Starting point is 01:31:48 effectively we're automating that so i'm incredibly excited about what we're doing on the blockchain side also i came into this knowing that there's no way our blockchain component would get much usage unless there was a kick-ass set of tools that go with it that encourage that adoption and that usage so t is also like a successor to brew in many ways a general tool for developers that incorporates a lot of ideas i've had over the years because i feel like the package manager can be so much more than just a package manager like It controls and allows you power over every tool in your development stack. It's just so much more that can be done
Starting point is 01:32:32 than just installing updates and managing a set of packages that you use. So when we launch, it's going to have a few cool features. Essentially, we've made the Package Manager into a virtual environment manager for everything. You install a set of packages and set versions that are defined, and you can carrot update them, just like we were talking about with Node.
Starting point is 01:32:58 So you say, I depend on version 2.2 plus up to version 3 of this tool. And then You can have independent projects that you're working on that use completely independent sets of tooling. Even things like Postgres we can instantiate versions of Postgres, multiple versions on your system at once. They're all using
Starting point is 01:33:18 isolated, containerized things. Effectively, I'm making it so you don't want to use Docker for development. It sounds similar to Snap. Snap on Linux has some of these ideas in it. Yeah, there is stuff that can do this, like Nix. It's a big one where it makes, effectively, environments to work in. But I'm coming at it from the perspective of the developer
Starting point is 01:33:40 and not a system engineer or a DevOps person. This is a developer tool where i'm making it extremely pleasant for developers to use you probably want to this sounds awesome so as far as uh you know we have a lot of folks who are they're just graduating or they're um you know looking for internships you know what's the state of hiring right now at T? Are you looking for either of those, both of them? Oh, yeah, actively. I need another five or six developers before the end of the year. And then almost certainly we just keep scaling up.
Starting point is 01:34:13 Internships are a little trickier because a lot of the work we're doing is packaging. And the truth is, they don't teach you that at school. They don't really teach it anywhere. We're having trouble hiring as a result. We're looking at all the existing package managers essentially right now i really need a windows packager because we are a cross-platform tool i believe as a developer especially nowadays you should be able to work on whatever platform you want and if you're part of a team that team should not like say okay you have to use a mac because that's always really support it should be uh okay you just use t and t will
Starting point is 01:34:47 make sure that the system that you're building with is the same for all of us even though the platform underneath is different uh so we're supporting linux and mac very well at the moment and windows so so we need a windows package but i'm generally hiring full stack uh i want some react devs i want javascript devs. I want JavaScript devs. A big part of what we're doing is we think that something like T is really an app store. And so we're going to have an app. Like, you know, package managers have had apps before, but ours will be much nicer. And also integrated heavily into the web.
Starting point is 01:35:23 So I want one-click installs from the web, essentially. Install nodes straight from the web, one click. Yeah, I felt like that's one thing that Linux got really nicely, is you can download a dev file, and it opens a deep link in the software manager, and you just click install, and you're done. Yeah, some of these conveniences, we're just bringing them all together essentially there's a suite of other like surprise features i think you're just going to open up entirely new ways of i know it sounds pretentious
Starting point is 01:35:56 but like effectively i'm just trying to like break down barriers for developers i want developers to spend all their time making awesome stuff and none of their time zero uh worrying about how to install things and how to get started with things or experimenting with new tools or the amount of new stuff that comes out every week i want you to be able to feel that you can try out like at least half of it because there's a very simple way by the t website to like boot up effectively a sandbox and try out like a suggestion on like how to use that thing effectively a playground for those tools yeah super cool yeah i do feel like the the economic uh model is is also something I really appreciate. I have a, for Eternal Terminal, I have a GitHub donations button, which I put very little effort into promoting or anything like that.
Starting point is 01:36:55 And I think there is one donor. So if you're listening to this show, thank you so much, whoever you are. But I mean, this is also part of the problem is I have no way of really, at least I don't think I have any way of reaching out to that person and saying, hey, what do you like about this? I mean, you're willing to put money behind it. So, so, you know, your opinion really matters, right? So that dialogue isn't there. And the friction is just really high. So I think that you're attempting to address some of those things. Well, if you talk to your average developer, they feel bad that they don't support open source in some manner. But the truth is, it's very difficult to know how to support 10,000 packages that you use on a day-to-day basis. So indeed, we're trying to make it so that you can put a certain amount of money in every year, even as an individual.
Starting point is 01:37:43 But I think we should be encouraging these big fan companies to put their money where their mouths are with this stuff like they make a lot of money out of open source the open source ecosystem powers the internet more software and if somebody does open source yourself you know that you could spend a lot more time on it like i assume you made your tool because you wanted it and you want to work on it to a certain extent. And we want to make it so that it is possible for you to do so.
Starting point is 01:38:10 The whole impetus for it came from this library for iOS called PromiseKit that I made years ago. And at its peak, it was used by 100,000 apps. And so I was like, well, if every one of those apps
Starting point is 01:38:22 gave me just $1 a year, I could afford to work on it full-time and all my other open source, take a bit of a salary hit overall, but then I could find some more open source to make. You don't need that much from everyone. You just need everyone to somehow be able to participate. And so that's where we're coming at with what we're doing.
Starting point is 01:38:42 And we want to make it so successful that people at Facebook and Microsoft and Google and all these big companies, these talented developers who are basically wasting their time making algorithms that improve ad consumption, how much people participate with content, instead realize that they have a viable option to quit and work on an important piece of open source full time. I want all these people to quit i want facebook to seriously run out of developers and i have problems running the company because everyone
Starting point is 01:39:13 has quit to do what is better for the entire open source ecosystem for the entire internet and not as humanity as a whole yeah i think that makes sense. I do feel like advertising completely changed the internet and just the software community. I feel like it radically changed. And I don't, you know, I'm not really educated enough on this to know why,
Starting point is 01:39:38 to sort of the causal reasoning there and everything. But you're right. I think if we can sort of bring the economics back to some healthy place that i think we can cause sort of this explosion of because there's so many talented people all over the world who who uh wake up and and install linux for the first time and then all of a sudden they're on the vanguard of something um and and so if we can support those people, it would be fabulous.
Starting point is 01:40:06 Yeah, that's our mission. Cool. So yeah, we'll be releasing later this year, and we are hiring. But really, your listeners, one of the better things they can do is when we release, install it, try it out, and participate. There's going to be a huge open-source community
Starting point is 01:40:22 built up around it, just like Brew had, for people participating in making open source function. And we'll do the same kind of things we did for Brew and make it somewhere that is a great open source project to be a part of. And, well, we'll have token to facilitate contributions as well. Yeah, I mean, when people hear about cryptocurrency, they usually think about buying in, like buying a Bitcoin or buying a Ethereum coin or something like that. You don't have to be a millionaire to install T.
Starting point is 01:41:00 I mean, it's not that kind of thing. You can install it. You can get started totally free. So it's not that kind of thing. You can install it. You can get started totally free. So it's completely free. It's basically a better packaging solution than probably what you're using. And over time, you'll start to see how you can use the crypto and the web-free parts for yourself and for the benefit of the entire open source ecosystem. So, yeah, it will definitely be worth checking out. Cool. All right.
Starting point is 01:41:28 Well, when it's released, we will definitely post on our social media, Twitter and LinkedIn and all of that and get people aware of that. In the meantime, I'm sure you have a mailing list and those kinds of things. If people want to learn more about it and get ready, they can go to te.xyz. That's tea.xyz.
Starting point is 01:41:49 And thank you so much, Max, for coming on the show. An absolutely fabulous episode, amazing. And we covered a topic that is really, really important that, shockingly, we had never covered before, even in the abstract. So we covered package managers, I think, beautifully. And I'm really excited about T. And I'll be the first one in line to try and get Eternal Terminal onto T whenever it's ready. Well, I hope you do that, Jason. All right. Sounds good. Thanks again, Max. And thanks, folks, out there for listening, supporting the show on Patreon. We really appreciate it. And we will catch everyone in two weeks. Bye-bye. Music by Aaron Farndeller. Programming Throwdown is distributed under a Creative Commons Attribution Share Alike 2.0 license.
Starting point is 01:42:49 You're free to share, copy, distribute, transmit the work, to remix, adapt the work, but you must provide attribution to Patrick and I and share alike in kind.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.