Podchaser Logo
Home
Making shell history magical with Atuin (Interview)

Making shell history magical with Atuin (Interview)

Released Wednesday, 21st February 2024
Good episode? Give it some love!
Making shell history magical with Atuin (Interview)

Making shell history magical with Atuin (Interview)

Making shell history magical with Atuin (Interview)

Making shell history magical with Atuin (Interview)

Wednesday, 21st February 2024
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:10

What? Else.

0:14

Welcome friends your listening to the

0:17

Change Log Conversations with the hackers,

0:19

the leaders and the innovators of

0:21

the software world. Today we bring

0:24

you Ellie Huxtable, the creator of

0:26

a magical open source tool for

0:28

seem keen searching and backing up

0:31

your shell history. Oh and have

0:33

you heard our Ship It Podcast

0:36

is back? Baby New hosts, same

0:38

change log goodness. Get over the

0:40

reboot. Listen at Ship It.show big

0:43

various to our partners. At

0:45

Flight Io, the home of

0:47

Change log.com easily launch your

0:49

apps close to your users

0:51

all around the world by

0:53

now. How at Fi.i Oh

0:55

okay l huxtable on the

0:57

change log. Let's do it.

1:09

Will. Friends. I have some good news

1:11

for you. It is Launch Week once

1:13

again for Century and I'm here with

1:16

Rahul Job Ria from the Prime team

1:18

at Century so Ravel! Can you tell

1:20

me about the launch read this year

1:22

for Century in March or a huge

1:24

investment into our product by for which

1:27

I'm bigger, faster, better a November we

1:29

shared a sneak peek about or new

1:31

metrics offer it. For now, developers really

1:33

define custom metrics they care about a

1:35

monitor how quickly their apples responding to

1:38

that is as measured by. After be

1:40

accountable for Plus Also right because my experiences

1:42

that are committed to an hour to be

1:44

real one an alpha people can sign up

1:46

your access I will turn off for them

1:48

like when the couple days once they write

1:50

in any can get going right away. travel

1:52

or it's like we are looking more at

1:55

how do we make the products martyr. Now

1:57

I know the world is talking about Ai

1:59

and Ml. There also are solving we think

2:01

like entertaining problems. Super center seeking a more

2:03

thoughtful approach to it. We're trying to go.

2:05

what is a developer trying to didn't like?

2:07

Our goal is not to have he said

2:09

central to our both not have as a

2:11

few tablets you need keep open or goal

2:13

is to have this be a tabby open

2:16

when something is wrong to be the information

2:18

you need right away. Tell you how impactful

2:20

is your user base and if easy chair

2:22

and if he is on bc care about

2:24

here's how to fix it. So we're taking

2:26

a broader look at how developers use a

2:28

product. Where is the noise? They're. Seeing like

2:30

seeing repeat events are they seeing like things

2:32

that are not critical rice the top and

2:35

haft automatic to resolve. the bird my the

2:37

tsunami central of smarter with artificial intelligence. To

2:39

give you a more prioritized you are the

2:41

issues that really matter. seek and solving quickly

2:44

and move on and not be distracted by

2:46

random rates. Clicks that are you know just

2:48

goes to she's Those are two major things

2:50

coming out of, like thinking about more like

2:53

to find an emergency care about have suffered

2:55

in always like organizer issues to developers who

2:57

actually saw this false faster and the we're

2:59

also. Working on a few features for our

3:02

mobile developers like centuries, a platform that works

3:04

by any technology was there. For mobile developers

3:06

there's always been this site wait a second

3:08

there was an air for hold on a

3:10

good the of this device and see if

3:12

I can recreate it. I carry created a

3:14

kilometer like the stack Trace my gets his

3:16

desk me something they'll just fix it for

3:18

Shirley's and hopefully those ballot because it's go

3:20

up and across a user it's go out

3:22

But this was solidly this idea like I

3:24

still need to figure out like where does

3:26

that bag of used old devices for someone

3:28

running insults I was thirteen. On an I

3:31

phone eleven somewhere. So we're giving them

3:33

the ability where preteen ability for mobile

3:35

developers taxi see what happens on an

3:37

end user session. So that way there's

3:39

no question about the problem or the

3:42

latency issue and building up more performance

3:44

capabilities. Latency? Exactly how faster Office with

3:46

one thousand and three de Fazer with

3:48

my are talking about. Aside from core

3:50

platform announcements and integrations and cool partner

3:53

says we're working with guess the big

3:55

investment and machine learning are percent of

3:57

okay since you must be happens more

3:59

to. 18th to the 22nd. Check the

4:01

show notes for a link to the launch

4:03

week page. We'll be showing off new features,

4:05

products. You can tune into their YouTube channel

4:07

or Discord daily at 9 a.m. Pacific

4:10

Standard Time. You can delete a scoop

4:12

or if you want to get swag

4:15

along the way, enter your email address

4:17

at the page. We'll link up to

4:19

get swag all along the way. Or

4:22

join the Discord, whatever

4:24

works for you. edessentry.io.

4:26

That's s-e-n-t-r-y.io I'm

4:29

sure the link is up somewhere. Or check the show notes

4:31

for a link. While you're at it, use

4:33

the code CHANGELOG to get a hundred bucks

4:36

off a team plan. Again, use the code

4:38

CHANGELOG. Go to century.io You

4:58

can find the link in the description. You

5:00

can find the link in the description. You

5:02

can find the link in the description. Hello,

5:07

we are here with Ellie Huestable, creator

5:09

of A2N. Ellie, welcome.

5:12

Hi, happy to be here. Happy to have

5:14

you. This is a really cool tool. This

5:17

is one of those tools that you

5:19

use and you're like, where have you been all

5:21

my life? Tool? I didn't know I needed

5:23

you. And in fact,

5:26

I didn't even know this entire subset

5:28

of things, of shell history, was

5:30

so powerful until last summer when we

5:32

did a show about the Linux command

5:34

line. And I confessed on that show

5:37

that I had just learned control R

5:39

after multiple decades

5:42

of Linux use. I

5:44

had never known about control R. And after

5:46

that show came out, I had a few people

5:48

on Mathadon say, you have to

5:51

check out A2N. It's like control R

5:53

on steroids or control R on with

5:55

levels up. I don't know. I can't remember exactly

5:57

what they said. And I checked it out and indeed it was...

5:59

It was awesome, we put that on changelog news and

6:02

multiple people found it and thought it

6:04

was cool and then a few

6:06

months later you announced you're working on it full time

6:08

and I thought, we gotta talk to

6:10

Ellie. In fact, Adam, you also linked this up

6:12

to me privately. Like, should we talk about this?

6:14

Yeah. And I was like, we already

6:17

booked it. I was like, that's the best day ever, really.

6:19

Whenever I suggest something like that,

6:21

already done. Yeah, so we're

6:23

super excited to have you. Let's open up

6:25

with A2N, what it is, and

6:28

why you built it. Yeah,

6:30

sure, so you've kind of covered it quite well, but firstly,

6:33

A2N replaces control

6:35

R, provides like a nicer search

6:37

interface for your command history, but

6:40

it goes a little bit further than that. So

6:42

there's a few similar tools that make control R

6:44

nicer, like FZF, a lot of people use. But

6:47

the main sort of this killer feature, I guess,

6:49

is that it lets you sync the shell history

6:51

you have between N different

6:54

machines. I started this because

6:56

I had the problem myself kind of scratching

6:58

my own itch. I had this really long

7:00

command that I regularly used at work that

7:02

was suddenly useful at home as well. But

7:04

my work laptop was like the other side

7:06

of the room, closed, locked, whatever. And

7:09

I couldn't quite remember how to do it

7:11

exactly. So I had to go and like boot the

7:13

machine up, login, copy paste it across, and it was

7:15

really long winded. And I

7:17

actually didn't really want to make a new tool.

7:19

I kind of assumed someone would have solved this

7:21

problem already, but I couldn't find anything. So went

7:24

from there and I had a little bit of

7:26

time off work for some reasons. And I kind

7:28

of polished up a GitHub read me, put it

7:30

online and forgot about it for a little while.

7:32

But it turns out a lot of people had

7:35

the same problem too. So it grew from that.

7:37

I think I have that problem as well. I

7:40

do a lot of homelabbing, so not a lot of production work

7:42

really. And a lot of my machines

7:44

are ephemeral because they're VMs. So I will like be

7:46

embedded and do things and test out. And like that

7:49

command history just like stuck in that machine that just

7:51

now not even real.

7:53

It's just back to digital

7:55

dust on the disk again. So the command

7:57

history is there, not with me.

8:00

Now I'm also a user of

8:02

warp which does supplant some of that and

8:04

I thought well This is sort of like an interesting thing

8:07

like does warp use something like this behind the scenes How

8:10

does this work with you know that kind

8:12

of terminal because warp is doing some smarts

8:14

there and keeping some of that history I

8:16

don't know how it works, but it does work

8:19

to some degree but not always Perfect

8:22

long history. So I imagine that a twin is a little

8:24

bit better than that Yeah I mean from what I know

8:26

of warp they're doing a lot of different things shell

8:28

history there as far as I know it's not synchronized

8:31

and The kind of frustrating

8:33

thing right now is that a two and doesn't

8:35

work on warp They're like key binding stuffs not

8:37

customizable completely as far as I know But yeah,

8:39

there's a comparison to be made but the main

8:41

goal with a two and I guess is to

8:43

run in as many places As possible. I actually

8:45

heard from someone that it runs on their phone

8:47

And I only knew this because they were complaining about

8:49

compile times on phones being quite high. I was like,

8:52

sorry what? It runs on phones So

8:54

that's pretty cool. Are they using Terminus

8:57

what are they using? Did you know what app they

8:59

were using on the phone? So it's off in my

9:01

head I think it's like term oxal or something like

9:03

that. Yeah, the one I'm using is called. I

9:06

think it's called termus Yeah termus.

9:08

Yeah, T-e-r-m-i-u-s really cool. I

9:10

like it Well, I'm not

9:12

using warp because they do

9:14

not yet support tmux. No, they

9:16

