Talking Turkeys
Yeah. I was just in the, like, Elizabeth Holmes trial space.
Speaker 2:What? What? No. Not at home.
Speaker 1:Like a like a postmortem. Not like What? Like, actual live
Speaker 2:No. What? You were in a space about Elizabeth Holmes and you did not invite me or think of me?
Speaker 1:You know what? I did think of you.
Speaker 3:I did think of you.
Speaker 2:Worse. That's making it worse. That's making it so much worse.
Speaker 1:Yeah. That's fair. You know what? That's fair. I figured you I don't here's what here's actually the truth.
Speaker 1:It was not that interesting. And if it if
Speaker 2:it Here's actually the truth? That's how you're okay. Here's actually the truth is what you just said.
Speaker 3:I'm doing this.
Speaker 4:I'm I'm
Speaker 2:As opposed to, like, the wise thing that's saying up till now, I do I didn't get a
Speaker 1:I'm I'm not here so that I can see that this is the place to start the recording when I move this over to YouTube.
Speaker 2:Oh, no. No. No. We should
Speaker 1:so I'll tell you what's actually the truth. No. I was I was on the space and if it had gotten interesting, I was about to DM you, but it never got that interesting.
Speaker 2:That's a crock of shit.
Speaker 1:Actually, I'll tell you the one interesting That
Speaker 2:is that is the I was gonna pay for it of Twitter spaces. I was gonna DM you if it got interesting. How was it how could it not have been interesting?
Speaker 1:There are only, like, 8 people in the space. One journalist who is in the room. And the interesting anecdote was that, you know, when the trial started, it was totally circus in town, couldn't get a seat. This guy, the journalist was coming up from Santa Cruz, like, super early to to get in line. And it's been, you know, nothing since all of the technical testimony started.
Speaker 1:But Elizabeth took the stand on Friday. So, people started queuing up at midnight, I guess, last night or this morning or whatever. Like, it was an iPhone launch. So, he drove he left his house in Santa Cruz at 4 in the morning and was like the 50th person in line.
Speaker 2:This sounds extremely fascinating, and I feel that when you were hearing this, you were long past the point where you should have, indicated to me that this was happening. I mean, I feel No.
Speaker 1:Now I know. Now
Speaker 2:I mean, I feel hurt. Honestly, I just feel hurt. I feel I I you know, I'm really trying I'm trying to process my emotion here, but I just feel I mean, you know, I just I mean, Elizabeth Holmes, come on. That's No. I know.
Speaker 2:I cannot look away.
Speaker 1:So the the the space also had a bunch of technical issues. So I was sitting on hold for, like, 20 minutes, but of course, I I pressed on.
Speaker 2:You pressed on because, of course, it's alright. Well, I so I I'm gonna try to to look past this, although it's gonna be difficult.
Speaker 3:Hey. How was your
Speaker 1:space yesterday, by the way?
Speaker 2:Oh, that's what this is about. Here we are. Here we are. No. No.
Speaker 2:This is okay. There here. That's what this is about. Another time, let's get it all out there. Look.
Speaker 2:Someone on the Internet invited me to come to their space. It was not a referendum on our space. Our space is still very special. It was not I I saw you dropping in and out of that space.
Speaker 1:Yeah. Yeah. I I I was dropping in and out because, whatever. I had other stuff to attend to. I was, like, in
Speaker 2:the car. Are you sure you were dropping in and out just to draw attention to yourself? I mean, it was a little awkward, honestly. That's like, oh, Adam's here again, Adam and Adam's left again. Adam's like, you know, you deliberately storming out at different times in that space?
Speaker 1:No. In in in full candor, you know, as I mentioned, I'd I'd, we're supporting this immigrant family from Afghanistan and we had just dropped off a bike, but my own son had forgotten his pink bike helmet, so I needed to go back home to retrieve the pink bike helmet. It was that kind of emergency.
Speaker 2:It was
Speaker 1:I'm trying to listen
Speaker 2:Which is the I mean, those are the most dire emergencies actually, because you've got some you've got a very irrational boss at the other end of that emergency.
Speaker 1:Absolutely. I mean, like, won't get over that one in the same way that you've gotten over this, with the home space so quickly.
Speaker 2:Wow. This is where master we played that I'm I Yeah. I I think I ended up being a 4 year old in this metaphor. Thank you. Yeah.
Speaker 2:Yeah. Well, on that note,
Speaker 3:week. Yeah.
Speaker 2:There there we go. Okay. So the that space was fun, though. And but the difference between my space and your space is you were in that space, and I was in yours. So that's okay.
Speaker 2:We're at now I'm through it. Now I'm done. I'm I'm ready to go. So I am I mean, Thanksgiving has gotta be your favorite holiday. Right?
Speaker 2:Isn't Thanksgiving just the best holiday?
Speaker 1:Yeah. Especially now that, now that I don't have to travel. Like, it's great.
Speaker 2:Yeah. I think Thanksgiving is just a great holiday. It's a good I like the it has meaning, I think, for I I love its twin themes of family, obviously. But then also gratitude. Gratitude's great.
Speaker 2:And you're practicing gratitude is a very good thing to practice.
Speaker 1:Yeah. I mean, and overeating. I mean, that's just to
Speaker 2:And overeating. Yeah. Yeah. And I actually, Twitter oh, Twitter. Google was bringing up, you know, I've I've had photos online long enough now that I get these, like, hey, on this day 14 years ago, and it will be and on on this day 14 years ago, Adam, you and I were having thanksgiving together.
Speaker 2:Really? Yeah. In Noi Valley. Yeah.
Speaker 1:Alright. How
Speaker 2:about that? It was like and I gotta say, like, it was a it was a bit of a ragtag bunch there. Definitely, no one's family. It was a bunch of our it was, but, with my
Speaker 1:Alright. On this day.
Speaker 2:Now 17 year old then then 3. So, it was fun. But anyway
Speaker 1:Awesome.
Speaker 2:But I thought we, or we actually we thought that we might, you know, in tech, we so frequently complain about everything for good reason because lots of stuff merits complaints. But there's lots of little great stuff too. And I feel like we don't often, spend we we spend too much mental energy on the stuff that doesn't work and not enough mental energy on the stuff that does work that we're really appreciative of. And I feel like there's a lot of that. A lot of, like, little stuff like that.
Speaker 2:And so as Adam and I were Adam, as you and I were talking about this, we we had to agree that there'd be no bag limit
Speaker 1:I mean, literally anything rust because of absurdity, but, like, especially if you're writing macros or whatever. But anyway, I'm just in love with everything that guy does.
Speaker 2:You know what I have? Have you just, like, walked everything he's done? I've actually not done that, and I feel I should.
Speaker 1:No. I feel like there's, like, a whole seminar series, like, you know, that one could do just examining his crates and his early works.
Speaker 2:Yeah. I because I I feel like, we we should be I feel like you you you, like, listen to a, you know, a a track that's got an artist on it. Actually, you know, I say do you say track, by the way, for Yeah.
Speaker 1:Yeah. I say track.
Speaker 2:Oh, that makes me feel so much better. My kids are getting me are just, like, abusing me over track. And then I I'll say I'm saying record for album, which they also abuse me over. But I feel like that's fine. Right?
Speaker 2:Anyway, whatever.
Speaker 1:Yeah. That's fine. They're they're right to abuse you on that
Speaker 2:one. Oh, crap. The but I yeah. You'll have, like, an artist that you'll hear on, you know, on one track, and then you go, like, dig up their whole oeuvre, which and we go on that note, by the way, Loyle Carner. Have you ever have I have I have I told you?
Speaker 2:No. Oh, man. Loyle Carner. Look this guy up. UK based.
Speaker 2:Unbelievable. Really, really good stuff. So I heard him not a DJ. Anyway, this is reminding me that I should, like with this I I basically heard Loyle Carner on 1 DJ Shadow track, and I'm like, I gotta go figure out who this guy is and just listen to everything he he's done, which is not very much because he's pretty young, but it's amazing stuff. But I feel like with with Detonnet, I haven't done that, and I feel like we should.
Speaker 2:I feel like we should be there, like, walking every crate that guy has ever ridden.
Speaker 1:It it would be sort of a history of rust as well because I feel like so much of what he did was sort of just a step and a half ahead of what the community at large needed.
Speaker 2:So on that note, do you wanna kick it off? Like, what what is what is it what what is a crate that you are what what are you thankful for, Adam? Wait. Well, actually, I'll just open it up. It doesn't have to be too late.
Speaker 1:Yeah. Yeah. So, I'll tell you what I'm thankful for. And this is not gonna surprise you at all, Brian. And I I've got a a list of them, but where I'm gonna start is, something I've loved for a long time, Antler.
Speaker 1:Oh, yeah. You know that I love this.
Speaker 2:I do love that. Yeah.
Speaker 1:But part of the reason why I love it so much, and I was reminded of this recently, is I went back into the DTrace parser in Lexor, in Lex and Yac. And there's so fucking hard to write and so fucking hard to understand.
Speaker 2:Yeah.
Speaker 1:And Antler and then more recently I've been using this, crate called Pest in, in Rust which, different different in construction but similar in concept which is let me just write the grammar and get out of my way about all these rules and and you know, reduce rules and and so forth. And just kind of do what I say. And both of these are magical in that regard. Like it turns, writing lectures and parsers from what I feel like is almost witchcraft into something that is like so easy that there's no excuse not to have a DSL where you need one.
Speaker 2:That is and antler, it should be said, is missing an e.
Speaker 1:Yes. A n t l r.
Speaker 2:A t r. It the And
Speaker 1:and that's it's mostly in the Java world, but, like, you know, there there's like a a Rust port ongoing and and, you know, stuff to to other different, languages. But it's great. And if you need a parser, like, it's it's so easy to write something in.
Speaker 2:And then, and then is past derived from the inner order? Or or No. No.
Speaker 1:Totally different. And and I wish I could remember the acronym off the top of my head. But it's a different it's a different type of parser. Like, I'm not a compiler or parser nerd, so I don't understand the taxonomy sufficiently. But, like, you know, there there's some kinds of grammars you could or could not do in one of the other.
Speaker 1:But but similar at least from from my dumb guy perspective of like I want a simple DSL and, lets me do it pretty simply in Rust.
Speaker 2:Well, and that's I think it's interesting that in terms of like, there's you said there's no excuse for not using a DSL. And because I I think we should we need to reach to DSLs probably more frequently. And the ability to to create them pleasurably will make that much easier to
Speaker 1:go do. Yeah. Absolutely. Like, rather than retrofitting some configurly configuration language on something that's sort of close enough or, you know, relying on consumers to, like, sort of get it right and and decipher obscure error messages. Yeah.
Speaker 1:Like, you can drop in a DSL without the much trouble using one of these tools.
Speaker 2:Yeah. That's interesting. I need to I I I not done that and I need to. Have you been using them recently or
Speaker 1:So we used, I haven't used Antler in Rust but I used Pest when, Ben and I worked on the the USDT crate for Rust. So the ability to drop DTrace, user land static probes into Rust code. And, in order to parse the Dtrace provider format, we built a little parser using Pest.
Speaker 2:Yeah. That is so neat. And that's a great use case for it too because it you made it much easier to use by being able to build in a little a little parser there. Yeah. Yeah.
Speaker 2:Totally. That's cool.
Speaker 1:Yeah. How about you? What's what's top of the list
Speaker 2:for you? You know, I got some some, some big things and small things. They're not all Rust related, but definitely a lot that are Rust related just because we're doing a lot of Rust work. The Build RS is something that I feel have you done anything with Build RS at all?
Speaker 1:I I've written some Build RS, scripts. Like, some I I've been in a weird phase of writing code generators. And, the code generators are I've been writing in Rust either can be used either in build RS or as a macro. The macro form being sort of, easier when it works and the build RS form being nicer when it doesn't.
Speaker 2:Right. So build RS is basically proc macros, but taken to the logical extreme of just, like, why don't you just, like, write a program to write a program? And it's I I just thought I it's you know, I I, proc macros are great, but they can be as you said, I think you phrased it precisely. It's like it's great when, once they work, they're amazing. They can be a little hard to get working, not for any not be any slight on proc macros.
Speaker 2:I mean, the development environment is honestly great. It's just that there it's in this, like, weird layer where you are running your code as part of compiling the code effectively, and you're in this different context.
Speaker 3:Yeah. Yeah. I mean,
Speaker 1:I have this proc macro I wrote recently that's like 6 or 8,000 lines of code. Oh, shit. So it's so like when it when it's when it fails, it's like, yeah. There's a problem somewhere in this prot macro indication. You're like, okay.
Speaker 2:Well, can
Speaker 1:you give me a hint? It's like, no.
Speaker 2:No. It's 6 I thought that you were gonna say 6 or 8. Not 6 or 8, a1000. No. No.
Speaker 2:No. Maybe 6 or 800.
Speaker 1:This is a proc macro that takes in JSON schema and poops out Rust types.
Speaker 2:Oh, okay. So that and that's the kind of thing that I've been using build RS for. Where I where you are this whole idea that I really like of, like, I'm going to take in data that's in this format, and I am going to generate rust code from that data. And then you're gonna and and then, obviously, write a program again. I I I think that I am is a theme that's come up for a couple a couple different times for us in a couple different ways.
Speaker 2:And, Build RS is great. I just think it's like one of those things we don't talk about enough. I think it's I I, you know, broadly, just for those who don't have context of build RS, it's it's pretty straightforward. It basically is a a program that will be compiled and run before you compile your program. So you can generate effectively arbitrary code and you can do it, you can do it, I would say, more cleanly than you're in an environment that's a little easier to debug than your 6 to 8000 lines of block macro.
Speaker 2:Yes. Yes. Totally. So that's I I'd say that's that's that's been it's top of the mission list. I'm
Speaker 1:very Okay. So I I have a challenge for you for the next, you know, 30, 45 minutes or whatever. Think if there is a piece of proprietary software, Brian, that you are thankful for.
Speaker 2:Yes. Oh, you already got that top of mind? Well, I've got one of them top of mind because I use it as the example that I don't actually dislike all proprietary software. It's just a broken proprietary software, which is most of it. So, the the I now they've they're they're reimplementing this, but the is the, and, actually, this is a good one to talk about because I think is a makes a logic analyzer.
Speaker 2:And the, it's kind of a generational thing, I guess, because there are there are people who think a salier is unconscionably expensive because, I mean, you're spending $400 for a logic analyzer. I am definitely of the school that's like, yeah. These things were, like, $10,000 when I was undergraduate. So I think it's a miracle that I've got a logic analyzer for $400, and, yes, it's limited. It's not a high speed, logic analyzer, but it can go up to, like, you know, a 100 megahertz pretty easily.
Speaker 2:And, that software is historically proprietary. I think they are actually trying to do it. They're trying to make it open in their more recent version. And it's it's pretty good. I like it.
Speaker 2:So but they I mean, it's great. Do you have an example in mind of proprietary software that you like?
Speaker 1:I do. I wanted to kick I I want to open it up so it's just not the you know, but but let me get back to that. Yeah. But, but I do. But I I was hoping on this that we might get folks raising their hands
Speaker 2:Yes. Definitely.
Speaker 1:And talking about what they're thankful for, what what pieces of software they're thankful for. And to be clear, I have, like, a whole page of stuff if if we don't get a lot of hands raised.
Speaker 2:But it But In a site, you you were, oh, Matt, actually, don't mind. I'm gonna look. Ian, if you got something you you wanted to
Speaker 5:Yeah. The thing that was kind of front of mind for me, was my YubiKey.
Speaker 2:Oh, yeah.
Speaker 5:As as a, a professional, working within a large company, that has a simply sign on, implementation that does not sign me on via, once. But, you know, it's it's it's not a thing where you, sign on once and you sign in everywhere. It's more that everywhere every time you sign in, you sign in to the same thing. The YubiKey saves me, you know, quite a lot of time in my day and quite a lot of hassle of not having to pull out my phone and find find the app and press the button and all that kind of stuff. It it just saves me so much time, and I love it.
Speaker 2:Adam, have you used Yubikey before? You've seen these things?
Speaker 1:I have. Yeah. Yeah. And, I feel fortunate to, like, never have worked at a company that had such strict security that I need more. But but when we were at Sun and and briefly at Oracle, there was that little, like, sort of credit card sized
Speaker 2:Oh, God.
Speaker 1:Like, OTP That's so yeah. That was such
Speaker 2:a pain in the neck. That was so weird. That that
Speaker 1:So, like, I've I've kinda kick the tires on Ubiq, and man, it's it's
Speaker 2:Ubiq is great.
Speaker 1:It's so much better.
Speaker 2:Yeah. It's it's way better. And, you know, if you had to use other, like, alternatives in the of these kind of, like, goofy physical challenges?
Speaker 5:I hadn't used any of the physical ones. I had used the, Duo mobile app a lot where would send me a push notification. I would click on the notification. I have to click a button in an app. But that meant, you know, always having my phone on hand and not in my pocket.
Speaker 5:And, it was a lot more hassle than than just pressing this little button on this tiny little USB 3, dongle that's sitting in in my Mac mini.
Speaker 2:Well and I feel that, like, it's always such a hassle to deal with with security, that we often we we the the the best it can possibly do is be a minimal hassle. So I think it is great to call out something that's actually, like, doing a really pretty good job minimizing the hassle.
Speaker 5:Yeah. And it's also, like, available
Speaker 2:Right.
Speaker 5:To to everyone. Right? It's not just this, proprietary thing that's only inside one company. Everyone can get Ubiquis and it's a kinda open API so, people can, support the standard in in their own applications.
Speaker 2:Yeah. Absolutely. Alright. That's a good one. Matt, what do you what what are you thankful for?
Speaker 6:Right. So, I I'm I'm thankful for, for for for open source and for being able to to actually reuse libraries in in not only in Rust, but in a lot of modern languages in general. And I'm gonna illustrate that with, yeah, 2 anecdotes, one negative and one positive. You guys first, the negative one. You guys were talking about Antler and not being able not having any excuse to, to to not do a DSL.
Speaker 6:And I I experienced the opposite of that when I was working on a c plus plus project in 2003. This was a this is a Windows app I was I was doing some contract work on a Windows application. It was written in c plus plus using Visual c plus plus. And I I had gotten to a feature where I thought it would be useful to be able to define a DSL, and I even looked at Antler, which I think had a c plus plus version, but it was just going to be so much trouble to add that dependency to the project that, that I was like, no, well, I'll I'll just use XML. It's already in here.
Speaker 2:Oh, man.
Speaker 6:You know how that goes.
Speaker 2:Yeah. That's right.
Speaker 6:Yeah. Conversely, on
Speaker 2:Oh, Matt, you muted yourself. Or did I an excellent the other There we go. Yep.
Speaker 6:There we go. Yeah. Conversely, on the positive side, I I had one particular example in mind of a set of open source libraries that that really that were really helpful to me at a at a key point in my career. So in 2004, I was I was, and and this this could serve as a teaser for my accessibility history part 2 that I wanna do sometime. But, I was thinking I was I was looking into starting to develop a screen reader for Windows, and Windows programming used to really intimidate me because the Win 32 API is so huge, and and I hadn't really gotten my head around calm and so forth.
Speaker 6:But, and and I didn't I didn't know I didn't really know much at that time about how Windows screen readers worked. But there was a there was a group at there there was a a research group at the University of North Carolina Chapel Hill in their CS department that, had put out a a handful of Python libraries for working with the the the Windows accessibility API at the time and installing the the keyboard hooks that you needed to to ins to to, yeah, intercept keystrokes because that's something that a screen reader needs to do, and for working with the the Microsoft speech API. And so these libraries together helped me get started prototyping, and I'm I'm just thankful that that that that this group decide chose to open source libraries that they were developing as part of their as part of their research projects.
Speaker 2:Yeah. And you it's it's kind of unfortunate that it's it can be hard to and and maybe in this case, that group was aware that you were using it. But I think so often you throw stuff out there and,
Speaker 6:you know, people complain I let them know.
Speaker 2:Yeah. I'm sure they appreciate it. I I
Speaker 6:let them know, and I I I I email I mean, my email was part banks and part promotion of my product, but I did let them know.
Speaker 2:Yeah. That's great. And I no. I mean, the older I get, the more I appreciate how deep and profound open source is. I mean, it really is the most I think it is a more profound revolution in our lifetimes and arguably even the Internet when it comes to software construction, software engineering.
Speaker 2:So that's definitely an evergreen.
Speaker 6:Well and I I also emailed the professor again much later a few years ago just because I was thinking back and thinking about what what, you know, how how how helpful that was for for me getting started in something that turned out to be pretty important in my career. And that that was a more pure, thank you email.
Speaker 2:So Yeah. Those are great. You know? I I think that you, whenever you can hear from someone that you manage to influence at an important time, I think that's really gratifying to hear. So that's, that's terrific.
Speaker 2:Alright. Who's, who's next? Who's, yeah, go for it.
Speaker 1:Do we have do we have Fester joined?
Speaker 3:Yeah. I'm here. Hi. You know, and this is gonna sound a little bit of brown it's gonna sound like a little bit of brown nosing, but honestly, no JS. It it was the first no.
Speaker 3:Seriously. I mean, I'm as by trade, I'm pretty much a dot net developer. Right? I I spend most of my time in c sharp, but the thing is is that whenever I opened my first company or excuse me. My second company and I tried to make a video game, I was able to develop the entire thing in the same language from front end to back end.
Speaker 3:You know how rare of a situation that is to be able to do write things every layer in the same language. And this was, what, probably 10 years ago? So, I it does sound like it, but I I still use the I still use it to this day in tooling. Nothing is running off of it permanently, but, it really does help my day to day, a lot. And I guess by proxy JavaScript itself, though, I agree with you, Brian.
Speaker 3:TypeScript is a godsend. It it's much better than it, but I had to say it. No. That's true. The the
Speaker 2:the software is great. Good one. And, honestly, like, I I think my own relationship with Node is so complicated that it's great to be reminded about its that that, that fundamental value, that basic value in being able to use JavaScript, on the server side. It's still you know? And I, you know, I can see Matt Randy is here.
Speaker 2:And I remember, Matt, back in the day when we were talking about, you know, what is, like, what's compelling about Node. And I had a bunch of kind of arguments that I thought were compelling about Node. And that's like, you know, you're overthinking it. It's just, like, it's just JavaScript on the server, man. Like, that's what makes it compelling is that it's JavaScript.
Speaker 2:And that there's value in in having the same language on both the front end and the and the back end.
Speaker 3:And and database. So that was MongoDB. So, I mean, all of it. But, I mean, granted, yeah, it it it's it's the much better if you're gonna learn c or something like that. It makes something much more performant, but, you know, one can argue with saying I'm thankful for something that helps me make money.
Speaker 2:I there there you go. That's a that's a good one. You know? That's a that's a good one. Yeah.
Speaker 2:Thank you for that.
Speaker 1:Yeah. Patrick?
Speaker 7:Yeah. I just wanna throw out RabbitMQ. I think a lot of people don't enjoy working with it because it can, you know, kinda get into some weird situations. But, I don't think I've seen another piece of software besides, like, Kafka. Just turn a, you know, a whole machine into something that makes sense.
Speaker 7:It's like, oh, yes. That box is now a queue. It's almost like Redis turning a box or into a cache, and it's just so easy to think about, and it ships with a really, really nice little web UI so that I've actually taught people how to use RabbitMQ, like, by showing them the the web UI, creating queues, showing them, like, the different ways that you can, subscribe to different topics. And I I just think it's a great system, and I think, that whole, it it's it's evolved over the years. And, 0 AMQP 092 has been around for such a long time.
Speaker 7:So stable that, like, even if you're working with a language that's super old, it probably implements it correctly. I I just think it's a great system.
Speaker 2:And so and what version of Rabbit are you so because I have not kept up with Rabbit, I think, since, say, like, 27. Is that is that even I mean, I'm the the version strings are all mashed together in my head. But, I mean, are you running so you continue to run you running Rabbit today or or keeping up with releases of Rabbit?
Speaker 7:Yeah. Well, so actually no. We're running actually a pretty old version in production right now. As things happen, you know, we just haven't had the need to upgrade it. It's been relatively stable.
Speaker 2:Well, that I mean, that's something right there. Right? The fact that it's been it you haven't had the need to upgrade it because it's been, it's worked for you.
Speaker 7:Yeah. No. It's it's just I I get sad when people get mad at it because they're like, oh, rabbit's backed up again. And it's like rabbit is the noun in that sentence that is the frustrate, the frustrations directed at, but really it's like some other piece of the system is not doing its job. So I always point out how great it is.
Speaker 1:That's awesome. That's great. And and wanna, like, stick up their hands with the with the little emoji icon or whatever. Yeah. Nam, do you wanna jump in?
Speaker 8:Sure. Can you hear me?
Speaker 2:Yep. Yeah.
Speaker 8:Perfect. Yeah. I so you guys are asking about, open source versus closed source and or proprietary, and, I have one that crosses both. So, the combination of WireGuard and, Tailscale has been, really pleasant to work with. Being able to have, like, WireGuard mesh between all different machines without having to think really hard about it, and the fact that it's open source, everything except the server side for which there's, like, an open source, like, alternative that someone has written.
Speaker 8:It's been I like, I've even gotten a port of it working on a Lumos machines, that I'm still working very, very slowly on upstreaming, but it's it makes networking very, very nice. Again, you can, like, put a service on a on a tail scale IP address and not have to put any, like, authentication or protection on it and things just work. It's like the Internet of the old days before we had to start working worrying about security.
Speaker 2:Yeah. That's great. You know, I've heard great things on Tailscale, and I have not really, like, used it directly. But it's, I mean, I know we use it at Oxide. Right?
Speaker 2:I'm trying
Speaker 1:That's true. We we don't just have we're so secure. We have 2 VPNs.
Speaker 2:Right. Right. We're definitely secure. That's right. But and and have you dealt with it directly, Adam?
Speaker 2:I
Speaker 1:mean, I've used I've used our tailscale incarnation. I have actually, debugged a, an issue with it with using DTrace and then, you know, got an immediate response, on Twitter, and they were they were super helpful. So, yeah, I've used it a little, and the team behind it is great.
Speaker 2:Okay. But isn't that I I think you should be everyone should be so lucky as to have to debug exactly one issue with every technology they use as this kind of because you may end up with this other kind of, test of, like, how how is the community? How are the peep how do they, deal with new information or about something that is not functioning correctly? And I always find that that's very revealing.
Speaker 1:Oh, totally. Yeah. And and in this case, I saw that it was like forking exacting a process once every 200 milliseconds, which, you know, felt like A lot.
Speaker 2:Frequently. Probably more than it needs. Wait. Yeah.
Speaker 1:Given that I wasn't even using the
Speaker 2:VPN at the moment. Exactly.
Speaker 1:And they they came back right away and they both apologized. And they were like, well, you're using the old version. Here's the new version. So the it they they got me sorted out really quickly.
Speaker 2:That's great. Yeah.
Speaker 8:Yeah. Further to their credit, when I started, like, I started playing around with porting it to Lumos and I got, based on, like, Josh Cloullo's old port of WireGuard Go, they were super helpful in getting me, like, to the point where we are now, where where it works really, really well. And I'm sure that if I actually get WireGuard Go fully upstreamed, that they will be very happy to, like, help us get it, fully upstreamed for Illumos on the Tailscale side, which I don't know. Based on my rate of progress on it as a side project, it'll probably take another couple years, but, you know, we'll get there eventually.
Speaker 2:Yeah. That's great. That's great. Well, yeah, that that that's a good one. Definitely.
Speaker 2:I mean, I also feel like there's something to be said for, like, a community or a technology that is welcoming of different platforms. And clearly, you know, coming from the Alamo side, you know, we get a lot of exposure to this where I mean, like, when we finish the port to go, you know, Adam, I think I've told you this that when we did the we ported to go to Alumos, and they created the notion of a first class port so they could exclude the port that we had just get waited. Oh. Yeah. It's like Yeah.
Speaker 2:Wait. Wait. The first class port seems to include every port except for the okay. I get it. Alright.
Speaker 2:Yeah.
Speaker 1:Alright. I see what you're talking about.
Speaker 2:I I I understand. Yeah. Jason, go for it.
Speaker 9:Yeah. I'd really like to, express my thanks back in the closed source days with Solaris as a Sysadmin for, trust because, and the terminal infrastructure that actually supported that. I give you the the the worst trust or the best trust that I ever did was trusting, XTM starting up a 100 virtual Sunray x servers because we'd, gone and bought a bundle of a 100 Sunray clients and a server, and, they were locking up. Some subset of them were just locking up for minutes on end after people logged out, and we had really full labs. And it was kinda my advocacy that got the sun rays in there, so I was kind of packing death about it.
Speaker 9:But, yeah. No. S tracing XTM starting up a 100 virtual X servers and just sending it all to an enormous file that I could control through later. I worked out what the weird error messages were that XDM was putting out, and it turned out that every time you did an XDMCP indirect query, you remember the old, X terminal chooser, which let you choose it from a bunch of different hosts?
Speaker 2:Right. Yeah. Yeah.
Speaker 9:So when you did that, that wasn't apparently the usage case that the Sunray people were expecting. And, they forgot that that X terminal virtual X terminal, server was actually allocated and existed. And, so they try and reuse that virtual server number. And XDM, basically, I had to infer because I didn't have the source at this point that I could go and look at. I had to infer that XDM was basically sitting in a big event loop checking for all of the x, virtual x servers and, well, you know, the x servers and whether they'd died and, you know, you know, basically getting getting new sessions started on each one.
Speaker 9:And it would sit there and try and open repeat. It would basically rerun trying to open up this virtual, X server on a particular server number for a minute, and then it would go on to the next then it would go on to the next thing in its list. But we had a whole lab of people who were used to that chooser way of getting to their host. And that meant that we had 20 of these things scattered into a 100, hosts, and that was, like, 20 minutes or more that a particular, terminal could could get there stalled because XDM just wouldn't come around and say, oh, you need a new session, you know, set up for you.
Speaker 2:Oh, man. And and trust is what helped you crack that case.
Speaker 10:Yeah. So I
Speaker 9:was kind of mister trust, at that point and then became mister s trace under under Linux. And, you know, trust, for instance, someone, said to me, hey, why can't why do I get syntax errors when I compile this, code using SunC on SamFS? And I was like, that's interesting. And so I I trust that. And, you know, in, like, 5 minutes, I can see that it's mapping the code to and, you know, looking for a null bite at the end of the code as a sentinel in the compiler rather than doing reads for the source.
Speaker 9:And the and the best had a bug where their m map didn't actually clear out the last page of the, m map. And so, yeah, you just got gibberish on the end of your source file seen by SunC when, you, tried to compile on SamFS. So That's great.
Speaker 2:Yeah. So it Yeah. So for those who are unaware about it, so TRUST is, stands for, trace system calls and signals. And this was, developed by the late Roger Faulkner, and it is, certainly similar in spirit to s trace, but, you know, Roger had a very strong feelings about the need for trust to be entirely robust. So, the in terms of being able to follow threads and and not leaving processes in, in terrible states, And, there the, there were all sorts of stories, about the the the unholy things that that Roger did to get trust actually working properly.
Speaker 2:But
Speaker 1:So so Brian, I I referred a colleague to trust, like on Friday and for for an obscure use case, which is that trust to my knowledge in the Illumina source space is the like, one the the only place that records actually all system calls and subsystem calls because for some reason, some of the system calls were not deemed important to have their own number but instead have to be sub codes off of some other number. I think because of some history of wanting the system call number to be a single byte long. Anyway, truss is the only place I know that has a single file that describes every system call, all the sub codes, and all the arguments.
Speaker 2:In terms of the source code. Yeah. Yeah. Interesting. And it's only we've made I mean, obviously, the the things you could do with trust, you can definitely do with d trace, and d trace is designed designed to do it without actually stopping the target process.
Speaker 2:But trust remains a very, robust and, important little program. Yeah. Jason, that was great. Who's, let's see. Who's next?
Speaker 2:Simeon, did you wanna oh, yeah. Rahul, go ahead.
Speaker 10:Yeah. I so it's interesting. I you know, as as you guys start this, I was like, oh, what am I thankful for? And I went back. I was like, oh, Linux or maybe my editor or my ID, you know, Emacs or or something else or the compiler or the GCC or something.
Speaker 10:And then I I went back to the very beginning of when I started, learning about computers. And I think what I'm most thankful for is, was is the Linux documentation project. So tldp.org. Oh,
Speaker 2:yeah. Interesting. Yeah.
Speaker 10:Yeah. And and back in the day, for me as as someone who, had my first computer and didn't really have, you know, like, wasn't online wasn't able to get online, But but just just being able to read. Okay. The networking, how to and and be able to understand. Okay.
Speaker 10:This is what this is what networking is all about. I think I'm most thankful for that, like, for everything that followed in my, you know, in my professional career. And the this was at, you know, that point onwards. So
Speaker 11:Yeah. I guess that's
Speaker 2:No. That's great. I mean, because I think that and I I I feel that with and this is probably true of any project, but I think that the Yeah. That there are is a very small number of people who've done an outsized amount of the documentation, Certainly, like the Linux documentation project and the, I mean, there's so many of the Linux man pages that are basically
Speaker 10:Yeah.
Speaker 2:Due to one individual. I'm just trying to pull up the name. I kept this is a someone who spent a lot of time in the Linux man pages. And, yeah, the documentation is really the documentation is really, really important, and it's something that, I just we're hopeful the reasons you're talking about. Right?
Speaker 2:In terms of getting people introduced into the system. And it's easy to forget, that documentation or the importance of it because we become users of the system and we forget what it's like to to walk up to it afresh.
Speaker 10:I and it the the thing that's interesting to me is that it's, it's a change in culture in terms of what's happening today? And maybe it's just because where I am, but a lot of what a lot of so one of the questions that kind of constantly I keep thinking about is, you know, how do people gain new knowledge about and I'll just talk about system stuff because, you know, that's what I am most familiar with. And it's it's interesting. You know, you you search for anything online, and for a lot of the core information, there is a man page or, you know, a TLDP page that's still out there that has the, kind of the best signal to noise ratio and what you wanna know about. But it's never really it it doesn't really surface on a web search.
Speaker 2:Yeah. Right. I know what you mean. It's like you end up hitting, like, some Stack Overflow or Yeah. Exactly.
Speaker 2:And yeah. I feel the same way. I have to say, I, like, find that, like because the Rust documentation, I think, is by and large very good. But I am too used to googling answers to questions, and it's actually not the best way to search often. Often, like, you're you're right with who you actually wanna go to doc.
Speaker 2:Like, go read the docs, which Google doesn't necessarily guide you to do.
Speaker 10:And I I think I think it's I guess it's a different way of working. Because you find the answer, and then you move past this, you know. You know, you'll find the answer, and you'll move past that point. And it's all in the okay. Okay.
Speaker 10:Next next problem. Next problem. Next problem. And that's fine, once you're kind of familiar with the basics. But I wonder how newbies kinda, kinda, how the learning process has kinda changed for that.
Speaker 10:But anyway, that's that's my that's what I'm thankful for. So
Speaker 2:Yeah. No. That yeah. That's a great one. And I think documentation in general, and and especially those kind of long form narratives that I would say that just to to pitch it the, the, programming in Rust book, I I think is a great introduction to Rust that has a very it's not just the documentation of the system, but an actual narrative that takes you through it, which I think is actually very important.
Speaker 2:Simeon, did you have a
Speaker 4:Yeah. I I was actually thinking about, you you what you said about your expectations about logic analyzers. I don't know if you've seen those $5 clones of the original, logic analyzer that runs to, like, 24 megahertz or something like
Speaker 3:that. Yeah.
Speaker 1:Yeah. Yeah. I I have one.
Speaker 4:Yeah. Yeah. I I had one of those, and, and I Evan and I were trying to do something with, with, with, SPI running at about, I don't know, probably 20 megahertz, and it finally sort of stopped stopped working. Like, the $5, I had used up the $5 worth
Speaker 2:of that. That's right.
Speaker 4:So I I ended up, getting the DS Logic Plus, which which I've been very happy with. But, to get back to software I'm grateful for is I've been able to use the same software with with both. And in fact, so I'm talking about Sigrok. Yeah.
Speaker 2:And it's
Speaker 4:a GUI tool called PulseView. And and it and I've been able to use it with my scope, with my my multimeter, and it just works great. It does work. And, actually, it was clutch
Speaker 2:for me to be able to figure out, there's RMS thing called ETM, embedded trace macro cell. And, unfortunately, it it has kind of fallen by the wayside in more recent CPUs. But it allows you to trace every instruction, and there's a pretty complicated protocol to actually interpret it. And I the it was the Sig Rock plug ins that that that's how I was able to finally figure out what this thing was expecting because the documentation was, left something to be desired. But it was it was thank god.
Speaker 2:This is, like, one of these things where you're like you know, you're in, like, a protocol analyzer or whatever and something that's open source. You're like, whoever you are nameless person who has who has broken this trail, thank you so much. You're saving me so much time.
Speaker 4:And while I while I have the floor, I'll I'll get my David Tollemy crate contribution in there. I'd say, this error and anyhow, Yes. Someone coming to Rust from Go where error handling is very painful, it just makes a lot of sense. So that's what I'm grateful for.
Speaker 2:Oh, amen. I I am such a this error and anyhow convert. It is so great.
Speaker 1:Yes. So I'm really glad you mentioned I mean, obviously, the David told me it creates, but also pulse view, like, also on my list. Like, my first introduction to, logic analyzers and oscilloscopes, like, that I could just do on my dining room table. So for and I'm a cheapskate, so I didn't buy myself a sallei. And then, Brian, to your point, this is like this is sort of a thankless task.
Speaker 1:I mean, business related, but clearly born from a community with a lot of passion. And I got a couple others that I wanted to mention along those lines, to grab the mic back.
Speaker 2:Yeah. Definitely.
Speaker 1:1 is and I was thinking about this because what what what are these pieces that I use every day? One of them is QMK, which is open source software for keyboard controllers. And q m k? Q m k. Yeah.
Speaker 1:So this this is this is software I'm running on my keyboard. So every character I type is going through QMK, to and it lets you, like, remap keys and I've got LEDs because it's that kind of keyboard. It lets you, you know, program them to strobe in different ways and stuff. Very cool. And, again, just this this beautiful community that, that like has built this up and make it work for a bunch of controllers and so forth.
Speaker 1:And the other one that I use every day is on my camera, at the other side of my computer, Which is a thing that you talked to Trimmel Hudson about, Brian. Magic lantern. And this is fucking incredible. Right? This this takes these this, proprietary software on Canon cameras and it's it's not exactly a firmware hack, but wedges its own code.
Speaker 1:You just you jam it onto, on a onto a data card, stick it into your camera and all of a sudden your camera can do all this magical stuff including like execute a bunch of proper like your own handwritten code if you wanted. But but have very fine grain control over your camera. And again, like, you have people who are just there's no business associated with this. There's people passionately porting this to new cameras left and right. It's very cool.
Speaker 2:It's a basic Trammell is the gutsiest person on the planet. I feel at least, like, to take this very expensive camera and be like, and now I'm gonna load my own firmware on it. You're like, okay. Okay. Wow.
Speaker 2:Yeah. It's it's amazing. And if people haven't listened to the I mean, Trammell the the Trammell is someone again that you just, like, go consume all everything he's ever produced. It's all so incredible. Really, really interesting stuff.
Speaker 1:Yeah. An amazing he's an amazing person in terms of being able to start these projects, get them to a level of sufficiency, but then enable a community to sort of pass the baton, which I I think is a missing step in so many projects.
Speaker 2:Yeah. He's like a Johnny Appleseed of open firmware. He, like, goes from place to place, like, cracking these things open and then kinda moving on to the next town. And that's the way he likes to operate. And it's very he's extremely effective.
Speaker 2:Yeah. Matt, aside getting in here.
Speaker 12:Hi. I assume you mean me.
Speaker 2:Yeah.
Speaker 12:Hi. Hey, man. Hey. What's up?
Speaker 2:How are you?
Speaker 12:So, I just wanna, good, man. I wanna echo all the open source. I mean, obviously, amazing. Right? Like, open source, the best.
Speaker 12:Revolutionary change, etcetera. But for me, the thing that I've been most thankful for in, software, which is what I work on, in the last year has been EBPF. It's actually gotten me excited about, like, writing software again. The possibilities it unlocks, like, I feel like the just somehow it was like the last little bit of push that I needed to kind of like get how the entire computer I could, like, program.
Speaker 2:And so, Ben, are are so you using eBPF to, to, like, understand what the system is doing or actually modify its behavior?
Speaker 12:So so understand first, but I have grand designs on modifying its behavior. Yeah. I mean, that that's right. I mean, it's it's much harder or
Speaker 2:I don't know.
Speaker 12:I I would say it's different, if you wanna start modifying its behavior. But but that the fact that you could use it for that, was just so surprising to me that I I spent time on it, you know, and it's it's it's really interesting.
Speaker 2:That's great. Yeah. I have, you know, I, they definitely it's it's got obviously a different approach. With with with DTrace, we definitely have always believed in in not allowing people to arbitrary modify this decision's behavior, which I think has got strengths, but also weaknesses. And it's great that people are using eBPF to do kinda arbitrary things easily.
Speaker 2:It's are you actually I mean, I guess, like, what kinds of things would you implement in eBPF?
Speaker 12:Right. So, I mean, what what I personally am doing with it is I have a a fleet wide monitoring agent that's kind of, like watching for various things that are interesting to us and like kind of putting it into a, you know, a data stream that can be indexed and, you know, aggregated, queried by people. It's like, you know, you made this TCP request. You made this HTTP request. You may you know, you're doing these various things that are that are interesting, and we kind of, you know, aggregate them so people can find out what's happening, sort of from the bottoms up.
Speaker 12:Right.
Speaker 2:Okay. So you you you are really using it as kind of arbitrary observability, which is great.
Speaker 12:Yeah. But but but, basically, like, low level. So there's, like, the top down, which is, like, you know, open telemetry and, you know, explicit, you know, instrumentation, but and this is,
Speaker 2:like, coming at it from
Speaker 12:the other direction. Yeah. Mutation, but and this is, like, coming at it from the other direction.
Speaker 2:Yeah. There's nothing beats the bottom up in terms of, like, what what's actually happening on the system?
Speaker 12:Yeah. I mean, it it has been it's been just enlightening to sort of see how things work. And, like, look, you know, I I I love DTrace. It, like, opened it opened my eyes to, like, kind of what's possible in terms of of changing code that runs in kernel space, like, safely at runtime. I mean, that was amazing.
Speaker 12:Sadly, I don't use any systems that, like, have access to it. Yeah.
Speaker 2:No. Well, I I think it's honestly, no. I think it's great that there are I mean, it and I don't know to what degree DTrace kind of directly informed the UBF or not, but I think it's observability is great, and it's important. And I welcome observability and debuggability, I welcome in all their forms. So I am glad that it's I think it's great that it's, that it's so useful.
Speaker 2:You know? It's good. So we can figure out what the what the healthy systems are doing. We should.
Speaker 12:Yeah. And I I would I would say the the one thing that's been particularly satisfying for me is seeing some junior engineers, kind of see this work that I'm doing with eBPF and, like, really kind of grabbing onto it and saying, like, woah. How did you do that? Like, that's super interesting. Like, how can I learn more about that?
Speaker 12:Like, what? Well, this is such such a novel, you know, kind of way of coming at this problem. Like, I never would even thought of it. And, like, getting people excited about that, like, I just think it's super
Speaker 2:cool.
Speaker 1:Yeah. That's great. Yeah. Yeah. When you're turning a new lens on a system like that, where you're able to to look at these these data that were previously either impossible to see or impossible to make sense of.
Speaker 1:And then, you know, extracting the actual behavior in your own code that's that's creating that. I mean, it's just it's unbelievable to folks who maybe have never seen that kind of lens before or had access to those kinds of data before.
Speaker 12:Yeah. Super good.
Speaker 2:Well and getting people over their own hump of I think that, you you know, one of the challenges we've always had with VTrace is that it's you know, there's a big difference between kinda looking at someone else do it and learning how to do it yourself and having it kind of bail your own butt out. And I'm sure that the same is true of UPF or any observed build you're debugging tool. It's like, how do you facilitate getting people and how do you facilitate those junior engineers, Matt, getting kind of, you know, excited about it to the point that they're digging in and getting kinda over the hump and realizing that, like, yeah, you can actually you can answer these questions. You can go gather the data. We don't have to guess anymore.
Speaker 2:We can actually go figure out whether it was actually happening.
Speaker 12:I mean, I I had experience, like, a couple of days ago or, like, late last week. A different engineer that I worked with before came to me and said, hey. I heard you're doing this thing. Like, I got a PR for you, but I'm not sure if you're into it. It, but, like, I think I can solve this other problem we have.
Speaker 12:And he'd, like, you know, written the c code, and he's, like, oh, you know, I'm not sure if it's any good, but, like, here's here's what I got. And it was, like, it's awesome.
Speaker 2:It was
Speaker 12:so good.
Speaker 2:That's great.
Speaker 1:That's cool.
Speaker 2:And I don't know. Have you met Matt? Do you did you know one another? No.
Speaker 3:I don't think so. Okay.
Speaker 2:So Matt, is a Matt, I've known him since early Node days. And in particular, Matt helped really inspire Dave's work on the the all the post border work we did with JavaScript beyond Node because Matt, in particular, had a a an app that was, like, suffering from that was leaking memory over time. Right? You know, it's GC. It's just like the object graph's getting bigger and bigger.
Speaker 2:He's having reset this. Like and Matt's just like, can't we just, like, figure out what this memory is? Like, why can't we figure that out? And I'm like, why can't we figure that out? So, Matt, I'm always very grateful for you, but we're just kind of, like, just asking these kinda, like the the the basic questions are really important.
Speaker 2:And, like, there's often a lot of really complicated implementation to answer those basic questions, But we should we should ask them.
Speaker 12:Totally. Totally. Adam, I think I said hi to you one time in a joint meetup, but,
Speaker 3:oh, sorry, man.
Speaker 12:I'm sure
Speaker 2:I'm sure
Speaker 1:it was
Speaker 12:not not so memorable.
Speaker 2:You know, and I I I I I know it was extremely awkward, and I really wanted to use this to clear the air, and it just didn't work out. This is really backfiring. I had this, like I'm like, I need to get them together. They can they can but now I'm sorry. This really went sideways.
Speaker 2:Well, you know
Speaker 1:In a hurry. Yeah.
Speaker 2:It's all good. Alright. We've got a a couple more minutes. I know some folks that have, haven't, yeah. Matt Tsai, go chime in.
Speaker 11:Yeah. I mean, I've probably got my top 3 here. In no particular order would be CUDA, Ethernet, and GPS.
Speaker 2:I don't know
Speaker 11:which one you wanna take first.
Speaker 2:Oh, yeah. Let's see. Yeah. Let's cut it. Let's cut it.
Speaker 2:Super important, I feel. Yeah. Start with that.
Speaker 11:Yeah. I mean, CUDA is like the first and I might argue the only, nontraditional computational language that's actually gotten something right. You know, they've really got the abstraction just like absolutely nailed in terms of how you'd want to implement this, like, kind of the l I w but not really kind of architecture that you encounter on a GPU. Like it is despite being proprietary, they've just nailed the usability.
Speaker 2:Yeah. No. It it's it's definitely important. And do you what capacity do you use it? Do you are you using it for, like, MLDL?
Speaker 2:Or are you using it as a, like, a g p GPU for scientific computation or for graphics, or how how do you actually use it?
Speaker 11:G p GPU, mostly scientific computation type stuff. It's, you know, like, in terms of implementing arbitrary algorithms, it's it's the one thing that I've encountered that's, you know, like, there's a lot of places where, like, oh, yeah. Okay. Fine. It runs tensorflow.
Speaker 11:But, like, actually or, like, it runs VHDL on the side of an FPGA to the extent that an FPGA quote unquote runs anything like a GP like CUDA hits that really nice middle ground between being understandable as software. We're, like, oh, VHDL, you have timing analysis and, like, try explaining to someone that, like, well, you didn't need timing. So, like, you just get random data. Yeah. Instead of, like, you just get the data slow.
Speaker 11:Right? But, like, CUDA still hits that point where, like, you can write bad code and have it work okay, and, like, be understandable to mere mortals, but, like, it's also really able to leverage that parallel architecture of the hardware in a way that's just beautiful.
Speaker 2:Well, and and to to our discussion a couple weeks ago, I mean, that's what happened to supercomputing. Right? I mean, could have been that that is modern supercomputing effectively. I mean, Matt, I'd love to get your take on that, but I feel that's what that's what it feels like happened to supercomputing.
Speaker 11:Yeah. I mean, pretty much. You know, you you can make the open GL argument. I'm more of a CUDA guy, but, like you're open CL rather. But yeah, I mean, that's those are supercomputers, right?
Speaker 11:I mean, like just core count for silicon density instruction set complexity is low. Like, it's it's everything that you'd ever wanted. Right?
Speaker 2:And and not to go kind of cube cut off versus cube c t l on you, but I noticed you're saying CUDA, and I've been saying CUDA, I think. If I'm if I'm mispronouncing it, can we just get this out there?
Speaker 1:Me too. I'm the same kinda idiot if that's the wrong way.
Speaker 11:I always thought it was cuter. I mean
Speaker 2:I we're we're gonna go with you. You're the you're the I I I
Speaker 1:think person who's actually used it.
Speaker 2:The person who's actually used it.
Speaker 12:Like a triangle.
Speaker 11:Okay. I have never had anyone from NVIDIA correct me. So, like, what's 5050.
Speaker 2:There you go. Yeah. Alright. And then you've got, so that that however you pronounce it, it's a that's a great an important contribution. And then alright.
Speaker 2:So you also had Ethernet?
Speaker 11:Yeah. Just absolutely phenomenal. Anywhere from 10 megabits per second to 800 gigabits per second, it all interoperates pretty damn near seamlessly.
Speaker 2:Like It's good. I mean
Speaker 11:If if there is such a thing as a universal protocol, that is it.
Speaker 1:I'm thankful for Ethernet for sure.
Speaker 2:Yes. Yes. Well, especially wired Ethernet.
Speaker 1:Yeah. Tell me about it. And
Speaker 2:then, Matt, I think you had a third one in there. Right?
Speaker 11:Yeah. GPS.
Speaker 2:GPS. Yes. Yeah. That's a big deal. Isn't it?
Speaker 2:The whole GPS thing.
Speaker 1:I mean, Brian, I mean, since you're an oldster too, like, I mean, I have I have an old car. I have a 20 year old car, and it has 20 years worth of accumulated maps in it. Have you ever explained, like, a map to a child?
Speaker 2:Like a like a paper map?
Speaker 1:Yeah. Like that you would take out a map and find where you wanted to go on that map and then use that map to navigate streets.
Speaker 2:Through that. And the fact that you would have the and then you'd often, like it's, like, very actually, it you know, it's very hard to drive and navigate at the same time. So yeah. No. You sound like you sound bonkers when you when you Yeah.
Speaker 2:Describe that stuff. No. GPS so g and it is amazing how ubiquitous GPS has become and how low power and yeah. Sorry. Go ahead.
Speaker 11:And, like, I was not even thinking the navigation component In that, like, that's definitely, like, its nominal purpose and very cool, but, like, GPS is when you get into the technical details of it, it is as close to a universal planetary reference frame in the relativistic sense as you can get. In that, like, you now have a basically internationally, like, a whole global reference about timing and frequency so that you can do things like Google Spanner being, like, the the most open example of that, where, like, you now have a common time reference for the entire planet.
Speaker 2:So you're really thinking of it more in terms of synchronized time than anything else. Yeah. Yeah. Interesting.
Speaker 11:I mean, just just in terms of, like, being the the complete miracle of general relativity, like, I can navigate on road signs. But, like, if if you want me to, like, not have to break out graduate level physics textbooks to synchronize 2 on opposite sides of the Atlantic Ocean. Like, the GPS disciplined oscillators are basically the most precise frequency references we have, short of the references that sync the GPS system, and like getting to do things like Google Spanner, but like you can actually do something incredibly similar to that with like a raspberry pie of, like, a a $20 GPS receiver, and that doesn't take Google level engineering resources to pull off. Like the idea that this is just free for all humanity is phenomenal
Speaker 2:yeah it is nuts Yeah. Why have I been so ungrateful for GPS? I feel like I I think I've not given sufficient credit to the GPS. You're really good at this. There's gotta be a good book on this, on the history of the of of GPS.
Speaker 1:It's like the longitude, but for GPS.
Speaker 2:Yeah. Exactly. Right.
Speaker 4:Well, because it There is a there is a book that I would recommend that's kind of adjacent to this, which is about the Iridium system, Iridium Phones. It's called, it's got a fun name. It's called Eccentric Orbits. It's kind of like a business book about the drama around, the invention of Iridium and all the drama around the bankruptcies and then the US, DOD bailing them out and Motorola wanting to de orbit the whole constellation. That's that's really a a great book.
Speaker 4:That is sounds
Speaker 2:I can check that into my veins. That sounds good.
Speaker 4:It's it's interesting to hear you folks talk about GPS, though, because something which probably most people outside of the US might remember is something called selective availability and, and, it was actually pretty interesting how that ended. I think it was embarrassment, of the US when not all US military could actually afford the encrypted GPS terminal. And so you had families paying for commercial GPS that had reduced resolution.
Speaker 2:And there were would I feel like there were a bunch of tricks too that the commercial GPS is able to do to basically amp up their own resolution.
Speaker 4:If if you if you needed to use GPS for something where you really needed high resolution and you were outside the US, you could actually correct that. And there was actually a whole network of, they called differential GPS. So, basically somebody goes and very accurately surveys a point on the planet somewhere and then transmits a, a signal, a low data rate signal on a very low frequency, like shortwave type frequency, that that is just basically just saying, given the satellite given GPS coordinates you are seeing right now, apply this correction to the coordinate to get the actual position. So differential GPS used to be a thing. I don't think it is anymore.
Speaker 12:The The The differential GPS
Speaker 11:is definitely still a thing. Like, I know that with, like, cuts hardware, you are now able to get, like, 3 millimeter resolution with stuff you can buy off like Adafruit.
Speaker 13:Oh, oh, yeah. That's one of the one of the final exam questions or one of the required projects in the AFIT, the Air Force Institute Technologies GPS class is to draw art on a poster using differential GPS at the end of the robot arm. If you complete the poster, you get credit. But yeah. That that was
Speaker 11:But if you don't yeah.
Speaker 13:Yeah. Yeah. So I I still have that somewhere. That was that was that was fun.
Speaker 2:Wow. And, Bill, did you did you take this course? I took it.
Speaker 13:Yeah. Yes. Yes. I did. Yeah.
Speaker 13:So it it it Complete with ionospheric. Oh, yeah. Yeah. We we
Speaker 12:Can can I can I tell you a fun story about GPS Go? Which is, in, you know, self driving cars, right, they're a thing. None of them actually use GPS to navigate. Like, for the for the most part, the the high end self driving cars use GPS to sort of roughly find out where they are. And then it's all lidar based after that.
Speaker 12:Because GPS, as good as it is, cannot be counted on reliably enough.
Speaker 2:And is it just because of oh, you're just gonna get it's too easy to have that signal be blocked with foliage or a tunnel or Sure.
Speaker 10:Weather. Right? So it's like those
Speaker 12:correction signals, like, when weather happens, you know, they're okay. But the reflection problem is huge. So in the urban canyons, you get all these reflections of tall buildings. Very, very hard to reject all those reflections.
Speaker 2:Well, I I really fortunately, my 17 well, I I really fortunately, my 17 year old doesn't actually listen to this because, you know, with the the he would love to have a whole new bevy of excuses about how the locator on this phone was actually incorrect. They'd be like, no, dad. That was an urban Urban canyon. No. That's an urban canyon, dad.
Speaker 2:That's an urban canyon. That's sorry. No. I was
Speaker 1:I was in the library.
Speaker 2:Right? In the library. That's exactly right.
Speaker 12:But but to the original observation, GPS is totally amazing, and I agree with you. This is the fact that they give it away for free, it's awesome. It's so good.
Speaker 2:Yeah. I mean, I guess it's kinda, like, hard to not give away at some level. Right? I mean, I guess the nature of the problem means, like, well, I guess we're gonna have to give you some I mean, yeah, I think did did they kinda sorry. Go ahead.
Speaker 11:Well, I you know, like, they they absolutely didn't have to. Right? I mean, GPS was completely a military project from day 1. Right? And the fact that, like, someone had the foresight to see the civilian possibilities on it is just you know?
Speaker 4:There is also another have
Speaker 11:to be very grateful for.
Speaker 4:There is another force which is that, which is that, you know, other countries recognize that, you know, the the US military being able to turn off GPS at a moment's notice was an issue. And so there are alternatives. Right? So your GPS receiver typically today has the ability to receive position information from Galileo. Is it called Galileo?
Speaker 4:So the European Union. One. Yeah. And, you know, China has something called Baidu and Japan had I think both Japan and India have positioning satellites that are geostationary if I'm not mistaken. So there's there oh, and then and then the, the Russians have one too.
Speaker 4:So there's, like, 4 odd constellations of something that is GPS or GPS equivalent.
Speaker 11:But most of them are only location specific. I'm pretty sure the American GPS is the only constellation that covers the whole Earth.
Speaker 4:I think the European
Speaker 11:loan ass too?
Speaker 4:The European, the Russian, and GPS. So there's I think there's 3 that are global. Because they're all, medium or low Earth orbit.
Speaker 12:Yeah. I think that Russian gluvas covers the whole earth.
Speaker 11:Yeah. I thought the European one was optimized for use in Europe only where, like, Alright. So Citation needed.
Speaker 2:Yeah. There you go. Right? Okay. So I I do wanna, keep Adam from getting into too much trouble with his especially with his 4 year old.
Speaker 2:But the, I wanna make sure that we got a chance to to kinda chime in here. So I think, Bill and and Rick and then Bart's, Bart's the man. What what are you thankful for? Oh, I you know, I also wanna give a quick shout out to the salient logic analyzer, but the thing I'm really thankful for is GREP. The workhorse.
Speaker 2:Yeah. Yeah. Especially whenever go ahead.
Speaker 1:Use that every day for sure.
Speaker 2:Yeah. Yeah. Especially whenever due to decisions that were made before, I joined the place where I
Speaker 14:work at now, we use Bitbucket, and Bitbucket search is, less than functional.
Speaker 2:If I errors, you can make for a lot of gaps with Grab. Grab is Grab is definitely the workhorse. One of those things you run every day, and you're, it's like Oc. Right? Gotta be although, actually, I learned from a a kid in the actually, a mother of a kid in the neighborhood who apparently, like, watched my talks online and asked for the Oc programming language book for Christmas last year.
Speaker 2:And yeah. I know. Like, am I am I corrupting the youth or am I edgy? I actually don't know. Like, I got mixed feelings on this.
Speaker 2:I kinda feel like, you know, he's read if you're reading the classics. You know? Rick, would you did you wanna chime in here? Rick and Bill. Yeah.
Speaker 2:Go ahead.
Speaker 15:There's so many options, but, lately, it's been a a lot of Ghidra. I mean, for all the things that the NSA does, Ghidra is, like, one of the few things that seems to have have paid off really well for, you know, a a very useful tool.
Speaker 2:Yeah. I really need to ramp on key drive. You know, watching you, watching other folks at Oxide use it. I mean, you're watching Cliff use it. I mean, it's it it Adam, have you used it at all?
Speaker 1:No. No. No. I was hoping, Ricky, could I I have no idea what it is.
Speaker 2:Oh, you don't know what it oh, goodness. Oh, yeah. Yeah. Rich, tell you what it is. No.
Speaker 2:It it's really quite remarkable.
Speaker 15:So Ghidra is is a tool similar in concept to IDA, which is the interactive disassembler. But, basically, the idea is it's reverse engineering software. So it it is a suite of, reconstruct control flow. It will, you know, reconstruct control flow. It will, you know, collect all the debug information and symbol information and then not only give you disassembly, but also give you a decompilation.
Speaker 15:And so you can take an unknown binary that you found and dig into it quite deeply and understand what functions are called from where and, you know, all the data references and things like that.
Speaker 1:This this sounds awesome and right up by Ali. Actually, I I recognize this name because I was searching for a book on WebAssembly this weekend. And this in the public library because that's what I do. And, this book on Giza keep on kept on coming up and I was like, well, I don't care about that thing. Turns out I'm gonna take out that book from the library today.
Speaker 2:You you should, as a as I it it is the the the second and ultimate coming of Flipdas, Adam. This is Yeah.
Speaker 1:Yeah. Yeah. Yeah.
Speaker 2:It it's good stuff. Alright. Yeah. Bill, what do you got?
Speaker 13:Well, I've got 2 things I'm thankful for, which kind of segue from 1 into the other. I if I had to trace in, any particular open source library I'm most thankful for, it would be FFTW, fastest Fourier transform in the west. Started most of my, I've got a physics degree, wound up doing a lot of signal processing for embedded radio receivers and instrumentation stuff, and then wound up, you know, having to use that to, you know, it's like, you know, looking at numbers is one thing, but if you're trying to go from numbers to a picture or a graph, you know, time to bust out the other workhorse and pipe something to the new plot.
Speaker 2:Oh, amen. Oof.
Speaker 13:Because, oh my God, y'all. If, y'all, to quote some, to quote some YouTube video about new plot from this crazy guy, You ever wonder what's going on with a piece of hardware? Well, so are we. Yeah. Yeah.
Speaker 13:By the way, watching that on the video wall at work was amazing and all my coworkers, you know, just, like, started yeah. But, you know, Google Play, you know, lets me, like, take, you know, I was able to take time series data from radio signals and instruments and make sense of it. And then one day, you know, I get told the file server keeps on, you know, locking up as for no apparent reason, and our admins can't make sense of it. And I'm thinking why are they talking to me? I'm a physicist.
Speaker 13:I have to look at time series. I need to instrument you know, 12 month, recurring problem. You know, 12 month, recurring problem by managing to figure out that it's 3 particular workstations running a cron job.
Speaker 2:Oh, man.
Speaker 13:Yo. I only had this because they had they had 18 months of log data That they had been trying to do that. And I'm like, okay. I I looked at it as a signal processing problem. Visualized it with new plot.
Speaker 13:And from that, they're like, oh yeah, you're a sysadmin now. And I'm like, wait, what? What what just happened here? Right.
Speaker 2:One of us. One of us.
Speaker 1:You've been deposed.
Speaker 11:Does that mean does that mean I'm not the only person to have ever debugged the systems issue with the FFT? We are
Speaker 2:all alone?
Speaker 13:I track a previous employer, I tracked down a break in fiber between campus buildings using the signal generator and an oscilloscope to do time distance reflectometry because my boss was too cheap to pay an outside contractor to do that. So
Speaker 2:That's the story. Well, actually, like, in FFTs are so I and I was actually taught in FFT as part of the computer science curriculum. But Yeah. And, Adam, I don't know if you read the same so the so, we shared a professor. So Phil Klein taught us FFTs.
Speaker 2:And we were all like, well, this is extremely interesting, but what is this useful for? And Phil is a theoretician. He's like, I don't know. Oh. Oh.
Speaker 2:Oh. Yeah. So Well, exactly. So yeah. I mean so no.
Speaker 2:Don't worry. I you're having the same reaction that my engineer roommate had. I'm like, hey. Can you tell what an FFT is for? Because, you know, our CS professor says he's like, I don't know.
Speaker 2:It's a these were some he's like, no. No. No. Stop. Okay.
Speaker 2:Let me go explain all of the uses of an FFT and why this is truly God's gift, to be able to go from the from the time domain to the frequency domain.
Speaker 13:Yeah. Yeah. I mean, it's amazing, when I when we took signal processing for physicists, one of our final problems was write a 16 bin FFT from scratch. Show your work. Okay.
Speaker 13:Moving on. But you know, between going from FFTW and all the various libraries that have popped up since, gnuplot and then, you know, later having pivoted into Python and matplotlib and Python and Seaborn and now Python and now all the visualization libraries that are everywhere. I can't throw a rock without hitting a visualization library, but I I'm just, you know, I'm thankful that everywhere I look, there's always something that hits my sense of wonder. And that's the thing I love about working in this industry. There's always, there is always a rabbit hole to go down.
Speaker 2:There's always a rabbit hole to go down. I had as a that is a great note to end on. I I think that the the because the wonder I and I think that anyone who is it becomes kind of, is is trying to kinda find the joy. It's like you gotta find the wonder in the fact that all this stuff works is amazing. The fact that we got that that, you know, GPS and and whether it's Ethernet or CUDA or or I mean, so many of these technologies are the just the absolute unsung heroes, and they are marvels.
Speaker 2:So I glad that that was a great note to end on. Adam, any, any
Speaker 1:Brian, this is a great topic. I almost hesitate to bring it up, but my my piece of proprietary software is Microsoft Excel. But it actually dovetails very well with, you know, what Bill was saying about, being able to observe and analyze data simply.
Speaker 2:I
Speaker 1:don't know if an open source alternative to Excel.
Speaker 2:Yeah. I But this is there are few things you love as much as SQL. But
Speaker 1:It's true.
Speaker 2:That's true. It's true. I mean, if I if you had to choose, I mean, you they're they're right up there.
Speaker 1:Yeah. Spreadsheets are great. But this has been an awesome session. And Brian again, great great topic. Very timely and a lot of good good things to go check out.
Speaker 2:A lot of good things. And, hey, happy Thanksgiving, everyone. A lot to be grateful for. And hope you and your families are well. And we'll, talk to you next week.
Speaker 1:See you next week. Thanks, everyone.