Jonathan: Hey folks, this week, Randall Schwartz and Aaron Newcomb join me and we talk about Linux, and some geopolitics, and some open source challenges. It's a great show, you don't want to miss it. This is Floss Weekly, episode 810, recorded November 19th. A rising wallet pays for all boats.
It's time for Floss Weekly, that's the show about free, libre, and open source software. I'm your host, Jonathan Bennett, and today is a little bit different. We do, of course, have a co host. We sort of have two co hosts. We've got Rundle Schwartz. We've got Aaron Newcomb and I'm not sure which one is the guest and which one is the co host.
But it is, it is great to have both of you here today. Yeah. Great to be here.
Randal: It's like the, what is it? The three sort of Sopranos, not three amigos,
Jonathan: three Sopranos,
Randal: three amigos too. But I was thinking, isn't there like. Three opera singers.
Jonathan: Oh, three
Aaron: tenors. Yeah.
Randal: Three tenors. There we go. Not sopranos on the wrong band.
I'm more of a baritone actually.
Yeah, yeah. Me too, actually. So, and as I get older, my karaoke goes lower. So
Jonathan: instead of doing Kermit, the frog, you're going to eventually be You, one of the one of the big animal boy, I don't, I don't even know the Muppets well enough. Animal! Animal! Yeah, that's
Aaron: right. Practice your drums. Yeah, there you go.
Randal: Something like that, yes. I'm going to regret this video already. This is great. Your background
Jonathan: removal tool, I hated that, by the way.
Randal: Oh, oh, I'm sure, I'm sure. I wasn't even looking. I had my eyes half closed. Clothes like animal. That's great. That's great.
Aaron: It's either that, or we're just going to be the, the, the two guys that sit in the back, the two old guys, the two grumpy old guys that sit in the back.
Oh
Randal: yeah. Waldorf and Statler. Oh yeah, absolutely. That's what I feel like more and
Aaron: more these days. I'm
Randal: already doing that. I'm already, I'm already channeling them. Sometimes when people ask me questions, I act like one of those guys. I don't know which one brought both of them.
Jonathan: Yeah, that's a little too real, man.
All right. So, hey, there is, there is some news that I have came across this week and I think it's something that's worth talking about. We'll see where all this leads us. The, the main, the main bit of news though that I thought was interesting is that there is a, there is an Ubuntu, I guess it's a derivative, it's a repackaging of Ubuntu.
It's made specifically for Rockchips, which those are the things in, Well in a lot of here. I've got one here actually you see them in little devices like this And so this is a well, it's a it's it's kind of the equivalent of a Raspberry Pi CM4 Yeah But the the SOC so the system on a chip that runs this is a rock chip and in this case It's the RK3 3566 and we're sort of in this weird world where Rockchip does a little bit of work on like pushing things upstream to the Linux kernel.
In fact, I found out just the other day that there are a whopping, I think it's three kernel maintainers that are at rockchip. com. Right? So, like, it's a little bit better than I thought it was. You have some companies that they'll push hardware out. And it's like, eh, if you want to put it in the kernel, that's fine.
But, if you want to run anything official, here's our kernel from 10 years ago that has all of our patches on top of it. Oh, I hate that. Rockchip is doing a little bit better. But when it comes to actual distros to put on it, one of the real leading ones was the Ubuntu Rockchip distro. And that was run by a guy named Josh.
And a couple of weeks ago he put out an announcement that says, I'm not going to be able to do this anymore. So he's frozen the GitHub, he's frozen the Discussions on it. There's no more releases and yeah, and it's it's it's not super great and one of the things that people have pointed out about this is It's, it's a real problem for all of the people that use this, because RockChip doesn't put out a distro, and a lot of the, you know, like, so, so this is a, what is this one, a Banana, something by BananaPie maybe?
I forget. Or no, this is the Pine64 board. Oh yeah, I've got a
Aaron: Pine64 sitting up here too.
Jonathan: Yeah, so this is one of Pine's boards, and it's, it's, again, it's in that little CM4 format. And a lot of these companies don't put out a distro either, they don't put out images. It's just, oh, go grab the the, the Ubuntu image from from Josh Reich.
And that is now frozen and it's not, it's not great. I'm not sure what direction we go from here.
Randal: So, again, I don't know a lot about Linux, which I've been saying over the decades, I really don't know that much about Linux. Is it that the special Rockchip Linux distribution has like extra drivers to support unique hardware?
I mean, what's missing in the standard Ubuntu distribution? You can't just plop it on there. Yeah.
Jonathan: And that's a, that, that is actually a really good question. I've spent some time over the last few weeks figuring that out. Good question. Because it's not, it's not immediately apparent what the answer to that is.
Maybe. Ah, and I think there's two main things that's, that's different about this. One is it's got U boot built right into it because a lot of these devices you actually flash U Boot. And U Boot then boots the kernel. Well, in some cases, you've got to flash U Boot with something called a device tree that's specific to the device.
And so, you know, you've got that where you've got to build this kind of special image that's got U Boot at the very beginning of it, the right device tree, U Boot, and then your kernel after that. And you've got to have the right things turned on in the kernel, right? Because when you build Linux, there's a whole bunch of modules, there's a whole bunch of compile options, like, do we support this piece of hardware?
Do we support that piece of hardware? Because you have to imagine if you just turn every switch on, you get really, really big kernel binaries. And so one of the other things that this project was doing was, you know, these are the boards we support. Let's make sure all of the different switches are turned on for the images.
And then one more thing I know that it does is there are some like out of tree patches. Where, you know, let's say HDMI for one of these particular boards. Well, that hasn't landed upstream in the kernel, but there is, there are some open source patches floating around. That's like, well, you can patch the kernel with this and this and this, and it makes HDMI work.
So he would, he would integrate some of those things as well. I've got another bore, the, the, this one's by TuringPi, it's the RK1, which has another of these RockChip chips on it. And while, while resear I'm trying to do a review on it for Hackaday, actually, and I kept running into the problem that, like, Trying to boot Linux on it was fundamentally broken in one way or another, unless you were using, you know, this specific Ubuntu image.
And I finally got cobbled together all the patches that you boot needs to be able to then boot like Fedora. So I have one of these now that I can boot Fedora 41 on just the, the regular image and it finally works. But getting to that point, it's just been a pain.
Aaron: I mean, isn't there just, I mean, so I fell away from, from.
Ubuntu, especially on the desktop a long time ago when they stopped supporting Gnome and they came up with their own thing. And I just don't like the, the whole, the whole paradigm of Ubuntu right now, but it is pretty stable. So I use derivatives that are based on Ubuntu or I just run stock Debian, right?
Which Ubuntu is based on. So you've got Debian, then you've got Ubuntu, which is built on top of that. And then other like Linux mint and other popular distributions built on top of Ubuntu. So isn't there, can't you just run Debian? Is the problem just that nobody's, nobody's working on all the special things to get the rock chip and all the peripherals to work correctly?
I mean, it seems like, I mean, this is one of the beauties of Linux actually, right? So if this was like Windows or, or Apple saying, we're not going to support this version of Linux. This Mac book anymore, right? Like that would be bad, right? Cause then you have no recourse, but it's Linux. So one of the things about why should I run Linux when we talk about that a little bit is that, you know, someone else can come along and build it.
Like you have started to test things on. Right. And because it's open source, you can actually come up with something. So I see this as a setback. But I don't see it as the end of the world for Rockchip or, you know, it's a pain in the butt basically for people that want to run the latest and greatest because now they have to run whatever the last version was, go get Debian and build the rest yourself.
Also, the other thing I would say is on these boards, I know, at least for myself, having worked on these boards for the past 20 years or whatever. I very rarely run those boards with a GUI with the desktop anyway, because I want those boards to go do something. I want those boards to go run my lights. I want those boards to go run my 3D printer.
And so very rarely am I running a GUI anyway. So as long as I can get to the command line, as someone actually, as long as someone supports all of the peripherals on that device, I don't really care because I just need to get in there, get to the command line and get something done. That's, that's my take on it.
That's, that's my quick take. Yeah. Not so quick.
Randal: So, so this, that sort of begs the question for me is there not a community around this fork of Linux? Does he not have people that are talking to each other about the distribution that he's no longer maintaining?
Jonathan: I, I know there are people talking because like I am one of the people talking it's just okay.
It's it's early enough that it's unclear what's going to happen here. So one of the, one of the frustrations that Josh had is that he said, I've been trying to get in contact with rock chip for a very long time now. All of the vendors I've talked to have not been able to assist me. I need access to the latest SDKs to be able to fix things.
And then also there was another, there was another Oh he's using GitHub and so each of his artifacts, which is essentially your release binaries have to be under two gigabytes on the free version of GitHub. So like there's, there was beginning to be some need for financial backing for this.
To really make it make sense for people. And so those were a couple of the problems that yes, other people could step forward. And I'm sure, I'm sure somebody will, right. There are some sort of endemic problems that just more volunteers are not necessarily going to fix.
Randal: You would, you would think that Rockchip having a financial interest in pushing these boards out would have an interest in making sure that.
Linux runs on them.
Jonathan: That, that is my take on this. I, I really feel like Rockchip needs to step up. That seems really obvious. It does. It does seem obvious. Yeah. But obviously not all of these companies think about things the exact same way as we do. You know, you, you could imagine that, boy, it would be nice if, like, if we were just describing what we would like the future to look like, it would be great if there was a working group put together that was Rockchip and, you know, Pine, the Pine Store Turing Pi, and every one of these other guys that make one of these boards based on RockChip.
Like, put a working group together, and your thing is, you push things upstream to the kernel, and then build distro images for people to use. Like that would, that would solve the problem. But, you know, there's corporate interests are not necessarily always aligned with the interests of the open source community.
Aaron: And sometimes it's up to the Oh, sorry, go ahead.
Randal: I was just going to say, so explain the hardware relationship again. So Rockchip is a company making some part of this. They make the CPU, the SOC. So I guess I should define And that gets used in people's, people's small devices somehow.
Jonathan: Right, so we should, we should define What an SoC is, it's a system on a chip, which that's actually, that's what CPUs are now.
Like AMD kind of went in this direction and Intel has followed. So everything is an SoC, right? It's a system on a chip. The idea is that that is your, your CPU and what used to be called like the North Bridge and the South Bridge. It's now just all on one piece, one piece of silicon. Or one, one physical chip, I guess, anymore.
It's not necessarily one piece of silicon because they have chiplet designs, which is fun too, but that's not the point. Anyway, so they make if somebody's watching the video, like the, the, the black blob right in the middle of this is the CPU. Rockchip makes that thing. And then you've got the rest of the board around it.
And in this case, you know you've got probably a Samsung memory module on there and maybe a you know, another chip by rock chip. So I can't quite read all of these, but you know, there's one, two, three, four, there's six. I can't read any of
Aaron: them right now.
Jonathan: Yeah. Well, yeah. Yeah. Close one eye and tell me how much you can read.
Hopefully not this one. Right. Oh, I
Aaron: can't
Jonathan: see anything. So, you know, you've got, you've got the people that make the silicon and then an integrator will come along like again, in this case, it's pine, the pine store, pine 64. And they made the, the whole board and then this will slot on a carrier board somewhere.
Well, so to be able to get Linux to boot on this thing and know where all of the ports are for the kernel, like to even know how much, what hardware is there. You've got to have some it's called a device tree. And that's basically just a list of here's the peripherals that are connected. So it tells the kernel what drivers to load and where to find them.
And so somebody has got to maintain that. And that's sort of the piece that's missing is getting that maintainership. So
Randal: it sounds like there should be a cooperative amongst all the people who are Rockchip integrators.
Jonathan: Yes, and I think there is a little bit, like ad hoc, but definitely nothing formal.
Yeah,
Aaron: usually it comes down to the individual manufacturer of the board. Like OrangePi does a pretty good job with their boards. They always have, now it's not as nice as RaspberryPi, I'll get to that in a minute. But OrangePi, at least, you can go to their site for just about any board and you can download their, they will build as part of their process, they will build a distribution that works for, you know, or a bunch of different distributions at the time they release the board that work.
So they'll have their own orange, OrangePi. org. I forget what it's called. Orange Ubuntu based thing. They'll have Debian. They'll have Armbian usually. And, and usually Android as well. So they'll have like those four or five. They might not get updated, but they'll be there. And at least you can pick one to run and maybe you can update it yourself.
So they do a decent job, but the best one out there, of course, that does this is, is Raspberry Pi and Raspberry Pi owns the whole chain. Right. They, they own everything from the Silicon up through the operating system, including all the boards. And, and so they, that's why when someone asks me, Hey, there's this new orange pipe board that has never, you know, they never used Raspberry Pi or anything, but they're like, I'm trying to figure out if I should use orange pie or Raspberry.
It's like, no, just go get the Raspberry Pi because. There's the community there, you know, you're going to get a, a, a semi modern operating system and may not be, you know, last night's release, but it'll probably be last month's release and, you know, you're going to be okay. You're going to get support. You can go to the forums, ask people how to do it.
I, I don't, I haven't even bought the latest Raspberry Pi, but I don't need to because I understand how to do this on other things. But for someone that's just starting out, use the Raspberry Pi. And the reason is exactly this problem. It's exactly this problem.
Jonathan: And you run into, you run into edge cases on the other boards.
Like I've, I have more than once been running one of these not Raspberry Pi development boards, and it's like you install updates and it pulls a new kernel, and guess what? That kernel is from the wrong repository and your board no longer boots. Like that is, that is distressingly common.
Randal: Yeah. Oh geez.
Yeah. Yeah. I don't have these problems with my Mac.
Jonathan: Yeah, well, so, I mean, it's, it, I guess it's, it might be worth kind of talking about, like, why we, Aaron and I, have gone down this rabbit hole, like, what are the things that we want to be able to do with these, with these boards, and the, the two big ones for me, and I've talked about this before, the Raspberry Pi blew my mind, because suddenly I had a little computer running Linux that could talk to the outside world via hardware, So And not just like video on a video camera, it had, it had GPIO.
And so then you can know, you can switch lights on and off. You can wire that into a garage door and open your garage door from the command line terminal. And, and then, you know, the next step on top of that, of course, is you can write a webpage, which calls a command line on the back end. And you can hit a button on a webpage and open your garage door.
The, the thermostat Not while you're driving. Right. You can do it while you're driving. Never. I would, I would never
Aaron: do that while driving. I do it all the time because then the next step from that, the next step after the webpage is you hook it into Google Assistant or Siri or any of those. And then while you're driving, as you're almost home, you say, Open the garage door and you pull in and the garage door's open.
Randal: Yeah. And you just triggered 72 people at home by saying those words. Yeah. Well I didn't say key. He didn't actually say the word. I just said the Oh yeah, I was listening for that. Gotta be careful. Oh wait, I turn my phone over right now. There we go. Alright, now it won't respond. Thank God, .
Jonathan: So like the, the thermostat at my house.
is a Raspberry Pi with a board on the back of it to be able to do it's not actually relays because relays have problems because so it's a it's a solid state relay, but it switches the air conditioner and the heating on at my house. And so I've got a little script that pulls the temperature and switches on whichever one is needed.
And That's been, that's been running now for me for like five or six years, pretty successfully. And so those are the sorts of things, like those are the things that people might want to do with one of these. HTPC, that's another one. Home theater PC. Right? And, and I know people use Raspberry Pi for that a lot because you can do things like you can, you know, emulate your old video games.
You can watch movies, you can have YouTube on it, all kinds of stuff people use it for that you don't run Plex, right? Do you run Plex or Kodi on it? Yeah, absolutely. Cool. And so, you know, there, there's, there's a lot of interesting things there. One of the things I've been doing with them recently is GitHub runners.
So I've got, again, the Turing Pi, I've got it right over there, that's why it's on my mind. It's got, so it's got four slots on it, and I've got four RK1s in it. And I've got two of those set up as remote GitHub runners. And so when we need to be able to build, you know, ARM32 or ARM64 builds on GitHub, it can just, it can farm out to those and do it.
Because, you know, GitHub doesn't yet offer. on their free tier in any ARM builders. So, there there are some places there where it really makes sense.
Aaron: Yeah I always tell people if you're a, I used to be a strong advocate for Linux desktop. Like I used to tell people, oh yeah you gotta ditch Windows and run Linux. Well, not so much anymore, right? I mean, Linux really comes into play, as you've been describing Jonathan on those small boards of course. Linux also comes into play if you're a developer.
Pretty much anything you're going to do in the cloud, right, is going to be Linux based. It doesn't necessarily have to be, but you're almost maybe 90, 95 percent of the time you're going to be distributing your applications out to a Linux based virtual machine, which is running You know, Kubernetes and containers, but the base of that is going to be Linux.
So for developers, I've always said, even when my son was going to school learning software development, I was like, you need to at least have a good understanding of Linux. You may not have to support it, but you have to understand the concept so that when you talk to your DevOps person or your support person and try to figure out why your application isn't working, and they tell you that there's a kernel bug or there's a kernel panic.
Or something like that. You need to at least know what that is. Like you don't have to support it yourself, but some developers do support themselves. So I think like, it's not for grandma. It's, it's not for the person that's never used it before. It's not, I wouldn't even say you could use it for, it's good enough to use for, for your daily driver.
I D I used to at work. I've got two of them here
Jonathan: that are Linux boxes that are my daily drivers.
Aaron: But you know, sometimes, sometimes you're not, and I know plenty of developers that obviously I think probably the number one OS for developers is, is they run on Macintosh, right? So. So, yeah, I think, I think that's one really big area is just to understand, you know, if you have an Android phone, you're, you're running Linux already.
You just don't know it. You know, if you're, if you're using an application on the web, it's running on Linux, probably somewhere in the cloud and you just don't see it. And there's reasons for why, why people choose to run their applications there. Customizable, stable, upgradable supportable, all those kinds of things.
But yeah, for your daily driver, I'm not going to try to convince anyone to try to try to drop their MacBook and go pick up a PC and run, run Linux desktop on it anymore.
Randal: Right, right. Like I'm probably never going to get rid of like a Mac interface unless something really outstandingly better comes along for cheaper.
And that's not going to happen on either axis. The, but the thing is like, I'm running right now sort of because I'm, I'm just a shoemaker's children problem. I want to put time into my cloud servers, but I never seem to get around to it. You know, it's like, eh, that'll, that'll still run tomorrow. It would be fine.
So I've got three free BSD servers in the cloud. And now that I'm doing a lot of stuff with Dart and Flutter. I regret this because FreeBSD is not one of the target platforms either to compile on or to target to build for. And so I can't do anything that I really want to do. Like I want to move my website so that it's a, a Dart application spitting out HTML, which is perfectly reasonable if the, the host box is a Linux box or can at least run Docker.
And even running Docker underneath FreeBSD is. A bit dicey from what I've heard. So so I'm thinking strongly about, let's see, first farming it out. So I'm actually buying separate machines for my web and my mail and all that, rather than having one big monolithic box that I'm doing all of the maintenance on as a free BSD box.
But that would be a break in multiple years of, of history for me. So I've, I have to then learn enough about Linux to be able to have a hosted service of my web and my mail and all that stuff correctly. I could go to. Platform as a service stuff and start doing, you know, like all my mail through Google or something.
I don't quite trust that yet. And I have too many special things I've wired in. So like the way you guys wire up hardware, you should see my proc mail RC and my, and my Pearl script that sits in front of that. And, and it's like all these things. Are very, very heavily customized. And so I have to track the upstreams of all these things I'm using to make sure that my stuff still keeps working at the software level.
So I, I can relate to the hardware problems that you're facing because I've got incompatibilities of this hardware or this software doesn't work with that software.
Aaron: Yeah.
Randal: So it's, it's, it's a similar problem. Luckily I've got things like unfortunately now I have both original stuff on my Mac and brew and Mac ports because they each had their own things.
And my path is about 85 elements long, trying to suck all that in. And what JQ am I invoking today? I don't always know, and they have different features. So it's like, Oh, boy, the path has to be exactly right. And I don't dare move it now that everything's sort of working on my Mac. It's, it's definitely scary times for me.
And I, I also, I just don't want to deal with it anymore. I just want it to work too, which is sort of the anti tinkerer theory.
Aaron: Yeah, but,
Randal: But it means you have to be a bit of a tinkerer to get it sometimes to play well with the stuff that you've also tinkered with. Do
Jonathan: you hope? So, so Randall, a couple of things here.
Yeah. First off,
Randal: sure.
Jonathan: From the little bit of BSD that I've worked with, I don't think you're going to have much of a problem going from an A net B, S, D, open BS, D to, to Linux. So much of it is almost exactly the same. And the , there's, there's better compatibility with Linux. I think in a lot of cases there's more packages available too.
So I, I just, yeah, I don't think it's gonna be a problem for you. I think you can dive into that and not, not really have much issue. Talking about, you know, I,
Randal: I have to, I have to learn the GPL version of all the argument lists, the arguments, because that's, that for some reason, GNU just went off sideways and a lot of things that I use every day.
And it's kind of annoying because I grew up with, I, you know, I used Unix V6, Unix V7 2. 8 So I grew up through real Unix. And I still don't consider Linux to be real Unix that because it doesn't have the same history.
Jonathan: That's fair.
Randal: You know what? Yeah. Is that fair? I think that's fair. Yeah. I
Jonathan: think that's
Randal: fair.
Okay. Yeah.
Jonathan: The same problem. So I have to learn the
Randal: Linux. Yeah. I
Aaron: have the same problem going to b sd.
Jonathan: Yeah. I have the opposite or the opposite. Yeah.
Aaron: The mirror. The mirror problem. Right,
Jonathan: right, right. A a lot of the i's like, why doesn't
Aaron: this work?
Jonathan: A lot of the GNU Corps utilities though, or at least some of them.
Actually support the BSD flags, don't they? I'm pretty sure some of them do.
Randal: They, they've been sort of forced to because POSIX was sort of a compromise in some ways between both worlds.
Aaron: Yeah.
Randal: And so as everybody started moving more towards POSIX compatibility, they ended up having to, the BSD made some concessions and FreeBSD, and Linux made some concessions to be able to add things in to say that they're POSIX compatible.
POSIX compatible if you only use these switches. And so, and so that, that helped quite a bit.
Jonathan: David Ruggles in the chat says, Linux is not real Unix is a feature, not a bug.
You know,
Randal: the thing is though, I remember when Unix fit in 32k. And, and that was considered huge back then. So it's, you know, it, it, it, it's come quite a long way since then. I'm sure there's some parts of the Mac OS I'm running that are under 30 TK, maybe one of the files or something. I don't know, maybe, but, but.
But now they've become these giant monoliths, but there's, but they're also so feature full now. I mean, there's, there's so many features, then they keep adding more features and telling me to upgrade again, and then they're adding more features and I have to learn those new features and then those features aren't compatible with my phone.
So I got to upgrade my phone now. Yes. So
Jonathan: did the BSDs have a package manager? Cause that's kind of a Linux. Oh, lots of them. That's kind of, well, yeah. So that's sort of a thing that was originally, I think originally developed in Linux, like the, the, the yellow dog. So Red Hat's yellow dog package manager was one of, I don't think it was the very first one, but it was one of the first ones and you know,
Aaron: RPM, right.
I think RPM was before the yellow dog. That's the first one I ever used back in 1990. Eight when I was messing around with a red hat, I was like, Oh, I can just use this RPM command to like update my software, get a new program on you. That's pretty cool. Previous D
Randal: from out nearly its very beginning.
It's always had some sort of quartz managing system. That can record dependencies between ports and install dependent ports. That was mostly a source based system. And then they moved to the PKG system later on. And that's kind of where all my systems are right now. They're all. PKG related, which is kind of laughing now that I've got brew, which does some source compiles and some binary downloads and a Mac port still does some source compiles and some binary downloads.
And it's like you know, upgrade time. I never know whether it's going to be four minutes or three hours. I don't know what it's going to compile something or just download a few things. Yeah, so
Jonathan: I, I'm, you know, I've thought about over the years, like, what is it about Linux that really has drawn me to it?
And what is it that I don't like about, you know, those other operating systems? I've got to say the package manager is one of the things that just really, really makes a difference. And in thinking about this, like on Windows boxes, I've had times where, because I, I, I do tech support, I find people's Windows machines that are just in terrible shape.
And one of the things you can do with a package manager, particularly with something like RPM obviously that's what I'm used to, so that's what I'll reference, is every file that is part of your operating system, it lives inside of one of these RPMs, in one of these packages. And so if you have a file that gets corrupted, you can just say, Look at all, basically what you can do is say, look at all the hashes of all the system files and if one of them doesn't match, just reinstall it.
And I, I, I still don't understand why they have not added that to Windows. Now, I know they've got a package manager now that is apparently fairly decent. I don't think it applies to all of the system files though. And that's just a, it's a killer feature for me for Linux.
Randal: And let me, so, so Mac OS is slowly getting better in that third party apps can now create sandboxes and containers for their machines, for their, for their installations, but it didn't always used to be that way.
It used to be that what Apple told you was just make sure it installs in user local somewhere. And it's like, well, that's not a package manager. That's well, there's, it's installed. You want to remove it later? You want to see what's corrupt? You can't. It's
Aaron: yeah.
Randal: And so that's why the third party Mac ports came along and then brew, brew does it a whole lot better, by the way.
I would say Mac ports now seems. So chaotic at this point. I've been slowly looking at my list of things installed with ports and one by one installing, reinstalling them with brew. And then I hope that that's a similar version to the one I was already running so I don't break something. The one I've been dealing with lately that's crazy is YQ.
I don't know if you've ever seen the YAML version of JQ. But it's really, really cool for a lot of different transformations YAML in, transform it the same way JQ does and spit it back out. Except there's two things in the world that are called YQ and they do entirely different things, but they're both related to processing YAML using a JQ like syntax.
One of them actually uses JQ behind the scenes. So it turns everything into JSON and then back, which is weird. And the other. Has a subset of JQ's instructions built in. And so, if I accidentally get the wrong YQ in my path ahead of the other one, because I have them both installed, because they both are handy in different ways, then, ah, it's such a mess.
It's such a mess. One of them is written in Python, by the way, which I think Aaron will probably like. Namespacing,
Jonathan: it's hard sometimes.
Randal: Yeah, yeah, yeah. Hard to think of good names for stuff. All the good names are taken, that's definitely true. All the two letter names are definitely taken. Yeah, that's probably true.
Jonathan: Oh, I did not know about YQ. This is actually really interesting. Oh no, now I distracted you. There you go. Now
Randal: there's two of them. One of them does, like I said, one of them is based on Python and only, and has a built in sort of YAML interpreter. So it has, but it's also then cloned a lot of the JQ operations.
The other one that has YQ. TomlQ and XMLQ, which basically means you can manipulate from one to the other of any of those four things, JSON, YAML, Toml, and XML, and manipulate all of them. That's the cooler one. That's the one that uses JQ behind the scenes and then does in and out mappings for those other things.
Languages, that one is really, really cool as well. So I, again, that's why I have both of them installed. I have the one that does the Python version. I have it as PYQ just to make sure that I can get to it whenever I want to. But yeah as an example, I was using probably going deep off of, I don't know what your, our actual agenda was going to be today, but let me just finish this and we can go back to Linux again, but in in the, in the Flutter world.
You have this tool called pubspec. yaml, which describes all of the things that belong in your release. So it has a list of all the version numbers and everything like that. But what actually gets installed is derived from that, because it also has to have all the sub dependencies and all that.
That gets locked up in a file called pubspec. loc, which is a JSON file. Okay, so now I've got JSON representations of YAML stuff, and I wanted to take the actual versions that got installed and put that in my dependency range in my source pubspec YAML file. So I wrote this About this long single command line that unpacked the, the, the JSON file got to where it picked out the actual dependencies and sub dependencies that were used and spit that out as a nicely formatted YAML file.
And then I dropped that into my PubSpec YAML. That's great. And really cool that I can get two different languages on both ends of that pipeline. So. Yeah, really, look into YQ. Again, there's two versions of it. There's the one that has the multiple languages thing with TomoQ and, and XMLQ, and I've used that too.
I've actually got, oh, XQ I think they call it. It actually goes from XML to and from XML with JQ like operations on it. It's pretty cool.
Jonathan: Yeah, I've actually become quite fond of YAML for config files. When I had to write a schema for doing config files for Project M1, I was like, let's use YAML. It's great.
I like YAML. Now, occasionally The great
Randal: thing about YAML, the great thing about YAML is that JSON is a perfect subset of it.
Aaron: Mm hmm.
Randal: So at any point you're freaking out about indent, you could just go open curly brace, blah, blah, blah, blah, close
Aaron: curly brace.
Randal: And it's, and it, and that can all be indented whatever way you want.
Yeah. You can run it over multiple lines, all that stuff. But what's also cool about it is it's like relaxed JSON. You don't need to quote your keys. You don't need to do it. It's, it's, it's, and you, and you have comments. Yep. So it's like the best JSON parser you can get is a YAML parser.
Jonathan: Yes. Yes. I, I have, I very much enjoyed YAML.
The only thing is every once in a while, somebody will come into it and work on it. It's like, nothing's working. It's like, okay, copy and paste. Okay. YAML is whitespace dependent. You have to actually get, it's like Python, man. You have to actually get your whitespace lined up. That's,
Randal: that's tripped up a few users, but, but again, we'll drop in a JSON mode when that happens and it's fine.
Jonathan: Yeah, I have to look at whether our parser could reason us in this project reason a C library to parse it. I got to look and make sure that our parser can actually handle the JSON curly brackets. That's
Randal: in the spec for YAML. So if it's not able
Jonathan: to parse it, it's not spec compliant. If it's not able to parse it, we need to find a better library.
Is that is that what you're telling me? Yeah, and I know that I
Randal: know that C one that comes out of library does it. Pretty accurately. It's pretty, pretty on spec. So,
Jonathan: yeah, cool. Yeah, cool. All right. Let's see what, what direction, what direction were we going? What direction did we want to go north? Let me, let me, let me throw out,
Aaron: let me throw out one more Linux use case that I think people should be at least cognizant of.
Yeah.
And that is for anybody building systems for other people. Which I used to do. Or if you're just techie enough and you want to have a good backup in case something goes wrong. I always recommend that people have some, some easy form of, you know, Linux mint or something like that on a live USB stick.
Yeah.
And if you're building systems, as I mentioned, I would always ask people, family members or whatever. Hey, building this system for me. Great. Do you want me to use me? I'm going through puberty there. Do you want me to throw Linux on this system as a backup? And you'll never have to deal with it.
It'll automatically boot into Windows. But just in case you ever have a problem, you can at least select the Linux option and get to your files or get to the internet in case windows decides to throw up on you, which mine is doing. If I disconnect right now, it's because I got a blue screen. And that, that has saved my bacon more times than I can count really, because I've had, I've had cases where, for example, my raid.
Running on the motherboard failed and Windows doesn't know anything about it. Right? I mean, it doesn't even know that there's RAID underneath, but I could go into Linux and run. I think it's test disc test discs, analyzes the, the, the bare bones of your hard drive and it can tell where the files are.
And you can even copy those files out onto a different drive. And I've saved like picture, family pictures and all kinds of stuff just by having. Either a thumb, you know, USB thumb drive with Linux on it, or you know, Linux as a, as a separate partition on the drive that I can recover from. So the one more, one more use case where I think people should at least be aware of Linux and also if you're having trouble understanding Linux, you can always go get my book, Linux for Makers, because the whole reason.
The whole reason I wrote that book was because people were coming to the makerspace from either macOS or Windows backgrounds. They wanted to run Raspberry Pi. And they're like, what are all these directories? I don't understand what they mean. You know, And so that's a big part of the book is just explaining what Linux is.
It doesn't go into great detail because it's not meant to, but it's like, here's what you need to know about Linux to make your experience with Raspberry Pi better. And here's what those directories, here's why they came to be called. USR and ETC and all that, you know, and so people just get a basic understanding of it.
And I think once people get past the, the translation between how it works on MacOS, how it works on windows and how it works on Linux, then they can start to at least function a little bit better.
Jonathan: Yeah, you know, the ironic thing is that Mac OS under the hood is so similar to Linux when you actually get on the command line, because they're both, they're both Unix compatible.
And so you get a program like brew installed and you start installing the binaries, you can, you can get your Mac machine set up to the point to where it almost behaves like a, like a Linux box does. Windows, Windows is like a
Randal: Unix box,
Aaron: like a Unix box, technically BSD.
Jonathan: Yeah,
Aaron: yeah.
Jonathan: Well, so no, that's that's the point.
I mean, they're both open step. They're both Unix boxes. So you can make your your your Mac OS install act very much like your Linux install does because they're both Unix.
Randal: Yeah.
Jonathan: Yeah. That's, that's the
Randal: point. No. Stop making me say that. Linux is not Unix. No, it's not. You can make, you can make Unix a lot like Linux.
It can be a lot like it. Yes. They both have LS. Both of the LSs have 65 parameters, but there are different 65 parameters.
Jonathan: Yeah. I suppose that is always going to be a thing.
Aaron: Yeah. But like, even in my book, I, I showed people how to write the Raspberry Pi operating. system to to an SD card, right? And both Linux and Mac OS use DD to write that image out to the SD card.
And it works the same way basically on either one. So there's enough similarities there. Yes. It's not Linux. It's Unix. But There's enough similarities there. I think people, people could get a, that were, were at an introductory level would look at it and say, Oh, this is just like that other thing I was using.
Sure. But
Randal: there's enough similarities. I mean, I I've, I've in practical terms, I've had Linux in the cloud from time to time for some of my clients. And I've, I've, I've sort of. Poked and prodded my way through those. It's not like I can't do anything at all. It's just that every once in a while I'll type a command and it goes, I don't know what this switch is.
And I go, oh man this, oh, oh, this doesn't have GPL or GNU code does not have that, that switch. Okay, I get it now. Yep. I'm used to the BSD switches, not the GNU switches.
Jonathan: Randall, are you familiar with TLDR? You long didn't read the the command line application tldr. Oh, no. I didn't know there was one. There is one I I assume that you can get it with brew but it's definitely a thing on pretty much all the linux distros So you install tldr and then you just it's tldr and then the name of the command that you want to run And what it'll do is it gives you like the minimal version of the man page And so it'll, these are the four most commonly used switches.
And here's three examples that use them. And it's for, for, yeah, it's really nice. Leo actually is the one that got me hooked on this. Back during one of our first ULS episodes, he, he plugged it and I'm like, Oh, that's really great. So
Randal: brew does have TLDR. I'll have to install it and
Jonathan: play with it later.
TLDR. It's really cool. I won't be like,
Randal: I won't be like like Leo used to do where he would install something the moment I say it on the show, that was really weird. Wait, wait, we're still doing the show. They're like, yeah,
Jonathan: that was. That was his thing. I think that's still his thing in some cases. I think it's just because he's been doing it for so long.
He doesn't have to think about doing the show. It just comes naturally. So he could, Oh, okay. I'm going to install this while we're talking. He probably
Randal: has a completely spare PC sitting next to him that he can just immediately swap to if he screws the one up that he's in front of him. Yeah, I think so.
Aaron: Especially these days, right? Without the studio.
Randal: Yeah.
Jonathan: Yeah. Well, I don't know. Gotta be
Aaron: self sufficient.
Jonathan: Maybe, maybe that means that he's running the he's running the show off of his computer. I don't know. That's what I do. So I can't, I can't mess around with this machine in front of me. I can't mess around with it too much.
Cause it's doing the streaming.
Randal: Yeah, me too. Cool.
Jonathan: All right. Let's see what what, what direction do we want to go next? Hey, we got about 15 minutes left. There's another interesting thing that happened with the Linux kernel. And I guess I'm curious on y'all's take on it. I've covered this in other venues, but since we're a very Linux centric show today, it makes sense.
Do you guys follow where the Russian maintainers got kicked out of the kernel?
Randal: Yeah. Weird. That. But then, then you start wondering how many other, Oh, but you should go ahead and tell the story first for our audience. And then I'll, I'll fill in my comment.
Jonathan: Sure. I'll, I'll give you the, and maybe I'll answer some of the questions.
Cause I had, I had questions and I've looked into it too. I've actually, I've actually got questions.
Randal: We got,
Jonathan: I got a hold of a couple of people and, and anyway, so there was a rather cryptic message, you know the, the, The commit history of the, the part of the email, you know, when, when Greg Carl Hartman wrote it, I think he said something like for compliance issues, we're having to change the maintainers file a bit.
You know, it was, it was real cryptic like that. And people got to looking at what it was is just about all of the maintainers. So that's the, the people that are responsible for different parts of the Linux kernel. The maintainers that had like email addresses that ended in dart. ru just got removed from the maintainers list, no longer maintainers.
Geopolitics and politics and all that being what they are, people got a little frustrated by that and let people know, and there was a lot of trolling that went on some of it was hilarious, some of it was not very helpful, and then of course Torvalds was Torvalds. And, and stuck his oar in, in, in a very Torvald sort of way, which is fine.
I have no problem with that. But so what, what it came out to be is that apparently, obviously, again, obviously geopolitics there are Russian companies that are under My mind has completely gone blank. I've forgotten the word. Sanctions. They're under sanctions. They're under sanctions from the U S and other countries around the world.
And so one of the things that those sanctions mean is that like, there are limits to how you can cooperate with them. And when it comes to source code, even, and apparently the Linux foundation got a visit or a phone call from the U S treasury department, and then said, Hey, I see your open source project.
I see you have people that are partially responsible for it, that are on our sanction list, and this cannot be. Yeah. And I think that's, like, fairly reasonable, because they're, they are the U. S. Treasury is responsible for enforcing the laws and the executive orders that we have in the United States, and the Linux Foundation is based in the United States.
And so, it's just sort of an inevitable thing for that to have happened. I think the colonel could have done better with the way that they like announced it and messaged around it. It came out later that apparently the the internal lawyers of the Linux foundation Gave them guidance, but did not tell them how much of that guidance they could make public And so there was that it's like our lawyers have not yet told us that we can make a statement on this Right, and that's that's just one of the terrible things about the way the legal system works, but it is part of how it works There has been, I think at least one of those developers was able to document that.
No, no, I am not actually employed by, you know, by call or whoever it is. And so is back as a maintainer. The thing that the thing that worried me the most about all of this, and this is mainly, I guess, mainly what I'd like to get y'all's opinion on is that there was a statement made by somebody at the Linux Foundation that said essentially We hope that removing these people as maintainers is going to be sufficient to make the treasury department happy and we hope we will not be required to remove their contributions.
And that, yes, I, I have a real problem with that I have a real problem with that because in the United States we have the First Amendment, which says that, you know, you can say whatever you want to, and we have some, some legal opinions that have pretty well established that code is protected speech, and so I, I really am concerned that the U.
S. Treasury Department even made that threat. But I'm real curious what you guys have to think about that. I
Randal: don't think that so much as a First Amendment protection issue as I do recognizing the open source development process, which is that those lines of code clearly had to get reviewed by non Russian infiltrators. No, I won't say that, that's just evil. Non Russian residents. Right, right. I don't want anybody to misinterpret.
I actually, you know, I'm a world traveler. I've been in 68 countries. I do have a much greater sense of recognizing my kindred humanity in every part of the world. So let's just start with that. Okay. But but I think Every piece of code that went into the kernel ultimately was viewed by many people.
So to say you won't have to unwind particular contributions because of their source is a bit confusing to me. It's not understanding the process.
Aaron: Yeah.
Randal: I also am curious about how it was only Perhaps anybody who had a email that ended in RU, how does that prove anything? So it,
Jonathan: it was, there's a little bit more detail on that.
I think, I think all of the dot RU email addresses were taken out. And then there were some that were also things like Gmail. So essentially what it was is it was, it was people that were known to be Russian nationals. I think
Randal: it
Jonathan: was, it was a little bit more intelligent. It was not, you know, it was not just a said script, right?
Let's just set and remove all of the lines that have dot R U, just greedy. For Hawk or
Randal: Pearl. Yeah. Well, okay. Hawk and Pearl, whatever that is.
Jonathan: Yeah. Yeah. Well, that's the fun thing about the world we live in. There's 15 different tools that can do that for you. Anyway it was a little bit more intelligent than that.
One of my buddies that I talk with And we discussed this idea of what would you have to unwind the patches? And he's like, his, his opinion was you would just have to reset the entire code base to whenever that executive order went out. There's just no other way to do it because you have so many patches built on top of each other.
He's like, that's what you would have to do to comply if they actually wanted you to do this.
Aaron: That's BS. That's, that's, well, first of all, that's a hypothetical, right?
Jonathan: Yes, correct. Correct. So that's not,
Aaron: that's not what they're saying, but the way
Jonathan: I will say this, the way that the mailing list message reads the way I read it.
Is there was at least the threat made that, let me rephrase. There is at least the consideration that this could theoretically be possible. Like, so this is not just me suggesting this could be possible. This is a Linux foundation member saying, we hope that we do not have to do this.
Randal: There's a dangerous component to this that I also want to bring up.
And I, I'm sure everybody's thought of this anyway, but let me say it for the few that haven't. Is this also going to apply to every other us based company?
Aaron: And
Randal: does that mean that the treasury department will be coming after the software freedom conservancy and especially these umbrella organizations like, like the SFC to say, your members all have to comply with this ITAR regulation.
And sanctions that we've had on, on particular governments and individuals, and that would be horrendous for the SFC because they've got like 50 projects, a hundred projects, something like that. Right. And, but they're us based and, and so where, where do we draw the line here? I recognize the intent.
But I don't recognize the practicality of it, given the world of open source.
Jonathan: Yeah. So let me, let me tell you what I think the, the, the real intent was, what I think annoyed people in the U. S. government. So obviously we have a, a, we have a war zone where it's a, it's a somewhat hot war right now and Russia's on one side and U.
S. allies are on the other. Like this is just the reality of the situation. And you have Some of these Russian weapons that are literally running the Linux kernel. Like this is, this is a thing. This is a thing that is known to happen. And I think what happened is the, the treasury department, the United States looked at that and went in essence, our developers that are working on the Linux kernel are assisting.
These Russian developers, essentially because the kernel is running on these weapon systems, we essentially have U. S. developers that are helping to maintain the Russian weapon systems. Right? Like, I think that is probably the thought process that went into this.
Randal: And didn't we also have a recent example of where some apparently cleverly hidden code caused a backdoor in some SSL transport mechanism?
Jonathan: Yes, and so that could be this, it could be related to that. That's the XZ I'd be triggered by it. The XZ libraries, in a very clever way, were attempting to backdoor SSH, and that did actually make it out on a few machines. There were some machines in the wild that had it backdoored for a very short amount of time.
Although ironically, The the time zone work on that happens to line up with us east coast. So I have theories on who is behind that Could be cuba right Yes Anyway, so I I guess I guess this this whole story the thing that really comes to mind for me about it is like Open source has sort of avoided having to play the geopolitical game.
And I'm not sure that that's going to be able to continue forever. And that's sort of unfortunate, but maybe also just the reality of the world.
Randal: Along that line some of the new EU requirements for software in general might apply in very chaotic ways to open source.
Jonathan: So we've, we've talked to
Randal: a lot of issues.
Jonathan: We've talked briefly about that with people like Simon Phipps. Simon actually was a big part of lobbying in how those laws do and don't apply. And so there is actually quite a big carve out for open source in the, in the EU software laws. Which, you know, it, it really, it really makes sense. If someone is not making money for a, for a project, trying to force them to, to follow all of these requirements is just, it's, it's a non starter.
Randal: Right. Yeah. Open source starts at a negative 5, 000 a month deficit. Yeah. You can't quite do that. Right. I don't mind doing it for free, but I don't want to pay 5, 000 a month out of my pocket to hire these six guys they need for compliance with the EU regulations. Yep.
Jonathan: Yep. Yep. And so one of the interesting things with that is, so now you can get it, what it, what those laws do from what I understand is they, they put the onus on the companies that are commercializing.
And so I, we've heard some stories now where these companies are going to open source projects and saying, okay, here's the documentation that we need to be able to use your project. And they sort of expect it for free. And the thing I've been telling people is when you get one of those emails, you just respond and say, we will be glad to help you with that.
Here's our hourly rate.
Randal: Yes, absolutely. Yes. You making money. We making money. Yeah. Yes.
Jonathan: That sounds
Randal: great. Yeah.
Jonathan: So hopefully that'll become more and more of a thing and
Randal: maybe it'll be, maybe it'll be a good thing. A rising wallet pays for all boats. I like it. Oh, I like it.
Jonathan: Just
Randal: made that up. That could be the title for today.
Jonathan: It could be, we've had two or three. Yeah, we've had two or three suggested. Okay. Let's see, we are getting close to the end of the hour. Shall I ask each of you what your favorite scripting language and text editor is? We haven't, we haven't done this for a while. I think I, I think I remember Randall's.
But have they, have they changed since the last time I asked you?
Randal: Not in the last three or four weeks, but just to, just to remind everybody, you know, what's funny is I don't think I ever answered that question when I was asking it all those years. Oh yeah, that might be. So although I would, I would say, yeah, I'm also an Emacs user, but now I do most of my work in VS code, particularly because.
For one it's embedded in GitHub, so I can just type dot when I'm looking at a repo on GitHub and I'm in VS code on that project. So cool. Yeah. Right. I didn't realize that until like, like three or four months ago. And I went,
oh, this is, why didn't I know about this for all these years? I've been downloading this stuff, putting in an opening in my own.
Right. Anyway, so I'm learning, I'm using VS code parse because of that. And also because VS code is being used in the IDX project, which is now open to everybody with the Gmail headers, by the way. IDX. google. com is essentially you get your own little Linux backend, you get VS code, you can suck down Git projects, you can run them in any of a number of architectures, you can control how the Linux is configured with somebody called mix or something that's S S M S I S there's like a configuration language for Linux layouts and stuff.
So, but it's great. And it's free idx. google. com. Go check it out. And it also has a templates for starting up, like say a typical angular project or a typical, in our case, dart and flutter project. And it even will put a web view and a Android view. As emulators right in your window. So you can do incredible development with nothing.
Yeah. So VS code is running in that. That's kind of a long way of saying that. And my favorite programming language right now is now Dart because it's part of Flutter. And I'm getting much better at Dart. Dart's really cool. Dart's like Smalltalk that won finally. So that's great.
Aaron: And of course they've integrated or they're trying to integrate Gemini into this as well.
Oh, of
Randal: course. Oh yeah. Of course. Of course.
Aaron: Yeah. Now it all makes sense. Yes.
Jonathan: Aaron, I, I, boy, I don't, it's been a while since I've asked you this. What what's your favorite text editor and scripting language these days?
Aaron: Yeah. Nothing's changed for me, actually. I mean, text editing. Is still, if I have to drop to the command line and edit a file, it's still nano because all of my systems pretty much are Debian based systems and nano is almost always there on, on all the operating systems, all the distributions that I run.
So, so nano is just easy. It's just easy. I used to be VI when I started, cause that was what was there and Emacs was too hard for me to learn. So, you know. So now it's nano and then languages are still the same Python when I need to do something more higher level and C when I have to do something a little lower level, I go back and forth.
I spend a lot of time in, in you know, the Arduino IDE working on ESP 32s and. And that kind of stuff. But I will say I have been trying to learn more of the Pico platform, which has brought me to VS code more and C and learning the back end stack that I need to get that stuff compiled and all that because because Arduino obvious gates, all that stuff.
Right? So you just like, yeah, there's Build it and upload it to my board, you know? And then it's like, Oh, wait for the Pico. I've got to know like what's behind here. So I've been learning that a little bit too. So yeah, VS code is going to become more important in my life than it has in the past, cause now I have a reason to use it.
So
Jonathan: have you worked with the platform? I owe any. Has that been on your radar?
Aaron: Yeah. Yeah, I did. I tried it. It was kind of, it was kind of a similar experience to me. It's like there's so many dependencies. And once you get it all set up and running, it seems to work. But for me, it was between Arduino, which I had been using and understood and could figure out and then going to platform, which was seemed like it was supposed to make it easier.
But for me, it ended up making it more complicated because things didn't work. When I would try to build stuff. And so I was like, I don't, I just, there was no reason to use it. And like, now there's just a lot of stuff in VS code that I'm just like, yeah, I can do my Python work here. I can do my C plus plus work here and I can, there's so many integrations and you know, all the stuff Randall was talking about.
So yeah.
Jonathan: I have, I have a recently. So I've been told that I have to answer this question too, because it's around table and that's fine. I've recently been doing a lot of work because I've been working on the mesh testing project. So I'm doing a lot of platform IO in VS code. And that's pretty interesting.
What are the, one of the cool things about platform IO is that it lets you define a whole bunch of different targets. And so, you know, we can, out of the same code base, we can support ESP 32 devices. We've also got it rigged up to where we can compile for native Linux, which is what I've been working on mainly.
NRF, the NRF 15. I think that 42, whatever the, the, the thing is STM 32 boards, all kinds of stuff you can do out of platform IO. So that's cool.
Aaron: Is it any easier to set up now than that was before? Because I swear I went through it and I spent a couple of days on it and I was like, if I, if I, if I have to spend a couple of days to get this thing set up, it's not worth it.
Jonathan: I think it's one of those deals where it's like, you want to copy a working config from somebody else's project that I find that's true though. So many of those different things that have boilerplate, like goodness, the first time I went to do an Android application, like the, there was just so much boilerplate you had to get in, get in play now, the, the, the.
Android studio made that a lot easier. You can just say generate new. But still, I think that's, I think for any framework, that's just going to be the thing.
Randal: Yes. Right. On LLMs, LLMs made it also simpler because pretty much that's the thing they trained on is so you'd say, give me a configuration for, and it goes, ah, I've seen that somewhere.
Right.
Aaron: Yep.
Randal: Yep.
Aaron: Speaking of LLMs Randall, I ha I hate to say it, but I'm gonna be going through just a test. It's more of an LLLM test than it's anything else, but I'm gonna be taking my last Running Pearl program and using chat GPT to convert it over to Python just to see how well it does,
Randal: does PT Gemini Advanced is smarter
It's been smarter in every test bed.
Aaron: Yep. But that's my last running Perl script. It's a recipe database that I built 25 years ago. Nice. Wow. For my wife. And now you don't cook,
Randal: and now you don't cook. So it's great.
Aaron: Oh no, I cook a lot. And we use the, we still use the recipe database every, I mean, multiple times a week,
it's,
it's crazy.
But at the same time, it's like, I don't remember what I did 30 years ago now. And so a couple of times I've had to go back in and fix it. And I'm like, crap, I don't remember how this works in Perl. It's Perl code.
Jonathan: So, you know, it's pretty much obfuscated already.
Aaron: Yeah. And I didn't want to call you, Randall.
I didn't want to take advantage of our relationship.
Randal: I've done very little Pearl. I have to now go look things up now. Again, I'm at that stage in your own words. Luckily that's online, but yeah, no, but I read the man pages once again. Although I heard that from Larry as well. So Larry told me about I don't know, about five or 10 years into you know, after the camera book had been published, that That he said yeah, I got to look things in the man page occasionally, because I forgot how I did this.
And it's like, you know, it's, it makes sense. I mean, it's, it's stuff. It's, we only have so much room in our heads. And now we got to worry about new things like LLMs and stuff. I,
Jonathan: I have been told that it's when you know that you're sort of an expert in your field when you go to Google a question and the answer, you find it in something you wrote.
Randal: Yeah, oh, that's that's happened plenty of times for me because I have 255 magazine articles online Yeah, and just the other day not about two years ago. I was trying to solve something for somebody For a client and I went I know there's a way to do this I googled and up came one of my columns. These are all online.
So it's like, Oh yeah, of course, that's how I remember now. I remember writing this. I've started, I've
Jonathan: started finding answers to my questions in my own Hackaday articles. That is a, that is a very fun experience. Yeah, definitely.
Randal: Good with being published, yes. Yeah.
Jonathan: Anyway, I don't know if they actually fully answered.
So if I'm in the command line, I like to use nano. And otherwise I use a lot of VS code. And then on the language. Very much like what Aaron had to say. I very much enjoy C these days. But for scripting, here recently it's just been straight bash code for pretty much everything I have to do. The fact that you can just glue commands together with pipes and all that is really powerful.
I have used a little bit of Amber. We interviewed the guys behind this and Amber is a really cool program. It is a compiler for bash script. And it lets you, the things that you wish Bash script would do that it doesn't do, the Amber language has it, and then it compiles down to Bash code, which is really pretty cool.
So if you find, if you find yourself really annoyed with Bash, but you want to use it still, Amber is something to take a look at.
Aaron: I'll have to go back and watch that show.
Randal: Yeah, it was fun. That's, that's similar to the reason that I converted from using Perl to using Dart for my command line stuff is that Dart actually compiles to local binaries, which Perl never knew how to do really well.
So that's really nice. All my apps are running much faster now.
Jonathan: Yeah. Yeah. Let's see. Do I, I assume that you guys have stuff you want to plug. We'll let
Randal: Randall go first. Sure. So I am again, pretty much heads down in the in, in, at Transparent apparently. If they OBS is being really mad at me.
Yes. So is in the, in the dart and flutter world. So I'm spending a lot of time attending virtual meetings, giving like Q and a sessions there. Sometimes they do presentations. My big presentation coming up is if you're a Pearl user or have been in the past there is the annual Pearl advent calendar and on the 3rd of December 13th, I'm doing a live presentation of a talk I gave seven years ago at OSCON, back when I was still going to OSCONs about half my life with Pearl, which is, at that point I was turning 50 and Pearl was turning, So it was like for exactly about half of my life, Pearl had been around.
And I talk about the early, early history of Pearl and how Pearl impacted me personally, impacted my company, how my company and the trainings we did impacted the Pearl world. So there's this incestuous, you know, loop in, in there that I'm able to kind of highlight some behind the scenes, sort of how did that all happen?
I'm doing it live. There's some sort of registration link that I don't have in front of me, but I can probably give it to you for the show notes. You don't have to register to actually be there. It's just going to be like a a zoom call. But I think they want to make sure they know how many people are going to be there to know what size Zoom package to buy for the one day or whatever.
So yeah I can't imagine seeing a hundred faces in the zoom, but apparently they're close to 100 already registered for this. So I it's gonna it'll be fun. It'll i'm not changing the talk at all, even though it's been I gave it seven years ago, mostly because I, I haven't really done anything else with Pearl.
So the talk really doesn't matter, but I'll, I'll speak of it as if it was the historical moment in time seven years ago when I was half my life, I had spent exactly the Pearl. So that's coming out. That's probably the only thing I really want to pitch in the Pearl world. And again, all dart and flutter stuff.
I have a, I have a YouTube channel, just Randall Schwartz, dart and flutter. You'll find it.
Aaron: Aaron. Well, as usual, you can find me at on YouTube, RetroHackShack and RetroHackShackAfterHours. I'm getting there's been a little bit of a delay because of my eye and I actually did a video on the main channel that talking about what's going on there as a little bit of a warning for people as well, so that they can avoid having to wear an eye patch like this all the time.
So I'm not going to go over it here, but if you want to know like what's going on health wise, you can go watch that video. But I finally got back into actually producing some content after a bit of a break. So I just uploaded a video to RetroHackShack After Hours, which will come out tomorrow morning, 6 a.
m. Eastern Time. And it's all about this really cool Vintage piece of electronics that helps me diagnose vintage computer monitors and TVs.
Ooh, wow.
And it's made, made by Extron and it came out in 2002. So it was right at that sweet spot where you had to, you know, there was no HDMI, you know, you had to support everything.
So this box supports Mac monitors. It supports IBM monitors. It supports Sun monitors. It supports SGI monitors. It supports Apple too. Monochrome composite monitors. And I test all that on that video. And so, yeah, if you're the kind of person like me who likes to pick up this old stuff and test it, but you may not have the machine you need to actually.
Hook up to it. Or the machine you have might not be working enough to produce a video signal. So you can test that monitor. It might be something interesting for people to watch.
Jonathan: It'll help you figure out whether the problem is in the machine or in the monitor.
Aaron: A hundred percent.
Jonathan: Yeah,
Aaron: but, but actually what I found out was that the box that I bought is old enough that the problem could be in the box because I had to buy two of them.
The first one didn't work. So I had to buy another one, which is going to help me fix the first one, but when it works, when it works, it's all pretty much in hardware. So when it works, it, it works really well.
Randal: Oh, that's great. All right. Hey, thank you. Thank you. You mean you mean Aaron? You're not still dressed up for September 19th and
Aaron: just didn't stop No, or halloween either.
Okay Halloween for halloween. I had a I had the eye patch on just because it helps me focus more on this eye and I had a a Shirt like this and I had a ghostbusters t shirt because I wear geeky stuff, you know I just that's just what I had on that day and some little six year old girl Oh When they came to the door, she's like, what are you dressed up as for Halloween?
And I said, I'm a ghostbuster pirate, of course, you know, and she had no idea, but the parents were back in the back and they were laughing. It's like, no, this is just how I look
Randal: these
Jonathan: days.
Randal: Know your audience. Yes.
Jonathan: All right. Thank you guys both for being here. Appreciate it. Jumping in at the last minute. And thanks so much.
Thanks, Jonathan. Yeah. Thank you guys. All right. Thanks. As far as my plugs do want to mention, we appreciate Hackaday being the home of Floss Weekly and you can find my security column goes live every Friday morning. There's of course also the Untitled Linux Show. If today was not enough Linux for you and you want to keep up to date with the, the latest news of what's going on there.
That's over at the Twit Network, twit. tv and be glad to have everybody there. We appreciate everyone that joined us, both live and those of you that get it on the download, and we will see you next week on Floss Weekly.