get there. I will Continue

9:19

not to use it but excited

9:21

about that I've actually had

9:24

this problem inside of tmux even I think this is

9:26

fixable with a config where

9:28

I'd have multiple tmux sessions and

9:30

even they would not share their history between

9:32

the two sessions and At

9:35

some point I found a way of fixing that particular thing

9:37

to have those shared But it was kind

9:40

of a pain and a to and

9:42

will solve that I assume as well even

9:44

on the same machine between sessions Right. Yeah,

9:46

it does That's actually something a lot of users say

9:49

there there is for most shells some config you

9:51

can do to make sure That it is all the

9:53

sessions are shared, but it's not

9:55

usually the default and it even just does

9:57

that automatically So open

9:59

source You know brew

10:01

install or app get

10:03

or actually you have a knife You know

10:05

if you're cool with curling and piping into

10:07

bash or whatever Ellie will

10:09

take care of you and just figure out

10:11

what system you're on and what particular

10:15

Shell you're running whether it's bash, you know

10:17

the shell etc and get it all

10:19

installed. Of course, you can do it manually but

10:23

Sink, you know immediately I

10:25

hear sink and I think service right

10:27

and so this I guess leads

10:29

into the bigger conversation around The

10:31

sink service because that's kind of a core aspect

10:34

of what a twin does for you

10:36

in addition to just a better UI

10:38

around finding and navigating and executing your

10:41

history but Immediately,

10:43

it's like login, you know Because

10:46

the sink service is there and I wouldn't have

10:48

and did it with a little trepidation now Your

10:50

docs are nice and you say right up front

10:52

end-to-end encrypted. So, you know, everything's safe here,

10:55

but That's gonna be a

10:58

core thing of what you're you're doing and

11:00

you're doing for an open source project now You

11:02

want to talk more about the sink side of things? Yeah,

11:04

so you said you were a

11:07

bit hesitant, right? And yeah, trust is like

11:09

super important. So then to end encryption was

11:11

a definite requirement from the

11:13

very beginning It did make

11:15

a lot of development very frustrating because like

11:17

key sharing key management All of this stuff is

11:19

just not that easy. There's also

11:21

two sides to that I guess

11:23

because users don't want to give me their shell

11:26

history if it's not encrypted But I also don't want

11:28

I think right now we've got like 70 million

11:30

lines of history on the server and I don't

11:32

want that not encrypted because Like all of the

11:34

API keys all of the credentials all of the stuff

11:36

that you shouldn't paste into your shell But lots of

11:38

people do it's just gonna be sat there and that

11:41

would make me a huge target as well So

11:43

it's kind of best for everyone the idea with the

11:45

sink service as it's all encrypted Pretty

11:47

much just a dumb blob store it sinks

11:49

encrypted data that data can be shell history

11:51

in this case it is But it doesn't

11:53

really have to be it's just small little

11:55

bits of information There's a

11:58

very tiny amount of metadata that we think

12:00

as well just in order to make the

12:02

sync work, mostly just timestamps and host names.

12:05

The host names are hashed just as long as they're different.

12:07

But yeah, it's actually very simple. I'm giving a

12:10

really in-depth tech talk about it next month, which

12:12

I'm looking forward to. But yeah. I

12:15

guess sync is required to use

12:17

A2N? Sync isn't

12:19

required. So you don't have to sign in, you

12:22

don't have to register. You can just use it

12:24

locally if you want to as like

12:26

a better search interface. If the

12:28

fact that it's encrypted still isn't enough for you

12:30

to trust me, you can go ahead and host

12:32

your own. So there's a Docker image, there's some

12:35

documentation on how to get it running. There's a

12:37

Helm chart as well. I know there's quite a

12:39

lot of people that sell host. I normally get

12:41

like questions and stuff about it most days. So

12:43

I've tried to make sure there's options there for

12:45

whatever your risk tolerance is, I guess. What's

12:48

it all written in? Can you tell us how

12:50

it works and all that, Chas? Like not the

12:52

full tech talk, but like the quick tech talk.

12:54

The teaser. Yes. So it's all in Rust. Back

12:56

when I started, my Rust was like, I've done

12:58

it on and off for years. I never had

13:00

a job writing Rust. So it was only when

13:02

I had the energy for side projects. And at

13:04

the time I was working in Go and

13:07

the idea of like doing more Go after writing

13:09

Go all day wasn't really something I

13:11

wanted to do. And I think one of

13:13

the biggest selling points of Rust, which maybe isn't

13:16

included in all of the Go versus Rust blog

13:18

posts is that Rust is just really fun. There's

13:20

loads of different ways of doing things. When it

13:22

all works, you sort of feel quite satisfied about

13:24

it. And it's just like a sense of satisfaction.

13:26

I don't think it's there with a lot of other languages. So

13:29

that was a big selling point for me. I've never

13:31

heard that one. I've heard a lot

13:33

of Rust enthusiasts and enthusiasm. I've

13:35

heard some comparisons, of course, hosting, not

13:37

hosting, but producing a Go time

13:39

podcast. Rust comes up a lot on

13:42

that and certain Gofers are excited and

13:44

other ones are dreading Rust or,

13:46

you know, combating it. And

13:49

I've heard Rust hard to learn

13:51

and sometimes complicated,

13:53

but worth it. I've never

13:55

heard fun. Never heard that. So

13:58

satisfying, I think is the keyword you use.

14:00

there. What's so satisfying about it? I

14:02

think especially in the early days, the

14:04

compiler shouts at you a lot. It's

14:07

actually very friendly. If you're new, don't be scared by

14:09

me saying shouting. It's super friendly. But there's a lot

14:11

of things you can do slightly wrong. There'll be a

14:13

lot of borrow checker errors, all these things.

14:16

When you first get to the point where you can

14:18

write a bunch of code and then there's not

14:20

really very many errors to fix, that's

14:23

a big point of satisfaction. There's

14:25

also quite a lot of functional

14:28

programming inspired functionality, so

14:31

maps and filters, all this stuff. When

14:33

you first get to the point where you're like, hang

14:35

on this big if else chain can

14:38

be written as some pattern matching and some

14:40

combinators and stuff, that also feels really nice.

14:42

I guess it makes you feel a little

14:44

bit smart, which people like. Now

14:47

you're speaking my language. I love good functional

14:49

tooling in a language or a standard library.

14:52

I think it's kind of the opposite to Go there.

14:54

Like Go is obviously intentionally very simple and Rust is

14:56

kind of the opposite, I guess, in a lot of

14:58

ways. Well said, well said. You wrote

15:00

it in Rust because this was a side project. This was

15:02

just something that you were doing to scratch an itch and

15:05

people liked it. If you look at

15:07

these stars on the GitHub star watch

15:09

thing embedded in the readme, it was

15:12

kind of slow and steady and then eventually

15:14

there were a few inflection points. How

15:16

did people find it? Did you get the word out on

15:18

your own? Did you slap up a website? Talk to us

15:20

about the boring kind of

15:23

branding and marketing side of open source. Yeah,

15:25

I think at first I just put it

15:27

on Twitter and I had a

15:29

decent number of retweets. I wouldn't say it

15:31

went viral or anything, but that got me

15:33

my first slow

15:35

momentum. The inflection points

15:37

you mentioned were mostly Hacker

15:39

News and Reddit. I tried posting on Hacker

15:42

News myself a few times and it just

15:44

never really picked up. It's always been when

15:46

other people post it. There's one inflection point

15:49

from last year in May where I was actually on holiday

15:51

and that morning I was meant to be going on this

15:53

big trip and I woke up and my phone was going

15:55

crazy and I was like, what's going on here? So I

15:57

was like in the car replying to comments and stuff. That

16:00

was really cool. I think a

16:02

lot of the marketing is down to just

16:05

having a read me that's very clear as to

16:07

what it is that makes a lot of sense.

16:10

Having a nice logo and stuff can

16:12

be very helpful. I tried to make

16:14

the install very, very straightforward. So the

16:16

curl to bash you mentioned earlier, literally

16:19

just calls your package manager for you

16:21

and add something to your ZSH or

16:23

whatever config file. So kind of

16:25

the friction for people giving it a try

16:27

is very low. So that helps a lot. I

16:29

think a lot of it's also just luck. It was

16:31

like the right thing at the right time that had, you

16:34

know, it was a need a lot of people had

16:36

and it turned out. One other thing that

16:38

really helps. I gave a talk at Fuzzdam that

16:40

wasn't really intended as marketing. It was more like

16:42

I wanted to give a talk and I had

16:44

this project. So it was a easy fit that

16:46

helped a lot. A lot of people shared it. A lot of people have

16:49

told me they saw my talk. So that was really helpful to. How

16:51

many people suggest this is a problem?

16:54

Like how many people really want their shell history

16:56

to just go with them? I

16:58

guess this is a pervasive issue with developers

17:01

at large. I think it's a

17:03

very almost bimodal problem because

17:05

I've heard some people just say

17:07

to me, like, why would I want that? I don't get

17:09

it. This is like not something

17:11

I need. I've had a lot of

17:13

people almost say what you said earlier

17:15

and like, wow, where's this been? I

17:18

guess there's been users sort of tell

17:20

me that they've been manually keeping their

17:22

bash history file over the

17:24

last 10 years and having something

17:26

automated. Really helps them out. And

17:29

I think there's a lot of people who never

17:31

really realized the value of their shell

17:33

history and having something long-term until they've

17:35

had tools that make it easier because

17:37

most people might use the default setup

17:39

where not very much history is maintained.

17:41

It's not shared across sessions, like that

17:43

kind of thing. So. I

17:47

think you don't need it until you know you need

17:49

it because you're like. Trying

17:51

to do some stuff like you did where you had a

17:53

command on your work laptop and it's like, I'm not going

17:55

to remember that. Maybe I'll throw it in docs somewhere. Maybe

17:57

that's the easy way to sort of move some things around.

18:00

Which I do that as well, but at

18:02

the same time like your your history in

18:04

some cases like muscle memory if

18:06

you could like easy search it and find

18:09

a ZFS command or The

18:12

