The Changelog: Software Development, Open Source - Making shell history magical with Atuin (Interview)

Episode Date: February 21, 2024

Today we speak with Ellie Huxtable, the creator of a magical open source tool for syncing, searching & backing up your shell history. Along the way we learn all about the sync service, why she likes R...ust, the branding / marketing of the project, how she quit her job to work on it full time, the business model & so much more.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome, friends. You're listening to The Changelog, conversations with the hackers, the leaders, and the innovators of the software world. Today, we bring you Ellie Huxtable, the creator of a magical open-source tool for syncing, searching, and backing up your shell history. Oh, and have you heard? Our Ship It podcast is back, baby.
Starting point is 00:00:36 New hosts, same changeloggy goodness. Give the reboot a listen at shipit.show. Big thanks to our partners at Fly.io, the home of changelog.com. Easily launch your apps close to your users all around the world. Find out how at fly.io. Okay, Ellie Huxtable on the changelog. Let's do it. well friends i have some good news for you it is launch week once again for century and i'm here with rahul chabria from the product team at century so rahul what can you tell me about the launch week this year for century in march we're making a huge investment into our product platform. We're trying to make it faster, better.
Starting point is 00:01:28 In November, we shared a sneak peek about our new metrics offering. So now developers will be able to define custom metrics they care about and monitor how quickly their app is responding to the business measures they have to be accountable for, plus also the customer experiences that they've committed to.
Starting point is 00:01:44 And that's going to be available in an alpha. People can sign up to get access uh we'll turn it off for them like in a couple days once they write in and they can get going right away now on top of that it's like we are looking more at how do we make the product smarter now i know the world is talking about ai and ml and they're all solving like we think like entertaining problems but century's taking a more thoughtful approach to it. We are trying to look at what is the developer trying to do? Our goal is not to have you sit in Sentry all day long. Our goal is not to have this be a tab that you need to keep open.
Starting point is 00:02:13 Our goal is to have this be a tab you open when something is wrong, give you the information you need right away, tell you how impactful it is to your user base and if you should care. And if it is something you should care about, here's how to fix it. So we're taking a broader look at how developers use the product. Where is the noise they're seeing? Are they seeing repeat events? Are they seeing things that are not critical rise to the top and have to automatically resolve them or ignore them? So we're going to make Sentry a little bit smarter with artificial intelligence to give you a more prioritized view of the issues that really matter. So you can solve them quickly and move on and not be distracted by random
Starting point is 00:02:47 rage clicks that are, you know, just ghost issues. Those are the two major things coming out. It's like thinking about more like defining the metrics you care about. Also figuring out ways to like organize your issues. So developers can actually solve those problems faster. And then we're also working on a few features for our mobile developers,
Starting point is 00:03:02 like centuries, a platform that works with any technology you want. But for mobile developers, there's always been this like, wait a second, there was an error. Hold on, let me go dig up this device and see if I can recreate it. I can't recreate it. Okay, let me go look at the stack trace. It's definitely something there. I'll just fix it, push
Starting point is 00:03:18 release, and hopefully those crash rates go up and the crash for user rates go up. But it's always like this idea. I still need to figure out like where is that bank of used old devices for someone running, you know, iOS 13 on an iPhone 11 somewhere. So we're giving them the ability,
Starting point is 00:03:33 we're previewing the ability for mobile developers to actually see what happens on an end user session. So that way there's no question about the problem or the latency issue and building out more performance capabilities so they can see exactly how fast their app is performing. Those are the three big things we're planning on talking about aside from core platform announcements, some integrations and cool partnerships we're working with. Yes, the big investment in machine learning and artificial
Starting point is 00:03:56 intelligence. Okay, Sentries Launch Week happens March 18th through the 22nd. Check the show notes for a link to the Launch Week page. We'll be showing off new features, products. You can tune into their YouTube channel or Discord daily at 9 a.m. Pacific Standard Time to hear the latest scoop. Or if you want to get swag along the way, enter your email address at the page we'll link up to get swag all along the way. Or join the Discord, whatever works for you. Head to Sentry.io.
Starting point is 00:04:26 That's S-E-N-T-R-Y.io. I'm sure they'll link it up somewhere. Or check the show notes for a link. While you're at it, use the code CHANGELOG to get $100 off the team plan. Again, use the code CHANGELOG. Go to Sentry.io. I owe. Well, we are here with Ellie Huxtable, creator of A2N. Ellie, welcome. Hi, happy to be here.
Starting point is 00:05:13 Happy to have you. This is a really cool tool. This is one of those tools that you use and you're like, where have you been all my life? Tool, I didn't know I needed you. And in fact, I didn't even know this entire subset of things, like shell history was so powerful until last summer when we did a show about the Linux command line, and I confessed on that show that I had just learned Control-R after multiple decades of Linux use.
Starting point is 00:05:44 I had never known about Control-R. And after that show came out, I had a few people on Mastodon say, you have to check out A2N. It's like Control-R on steroids or Control-R with levels up. I don't know. I can't remember exactly what they said.
Starting point is 00:05:58 And I checked it out. And indeed, it was awesome. We put that on ChangeLog News. And multiple people found it and thought it was cool. And then a few months later, you people found it and thought it was cool. And then a few months later, you announced you're working on it full time. And I thought, we got to talk to Ellie. In fact, Adam, you also linked this up to me privately. Like,
Starting point is 00:06:17 should we talk about this? Yeah. And I was like, we already booked it. I was like, that's the best day ever, really. Whenever I suggest something, you're like, good, already done. Yeah. So we're super excited to have you. Let's open up with A2N, what it is and why you built it. Yeah, sure. So you've kind of covered it quite well. But firstly, A2N replaces control R, provides like a nicer search interface for your command history. But it goes a little bit further than that. So there's a few similar tools that make control r nicer like fzf a lot of people use but the main sort of this killer feature i guess is that it lets you sync the shell history you have between n different machines i started this because i i had the problem myself kind of scratching my own itch i had this really long command that i
Starting point is 00:07:01 regularly used at work that was suddenly useful at home as well. But my work laptop was like the other side of the room, closed, locked, whatever. And I couldn't quite remember how to do it exactly. So I had to go and like boot the machine up, log in, copy paste it across. And it was really long winded. And I actually didn't really want to make a new tool. I kind of assumed someone would have solved this problem already, but I couldn't find anything. So I went from there and had a little bit of time off work for some reasons. And I kind of polished up a GitHub readme, put it online and forgot about it for a little while. But it turns out a lot of people had the same problem too.
Starting point is 00:07:36 So I agree from that. I concur. I have that problem as well. I do a lot of home labbing, so not a lot of production work really. And a lot of my machines are ephemeral because they're VMs. So I will be embedded and do things and test out. And that command history is just stuck in that machine that's just now not even real. It's just back to digital dust on the disk again.
Starting point is 00:07:56 So the command history is there, not with me. Now, I'm also a user of Warp, which does supplant some of that. And I thought, well, this is sort of like an interesting thing. Like, does Warp use something like this behind the scenes? How does this work with, you know, that kind of terminal? Because Warp is doing some smarts there and keeping some of that history. I don't even know how it works, but it does work to some degree, but not always perfect long history. So I imagine that A-Twin is a little bit better than that.
Starting point is 00:08:26 Yeah, I mean, from what I know of War Warp they're doing a lot of different things. Shell history there as far as I know it's not synchronized and the kind of frustrating thing right now is that A2N doesn't work on Warp. Their like key binding stuff's not customizable completely as far as I know. But yeah there's a comparison to be made but the main goal with A2N I guess is to run in as many places as possible. I actually heard from someone that it runs on their phone, and I only knew this because they were complaining about compile times on phones being quite high. And I was like, sorry, what? It runs on phones.
Starting point is 00:08:54 So that was pretty cool. Are they using Terminus? What are they using? Do you know what app they were using on a phone? Off the top of my head, I think it's like Termux or something like that. Yeah, the one I'm using is called, I think it's like termux or something like that yeah the one i'm using is called i think it's called termius yeah termius t-e-r-m-i-u-s really cool i like it well i'm not using warp because they do not yet support tmux until they get there i will
Starting point is 00:09:18 continue not to use it but excited about that i've actually had this problem inside of Tmux even, and I think this is fixable with a config where I'd have multiple Tmux sessions, and even they would not share their history between the two sessions. And at some point, I found a way of fixing that particular thing to have those shared, but it was kind of a pain.
Starting point is 00:09:40 And A2N would have solved that, I assume, as well, even on the same machine between sessions right yeah it does that's actually something a lot of users say there there is for most shells some config you can do to make sure that it is all the sessions are shared but it's not usually the default and A2N just does that automatically so open source you know brew install or apt-get or actually you have a nice you know if you're cool with curling and piping into bash or whatever ellie will take care of you uh and just figure out what system you're on and what particular shell you're running whether it's bash you know z shell etc
Starting point is 00:10:17 and get it all installed of course you can do it manually but sync you know immediately i hear sync and i think service right and so this i guess leads into the bigger conversation around the sync service because that's kind of a core aspect of what atn does for you in addition to just a better ui around finding and navigating and executing your history but immediately it's like log in, you know, because the sync service is there. And I went ahead and did it with a little trepidation. Now your docs are nice and you say right up front, end-to-end encrypted, so everything's safe here.
Starting point is 00:10:56 But that's going to be a core thing of what you're doing and you're doing for an open source project now. Do you want to talk more about the sync side of things? Yeah. So you said you were a bit hesitant, and for me trust is like super important so the end-to-end encryption was a definite requirement from the very beginning it did make a lot of development very frustrating because like key sharing key management all of this stuff is just not that easy there's also two sides to that guess, because users don't want to give me their
Starting point is 00:11:25 shell history if it's not encrypted, but I also don't want, I think right now we've got like 70 million lines of history on the server and I don't want that not encrypted because like all of the API keys, all of the credentials, all of the stuff that you shouldn't paste into your shell, but lots of people do is just going to be sat there. And that would make me a huge target as well. So it's kind of best for everyone. The idea with the sync service as it's all encrypted is it's pretty much just a dumb blob store. It syncs encrypted data that data can be shell history. In this case it is, but it doesn't really have to be. It's just small little bits of information. There's a very tiny amount of metadata that we sync as well, just in order to make the sync work. Mostly just timestamps and
Starting point is 00:12:03 host names. The host names are hashed just as long as they're different. But yeah, it's actually very simple. I'm giving a really in-depth tech talk about it next month, which I'm looking forward to. But yeah. I guess sync is required to use A2N? Sync isn't required. So you don't have to sign in.
Starting point is 00:12:22 You don't have to register. You can just use it locally if you to, as like a better search interface. If the fact that it's encrypted still isn't enough for you to trust me, you can go ahead and host your own. So there's a Docker image, there's some documentation on how to get it running. There's a Helm chart as well. I know there's quite a lot of people that self host, I normally get like questions and stuff about it most days. So I've tried to make sure there's options there for whatever your risk tolerance is, I guess. What's it all written in? Can you tell us how it works and all that jazz? Like not the full tech talk, but like the quick tech talk, the teaser. Yes. So it's all in Rust. Back when I started, my Rust was like, I've done it on and
Starting point is 00:12:59 off for years, but I never had a job writing Rust. So it was only when I had the energy for side projects. And at the time I was working in Go and the idea of like doing more Go after writing Go all day wasn't really something I wanted to do. And I think one of the biggest selling points of Rust, which maybe isn't included in all of the Go versus Rust blog posts is that Rust is just really fun. There's loads of different ways of doing things. When it all works, you sort of feel quite satisfied about it. And it's just like a sense of satisfaction. I don't think it's there with a lot of other languages. So that was a big selling point for me. I've never heard that one. I've heard a lot of Rust enthusiasts and enthusiasm. I've heard some
Starting point is 00:13:36 comparisons, of course, hosting, not hosting, but producing a GoTime podcast. Rust comes up a lot on that. And certain gophers are excited and other ones are dreading Rust or combating it. And I've heard Rust hard to learn and sometimes complicated, but worth it. I've never heard fun. Never heard that. So satisfying, I think, is the keyword you use there. What's so satisfying about it? I think, especially in the early days, like the compiler shouts at you a lot. It's actually very friendly. So if you're new, don't be scared by me saying shouting. It's super friendly. But there's a lot of things you can do slightly wrong. There'll be a lot of borrow checker errors, all these things. And when you first get to the point where like you can write a bunch of code, and then there's not
Starting point is 00:14:20 really very many errors to fix. That's like a big point of satisfaction there's also quite a lot of sort of like functional programming inspired functionality so like maps and filters like all this stuff right and when you first get to the point where you're like hang on this big like if else chain can be written as some pattern matching and some combinators and stuff that also feels really nice i guess it makes you feel a little bit smart, which people like. Now you're speaking my language. I love good functional tooling in a language or a standard library.
Starting point is 00:14:51 Yeah, I think it's kind of the opposite to Go there. Like Go is obviously intentionally very simple and Rust is kind of the opposite, I guess, in a lot of ways. Well said, well said. So you wrote it in Rust because this was a side project. This was just something that you were doing
Starting point is 00:15:03 to scratch an itch and people liked it. If you look at these stars on the GitHub Starwatch thing that's embedded in the readme, it was kind of slow and steady. And then eventually there were a few inflection points. How did people find it? Did you get the word out on your own? Did you slap up a website? Talk to us about the boring kind of branding and marketing side of open source.
Starting point is 00:15:25 Yeah. side. Talk to us about, you know, the boring kind of branding and marketing side of open source. Yeah, I think at first I just put it on Twitter. And I had a decent number of retweets. I wouldn't say it went like viral or anything. But that got me like my first kind of slow momentum. The inflection points you mentioned were mostly Hacker News and Reddit. I tried posting on Hacker News myself a few times, and it just never really picked up. It's always been when other people post it. There's one inflection point from last year in May where I was actually on holiday and that morning I was meant to be going on this big trip and I woke up and my phone was going crazy and I was like, wait, what's going on here? So I was like in the car replying to comments and stuff, but that was really cool. I think a lot of the marketing is down to just having a readme that's
Starting point is 00:16:07 very clear as to what it is that makes a lot of sense. Having a nice logo and stuff can be very helpful. I tried to make the install very, very straightforward. So the curl to bash you mentioned earlier, literally just calls your package manager for you and add something to your ZSH or whatever config file. So kind of the friction for people giving it a try is very low. So that helped a lot. I think a lot of it's also just luck. It was like the right thing at the right time that had, you know, it was a need a lot of people had, it turned out. One other thing that really helps, I gave a talk at Fosdam that wasn't really intended as marketing. It was more like I wanted to give a talk and I had this project.
Starting point is 00:16:44 So it was an easy fit. That helped a lot. A lot of people shared it. A lot of people have told me they saw my talk. So that was really helpful too. How many people suggest this is a problem? How many people really want their shell history to just go with them? Because this is a pervasive issue with developers at large.
Starting point is 00:17:02 I think it's a very almost bimodal problem because I've heard some people just say to me like why would I want that I don't get it this is like not something I need I've had a lot of people almost say what you said earlier and like wow where's this been I guess there's been users sort of tell me that they've been manually keeping their bash history file over the last 10 years and having something automated really helps them out. And I think there's a lot of people who never really realized the value of their shell history and having something long-term until they've had tools that make it easier.
Starting point is 00:17:37 Because most people might use the default setup where not very much history is maintained. It's not shared across sessions, like that kind of thing. So I think you don't need it until you know you need it because you're like trying to do some stuff like you did where you had a command on your work laptop and it's like i'm not going to remember that maybe i'll throw it in doc somewhere maybe that's the easy way to sort of move some things around which i do that as well but at the same time like your your history in some cases like muscle memory if you could like easily search it and find a zfs command or the there's a docker ps command I run that like just has like a nice formatting that doesn't do the like which machines on this machine
Starting point is 00:18:20 are running docker and how many instances are there it's just like a prettier format that i've cargo culted essentially around that is just now part of my history and then when it's not i bring it back in but having this it's like well i don't ever have to lose that history ever again plus with the nature of the terminal the more you use it the more you kind of scrap together you know longer and longer commands over time that do something very specific and then not need that for a very long time. Yeah. I found. And then six months, eight months, two years later, and you're like, I've done this before and I can't remember exactly what I did, but I know I called cut at some point, you know, or like some terminal command is in
Starting point is 00:19:03 there. And if I can just type in cut and look at all the, I don't cut very often, but if I have the history and I can remember cut, I can look at the seven times I use cut and one of them, you'll see like, there it is right there. And you just save yourself so much time being able to just call, you know, remember that without having to remember it. It really is a time saver. And I got sold on, on you know setting your history to like a gazillion or whatever is it infinity i don't know it's so many ellie you probably know
Starting point is 00:19:32 how this works better than we do is there like a maximum history size hist size i think might be yeah it's hist size i always used to just spam a bunch of numbers until I thought that was probably enough. Pretty much. Like how large is my disk? I had this one command back in my more tried and true Ruby days whenever I would blow away gems. It was a for loop that is now on a Mac that doesn't exist for me. And if I wanted to, like you said, recall that command, it's just gone. It's not part of this new environment. Maybe I'm running Jekyll and I want to blow away the gems and do something different.
Starting point is 00:20:12 Now I don't have that for loop readily available. I could probably Google it. Maybe there's a gist out there where I stuck it in a gist on GitHub somewhere from back in the day, which is how we used to stow like stow away some ideas and kind of share them too. But, you know, now if I want to do that for loop, I'd probably just be like, like you, I don't, I don't know how I did it, you know, forget it. I find as well that as time goes on, the number of sort of original commands you write goes down. Like even if you're recalling something from three, four years ago, like you've written it before
Starting point is 00:20:42 and having that history means that like the longer you have it for, the less time you spend typing and that sort of compounds over time. For sure. I feel like maybe there's a saying like command lined, I don't know what prompts, commands are code too, you know? For sure. I don't know, maybe that translates here because like you kind of want to keep it in a way and it's not quite code you write and get stored.
Starting point is 00:21:05 It's history. Well, the entire website's dedicated to awesome command lines right like commandlinefu.com i'm not sure if it's still active but i used to go there and just read other people's command lines and be able to learn what i can do ellie your statement about reusing the same commands over time rings true because one of the coolest things about A2N is the stats subcommand. It has stats built into it. And so you can get a top list of your commands. And also it lists out total commands and unique commands. And I have in mine 15,000 total command history, which I just installed it and then loaded my history into it. 15,511. I wonder if my hist size is 15,000 or something like that. Or if that's just really how many commands I've done
Starting point is 00:21:51 in my days, at least on this computer. And of those 15,500, 4,800 are unique. So what does that mean? Like one in three? Something like that. So I'm like repeating myself quite a bit, you know? Like two out of three commands is not unique i think that's right that's top of the head math here's the moment where i come off later sound like an idiot ellie like well his math was awful but the point stands lots of repeat commands in there you know i always find we've got a channel on the discord where people share that sort of a two in stats output and the number of times it's cd or ls at the top is is huge yeah i got cd at number one as well what else do you do um mix i run mix a lot so i'm an
Starting point is 00:22:33 elixirist so i run mix sure which is usually just mix test and i just run mix test over and over again uh get st which is get status that's my shorthand for good status iex which is Git status. That's my shorthand for Git status. IEX, which is also Elixir. That's starting the Elixir shell. And then Smug. What's Smug? Smug is a Go-based tool for managing TMUX sessions. So you can define different TMUX sessions using YAML or some sort of little config file format. And you can use Smug to manage them.
Starting point is 00:23:02 So I can say Smug start changelog, and will like launch a specific tmux session with like you know three terminals and this one runs that command this goes to this directory this starts that command and then i can like just switch between them quickly because i have a few things that i do but that's about it and so i use smug to just start that thing suspend this one start that one and it always is just set up the way you like it so i run that command a lot in order to get into whatever it is that I'm up to. So that's a cool one. It's based off of there's an old project in Ruby called Tmuxinator, which does the same thing. And I think Tmuxinator either got unmaintained, or I got sick of having to deal with Ruby with regards to it,
Starting point is 00:23:45 and I wanted a universal binary. And Go is very good at that, and so there's one called Smug in Go, which I replaced it. And I think it even uses the Tmuxinator config format or something, so it's like an easy switch. So that's my top five. And then LS, coming in at number six. For sure.
Starting point is 00:24:03 That's kind of a cool tool, because getting started is half the battle, right? Like it creates that momentum. There's no minutia to do, no ceremony to do. It's just like, what was it, smug changelog and that was it? Smug start changelog. Yeah. Yep.
Starting point is 00:24:21 And you're off to the races because like, hey, this is what my environment is whenever I do this development. And starting is pretty easy. It's already set up for me. That's pretty cool. I like that. What's your top five, Ellie? So LS, CD, kind of boring. FG as well. You mentioned the command Z thing earlier.
Starting point is 00:24:36 So that's on there for me. Totally. Git status and LVim as well. So LVim's basically NeoVim, but it's like a distribution. I had a NeoVim setup I maintained for like years and years. And I got to the point where I was tired of constantly updating plugins. So LunaVim just has them all from the get-go.
Starting point is 00:24:55 Nice. I would share mine, but I haven't trusted you yet. I'm actually stuck. I was like, let me trust Ellie in a VM. And so I use warp. I SSH in this VM. And the thing I get whenever I do A2 stats for example it says error failed to find a to in session in the environment check that you have correctly set up your shell now use your command this is a boon too I think it's 2304 potentially and I just use your command I'm like yeah I trust your bash command I'll just whatever you want to do on my machine because this is a VM I don't care right and that's what I did then I was like, well, maybe I messed that up somehow. And so I did the import process to import my ZSH history. And thus far, I only get errors
Starting point is 00:25:54 whenever I do A2N stats or history, because there's nothing there yet. We usually see that error when the sort of shell plugin half isn't properly installed. So maybe it installed to a different config file to the shell you're using, which can happen sometimes depending on the setup. So a to-end session basically just tracks
Starting point is 00:26:13 like the current shell session. So we track history per, even though they're all merged, we also track the history per session. And if it can't find that variable, it's not being set by the shell integration. Would that be my like ZSH file then, my RC file yeah it'll be your zshrc there should be like a two in it in there somewhere yeah i don't think it's in there then so that's probably my issue well
Starting point is 00:26:34 actually it's eval yeah there's an there's an addition at the very bottom it's evaling a to an init zsh doesn't need to be a live debug here but that was my hurl here i was trusting you in a vm okay i was trying my best to protect my machine from ellie at all costs well you wouldn't have your history in there either then well i actually did it in a vm that i know i don't need anymore but does have some zfs history so i was like well it's probably going to be a zfs fine-tuned command it's like an older thing that uh tainted man yeah it's got some history in it. So I was like, okay, I can use this. And the VM has a backup yesterday,
Starting point is 00:27:10 so I'm cool with like, if this VM dies, I'll just like blow it away and restore it from a backup. That's how Proxmos works, you know, it's pretty easy. Okay, so I've got this issue. Maybe I'll try it on my Mac. And I haven't gone deeper, but don't feel bad. I do trust you. I do trust you. I do trust you.
Starting point is 00:27:25 If you don't, it's cool. You can run it on your home lab too. That's true. Well, I was trying to. That'd be a cool thing, Adam, is set it up on your home lab and run it. Yeah, I actually like that idea a lot. Like running your own server,
Starting point is 00:27:36 I think is super cool that you offer that. I did like a lot of the install process. I can at least share some of my thoughts on experience here, which was your thoughtfulness and the messaging, I think, is super cool. Like you have the ASCII art going on, and you've got these very polite prompts, detected Linux, checking distro, Ubuntu detected. It gives them all this details, all this different stuff.
Starting point is 00:27:59 Runs AppKit update for me, which is super kind of you to give me the latest repositories available. Super kind. Yeah, super kind of you. give me the latest repositories available. Super kind. Yeah, super kind of you. And at the very end, it does all its thing. And it's like, hey, thank you. And this is how you can use it and contribute and become a part of the community, which I think is super important for any tool that wants to be adopted. Tell me how to adopt, right? And you've done that. So very, very well done on that part of it, even though I've had this ZSH eval issue. I'll figure
Starting point is 00:28:26 it out. Sorry about that. But no, thank you. Obviously, I don't know how many people click on the links at the bottom of the installer, but I hope that it does help to some degree. Yeah. And you did give a prompt of the next step too, which is A2N register or A2N login. So you've already done that. It is kind of hard. I would say if I didn't go there and do that, it would be kind of hard to understand what the next steps are. Like, give me a quick win. Like, the import, like, hey, you might want to import, because I didn't know that.
Starting point is 00:28:55 That might be something to add there. Like, hey, to get started, just run this command to import, and then you can run stats as an example, because you probably have all the data, and you can run stats because you have all of it imported and you get a quick win like oh i get how this thing works i get how this thing will help me that's a good suggestion thank you i'm actually thinking of doing like a two and set up which just is kind of like a little interactive wizard that just does the whole lot for you better even better yeah a twoie that could be fun yeah
Starting point is 00:29:22 well i would definitely i would agree on the setup process and the documentation was all very hand-holdy and nice. And even when I was feeling like, I don't know if I want it, you're like, right there, you're like, no, it's end-to-end encrypted. I'm like, all right, so this person cares. I also kind of figured that if I was a user, I would be like, no way are you getting my data. So I had to make sure it was something I would use
Starting point is 00:29:42 if I was on the other side. What's up friends? This episode is brought to you by our friends at Cinedia. Cinedia is helping teams take NAS to the next level via a global multi-cloud, multi-geo, and extensible service fully managed by Cinedia. They take care of all the infrastructure, management, monitoring, and maintenance for you so you can focus on building exceptional distributed applications. And I'm here with VP of product and engineering, Byron Ruth. So Byron, in the Nats versus Kafka conversation, I hear a couple of different things. One I hear
Starting point is 00:30:37 out there, I hate Kafka with a passion. That's quoted by the way on Hacker News. I hear Kafka is dead, long live Kafka. And then I hear Kafka is the default, but I hate it. So what's the deal with Nats versus Kafka? Yeah. So Kafka is an interesting one. I've personally followed Kafka for quite some time ever since the LinkedIn days. And I think what they've done in terms of transitioning the landscape to event streaming has been wonderful. I think they definitely were the sort of first market for persistent data streaming. However, over time, as people have adopted it, they were the first to market, they provided a solution,
Starting point is 00:31:16 but you don't know what you don't know in terms of you need this solution, you need this capability, but inevitably there's also all this operational pain and overhead that people have come to associate with Kafka deployments. Based on our experience and what users and customers have come to us with, they would say, we are spending a ton of money on spend on a team to maintain our Kafka clusters or manage services or something like that. The paradigm of how they model topics and how you partition topics and how you scale them is not really in line with what they fundamentally want to do. And that's where NATS can provide, as we refer to it, subject-based addressing, which has a much more granular way of addressing messages, sending messages, subscribing to
Starting point is 00:32:06 messages and things like that, which is very different from what Kafka does. And the second that we introduced persistence with our Jetstream subsystem, as we refer to it a handful of years ago, we literally had a flood of people saying, can I replace my Kafka deployments with this NATS Jetstream alternative? And we've been getting constant inbounds, constant customers asking, hey, can you enlighten us with what NATS can do? And oh, by the way, here's all these other dependencies like Redis and other things, and some of our services-based things that we could potentially migrate and evolve over time by adopting NATS as a technology,
Starting point is 00:32:45 as a core technology to people's systems and platforms. So this has been largely organic. We never from day one, with our persistence layer Jetstream, the intention was never to say, we're going to go after Kafka. But because of how we layered the persistence on top of this really nice pub-sub core NATS foundation. And then we promoted it and we say, hey, now we have the same semantics, same paradigm with these new primitives that introduce persistence in terms of streams and consumers. The floodgate just opened and everyone was frankly coming to us and wanting to simplify their architecture, reduce costs, operational costs, get all of these other advantages that
Starting point is 00:33:25 Nats has to offer that Kafka does not whatsoever or any of the other similar offerings out there. And you get all these other advantages that Nats has to offer. So there's someone out there listening to this right now. They're the Kafka cluster admin, the person in charge of this cluster going down or not. They manage the team, they feel the pain, all the things. Give a prescription. What should they do? What we always recommend is that you can go to the NATS website, download the server, look at the client and model a stream. There's some guides on doing that. We also have, Synedia provided basically a packet of resources to inform people because we get,
Starting point is 00:34:02 again, so many inbound requests about how do you compare Nats and Kafka? And we're like, let's actually just put a thing together that can inform people how to compare and contrast them. So we have a link on the website that we can share and you can basically go get those set of resources. This includes a very lengthy white paper from an outside consultant that did performance benchmarks and stuff like that and discuss basically the different trade-offs that are made. And they also do a
Starting point is 00:34:31 total cost of ownership assessment between people who are organizations running Kafka versus running NATS for comparable workloads. Well, there you go. You have a prescription. Check for a link in the show notes to those resources. Yesterday's tech is not cutting it. NATS, powered by the global multi-cloud, multi-geo, and extensible service that is fully managed by Synedia. It's the way of the future. Learn more at synedia.com slash changelog. That's S-Y-N-A-D-I-A dot com slash changelog.
Starting point is 00:35:12 So when you decided to quit your job to do this, what were you thinking? When? Who, what, when, where, why? So I started 2023 and this was just like a random little side project, right? It was going okay. It was a bit of fun. And then after my talk at FOSDEM, some of the other speakers I was speaking to, one of them sort of says to me, like, you need to take this more, like, you should take this more seriously. Think about monetizing it, et cetera, et cetera. And I wasn't a hundred percent convinced at the time, but it sort of sat in the back of my head. And throughout that year, after a lot of the reception I got, I started spending like an extra few hours per like few days, just polishing, improving, that kind of thing. And the user growth we got was huge. So like we had more growth in 2023 than
Starting point is 00:35:57 we'd had in the previous two years by a long shot and kind of got to the end of the year. And I'd always fancied having a go at building my own company. And I had this project that was continuously growing. It was sort of continuously demanding more time as well. And I got to the point where I was like, either I give this a go and try to make something of it or I reduce how much time and energy I'm putting into it
Starting point is 00:36:20 because like, it's not sustainable. I can't like have a full-time job and be like handling support and prioritizing issues and all of this in a way that's going to continue to grow. I think there's a bit of a gap in sort of the shell as it is. It hasn't really changed a whole lot in a long time. And the way you said earlier, like about how, you know, the shells code too, or something like that, maybe I'm'm not quoting you exactly but i think there's a ton of developer tools focused around writing software but people who spend a lot of time in the terminal are almost underserved right now yeah i agree the command line code is code too i guess i don't know your command line commands
Starting point is 00:36:59 are code too exactly i feel that uh even during, like, you recognize which distro I'm using. Like, that's cool code. I'm sure, is that in Rust as well? Like, what are you doing to confirm, like, which distro do you have, like, a massive if statement or something like that, or a case statement? It's a chunky bash script. Yeah. Okay. I mean, that's fun too. That's code too.
Starting point is 00:37:20 Yeah. And I like bash scripts even too. I mean, I like them because they're useful tooling that you can make for you. They're very bespoke for what you need. And I like Bash scripts even too. I mean, I like them because they're useful tooling that you can make for you. They're very bespoke for what you need. And I think, you know, in my last, I'd say year and a half, I've become more empowered with ChatGPT and coding tools because there's just so much knowledge out there in AI land to generate or at least guide me on Bash scripting where I never really,
Starting point is 00:37:43 I felt intimidated by it because i was like i i'm not that kind of hacker adam come on you know you can't do this but then when i'm like i need to do it and so i found out how to do it with my buddy code gen ei stuff and now i have lots of linux tooling that i use myself for various things that are not really probably useful to anybody else but they're useful to me only, and they can be highly specific. Whereas before, I would have never done it, but it's totally code too. And I have no idea where to keep it at. Like, it's in a repository, but now it's the true version of it.
Starting point is 00:38:16 How do you deploy it? How do you easily get into, like, an apt repository you can install yourself? That whole world is weird. Like, if you write your own little tools tools how do you install your own little tools that's i would love somebody to solve that problem better or at least document how to better you know add a repository to apt so that i can easily install my own things from a github repository because my central repository of it essentially is living in my bin folder my own personal bin folder like wherever i put my stuff at that's the version and it changes without being versioned because i'm an idiot you know i'm just like it's just my own tooling that was better that'd be cool definitely be very cool and do
Starting point is 00:38:54 you remember rvm oh yeah of course ellie are you aware of rvm ruby version manager yeah there's a few similar for other languages as well yeah it was kind of the first one that ended up being like NVM, Node Version Manager, etc. And RVM was famous, but also a little bit infamous because the entire thing was written in Bash. And it was a lot of code. And it was very complex once you got into there. And RVM had some, I mean, a lot of users, a lot of bugs, a lot of issues. lot of bugs a lot of issues and then as a user you dive into it and you're a ruby person or something and all you're seeing is like i can't remember the guy's name who wrote it but he knew bash very very very well to like the you know to the degree
Starting point is 00:39:38 we were like oh this is borderline you know too much bash anyways at one point he decided that he was going to make a package manager i guess for the listeners who aren't aware rvm ruby virgin manager michael papis is his name yeah michael papis yeah we talked to him back in 2013 jared that's been a long time ago i feel like there was another fellow that was that's not michael peppy i remember michael mccall wayne yes yeah wayne segu? Yes, Wayne Seguin or Seguin? Seguin, yeah. Did they work on it together? I think he was the originator.
Starting point is 00:40:10 Okay, and Michael Papis took it over and had to maintain it. Okay, it's all coming back to me. I think Michael took over a lot of the issues really though. Yeah. There was like a burnout stage there too with Michael. Wayne was super into Bash. Maybe he still is. I haven't kept up with him.
Starting point is 00:40:23 Yeah. And I remember at one point he talked about writing a bash package manager for x where x is whatever it is you wanted to manage it was one of these like i'm going to engineer the general thing that solves all problems kind of situations that we get into as engineers and the reason why i think of it is because his deal was like you should just be able to like package manage your bash scripts just like you can other things which is kind of what you're asking for adam yeah it's like just give me a way of like packaging up and deploying even if only to myself which a lot of us should do with our dot files synced across machines you know it's like you write your little bash scripts
Starting point is 00:41:01 and your functions and stuff into your dot files and use Git to basically synchronize those across machines, which is a poor man's solution, but it works to a certain degree. Better than going the route of doing a distro or package manager specific, like At, for example. Because if I'm going to do the same, if I need the same bin options on my Mac then you know maybe there's you know dependencies required or whatever I don't know usually you'll end up with some sort of platform specific
Starting point is 00:41:34 conditions in your scripts which I know I've had in my days where I'd like check is it Mac or is it Linux all the ones I've been writing are they translate from Mac to Linux no problem. Just as long as the package there, like 7Z or ZFS or whatever, like those things,
Starting point is 00:41:51 as long as it's present, then it runs. And there's check you can do in the bash. But anyways, yeah, we're in the weeds. I was just thinking, I was just reminiscing and thinking a little bit about that as something that doesn't exist that I know of. Maybe people know ways that you can, you know, deploy out your little scripts
Starting point is 00:42:05 to yourself and to others in a way that's a lot like NPM install or cargo install, where they have these language-specific things. This would be more generic. I think it would be cool. Also, even for internal tooling, like I've been in jobs before where some of the onboarding is like, please copy-paste all of this from the wiki into your.files. Totally.
Starting point is 00:42:25 It's not great, right? Yeah. So maybe a new frontier for A2N at some point, you know? I actually just made it sync aliases like earlier today. Really? So there's some scope for that too. Okay. So now we're starting to see
Starting point is 00:42:38 what maybe a potential future for this looks like. Maybe. I use something from ThoughtBot for some of these things. I think it's rc up or rc something you know there's lots of different people taking different whacks at this i think over the years but yes syncing aliases so yeah that's kind of the inspiration there i had a lot of feedback from users that it's the first thing they install on their machine and then from there they like recall other commands for setting up the rest. And it's like, well, if you didn't have to recall all the commands and you could just install it on your machine and then your setups right there, then that would be the next step.
Starting point is 00:43:12 Bam. Yeah. So this is like this could be your dot file syncer and your environment setup syncer without a GitHub repo or something like all you need is A2N and you're already logged in. Exactly. I love it. I love it. I love it. We sidetracked a little bit. Is it trivial to run your own server in a home lab or on-prem?
Starting point is 00:43:31 Is it pretty easy? It should be. And if you have any problems, let me know because I want to make it easier. It's just Postgres, at least Postgres 14 and run a binary. And that's it. I guess I could probably Dockerckerize that i would i would prefer docker in that scenario it's like just we have a docker image too there's a docker image there's an example docker compose and there's a home chart and oh that's too easy i think there's
Starting point is 00:43:56 some kubernetes like community distro thing people have for home labs that has it included too i can't remember what it's called now but i'll test it out after this conversation i'll i'll play with it i'll give you some feedback oh i see it yeah thanks under your doc self-hosting server setup usage docker kubernetes so very cool here's a setup that i think has worked in the past it's like open source library or framework or system system with a hosted business attached to it where the end user is more mainstream, more normal, less nerdy. But when you have open source tool service as the business model, which your core audience is super nerds, like Adam, who's like gets excited because he hears, or somebody even nerdier who hears HelmChart and is like, let's go, which I'm sure some of our listeners are like,
Starting point is 00:44:51 oh good, HelmChart, cool. It seems like that's harder for the business side, isn't it? Where it's like, the people who are your core demographic of potential purchasers, because they're all command line users, they also are super down with self-hosting. I think it's split. I think a lot of the early users are super down with self-hosting i think it's split i think a lot of the sort of early users are very down for self-hosting very down for customizing things but i think there's tons of people that don't actually know how nice the shell can be
Starting point is 00:45:16 and how things can be better and if there was a very easy way for them to have a nice setup that felt modern and was good and they didn't have to know what sort of scripts and plugins they need to install and which things they need to add and all of this, which most people will just stop caring as soon as they start seeing this huge list of stuff. If it was nice with no effort, I think we could have more people using the terminal much more. I agree with you. And I also want to recognize that of amongst the nerdy ones like Adam, there's also me. And I would just, I have no interest at all in self-hosting, even though I totally could do it. I just don't want to. I would happily sign up for the service and pay the money on a recurring basis to have you handle that for me. So even amongst, you know, there's a lot of home labbers, a lot of self-hosters amongst us nerds and then there's also the ones that are just like yeah i'd rather not i'd rather give ellie my money maybe i'll hold you to that recurring payment thing hey i'm into it i'm i'm interested for sure especially if you are just gonna like automatically sync all my things and yeah it's cool it's very cool my reasoning is not not to
Starting point is 00:46:23 pay we know that We know that. We know that you're just tinkerer. We even talked about that with a obsidian. I think Nick and I talked about that when we're at that conference, we were talking about obsidian. Are you obsidian? I love obsidian. Yeah. It's my favorite thing.
Starting point is 00:46:36 And you use their sync service. I do. Were you early enough to get the, you know, like half off discount? Nick got, Nick Nisi got this, like,
Starting point is 00:46:44 I don't know, early adopter super cool person discount that's like forever person discount nick is cool i don't think that strikes true for nick but come on we'll see uh well anyways i pay 10 bucks a month you pay 10 bucks a month for a sink yeah yeah i don't not want to pay that number but i think it's that's not exactly what i think the value is that Obsidian gives me, is syncing. It seems to be pretty trivial to do. Like, why not just give somebody the option to run their own server?
Starting point is 00:47:15 I don't know. But that's why I think about this. Like, not so much not paying you, but more like just even data protection or just for learning. You know, how does this actually run? What does it take to... Because I don't get to do SRE stuff as a living. I'm a podcaster. My SRE for a living is myself and my home lab and tinkering.
Starting point is 00:47:34 And so that's why I do it, to learn. Less about keeping my own dollars. When I have been SRE for a living, my home lab got neglected quite a lot. Yeah. What's your home lab then it's uh pretty simple it's just like a little uvantu server with a bunch of zfs stuff running on it but a bunch of docker containers for my home media setup and like a prometheus and grifana dashboard setup and stuff doing a little bit of home automation at the moment just because maybe future me will want to know the temperature in my kitchen 10 years ago yeah you never know we'll see What's up, friends?
Starting point is 00:48:39 This episode is brought to you by ImageProxy. ImageProxy is open source and optimizes images for the web on the fly. It uses the world's fastest image processing library under the hood, LibVeeps. It makes websites and apps blazing fast while saving storage and SaaS costs. And I'm joined by two guests today, Sergei Alexandrovich, author, founder, and CTO of ImageProxy, and Patrick Byrne, VP of Engineering at Dribbble, where they use ImageProxy to power the massive amounts of images from all of Dribbble.com. Sergey, tell me about ImageProxy. Why should teams use this? Everyone needs to process their images.
Starting point is 00:49:18 You can't just take an image and just send it to users' browsers because usually it's megabytes of data. And if you have lots of images like Dribbble does, you need to compress and you need to optimize your images and you need them in the best quality you can provide. That's where ImageProxy shines. Very cool. So Patrick, tell me how Dribbble is using ImageProxy. Being a design portfolio site, we deal really heavy in all sorts of images from a lot of different sizes, levels of complexity. And when we serve those images to the users, those really have to match exactly what the
Starting point is 00:49:54 designer intended. And the visitors need to receive those images in an appropriate file size and dimensions, depending on whatever their internet connection speed is or their device size is. And that was just a constant struggle really to really thread that needle throughout the course of the platform, using a handful of different tools in maintaining that right balance of a high degree of fidelity, high degree of quality without sacrificing the visitor's experience. And when we were exploring using image proxy, we were able to spin up using the open source
Starting point is 00:50:23 version of the product, a small ECS cluster to just throw a few of those really tough cases that went through our support backlog, looking at some of the cases people were reporting. And almost to a T, we aced every one of those cases. Wow. So it seems like image proxy was really impressive to you. Yeah, Adam, I just have nothing but positive things to say about using image proxy. The documentation is crystal clear. Out of the box, it does everything you need it to. Tweaking it to meet your specific needs is incredibly easy. It's wicked fast.
Starting point is 00:50:53 It deploys real simple. And our compute costs have gone down over the open source tools that we've used in the past. Even including the ImageProxy Pro license, it still costs us less to use and gives our visitors a better experience. So as an engineer, I like using it. And as an engineering manager, I like what it does to our bottom line. So ImageProxy is open source and you can use it today. But there's also a pro version with advanced features. Check out the pro version or the open source version at imageproxy.net. The one thing I
Starting point is 00:51:25 love so much about this is that no matter which you choose, the open source route or the advanced features in the pro version, you use the same way to deploy it. A Docker image, one that is from Docker Hub that everybody can use, it's open source, or one that's licensed differently for those advanced features, that's the same delivery mechanism via Docker Hub. It's so cool. Once again, imageproxy.net. Check out the demo while you're there and check out the advanced features for the pro version.
Starting point is 00:51:53 Once again, imageproxy.net. So when you decided to quit the job, let's go back there. Yeah, sound like this. Go back there. I was about to go back there. Yeah, good. Yeah, good. We moved Go back there. I was about to go back there. Yeah, good. Yeah, good.
Starting point is 00:52:07 We moved far afield. You're boring me, Adam. Yeah, I am. Good. You're on track. Well, we're on the same page. I also was happy you brought us back to the home lab. But, well, you kind of gave a little bit of your thought and your reasoning.
Starting point is 00:52:19 But maybe just expand more. Talk about money. Talk about life. You know? Like, tell us the inside scoop on what you're thinking about it. Yeah, sure. I mean, money wise, I'm quite lucky. I've had a good career. I've got plenty of savings. My outgoings are pretty low. Like it's just me. I've got no kids, mortgage, whatever. So it's a bit of rent and money for my motorbikes. It's pretty much it. Um, but yeah yeah so the outgoings were low I
Starting point is 00:52:47 had enough for like at least a year so I'm good there um I just figured that you know have you ever had something that you have to work on and like if you don't it's gonna bug you forever like it's it's one of those things I figured I had to give it a go otherwise I'd always wonder like what if I had tried what if I had done this and like at the end of the day, it's maybe a small risk, but I don't think doing this will make me any less employable if it doesn't work out. So it's something I really wanted to at least give a shot. You set parameters around what success looks like, what failure looks like, when you're gonna call it a day if there is one, or do you have a business model? Like how much did you put into it?
Starting point is 00:53:30 You're like, I just want to work on this. I'm going to give it a shot. Yeah, I've got, I was kind of trying to get a nice balance between planning enough, but also not making it too rigid. Because obviously when you go from fitting something into your mornings and doing something full-time like a lot can change so the way I saw it was like the first six months of the year wouldn't be focusing too much on getting revenue they'd be focusing on making sure I'm building the right thing making sure I'm building something people want making sure that like any sort of frustrations people had were solved and then the latter six months of the year I'd be thinking more about like making sure I can pay rent. But that's, that's the main plan.
Starting point is 00:54:08 I'd kind of like to start addressing some more team use cases later in the year as well. But the first, again, the first beginning is just focusing on making sure like individuals are very, very happy with their shell. And how long have you been doing it? So full-time like six weeks. otherwise it's like three years now the first majority of that was very sporadic though yeah so six weeks full-time are you having a blast or what yeah it's been great it's cool because I'm I know I've had loads of ideas I've wanted to explore but I've never had the time and the energy so being able to tie up so many loose ends from last year. Like as an example, the first version of the sync that Atuan had was, was like mostly good for most use cases.
Starting point is 00:54:51 And it lasted way better than I thought. I think there was a comment from the first version that was like, this is really naive, improve it. And I never got around to fixing it. So there was like a prototype sync V2 that was sitting around for all of last year. And in the last, the first few weeks of full-time, I managed to finish it.
Starting point is 00:55:10 And we rolled it out a couple of weeks ago and working so much better. And it's nice to have been able to do that. I think that's like very important for laying the foundations for everything else. What are you doing to ensure you're building the right thing? Like how do you,
Starting point is 00:55:24 is it just Discord? Is it emailing? Is it interviewing? Like what do you do to ensure you're building the right thing? Like, how do you, is it just Discord? Is it emailing? Is it interviewing? Like, what do you do to ensure this? There's also a forum now, which is mostly for support. And that's been really good too. I've been doing user interviews too. So I have like little video calls with people and talk about like what they like, what they don't like, what other problems they might have, what they'd be willing to pay for, what they might not want to pay for, that kind of thing. That's been going pretty well too. Did you see mountain bikes when you said to, or motorbikes? Yeah, I'm kind of obsessed. It's like my not computer thing to do.
Starting point is 00:56:06 Where do you live at again? I live just outside of London. A lot of good trails there, right? Kinda. I mean, the UK is a bit mixed. Is it always raining? It rains a lot. We can ride in the mud, though. We can't ride in the mud around here. I mean, it's... It sucks, but I like it. Yeah, I mean,
Starting point is 00:56:22 motorcycles in the rain, they're still fun, it's it's very different and it's like more dangerous so yeah okay a little sidetracked there i wanted to check that because i thought i heard you say motorbikes or mountain bikes i wasn't sure which one so for other people who are into motorbikes which i'm not i'm asking this for them what what motorbike do you have like is it awesome husqvarna 701 Supermoto. Okay. Husqvarna I'm aware of because they make very good riding lawnmowers around these parts.
Starting point is 00:56:51 And chainsaws apparently. Yes. Chainsaws too. And they're all just three numbers. So you don't know what you're getting. It could be a chainsaw. It could be a sewing machine. It could be a motorbike.
Starting point is 00:56:59 It could be a sewing machine. Do they make sewing machines too? They do. I found that out recently too. That's hilarious. Yeah. You never know until the box shows up and you're like, that's too small for a motorbike. It looks like a sewing machine.
Starting point is 00:57:11 What do you think the possibility is with A2N? What do you think you might be going towards? I know this is early days, six weeks full time at least. But what's the big dream? I think the big dream is to kind of hit all the use cases right like i want power users to love using it because it's it's customizable it lets them get what they want out of it i would love it if people who are less comfortable in the command line and kind of freak out and are a bit scared feel so much more confident
Starting point is 00:57:41 using it and i would love for you know teams and organizations to be using it just to accelerate their productivity, to make sure everyone's got the right setup on their machines, and to make sure that sort of the shell that hasn't changed for a really long time is heading in the right direction, I guess. You mentioned, I guess, Warp to some degree. A lot of folks use Terminal app on Mac
Starting point is 00:58:03 or pick your Terminal flavor on linux i'm not even sure i don't use linux desktop so i can't say for sure it's still not the year of linux desktop so there you go maybe next year maybe next year it's always next year it's always it's always next year like how does h1 fit into the world of like, for example, where they want to supercharge or be the chairman of the future? And they're trying to, there's even our friends at, not Bubble Tea, but what's their name, Jared? Charm. Charm, yes. Like y'all are sort of like all wanting to improve, you know, the command line, you know, one organization project dream at a time. And I feel like there's
Starting point is 00:58:46 a version of you all that come together and just like coalesce into a great symphony or something like that. How does it work with the warps and the non-warps and the things that sort of add things? Is it challenging to work around those things to, like you mentioned, it doesn't work right. Describe that. Yeah. I mean, I guess it's different challenges. Warp are in a nice place where they control the sandbox. You know, everyone's using their terminal. They've got the whole thing from the bottom up. And the downsides there are that they have to convince someone to download and use a new terminal, which I don't know anyone there, but I imagine they struggle with that. Whereas the challenges that we have are a little bit different in that,
Starting point is 00:59:23 you know, you don't, the friction to get started with a 2N is quite low. It's just a plugin to install into what you already have. But the flip side there is that the number of things it can conflict with and the number of different setups people have is like huge. And I didn't realize when I started this, the number of weird, very weird installs some people would have, like some strange terminal on Windows that when you're SSHed into a different machine and have three specific plugins, it doesn't work. And it's like, well, great. I never really envisioned someone would do that.
Starting point is 00:59:55 But let's see how we can sort that out. Yeah, I'm not sure that answers the question. Well, I think just mapping around the, I guess, the land of Terminal, which is like the Wild Wild West in a lot of ways. There's no right way or wrong way. It's just the way, you know, and there is no, there's no way to determine this random SSH session into on Windows that has these three plugins. Like you just can't predict that, right? Exactly. So I think there's like, you know, somewhere in the middle where everything converges and that's where the answer is. But we'll see.
Starting point is 01:00:27 So you don't need much money. So I'm guessing you haven't raised any money or have decided to take on investment. Or do you have a posse? Do you have folks behind you rooting for you? You have fans, I know that, because they hit us up on the socials. And they're like hey it's awesome the support's been amazing actually i didn't really realize that many people
Starting point is 01:00:50 cared that much um so that's been lovely especially on mastodon lots of people are like what on mastodon why where and like every time i post about it there i get loads of nice feedback and loads of support so that's lovely thank you to anyone listening to this. I think funding wise, no, I don't have any funding. Sort of consider a little bit of angel money at the moment, maybe. But again, I don't need loads of money right now. The most expensive thing is my time and I'm good with that for now. I guess I'm not ruling it out for the future, but it's not a thing in the present. I don't think like if someone gave me $2 million tomorrow, pretty much the only thing I could do with it is hire people. And I don't think that's
Starting point is 01:01:31 like the right thing right now. I think it would be the wrong incentives at this point. Sure. Is there anybody else working on it with you? Not full time, not like this. There's a lot of open source contributors who are amazing, and I really appreciate them all. It kind of varies. There's some regular contributors and some of them have their special sort of interest areas of what they like to work on. And there's a lot of drive by contributors too. So someone will have something that annoys them and then they'll come and fix it and then vanish. I post everyone a sticker. So, I mean, I know it's not going to show up for the audio but i got one of these and every turtle with a wizard hat on it's got a wizard hat on and it's sparkly so everyone
Starting point is 01:02:10 who contributes shell is kind of a gem or something exactly uh it's like a magic shell um so anyone that wants one i'll ship them out that nice yeah i like that uh mascot what's the name at a to an atuan that doesn't have a name um probably not no like what does the two and mean why did you pick that name oh um my favorite book series is the sort of terry pratchett disc world universe i don't know if you're familiar with it um the premise it kind of comes from a lot of the the premise is that there's like a giant turtle in space and flying swimming around he has four elephants on his back and then the premise is that there's like a giant turtle in space and flying swimming around he has four elephants on his back and then the world is like a flat disc on the back of the
Starting point is 01:02:50 elephants it's kind of like a wacky fantasy series okay oh yes and um the name of that turtle is the great atuan uh kind of came from there it's been like adjusted slightly but the concept comes from like a lot of old religion and mythology of like the world turtle gotcha interesting the world turtle the magical shell yeah i've heard some people say i'm not sure what the context was but like we're all just on a world on a turtle's back flying through space or something like that i've heard that at least somewhere in a geek land of some sort i'm not sure which there's a big intersection between computer nerds and Terry Pratchett fans. That makes sense.
Starting point is 01:03:30 Okay. Is there a tie-in to Turtles All the Way Down from that or no? No, but it is fitting. I mean, there might be, but not that I'm aware of. I mean, the synapse is connected in my brain, but I don't know. I don't know the history of the phrase Turtles All the Way Down well enough, but I just figured, you know, nerds and turtles there you go nerds and turtles well does the mascot the the icon does it have a name no it does not i've been debating i suggest the name okay for it shelly i like that actually that's cute yeah yeah maybe it's shelly
Starting point is 01:04:02 shelly that's a pun and it's good that's a good that's a good pun yeah i would dig it that's cute yeah yeah maybe it's shelly belly that's a pun and it's good that's a good that's a good pun yeah i would dig it that's almost as good as my tnt tie-in from so good yeah but not so good so bad it was good i like shelly that's actually good good that's good good that's not bad good that's good good so ellie which rhymes with shelly that's true by the way in case you didn't notice. How can we help? How can the Chainsaw community, our listeners, fellow nerds, terminal junkies, Adam and I, I'm rooting for you. I think it's really cool. I hope you make it even cooler and that you can do this as long as you want to.
Starting point is 01:04:40 So how can we help? How can we get involved? What would help you? I mean, even just being here and sharing it is huge. So I think if anyone who wants to help out could check it out, give it a try. Let me know what you think. All feedback's good, even if it's not obviously positive. Sharing it with people you think might be interested is also great. So this is spread pretty much entirely through word of mouth. So continuing that would be fantastic. But no, just more of the same. It's fantastic. Thank you so much. Adam, any final thoughts or lines of questioning? Not necessarily. I think, um, I think the trust factor is like you got registered, like in the whole happy path of getting started is all registering. And I think there's an analogy
Starting point is 01:05:23 initially, like even withared and when we first talked to zach lloyd with warp we talked to him twice now on the podcast it was like we don't want to have to register to use the terminal and i get it i understand all the superpowers you get from doing it and i get that we can trust you i understand all that i think just generally hackers are like i would rather not so i'd like a more squeaky or i guess a more smooth path to the non-registered version to sort of get a win early on and let the the trust be earned over the usage of the tool like that would be feedback for me because that's that would be my hurdle really and i know this isn't feedback time but that's my one thought after talking to you and know what
Starting point is 01:06:04 the tool is and what it can do. That's, I think, probably a hurdle you're having to deal with. And the server is awesome, but I don't think somebody's going to stamp a server just to bifurcate the option to trust you. I think it's just going to be like, let's just figure out how to get to a win with it without having to do the whole
Starting point is 01:06:22 let me put it in your cloud kind of thing or whatever. However that looks. Well, what's the third option? So if they're not going to run their own server and you don't want them to register, what could Ellie do? Well, you don't have to, right? You can just sync it locally.
Starting point is 01:06:35 Isn't it local if you don't register? Yeah, you can use it offline. It won't sync, but it's still useful. That's the core feature that it offers, Adam. Well, you get the usage of the tool. I think that's what's cool for me. It's like, well, okay, now that I see this tool is cool and how I can use it in this one single environment,
Starting point is 01:06:49 I know I want it over there too and over here too. And now I actually want to opt in to sync later on. Give me the tool and its usefulness and let sync be a superpower that I sought after, after I trust you, you know? Because I don't need to have syncing to enjoy stats immediately as an example that was my hurdle here in the call was i just couldn't share that with you all because
Starting point is 01:07:11 right i have my issues and i'll go back and fix that and that's not your problem but i think ultimately you may have the loss of somebody's attention in that moment if they just like i can't figure it out it's not that big of a deal to me, let me move on. I think over time there'll be a challenge. Yeah, maybe if you started with the stats and the history, the actual control R replacement as part of this setup that you're working on, and at the end of the setup was now the sync option, which requires either self-host or log in right now, register.
Starting point is 01:07:42 I could see that, because i think i would potentially download it and use it to get to the stats and just to replace control r if that was obvious and good enough for me to be like oh i'd love to control i love control r on steroids or whatever way you you know are able to pitch that because i realize the steroids have also bad effects on the body so maybe not the best it's called on strawberries. Strawberries are great for you. They give you energy. Oh, on strawberries. Yeah.
Starting point is 01:08:08 Antioxidants. Amazing for you. Great for your skin. All right. So control R on strawberries plus the history, the stats, might get me to install it. And then, by the way, sync. Oh, wow.
Starting point is 01:08:20 Yeah. So I can see what you're saying there, Adam. Yeah. But I think as you build out your developer environment, synced everywhere thing, a lot of people are going to come for that exact reason. And they're going to go straight for it. For sure.
Starting point is 01:08:33 Because I think we understand that a sync requires some sort of quote-unquote cloud computer. You know, like somewhere that's not our computer. And so either registering or hosting your own server makes complete sense. Definitely. Thank you. No, I'll bear that in mind. with warp it was like it's a terminal i don't want to have to sign up and sign in to use a terminal but like it's a sync service this is it becomes a sync service so i get the the reason but i agree for sure thank you i think i'll do something like
Starting point is 01:09:01 that for the like sort of handholding setup to me. Maybe. Yeah. But I dig it. I'm excited for you. I think Shelly is a hit. Turtle in the back. You know, the world's on a turtle's back flying through space. How do we get some of those stickers?
Starting point is 01:09:15 Yeah. Let's get some stickers out there. If you send me your address after this, I'll send you some. Fantastic. All right. All right. It's been fun. Thanks, Ellie.
Starting point is 01:09:25 Yeah, it's been great. Thank you so much. It took me a minute, but I finally put my finger on what the name Atuin was reminding me of throughout this conversation. Cue Grand Moff Tarkin. I grow tired of asking this, so it'll be the last time. Where is the rebel base? Dantooine.
Starting point is 01:09:52 They're on Dantooine. Do you hear the resemblance? Just me? I don't know. Somehow, everything reminds me of Star Wars. Okay, so I've been using a 2N for a while now, and I don't think I'm ever going back to the old built-in control R style. It's just too good. And even though I primarily use a single machine, I love the idea of eventually using this to bootstrap my future shell environments. What about you? Are you a long-time 2N user who is excited we finally had Ellie on the pod?
Starting point is 01:10:20 Or is this your first time hearing about it? Let us know in the comments. We'd love to hear from you. There's a link in your show notes or pop in our community Slack. There's great conversations going on in there and it's totally free. Get yourself an invite at changelog.com slash community. Thanks once again to our partners at fly.io to our friends at Sentry, who will give you a hundred bucks off their team plan. if you use code CHANGELOG when you sign up and to Breakmaster Cylinder for beat-freaking-for-us all these years.
Starting point is 01:10:49 Coming up next, homebrew maintainer Mike McQuaid is back on Changelog and Friends. We talk about social media, of course, the Apple Vision Pro, of course, Elon Musk, of course, homebrew, and Workbrew, Mike's new business that's building the missing features And providing support for companies using Homebrew Plus a few surprises along the way I think you'll dig it, it was a real fun one Alright, that's all for now, thanks for listening If you dig this show, share it with your friends
Starting point is 01:11:18 And if you really dig it, hook us up with a 5 star review And if you really, really dig it, consider supporting our work with a changelog++ membership. I hear it's better. That's what people tell me, at least. It is better. It's been better for years. Okay, I'm done for real now. We'll talk to you again on Friday. Thank you. Outro Music

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