Menu
Sign In Pricing Add Podcast

Robert Mustacchi

Appearances

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

2230.257

Please make sure that your boards can actually support these chips.

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

3680.523

Honestly, I would not surprise me if somebody did have a sense of humor.

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

411.88

I'm like, I couldn't really say anything. I was like, what's going on? And he's like, do you want to show the audience that we just broke a record? I'm like, okay, completely unplanned. I had no idea that was going to happen.

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

4155.433

noticed it was still booting was like okay let me go feed my cats fed my cats came back was still booting it's like okay let me go run to the bathroom come back still booting i'm like is it actually booting like what's taking it and i was about to turn it off when i saw in the corner of my eye that my monitor flashed up i'm like okay i'm finally booted it's alive it's

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

4178.666

Yeah, I'm like, okay, thank God it's actually done. And I did screw something up because I had an update to BIOS, which is always a bit of a nerve wracking experience when you have to do it over just watching a flashing light go. And you're like, is it done? Are you done? Did you work? I hope it worked. And then you turn it on and you're just like, okay, hopefully this works.

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

431.571

Wait, there's literally, I pulled the Lisa Sue. Wait, there's more.

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

4503.106

The system was built in like the 1980s. It was not updated until 2020. Yeah. Wow. Yeah.

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

4525.178

Oh no, this was no temporary fix. It was designed like that. The... So...

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

5916.823

Exactly. It's all the EDA folks. It's all the EDA folks who are like.

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

6604.231

That's for Sony and Microsoft to take up.

Oxide and Friends

Unshrouding Turin (or Benvenuto a Torino)

831.322

That's really good.

Oxide and Friends

RFDs: The Backbone of Oxide

0.249

How does it feel to be doing this from the morning?

Oxide and Friends

RFDs: The Backbone of Oxide

2920.043

There was an initial version that already existed when I joined. And it was just a list of kind of RFDs that were rendered. I think... I think at that point, a lot of people were looking at RFTs directly on GitHub. I guess due to the deficiencies of the site. And then I don't remember exactly when we kind of relaunched sort of the version that we have now. We kind of were built upon it since.

Oxide and Friends

RFDs: The Backbone of Oxide

2951.582

But then we kind of incrementally added things like the full text search. That was a huge pain point for me. I forgot what kind of command it was. There was some kind of grep thing, which would take... would take minutes to search the. It was a long time. It wasn't a great process. And now we have full text search.

Oxide and Friends

RFDs: The Backbone of Oxide

2969.375

We're using some library that indexes all the RFDs and searches, which I think is a good, that's super useful. I can, to your point earlier, we're sort of at an inflection point where there's so much in there that even full-text search doesn't necessarily get you everything that you need. Someone's already mentioned LLM, so I think I'm free to do without kind of...

Oxide and Friends

RFDs: The Backbone of Oxide

2999.81

Yeah, you don't have to feel like you're breaking the schedule. I'm not being accused of a shill, but I think there's, on the roadmap, there's, I think, there's room for something that kind of summarizes all the RFDs and at the very least tells you where to look. And let's say you're joining at Oxide.

Oxide and Friends

RFDs: The Backbone of Oxide

3018.709

There are a bunch of RFDs that everyone should read, but for most people, there's a smaller group which are kind of really pertinent to their work.

Oxide and Friends

RFDs: The Backbone of Oxide

3025.307

And I think that we can use something like that to generate reading lists for people that, that join and they can, they can kind of, they don't feel like they're just losing their mind, like drinking from the fire was trying to read everything to, to, to get up and running.

Oxide and Friends

RFDs: The Backbone of Oxide

3121.906

Yeah, and it's such an obvious thing, but then afterwards it felt kind of magical, as if a few of those moments where I kind of added something and it just sort of, I think, transformed at least the way I use the RFD site. Full text search is one of them getting kind of discussion in line on the RFD site. Okay.

Oxide and Friends

RFDs: The Backbone of Oxide

3158.68

There's been a few versions of it. And I think like I kind of have a love-hate relationship with ASCII doc. I think it's amazing because it is so versatile and it is so painful because it's so versatile. You can create so much and I'm aware of a small subset of features. The RFD site is the place to check

Oxide and Friends

RFDs: The Backbone of Oxide

3178.604

like a renderer for ASCII doc, because you will see every version of, uh, of, of any way which you can use. That's good. It has been used on the RFD site and that will get kind of an issue now and again. And I'm just baffled. Cause I'm like, I didn't even know this was possible.

Oxide and Friends

RFDs: The Backbone of Oxide

3201.758

You should see the stuff people are doing. But the thing is, it's... It's really rewarding doing this stuff, but there's a balance, right? I don't want to spend all of my time working on like an ASCII doc renderer and kind of the styling for this thing if it's just kind of used in one place. And I think one way in which we have worked around that is we've embraced ASCII doc.

Oxide and Friends

RFDs: The Backbone of Oxide

3232.845