there's a docker PS command

18:15

I run it like just has like a

18:17

nice formatting that doesn't do that like which

18:19

machines on this machine are running docker and

18:22

How many instances are there? It's just like a

18:24

prettier format that I've? carboculted

18:26

essentially around that it is just now part

18:28

of my history and then when it's not

18:31

I bring it back in but having this it's like

18:33

well I don't ever have to lose that history ever

18:35

again Plus with the nature of

18:37

the terminal the more you use it the

18:39

more you kind of Scrap

18:42

together you know longer

18:44

and longer commands over time that

18:46

do something very specific and

18:48

then not need that For a very long

18:50

time yeah I found and then six months

18:52

eight months two years later, and you're like I've

18:55

done this before and I can't remember exactly what

18:57

I did, but I know I Called

18:59

cut at some point you know or like some

19:02

Terminal command is in there And

19:04

if I can just type in cut and look at

19:06

all the I don't cut very often But if I

19:08

have the history you know I can remember a cut

19:10

I can look at the seven times I use cut

19:12

and one of them you'll see like there it is

19:14

right there And you just save yourself

19:16

so much time being able to just call you know Remember

19:19

that without having to remember it it

19:21

really is a time saver and

19:24

I got sold on you know setting your history

19:26

to like a Good

19:28

million or whatever is it infinity? I don't

19:30

know it's a many Ellie you probably know

19:33

how this works better than we do Is

19:35

there like a maximum history size histo size? I

19:37

think might be the yeah, it's his size I

19:39

always used to just spam a bunch of numbers

19:41

until I thought that was probably enough Pretty

19:45

much like how large is my disc you

19:47

know yeah Yeah, I had this one command

19:49

back in my you know more tried and

19:51

true Ruby days whenever I would blow

19:53

away gems It was

19:55

a for loop that is now on a

19:58

Mac that doesn't exist for me And

20:00

if I wanted to, like you said, recall

20:02

that command, like it's just gone. It's not

20:04

part of this new environment. Maybe

20:07

I'm running Jekyll and I want to, you

20:09

know, blow away the gems and do something

20:12

different. Now I don't have that for loop readily

20:14

available. I could probably Google it. Maybe

20:16

there's a gist out there where I like stuck it

20:18

in a gist on GitHub somewhere from back in the

20:20

day, which is how we used to sort of like

20:22

stow away some ideas and kind of share them too.

20:26

But, you know, now if I wanted to do that

20:28

for loop, I'd probably just be like, like

20:30

you, I don't know how I did it. You

20:32

know, forget it. I find as well that as

20:34

time goes on, the number of sort of original

20:37

commands you write goes down. Like even if

20:39

you were recalling something from three, four years ago,

20:41

like you've written it before and having that history

20:43

means that like, the longer you have

20:45

it for, the less time you spend typing and that sort

20:47

of compounds over time. For sure. It's

20:50

like, maybe there's a saying like command

20:52

line, I don't know what prompts, commands

20:55

are code too, you know, like.

20:57

For sure. I don't know, maybe

20:59

that translates here because like you kind of want to

21:01

keep it in a way and it's not quite code

21:03

you write and gets stored. It's

21:05

history. Well, the entire website

21:07

is dedicated to awesome command lines, right? Like

21:10

commandlinefu.com. I'm not sure

21:12

if it's still active, but I used to go there

21:14

and just read other people's command lines and be able

21:16

to learn what I can do. Ellie,

21:19

your statement about reusing

21:21

the same commands over time rings

21:23

true because one of the coolest things about A2N

21:26

is the stats subcommand. It

21:29

has stats built into it. And

21:31

so you can get a top list of

21:33

your commands and also list out total commands

21:35

and unique commands. And I have in

21:38

mine 15,000 total command history, which

21:41

I just installed it and then loaded

21:43

my history into it, 15,511. I

21:46

wonder if my hist size is 15,000 or something like

21:48

that. Or if that's just really how many

21:50

commands I've done in my days, at least

21:52

on this computer. And of those, 15,500, 4,800 are unique.

21:59

So what does that mean? Something like that.

22:01

Something like repeating myself quite a bit. You

22:03

know? Like two out of three commands is not

22:05

unique. I think that's right. That's top of the head

22:07

mass. Here's the moment where I

22:09

come off later sounding like an idiot, Ellie. Like, well, this math is awful.

22:13

But the point stands. Lots of repeat

22:15

commands in there, you know? Oh,

22:17

it's fine. We've got a channel on the Discord where people

22:19

share that sort of a two in stats output.

22:22

And the number of times it's CD

22:24

or LS at the top is huge.

22:27

Yeah, I got CD at number one as well. What

22:29

else do you do? Mix. I

22:32

run mix a lot. So I'm an elixirist. So I run mix.

22:34

Sure. Which is usually just mix test.

22:36

I just run mix test over and over again. Git

22:39

ST, which is Git status. That's my shorthand

22:41

for Git status. IEX,

22:43

which is also elixir. That's

22:46

starting the elixir shell. And

22:48

then Smug. What's Smug? Smug

22:50

is a Go-based tool

22:52

for managing TMUx sessions. So

22:55

you can define different TMUx sessions using

22:58

YAML or some sort of little config file format.

23:01

And you can use Smug to manage them. So

23:03

I can say Smug start change log and that

23:05

will launch a specific TMUx session with three terminals.

23:08

And this one runs that command. This goes to

23:10

this directory. This starts that command. And

23:13

then I can just switch between them quickly.

23:15

Because I have a few things that I do,

23:17

but that's about it. And so I use

23:19

Smug to just start that thing. So spend this

23:21

one, start that one. And it always is just set up

23:23

the way you like it. So I run that command a lot in

23:26

order to get into whatever it is that I'm up to. So that's

23:28

a cool one. It's based off

23:30

of, there's an old project in

23:32

Ruby called TMUXinator, which does the same

23:34

thing. And I think TMUXinator

23:37

either got unmaintained

23:40

or I got sick of having

23:42

to deal with Ruby with regards

23:44

to it. And I wanted a universal binary. And

23:47

Go is very good at that. And so

23:49

there's one called Smug in Go, which

23:51

I replaced it. And I think

23:54

it even uses the TMUXinator config format or something. So

23:56

it's like an easy switch. So that's my

23:58

top five. And then LS

24:00

on it coming to number six for

24:03

sure. That's kind of a cool tool

24:05

because getting started half the

24:07

battle right? I guess it creates that momentum.

24:09

There's no minutia to do no ceremony to

24:11

do so it's like what was

24:13

it smug change log that was it? It's

24:16

not a start change log. Yeah. Yep. And you're off

24:18

to the races because like hey, this is what my

24:20

environment is whenever I do this development and starting

24:23

is pretty easy. It's already set up for me.

24:25

It's pretty cool. I like that. So

24:29

LS, CD kind of boring. And

24:32

FG as well. You mentioned the

24:34

command Z thing earlier. So that's on there

24:37

for me. Get status

24:39

and lvim as well. So

24:41

lvim is basically neovim but it's

24:43

like a distribution. I had a neovim

24:45

setup I maintained for like years and

24:48

years. And I got to the point where

24:50

I was tired of constantly updating plugins. So

24:52

luenovim just has them all from the get

24:54

go. I would share

24:56

mine but I haven't trusted you yet. I'm

25:01

actually stuck. I was like let me trust

25:03

Ellie in a VM. And

25:05

so I use warp issh in this

25:07

VM. And the thing I

25:09

get whenever I do H1 status

25:12

is maybe you can help

25:14

me with this. It says

25:17

error could not fetch history.

25:19

I did import my history. And then

25:21

if I do a different stats,

25:24

for example, it says error failed to find

25:26

a two in session in the environment check

25:28

that you have correctly set up your shell.

25:30

Now use your command. This is

25:33

a boom two. I think it's

25:35

2304 potentially. And I

25:37

just use your command. I'm like yeah, I trust your bash

25:39

command. I'll just whatever you want to do on my machine

25:41

because this is a VM. I don't care, right? And that's

25:43

all I did. And then I was like, well, maybe, maybe

25:46

I missed that up somehow. And so

25:49

I did the import process to import

25:51

my zsh history. And thus

25:53

far, I only get errors whenever I do

25:55

a twin stats or history because there's nothing

25:57

there yet. We usually see that

25:59

error later. when the sort of

26:01

shell plugin half isn't properly installed. So

26:04

maybe it installed to a different

26:06

config file to the shell you're using, which

26:08

can happen sometimes depending on the setup. So

26:11

a two end session basically just tracks

26:13

like the current shell session. So we

26:15

track history per, even though they're all merged,

26:18

we also track the history per session. And

26:20

if it can't find that variable, it's not

26:22

being set by the shell integration. Would

26:25

that be my like ZSH file then? My RC file?

26:27

Yeah, it would be your ZSHRC. It

26:29

should be like a two end in it. Yeah,

26:32

I don't think it's in there then. So

26:34

that's probably my issue. Well, actually it's eval.

26:36

Yeah, there's an addition at the very bottom.

26:38

It's eval A2N and it ZSH. Doesn't

26:41

need to be a live debug here, but that was my

26:43

hurdle here. I was trusting in a VM. Okay. I was

26:45

trying my best to

26:47

protect my machine from Ellie at all

26:49

costs. Well, you wouldn't have your

26:51

history in there either then. Well, I actually did it

26:53

in a VM that I know I don't need anymore,

26:55

but does have some ZFS history. So I was like,

26:58

well, it's probably going to be a ZFS fine

27:01

tune command. It's like an older thing that... Retainted

27:03

man. Yeah, it's got some history in it. So

27:05

I was like, okay, I can use this. And

27:08

the VM has a backup yesterday. So I'm cool

27:10

with like, if this VM dies, I'll just like

27:12

blow it away and restore from a backup. That's

27:15

how Proxmos works. You know, it's pretty easy. Okay.

27:17

So I've got this issue. Maybe I'll try to

27:19

my Mac and I haven't gone deeper, but don't

27:22

feel bad. I do trust you. I

27:25

do trust you. Wait, if you don't, it's cool. You can write

