Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Blog Pricing

Rain Paharia

๐Ÿ‘ค Speaker
467 total appearances

Appearances Over Time

Podcast Appearances

Oxide and Friends
Crates We Love

a node with like a arc of node of children or something right like a or something like that um and i think um you know what kind of what can you end up having to write your own algorithms uh on top of that uh but petcraft just kind of you know you have to do a little bit of work to fit into it but it just gives you all of these algorithms and like there have been times where i have thought that all i want is like a dfs and you know you could probably write a dfs by yourself

Oxide and Friends
Crates We Love

But then I realized, oh, you know, in some cases the graphs can have cycles. So I need an algorithm to kind of convert the graph into like what is called a condensation graph, which is the same graph but without cycles. And then, you know, so it kind of gives you all of these things. And I don't know, there's something very satisfying about PetGraph in a way that I really like it.

Oxide and Friends
Crates We Love

But then I realized, oh, you know, in some cases the graphs can have cycles. So I need an algorithm to kind of convert the graph into like what is called a condensation graph, which is the same graph but without cycles. And then, you know, so it kind of gives you all of these things. And I don't know, there's something very satisfying about PetGraph in a way that I really like it.

Oxide and Friends
Crates We Love

So PetGraph is really interesting because it actually presents four or five different representations of a graph. So there's the adjacency list graph, which is the default graph, right? If you want a graph, then you probably want to reach for an adjacency list graph, right? There is also an adjacency matrix graph,

Oxide and Friends
Crates We Love

So PetGraph is really interesting because it actually presents four or five different representations of a graph. So there's the adjacency list graph, which is the default graph, right? If you want a graph, then you probably want to reach for an adjacency list graph, right? There is also an adjacency matrix graph,

Oxide and Friends
Crates We Love

um uh which you know if your graph is uh you know in some cases you want to use the matrix representation of things and you can do fancy things with eigenvectors and so on um um there's um also like this uh other one that lets you kind of uh so the the the first representations only let you use integer keys um if i remember correctly

Oxide and Friends
Crates We Love

um uh which you know if your graph is uh you know in some cases you want to use the matrix representation of things and you can do fancy things with eigenvectors and so on um um there's um also like this uh other one that lets you kind of uh so the the the first representations only let you use integer keys um if i remember correctly

Oxide and Friends
Crates We Love

But then there's also one that lets you use your own keys, anything that implements copy and I think hash and EQ or whatever. But then it also provides essentially like an abstract interface. So it provides a bunch of traits. And if you have your own graph and so you can bring your own graph and you can implement, you know, those traits for your graph.

Oxide and Friends
Crates We Love

But then there's also one that lets you use your own keys, anything that implements copy and I think hash and EQ or whatever. But then it also provides essentially like an abstract interface. So it provides a bunch of traits. And if you have your own graph and so you can bring your own graph and you can implement, you know, those traits for your graph.

Oxide and Friends
Crates We Love

And if you do that, then you get access to like the full set of algorithms to the extent that your create support that to the extent that your graph supports. That's awesome.

Oxide and Friends
Crates We Love

And if you do that, then you get access to like the full set of algorithms to the extent that your create support that to the extent that your graph supports. That's awesome.

Oxide and Friends
Crates We Love

So I got one. So this is a crate that... So I maintained this crate, but I didn't write it. I just happened to have been the one that manages its crate cyber releases. So this is a crate called Camino. So this was originally written by Boats, who was a Rust project alumna, So they were the one who drove like async await, for example, in Rust. And so they've done a work.

Oxide and Friends
Crates We Love

So I got one. So this is a crate that... So I maintained this crate, but I didn't write it. I just happened to have been the one that manages its crate cyber releases. So this is a crate called Camino. So this was originally written by Boats, who was a Rust project alumna, So they were the one who drove like async await, for example, in Rust. And so they've done a work.

Oxide and Friends
Crates We Love

And so one of the things that they did was, if you've done anything around bots in Rust, like file bots and file names and stuff, then it's always been bothersome because in the very, very typical Rust will be like anally correct about everything as far as possible. So that mindset kind of gets reflected in the way the path libraries are designed.

Oxide and Friends
Crates We Love

And so one of the things that they did was, if you've done anything around bots in Rust, like file bots and file names and stuff, then it's always been bothersome because in the very, very typical Rust will be like anally correct about everything as far as possible. So that mindset kind of gets reflected in the way the path libraries are designed.

Oxide and Friends
Crates We Love

So they will handle weird things like unpaired surrogates on Windows or like non-UTF-8 paths on Unixes. And so that ends up being like, if you want to write a tool that is as correct as possible and handles as many files as possible, then you probably need to take care of all that. But in reality, most of the time you don't, right? Most of the time, like if imagine you're like an oxide, right?

Oxide and Friends
Crates We Love

So they will handle weird things like unpaired surrogates on Windows or like non-UTF-8 paths on Unixes. And so that ends up being like, if you want to write a tool that is as correct as possible and handles as many files as possible, then you probably need to take care of all that. But in reality, most of the time you don't, right? Most of the time, like if imagine you're like an oxide, right?

Oxide and Friends
Crates We Love

And you're writing a simple, like a simple like server or whatever, like you are going to, like the files you're going to get and the files you're going to use are like They're going to be, like, well-structured, right, in some way? Right, right. So Boats wrote a library called Camino, which... essentially replaces OS string as the base with string as the base for things.

Oxide and Friends
Crates We Love

And you're writing a simple, like a simple like server or whatever, like you are going to, like the files you're going to get and the files you're going to use are like They're going to be, like, well-structured, right, in some way? Right, right. So Boats wrote a library called Camino, which... essentially replaces OS string as the base with string as the base for things.

Oxide and Friends
Crates We Love

So these are bots that behave like strings. So they don't handle every possible path, but they handle basically every realistic bot that most programs are ever going to see. So this is a crate that I use for pretty much everything that I end up writing, and I think most people should use it. There's a,