I'm using ASCII doc for everything. So our doc site is built on ASCII doc, our RFD site, and the blog posts on the marketing site are all ASCII doc.

Oxide and Friends

RFDs: The Backbone of Oxide

3241.491

So what we have there is, and that in tandem with our design system, our colors, our typography, all of that stuff is unified across both kind of product and internal sites, which is unusual because usually you have your product design system and then you have some other designers who kind of are off like playing in the sandpit, doing like the website, doing whatever they want. I'm doing both.

Oxide and Friends

RFDs: The Backbone of Oxide

3263.939

So I can have a unified system. And what it means is... when we, when I, when I do the styling for the kind of RFD site it's shared across all these places. So I can justify spending a bit of time on these things because, um, Because it's so useful.

Oxide and Friends

RFDs: The Backbone of Oxide

3328.737

So you, Hey, don't, don't blame me. Don't blame me for that.

Oxide and Friends

RFDs: The Backbone of Oxide

3346.879

Really briefly on the stuff that we've made for it. So there is a... My main issue of ASCII Doc is that there is no kind of native... like Rust or JavaScript library for processing it, there is a JavaScript library which is transpiled from Ruby. And so kind of making changes or seeing how it works in another hood is kind of, is sometimes challenging.

Oxide and Friends

RFDs: The Backbone of Oxide

3369.351

And then it kind of, there's a bunch of assumptions on the way that it works. Like it assumes that you're going to process a whole ICO document in one go, top to bottom, right? which makes sense if you're processing it locally. In my case, I kind of worked on a React render of ASCII doc.

Oxide and Friends

RFDs: The Backbone of Oxide

3388.723

And essentially what I do is I take this ASCII doc tree and I work through it and I render kind of each part as kind of React components. If you're not doing that, you have to create a renderer where you're returning a string. So you want to render an image, you return a string, and you drop in.

Oxide and Friends

RFDs: The Backbone of Oxide

3407.238

You're accessing the attributes, and you're swapping stuff in and out, which isn't ideal, especially if you want to do some more interactive things like our images. It gets complicated because we're using signed images that come from GCP. We want a little light box. There's some other kind of features where if you want any kind of interactivity, that model doesn't work.

Oxide and Friends

RFDs: The Backbone of Oxide

3428.153

So we wrote a React renderer for that. But then you kind of, React doesn't run once, top to bottom, and you have issues. The big issue that I spent way too long on was every time you render a piece of content, with a footnote in it, it assumes that it's a new footnote.

Oxide and Friends

RFDs: The Backbone of Oxide

3446.476

So every time it's re-rendering that piece of text with a footnote, your number of footnotes is increasing, increasing, increasing up on the page. So those things are kind of challenging. And we've found ways around them. And I think like I have a, each one of these versions is motivated by kind of a piece of functionality that we want.

Oxide and Friends

RFDs: The Backbone of Oxide

3463.712

So one thing I've been playing with recently is creating this intermediary format for ASCII doc. So I take, I go through the tree, I process it, I turn it into like a JSON object that can be passed easily from the server to the client. And that means that you can kind of pre-process it on the server and then you're not shipping like these big

Oxide and Friends

RFDs: The Backbone of Oxide

3485.325

this like two megabyte, uh, client library just to handle it on the front end. Um, but, and, and, and the reason why that is important is let's say we're in the, we're in the, then the console. And then, and this is a big aspiration of Robert's is if we, if we want documentation that exists within the console, it doesn't feel justified to ship this big ASCII doc JS, um, library in the console.

Oxide and Friends

RFDs: The Backbone of Oxide

3505.218

Cause that kind of is a bit bloated. Um, but I think, uh, kind of working on experiments so that we can have dynamic documentation. Maybe if you're kind of working on, uh,

Oxide and Friends

RFDs: The Backbone of Oxide

3513.903

repairs and kind of swapping components then then we have that without needing to um do yeah kind of do all this stuff so yeah it's it's it's interesting um it's a it's a bit of a challenge at times but uh yeah the versatility is the kind of is the is is the the thing that's great and the thing that kind of trips me up sometimes

Oxide and Friends

RFDs: The Backbone of Oxide

3575.129

That was a, I think, I guess I think to, to, to begin, I think there's, there's, there's something around like the accessibility of this stuff. Oxide has always been like, um, really kind of engineering driven. Um, and engineers are really familiar with GitHub and that's really easy for them.

Oxide and Friends

RFDs: The Backbone of Oxide

3591.438

But, uh, I think if you want this process to be used outside in kind of like kind of sales and operations and, and, and, and design, then, um, really, you have to make this stuff as accessible as possible. And we're not there. And I think we're working towards it. But getting GitHub discussions directly into the RFD site felt like a big step towards that.

Oxide and Friends

RFDs: The Backbone of Oxide

3612.472

Essentially, what's nice about the GitHub discussions is you're leaving line comments. And one great feature of our ASCII doc is that you can trace you can kind of, given a line in an ASCII doc document, you can get the, no, in the return, in the render document, you can get the associated line number.