27:27

it on your home lab too. That's true. Well, I

27:29

was trying to. That'd be a cool thing. Adam has

27:31

set it up on your home lab and run it.

27:33

Yeah, I actually like that idea a lot like running

27:35

your own server. I think it's super cool that you

27:37

offer that. I, you know, I did like a

27:40

lot of the install process. I can at least share some

27:42

of my thoughts on experience here, which was your thoughtfulness

27:45

in the messaging, I think is super cool.

27:47

Like you have the ASCII art going on

27:49

and you've got these very polite prompts. Detected

27:52

Linux checking distro Ubuntu detected. It

27:54

gives them all this details,

27:57

you know, all this different stuff. Runs.

28:00

AppGet update for me, which is super kind of

28:02

you to give me the latest repositories available. Super

28:04

kind. Yeah, super kind of you. And at the

28:06

very end, it does all its thing and it's

28:08

like, hey, thank you. And this is how you

28:10

can like use it and contribute and become

28:13

a part of the community, which I think is super important

28:15

for any tool that wants to be

28:17

adopted. Like tell me how to adopt, right? And you've

28:19

done that. So very, very well done on

28:21

that part of it, even though I've had this ZSH

28:24

eval issue. I'll figure it out. Sorry

28:27

about that. But no, thank you. It's, obviously I

28:29

don't know how many people click on the links

28:31

at the bottom of the installer, but I hope

28:33

that it does help to some

28:35

degree. Yeah. And you did give a prompt

28:37

with the next step too, which is A2N register

28:39

or A2N login. So you've already

28:41

done that. It is kind

28:43

of hard. I would say if I didn't go there

28:45

and do that, it would be kind of hard to

28:47

understand what the next steps are. Like give me a

28:49

quick win. Like the

28:51

import, like, hey, you might want to import because

28:54

I didn't know that. That might be

28:56

something to add there. Like, hey, to get

28:58

started, just run this command to import.

29:00

And then you can run stats as an example,

29:02

because you probably have all the data and you

29:04

can run stats because you have all of it

29:06

imported. And you get a quick win. Like, Oh,

29:09

I get how this thing works. I get how this

29:11

thing will help me. That's a good suggestion. Thank you.

29:13

I'm actually thinking of doing like A2N setup, which just

29:15

is kind of like a little interactive wizard that just

29:18

does the whole lot for you. Better, even better. Yeah.

29:20

A2E, that could be fun. Yeah. Well,

29:23

I would definitely, I would agree on the setup process

29:25

and the documentation was all very handholdy and nice. And

29:27

even when I was feeling like, I don't know if

29:29

I want to be like right there, you're like, no,

29:31

it's A2N, I'm like, all right. So this person cares.

29:34

I also kind of figured that like, if I was a

29:36

user, I would be like, no way are you getting my

29:39

data. So I have to make sure it was like something

29:41

I would use if I was on the other side. What's

30:03

up friends? This episode is

30:05

brought to you by our

30:07

friends at Sanadia. Sanadia is

30:09

helping teams take NASA to

30:11

the next level via a

30:13

global multi-cloud, multi-geo and extensible

30:15

service fully managed by Sanadia.

30:17

They take care of all

30:19

the infrastructure, management, monitoring and

30:21

maintenance for you so you

30:24

can focus on building exceptional

30:26

distributed applications. I'm here with

30:28

VP of product and engineering Byron Ruth. So

30:30

Byron, in the Nat versus

30:33

Kafka conversation, I hear a

30:35

couple different things. One I hear out there, I

30:38

hate Kafka with a passion. That's quoted by the

30:40

way on Hacker News. I

30:42

hear Kafka is dead, long live Kafka.

30:44

And I hear Kafka is the default,

30:46

but I hate it. So

30:49

what's the deal with Nat versus Kafka? Yeah,

30:51

so Kafka is an interesting one. I've

30:53

personally followed Kafka for quite some time

30:55

ever since the LinkedIn days. And I

30:57

think what they've done in terms

31:00

of transitioning the landscape to event

31:02

streaming has been wonderful. I think

31:04

they definitely were the sort of

31:07

first market for persistent data streaming.

31:09

However, over time, as people have

31:11

adopted it, they were the first

31:14

to market, they provided a solution.

31:17

But you don't know what you don't know

31:19

in terms of you need this solution, you

31:21

need this capability. But inevitably, there's

31:23

also all this operational pain and

31:25

overhead that people have come to

31:28

associate with Kafka deployments. Based

31:31

on our experience and what users and

31:33

customers have come to us with, they

31:35

would say, we are spending a ton

31:37

of money on spend on a team

31:39

to maintain our Kafka clusters, or

31:42

managed services or something like that.

31:45

The paradigm of how they model

31:47

topics, and how you partition

31:49

topics, and how you scale them is

31:52

not really in line with what they fundamentally

31:54

want to do. And that's

31:56

where Nat can provide, as we

31:58

refer to it, subject based addressing, which

32:01

has a much more granular way

32:03

of addressing messages, sending messages, subscribing

32:06

to messages and things like that, which

32:08

is very different from what Kafka does.

32:10

And the second that we introduced

32:12

persistence with our Jetstream subsystem as

32:15

we refer to it a handful

32:17

of years ago, we literally had

32:19

a flood of people saying, can

32:21

I replace my Kafka deployments with

32:24

this NATs Jetstream alternative? And

32:26

we've been getting constant inbounds, constant customers

32:28

asking, hey, can you enlighten us with

32:31

what NATs can do? And oh, by

32:33

the way, here's all these other dependencies

32:35

like Redis and other things and some

32:38

of our services based things that we

32:40

could potentially migrate and evolve over time

32:42

by adopting NATs as a technology, as

32:45

a core technology to people's systems and

32:47

platforms. So this has been largely organic.

32:49

We never from day one, you know,

32:51

with our persistence layer Jetstream, the intention

32:54

was never to say we're going to

32:56

go after Kafka. But because of how

32:59

we layered the persistence on top

33:01

of this really nice PubSub, Coronets

33:03

Foundation, and then we promoted it

33:05

and we say, hey, now we

33:07

have the same, you know, same

33:10

semantics, same paradigm with these new

33:12

primitives that introduce persistence in terms

33:14

of streams and consumers. The floodgates

33:16

just opened and everyone was frankly

33:18

coming to us and wanting to

33:20

simplify their architecture, reduce costs, operational

33:22

costs, get all of these other

33:24

advantages and NATs has to offer that Kafka

33:26

does not whatsoever or any of the other

33:29

similar offerings out there. And you

33:31

get all these other advantages that NATs has to offer. So

33:33

there's someone out there listening to this right

33:35

now. They're the Kafka cluster admin. The

33:38

person in charge of this cluster going down

33:40

or not. They manage the team, they

33:42

feel the pain, all the things.

33:44

Give a prescription. What should they do? What

33:47

we always recommend is that you can

33:49

go to the NATs website, download the

33:51

server, look at the client and model

33:54

a stream. There's some guides on doing

33:56

that. We also have, so NAT provided

33:58

a basically a packet of resources. to

34:00

inform people because we get again so

34:03

many about requests about how do you

34:05

compare NAPs and Kafka and we're like

34:07

let's actually just put a thing together

34:09

that can inform people how to compare

34:11

and contrast them. So we have a

34:13

link on the website that we can

34:16

share and you can basically go get

34:18

those set of resources. This includes a

34:20

very like lengthy white paper from an

34:22

outside consultant that did performance benchmarks and

34:24

stuff like that and discuss basically the

34:27

different trade-offs that are made and

34:30

they also do a total cost

34:32

of ownership assessment between people who

34:35

are organizations running Kafka versus running

34:37

NAPs for comparable workloads. Well

34:39

there you go. You have a

34:42

prescription. Check for a link in

34:44

the show notes to those resources.

34:46

Yesterday's tech is not cutting it.

34:48

NAPs powered by the global multi-cloud

34:51

multi-geo and extensible service that is

34:53

fully managed by Sanadia. It's the

34:55

way of the future. Learn more

34:57

at sanadia.com/change log that's s-y-n-a-d-i-a dot

35:00

com slash change log. So

35:07

when you decided to quit your job to do

35:10

this what were

35:12

you thinking? What when who what when were

35:16

why? So I

35:18

started 2023 and this was just

35:20

like a random little side project right? It

35:22

was it was going okay. It was some

35:24

bit of fun and then um after my

35:26

talk at FOSDEM uh some of the other

35:28

speakers I was speaking to one of them sort of says

35:30

to me like you need to take this more like you

35:32

should take this more seriously think about monetizing

35:34

it etc etc and

35:37

I wasn't 100 convinced at the

35:39

time but it sort of sat in the back of my head

35:41

and throughout that year after a

35:43

lot of the reception I got I started

35:45

spending like an extra few hours per

35:48

like few days um just polishing improving

35:50

that kind of thing and

35:53

the user growth we got was huge so like

35:55

we had more growth in 2023 than we'd had

35:57

in the previous two years by a long shot.

36:00

and kind of got to the end of

36:02

the year and I'd always fancied having

36:04

a go at building my own company and

36:07

I had this project that was continuously growing.

36:09

It was sort of continuously demanding more time

36:11

as well. And I got to the point

36:13

where I was like either I give this a

36:15

go and try to make something of it or

36:18

I reduce how much time and energy I'm

36:20

putting into it because like it's not sustainable.

36:22

I can't like have a full-time

36:24

job and be like handling support

36:26

and prioritizing issues and all of this in a way that's

36:29

going to continue to grow. I think

36:31

there's a bit of a gap in sort

36:33

of the shell as it is. It

36:36

hasn't really changed a whole lot in a

36:38

long time. And the way you

36:40

said earlier like about how you know the

36:42

shells code to or something like that maybe I'm not quite

36:45

in you exactly but I think there's a

36:47

ton of developer tools focused around writing

36:49

software but people who spend a lot of

36:52

time in the terminal are almost underserved right

36:54

now. Yeah, I agree. The

36:56

command line code is code to I guess

36:58

I don't know your command line commands are

37:00