Oxide and Friends

RFDs: The Backbone of Oxide

3638.095

So what it meant is we could query the GitHub API, get all of the comments, kind of collect them in,

Oxide and Friends

RFDs: The Backbone of Oxide

3646.563

kind of a format that can be kind of rendered easily which which is which is pretty kind of tricky to begin with um and then we go through sort of line by line and and we we position them alongside the content directly if they're still relevant um and then we have this sidebar which kind of you can see the kind of full canonical discussion and you can kind of jump to the the relevant part um but yeah just that little bit of kind of being able to associate the original

Oxide and Friends

RFDs: The Backbone of Oxide

3673.468

document with the rendered document uh was enough that we could pull like from the api people's avatars and we can kind of have this little this module that people can click on and can and and and view um yeah and i think my kind of first experiment was this super ugly way of getting like a little avatar alongside the text but that yeah that felt kind of a real um kind of a huge improvement

Oxide and Friends

RFDs: The Backbone of Oxide

3787.923

Because one of the reasons to do that is the longer the discussion, the longer the response takes. So I think there's one RFD, something to do with time. And yeah, why would that have lots of comments? RFD 34. And it crashed. It crashes every time, I think, because I think it basically timed. Oh, no. Oh, wow, this worked. What a miracle.

Oxide and Friends

RFDs: The Backbone of Oxide

3816.506

But essentially, the more comments, the longer the response takes. And so I think there's some kind of funkiness in the GitHub API, which is, yeah. We do have something where essentially we serve the regular rendered version of And then David might want to talk a little bit about this, but there's a Remix feature.

Oxide and Friends

RFDs: The Backbone of Oxide

3839.02

Remix is the framework that we're using to do all this, where you can stream data from the server later on. So what we do is we give you the main document first, because that's important. And then later on, asynchronously, we give you the comments, just so that's not holding up the ..

Oxide and Friends

RFDs: The Backbone of Oxide

3870.211

And then your mileage may vary on the actual GitHub portion.

Oxide and Friends

RFDs: The Backbone of Oxide

4062.637

There was a file with an array of RFDs. Yeah, pretty much. And then initially it was semi-public, right? So anyone could log in with any GitHub login, I think. And then I think David really pushed to have it so anyone could access the public RFDs without logging in, which, yeah, was, I think, another big improvement.

Oxide and Friends

RFDs: The Backbone of Oxide

4262.838

Well, I mean, the RFD site is kind of fake open source in that it's all... A message to our community. We've got the BSL license on it.

Oxide and Friends

RFDs: The Backbone of Oxide

4285.381

Yeah, even at Oxide. Right, too real. So, because it's still... The RFDE API is much more... is much broader. I think anyone can use that pretty easily. The RFDE site is... And it's very Oxide at the moment. It has all the styling, all of that. It's kind of directly in the repo.

Oxide and Friends

RFDs: The Backbone of Oxide

4336.572

Swap the logo. Easy peasy.

Oxide and Friends

RFDs: The Backbone of Oxide

4340.444

Hey, it's trademark now. Don't touch.

Oxide and Friends

RFDs: The Backbone of Oxide

4718.647

We're doing it kind of incrementally as well. And that's the beauty of working on something on a platform like GitHub is you can use the RFD API package, use GitHub, and you don't even need a front end, at least initially. You don't need to worry about that. And then eventually you can kind of add more as and when. But yeah, the accessibility thing I think is big.

Oxide and Friends

RFDs: The Backbone of Oxide

4743.344

Augustus added an endpoint so that you can create RFDs from the API. And so yeah, I'm kind of working on a way that people can just create a new RFD from the website directly. And then a few months ago, I was working on a little experiment where it was a live ASCII doc editor where you could kind of create and share notes maybe before they're an RFD or notes that aren't going to be an RFD at all.

Oxide and Friends

RFDs: The Backbone of Oxide

4773.832

And within that, because of the API, I had an option where you could then turn, you could turn a note into an RFD and it would kind of hit the API and it would kind of take all of that content and throw it in an RFD. So I think that's what we're working towards eventually. Some basic authoring. There's a line though. It's really tempting to try and recreate GitHub and Google Docs.

Oxide and Friends

RFDs: The Backbone of Oxide

4798.733

Uh, I think we've, yeah, it's, it's, we've got enough on our plate, but it's tempting, tempting to do for sure. And yeah. And this, yeah, we, we, I, I, I found personally that kind of working on internal tooling, uh, is, uh, is, is, uh, really beneficial. Like we, we get a lot of it, especially as we get bigger. Um,

Oxide and Friends

RFDs: The Backbone of Oxide

4819.286

And we really benefit when more people can contribute to RFDs, especially engineers.

Oxide and Friends

RFDs: The Backbone of Oxide

64.116

If you spent any time in a European Airbnb, regardless of the country, you know that they always have a large canvas of a black and white scene of London with a colorized red bus. So I think that's the first clue that this is not actually Italy.