code to. Exactly. I feel that even

37:02

during the process like you recognize which dish drawer

37:05

I'm using like that's a cool code. I'm sure

37:07

is that in Rust as well like what

37:10

are you doing to confirm like which dish drawer do you

37:12

have like a massive statement or

37:14

something like that or a case statement. It's like

37:16

a chunky bash script. Yeah, okay. I mean that's

37:18

fun too. I mean code to. Yeah. And

37:21

I like I like bash scripts even too.

37:23

I mean I like them because they're useful

37:25

tooling that you can make for you. They're

37:27

very bespoke for what you need and I

37:29

think you know in my last I say

37:32

year and a half I've become more empowered

37:34

with chat GPT encoding tools because there's just

37:36

so much knowledge out there in a island

37:38

to generate or at least

37:41

guide me on bash scripting where I never

37:43

really I felt intimidated by it because

37:45

I was like I'm not that kind of hacker Adam

37:47

come on. You know you can't do this but

37:50

then I'm like I need to do it and so I found

37:52

out how to do it with my buddy code

37:54

Jenny I stuff and now

37:56

I have lots of Linux tooling that

37:59

I use myself. for various things

38:01

that are not really probably useful

38:03

to anybody else, but they're useful to me only,

38:06

and they could be highly specific. Whereas

38:08

before I would have never done it, but it's

38:10

telecode too, and I have no idea where to

38:12

keep it at, like it's in a repository, but

38:14

now it's the true version of it, how do

38:16

you deploy it, how do you easily

38:18

get into like an apt repository you

38:20

can install yourself, that whole world is weird.

38:22

Like if you write your own little tools,

38:25

how do you install your own little tools? I

38:28

would love somebody to solve that problem better, or at least

38:30

document how to better add a

38:32

repository to apt so that I can easily

38:35

install my own things from like a repository,

38:38

because my central repository of it essentially is

38:41

living in my bin folder, my own personal bin folder,

38:43

wherever I put my stuff at, that's the version, and

38:46

it changes without being versioned, because I'm

38:48

an idiot, it's just my own tooling.

38:51

That was better, that'd be cool. Definitely be very cool.

38:54

Adam, do you remember RVM? Oh yeah,

38:56

of course. Ellie, are you aware

38:58

of RVM, Ruby, version manager? Yeah, there's a

39:00

few similar for other languages as well. Yeah,

39:03

it was kind of the first one that

39:05

ended up being like NVM, no version manager,

39:07

et cetera. And RVM was

39:10

famous, but also a little bit infamous

39:12

because the entire thing was written in Bash,

39:15

and it was a lot of code, and

39:18

it was very complex once you got into there, and

39:21

RVM had some, I mean, a lot of users,

39:23

a lot of bugs, a lot of

39:25

issues, and then as a user

39:27

you dive into it, and you're a Ruby person or

39:29

something, and all you're seeing is like, I

39:31

can't remember the guy's name who wrote it,

39:34

but he knew Bash very, very, very well,

39:37

to the degree where you're like,

39:39

oh, this is borderline, too much

39:41

Bash. Anyways, at

39:44

one point he decided that he

39:46

was going to make a package manager, I

39:48

guess for the listeners who aren't aware, RVM, Ruby

39:51

version manager. Michael Puppies is his name. Michael

39:53

Puppies. We talked to him back in 2013, Jared.

39:56

That was a long time ago. I feel like

39:58

there was another fellow that was, that's not Michael Puppies. I

40:00

remember Michael me call Wayne. Yes.

40:02

Yeah Wayne Seguin. Maybe he's yes

40:05

Wayne segwin or segwin segwin Yeah, did they work

40:07

on it together? I think he was the originator.

40:09

Okay, and Michael poppies took it over and had

40:11

to maintain it Okay, it's all coming back. I

40:13

think Michael took over a lot of the issues

40:15

really though And he yeah, there was like a

40:18

burnout stage there too with with Michael Wayne was

40:20

super into bash Maybe he still is I haven't

40:22

kept up with him Yeah, and

40:24

I remember at one point he talked about

40:26

riding a bash package manager For

40:28

X where X is whatever it is you wanted

40:31

to manage It was one of these like I'm

40:33

going to engineer the general thing that solves all

40:35

problems kind of situations that we get into as

40:37

engineers and the reason I think

40:39

of it is because his deal is like you should just be

40:42

able to Like package manage your bash

40:44

scripts just like you can other things which

40:46

is kind of what you're asking for Adam

40:48

Yeah, it's like just give me a way of like

40:51

Packaging up and deploying even if only to

40:53

myself Which a lot of

40:55

us should do with our dot files synced across machines,

40:58

you know, it's like you

41:00

write your little bash scripts and your functions and

41:02

stuff into your dot files and use git to

41:04

basically Synchronize those across machines, which

41:07

is a poor man

41:09

solution, but it works, you know to a

41:11

certain degree better than you know going the

41:13

route of like doing

41:16

it distro or package manager

41:18

specific like at for example, you

41:20

know, cuz if I'm gonna do the same if

41:23

I need the same bin options in

41:25

on my Mac then You

41:28

know, maybe there's you know

41:30

dependencies required or whatever. I don't know like

41:32

usually you'll end up with some sort of

41:34

platform specific Yeah conditions in your scripts which

41:37

I know I've had in my days where like check is

41:39

it Mac or is it Linux? All of those ones I've

41:41

been writing are they translate from Mac

41:44

to Linux? No problem Yeah, just as

41:46

so long as the package there like 70 or ZFS

41:48

or whatever like those things As

41:51

long as it's present and it runs and there's no way

41:53

to do in the bash. Anyway, yeah, we're in the weeds

41:56

I was just thinking I was just reminiscing. Yeah a little

41:58

bit about that as something that And that doesn't

42:00

exist that I know of. Maybe people know ways

42:02

that you can deploy out your

42:05

little scripts to yourself and

42:07

to others in a way that's

42:09

a lot like NPM install or

42:11

cargo install, where they have these

42:13

language-specific things. This would be

42:15

more generic. I think it would be cool.

42:17

Also, even for internal tooling, like I've been

42:19

in jobs before where some of the onboarding

42:21

is like, please copy paste all of this

42:23

from the wiki into your .file. Totally. It's

42:25

not great, right? Yeah. Maybe

42:28

a new frontier for A2N at some

42:30

point. I actually just made it sync

42:32

aliases earlier today. Really? So there's some

42:35

scopes for that too. Okay. So

42:37

now we're starting to see what maybe a potential future for

42:40

this looks like. Maybe. I use

42:42

something from Thoughtbot for some of these things.

42:44

I think it's RC Up or RC Something.

42:47

There's lots of different... People have taken different whacks

42:49

at this, I think, over the years. But

42:52

yeah, syncing aliases. Yeah,

42:54

that's kind of the inspiration there. I had a

42:56

lot of feedback from users that it's the

42:58

first thing they install on their machine. And

43:00

then from there, they recall other commands for

43:02

setting up the rest. And

43:04

it's like, well, if you didn't have to recall all

43:07

the commands and you could just install it on your

43:09

machine and then your setup's right there, then that would

43:11

be the next step. Bam.

43:14

Yeah. So this could be your .file

43:16

syncer and your environment setup syncer without

43:18

a GitHub repo or something.

43:20

All you need is A2N and you're

43:22

already logged in. Exactly. I

43:24

love it. I love it. We sidetracked

43:27

a little bit. Is it trivial to run your own

43:29

server in a home lab or on-prem? Is

43:31

it pretty easy? It should be. And

43:34

if you have any problems, let me know because I want to make it

43:36

easier. It's just

43:38

Postgres, at least Postgres 14

43:40

and run a binary.

43:43

And that's it. I

43:45

guess I could probably Dockerize that. I would

43:47

prefer Docker in that scenario. We

43:49

have a Docker image too. There's a Docker image, there's

43:51

an example Docker Compose, and there's a Helm chart. Oh,

43:54

that's too easy there. I think there's

43:56

some Kubernetes community distro

43:59

thing. have the home labs that has it

44:01

included too. I can't remember what it's called now. I'll

44:04

test it out after this conversation. I'll

44:06

boil it a bit. I'll give you some feedback.

44:08

Oh, I see it. Yeah. Thanks. Under your

44:10

docs, self hosting, server setup, usage, Docker, Kubernetes.

44:13

So very cool. Here's a setup that

44:15

I think has worked in the past. It's like open source,

44:18

library or framework or system

44:20

with a hosted business

44:23

attached to it where

44:25

the end user is

44:28

more mainstream, more normal, less

44:30

nerdy. But when you have

44:33

open source tool service

44:36

as the business model with

44:38

your core audiences, super

44:40

nerds, like Adam, who's

44:42

like gets excited because he heard Docker

44:44

or somebody even nerdier

44:47

who hears Helm Chart and is like, let's go. You

44:49

know, which I'm sure some of our listeners are like,

44:51

okay, the Helm Chart, cool. It

44:53

seems like that's harder for the business side, isn't it? Where it's like

44:56

the people who are your core demographic

44:58

of potential purchasers, because they're all

45:00

command line users, they also

45:02

are super down with self hosting. I

45:04

think it's split. I think a lot of the

45:06

sort of early users are very down for

45:08

self hosting, very down for customizing things.

45:11

But I think there's tons of people

45:13

that don't actually know how nice the

45:15

shell can be and how things can be

45:17

better. And if there was a

45:19

very easy way for them to have a nice

45:21

setup that felt modern and was good, and they

45:24

didn't have to know what sort

45:26

of scripts and plugins they need to install and

45:28

which things they need to add and all of

45:30

this, which most people will just stop caring as

45:32

soon as they start seeing this huge list of

45:34

stuff. It was nice with no effort,

45:36

I think we could have more people using the terminal

45:38

much more. I agree with you. And

45:41

I also want to recognize that

45:43

of amongst the nerdy ones like

45:45

Adam, there's also me and I would just I have

45:47

no interest at all in self hosting, even though I

45:50

totally could do it. I just don't want

45:52

to, I would happily sign up for the service and

45:54

pay the money on a recurring

45:56

basis to have you handle that for me. So even

45:59

amongst you know, There's a lot of home

46:01

labbers, a lot of self-hosters amongst

46:03

us nerds, and then it's also the ones that are

46:05

just like, yeah, I'd rather not.

46:07

I'd rather give Ellie my money. Maybe I'll hold

46:09

you to that recurring payment thing. Hey, I'm into

46:11

it. I'm interested for sure. Especially

46:14

if you are just gonna like automatically

46:16

sync all of my things. And

46:20

it's cool, it's very cool. My

46:22

reasoning is not to pay. We know that,

46:24

we know that you're just tinkerer. We even

46:26

talked about that with Obsidian. Nick and I

46:28

talked about that when we were at that

46:31

conference. We were talking about Obsidian. Are you

46:33

Obsidian? I love Obsidian.

46:35

It's my favorite thing. And you use their

46:37

sync service? I do. Were

46:39

you early enough to get the half off discount?

46:41

Nick got, Nick Nesey got this like, I

46:44

don't know, early adopter super cool person

46:46

discount that's like forever. Cool person discount. Because

46:49

Nick is cool. I don't think that strikes

46:51

true for Nick, but come on. We'll see.

46:55

Well anyways, I paid 10 bucks a month. You paid

46:57

10 bucks a month for a sync? Yeah. Yeah.

47:00

I don't not wanna pay that number, but

47:02

I think that's not exactly what

47:04

I think the value is that Obsidian gives me,

47:07

is syncing. It seems

47:09

to be pretty trivial to do.

47:11

Like why not just give somebody the option to

47:13

run their own server? I

47:15

don't know. But that's why I think about this.

47:17

Like not so much not paying you, but more like just

47:20

even data protection or just for learning. How

47:23

does this actually run? What does it take to, because

47:25

I don't get to do SRE stuff as a living.

47:27

I'm a podcaster. You know, my SRE

47:30

for a living is myself in my

47:32

home lab and tinkering. Yeah. And

47:35

so that's why I do it to learn. Less about keeping my

47:37

own dollars. Yeah, when I

47:39

have been SRE for a living, my

47:41

home lab got neglected quite a lot.

47:43

Yeah. What's

47:46

your home lab then? It's pretty simple.

47:48

It's just like a little Yvonne Tusser

47:51

of a bunch of ZFS stuff running

47:53

on it. What a bunch of Docker

47:55

containers for my home media setup and

47:57

like a Prometheus and Grafana dashboard.

47:59

sets up and stuff. Doing a little bit

48:02

of home automation at the moment just because maybe

48:04

future me will want to know the temperature

48:06

in my kitchen 10 years ago. What's

48:39

up friends, this episode is brought

48:41

to you by Image Proxy. Image

48:43

Proxy is open source and optimizes

48:46

images for the web on the

48:48

fly. They use the world's fastest

48:50

image processing library under the hood,

48:52

LibVeeps. It makes websites and apps

48:55

blazing fast while saving storage and

48:57

fast costs. And I'm joined by

48:59

two guests today, Sergei, Aleksandrovich, author,

49:01

founder, and CTO of Image Proxy

49:04

and Patrick Byrne, VP of engineering

49:06

at Dribbble, where they use Image

49:08

Proxy to power the massive amounts

49:10

of images from all of dribbble.com.

49:12

Sergei, tell me about Image Proxy.

49:14

Why should teams use this? Everyone

49:16

needs to process their images. You

49:19

can just take an image and

49:21

just send it to the browser

49:23

because usually it's a megabyte of

49:25

data. And if you have lots

49:27

of images like Dribbble does, you

49:29

need to compress and you need

49:31

to optimize your images and you

49:33

need them in the best quality

49:35

you can provide. That's where Image

49:38

Proxy shines. Very cool. So Patrick, tell

49:40

me how Dribbble is using Image Proxy.

49:42

Being a design portfolio site, we deal

49:44

really heavy in all sorts of images

49:46

in a lot of different sizes, levels

49:49

of complexity. And when we serve those

49:51

images to the users, those really have

49:53

to match exactly what the designer intended.

49:55

And the visitors need to receive those

49:58

images in an appropriate file size. dimensions

50:00

depending on whatever their internet connections beat

50:02

is or their device size is. And

50:04

that was just a constant struggle really

50:06

to really thread that needle throughout the

50:08

course of the platform using a handful

50:10

of different tools in maintaining that right

50:12

balance of high degree of fidelity, high

50:15

degree of quality without sacrificing the

50:18

visitor's experience. And when we

50:20

were exploring using Intracy we were able to

50:22

spin up using the open-source version of the

50:24

product, a small ECS cluster, to just throw

50:26

a few of those really tough cases that

50:28

went through our support backlog, looking at

50:30

some of the cases people were reporting

50:32

and almost to a T we aced

50:35

every one of those cases. Wow, so

50:37

it seems like image proxy was really

50:39

impressive to you. Yeah Adam, I just

50:41

have nothing but positive things to say

50:43

about using image proxy. The documentation is

50:45

crystal clear. Out of the box it

50:47

does everything you need it to. Tweaking

50:49

it to meet your specific needs is

50:52

incredibly easy. It's wicked fast. It deploys

50:54

real simple and our compute costs

50:56

have gone down over the open-source tools that

50:58

we've used in the past. Even

51:00

including the image proxy pro license

51:02

it still costs us less to

51:05

use and gives our visitors a

51:07

better experience. So as an

51:09

engineer I like using it and as an

51:11

entering manager I like what it does to

51:13

our bottom line. So image proxy is open

51:16

source and you can use it today but

51:18

there's also a pro version with advanced features.

51:20

Check out the pro version or the open

51:22

source version at imageproxy.net. The one thing I

51:25

love so much about this is that a

51:27

matter which you choose the open source route

51:29

or the advanced features and the pro

51:32

version you use the same way to

51:34

deploy it. A Docker image one

51:36

that is from Docker Hub that

51:38

everybody can use open source or

51:40

one that's licensed differently for those

51:42

advanced features that's the same delivery

51:44

mechanism via Docker Hub. It's so

51:46

cool. Once again imageproxy.net. Check out

51:48

the demo while you're there and

51:50

check out the advanced features for

51:52

the pro version. Once again imageproxy.net.

52:00

So when you decided to quit the job, let's go back

52:02

there. Yes, I like this go back there. I was about

52:04

to go back there. Yeah, good. We,

52:06

we, we moved far. I think

52:08

they were boring me, Adam. Yeah, I am good. You're

52:10

on track or on the same page. I also was

52:12

happy you brought us back to the, to

52:14

the home lab, but well,

52:16

you kind of gave a little bit of

52:19

your thought and your reasoning, but maybe just

52:21

expand more, talk about money, talk about life,

52:24

you know, like, tell us the inside scoop

52:26

on what you're thinking about it. Yeah,

52:29

sure. I mean, money wise, I'm quite

52:31

lucky. I've had a good career. I've

52:33

got plenty of savings. My outgoings are

52:35

pretty low. Like it's just me. I've

52:37

got no kids, mortgage, whatever. So it's

52:39

a bit of rent and money

52:42

for my motorbikes pretty much it. But

52:46

yeah, so the outgoings are low. I had enough for

52:48

like at least a year. So I'm good there. Um,

52:51

I just figured that, you

52:53

know, have you ever had something that you

52:55

have to work on and like, if you don't,

52:57

it's going to bug you forever. Like it's one

52:59

of those things I figured I had to give

53:01

it a go. Otherwise I'd always wonder like, what

53:03

if I had tried? What if I had done this?

53:06

And like at the end of the day, it's maybe

53:08

a small risk, but I don't think doing

53:10

this will make me any less employable if it

53:12

doesn't work out. So it's something

53:14

I really wanted to at least

53:17

give a shot. You set parameters

53:19

around what success looks like, what

53:21

failure looks like, when you're going to call

53:23

it a day, if there is

53:25

one, or do you have a business model,

53:28

like how much did you put into it?

53:30

You're like, I just want to work

53:32

on this. I'm going to give it a shot. Yeah, I've got,

53:35

I was kind of trying to get

53:37

a nice balance between planning enough, but

53:39

also not making it too rigid because obviously

53:42

when you go from fitting something into your mornings and

53:44

doing something full-time, like a lot can change. So

53:47

the way I saw it was like the

53:49

first six months of the year wouldn't be

53:51

focusing too much on getting revenue. They'd be

53:53

focusing on making sure I'm building the right

53:55

thing, making sure I'm building something people want,

53:57

making sure that like any. sort

54:00

of frustrations people had with souls. And then the

54:02

latter six months of the year, I'd be thinking

54:04

more about like making sure I can pay rent. But

54:07

that's, that's the main plan. I'd kind of like to

54:09

start addressing some more team use cases later in the

54:11

year as well, but the first, again, the

54:13

first beginning is just focusing on making sure

54:15

like individuals are very, very happy with their

54:17

shell. And how long

54:19

have you been doing it? So full-time,

54:21

like six weeks. Otherwise

54:24

it's like three years now. The

54:26

first majority of that was very sporadic though.

54:28

Yeah. So six weeks full-time.

54:31

Are you having a blast or what? Yeah, it's been great.

54:34

It's cool because I'm, I don't know, I've had

54:36

loads of ideas I've wanted to explore, but I've

54:38

never had the time and the energy. So being

54:40

able to tie up so many loose ends from

54:42

last year, like as an example, the first

54:45

version of the sync that Atuin had

54:47

was like mostly good

54:49

for most use cases and it

54:52

lasted way better than I thought. I think

54:54

there was a comment from the first version

54:56

that was like, this is really naive, improve

54:58

it, and I never

55:00

got around to fixing it. So that was like

55:02

a prototype sync V2 that was sitting around for

55:04

all of last year. And in

55:07

the last, the first few weeks of full-time,

55:09

I managed to finish it and we

55:11

rolled it out a couple of weeks ago and working

55:14

so much better. And it's nice to have been able

55:16

to do that. I think that's like very important for

55:18

laying the foundations for everything else. What

55:20

are you doing to ensure you're building the right

55:22

thing? Like how do you, is it

55:25

just Discord? Is it emailing? Is it interviewing?

55:27

Like what do you do to ensure this? It's

55:31

a big mix. So Discord's been

55:33

great. That's been growing constantly. People give

55:35

me some really nice feedback there. I think

55:38

I can't stick to just Discord. So there's also a

55:40

forum now, which is mostly for support.

55:42

And that's been really good too. I've

55:44

been doing user interviews too. So I have like little video

55:46

calls with people and talk about like

55:48

what they like, what they don't like, what other

55:51

problems they might have, what they'd be willing to pay

55:53

for, what they might not want to pay for, that kind of thing.

55:56

That's been going pretty well too. Did you see

55:58

mountain bikes when you said to... Yeah,

56:00

I'm kind of obsessed. It's like my not computer thing

56:02

to do. Where do you live

56:04

at again? I live just outside of London. A

56:07

lot of good trails there, right? Kind

56:09

of. I mean, the UK is a bit mixed. It's always

56:11

raining? It rains a lot. We can ride in

56:13

the mud though. We can't ride in the mud around here. I

56:15

mean, it's... It sucks, but I like

56:18

it. Yeah, I mean, most cycles in the rain, they're

56:20

still fun, but it's very

56:22

different and it's like more dangerous. Yeah,

56:26

okay. We'll sidetrack that. I

56:28

wanted to check that because

56:30

I thought I heard you say motorbikes or mountain bikes. I

56:32

wasn't sure which one. So for other people who are in

56:34

the motorbikes, which I'm not, I'm asking this for them. What

56:37

motorbike do you have? Is that awesome?

56:40

I have a Husqvarna 701 Supermoto. Okay,

56:43

Husqvarna I'm aware of because they make

56:45

very good riding lawnmowers around these parts.

56:49

And chainsaws, apparently. Yes, chainsaws. And they're all just

56:51

three numbers, so you don't know what you're getting. It could be a chainsaw,

56:53

could be a sewing machine, could be a motorbike.

56:55

Did they make sewing machines too? They

56:58

do. Found that out recently. That's hilarious. Yeah. You

57:01

never know until the box shows up and you're

57:03

like, that's too small for a motorbike. It looks

57:05

like a sewing machine. Exactly. What

57:07

do you think the possibility is with A2N?

57:09

Like, what do you think you might be

57:11

going towards? I know this is

57:13

early days, six weeks full time at least.

57:16

But what do you think the... What's the big dream? I

57:18

think the big dream is to kind of hit all

57:20

the use cases, right? Like

57:23

I want power users to love using

57:25

it because it's customizable. It lets them get

57:27

what they want out of it. I would love

57:29

it if people who are less comfortable in

57:32

the command line and kind of freak out and

57:34

are a bit scared feel so much more

57:36

confident using it. And I would love for teams and

57:38

organizations to be using it just to accelerate their productivity,

57:42

to make it more comfortable. You mentioned, I

57:44

guess, warp to some point. to

58:00

some degree, a lot of

58:02

folks use terminal app on Mac or

58:04

pick your terminal flavor on Linux. I'm not even sure.

58:07

I don't use Linux desktop, so I can't say for

58:09

sure. It's still not the

58:11

year of Linux desktop, so there you

58:13

go. Maybe next year. Maybe next

58:15

year. It's always next year. It's

58:17

always next year. How does

58:20

H-WIN fit into the world

58:22

of warps, for example, where they want to supercharge

58:24

or be the terminal of the future and they're

58:26

trying to, there's

58:28

even our friends at, not

58:30

bubble tea, but what's their name,

58:33

Jared? Charm. Charm, yes. Y'all

58:36

are all wanting to improve the

58:39

command line. One

58:42

organization, project, dream at

58:44

a time, and I feel like there's a version

58:47

of you all that come together and just coalesce

58:49

into a great symphony or something like that. How

58:51

does it work with the warps and

58:53

the non-warps and the things that sort of add

58:56

things? Is it challenging to work around those things?

58:58

Like you mentioned, it doesn't work right. Describe

59:01

that. Yeah, I mean, I guess

59:03

it's different challenges. Warps are in

59:05

a nice place where they control

59:07

the sandbox. Everyone's using their terminal. They've got

59:09

the whole thing from the bottom up. And

59:12

the downside is there that they have to convince

59:14

someone to download and use a new terminal, which

59:17

I don't know anyone there, but I imagine they struggle with that. Whereas

59:20

the challenges that we have are

59:22

a little bit different in that

59:24

the friction to get started with

59:26

the two ends is quite low. It's just

59:28

a plugin to install into what you already have. But

59:31

the flip side there is that the

59:34

number of things it can conflict with

59:36

and the number of different setups people

59:38

have is like huge. And I

59:40

didn't realize when I started this, the number of very

59:43

weird installs some people would have,

59:45

like some strange terminal on

59:47

Windows that when you're SSH'd into a different

59:49

machine and have three specific plugins, it doesn't

59:51

work. And it's like, well, great. I never

59:54

really envisioned someone would do that. But let's

59:57

see how we can sort that out. Yeah, I'm

59:59

not sure that answered the question. Well, I think

1:00:01

just mapping around the, I guess the land of terminal,

1:00:03

which is like the Wild Wild West in a lot

1:00:05

of ways. There's no right

1:00:08

way or wrong way. It's just the way. And

1:00:10

there is no way to determine

1:00:12

this random SSH session into on

1:00:15

Windows that has these three plugins. You just can't predict that, right?

1:00:19

Exactly. So I think there's like somewhere in

1:00:22

the middle where everything converges and that's where

1:00:24

the answer is. But we'll see. So

1:00:27

you don't need much money. So I'm guessing you haven't raised

1:00:29

any money or have decided

1:00:32

to take on investment or do you

1:00:34

have a posse? Do

1:00:37

you have folks behind you rooting for

1:00:39

you? You have fans. I know that

1:00:42

because they hit us up on

1:00:44

the socials. And they're like, hey, everyone's awesome. The

1:00:47

support has been amazing, actually. I didn't really

1:00:49

realize that many people cared that much. So

1:00:52

that's been lovely, especially on Mastodon. Lots

1:00:54

of people are like, what on Mastodon? Why? Where?

1:00:56

And like every time I post about it

1:00:58

there, I get loads of nice feedback and support. So that's

1:01:01

lovely. Thank you to anyone listening to this. I

1:01:03

think funding wise, no, I don't have any

1:01:05

funding. Sort of consider a little bit of

1:01:08

angel money at the moment, maybe. But again,

1:01:10

I don't need loads of

1:01:12

money right now. The most expensive thing

1:01:14

is my time. And I'm good with

1:01:16

that for now. I guess I'm not

1:01:19

ruling it out for the future, but it's not a

1:01:21

thing in the present. I

1:01:23

don't think like if someone gave me

1:01:25

$2 million tomorrow, pretty much the only

1:01:27

thing I could do with it is hire people. And

1:01:29

I don't think that's the right thing right now. I

1:01:31

think it would be the wrong incentives at this point. Sure.

1:01:34

Is there anybody else working on it with you? Not

1:01:37

full time. Not like this. There's a

1:01:39

lot of open source contributors who are

1:01:41

amazing and I really appreciate them all.

1:01:43

It kind of varies. There's some regular

1:01:45

contributors and some of them have their

1:01:48

special sort of interest areas of what

1:01:50

they like to work on. And

1:01:52

there's a lot of drive-thly contributors too. So

1:01:54

someone will have something that annoys

1:01:56

them and then they'll come and fix it and then

1:01:58

vanish. on a sticker so

1:02:00

I mean I know it's not going to show up for the audio

1:02:02

but I got one of these and every

1:02:05

um... A turtle with a wizard hat on? It's

1:02:07

got a wizard hat on and it's sparkly. So

1:02:09

everyone can contribute. And the shell is kind of

1:02:11

a gem or something? Exactly. It's like

1:02:13

a magic shell. So

1:02:16

anyone that wants one I'll ship them out.

1:02:18

Nice. Yeah. I like that mascot. What's

1:02:22

the name? Et-et-et-et-et-et-et? It doesn't have

1:02:24

a name. I should

1:02:26

probably name it Et-et-et-et-et. Oh, like what does

1:02:28

Et-et-et-et-et mean? Why would you pick that name?

1:02:30

Oh, um, my favorite book

1:02:32

series is the sort of Terry Pratchett

1:02:34

Discworld universe. I don't know if you're familiar

1:02:36

with it. The

1:02:38

premise, it kind of comes from a lot of... The

1:02:41

premise is that there's like a giant turtle in

1:02:43

space and flying swimming around.

1:02:46

He has four elephants on his back and then the

1:02:48

world is like a flat disc on the back of

1:02:50

the elephant. It's kind of like a wacky fantasy series.

1:02:52

Okay. Oh, yes. And

1:02:55

the name of that turtle is the Great Ativan.

1:02:58

It kind of came from there and it's been

1:03:00

like adjusted slightly. But the concept comes through

1:03:02

like a lot of old religion and mythology of

1:03:04

like the world turtle. Gotcha.

1:03:07

Interesting. The world

1:03:09

turtle, the magical shell. Yeah,

1:03:12

I've heard some people say, I'm not sure what the

1:03:14

context was, but like we're all just on

1:03:16

a world on a turtle's back flying through space

1:03:18

or something like that. I've heard that at least

1:03:21

somewhere in a geek

1:03:23

land of some sort. I'm not sure

1:03:25

which. There's a big intersection between computer

1:03:27

nerds and Terry Pratchett fans. That makes

1:03:30

sense. Okay. Is there a tie-in to

1:03:32

turtles all the way down from that or no? No,

1:03:34

but it is fitting. I mean, there might

1:03:36

be, but not that I'm aware of. I

1:03:38

mean, the synapses connected in my brain, but

1:03:41

I don't know. I don't know the history of the

1:03:43

phrase turtles all the way down well enough. But

1:03:45

I just figured, you know, nerds and turtles, there

1:03:47

you go. Nerds and turtles. Well, does

1:03:50

the mascot, the icon, does it have

1:03:52

a name? No, it does not. I've

1:03:54

been debating. I suggest the name. Okay,

1:03:57

for it. Shelley. Oh, actually.

1:04:00

That's cute. Yeah, maybe it's

1:04:02

Shelly. Shelly. That's a pun, and

1:04:04

it's good. That's a good pun. Yeah,

1:04:07

I would dig it That's almost as good as

1:04:09

my TNT tie-in from the day. So good. Yeah

1:04:13

But not good so bad. It was good. I

1:04:15

like Shelly. That's actually good. Good. It's good good That's

1:04:18

not bad. Good. That's good. Good. So Ellie

1:04:21

which rhymes with Shelly. That's true, by the way in case

1:04:23

you didn't notice How can we

1:04:25

help how can change all the community our listeners? You

1:04:28

know fellow nerds terminal junkies Adam

1:04:32

and I like I'm rooting for you. I think

1:04:34

it's really cool I hope you

1:04:36

make it even cooler and that

1:04:38

you can do this, you know as long as you want

1:04:40

to so how can we help? How can get involved? What

1:04:43

would help you? I mean even just being here

1:04:45

and sharing it is huge So I think if

1:04:47

anyone who wants to help out could check it

1:04:50

out. Give it a try Let me know what

1:04:52

you think all feedbacks good even if it's not

1:04:54

obviously positive Sharing it with

1:04:56

people you think might be interested is also great.

1:04:58

So this is spread pretty much entirely through word-of-mouth

1:05:01

So continuing that would be fantastic, but

1:05:03

no just more of the same fantastic. Thank you

1:05:05

so much. Adam any final thoughts or

1:05:09

Lines of questioning not necessarily. I

1:05:11

think I think

1:05:13

the trust factor is Like

1:05:16

you got registered like in the whole

1:05:18

happy path of getting started is all

1:05:20

Registering and I think there's

1:05:22

an allergy Initially like even

1:05:24

with Jared on when we first talked to Zach

1:05:27

Lloyd with warp we talked on twice down the

1:05:29

podcast It was like we

1:05:31

don't want to have to register to use the terminal and

1:05:33

I get it I understand all this your project you get from

1:05:35

doing it and I get that we can trust you understand all

1:05:37

that I think just generally hackers are

1:05:39

like I would rather not so

1:05:42

I'd like a more squeaky or I

1:05:45

guess a more smooth path to the

1:05:47

non-register version to get a

1:05:49

win early on and Let

1:05:51

the the trust be earned over

1:05:54

the usage of the tool like that would be

1:05:56

feedback from me because that's That

1:05:59

would be my hurdle really And I know this

1:06:01

isn't feedback time, but that's my one

1:06:03

thought after talking to you and know what the

1:06:05

tool is and what it can do is like

1:06:07

that's I think probably a hurdle you're having to

1:06:09

deal with. And the server is

1:06:11

awesome, but I don't think somebody's going to stamp a server

1:06:13

just to like bifurcate the option to trust you. I think

1:06:15

it's just going to be like let's just figure out how

1:06:17

to get to a win with

1:06:20

it without having to do the whole let it

1:06:22

– let me put it in your cloud kind

1:06:24

of thing or whatever. However that looks. Well, what's

1:06:27

the third option? So if they're not going

1:06:29

to run their own server and you don't want them to register,

1:06:31

what could Ellie do? Well, you don't have to, right?

1:06:33

You could just sync it locally. Isn't it local if

1:06:36

you don't register? Yeah, you can use it offline. It

1:06:38

won't sync, but it's still useful. But that's the core

1:06:40

feature that it offers out. Well, you

1:06:42

get the usage of the tool. I think that's what's cool

1:06:44

for me is like, well, okay, now that I see this

1:06:46

tool is cool and how I can use it in this

1:06:48

one single environment, I know I want it

1:06:50

over there too and over here too. But in that way,

1:06:52

I actually want to opt in to sync later on. Give

1:06:55

me the tool and its usefulness and let

1:06:57

sync be a superpower that I

1:07:00

sought after after I trust you

1:07:02

because I don't need to have syncing

1:07:04

to enjoy stats immediately

1:07:06

as an example. That was my hurdle here in

1:07:09

the call was I just couldn't share that with you

1:07:11

all because I had my issues. I can

1:07:13

fix that and that's not your problem, but I

1:07:15

think ultimately you may have the

1:07:17

loss of somebody's attention in

1:07:20

that moment if they just – I can't figure it out. It's

1:07:22

not that big of a deal to me. Let me move on.

1:07:24

I think over time, there'll be a challenge. Yeah,

1:07:26

maybe you started with the stats and

1:07:28

the history, the actual control

1:07:31

R replacement as part of this setup

1:07:33

that you're working on. And at

1:07:35

the end of the setup was now

1:07:37

the sync option which requires either self-host

1:07:39

or login right now. Register.

1:07:42

I can see that because I think I

1:07:44

would potentially download it and use it to

1:07:47

get to the stats and just to replace

1:07:49

control R. If that was obvious

1:07:51

and good enough for me to be like, oh, I

1:07:53

love to control – I love control R on steroids

1:07:55

or whatever way you are able to

1:07:57

pitch that because I realize the steroids

1:07:59

are good. have also bad effects

1:08:02

on the body. So maybe not the best. Call

1:08:04

it on strawberries. Strawberries are great for you. They

1:08:06

give you energy. Oh, on strawberry. Yeah, antioxidants. Amazing

1:08:08

for you. Great for your skin. All right, so

1:08:10

control R on strawberries. Plus

1:08:12

the history, the stats might

1:08:15

get me to install it. And then by the way,

1:08:17

sync. Oh, wow. Yeah.

1:08:21

So I can see what you're saying there, Adam. Yeah,

1:08:23

I mean. But I think as you build out the

1:08:25

like your developer environment, sync everywhere,

1:08:28

a lot of people are going to come

1:08:30

for that exact reason. And they're going to go straight for it. For

1:08:32

sure. Because I think we

1:08:34

understand that a sync requires some sort of

1:08:37

quote unquote cloud computer. You know, like somewhere

1:08:39

that's not our computer. And so either registering

1:08:41

or hosting your own server makes

1:08:44

complete sense. Definitely. Thank you. No, I'll bear that in

1:08:46

mind. Whereas with warp, it was like it's a terminal.

1:08:49

I don't want to have to sign up and sign

1:08:51

in to use a terminal. But like it's a sync

1:08:53

service. This is, it has become the sync service. So

1:08:56

I get the reason. But

1:08:58

I agree. For sure. Thank you. I think I'll do

1:09:00

something like that for the like sort of

1:09:03

hand-holding setup to me, maybe. I would

1:09:05

wear. But I dig it. I'm excited for

1:09:07

you. I think Shelly is a hit. Turtle

1:09:09

in the back, you know, world's on a turtle's back, flying

1:09:12

through space. How do we get some of

1:09:14

those stickers? Yeah, let's get some stickers up

1:09:17

there. I see Sammy or dressed after this,

1:09:19

so I'll send you some. Fantastic. All

1:09:21

right. All right. This has been fun.

1:09:23

Thanks, Helly. Yeah, it's been great. Thank you so much.

1:09:26

Thank you. Thank

1:09:29

you. It took me a minute,

1:09:31

but I finally put my finger

1:09:33

on what the name Attuen was

1:09:35

reminding me of throughout this conversation,

1:09:37

Q Grand Moff Tarkin. I

1:09:40

grew tired of asking this, so it will be

1:09:43

the last time. Where is

1:09:45

the rebel face? They're

1:09:53

all down to me. Do you hear the resemblance?

1:09:56

Just me. Somehow, everything reminds me of

1:09:59

Star Wars. Okay, so

1:10:01

I've been using Atuin for a while now

1:10:03

and I don't think I'm ever going back

1:10:05

to the old built-in Control-R style. It's just

1:10:07

too good, and even though I primarily use

1:10:10

a single machine, I love the idea of

1:10:12

eventually using this to bootstrap my future shell

1:10:14

environments. What about you? Are

1:10:16

you a long time Atuin user who is excited? We

1:10:18

finally had Ellie on the Pod? Or is this your

1:10:21

first time hearing about it? Let us know in the

1:10:23

comments, we'd love to hear from you, there's a link

1:10:25

in your show notes. Or hop

1:10:27

in our community slack, there's great

1:10:29

conversations going on in there and

1:10:32

it's totally free to get yourself

1:10:34

an invite at changelog.com/community. Thanks

1:10:37

once again to our partners at fly.io, to

1:10:39

our friends at Sentry, who will give you

1:10:42

$100 off their team plan if you use

1:10:44

code changelog when you sign up, and to

1:10:46

Breakmaster Cylinder for Beat Freakin' For Us all

1:10:48

these years. Coming up next, homebrew

1:10:51

maintainer Mike McQuaid is back on

1:10:53

changelog and friends. We talk about

1:10:55

social media of course, the Apple

1:10:57

Vision Pro of course, Elon Musk

1:10:59

of course, homebrew and

1:11:01

workbrew, Mike's new business that's

1:11:03

building the missing features and

1:11:05

providing support for companies using homebrew.

1:11:08

Plus a few surprises along the way, I

1:11:10

think you'll dig it, it was a real

1:11:12

fun one. Alright that's all for

1:11:14

now, thanks for listening. If you dig this show,

1:11:16

share it with your friends, and if you really

1:11:19

dig it, hook us up with a 5 star

1:11:21

review. And if you really

1:11:23

really dig it, consider supporting our work with

1:11:25

a changelog plus plus membership. I hear it's

1:11:27

better, that's what people tell me at least.

1:11:29

It is better, it's been better for years.

1:11:31

Okay I'm done for real now, we'll talk

1:11:33

to you again, I'm free. and

1:12:14

a a

Rate

Join Podchaser to...

  • Rate podcasts and episodes
  • Follow podcasts and creators
  • Create podcast and episode lists
  • & much more

Episode Tags

Do you host or manage this podcast?
Claim and edit this page to your liking.
,

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features