FLOSS Weekly
It's the OG podcast about Free, Libre, and Open Source Software, FLOSS Weekly! Join us each Wednesday as Jonathan Bennett and the posse of Co-hosts interview big names of Free Software, cover utterly fascinating Open Source Projects you may have never heard of, and cover the news about software you use every day without even realizing it.
info_outline
Episode 864 transcript
02/11/2026
Episode 864 transcript
FLOSS-864 Jonathan: This week I chat with William Sch, the author of the Lenox Command Line, a book all about how to get stuff done in Lenox, in the Shell. It's a lot of fun. You don't wanna miss it. So stay tuned. This is Floss Weekly, episode eight a hundred and sixty four, recorded Tuesday, February the 10th. Work hard, save money. Retire early. Hey folks, 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 we're gonna lean into that open source software, the Linux side of things, and the command line. And that's because we've got Bill, we've got Bill. Oh my goodness, what's his last name? Shots Bill Sch. That's right. I had the emails up, I have the email up, I have the bio up and it just has his first name of the email and it doesn't have his name of the top of the bio. That's all right. Bill Shots the author of the book, the Lennox Command Line, which was something of an online document first, and it's become a modern classic. It's been around for quite a while. We were comparing notes before the show started about which came first, whether it was Floss Weekly or the book. And it looks like Floss Weekly came before the internet edition. Of the Lennox command line, but it, it's it hearkens from the same era. And so looking very much forward to this conversation. Without any further ado, I will go ahead and bring it the man himself on Hayville. Welcome, welcome to the show. Bill: It's great to be here. Thank you. Jonathan: It's good to have you today. So the folks at No Star Press reached out to me and they said, Hey, we've got this book. Do you know about it? I said, I've not read that book, but I'm interested. And they told me what it's about. I said, yeah, that's definitely down, down my alley. I don't know how, I wasn't aware of the book. I've probably come across the document online in looking for things. But now we get to talk to the man. So tell us the story. Let's start at the beginning. At what point did you say, Hey, I'm going to write this huge document of command, essentially command line tips. What did, what was the origin story of that Bill: i've been a Linux user since 1996, and previous to that I had been using Mark Williams Coherent operating system, which was a a small model Unix that you could run on PCs. And by small model, it means that the largest program you could run was 60 4K. And I was truly impressed with what you could do in 60 4K. The I had Usenet news readers, I had email clients UUCP to move stuff back and forth. And I used this system for several years, starting in the, I guess in the late eighties. And the. When I discovered Linux I was really blown away about how much further along it was than coherent, and it was a lot slicker had a lot more features. It was a much richer environment, and of course it was free. The coherent was 99 bucks. And over the years, I've been mostly a Linux hobbyist, and though I did work in a Solaris shop as a leading a team of system administrators for a bunch of years. But I. After getting involved in this and using a lot of free and open source software for years and years, I felt like I wanted to give back. And so I created this website called Linux command.org, which I put up in 2000. And I wrote a series of tutorials dealing with mostly the ba shell and the canoe core utils. And then I had a second part of it where I talked shell script. And the site was, got to be fairly popular. And an editor from a textbook publisher reached out to me, I guess in, probably in 2006 or 2007, and wanted to know if I wanted to write a Shell scripting book. They had a series of books dealing with Linux, and she sent me one of the books in the series and I read through it and I was really unimpressed with their approach. It was very dry and it wasn't very, I didn't like the structure of it. So I wrote an outline for a book of my own, which expanded on what I had done in Linux command org. And set it off to them with proposal to do a book. And then I just never heard back from them. So I had the outline written and it was pretty extensive, and I sat down and just decided to write the book and just self-publish it and give it away. For two years roughly, I wrote a page a day until I had a book. The the book. Was out for, I guess it came out in 2009. And then in the fall of 2010, an editor from No Starch reached out to me and asked me if I wanted to commercially publish it. And after a long series of negotiations, over a publishing agreement I, I did a deal with them and they took the internet edition and converted it into a printed book. The part of my publishing agreement with no starch is that I get to continue making internet editions, and I've done seven of them so far. The seventh one is, comes out coinciding with the third print edition. The books are essentially the same with a couple of minor differences, but nothing very significant. They're the same book. And I have the no starch edition editions have sold about 150,000 copies, and my download count as of a few weeks ago was 1.7 million of the free ones. Jonathan: Wow, that's Bill: great. So I have a, roughly about a 10 to one ratio between, I give away 10 and sell one. And and it's been very successful. It's, if I have an info card on Google search now, and I'm I describe myself as slightly famous. Jonathan: I I do the same. I've almost a celebrity I think is what I've said a few times about myself. That's funny. That's impressive. Did you expect to sell that many? Like I, I wouldn't have thought that a book about Linux command line that you can get for free on the internet would sell that many. That's a surprise to me. Bill: A lot of people wanna a print a book and and I have to give credit to the no starch people, they really know how to do marketing. They're very good at it and they're very good publishers. I've liked working with them a lot. They've helped me a lot in making the book better. And they're really like, pleasant to work with and they are very helpful. Jonathan: I have found in my work at Hackaday that good editors are amazing to work with. And yeah it's really something. And if you've not done, if people out there listening have not done this, if they've not worked with an editor, it really is a good experience when you find a good one that'll work with you. Sometimes you have to, I don't know if you've seen this, writing these books I have with some of the columns that I've done over the years. Sometimes you have to leave your ego at the door just a little bit and be able to, swallow your pride and accept the feedback your editor is giving you. But it always makes for a better end product. And it's really, it really is something to work with a good one. I've enjoyed it. Bill: Yes, it very much is. Jonathan: Yeah. Bill: So if there are any aspiring authors out there that have an idea for a good tech book, then use no starch. They're very good. Jonathan: Yes. We interviewed I don't remember his name, but we interviewed a fellow about a couple years ago, I think it was, that wrote a book about how to write tech books. And I think his recommendation, 'cause I, I did the interview and I immediately thought, Hey, I could do that. And his recommendation, I believe was to go through no search press, talk to them about being potentially the publishers, because they do a lot in this area. Sort of the tech stuff and the educational stuff. I quickly realized that I had enough on my plate, and in fact, I had too much on my plate. But yeah, that was my game plan. If I was gonna do it, is I would start putting it together and then reach out to no starch because they do, they seem like great people to work with. Bill: Yeah. If I was to suggest the methodology for writing a book the first thing you gotta do is you gotta think about a good outline for it. The sequence in my book is very important, and that's why I think it's achieved the popularity that it has, that I have a, I wanted to teach the foundational skills of the command line, and I do it layer by layer. Going through a series of essentially tutorials. And I try to build on what they've already learned and do more and introduce additional tools. And then finally when I have so much stuff that they can't remember it all, then I'd start talking about shell scripting. So they don't have to anymore. Jonathan: Put it all in file and then you can forget about it. Bill: Yeah, exactly. And absolutely it's funny, the book pretty much embodies everything that I know. So don't ask me a question outside the scope of the book 'cause I just don't know anything else. Jonathan: There is a, you're talking about that and there is a video of Yeah. I'm not sure if this is Dennis Richie or Ken Thompson, but it's like from the at and t archives and it's him, he's got it. Dress shirt with a sweater on over it. And he's leaned back and he's got a keyboard in his lap that he's poked. Bill: Oh, that's that's Brian Kagan Jonathan: Ah, Kagan. Okay. Bill: I know that video. Jonathan: Yes. So anyway he's talking about this thing that they've put together called Eunuch and it's so let's say that I've written a document and I wanna spell check it, and normally you would have to use this big spell check program. He's but in Unix we can just, and he goes through this. We take the document, we sort it, and then we do a unique, and then we run it through our spell check program. And, you use pipes to to redirect one command into the next. And I. A about once a year, and I'm due another one about once a year. I sit down and I watch that and I just marinated it because it's so great hearing from one of the original guys working on this. And it embodies a lot about what I think is really cool about doing bash scripting and making one-liners and Linux and Unix. But obviously we're primarily talking Linux here. And that's just, I don't know. It makes me feel good to watch it. And I think your book has the same vibe to it. What parts of it I've seen? Bill: It's I try to teach both technique and context to a lot of the command line stuff. The Unix has a very rich heritage of command line tools And programming concepts. And so I'm a traditionalist. I want people to be. Read when it comes to Unix and to know how to do things in it that maybe not the most popular things anymore. I have a chapter in the book on printing, which, hardly anybody does anymore. And the command line print tools I have a lot of stuff about text formatting. Because those are so essential to the, the history of Unix. And so I try to teach everybody what I think they ought to know. Not necessarily like the most fashionable things that are popular today, like containers and virtual machines and stuff like that. But I want him to know the fundamentals of the Unix experience. And to have an appreciation for, the giants on whose shoulders we stand. Jonathan: Yeah. Yeah, absolutely. How much do you in the book do you get into I'm thinking of Said and a those are probably the two biggest ones, a lot of tools like that are just about topics for books and unto themselves. Bill: I I have a chapter on on like I said about text formatting and and text editing. And I cover said to some extent including little said scripts and stuff. I don't cover a in the book though, I mention it. I have a separate on my website. I have another section in there besides, the books and the existing tutorials. I have another set called The Adventures. And on which I'm basing my second book adventures with the Lenox Command Line. Jonathan: Oh, cool. Bill: And I have a big chapter on a in there. And I was excited to see recently that there's a new edition of the, a Programming Language came out a year or so ago finally after the original version came out in 1985 which is really the definitive book on a Which is a skinny little book. I used to, I got it free with a do based version of a, that I got back in the late eighties. And, that book is fantastically expensive of the first edition. They were charging like $70 a copy for this thing. And it's it's like about a three, three eighths of an inch thick. And I was just horrified at what that publisher was getting away with. But recently they've come out with a new edition of the book by the original authors. They're still breathing and yeah, it's much more sensibly priced. So I recommend people get that if they're interested in a, get the, a programming language book. Jonathan: Is it worthwhile still to learn A instead? Bill: I think so. Particularly a, I think a is a really fun language to work in. It's very c like, so if you're, if you're c curious you could certainly learn a lot from using a and a is really good at certain kinds of problem domains. Anything where you have to deal with tabular data. It's really, it's the best way to do it. Jonathan: Yeah. Yeah. Boy, I'm thinking of a lot of different directions I want to go with this. You mainly concentrate on Bash, right? So do you give any treatment to like the fish shell or going in the other direction? Any treatment to just working with sh out of something like I guess most machine will have an sh but also out of like busy box where you don't have all of the Bash niceties works. Bill: I covered that a little bit, but I don't talk about ZSH and I don't talk about fish. And it's very bash centric, but I think I point out in places where this is a batch and it, it won't work in dash or in busy box. Jonathan: Yeah busy box is honestly the one that I have dealt with the most. That's because I've got some background doing open WRT stuff. So I've spent some time inside routers on the command line. And that's an experience that's, you get an education real quick about things that you didn't realize were BS schisms. I imagine you have the same, you would have the same experience working on like a Mac machine, which I've done very little of. But they use their own shell over there too. Bill: Yeah. They're using ZSH now. Jonathan: Okay. I Bill: think. Yeah. 'cause they were using bash version three because they wouldn't go beyond that because of the changes to the they're very. Proprietary, shall we say? Jonathan: Yes. Bill: And one of the reasons I'm a, an Apple free shop here, Jonathan: same they finally convinced me to get an iPad for doing testing. But other than that same I have avoided drinking that particular bit of Kool-Aid. I can't say much. Google is just about as bad in some ways, but Bill: It has definitely gotten worse. I was very deeply into the Google ecosystem. But if you've been following Cory Drow in his in ification talks, that it's inevitable. Jonathan: Yeah. Yeah. And I've got some, I've got a friend that does a lot with the Android Open source project, and, over on the Google side, you've got they're moving things out of A OSP into oh, what do they call that? The thing the place. Google Services Place. Google Place Services, I think. Services, yeah. Yeah. And so that move things over there make it harder and harder to have a decent Android experience with just the open source stuff. That's a tangent, although it is one of the things that always amazes and amuses and delights me as well, is being able to install something like turx over on Android and have a full bash experience there. Now, typing on a touch pad is terrible, but Right. Being able to have a full bash inside your phone is pretty great. Bill: Yeah, I've got I've got a, what is it a $79 Walmart Android tablet, which has term on it. And and I use a Bluetooth keyboard with it. Jonathan: Yeah. Bill: And it's pretty funny. It's running, running Vim inside your Android tablet. Jonathan: Yes. It's great. Be able to SSH from it out to the world. Yeah. Yeah. I like it. Do you cover SSH That's, actually, that's an interesting question. I always consider SSH to be like a superpower. I always feel like I'm in the matrix when I'm SSH from one computer to a second one, and then from there to a third one. Bill: Yeah I cover that in the book. Jonathan: Do you dive into any of the SSH tricks like port tunneling and the shortcut to be able to pull up the, in the in session menu? Bill: I don't talk about in session menus, but I do talk about board tunneling a little bit. It's a little, in the weeds for the book, but I used to talk about how to send X through SSH how to do tunneling that way. But way that's become irrelevant and I think I removed that in the new edition because in the Wayland world we don't do that anymore. Jonathan: You can, there's stuff like way pipe, but it is different. This is true. Yeah. This is true. Alright. So what's the first thing when someone picks up the book and wants to get started, what's like the first thing that you try to teach them? What do you think what do you find to be the most sort of fundamental of the things you try to teach in the book? Bill: The very first thing I talk about in the book is there's this thing called the shell, and you have a thing called a term terminal emulator and go find it in the menus and then launch it, and then type some gibberish into it and see what happens. That's the very first thing I do. Jonathan: That's great. And so do you get to, do you get to talk to folks that that kind of use this the book or the website as their introduction to the shell? Do you get feedback from people? Bill: Oh, yeah. I get a lot of really kind emails from people who are deeply appreciative of the fact that I given the book away and that I get a certain percentage of people who say the book changed my life. That it put me on a course to go into cybersecurity or yeah. Or development and so on. Jonathan: Yeah. That Bill: 1, 1, 1 email I'm particularly fond of, and I brag about this all the time, so please forgive me. Jonathan: No, that's fine. Bill: Which is the first sentence of the email was you are a global treasure and that will really brighten your debt. Jonathan: Yes. Bill: When you get one of those. Jonathan: Yes. Yep. That's really cool. I was gonna go, I was gonna go a particular direction with that question. Let's see if I can remember what it was. Do you have a sense then of like, how many people are reading the book just to brush up on their existing user Linux experience or, do people find the command line through this book or through the through the website? I'm just curious like what the, I would say what the onboarding experience is. Bill: I would say both that. There's a bunch of people who will read portions of the book and not read all of it. Because I get reports from users or from readers reporting like typos and so on. And I, the most reports come in the first few chapters of the book and nothing ever gets reported about the latter chapters. People read probably the first part of the book, which deals with the basic command line stuff that you do. Typing file copying, wandering, the file system, navigation. Processes, permissions and stuff like that. They, the basic stuff, the later parts of the book talk about all kinds of tools that you can use on the command line. And then the final part of the book is deals with scripting. And in the middle I talk about the environment and how to configure it and how to use Vim to prepare you for all the things that are gonna happen. Most of the reports I get are for people who, who have read the first few chapters of the book, which covers, the very fundamental basic things you need to know how to do. Jonathan: I'm curious, I remember where I was actually thinking about going with that question, and that is are people still generally interested in the command line, or is the gooey taking over, and I guess this is an old debate, but I'm curious your thoughts on it. I've talked to some people that it's I wanna learn about computers, but man, don't make me go into that black window with the white text. I'm scared of that. Bill: In the introduction of the book, I talk a little bit about this and I have this...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/40076715
info_outline
Episode 864 - Work Hard, Save Money, Retire Early
02/11/2026
Episode 864 - Work Hard, Save Money, Retire Early
This week Jonathan chats with Bill Shotts about The Linux Command Line! That's Bill's book published by No Starch Press, all about how to make your way around the Linux command line! Bill has had quite a career doing Unix administration, and has thoughts on the current state of technology. Listen to find out more! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/40076455
info_outline
Episode 863 transcript
02/04/2026
Episode 863 transcript
FLOSS-863 Jonathan: Hey folks, this week I'm talking with Ola Schulte and Lars au about Open Cast. That's the project for recording lectures, uploading them, and, uh, coming soon, even a video portal built into it. You don't wanna miss it, so stay tuned. This is Floss Weekly episode 863, recorded Tuesday, February the third, opencast. That code is there for a reason. It is Time for Floss Weekly. That's the show about Freed Libre and open source software. I'm your host, Jonathan Bennett. And today, well, today we are having a revisit from a project from quite a while ago. We are talking Opencast, and that is, well, it's all about video and casting, but not, I don't think in the same way that OBS is or Video Ninja. No. Open Cast is more about, uh, in its open source video management, but it's more about academic institutions in places like that. So we're talking sort of a, a, a bigger, maybe more formal solution. Um, but today we've got a couple of the experts with us. We have Lars Ki, who's been an Opencast developer since 2009, and we've got Olaf Schulte. Who is responsible for video management at ET Zurich Switzerland and has been supporting the Open Cast project ever since 2007, and he joined the board in 2011. So we have a couple of real experts to, first off, tell us what exactly Open Cast is and then get into all of the nitty gritty details. So to start with, welcome to both of you guys. Appreciate you being here. Lars: Thank you, Jonathan, for having us. Jonathan: Yes. And so Lars: thanks for having us. Jonathan: Before I forget, Lars: it's nice to be back. Jonathan: Yeah, it's good to have you back. Before I forget, where are you guys talking to us from? I'm in, I'm in the middle of us. I'm in flyover country in Oklahoma. I don't think you guys are, are very close by me. Olaf: I'm in, uh, Zurich, Switzerland. Mm-hmm. Where it's, uh, getting dark over time. So you will see that the lights are going down here over time. Jonathan: Yes. Olaf: Still in my office though. Jonathan: I'm sorry. Lars: Yeah, I'm, I'm at home already, so, uh, I'm visiting for here from, uh, Oberg in Northwestern Germany. Uh, yeah, it's, it's also getting dark here. It's also actually, uh, beginning to snow right now. Jonathan: Oh fine. We just got done with some snow here in the us. Uh, for, for the, the sake of everyone listening, who is, who is Lars and who is Olaf? Lars: So, I'm Lars. Olaf: And I'm Olaf. Jonathan: Alright, very good. Makes sense. Okay, so what is Opencast? I gave, I gave my, uh, my best impression of knowing what it's about, uh, but I am not the expert here. Um, it's up to you. Which one of you want to take this question, but, uh, what, like if someone says, okay, lemme put it this way, what's the problem that somebody has that they go opencast, that's the solution to it. Lars: So, uh, I guess I take it, uh, yeah, actually quite close. When you say it's, uh, it's about open video and it's about streaming and it's about video recordings. Uh, but all related, or mostly related, at least to higher education. So you wouldn't actually run opencast at home to, I don't know, have your, uh, DVD collection, uh, to stream somewhere or something like that. If you want to do that. Technically you can, but just don't, uh, it, it's not fun. Um, however, if you run, run a school and, uh, I dunno, you have. Uh, a lot of videos, a lot of people recording stuff. You may even have lecture halls where non-technical personnel wants to be recorded. Uh, then Opencast is all about this automation. It's also, uh, there is, uh, since we last spoke, uh, development of a new video portal. So, uh, it's also about kind of a YouTube for your campus project. Uh, so larger scale, all of that, uh, and lots of automation. So if you want a story to, to imagine how this works, uh, imagine you are a lecturer, lecturer of, I don't know, ancient Greek mythologies. Something completely unrelated to technology. So you have no idea about technical stuff. You don't, uh, know, for example, how to record your lectures yourself. Um, what you want is to just tell someone, well, please record me. And of course. You could send out people who then set up a camera and stuff like that, but that's actually a lot of work if you have a lot of lecturers, and that's extremely costly. Uh, instead what Opencast provides is that you have an integration in, for example, uh, your room media. So whatever goes on your presentation, uh, can be automatically recorded by capture devices. Mm-hmm. Um, and then as a lecturer, I just have to tick a box. When I schedule my, my courses and say, you know, I want to be recorded. I enter the lecture room, the camera turns on automatically. Uh, Sam's being recorded automatically. And then even the video processing and stuff like that is mostly automatic. Um, of course people can interact with that. So there's a manual video edit mode as, for example, uh. But to the most part, people don't have to. And if you look, uh, at schools, say our school, for example, has about 50 to 60,000 videos recorded in Opencast, uh, which you don't want to do manually. Uh, and we are far from being the largest school when it comes to recording. Jonathan: Mm-hmm. So, boy, there's a, there's a whole bunch of different directions that I wanna go with this all at once. We last talked to you guys, I think in 2019. Lars: Exactly. Yeah. Jonathan: There's been some things that's happened since then that are probably important. Uh, I know a lot of the, in the US at least, a lot of high schools and even younger schools went, did a lot of virtual learning as a result of, of COVID and those things. Uh, did that, did that impact the project? Was that a, a big deal for you guys? Olaf: Absolutely. It, it was a, a major impact, uh, on our project. And on, on the requests we had with respect to, to whatever form virtual learning can take. And that totally depends on, on the school you are at and the school's policies towards COVID and after COVID mm-hmm. Towards the, uh, new normal we found. So what happened first is that the number of, uh, recordings overall and the number of videos, sorry for the ambulance. Jonathan: That's all right. Olaf: Uh, the number of recordings overall increased, so people doing virtual, uh, lectures, uh, everything could be recorded and people had to start and think about what to do with these recordings. And as Lars indicated, the number of recordings suddenly increased from a couple of thousands to 10 of thousands, which is something that you, you have to organize in a, in a video management system of some way or another. Um, take the live streaming, for example. Um, most universities didn't do live streaming before COVID, and suddenly it became a necessity in order to reach students. Mm-hmm. Uh, which is also something that Opencast was, was able to do before. And we actually, um, dealt with that part of the technology during COVID in order to increase or to decrease the latency, for example, because of the, the need for interaction in the, in the virtual learning scenario we had in most schools. So, uh, I think that many schools saw the necessity to, to, to find a solution, uh, for all the videos they produced. If they had a video management systems, let alone, whether that's Opencast or a commercial solution, um, they certainly had to find a way to deal with a large number of videos afterwards, uh, how to store them and how to pay for storage in case you have a commercial system. Because obviously the more videos you have in a commercial video systems, the more you have to pay for that, which in turn raises the question of whether you want to pay for older recordings being stored away and not being watched. Uh, that was pretty interesting to see how, how differently schools were dealing with that. Um, we certainly benefited from, from that situation in, in that we were able to sort of, um, develop new features. Uh, Lars can talk to that better than I can. Uh, we have, uh, a web-based do it yourself, uh, solution for, for recording. Uh, called Opencast Studio where teachers can sit at home, which is what you did at the time, uh, and record their lectures in order for, for students to see that, uh, something we didn't have. So I think it's fair to say that overall Opencast, uh, as a, as a product and as a project benefited from, from COVID. It's not a nice thing to say, but it's a pact. Jonathan: It's, it's the reality of the situation. Some, yeah, there was, there were some industries and products that really took a hit, took a hit as a result, and others did very, very well. Um, what, uh, you mentioned the, kind of the dichotomy between, uh, an enterprise, a paid solution and Opencast, is there crossover there as well? If someone says, I, I want to use this neat open source project, but I don't want to be the cis admin for it. What's the, what's the solution there look like? What, Olaf: so, um. If you, if you are a school and deciding on whether to, uh, either buy a commercial system or use opencast, uh, you don't have to run that, uh, for yourself, OnPrem, per se. So there are different options. Uh, when we started out and when we first met in 2019, I think it's fair to say that uh, most of the open cost systems we saw were, were running OnPrem and had a system administrator, uh, at that local universities. But also due to COVID and also due to the increasing demand of not, of, of schools that were not as huge as, as the schools, uh, initially involved in Opencast, there were different models. So, for example, we now have a number of, of service providers who can run opencast, uh, for you in the cloud so that you can use it as a school without that system administrator sitting by your desk. Uh, also we saw a number of projects where one institution was providing services towards other, uh, higher education institutions in the sense of one institution having that system administrator and other smaller schools benefiting from that. Mm-hmm. Um, so there is actually a, a number of settings in which you can run open costs without a system administrator. Jonathan: Yeah. Uh, have, have any of those things allowed the project to bring on some developers full-time? Is there, what, what is the, what is the funding model of all of this look like, I suppose is the question there, maybe, maybe that's a, maybe that's a question for, um, uh, for Lars. Lars: I can certainly answer that. Sure. So, um, now I'm, I'm actually working directly for a university. Uh, back then when the growth started during COVID, I was working for, uh, a nonprofit that, uh, was actually helping schools with running a incar and with mostly running this on premise. Um, and I can tell you that we started out with, uh, I think about six engineers. Uh, at the end of COVID there were about 20 engineers. Um, and most of them were actually, uh, working on, on a cost. Uh, to be fair, most of that work went, uh, towards the, the customers. Yeah, setting up is up locally and solving local problems. But a lot of that actually goes also in the direction of the project. And what I, for example, found pretty cool back then with my previous employer that they have for every contract, uh, a margin of 20% of all time spent on this project actually goes to the, um, the open source product directly. So, uh, that's time that is being spent on the project directly. Um, and the other thing is that, I mean, lots of, uh, the customers essentially here are our schools. Mm-hmm. Uh, and they don't really compete in that area so much. So, uh, lots of them contributing back as well. So if you actually look at, at Opencast now, there's still. A number of, uh, of, uh, full-time employees working at Opencast. Uh, we looked earlier, uh, when we were waiting here and we have 18 committers right now. So that's core committers with commit rights directly produce projects. Mm-hmm. Which is still active. Um, and yeah, I think that's quite a lot. And most of them are employed somewhere to work on, on the project actually. So, uh, I, I said right at the beginning that not a lot of people would run this at home. So we don't get the, a lot of individual contributors who say, oh yes, I want, I want to do that. We actually get this sometimes 'cause students find a bug and they want to fix it, uh, which is pretty nice. Yeah. But most of the contributions actually come from people employed by, uh, a school or something like that, or by one of these service providers. Jonathan: Yeah. Very cool. Olaf: But let me just add that, um, this certainly sounds quite good when you talk about 18 committers, for example, but you have to keep in mind that they are employed, uh, at an institution. So we are not organizing them as a project without sort of coordinating the, the universities as well. And what, what can always happen is that universities, for example, have local needs that their developers have to look at first. So for example, during COVID, some schools suddenly started to look into certain features that weren't that interesting for Opencast in, in general. So they were missing from the project at the time, or are missing today because of other, uh, things that have to happen, uh, at their, uh, particular school. So it's, it's very much a coordinated effort. Uh, there's not a lot of money flowing around. We do have some, some sponsor. Uh, institutions as well as, uh, commercial sponsors. And I think it's fair to say that we only have one, uh, developer who's actually the, the quality assurance manager also for the project who is sort of employed by the project. But the other, uh, uh, 17 committers then basically are coming from higher institution, uh, higher education institutions, uh, committed to Opencast, but to a certain level. So there's no one who can call on them and tell them what to do. You always have to coordinate them and find something that is interesting enough for those 18 institutions. Actually, it's a smaller number for those institutions who are then willing to, to, um, make their developers work for Opencast at that particular time, which is sometimes quite difficult, but I think that's something that other open source projects also will face. Jonathan: Yeah, absolutely. You, you, you have to ask nicely. Olaf: You have to, you have to, uh, ask nicely and you also have to present them the advantages, which is very easy if you, for example, if you build a new video portal, everyone is very excited and wants to have that video portal right now. But if you go to the back end of your system and want to fix something, which is totally unattractive in terms of decision makers at universities, right? Well, I'm not sure we can afford that. Uh, can we look at, into this next year? It's very much, uh, uh, a thing you have to convince them of. Jonathan: Yes, yes, I understand that. Um, okay, so let's, let's see here. Uh, I'm curious how this actually works. Um, the, the, the idea of automatically recording, uh, in lecture halls. And when you first said that the thing that. Just immediately came to mind is like a raspberry pie strapped to the ceiling running off of POE with a webcam hanging off of it. And it's like that, that's probably exactly what you do in many of these cases, isn't it? Lars: You know, it's a, it's actually quite funny because when the first raspberry pie came out, uh, I was back then still student, uh, and I thought, well cannot build capture device from this. Uh, actually that's not true. Uh, when the first camera module came out mm-hmm. Not the first berry pie. Uh, and yes, I did that. Uh, and some schools actually tried employing that. Uh, but in the end, most nowadays actually buy their devices from, from vendors. There are big technology companies like external electronics, uh, like Epi Fund, like, uh, Adina, aec, and so on and so forth, where you can actually buy devices compatible, uh, with Opencast. And the way it works, uh, to oversimplify the whole thing is you have essentially a calendar for, for each room, uh, where you make entries and basically just say, okay, uh, from 9:00 AM to 10:00 AM there will be an event here. Uh, here's the name and select, uh, and so on. So you add some metadata and the capture device will then look at this schedule, um, and see, okay, uh, I need to start recording now. Um. There can be more integrations. Like for example, uh, we have displays showing people that the recording starts right now, we even have, uh, PT Z cameras. So like they can turn and on, uh, and they usually turned towards, uh, the wall so people don't feel like we were watching them all day. Uh, and, and they, they have to then, uh, go and turn to the direction of select trends, things like that. You, you can have more integration in that. But essentially if you boil it down to very, very simple how it works, uh, there's a schedule. Uh, the device looks at the schedule, records that, and this all happens then locally intellectual. So it can even log loose, the network connection or whatever. And afterward it will then automatically upload this to central server or. Mostly it's, it's a server cluster, uh, where then a workflow happens, which is fully customizable, um, which is great and bad at the same time because you can do very weird things then there if you really want to. Um, but, but also, uh, it, it's great because you can do stuff like automatic subtitling if you want to. You can do picture and picture videos or you can have some separate streams, uh, and so on and so forth. You can integrate your, uh, your editor where you have a manual editing step. Mm-hmm. Um, but unless you have such a manual editing step, all of this will run automatically and then it will publish the video to somewhere. And for a lot of people that is nowadays either the learning management system, which is. Is essentially a, a website where, uh, schools have their, uh, entries for courses and and so on. So all the course information are out one place and Opencast can speak to the most well-known systems and have an integration in that so that students actually have one place to find all material related, uh, to, to course including the video. Um. Or the alternative to that is we talked earlier, very briefly about Berra. So the, the video portal, uh, we have essential YouTube for your campus, so that's also alternative. However, there, there are more modules and, uh, things change from time to time, say mm-hmm. As an old time, uh, opencast, uh, developer, I still remember that Opencast could, uh, at the beginning actually produce DVDs. Uh, so you could theoretically burn that. No, no one was ever using that. It was an idea. Um, Jonathan: yeah. Lars: And, and later on people came up with different, uh, ideas where you want to publish something like that. But the most well used are either the learning management system or the video portal. Especially for if you have public videos, which schools, uh, quite often have. Jonathan: Yeah. Yeah. Very cool. Um, is it possible to use something like OBS to feed video in. I know some of the places I've seen, not exactly the education realm, but lectures and things like that, people will have a computer at the back running OBS and doing the recording there. What, what does it look like to integrate that with opencast? Lars: So, the funny thing is we actually wrote, uh, an OBS plugin, what, at one point, uh, it's not actively maintained anymore. Okay. Um, because yeah, most people just buy these devices, uh, and those people who do manual recordings, and a lot of people actually use OBS for manual recordings. Mm-hmm. If they want to have a little bit more functionality, and that's some, that's a project we recommend, uh, then usually we just tell them, yeah, it's the end. Just, just upload, just upload it afterwards. And so you can just do that. Um, but, uh, yeah, there are different implementations for, uh, these capture devices. They're also open source implementations, so you...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39994695
info_outline
Episode 863 - Opencast: That Code is There for a Reason
02/04/2026
Episode 863 - Opencast: That Code is There for a Reason
This week Jonathan chats with Olaf Andreas Schulte and Lars Kiesow about Opencast, the video management system for education. What does Opencast let a school or university accomplish, how has that changed over the last decade, and what exciting new things are coming? Watch to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39994030
info_outline
Episode 862 transcript
01/28/2026
Episode 862 transcript
FLOSS-862 Jonathan: Whew. This week I talk with Toke Hoyland Jorgenson about cake mq. That is the technology in the kernel that keeps your packets flowing the way that they're supposed to. Yes, we're talking buffer bloat and getting an update on what's new there. This is Floss Weekly, episode 862. Recorded Tuesday, January the 27th. Have your cake and eat it too. 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 we are talking about cake. No, not the Marie Antoinette. Let them eat cake sort of thing. No, we're talking about cues Q discipline making the internet fast and work better. Specifically, we're talking about cake mq. That's the multi queuing cake protocol. And we've got one of the experts to now I got. I got guidance on how to pronounce his name before we started, and we'll see if I actually nail it or not. Toke Hoyland Jorgensen and he is a kernel engineer at Red Hat, working on both the networking and BPF subsystems, and you wrote a PhD on Buffer Bloat. So welcome, welcome Toke to the show. It's wonderful to have you here today. Toke: Thank you. Jonathan: So you're one of the, you're actually one of the few active Red Hat people that we've had on the show. And so I want to nerd out and go down that rabbit hole too. We will have to maybe come back to some of those questions later in the show because we are here, we're here to talk about Buffer Blow. We're here to talk about cake, right? Toke: Yeah. Jonathan: So what, we've talked about this before. In fact, we've had a. We had Dave on the show several times throughout the years before he passed, but super good friend of the show. But give us like the quick version. What is the problem that cake is trying to solve? Why is buffer bloat something that we're still talking about? Toke: Huh? Yeah, I'm not sure I can answer why it's still something we're talking about. You would have to go across the industry for that. But it's like a decade and a half since the time was coined by Jim Gdes. And basically, buffer load is what happens when you have a bottleneck in your network, which you always have somewhere. And you can think of a bottleneck as a funnel where you go from a big pipe to a small pipe. And the way a funnel works and patch it forwarding networking is you have a queue and buffer load is what happens when that queue is too long. And then when you saturate the link, you will get a a standing queue for a little bit of time and you will you will get latency. You'll get latency spikes. And we have these, we have. This famous graph from when, back when we started doing the buffer bloat thing, where you can go up to several seconds of latency on a back to back link between two computers. So Jonathan: I remember when Bit Torrent first started becoming popular and everybody's internet just started slowing to a crawl because somebody was torrenting. And, it came it became that generation's version of, get off the internet. I need to make a phone call. Now it's get off bit warrant, I need make a video call. Toke: BitTorrent was the was the major application that in retrospect, it turns out what BitTorrent was doing was showing us how much buffer upload we had in on it works. But we didn't know that at the time. So it became get off the internet became the solution. Jonathan: It was the first application that really tried to saturate either your upload or your download. Everything else was I guess everything else was very bursty, right? If you're loading a webpage, you get a very a very short burst of very quick traffic, but BitTorrent because you're, downloading ISOs Linux, ISOs, of course. That was the only thing anybody ever downloaded on Bit Torrent. But it would just, it would continue for on and on and at very high bandwidth. So it was one of the first things that would just saturate bandwidth. Toke: Yeah. And also what was special about BitTorrent was it was one of the first applications that actually had bidirectional traffic. And with most links being still are to a certain extent, highly asymmetrical. It's much easier to saturate your uplink than your downlink. Jonathan: Yeah. Very true. So what has happened since then and what is let's just say that what, what has happened since then, and then we'll get to specifically what cake and cake MQ is. Is. Toke: Yes. What happened was you mentioned you have had Dave on the show and he was one of the first people who was really instrumental in in solving this. Working with Jim GTIs, who, as I mentioned, coined the time and what happened initially, this was around 2012 that it was coined the term, and after that we got better queue management algorithms. Turns out you really need, you can't just get rid of the cues because you need them to abort bursts because I think you just said a lot of traffic is quite bursty. And if you just have no queue, you won't get any latency spikes, but you will have a very hard time actually filling your pipe your way too many packets Jonathan: on the floor. Toke: Yeah. And I think van Jacobson was together with Kathy Mitchells they ended up developing this Q management algorithm, which is called cuddle controlled delay. And they they were the first people who coined this term Good Q and Bad Q, where you have good Q is what you have that absorbs bursts and and that you need. But if it stays around for, enough time that it starts becoming latency that kills your application traffic, then it's bad queue. And the insight they had was that you can actually distinguish between these two just by measuring how long time is the queue around. The what you do is you just mesh out. You can just before, before they came up with the coddle, we had this, we had queue management algorithms, which can dynamically drop packets and so on, but they, but you had to manually tune them to the link. And so that insight with coddle was you can just measure the delay as the package go through the queue by very simply timestamping packets when they come in, and then taking the current time when you det chew them on the other end. And then you can just measure. And this means that you suddenly have a measurement for the queue in the time domain, not in back in. In packets or bytes. And that means that it's in variant across many different bandwidths. And with this algorithm you can deploy so you like, because time is what we perceive as humans. You just need to have a measure of saying what tottle does. It says if you have more than five milliseconds of queuing that is too much. And if this persists for more than a hundred milliseconds, then it's time to react. So this becomes a self tuning algorithm that can distinguish between these different cues. And you can start dropping packets, which then signals the TCP protocol that carries all this traffic to slow down. And you will, you can manage your bottleneck queue in a way that alleviates these sections of bandwidth. That was the one I Jonathan: remember. I remember years and years ago. Probably about this same time. Setting up manually on an open WRT router, some cues and trying to, trying to separate traffic into, okay. This is HTTP. I want it to go fast. This is https. I want it to go fast. Yeah. Everything else can be slow. And in this third bucket. Toke: Yes Jonathan: it was, Toke: yeah. Jonathan: It was a huge pain to set up at the time. I remember. Toke: Oh no. There's a whole sort of bit in the IP head of field for diff serve markings where this was supposed to be carried across. Jonathan: Yeah. Toke: Across the whole internet. And of course, no one could agree which traffic was most important of course, and so on and so forth. So having algorithms that can just do the right thing was one innovation and Cuddle was the first one. And then another innovation on top of that, which came from Eric Esay, who's also a internal developer was this idea of doing per flow queuing. So you you just look at the packet header and say Every flow, so every, you look at the sourcing destination of each flow port and IP address, and you'd separate them into separate buckets stochastically, hash, hash based, and then you give each one its own queue with its own instance of coddle, which means that when a flow builds up queue for itself, it will get punished, but other flows will not experience jobs. And you combine this with this innovation where you say, okay, so the first package from a flow will get. Temporary priority. And that means that for the, for one thing, a lot of the setup you do when you establish a flow like this TCP handshake and TLS, but also things that are just short flows, like DNS packets will just magically sail through this FQ crowd algorithm without you having to do anything. You don't have to configure it, you don't have to specify, this is my important DNS traffic, or these are my short interactive VoIP flows or HTP traffic. We'll just magically sail through this very simple mechanism. Jonathan: Yeah. So you mentioned VoIP flows and I think of everybody now doing video calls, and surely a video call looks very similar to this algorithm, to something like BitTorrent, doesn't it? Toke: No, because a video call is not a. Using as much bandwidth as bit turn. So bit turn will saturate your link depending, no matter what. It's video, depends. Voice is very low bandwidth, right? So a voice flow is 20 kilobits or something like that, which is nothing. If you have a slow connection, you can saturate it with a video flow. But most today, most video codex will scale up and down so it can the same codec can scale from 10 megabits all the way down to half a megabit with the same mechanism. So a video flow will look like something that's a bit, we call them fat flows. And that will get feedback with the drops and it will scale back the same way t speed us. So it will find the same like it will find the right set point where does not use more bandwidth than what's available in in the link, but this only works. So the problem that video has is that if you have buffer upload, you don't get feedback by packet loss. You just get the lay and delay is the killer. Like when you have anything that's interactive, like a video flow, if we had a multiple second delay between us, it's impossible to, it Jonathan: makes it very difficult to have a conversation. Yes. Toke: Yeah. So obviously if you don't have the bandwidth, you can't use the flow, right? Like right now, this video flow we are on now is using about five megabits per second, according to the little thing in the corner, which by modern day standards is not a lot. So in that sense, this would be one of the spas flows that would get priority if I had a second flow going using lots of bandwidth that would get priority automatically by this FQ catalog algorithm. Jonathan: And that's just with FQ coddle. That's not even, we've not even made it to cake yet. Toke: No. Yeah. So if we're going chronologically, what happened was, okay, we have these algorithms now we need to use them. And the problem we then ran into was that most people get their cable modem or DSL modem, was it also at the time or whatever it is. They get this from their ISP. And that box that they get from that ISP usually the bottleneck because that's where you have your slow up upload. You can get, I think back in the DSL. Space you had five or 10 megabits of downstream and half a megabit or one megabit of upload sounds about right. And then you got cable and suddenly you have, oh, you have a hundred megabits of downstream traffic and two megabits of upload or something to that effect. And that means that on the upstream your cable modem is your bottle bottleneck link. And your title mode modem is closed and proprietary and there's not much you can do about it. We came up with this hack of saying instead of. Trying to fix the cable modem, which we can't really do unless we get the whole industry to pay attention, which as we said initially, that's still a work in progress. But what you can do instead is you can set a box before the cable modem That will shape your traffic and limit the traffic to use just under the, not the bandwidth you have. So if you have 10 megabits of upload bandwidth, you make sure that you never use more than say. 9.5 megabits. And that way the cable mode is no longer at the bottleneck because you've moved it to somewhere where you can control it. And and then you have this shaper here, and we came up with this package called SQM Scripts, smart Q Management scripts, which still exists, which will take the different ish and the Linux turn or configure them just the right way. Install FQ coddle on top, make sure everything is set up. And that was a bit of a hassle to do. So cake came about as this implementation of a single cut dish where the the goal is to just, you install that, you tell it what bandwidth you have, and that's it Jonathan: by, by, by keeping the bandwidth that it's limited to just under what the cable modem in this case you totally defeat That device is buffer bloat by never letting its buffers start to fill up. Toke: Yes, exactly. Jonathan: Yeah. Makes a lot of Toke: sense. And then there's various sort of little tweaks. So for example if you have a, an A DSL connection, for example, then you're not actually sending ethernet frames over the wire. You're using this old protocol that's called ATM, which will chop everything up in 48 byte packets and send them one at a time. Which it comes all the way back from when we were doing circuit switch networks. Jonathan: Yep. Toke: But this is still the protocol that used. So when you set a bandwidth in your shaper, you need to know for each individual packet, how many bytes will that actually be on the wire. So you need to calculate, okay, how many frames will it be. Split up into, and how much overhead does these have and how much is, will my packet end up? Actually? How much base will it end up actually taking on the wire? And then you calculate backwards to the set rate and all these different sort of overhead compensation and different calculations also went into cake. So you can just tell it. I have a DSL connection done. Yeah. And there's a couple of other sort of, innovations that we put into cake, like you can have host fairness. So each individual device in your home will get an equal share of the bandwidth, regardless of how many flows it has. It also has diff surf based prioritization for those who do want to configure things to prioritize certain things. And so on. So there was this like couple of other flows sorry, features that went into cake, that, that became this one stop shop for solving buffer bloat in this traffic shaper scenario. Jonathan: Yeah. And I remember open WRT started supporting Cake and D Dave Top worked on this quite a bit, got to the point to where in, in open WRT it was basically just a single switch that you could go in and turn on. Yes. And get cake working and, it would, it really did help particularly for things, making things feel speedier and getting rid of that. Toke: Yeah, no we saw this during COVID as well as you mentioned, right? Suddenly everyone was dependent on the internet connection for them. We've had some very touching feedback from people who said basically cake was the thing that made my life possible during COVID because I had to teach from home or something. And if my internet connection had just been what it was, this would not have worked and I would've lost my job. So you helped me get through COVID, which is very cool to see things work in the real world this way. Jonathan: And because it's in the Linux kernel, we've slowly seen this has made its way into a lot of these boxes. If I understand correctly, most cable boxes these days have some level of buffer blow management built into them. Now I don't remember exactly which solution that is. But they, there's been progress made, right? Toke: Yes. Also, the IATF also picked up in this, so there was a whole working group chartered at the IATF to define some of these algorithms. And like the a, that was an A QM working group at the IATF, which. Also is what got some people in the industry to pay attention. And cable modems, the cable standard in particular specified not cake, but in other HQM as mandatory to implement as part of the daris three or 3.1 standard? I think so. So in that sense, things have improved a lot and in other places it's still pretty bad 5G being one contender that varies. Like some places it's just as bad as back in the early cable modem days. Jonathan: Yeah. Alright, so that is a great backgrounder. Now the thing we're actually here to talk about is cake mq, which I believe the MQ stands for. Multi q. What is the new thing in cake mq? How did this come about? Toke: I. Since this originally, like one of the problems we started seeing with especially these open WRT boxes is that you are doing everything in software. So you have a software based rate chip, and you have to process this, you have to queue package, you have to delay them. And these are not like BE servers, right? These are tiny, they're Jonathan: little Toke: MIP processes, some of them still MIPS based. Yeah. And so they run out of CPU U and it's very hard to shape past 50, a hundred, 200 megabits. And as link speeds start to increase this is no longer enough. And, also, we ran into the end of Moore's Law, right? So we can't really just go faster with CPUs. So that didn't happen either. But what happened that was that everything starts to scale out. So now we have multiple CPUs everywhere. Yes. And on the server level, we at hundreds of CPUs, but even on CP boxes, we add like several CPUs. But the way that and the way we scale out is just by parallelizing everything. And actually, in fact, network traffic lends itself well really well to this because you have multiple flows. So you can just spray them across all the CPUs and each CPU will have a subset of the flows. Which is what. This is how the internal scales are. Networking just scales across the views. But the problem is when you're doing this kind of thing where you say, I want to enforce a particular bandwidth globally for my interface, you need to have a single choke point where you can do this. And also because parallel programming is hard. You get all these locks, right? So every cist in Linux has this global lock that whenever that one cist runs, it will always have be holding one lock. Jonathan: Yep. Toke: So when you scale across hardware queues, which is also how network hardware scales you need multiple instances of the q dsk and then you are no longer able to have one bandwidth. So you can say, okay, I have my interface, I have. Two queues, so we'll just set them to half the bandwidth each. Jonathan: It's a real, it's a real example of you can't have your cake and eat it too. Toke: Yes, Jonathan: exactly. You either have really good throughput, but you lose your sort of global viewpoint, or you keep that global viewpoint and you can keep an eye on all of the traffic at once, but you're essentially doing it one thing at a time. Toke: Yeah. And whenever you would turn on cake to shape your traffic, you would force everything through this funnel of a single bottleneck. Again, a single CPU, and then you're back to we cannot scale the bandwidth. Jonathan: Absolutely. Toke: So take MQ is, a solution to this problem where MQ is multi q. And and this was work I did together with a PhD student or minors, was actually his his master's thesis work from his, from Tu Berlin. And what he implemented and we then upstreamed into the Linux kernel now is a way for having multiple instances of cake work together in tandem so that instead they're still completely independent and they will be installed per hardware queue so they can run independently, but they will share just the shaper state. So instead of having everything under one lock, you will just...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39911755
info_outline
Episode 862 - Have Your CAKE and Eat It Too
01/28/2026
Episode 862 - Have Your CAKE and Eat It Too
This week Jonathan chats with Toke Hoiland-Jorgensen about CAKE_MQ, the newest Kernel innovation to combat Bufferbloat! What was the realization that made CAKE parallelizable? When can we expect it in the wild? And what's new in the rest of the kernel world? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39911285
info_outline
Episode 861 transcript
01/21/2026
Episode 861 transcript
FLOSS-861 Jonathan: Hey folks. This week I'm talking with Nicholas Adams about Open React, not React Open. React. That's the big database project. It scales, it replicates, it can do a lot of stuff very, very quickly. It's no sequel. Just don't ask it to fuzzy match. That's real slow. Uh, it's a lot of fun. You don't wanna miss it. This is Floss Weekly episode 861. Recorded on Monday, January the 20th. Big databases with Open React. Hey folks, it's time for Floss Weekly. That's the show about Free Libre and open source software. I am your host, Jonathan Bennett. And today we have, we have something sort of, it sort of different, it's a database and it's an ang, I think it's an erlang based project. Um, we're recording at a bit of an oddball time because our guest is literally on the other side of the world from me. But that's okay. That's one of the things we like to do here. We have the flexibility to do that. And so, uh, without further ado, today we're talking with Nicholas Adams about Open React. That's RIAK, not any other thing that sounds like React. I imagine they, they have some confusion around that. Um, let's, let's find out. So first off, uh, welcome, welcome to the show, Nicholas. It's good to have you here. Thanks very much, Jonathan. It's a pleasure to be here. Yeah, I, I'm, I'm looking forward to getting to learn more about this project and sort of the ecosystem around it. I was doing a little bit of prep for this and looking into it, and, well, first off, we are, we're talking about a, a database program, right? And it's, it, it is written in Ling Yes, it is indeed written in lan. Okay. And it's, and we're a database. It's Open React, and there was a React before there was Open React, which is al that, that fact in and of itself seems to tell an interesting story. What's the, what's the background there? Nicholas: Okay, so the background behind the transition, um, many, many moons ago, I believe it was 2009, a company in the US a venture startup called Basho, created a database product called React. Um, started off with a key value store, hence the no scale basis, and that became incredibly popular within the us. It grew to a scale where Apple used it for iMessages. Um, league of Legends ran it, you know, major insurance companies, major HR companies, government projects, space explanation projects, you know, all different kinds of really famous companies. Uber was a great early user of React, that that's the kind of scare that grew to. It was a really exciting database product. Jonathan: Right? Nicholas: And then in 2017, there was a botched buyout as the venture capitalists wanted to get their money back a little bit earlier than they should have done from this company that was growing well and things went wrong. Um, Basho folded. Basically there was a bankruptcy and, um. The world's media was very happy to say, Basho is dead, therefore react is dead, therefore the end of React, et cetera. Jonathan: Mm. Nicholas: Uh, which was a very sad moment, but also grossly incorrect. As, as soon as Basho went bankrupt, one of the largest users on the planet, um, uh, can I give their name? I think I can bet. 3 6 5 a, uh, British company for online betting, the world's largest online betting company. They were kind enough to buy the ip, just the ip, not the company, and make it all the code open source. Jonathan: Oh, really? Wow. I, I, so that's pretty, that's a pretty rare thing. I don't know that I could, that I could name another outside company. So like I, I know of big companies that have made their code base open source. One of the obvious examples there is, you know, Netscape Navigator became Muzz little Firefox. Mm-hmm. But I don't know that I could name another company where. An IP was bought just to make it open source like that, that's gotta be pretty unique in, in this world that we, we work in. Nicholas: I think one of the biggest issues is as React at the time was such a well used database worldwide. Mm-hmm. And there was nothing like it. Um, I mean, Uber for example, placed, oh, Basho is dead. We need to move to something very quickly, move to Postgres. And then at the scale that Uber operates, they ran into all kinds of issues very, very quickly. Because Postgres is a great database within a certain sphere, but I'm sorry, but it just doesn't scale as well as React does because this is designed to be a massively scalable database. Right, right, Jonathan: right. Nicholas: So, um, you know, lots of companies run into things like that. BET 3 6 5 realized there's nothing they could replace it with. So they bought the IP to make sure the project different didn't die. And they knew that there were lots of people still around the world who were using it. Jonathan: Mm-hmm. Nicholas: So they made the code open source and under bet 3, 6 5 stewardship, we made 40 something releases of, uh, react a. Um, but we were still cursed with the world's media logged everywhere of, if you search for React, it said yes, react died in 2017. And, um, after a while we got somewhat annoyed with this. And, um, some of the biggest contributors towards the project, um, my company included, came together under the Erlang Ecosystems Foundation, which is an NPO based in the us. Mm-hmm. And we basically created Open React. The, the concept being that if we have a mild change of name open suggests it's open source and it's new and exciting, but it still has the react part in there to say, you know, this is where we came from. Jonathan: And it also gives people something to search for on, on the internet that does not return. It's a dead project. Nicholas: Yes. Which annoyed the hell out of us all. Sorry. Annoyed us all the time because. Every time. Yes, I do react, but React died. No, it doesn't. It's still, yeah, it still works. It runs the technology you probably use today and just didn't realize. Jonathan: Yeah. So it was, it was closed source before the, uh, before the buyout. Nicholas: So before the buyouts. Um, it opened a freemium model, so there were. It was essentially the open source model, which would allow you to use everything except for a couple of key features. For example, multi-data center replication was an enterprise only feature. And of course, if you're a big company, you want to be able to have your data, uh, located, uh, geo separated. So if one data center goes down, it's hit by a tornado, there's a power cut, whatever, you can just switch to the other one. But also is you can do bidirectional multidirectional replication. You can then create your own CDN worldwide. So maybe have a data center in the US a data center in Europe and a data center in Asia, and then whichever one your user hits, they'll hit the one closest to you. But anybody else, anywhere else can retrieve their data from another location. Jonathan: Yeah. Now I, I wanna dig into that too because there's some really interesting questions about. You know what, uh, there, there's sort of a pick two, pick any two out of three with, with databases. I want to get into that. Um, but first off, what, what is your background with this? How did you, were you involved with React Back when as part of BA show, or are you, are you strictly a, a post open source developer? Nicholas: Oh, I sit on both sides of that fence. So yes, back in the day, um, Basho decided to outsource Asia Pacific support, um, to the company that I co-founded. Jonathan: Oh, okay. Nicholas: So. I trained up as a basho client services engineer, or CSE as they were called back then. And if you had one of the enterprise packages with React, that then meant that you gained access to either business hours or 24 7 3 6 5 support. So if you had a critical issue, you could basically open a ticket in Zendesk and then somebody will jump on your ticket and say, yep, this is why you're having issues, this is how we recommend you fix it, or give us more logs and data so we can analyze your problem and try and replicate it and then tell you how to fix it. Jonathan: Yeah. So you were, you were involved at, at that level then, and then, like how, how involved have you been through each step of this process? Nicholas: So when Bael went under, um, we realized that basically Basho went under, which cost them all their US engineers, all the European engineers, and Asia Pacific was basically us. Um, we're a separate company, so we didn't go bankrupt. Jonathan: Mm-hmm. Nicholas: As we had other revenue streams. So we just re, we realized React is a huge product that's not gonna go away. Even if Basho goes under, people are gonna keep using it because it just works. So we rehired some of their engineers from the US and Europe and basically reset up shop because we had the previous experience of working with all the customers as 24 7 support. You know, Europe has an issue that runs into the night, then it goes through the US and then continues round and we take over, over at the Raad Dawn when it's, you know, nine o'clock in the morning here. So we were just able to go to all the customers, renew and say, hi, we're still here. Would you like support? And quite a few of them said, yeah, support. Great. We need support because them mid support's gone. And um, yeah, essentially our company went from doing 24 7, 3 6 5 support just from Asia to doing it globally. Jonathan: And Nicholas: we've continued providing enterprise grade support ever since. Although the software for Open React since we trans transitioned to Open React is completely open source. So even without our support, you get all the features, everything. Uh, we are under an Apache two license, which means it's truly free. And as the whole thing is registered under the Erlang Ecosystems Foundation, the n, the NPO, then again, it's completely open source. We're not going under any, you know, like Minow the other day where they say, yeah, we're open source, except when the venture capitalists decide we want to close the source and make it a pay to use product. And you are all in trouble. Now, that's not gonna happen here because we're under an NPO. Jonathan: Right. So you, you said something interesting there. You're, you're Apache two, which means that you're truly, how did you put it? Truly free, truly open source. Nicholas: Yeah, we're truly open source. You're free to take our source code and do whatever you want to it, but please don't do nasty stuff. Jonathan: Uh, yes, I've, I've been involved in those conversations too. Yes, we make, you know, X, Y, or Z, please don't break the law with our stuff. Yeah, that's, uh, is, is is Apache two, and I don't remember off the top of my head, is Apache two, does it have copy left? Is it, does it, does it have some, some, um, restriction that you've got to give back your changes? Or is it, is it one of the, what they call the permissive licenses? I should know this off the top of my head too. Nicholas: I, the top of my head, I believe it's a permissive license where you are free to do whatever you want. But don't quote me on that, as they say is, that's just the best of my recall, I'm afraid. Jonathan: Yes. I, I think that's, I think that's accurate. Um, okay, so you guys, you guys were in this situation and things became. Fully open source. And you discovered that people still like to be able to call a company for support, even though it's an open source project. Is that, yeah. How, how long, how long has Open React sort of existed since this rebrand? Nicholas: Right. The rebrand happened in October, 2024. Okay. So I got to announce it publicly at Code Beam Europe, um, which was in Berlin at the time. Jonathan: Got it. Getting close to a year and a half then that it's been, it's been running under the new name. How's that? How's that gone? Have you, have you found, you know, a renewed interest as a result of it? Nicholas: Yes, there's definitely been renewed interest since we did the rebrand. Um, to give you an example, there was a React group on LinkedIn. Mm-hmm. Which was essentially a ghost town. And, uh, that had 600 members who never seemed to really react to anything that anybody posted there. The odd person did, but not that many. And then we thought, well, we are rebranding. So I created the Open React group on LinkedIn and we have over a hundred members now and every time, you know, we will be doing stuff and people occasionally pop up or there'll be new members or maybe in one of the things such as one of the Slack channels, people will suddenly pop up brand new and say, yeah, I used to use React when I worked for company X, Y, Z, and it was a great product. And I, I'm, now I'm seeing it appearing again as Open React, and I'm really interested, I want to use it again. Jonathan: Yeah. Yeah. Great. Okay. I have some technical questions then. Some of these I know the answer to, some of 'em, I don't, I leave everybody guessing how much I actually know the answers. Um, when we talk about no sql, what, what is, what is NoSQL? Nicholas: Um, oh, this is the classic SQL no SQL database. Uh, uh, do it rather if you imagine SQL as essentially a glorified Excel sheet. Okay? Think about it. You've got, in your worksheet, you have multiple sheets, which one of which, each of which is a table. And if you go back into the old days, you could actually connect, um, uh, Excel spreadsheet as an O-P-C-O-D-B-C driver for xq uh, SQL. In Windows, which is one of the ways I actually used to practice my SQL, is I'd send things in the code, I'd check how it changed my worksheet, and that would be, oh yeah. So that's how that works. And if I got it horribly wrong, I could just go back into Excel and edit it back how it should be. I'm, Jonathan: I'm pretty sure, so you can, I'm pretty sure you can still do that with Google Sheets, by the way. There are ways to address that as if it's a SQL database. It's a cursed thing to do, but you can do it. Nicholas: Yes, it's a great learning tool, but should not really be used in production unless you really, really, really have to for some obscure reason. Um, yes. So if you imagine SQL is essentially a worksheet or workbook. No, SQL is more like a file system. So, um, in the world of React KV or Open React kv, um, depending on which period you look at, then we essentially have, um, bucket types. We have buckets, keys, and then values. And that would be, for example, bucket type. Um. If you are using a Windows file system, as some of your users may do, then that would be, for example, C or D would be an option. Essentially, it gives you multiple levels of, um, naming you can use. Mm-hmm. Uh, for example, user's folder, whatever, call it whatever you want. Bucket would just be another folder. Name key would be the name of whatever you're sticking in there. And value would be the thing. So that could be, for example, um, I don't know, users, um, emails. And then you have the user ID of 1, 2, 3, 4. And then the value would be my email@mydomain.com. Jonathan: Mm-hmm. Nicholas: Or it could be again, users this time, um, photos this, then it, or I dunno, gravita or whatever. Then again, user ID is your, um, key. And then it could be a jpeg or a GIF or maybe even some kind of movie file. That's your value, which is why this is very flexible as you can essentially stick anything you want in anywhere and it will generally just accept it. Jonathan: Yeah. Got it. Got it. Now, when we talk about, uh, databases, particularly like high availability, big scale databases, there's a thing called the CAP Theorem, right? And that talks about you can, you can only have two of these three things. And I, I can't remember, I know basically what this is, but I don't remember what CAP actually stands for. Um, it's, it's what? Concurrency, Nicholas: um, oh, very good. Well, consistency, availability, and then p for network Partition. Jonathan: That's right. Partition tolerance. Okay. So what, what, and, and the idea is you can only have two of three. These three things. You gotta pick two. Uh, what, what two have has React open, react picked. Nicholas: So Open React decided to pick availability and network partition as priority, but we also run eventual consistency in the background. Jonathan: Mm-hmm. Nicholas: So we're kind of two and a half because it's impossible to get three unless you do some severe black magic. Jonathan: Yeah. So essentially what you're saying is, uh, a record may go in on this physical server, and then around the world someone may ping a different physical server and it may not be updated yet, but both of those servers are gonna be up and online. Nicholas: Yes. So no matter what happens, you should be able to, uh, read and write. Although it's possible that if you do a read at, well, you know, within a quarter of a millisecond of somebody writing stuff, then you may not be able to read the most UpToDate version. Jonathan: Yeah. Yeah. Interesting. So, and then, and then what, um, what does the scaling of Open React look like? Like how, how big do these systems get? I, I assume they run on, and I think we've covered this a bit already, but like, you, you run them on multiple discrete servers. We're not just talking about one really big box. Yes. Nicholas: So Open React is generally designed to be both horizontal and vertically scalable. So you can run it on a handful of really big boxes. Mm-hmm. Or you can run it on a bunch of tiny boxes. And to give you an idea of scale, um, I run a cluster, which is five nodes here on raspberry pies, which I used to do my, um, crypto taxes. Jonathan: Hmm. That makes sense. I Nicholas: just store ridiculous amounts of essentially key value of this is the time, this is the date, this is the currency, and this is what it was worth in my currency at the time. I just store huge amounts of that in this. And that's, you know, really small scale going up to big scale. You have people, so one of our customers back in the day, they used to sync 14 petabytes of data, um, around their system. They had multiple clusters of 60 nodes back then. Um, another user who is quite concurrent, they sync well. They, um, what do they do? They do 10 billion keys across an entire country every seven minutes. Jonathan: How, how does that, how does that, how does Open React do that? Like, is, is there some sort of, uh, black magic so that you don't have to push the entire database across the internet? Nicholas: Um, yes, the fine details of the replication engine are quite amazing. And if I try to go into this in quite in great detail, one of the people who wrote the vast majority of it would probably kill me as I know I'll get it wrong. So I'll try to simplify a bit and basically will say, let's say that if you hash this side and you hash this side, so you know, I've got two clusters. This one says I have these hashes, this side has, I have these hashes. You compare the hashes and then see what difference is and you think across what's missing. Um, essentially, and I'm simplifying horribly and probably getting things wrong. Imagine that in a Merkel tree where you have different layers of hashes going all the way up. Jonathan: Mm-hmm. Nicholas: And then it finds out where the difference is and then just goes down that little bit till it finds what's different in there, rather than having to do all of cluster A and all of cluster B in one shot. Jonathan: Yeah. Yeah, makes sense. It's, it's almost, uh, it's almost a database on the blockchain, sort of. Nicholas: It is essentially, yeah. Given the way that React is distributed within itself and has multiple copies and the copies have to be consistent with each other. It's essentially a private blockchain, but we just don't sign the blocks. Jonathan: Mm-hmm. And you don't call it a blockchain because people will get the wrong, wrong idea. Nicholas: This existed before blockchain was a big thing. Jonathan: Yes. Nicholas: I know the blockchain also came into existence around about the same time, but that this is where, this is properly a...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39815320
info_outline
Episode 861 - Big Databases with OpenRiak
01/21/2026
Episode 861 - Big Databases with OpenRiak
This week Jonathan chats with Nicholas Adams about OpenRiak! Why is there a Riak and an OpenRiak, which side of the CAP theorem does OpenRiak land on, and why is it so blazingly fast for some operations? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39815050
info_outline
Episode 860 transcript
01/14/2026
Episode 860 transcript
FLOSS-860 Jonathan: Hey folks. This week Randall joins me. We talk with Jose Valli about Elixir. In fact, we get its origin story. What was the problem we were originally trying to solve, and why is Elixir so interesting for today's problems, whether it be concurrency, the web, or even ai, you don't wanna miss it. So stay tuned. This is Floss Weekly episode 860, recorded Tuesday, January the 13th. Elixir Origin Store. Hey folks, it is Time for a Floss Weekly. That's the show about Free Libre and open source software. I'm your host, Jonathan Bennett, and today we are talking about Elixir and Ang and probably a lot of other things going on in that community. We haven't talked to him for a few, a couple of months, I think. And so it was, uh. It was time to bring him back. And really what happened is a listener pinged to me and said, Hey, this guy, you need to have this guy on. Alright, we will have that guy on. Uh, that guy is Jose Valine working on to bring on here in just a moment. But before we do that, we have a co-host. What was the thing we always used to say? A, a beautiful and talented co-host. Is that the way it went, Randall? Randal: I can't remember, but it's something I think, yeah, something about Beautiful. I remember that was sort of snuck in there as I introduced the very co that was part, part of spiel. Jonathan: 'cause I remember every time you would introduce me and I was co-hosting, I just sort of had a pause. It's like, I don't know how I feel about this, but it's good to be here. Welcome back, Randall. Randal: Hey, thanks for having me back. Jonathan: Yeah. Uh, we were, we were comparing notes before the show got started about, uh, well, a lot of different things. But what's, uh, is, is there anything new in your world that you wanna sort of, uh. Give a, a brief update on, we'll let you plug stuff at the very end, but what, what have you been up to recently? Randal: Uh, just basically, uh, taking care of, uh, dart and flutter things because that's sort of my primary bent at the, these days. I've been doing, I've been a flutter Google developer expert, uh, one of 10 in the US uh, for about, uh, six years now, six and a half years. And so that means I get to spend a lot of time online answering questions for people and doing virtual presentations at Google developer groups all over the world. Um, but that's mostly what I've been doing that and answering questions. I've, I've also been playing. With AI tools in particular, uh, anti-gravity and, uh, having a lot of fun working with that, uh, to develop software and, uh, update software and to review other people's software. Anti-Gravity has been, uh, fascinating. Uh, the approach there. And yeah, I can't believe it's free still. So that's the best part is free. Yeah, free Free is good. Free is free is good. Jonathan: I have, I've recently dipped my toes into those waters and, uh, just getting a, an LLM into VS code and letting it, you know, look at some things and I have been amazed back and it goes back and forth. I will either be amazed by how good it is and it predicts the thing that I want to do, and it gives me good code suggestions or it's terrible and has absolutely no idea what's going on. It seems like it, it can only do those two extreme opposites. Randal: Yeah, I long ago turned off autocomplete. I don't use it for autocomplete anymore. I basically use it as a, uh, command driven, right. Uh, code updater. So I'm basically giving instructions as a prompt and letting it change my code genically based on that. And that seems to be a lot more effective for me than auto complete. Right. Right. So I have, so I haven't actually, it's been weird because I, in the last six months, the amount of time I've spent actually coding, I think is completely different. Mm-hmm. I don't, I, I don't find myself codings as much as instructing agents to code for me. Yeah. Uh, using good software engineering practices like create a PRD first and then create a test plan for every step that you change. Things like that. And if you use good software engineering practices, the, the, the, the current models, especially now Gemini three flash is fast and does reasonably well at, at coding, uh, practices, and that's built in, of course to anti-gravity. And so, uh, I've been, uh, I've been getting a lot of, uh, I'm getting a lot of good work from that. So that's kind of what I'm, uh, experimenting mostly with these days. Jonathan: Yeah. Well, I've got a, I've got a note here that our guest is actually also doing some experimentation with AI stuff. And so we will, uh, we'll have to ask him about that. Uh, let's go ahead and bring him on actually. Uh, Jose, Jose Valli, welcome sir, to the show. And, uh, I've got a brief bio here. He is the creator of the Elixir Programming Language Chief Adoption Officer at Dash bit. It's a company that does sustainable open source and continuous adoption for elixir. You are a seasoned speaker. You've done three programming books now, uh, obviously a member of the open source community and, uh, you're also involved with Tide wave.ai, which we might get to as well. Welcome Jose to the show. Jose: Hi, uh, thank you for, for having me. I do have a question. Uh, are the, the guests beautiful as well, or only the co-hosts? Randal: I don't think I ever used that with guests. I think I only used it with co-hosts. It was, it was just, it was just a random, beautiful and talented, whoever. Right. It was just a, just a stupid thing to say to bring people on. Yep. Jonathan: Yep. Randal: It was fun. Jonathan: Still is fun. We, we, we have, we have a lot of fun here. Uh, I sometimes before the show, I'll tell guests when they come on, just imagine that we're. Three new friends sitting down, geeking out over something. And that's always sort of the vibe the show has had. Yeah. So, exactly. That's, that's fantastic. Alright, Jose, tell me, tell me about, uh, a Elixir. Now we've talked about the, we've talked about Lange and Elixir on the show a bit before, but you, you sort of, you're a different voice because you, you created Elixir. And so let's do sort of a brief catch up, like what is, what is the elixir language and what problem is it solving? But then let's also go into like, what's the origin story? At what point did you wake up and go, I need to make a programming language based off of Ling, Jose: right. Um, do I start with the story or with the elevator pitch, which whichever one you Jonathan: think makes most the most sense. Jose: Okay. So let, let's go, let's go the, the long, the long way on this. All right. Um, so. All right, so we'll have to go. I'll try to be brief. We'll have to go a little bit, little bit back in time. So this was about, so if we go back 15 years, 16 years, right? Like new programming, a lot of programming languages were coming up at the time. And those language that they were showing up, right? They all had concurrency as one of the features, right? So like go closure, right? Like every link that was showing up ru later on, they, they were thinking about concurrency as part of the problems that they wanna solve. And that's because it was about that time that when we realized that our computers would not magically get twice faster, right? Every two years. And we started to have machines with two cores, four cores. Like today you can get a machine for in running production with 40 cores, right? 64. I like to say even your wrist wristwatch has four cores. Jonathan: Yeah. Jose: And so people. Realize that, well, you know, they start to think, well if now we need to be able to write software that is going to use all the cores on your machine efficiently. And that's where a lot of people, uh, were at the time. Like, how, how can we improve? How can we write software that is going to use all the resources, all the cores in our machine? And if I run it, the machine, uh, with uh, two cores, it's going to be twice faster. But if I run on a machine with eight core, it's going to be eight times faster. So if only that was, if only Jonathan: it was that easy, Jose: it can be right or it can get pretty close to that. Mm-hmm. Um, so we are getting to part of the elevator feature already. Yes. But so, and that's where I, I put myself in right at the time. So at the time I was, uh, doing Ruby. Yeah. And, uh, I was part of the Rails web framework core team, and we started running through some concurrency issues because we wanted, like everybody to use our cores. And then I was like, wait, like if concurrency is going to become important, because that's what everybody was talking about, the time, two cores, four cores, 16 cores. How can I write software that is going to, as I said, it, it doesn't feel easy. How can, how can we write software where concurrency is going to feel easy and is going to feel natural? So, uh, I didn't start with like, let's create a new programming language. I think, uh, uh, hopefully most people don't, when they have a problem, they're like, I know I will create a new programming language. So I started with the, with the, with the purpose to learn. Okay. So I was like, okay, let me see. Somebody has to have solved this problem, right? And. I started exploring, uh, learning different languages. And I like to say that in this journey there are like two, two things that change, like rewired my brain, change how I think about software, uh, which is, uh, the first was when I found functional programming because a lot of the, and functional programming means many things to different people. Jonathan: Mm-hmm. Jose: So I'm rather, I'm going say it's when I found immutability because a lot of the programming languages that we use, why concurrency is hard, is because, well, you have a thingy memory, like an array, an object, whatever, right? You have the same memory and now you're like, well, lemme try to use two core. So you have two core running at the same time. And I imagine that they want to change the same place in memory. Right. If you're not careful about that, right. One is going to start changing the thing in memory is going to race with the other one. You get a segmentation fault or race condition and your software doesn't work. Right. So you have to, that's why concurrency is hard, right? Because you have your memory and you have, you have your piece of code that is doing an operation and you have to think about how all those different threads can interleave each other and get to that piece of code. Very hard to reason about it. Jonathan: Mm-hmm. Jose: And, um, so, but the thing about push programming, but to me really immutability is that, well, what if instead of if I have a, a, an array in memory or an object or whatever, but if instead of change it in memory, I just create a new one. I never really mutate things. I treat things as immutable, right? So if I have a list, I want to remove an element from that list. I got a new list. Right. I don't change the old one. And if you do that, something very simple, very straightforward. A lot of the concurrency issues that I had to deal with, boom, they disappeared. Right? And it's like, it's the best way. I like to say it's the best way of solving a problem. Because sometimes you have a problem and you have to solve it, right? So you go and you have a solution, but you have like the problem and the solution coexisting. Jonathan: Mm-hmm. Jose: But with immutability, it's like it eliminates the problem. Like the problem is no longer there, it's gone. It's not like you have to think about true mental models. It just doesn't happen. And then when I found that, I was like, this is great. Right? And I like to say that even when trying to think about softer immutability is fantastic because you know, in many programming languages, because everything is mutable, you can change everything. Like you call like a method, passing an argument, and then. At the end of that method, call your argument, change it. But it was not clear that it changed it, right? Because there's nothing in the function in the method signature that, that notes that. But anyway, immutability was the first thing. And uh, the second thing was when I found the Arling VIR machine. So I'm already going to your other question, which is Jonathan: mm-hmm. Jose: So why Ling? Right. And the reason was, so I was reading, I was learning about many different programming languages, right? Like at the time, seeing how they do concurrency is Cala go hasco. I was really exploring everything, closure, everything you could learn and how to solve those different problems. And then I filed lan. And the beautiful thing about airline is that, so again, 15 years ago, everybody was trying to solve the concurrency problem. And the reason we wanted to solve the concurrent problem is because. If I'm running software on my machine and my machine has four cores, I wanted to use all cores. Mm-hmm. But what happens when you're running that software, four cores are no longer enough, right? Like you need, you need, uh, more CPUs, you need more memory, right? You can maybe get a bigger machine, but you can also get another machine. Right? Now you have to scale horizontally. So now your problem that originally was running on a single machine, now it's running on two machines, and your problem became a distributed problem. And the beautiful thing about airlines is that Lan not only solved the concurrency issue, but it also solved the next problem, which is like, well, how do Right? Software that needs to operate on multiple machines and coordinate and communicate over multiple machines and to the cherry on the top, is that Airlink not only solve those problems, it solved those problems in the eighties. Right. So it's like everybody's like, Hey, how do we solve this thing? And airline was like, well, I, I solved the current problem. I solved the next problem. And I did it like three decades ago. And for me, I I say like, it was love at the first site. Uh, I'm going to have a break here 'cause I, maybe you have questions. Check how we are and then we can go back. Jonathan: Yeah. The, the, the, you call it immutability. Um, it's very similar to the copy on right concept, uh, which that's, that's more of a file system concept, but it's really, it's sort of the same thing. Uh, you know, let's not, let's not modify the actual thing. Let's make a copy of it first and work on that. Uh, it seems like you would still run into the problem of, uh, trying to reconcile your various copies. Certainly that must be a thing. Jose: So you, you have all the copies, right? Mm-hmm. Uh, so if you have a, so imagine that you have a list, you're doing multiple operations on the list. Every time there's a copy, of course the language is going to optimize and say, Hey, that copy is no longer used. Uh, so maybe I'm going to just to, to garbage collected. Mm-hmm. I smart compiler is going to know that it no longer use it and is going to change in place. But you as a developer, you always have, think that you have copies. That's the mental model. And then if you have multiple copies, you can keep them in memory and then you can look at both at the same time if you need. But it becomes like part of the programming model. Mm-hmm. You don't really need to, to reconcile. Like if you want to use the old one you use, if you want to use the new one you use because they're, they're all there as you need it. Hmm. Interesting. Randal: So, so you're using erlang, the, the vm, the actual core guts. Are you also using erlang, the language still, or is that sort of just over in the corner somewhere? Jose: Right. So, so, so that's an excellent question. So, so let's talk about lan. So, so I talk about like how LAN does concurrence and distribution. Mm-hmm. And I, but it's really like, just as it's the thing that attracted me and the thing that made me fall in love with Ling. But once we go into lan, uh, it's really full of Wonders, right? Because, so what is Ling? So Ling is a programming language. It is a virtual machine that was created by Ericsson, which is a tele telecommunication company. And they created LAN because they wanted to build things like telephone switches, right? And if you get a telephone switch. Right. You're going to go, you're going to deploy it somewhere, right? You're going to write the software, deploy it somewhere. And that thing needs to be very robust, right? It like it's basic infrastructure, right? Like everybody's going to depend on it and it needs to be concurrent, right? Because you're going to have hundreds of thousands, millions of calls coming to the same switch and then, well, it needs to be distributed because you don't have a switch to deal with the whole world, right? To have a, you know, you deploy several switch around the world, so they need to be able to communicate with each other. So, and then it also needs to be, uh, uh, resilient because like, again, it's infrastructure, right? If something goes wrong, it needs to be able to heal itself and go back to a working state. So when they were designing air Airline, they were thinking about all those problems. And how to implement a programming language at the wrong time that is going to naturally solve all of those things. And they even solved things like, I like to say, like, we don't have, uh, we don't, in the past we didn't receive phone calls, not today from our phone operating, say, Hey, we are going to be maintenance mode from midnight until one, so please don't use your phone. Right? So in the language, they have a mechanism for updating the code that is running live in production without dropping connections because they had to solve all those problems. So, uh, and then they went ahead and, and, and they solve those things and all those wonderful, wonderful properties. And the thing is that the other thing that made me, made me fall in love with earing is that if you get this design well of the telephone switch is something that needs to deal with multiple, uh, connections At the same time. Information is coming, going all the time. It has to be distributed. That's pretty much every web app that you right today, right? Mm-hmm. It has to talk to the database. It's, it's going to receive a bunch of connections from phone, from the B browser, web sockets, right? So that's the other thing, like Airlink started to have, it's from the eighties. It started to have a resurgence around like 2007, 2008 actually, because a lot of people realize that, um, well, you know, if they solve that for, for, uh, for telecommunications, it's going to be really good for the web, right? And, and that's what makes Airlink still shine today. So one of the biggest use cases. Is WhatsApp, right? WhatsApp runs on LAN and they run at a massive scale. They have more than 1 billion users, right? Mm-hmm. Uh, they, like five years ago, even more, they said they have more messages going for WhatsApp than the whole SMS system. So it's like, it's a massive scale and it's running on Ling. So to answer your question, so they design, like the Ling VM is not really like a, you cannot get the Ling VM and implement any program language you want with it. If you want to have something that has all those properties, like it's concurrent, it's fault tolerant, uh, they need to make, you need to make like design decisions that focus on that, on immutability, on isolation. So anything that runs on the Air Airline virtual machine, like has to be a sibling to lan. It's not like you cannot diverge too much. Jonathan: Sure. It has to be an ling adjacent language. Yes. Right? Yes. Jose: It, it's not like you can go like from like, let's say like Java to, to closure where they, you know, you, they feel like very different languages, right? Mm-hmm. You can't go that far apart, uh, in lan. So, and, and so like when I started Elixir, my first prototype, I did one prototype that failed and one of the mistakes was exactly not embracing lan. So...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39729975
info_outline
Episode 860 - Elixir Origin Story
01/14/2026
Episode 860 - Elixir Origin Story
This week Jonathan and Randal chat with Jose Valim about Elixir! What led Jose to create this unique programming language? What do we mean that it's a functional language with immutability? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39729255
info_outline
Episode 859 transcript
12/17/2025
Episode 859 transcript
Jonathan: Hey folks. This week I talked with Jonathan Thomas about Open Shop. It's the video editor that aims to, will be simple to use, and yet still powerful enough to get everything done. It runs on Windows, Mac, and Linux, completely open source. It's a lot of fun. You don't wanna miss it. So stay tuned. This is Floss Weekly, episode 859, recorded Tuesday, December the 16th. Open shot, simple and fast. Hey folks, 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, today we're doing some video editing. We're talking about open shots, and we've got, we've got the man behind the scenes. Jonathan Thomas is with us today. He is the creator and lead developer of Open Shot. And he's got some other really interesting things in his bio. I, I saw I'm pretty sure this was his, I saw something about Minecraft modding, and. AI and all sorts of other stuff in here. So this may be a wide ranging conversation, although we're here, we're here mostly to talk about Open Shot. I'm gonna go ahead and bring him on. Hey Jonathan, welcome to the show. Hello. Thank you for having me. It's great to have you here today. And so open shot. It's a video editor, right? And every time I think about running a vid, an open source video editor, like on Linux, I, I remember an episode, it's been several years ago now of it was actually the computer file. This is a YouTube channel that I think Brady Harran is the name of the guy that runs it. And they, they're still out there. They do computer science related stuff. I think they're, they're associated with the University of Nottingham, if I remember correctly. But anyway, several years ago they did an interview with EFF, the Electronic Frontier Foundation, and they, they said, we're going to try to edit and upload this video to YouTube using only open source software. And I don't think they were able to do it at the time. And you know, a big part of it was video Codex, of course. But just so they had this little added in section at the end of it, like talking about the struggles that they had, trying to edit video with open source software. And I look back on that and it's like, we have it so good now. There's like three or four different options that are really good open source software that just work. And I think Open Shot is one of those, isn't it? I mean, I sure hope Jonathan Thomas: so. Jonathan: What, what year, what year was that from? Oh goodness. Let me let see if I can find it real quick. Was that pre 2008? I don't think it was that long. If it's that long ago, I suddenly feel very old. Mm-hmm. But that may be what's gonna happen. Let's see if I can find it. Jonathan Thomas: Yeah. 'cause Open Shot was started around 2008, right. About that time period. And that was kind of a bleak period for open source video editors. Jonathan: Yeah. Well, so I mean, there's a couple of different problems sort of in this, in this space. One is obviously, like building a video editor is not the easiest thing to do. So that's, that's sort of a, a problem in and of itself. But you've also got the, the whole codec and patent issue around video codex. And it's better now than it was, but boy, that used to be, I mean, I, I remember the problem of running Linux on the desktop and you couldn't listen to MP threes because those were patent encumbered. Mm-hmm. Mm-hmm. Jonathan Thomas: Yeah. Patents are still a big problem in the video editing Jonathan: world. You know, this may not have been computer file, it may have been one of the other channels, but, 'cause I'm, I'm not immediately finding it, but. Yeah, it, it was, I remember, I remember it distinctly. I'll see if I can find it for the show notes. Right. But it was, you know, it was a challenge where it's like, there was not an intersection if I, it seems like they were able to do a video edit, but there was no intersection between the codex that their editors supported and the codex that YouTube would support. And I think, I think Google has really worked on this because you now have mm-hmm. And it's not just Google, but they're one of the ones that have really worked on it. 'cause you now have some codex that are intentionally written to not be patent encumbered. And then you've got like the, the H 2 6 4 support. I think Cisco as, as worked very hard to make people give that to people. Right. It's just, it's not the, it's not the problem that it used to be. Although, like you say, it's still, it's still a problem. So. That's sort of an aside. We went down a rabbit hole there. Yep. Let's, let's talk about, let's talk about open shot and so what you, you, you mentioned it, it's what, 2008 it got started. What was sort of the impetus for that? Why, why did you sit down and go, I'm gonna make a video editor? Jonathan Thomas: 2008 is kind of a fun, I was kind of thinking about kind of the way back machine, you know, of what the internet looked like in 2008 specifically what the Linux ecosystem looked like in 2008. And I started out with like Ubuntu 8 0 4. Mm-hmm. I think maybe a, an earlier version, but 8 0 4 was like the, the LTS version in 2008, I believe. And and I just had the, the hardest time figuring out how to edit a video and I, I wasn't the only one obviously, but that was a. There, there were options. You know, like there was options. Like, I don't know if you remember RA was one. Mm-hmm. And there was a few other open source video editors, but none of them actually worked for me at least. So that was really the impetus is like getting into Linux, getting excited and then trying to figure out how to actually edit a video and realizing like, I just couldn't figure it out. Jonathan: Yeah. Yeah. I can, I can imagine that. So what you had trouble figuring out how to edit a video and the solution you jumped to was, I'm going to make my own? Jonathan Thomas: Well well, I mean, I tried, I tried a bunch of other things first, of course, like Right. I tried really hard to get other Distros installed. I tried I tried everything I could to figure out like a, a stable video editing workflow, but I don't think I was like successful in the least, you know, like a single. The edited video was not to happen. Jonathan: Yeah. So I did, I did find this, by the way. It's, it is, it was on computer file. It's the, the name of it is free software and it was Okay, 2014, so not quite all the way back in 2008 or, or beyond, but the world was still a different place in 2014, let's say that. Jonathan Thomas: Sure, yeah. But you should have been able to edit a video 2014. But, 'cause you know, at that point, like products, like Open Shot did exist on certain dish, maybe not on every distro, but you know, certain distros. Jonathan: Yeah. The, the notes on this, it says that the film was produced almost entirely with free software. The exception is that he had to transcode the original footage to an easier to handle format before he started. Yeah. Yeah. That was a Jonathan Thomas: really common thing back in that time period Jonathan: because you, your cameras had their own proprietary formats that they worked with. Jonathan Thomas: Yeah, Jonathan: yeah. That's, that's, yeah, and Jonathan Thomas: I think back in like 2008, 2010, most. Most content was coming from like tape, you know, like tape digital tape formats and things like that. So it wasn't like it was all SD card and digital video back then, Jonathan: right? Right. Yeah. So it, I I know there's a lot of people that watch the show that have used Linux for years and years. I think there are some new people to it as well. And just like, even, even just like 2014 or 2008, it was so different, you know, there were, there was no mm-hmm. Valve working to make Linux at that point. You know, there was no steam deck. It, it was, it was quite a trip. You had to be adventurous to do some of this stuff back in the day. 2000, 2008 would've been, I, I would've been using it for a while. 2008 may have been about the time that I went all in and finally said, I'm not running windows on this laptop at all anymore. It's gonna be strictly a Linux machine. And it was an adventurous time. It's definitely in a, yeah, Jonathan Thomas: that's basically what happened to me is like 2008, I had converted all my old, you know, hardware into running Linux and I was just trying to figure out a solution for video editing that was like my only holdup was trying to edit videos. Everything else was fine. I like, I really liked Linux. I just wanted to edit a, a video. Jonathan: Yeah. And, and so what most video stuff on Linux is BA Everywhere. Actually, I don't have to include Linux in that. Most of it's based on fm Peg I is ffm peg. Mm-hmm. Sort of the, the base, the foundational technology behind Open Shot. Jonathan Thomas: I think FFM PEG is the basis of every video editing platform everywhere. Yeah. You know, like whether it was. I, I don't know. I mean, it feels like it's fundamentally what everything uses to decode and encode video. Mm-hmm. Jonathan: Yeah. Jonathan Thomas: There's, yeah. That includes open shot Jonathan: there. There's essentially three, and Ffm Peg is by far the most popular of these. But you've got video lan, the lc. Mm-hmm. It's libraries get used in some things. GStreamer is sort of separate. And then FFM, peg and f fm, peg is the one that's just gone nuts and supports everything. And Yeah. You know, they, they troll people on Twitter by talking about how they rewrite code in Assembly to make it faster. And it's, it's kind of, it's kind of a glorious thing. It's a lot of fun. Jonathan Thomas: Yeah. It's a, you know, and I've even like there's, there's some conventions in California that I do on occasion. One of them is the Southern California Linux Expo. But being like in Los Angeles and meeting people that are coming by the booth for open Shot, I spoke to a lot of people, like involved in actual, you know. Visual effects companies and video editing people that are, you know that have the IMDB credits for actual shows and stuff. And all of them had f fm peg stories and like all of them had some crazy story where everything had to be transcoded through ffm peg before they produced the movie or before that TV show could be edited. So I think it's just like ubiquitous. It's just everywhere. F fm peg to me at least, it's, it's just used even like A VLC and, you know, Chrome, the Chrome browser and just everything you think of that plays or edits video usually has some connection to f fm peg somewhere. Jonathan: Yeah, absolutely. It, it's, it's amazing how many times under the hood that you discover that that one of those is, is running. Like Yeah. When you, when you play a video in Chrome or in Firefox, I think. Some of those either use the fff m peg lab libs mm-hmm. Or in some cases they just straight up call fff m peg itself to play it. And you know, there's magic to make it work that you don't see that come up. Mm-hmm. But that's what it actually does under the well like, you know, Jonathan Thomas: Up uploading content to YouTube, for example. You know, they're transcoding things with Ffm peg. Oh, absolutely. And just about every video platform out there is using some form of FFM Peg. Jonathan: Mm-hmm. Yeah, for sure. Okay, so it's 2008. You, you're, you're trying to edit a video. This was the dark times and things were not as easy as they are now. What, and it's also, it's before there was LLMs, you couldn't just vibe code a, a video editor. Mm-hmm. What did this, what did this process look like? Like what, what were the sort of the, the steps you took to even lay the foundation for being able to do this? Jonathan Thomas: Well, there was also like another element to this, which was I had just like. As I mentioned, I, all my systems are now running some form of Linux. I have all these, you know, like old CDs. I'm burning all these ISOs. I'm, I'm just having fun setting up Linux. And so one of the reasons I also wanted to start a project was to learn some of these programming languages that were more common on Linux. So, for example, Python is something that I discovered in 2008, and I was really curious to play around with it. And so this video editing bug was kind of like a reason to learn more stuff about Linux, a reason to learn some of the programming languages that are common, more, more common on Linux than, than the Windows platform. Jonathan: Mm-hmm. Mashed potato, one of our longtime listeners suggests, or says that according to, according to Wikipedia, which it's never wrong FFMP goes all the way back to the year two thousands. So yeah, that sounds about right. It has been around, it has been around for a while. It, it is kind of the, the granddaddy. So yeah, you, you, you said Python, but Jonathan Thomas: even other libraries, like libraries that you think are not connected to FM Peg, like one, one that came to mind is like GStreamer or like VLC. Like people watch videos in their browser. They do streaming, you know, like Google Meet and all these kind of things. And they all, they just all are based off some form of connection to FFM Peg, so, Jonathan: right. Yeah. Like, so VLC uses live AV codec, which is, and that's Jonathan Thomas: the same thing that Open Shot uses and that's, that comes straight from F fm peg. Yeah. So there you go. Absolutely. So Jonathan: you, you, you did this in, Jonathan Thomas: in Python, so I started playing around with like, what, what libraries could edit video. Obviously F fm PEG was, was something that was out there, but it was mostly a CLI at that point. Mm-hmm. And it was a lot different. Like 2008, FFM Peg is a different world than 2025 FM p It seems to be the theme for this show. 2008 was different, right? Yeah. Oh, it's, it's just kind of interesting 'cause as I was thinking about this interview, like 2008 to now, there's a lot of wild changes that have happened to the world and the internet mm-hmm. And Linux and especially video editing. But, but yeah, I, I kind of played around with it trying to find my, like a, a library that was already written that would just do this and then that didn't, there was a few options out there in 2008, but none of them were terribly reliable. But that kind of started my investigation, I would say, into how do you edit a video? Right? Like, how do you do that with code? And that was kind of my more of a, an investigation than Jonathan: anything. So the did, did you start by like splicing together video. Using FFM peg on the command line? Was that like sort of the initial investigations here? Jonathan Thomas: I'm, I mean, I don't recall that specifically, but I'm sure I did. I'm, I'm sure it was one of the things that I played around with. And there was a library called well there was GStreamer, which was like the way that Linux mostly would play back videos, or at least certain distros would use GStreamer, which was kind of a streaming wrapper, but streaming wrappers aren't great for video editing. Right. And so it kind of fail, failed. There was a lot of failure as I bounced around. And then I found a library called MLT, which was Okay. Yeah. Which is power. It powers like video editors like Caden live. Mm-hmm. And. A few other like shot cut and a few other, like open source video editors are powered by that, which is also powered by FFM Peg. Yes. Not to mention. Yes. And so my first version of Open Shot that did anything useful was actually powered by MLT sitting on top of FFM Peg. Mm-hmm. And that was kinda the first time I had something. You could cut a video in half and splice things together and, you know, mute a clip and the basic stuff, you know, real basic stuff. But it, but it worked. Jonathan: Yeah. And so how long, how long do you think that took from the, I'm gonna do this myself to, I've got a thing that I can actually do something with? Jonathan Thomas: I mean, arguably I'm still working on this mission. So I've never quite finished it from 2008 to 2025, but I, I don't know. It took probably a, a year, to go from nothing to something that kind of worked, that had like a distributable package that people could install. It was probably about a year. Jonathan: Yeah. Jonathan Thomas: Like you said, no, no LLMs, no help. Just kind of trying to figure it out and just, you know, nudging forward. Jonathan: Yeah. I, I'm, I'm pulling up the the open shot GitHub right now. And a couple things that jump out at me. It's it, it is a, mostly a Python program, but it's built on top of qt. Jonathan Thomas: Yeah. The, the front end of open shot is built in Python and QT. And so that's the foundation of, you know, like the, the buttons and the, the interactions you have with like your mouse and keyboard and the window itself, things like that. Jonathan: Yeah, that's interesting. Actually, three weeks ago we had Maurice from QT on one of their, one of their devs. Oh, nice. Yeah. So not very long ago. We, we did a deep dive into the the QT ecosystem and all the stuff going on. And so I think, I mean, Q QT is a fab, like Jonathan Thomas: just a fantastic project. Yeah. Jonathan: That, that let you do windows and Mac os builds too, didn't it? Jonathan Thomas: It, well, it opened up the door. I mean it, like, it opened up the possibility that the front end at least could open up on, you know, windows or Mac. Mm-hmm. But the video editing dependencies were still very difficult to port to Mac and windows and still are, and it's not terribly easy to compile everything for Windows these days. Jonathan: Yeah. It, it exists. Does, does it exist? Is there, yeah, there's a, there's a dot XE on the on your GitHub releases. Jonathan Thomas: Yeah, we, we support Mac, windows, Linux, Chrome os so these, these are all platforms that were hard won battles, you know, to get each, to get each new platform and our build servers and our get, you know, our all the ci and it was just a, a long battle to get everything working. Yes. But you know, sometimes people come to me and they're like, Hey, I'm on Windows and I just wanna do a quick compile of open shot. Can you help? And it's like, there's no quick compile on Windows of open shot. It's, you know. We have instructions and we have build servers that I, you know, I guard with lock and key because Right. They work and I don't want them to break. Yeah, Jonathan: take a Jonathan Thomas: snapshot of Jonathan: that server. Make that your golden master. Yeah, exactly. Yeah. Oh, I'm trying, I'm trying to remember the, the, some of the technologies I've used on Windows like M-I-N-G-W and, oh, I forget the name of the other one. Yeah. There are some of those, some of those tool chains, windows, well, one of the ones we use Jonathan Thomas: for Windows is, is like SYS and Right, right. That whole ecosystem. And now there's like an sys two and there's a bunch of prebuilt libraries. That's actually pretty cool. It's kind of similar to like the Windows, the Linux subsystem Jonathan: for Jonathan Thomas: Windows for those who aren't familiar with m sys, but it came way before and has more packages and, and it's kind of more like legit open source ecosystem. Jonathan: Yeah. M sys is also, it runs more native, if I remember correctly. It's not just a virtual machine, I think that's accurate. No, Jonathan Thomas: no. It's running native. These are all native builds on Windows. But yeah, it, but it uses, like, they have kind of ported a bunch of the Linux build commands mm-hmm. So that when a build script is running, for example, it can figure out, like those commands actually exist on Windows if you run that build script through like sys, Jonathan: right. Right. So that's, that's the thing with WSL, the Windows subsystem for Linux. It's great, you can do amazing things with it, but it's, it's basically just Linux inside a virtual machine. Mm-hmm. And so that's, you know, kind of a, kind of a different different ballgame from running all this stuff. Native yeah....
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39446605
info_outline
Episode 859 - OpenShot: Simple and Fast
12/17/2025
Episode 859 - OpenShot: Simple and Fast
This week Jonathan chats with Jonathan Thomas about OpenShot, the cross-platform video editor that aims to be simple to use, without sacrificing functionality. We did the video edit with OpenShot for this episode, and can confirm it gets the job done. What led to the creation of this project, and what's the direction it's going? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39441130
info_outline
Episode 858 transcript
12/10/2025
Episode 858 transcript
FLOSS-858 Jonathan: Hey folks. This week I talk with KS baskar about YADA db. It's the high performance database. That's not sql. Well, at least not yet. It's sort of coming. It's been around for a really long time, and it's tied closely to something called the mumps language. It is a deep dive into the technology behind YADA DB and its history. You don't wanna miss it, so stay tuned. This is Floss Weekly, episode 858, recorded Tuesday, December the ninth. Yada db. Sometimes the solution is bigger servers. Hey folks, it is time for Floss Weekly. That's the show about Free Libre and open source software. I'm your host, Jonathan Bennett. And today, well, today I am flying solo. No co-host because it's around the holidays and everybody has stuff going on, but that's all right. The show must continue at least this week. I do reserve the right if I don't get a guest to take off, right? Or around Christmas, but it's on the calendar, so we may make a show there anyway, today. Today we have a returning project, a returning guest even we were talking before the show started a little bit about what happened last time. We'll get into that in just a second. But we've got we've got KS Baskar of the YADO DB project. And I, I don't know a whole lot about this, and so we're gonna spend a little bit of time talking about what makes yada DB different, what its sort of niche is. My, my database experience basically boils down to MySQL slash MariaDB and sequel light. That's about it. That's about all the sequel that I've done. So this'll be this will be broadening my horizons. Let's let's go ahead and bring the guest on Mr. Cast Vascar. I've been told to just. Referred to him as Baskar, and maybe there's a story behind that as well. But welcome back to the show, sir. Bhaskar: Hey, great, Jonathan. Good to be here. Jonathan: It is great. Thank you for having me. It's great to have you again. So you, you were saying that the last time you were on it was, it was Randall and Simon and Randall was at a, a conference. Bhaskar: Yeah. Randall was at a conference and had very poor wifi connectivity. It kept coming on and going off. So I spent most of the time talking with Sal about licensing. Mm-hmm. Rather than talking about technology, just kind of interesting. I mean, licensing, you know, something with Sal is, is a specialist. That Jonathan: that is definitely his thing. That is something that he really enjoy gets, he geeks out over that. It's his thing. Ah. So let's, let's talk about the technology then. Let's start there. And we're talking about yado db and as I said, my database experience is basically limited to, I don't know, what are probably the two most popular, at least open source databases. The, the MariaDB and the SQL light. What, what sets YADO DB apart from those two and everything else? What's the niche? Bhaskar: Sure. I mean, it's, it's, it's, it's a good question because at this point, you know, probably odds of databases that are out there in a large number of them are an open source. So, so basically the things that set the apart, well, it's a key value database. It's not a, it's not a SQL database. Oh, okay. But we do have a SQL mail that goes on top of it. And, you know, and if you get down to each adamantly, every database has gotta store data one way or another. And key value is one of the most fundamental ways of storing data. So, so it actually gives you access to the data at a very low level. And other than that, I think the, the claim to fame of the R DB is the fact that the, the code base is mature. It's extremely scalable, you know, far more scalability than pretty much any other database I know of. Very strong support for asset transactions and creating mission critical applications where you really have to have sidelines availability, you know, things like banking and healthcare and so forth. Mm-hmm. So those are the, the things, and it's, you know, it's good at, it's also language agnostic and it has different models of how it, how it works. There's no demon, there's no you know, the transactions use is optimistic and currency control and things like that. So it's a, it's a different kind of database that way. Jonathan: What do, what do you mean? There's no demon? There's no, there's no application. That's an odd, it's an odd statement to my ears at least. Because it sounds like you just said that there's no actual application running Bhaskar: Well, so, so if, if you think about, I mean, let's like a couple of UHS databases, you know, post P versus let's say SSL light. Okay. So re actually has a demon. Mm-hmm. The database is different from the application. Right. In the case of SQL light, the application basically just directly connects to the database. Jonathan: Mm-hmm. Bhaskar: So, so in the case of you are a db, we actually have an API. So the, you know, APIs in multiple languages and your application code directly calls the API runtime system of the database actually resides within the address space of the processes that access the database. Oh. And the pro and, and the processes essentially cooperate. What another to manage the database. So this actually has a lot. It from the point of view of, of security and scalability and lack of single point of failure and so Jonathan: on. They, they, they handle concurrency right? In the applications, Bhaskar: the runtime system, it's part of what you link in the application. So let's, let's say that, you know, take A-C-A-P-I, so Jonathan: mm-hmm. Bhaskar: When you compare your application or when you create your application, you basically do a, included the header file and it provides a bunch of functions. But these functions are part of the, the auto DB run 10 system. So when the process runs, the functions actually will open the database file. Different processes will then cooperate to manage the database file. They cooperate through shared memory control structures. So the first process, it opens, the database flow, essentially sets up the shared memory control structures and the last process there them all down. Jonathan: Hmm. It facets. That's really interesting. So you in a way, and I'm going to, I'm going to butcher this, but in a way, the first process that opens the database becomes the Damon Bhaskar: No, it's, no, no, no, no. It process is, is essentially, you know, the, they, they're all pro, they're all peers. Okay. So they're control. So, so let's take them, you know, we'll work through what, what happens. So there are buses in the shared memory control structures. Mm-hmm. So, and again, the, the database. Let me take a step back. The database itself consist of database files, right? And you can have something like two to part of 32 different database files in a database. Just Jonathan: a few? Yeah, Bhaskar: just a few. I it based on a few tens, but you know, which chose the name because when I started the company, I did the back of the envelope calculation and said we could actually have a database that can store a TER byte. Nice. So that's where the name comes from. Right? Right. But so for, for an individual database file. For each database file, there's a shared memory segment, and the database is file itself consistent blocks. So when a process wants to access a, you know, a node in the database, it pulls. If the blocks are not resident in the shared memory, it pulls those blocks in and there are copies in the shared memory of those blocks. Now the next process comes along if it. Wants to access something in the database. If the blocks are already in shared memory, it pulls them in. If the blocks are not in shared memory, it goes out and pulls them in, making them available to other processes. Mm-hmm. And there's similar logic for when a process wants to make an update or when there is a transaction, there is logic that handles that as well. So the process is basically well cooperate through these controlled structures in shared memory. Jonathan: That's, that's really intriguing. That's a, that's a neat and very different, at least to me that is a very different way to to go about it. So how does it work over the network? Bhaskar: Well, we do have a, a, a client server protocol where, where, you know, so there is, there is a server which listens on a TCP socket and the client on a different machine can connect to it. But that's not the technical use case. So we often get into very large systems and these systems that may have. You know, thousands or tens of thousands of concurrent users and databases running into multiple terabytes. And in cases like that, typically the application server runs on the same machine as the, as the database. There is no separate database server. Okay. There is one server, the application processes that the database all run on that machine. And that's essentially how we get the very high, very high levels of scalability mm-hmm. That you know, that people use us for. Jonathan: So what kind of, what kind of machines does Yado DB run on? We're not, we're not talking about deploying this for a raspberry pie, are we? I mean, you probably could, but actually, Bhaskar: funnily enough, it will run on a raspberry power where we scaled down. So on a, on a raspberry power three, with your consumer create microSD card, you can still get thousands of database accesses per second. Jonathan: Mm-hmm. Bhaskar: But at the high end, you know, people will run applications on X 86 Linux servers, and these are machines that may have. Hundreds of gigabytes of ram and we have, you know, very highend IO subsystems. So scale to everything from the no end to the high end. We also run on, on arm service, which I can ask. Jonathan: Yeah, yeah. I, I, I had, I had in mind there the idea of like IBMZ series, your, your big mainframes. It almost sounds like you could run there too. Bhaskar: Well, in the past, the, the upstream code base was actually ported to IBMZ series mainframes. Jonathan: Mm-hmm. Bhaskar: But, you know, and IBM mainstream doesn't really add anything to, to a database like your database because we have functionality for, you know, business continuity. So performance point of view, those are not necessarily the highest performing machines. And certainly if you want performance for per dollar, those are definitely not the, the best machines to choose from. So, so essentially choosing a. You know, a good performance, you next server running H 86 or an arm 64 bit architecture goes. So what will give you the best performance for your money? Jonathan: Mm-hmm. Yeah, that makes sense. So what's the, what's sort of the origin story at, at what point did you say to your side, assume, did you, did you start the project? Let's start there. Well, Bhaskar: I started the company, I didn't start the project, so, okay. So the, the code base actually originated in the 1980s Wow. And was a company called Graystone Technology Corporation based mm-hmm. In, in a Boston suburb. And they started a project called GTM. Jonathan: Mm-hmm. Bhaskar: And GTM was deployed in high-end medical and banking applications. Jonathan: Mm-hmm. Bhaskar: So I joined Graystone as the vice President of engineering in 1995. And. You've seen the pictures of the small fish getting eaten by a bigger fish, getting eaten by even bigger fish. Jonathan: Oh yes. So Bhaskar: that company got bought by, a biggest customer moved from Boston to Philadelphia. That company in term got bought by a Fortune 500 company that primarily wanted to use the technology. Mm-hmm. And along the way, so the coal base actually went into production in 1986 and in fact at the Elvis Pres Memorial Trauma Center length, so you can't get better name, we should the el. Ah. But anyway, so what happened was that the, the parent company was, you know, the church in 500 company was primarily interested in using the database for their internal products. And so back around 2000, 2001, we opened Source the Codebase. And in 2017. I would actually manage that code base from 1995, 2017. Jonathan: Okay. Bhaskar: I left with a couple of the developers in it didn't with me for decades, and we started audit a to essentially take the code base to, you know, new applications and markets and and so on. Jonathan: Yeah, that is, that is quite the that's quite the history. So ya Yado DB predates open source and the GPL by quite a bit. Quite a bit that it, it's, it's impressive that the code was clean enough that it could be open sourced after that much time. You know, we, we hear about some, some projects oh Winamp. Winamp is the one that really comes to mind. You know, they decided they were gonna open source winamp and then people started looking in there at the code that they released and went, this is not gonna work. Bhaskar: Well, you know, I, I, I didn't say that over the years the, the code quality has improved, but that said, because of the fact that right in the beginning the, the use cases were these mission critical applications mm-hmm. In healthcare and on banking and finance the code had to be clean. Jonathan: Mm-hmm. Bhaskar: And in fact, you know, our, our development process also ties into to making sure that the, the code is absolutely rock solid. Mm-hmm. Jonathan: And so what was the, what was sort of the decision? What did the decision look like to actually open source it? You know, at, at some point there was this business that had been purchased by a Fortune 500. Was that about the time that the, that the code was released? Bhaskar: It, it was when the biggest customer bought us and moved us Delta to engineer from Boston. And basically they two were genuinely interested in the technology. Mm-hmm. Because they had a high-end banking application, Uhhuh and. Again, they wanted to use the technology. They were not really interested in the database business. And then it became obvious to me that over time the bar for quality was not gonna go down. It was gonna keep going up. Mm-hmm. And with software, especially me, you know, using software is one of the things that makes it robust. If you just write software and, you know, put it in, you know, lock it up in a room, you're not gonna find bugs because it's not used, but it's not really gonna be robust software. So if you want robust software that's used, you need to have a lot of ping using it. So it became obvious to me that over time we were going to invest in ever increasing part of our resources in the quality aspect of the software. Mm-hmm. So I said what we have to do is take the software out and get a large number of users. So let's go ahead and release since you're not gonna, since we're not interested in the businesses, the database business, let's go release this. And as I went out and talked to people, it became obvious that it wasn't gonna be enough to just release the, the bio as free software. We really free, as, you know, free beer, but we really needed to release the code base and make it open source. Mm-hmm. As in the, you know, the, the freedom type of aspect of, of working source. Correct. And that discussion took place in about 2000 and 2001. And then what we had to do was essentially, you know, put in copyright notices and all the other stuff to actually prepare the code based for release is open source. And we did that in May of may of 2021. Jonathan: Not to not to rehash the entire conversation with Simon, but what, what license did you guys go with? Bhaskar: Well, at that time we went with. GPG two, which was the latest that was available. Then we went to GPG three and today the code base is L-G-P-L-G three. Oh, A fer, gpl L our pH Our philosophy is always been to use the license with the strongest copy list that we could. Mm-hmm. Because we certainly heard the someone, because I forgot to turn off my swo, Jonathan: it happens. Bhaskar: So you know, we have some, you know, potential elephants in the cage with us that would be very happy to use our or our software. And so we decided that we needed a strong copy, lift license. Mm-hmm. So the database, it is a GPV three, the language wrappers that we have, for example, the gold language wrapper that's licensed under L-G-P-L-V two because that's you know, that's c propriate license for mm-hmm. For the language wrapper. Jonathan: And then do you, do you do like do, do you do different licenses if someone wants to, you know, let's say one of the elephants in the room said, Hey, we would like to offer this as a service. We're gonna pay you a lot of money. Do you have the option to do a, a sub license where it's not Glv three? Bhaskar: So they would've to work, work out a deal both with us and with the Fortune 500 company that has the upstream software because, ah, you know, and, and again, I've managed that for so many years and I was the one that made the decision to release under GLG two V three, the A GPG three, but now they actually own the copyright. So if someone wanted to use a different license, they would have to go talk to both them and us. And then, then we've had a couple of you know, contributions from the community. So, okay. But let's take a step back. I don't know why anyone would. Want to use a license other than a GPG three just because the way the, the software works, because of the fact that the database engine is linked in only once a process starts executing Jonathan: mm-hmm. Bhaskar: You can have a completely proprietary application running with auto db. Jonathan: Ah, okay. I understand. They don't, they don't link together at compile time. Bhaskar: They don't link together in compile time. That's where the, the language wraps, which are some of which do link at compile time or are released on the LGPL, but the database itself is not linked in until the process actually starts executing and opens a database file. Jonathan: Interesting. Oh, that's, that's clever, huh? So you, you, you, you have then customers that use this with their, I guess in some cases proprietary programs. Very Bhaskar: often. Yeah. We have customers using it with the proprietary applications and we have customers using it, looking Jonathan: source applications. Yeah. Interesting. So one of the, one of the questions I was going to ask then is, how in the world do you build a company? And I suppose it's still a good question. How in the world do you build a company and actually, you know, pay your developers and pay rent with open source software? Bhaskar: I mean shame as you do any other business, which is with, which is with, yes. So it's one of those things where if someone is running, say one of our customers who reach example is a nation scale electronic health record system. Jonathan: Mm-hmm. Bhaskar: And if you are developing an application on which IT enterprises depends, you can either choose to, to hire developers to maintain the database, or you can enter into a support contract with your db and then. We, we provide that support and all, any support request that came and goes straight to the, to the developers. Mm-hmm. Jonathan: How, how big is that team? How many, if I, if I call ya db, how many different people are there that, that might answer my tech support call? Bhaskar: Well, eight of us. And the thing is, we have some employees and some, you know, some contractors that are, or, you know, located around the world. So I can say that the sun never sits on your development was, was that Jonathan: eight or eight? Zero. I didn't quite catch it. Eight. Eight? Bhaskar: No, just eight. Jonathan: Eight of you. Okay. Bhaskar: Eight. Eight of us. And maybe we also benefiting the, the code releases of the upstream code base. And typically when you have a support list, it's handled by three of us, and these are three of us that have the most in depth knowledge of the application and the, the database. Jonathan: Mm-hmm. Yeah. You know, I, I have found that having a business where you have people around the world the, the whole, the time zone thing, it, it makes certain things particularly...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39357775
info_outline
Episode 858 - YottaDB: Sometimes the Solution is Bigger Servers
12/10/2025
Episode 858 - YottaDB: Sometimes the Solution is Bigger Servers
This week Jonathan chats with K. S. Bhaskar about YottaDB. This very high performance database has some unique tricks! How does YottaDB run across multiple processes without a daemon? Why is it licensed AGPL, and how does that work with commercial deployments? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39357405
info_outline
Episode 857 transcript
12/03/2025
Episode 857 transcript
FLOSS-857 Jonathan: Hey folks, this week I talk with Constantinos Margaritas about, well send the instructions and open source, uh, architectures what's going on with X 86 64 and Arm and long soon, we talked about a lot of different stuff. He's been a Debbie and developer for about 25 years, got quite the career and we cover a lot of it. This is Floss Weekly, episode 857, recorded Tuesday, December the second. OC Ification. Hey folks, it's time for Floss Weekly. That's the show about Free Libre and open source software. We talk about hardware, we talk about the personalities of open source. And, uh, today is gonna be another great show. Today we're talking with, um, Constantinos Margarita about, well, a lot of things. Uh, his Debian background, SIMD and CPU architecture, the Linux Colonel. A whole lot of stuff. It's gonna be a lot of fun. Um, I am flying solo today without a co-host. That is probably because of the holidays. Um, but we will, uh, make sure to get somebody in the co-hosts chair coming up again in the next few episodes. Uh, but anyway, without further ado, let me go ahead and bring on the guest. Hello, sir. And, uh, so glad to have you here today. Konstantinos: Hi, Jonathan. Thanks for inviting me. It's a, it's an honor. It's a pleasure. Jonathan: Yeah. It's, it's been fun already talking in the pre-show about things, and you started telling me a story about when you very first started running Linux and how it ties into being a Debian developer. And I said, no, no, no, no, no. Save that for the show. Well, we're now on the show, so let's, let's dive into that. What, how, what did that background look like? Konstantinos: Okay. Uh, right, so, like many people, I tried myself, uh, with, uh, working on ma many computers back in the nineties, you know, PCs and, uh, Macross, uh, and micros and, uh, I, I got myself a power mark. Actually. It was a UAC Super Mark C 500 for those that are aware. It was one of the Mac CLS at the time. Mm. And Mac was fine. It was great to use, but I wanted something more. I wanted more control 'cause I had played with Net BSD on another computer. Mm-hmm. I like the power that Unix, uh, gives you Unix, uh, like operating system. Jonathan: Yeah. Konstantinos: So I said, okay, let's try lyrics on that. And it worked, sort of worked, but not really. I mean, there were many things that were really broken, didn't work. The graphics drivers, the software was buggy. And I started, uh, you know, getting into the code more, starting playing with it, fixing bug mm-hmm. And sending patches to the distributions. At the time I ended up using Debian and after a couple of years of, uh, back fixing and sending patches and using that as my daily driver, and some of the guys in Devon said, okay, hey, you know, you are already doing, you have the job. Why not just apply to become a Devon developer? That was nine, nine. Uh, I think it was March 99 something, uh mm-hmm. Something like that. I don't remember. Jonathan: Yeah. Konstantinos: And I applied, passed some tests, some interviews with, uh, I don't remember the name. A guy in Germany. Jonathan: Hmm. Konstantinos: And they say, yeah, you sounds good. You are okay. You, you're fine with us. And I became, uh, the first dev developer in Greece. And that, uh, that, that was an eye opener. It became, it opened a whole new horizon on open source software globally. Mm-hmm. I started in, uh, interacting and talking with multiple hundreds of people all around the world. And, uh, everyone was different, but we all had one shared goal of promoting open source. Jonathan: Mm-hmm. Konstantinos: And free software. It's not just open source, it was free software and open source software. Jonathan: Yeah, yeah, Konstantinos: for sure. So, uh, that evolved and I became more involved. Uh. Into deeper places in the Linux, uh, system I was really into, you know, I didn't care about front end that much. I came, I ca I cared more about the, uh, algorithms optimization stuff. Jonathan: Mm-hmm. Konstantinos: And, uh, getting into the low level, uh, not too low. So I'm not a firmware guy or a Linux Carol Guy, but I am more of the, I, I like optimizing algorithms. So that's how I became involved with a company that, uh, at the time was producing power PC computers. That was Gene Sy, USA And through some, uh, de some other de developers, I, I got in, contacted to those with those, uh, people in the company, uh, built back at the time. Mm-hmm. And they liked my approach. So after a while of, you know, talking and, uh. I started giving away ideas and, uh, uh, talking about how to optimize, use the SIMD, uh, u excuse me, unit in the CPUG four. Then I said, okay, hey, why don't you work for us? And I said, okay, yeah, I would love that. So I started working on software optimization using the vector unit of the CPU. The CMD unit. Jonathan: Mm-hmm. Konstantinos: CMD meaning, uh, single instructional multiple data. So for people that are aware, it does, it's a small unit that provides extra instructions to the CPU, uh, that operate the same, that operate the same, is they, they, they provide the same operation on multiple data, multiple elements of the same type. So it doesn't make your computer run faster, but it allows a computer to execute the same instruction on more data. So essentially giving you the idea that it runs faster. Sure. Uh, and it's used in pretty much everything. Mm-hmm. So, uh, 3D crypto, uh, ai. Right now, AI is just math, right? It's just linear algebra, basically. Matrix multiplication, vectors, tensors, all this stuff. So anything that proof that optimizes this kind of code, this kind of algorithm uses, uh, one, uh, or more of those instructions in one way or another. And that always got me into, you know, I like the idea of, okay, let's squeeze that more, that much more performance out of your computer. Oh Jonathan: yeah. Konstantinos: Make it run faster. I mean, why just be satisfied with, I don't know, one gigahertz when you make it feel like four gigawatts. That was at the time, the year. You know the idea. Yeah. Uh, anyway, so eventually that hobby became a, uh, well, I wouldn't say passion, but Yeah. Sort of. And I started to become good at it. And, uh, I got more involved. I did some other work in the past, like, uh, I've done pretty much everything from Java Enterprise to front-end development, Linux administration, you name it. I mean, as mm-hmm. I guess most of those time. Of that time. Uh, but yeah, the, the passion was always low level algorithms and, uh, C and c plus plus. Mm-hmm. But mainly around SIMD, well, some, okay. So I have to know. Some people call it SIMD. Some people call it CMD. So same thing. Yeah. Jonathan: Yeah. Konstantinos: It's confusing. Jonathan: Yeah. Konstantinos: Uh, because the, the acronym means also. Something, something for medical devices. It's not that one. Jonathan: Not that one. We're not talking about that one. Konstantinos: No, we're not talking about that one. Jonathan: Uh, anyway. That's fun. Are you, do you still do, are you still an active Debian developer? Are you still in Greece? Yes, Konstantinos: yes. I'm still in Greece. Oh. I did some time, uh, working for companies abroad, for Singapore, uh, Cambridge, US uh, Germany. Uh, Belgium. So I've been around, uh, but uh, right now I'm working remotely. I started, five years ago, I started my own company with my wife and, uh, we now actually provide the services of what I was doing as a freelancer for many years. Jonathan: Mm. Konstantinos: We're now doing it, uh, in a, in a co using our company. And, uh, you know, arm was our first customer arm themselves, which was a big surprise for us. Also a great owner. 'cause you know, having a very, a tiny company in Greece. Having the, the one of the biggest com CPE companies in the world as the first customer. That's something. Jonathan: Yeah. Konstantinos: And, uh, one of the first projects was to port, uh, hyper scan. So Hypers scan, I don't know if you are aware, hyper scanner was an, is an intel project, uh, that is doing the, uh, re Okay. Massively paralyzed regular expression matching. Jonathan: Oh, so that's multiple? Yes. Konstantinos: Yeah. So it, it, it performs, um, let's say regular expression matching mm-hmm. On thousands of regular expressions almost in real time. It's used in, uh, security applies in its, uh, intrusion detection systems. Snow suricata. Jonathan: Yeah. Konstantinos: Uh, even genetic algorithms, genetic mod text, uh, genetic pattern matching. So it's a very versatile library, but the problem was that it runs only on Intel. Mm. And there were a couple of attempts with some ARM vendors that were, were trying to port it to arm, but they could not get the performance they wanted. And I met this guy in, uh, online, uh, Robbie Williamson from Arm, and he said, okay, uh, I know you are doing extreme stuff. Would you be interested in taking up this project? Say, okay, sure, of course. That, that's a huge honor in the great challenge for me. So, and we did and we ported that project to Arm and we sent the pool request to Intel. Intel for their own, uh, internal political reasons. They did not want to accept the pool request, so they rejected it. And that gave us only, only one option, basically. Well, the first is to constantly chase Intel and the project and apply all these patches on top. And the other was to fork the project. Jonathan: Yeah. Konstantinos: Create a new project, a new open source project, and, uh, start, stop chasing, chasing intel and move forward in a different direction. Right. And that's how Vector Scan was born. And initially it was just a couple of patches on top, but after a while it became a, a project on its own. And it became also the only successful vector hyper scan replacement because currently, unfortunately, Intel closed the project in late 23. I remember. And it's now proprietary. So you cannot, Jonathan: you Konstantinos: can get the last open source version, but there is no development anymore. Intel does not really, uh, uh, maybe they are doing internal development. Maybe they are providing customers, uh, their own customers with extra versions. But it's not open. So users cannot base that, uh, cannot, uh, get us those extra version that they are being produced by Intel. So that really gave us, uh, that was a big opportunity for us to be honest, because we became the only alternative for open source projects. Jonathan: Mm-hmm. Konstantinos: And right now, except for Intel, we port it, uh, we get better performance on Intel for one thing. We get 10% better performance on the same Intel hardware. We have ported to, uh, arm. Uh, we got patches from Arm themselves for SV two, so you can get even more performance on SV two enabled hardware. Jonathan: Mm-hmm. Konstantinos: Uh, we ported to, uh, power Power Nine from IBM, uh, which was not possible before. And we all supported to the CMDF where library, it's a C library that provides. Oh, a platform to run on every architecture that lacks, uh, CD support for a particular, uh, for some instructions. And this has the nice added bonus that you can, uh, compile and run the, the, the library on software on CP architecture that lack any support for CMD instruction at all. Jonathan: Mm-hmm. Konstantinos: Not just, uh, incomplete support, but let's say you, let's say you are a vendor. You, you, you create a new architecture, new CPU, and you need, uh, some library like that. And you don't have a CMD, uh, support already. And, but you want to test if you front frontend software, if your, if your app appliance is actually going to work. Mm-hmm. And simply everywhere provides this kind of emulation and you can run it. It's going to be slower, but it, it's gonna work. And, uh, we're going one, our next step is to provide, um, more support for it. Better support for new, for new instructions in Intel, uh, arm, but also risk five is very important. It's becoming much, much more important than free software world. It's, it's not very, uh, uh, very fast right now, but it's going to be, get to become better. Actually, I have here, I just so happen to have Yeah. You know, this, you probably know this, this is one of the deep computing ooh, boards. Uh, and, uh, I'm about to set it up to become one of the first builders for this kind of, uh, for this kind of thing. Jonathan: That's cool. So Konstantinos: it's not, it's not a speed demon, but it's, it'll get the job done. Jonathan: Yeah. Konstantinos: Uh, of course I have lots of arm hardware, like, uh, arm servers and, uh, systems and. Some SV hardwares. Yeah. My wife says that I have too much hardware. Nonsense. It's not true. Yeah, it's not enough. It's never enough. Uh, yeah, I still like a mainframe, but Okay. Maybe. Jonathan: Anyway, so my, my, my wife is, uh, watching the show right now and she's getting quite a kick out of this. I just so happen to have. Yes. Yeah. Konstantinos: It's, it's, it's, it's really, I mean, I'm also a collector of retro hardware behind me. It's, uh, I have just a small collection. Some am bigger spectrum and some other stuff, but, uh, this is just one 10th. I have about more than a hundred RedR computers in another place. It's, uh, I don't have them right now. Jonathan: Yeah. Konstantinos: Available, but Jonathan: I get it. Yeah. It's a hundred percent. Konstantinos: It's, it's like, uh, they're, you can never have enough their computers. Exactly. Jonathan: Exactly. I've not, I've not been bitten by exactly by the retro computer collection bug. But, uh, I, I do have my own share of hardware and so many things that are within arm's reach that I could say I just happen to have, uh, mine these days tends to be a lot of SB 32 stuff. SB 32 and like Nordic and, uh, s tm, uh, yeah. Embedded side of things. Konstantinos: Play with that. Uh, in the past, I, I, it's a thing. So it's at some point you have to, I wouldn't say decide, but some of the stuff you have to decide if you want to run them, if you want to focus on high-end servers or low-end devices. Right. Most of the algorithms are, I guess, the same, but there are some things that you just cannot do on low-end devices. Jonathan: Yeah. Konstantinos: But I absolutely love the amount of optimization that goes on into the low-end devices. Jonathan: Yeah. Konstantinos: Because you have to squeeze out the last. Beat of performance. Uh, and that's amazing. I have enormous respect for the, uh, developers that are constrained. Like the retro, like the developers. In the eighties you were constrained. You had 16 kilobytes of ram to play with. So in, and you have to do wonders with that. Jonathan: In, in another example of it, I just happened to have, um, I've got the Hackaday badge from the conferences. Yeah, I see that. It's really cool. It is. It's a very neat piece of hardware. So a couple things about this. Yeah, it's a ESP 32 S3, I think. And I said, Hey, send me a couple of those and I'll put mesh tastic on them. 'cause that's the, the project Yeah. That I, I spend a lot of my time on these days. I, I made the port work, I got it running, and like a few hours after I did that, I felt really good about myself. Few hours after I did that, somebody's like, oh, by the way, I got the, uh, Linux kernel to boot on that thing. Cool. Okay. I, yeah, exactly. Yeah. I thought, I thought it was big stuff until he told me that I know. There is Konstantinos: my weekend again. Jonathan: Exactly. It's, it's interesting. I know how that works. It's interesting though, that you can run, if, if it fascinates me to no end, that you can run the Lin Linux kernel, you know, all the way from the big, huge, big iron mainframe machines all the way down to a micro controller. I didn't realize, I did not know this was possible. It's amazing. Are there, are there CMD instructions on the microcontrollers or is that just sort of outside of their, their run? Konstantinos: Uh, yes and no. I mean, arm have their helium. Well, there are some minimal set of CMD like instructions that are go, that work on the arm embedded devices. Uh, it's called the, uh, it has a weird name. I forget about it. They're not exactly md, but they follow that, that, uh, the, that label. Mm-hmm. That the philosophy, uh, to run the same operational multiple, uh, elements in the vector. In the register. Uh, however, ARM just recently announced a few, uh, embedded CPUs that provide the, uh, helium extension, uh, which is very similar to neon or advanced CMD, but neon is the, uh, the, uh, the, uh, low end, the 32 bit variant. Jonathan: Right. Konstantinos: Um, everyone calls it neon for everyone for 64 beat, but I'm technical will say, will tell you, yeah, it's not exactly the same. Jonathan: Mm-hmm. Konstantinos: But the more or less the structure are following the same pattern, uh, there are difference of course. Anyway, so the, um, the, the helium variant is very, very similar to neon. So if you have programmed neon, you will find it very easy to migrate your code, with some exceptions, of course, because not everything is available. Jonathan: Mm-hmm. Konstantinos: And by the way, if you are interested in getting. Uh, you know, programming, uh, in, uh, neon. I just got last week, this book, sorry. Ah, and by the way, this goes together with this book. So this is not an advert, uh, I'm not doing marketing here, but I saw a video from, uh, Matt Gobel, you know, from Compiler Explorer. Mm-hmm. And he was, uh, he interviewed the, uh, the writer Daniel, and he said that he wrote, he was presenting his books and I said, okay, these are really must have books. I ordered them immediately and I'm reading them right now. Jonathan: Mm-hmm. Konstantinos: They're really very good books and they are what is missing from, uh, developers right now, because you cannot find, you can find documentation and reference and some. Uh, let's say books on really outdated standards from, uh, by for Intel processors. Jonathan: Mm-hmm. Konstantinos: But there was no modern book for, uh, MD development and I bought those because I want to fill in the gaps in my knowledge. I mean, I've been doing 20, well, not 25, 22 years of CD and I still, there is still things that I don't know, I've never worked on, or I am still reading Oh yeah, there's that. You know, oh, look at that register. I didn't know about that. Jonathan: Mm-hmm. Konstantinos: Stuff like that. So you keep learning and I, I keep reading about this. Jonathan: Yeah. Konstantinos: And, uh, having this book, sorry, Jonathan: I I was, I was gonna go in a different direction, but if you, if you wanted to, to say something else about the book, go ahead and then I've got a follow up. No, no. Konstantinos: I mean, it was good that I, I was able to find that there is someone. Wrote some books about this because I wanted to write a book about CMD for many years. Mm-hmm. I started an effort to write a, a comparative reference. Uh, but it didn't go well. I, I wanted to list every single instruction for every operation in every architecture. Oh. And I had written about a hundred pages, and I was still not done with addition. So I said, okay, this, this can never go into a book. Yeah. This, this never gonna into a book and say, okay, I'm going to turn that into a, in a, in an online, uh, resource. Jonathan: Mm-hmm. Konstantinos: And, uh, the idea was to create some kind of way before AI was popular. So, uh, we started, I talked with an AI professor in 21. I said, okay, look, we want to do this. We want to create an AI that's going to translate code. From one architecture to the other. Oh, uh, Isaac, he's a professor in, uh, in, uh, a university of, uh, Kaan in Jonathan: Italy. Mm-hmm. Konstantinos: And he's a, he's a friend of mine and said, yeah, that's a great project. Let's scan a few projects in GitHub and see who can gather enough data to, uh, you know, make, get this way running. There were some promising results, but his constant complaint...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39253360
info_outline
Episode 857: SOCification
12/03/2025
Episode 857: SOCification
This week Jonathan chats with Konstantinos Margaritis about SIMD programming. Why do these wide data instructions matter? What's the state of Hyperscan, the project from Intel to power regex with SIMD? And what is Konstantinos' connection to ARM's SIMD approach? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39251725
info_outline
Episode 856 transcript
11/27/2025
Episode 856 transcript
FLOSS-856 Jonathan: Hey folks. This week Maurice Kalinowski joins me and we talk about cute or qt. If you've been mispronouncing it for forever, like the rest of us have, it's the framework that runs just about anywhere and lets you build just about anything from phone applications to a full blown desktop environment. We're looking at you, KDE. This is Floss weekly, episode 856, recorded Tuesday, November the 25th. Cute. Fix it, please. My mom is calling. Hey folks, it is time for Floss Weekly. That's the show about Free Libre and open source software. I'm your host, Jonathan Bennett. And today we're talking about qt. That is the, well, it's a library that makes a lot of things run. It runs on Windows and Linux, like Mac. I'm pretty sure there at least was for a while. There may still be an Android and iOS port of it. It's one of those toolkits that lets you ideally write code once and run it in a whole bunch of different places. And it's got an interesting relationship with other projects that we love, like KDE and some other things on Linux. And so we reached out and we were put in contact with Maurice Kalinowski, who is a project director there at the QT Group. And he has done project management on some interesting places like Windows CE and UWP. He's done some MQTT work in the IOT stuff. And soup, it's gonna be super interesting. A lot, a lot of questions about qt and I'm looking forward to learning about this. So, without any further ado, Maurice, welcome to the show. Thank you. Thank you for having us and having me this time here. Yep. Yeah. So, Q qt, what, give me the, I guess, 50,000 foot view. That's our, that's our traditional way to ask it. What, what is QT and what does it let someone do? So let Maurice: me maybe start with a very first comment from my side and that, that probably is 'cause always people might get confused. We call it cute. Okay. I, it's it's, it's, it's a regional thing sometimes how people pronounce it. So I, I know Jonathan: that, but I'm not sure that I will be able to convince my mouth to say that Maurice: that's, that's a usual answer or an answer I usually get from native English speakers. To be honest I've had once a situation where I was a CT o of a company who went inside. I will never say my cute developers, so That's fair. That's fair. That's, but that's fair enough. But yeah. Okay. Now, now if we talk about cute or qt, what is it actually? Mostly we are known from where we started with, it's, it's a gooey framework, so to say. That's how it all started. And I think from your intro also like, like perfectly matching in using the same code c plus plus at that point with widgets. Bringing that to Windows, Linux, Mac. And basically that's how it started. Mm-hmm. From that angle then multiple things happened. So there's a couple of platforms you haven't been mentioning in the intro. So Android and iOS. Yes, of course. But also to a large extent when it comes to the embedded side of things. Jonathan: Mm-hmm. Maurice: So, and when we talk about, and when it Linux naturally, but also the real time operating systems, so QNX, VxWorks integrity and all the various variants when, when in there as well. Jonathan: Mm-hmm. Maurice: While also just at the same time q has been growing over time. So we grew 30 years actually this year. Jonathan: Oh, wow. Maurice: Yeah. So in, in that respect, it's, it's also, you could say to a large extent, even a full middleware layer when it comes to creating whole based solutions and devices when hardware, especially when it comes to the embedded scenario. Jonathan: Yeah. How, how low into the embedded space does KDE get? I mean, can we run on, let's say s TM 30 twos, the Arduino framework? Does it go all the way down there, or is that a little too lightweight for, for cutes? I, Maurice: I think there not, the answer actually is, is, is a mixture of so with, with cute, we have been going fairly low also on the MCU side even. Mm-hmm. Then again we do have a separate product also, which is called Cute for MCU. Hmm. That is when, when maybe a bit out of this context, which is solely focusing on, under the microcontrollers. It's a separate product, which is which we're having tailored towards that. But it's also only the UI part in, in, in that respect. So in the meantime, I've been talking about widgets, how we call it as a technology, but we've also have a UI layer or ui UI language, which we call QML which will be very familiar to the ones using JS or other technologies, like how you would, in a declarative way describe your user interfaces. So, and that is more tailored to even low end mps, but you wouldn't necessarily go to the microcontroller with that one. Jonathan: Yeah, that makes sense. Makes sense. So what I, it, it, it seems like over the years I've had this explained to me before and I couldn't, I couldn't explain it to you right now, which is why I have you on the show. What's the, what's the relationship between cute and the open source releases? Is everything open sourced? Do we lag behind by a version? I can't honestly can't remember exactly how it works, but I know there, there is a, there's a story here. Maurice: Yeah. Is it okay if I give a long, long history of 30 years of open source relationship? Sure, sure. Really answers. I, I, I, I've worked now for q since 19 years, so maybe there's 11 years missing overall. But we were actually the first ones who had the weird idea of let's have a product, release it as open source, but also have a commercial license. Mm-hmm. Initially it started when we valve control tech times, even when, when the idea was let's come up with our own open source license and call it QPL. Surprisingly it didn't get that much of an adoption. So that was when, basically, when, when Rol Tech went, poin decided, let's go with the GPL. Jonathan: Mm-hmm. Maurice: So everything which back then has been done is queued was always the very same product. Open source and a GPL and vendor commercial variant for, well, the customers we had who were aiming for basically creating closed devices, closed solutions, closed applications. Sure. So in that respect open source has always been at our heart as cute as a technology in itself because we also strongly believe that. You will get lots of innovation also coming from the outside. Mm-hmm. Yes, we have clever minds in the company, but if you are open source, you can also like get much more opinions out there. Right. So this is what you should be moving to. I have an idea here, there et cetera. So that's already when, when we started like getting into relationship with open source. Also as you have been mentioning, KDE actually okay, now this is really getting into a history track. But Mathias who founded KKDE back then, he hired me actually into Q in 2006. Mm-hmm. So that's also the relationship in there. So K and k, DE that has kind of like growing together all the time. Yeah. And we still have a very strong partnership and relationship with there's many engineers, KDE helping us upstreaming things in queue they need for KDE us. Many of our engineers actually also working on KDE, either in spare time also during their job. We recognize projects out there who are using both technologies. So strong relationship also in in, in, in that respect as well. Mm-hmm. And coming back to the original question, how it looks like today. It's, it's a mixture of portfolio licenses, so to say. So over the time we will have been moving to the LGPL free, for instance which comes across let, let's say the core layers of Q so all foundational parts. And then there is some, some some parts aspects we are now licensing on, on the GPL actually as well coming back to that extent because while Acute asset technology has been doing a rerout through Nokia Times, et cetera and then yes, we also do have here and there some commercial only assets as well in a product to make it a bit more attractive for the commercial customers. Sure. Jonathan: There the, you mentioned Nokia. There's a, there's sort of an interesting, how shall, how shall we put it? Sidetrack a a, a detour the project took the, the company took through through Nokia. So it was, it was originally part of troll tech, right? Q2 was, and then Nokia bought troll tech. Is that what happened? Exactly, Maurice: yes. That is back then. What? Go ahead. Yeah. But that was basically what happened in, I think it was 2008. And Nokia at that point in time recognized we are having way too many platforms in house. We need a common new eye layer to actually create an application for all the kinds of phones we do and what's out there in the market. So Q is nice. Let's use Q2 as one UI layer for all Nokia phones. And then later on also like, well that already was when, the time when, when the first iPhones came out. Mm-hmm. Touch was becoming a thing crazy times. So yes, when the idea was also like how do we create an application ecosystem, developer ecosystem, right? How does all of that work? How do you build a community? And cute as such was very attractive to Nokia. But let's face it, Nokia also had way bigger problems than when the one common eye layer at that point in time. And yeah, so later on we became independent and standing on our feet again. Jonathan: Was there a time then that Microsoft owned Cute? No. No. Actually not. No. You dodged that bullet. Oh, that's funny. That's funny. All right. And so, but there is to, speaking of Microsoft, you guys have support for some of the Windows platforms, and I, I saw in your bio that one of the things that you've worked on is Windows ce. And I jokingly asked you before the show started, does that even exist anymore? And your answer surprise me, so I'll ask you again, windows ce, does that even exist anymore? Maurice: It does exist, and yes, surprisingly, I know it, it, it's what I'm, we are getting the signals that is kind of getting eul these days. Mm-hmm. So, but that is, I, to be honest, I don't see any kind of project happening in the world where you would now start with Windows C. Mm-hmm. But also, like, there's many, many devices out there or solutions out there. I mean, for both of you who don't know Windows ce, but that was like Microsoft's early stage on let's create an embedded operating system. Mm-hmm. So yeah, it's, it's more like running Audi devices you currently have in the field and, and then moving on there. But actually, yeah, that was my first task actually when I, when I started as an engineer, we were working on K and it was pretty interesting to see how then many of our users actually used K as an enabler. Mm-hmm. So we want to get rid of Windows ce. We heard Linux is great, but we cannot move everything at the same time. So on queue with the cross platform promise, just basically as you gave in the intro, then decided let's redo all our user interface in queue and then we just exchanged the underlying operating system and we're done. It's a stepping stone. And that worked fairly well for many, yeah. Jonathan: Yeah. I have, I have interacted with a Windows CE device that I knew was Windows ce, I think once in my life. I'm sure there are more of them than that, that I just didn't realize. This one in particular was a price scanner at a store. Mm-hmm. And I, I don't remember what the magic was, but there was some magical way that you could close the price scanner application and then poke around at Windows CE underneath. And I discovered that one day I was young. This was a long time ago. It was very fun though. That was, it was one of my Windows Maurice: 98. Jonathan: Yeah. It was actually Windows CE on a, a little embedded device, you know, about. Yay. Big. That was one of my first introductions to Some of these things are hackable. You could do interesting things with these. Yeah. Is cute on Windows ce. As ugly underneath as it sounds like it would be. I'm just curious. It sounds like that would be a disaster. Maurice: It's, no, I, I mean, I mean, from our end especially when it comes to thei, we basically have two value propositions. Number one is if you want to have your own custom modern user interface with animations and, and how you create a proper UX these days, you can do that with cute mm-hmm. Shiny and, and modern, et cetera, et cetera. But at the same time. Native look and feel is still important. Mm-hmm. So in that respect, that is also what we enable. If you wanna have an application to look native, even on IS because we've been talking about that before. Mm-hmm. IRS or on a desktop platforms, that's also what, what q supports with the native styles. So, and on a Windows C times, yes. If you chose to make it look native, it was ugly as hell. If you desired to usually you didn't want to do that and rather want to have, have a good looking your eye. And that's where Cute has been helping. When, when in a better way, say it like that? Jonathan: How how opinionated is cute. I mean, obviously you were just talking about that, that dichotomy between do you want things to look like the native os or do you want things to look like cute? How, how opinionated is the cute framework in that? Maurice: Well, when it comes to asking the other way around, do you mean like in regards of theming or such? Because we get full flexibility to, to the developers how we want it to look like or to the designers. So, Jonathan: yeah. So if, let's just say I spin up a new application with the cute framework and mm-hmm. I wanna do as little work as possible, leave as much of a boilerplate, which, which way is it gonna look like, is there like a cute theme that it's going to look like by default? Or is it going to look like a, a, you know, a native app in all of its either Glory or ign me. So we do Maurice: have a couple of default themes in, in, in that respect, but also more like, like to give some guidance on, on developers, like how you would create your own one. Mm-hmm. It, it happens very seldom that, that from, for let's say the theme we have by default in queue is when going to be used in, in, in the projects out there. Also same with KDE, for instance, KDE having style adoption to, to cute. For instance, you could have a cute application, which when queries the system like, Hey, how am I supposed to look like, et cetera. Mm-hmm. So it's, it's, yes, we do do give starting guidance. At the same time we seldom are almost nowhere recognized that it's been gonna be going out with that theme as well to production. Jonathan: Okay. Acute is mainly c plus plus. Is that, is that primarily how people interact with it? Maurice: Yes. Yes. And there has been historically quite some discussions around, because we have something which is called mock tomato object compiler, which has been doing code generations. And let's say back then with the very strict c plus plus engineering side, it was like, this is not proper c plus plus because you are generating code in the meantime, do things, it's supposed to be meant. Mm-hmm. Luckily there was a person called B STR strip who said what we, what these guys are doing is perfectly fine. That kind of cooled the heat cooled it a bit down, so to say. Mm-hmm. Yeah. So yeah, predominantly cute is c plus plus. Even though these days we're looking a bit into our programming languages as well in, in various methodologies, so to say. Jonathan: Right. So if someone takes, and this may be outside of your wheelhouse, but I'm just curious, if someone wants to go to like, Android. Android do you write in Java and then write bindings to go to c plus plus? Or if you want to use cute, do you just write a c plus plus Android application? Maurice: To be honest, today, the answer is yes and yes and whatever you want. Oh, well, Jonathan: okay. Maurice: I mean, that's a better answer than it could be for Jonathan: sure. Maurice: But may, may maybe come, maybe give a, give a bit of background. Mm-hmm. So yes, historically, when, when you write acute application, as I said, it's c plus plus, we take care of all the tool chains running, running natively on Android. Mm-hmm. And basically volume. So that, that is possible. But Android is also a good example of how, for, for instance, with Android services, et cetera, you wanna have multiple applications talk to each other. So when you start looking into how do you bind c plus plus with Java, so you're looking into j and i's where there's one project which we call Jenny, which is about how do you basically get the Android APIs also like reflected in, in c plus plus. The other situation is you are an Android developer and we haven't even been talking about like what kind of UI functionality also queue comes with. So whereas, whereas we have graphs for visual visualization life representation of data, we have a 3D engine, et cetera. So all these high level APIs in, in, in that respect. Mm-hmm. So even if you are a native Android developer, you might find items very propelling coming from Q. So how do you get that in without, when, when us telling you, okay, first you learn c plus plus and then you can use it first. You've Jonathan: rewrite your entire Maurice: application in c plus plus and then Jonathan: you get the shiny thing that you wanted, Maurice: right? Isn't that cute? Bravo. No. So, so that's for instance, why we have one solution, which is called Q Quick for Android. Which one really goes to, you do get all these benefits, even as a native Android developer. So you would integrate when, when your QMLQ quick UI into an Android application and then basically use all, all the benefits of Q in ve, but can still stay with Java on, on your end. Jonathan: Yeah. Yeah. Is, is there queue in a web browser? Is that, is that part of the offering? Maurice: Yes. Via web assembly. Okay. So we don't have, and, and as such as I was talking about how cute quick is very easy declarative language to use. But yes, this basically still wants in a web assembly runtime context, so to say. Usually helping us from, from two ends. Number one is cute projects now supposed to be run in the browser. So you've been working on your UI for quite many years. How do you now basically bring in your application over? Mm-hmm. That can be standard desktop applications. We also recognize lots of embedded scenarios when it comes to remote maintenance, for instance, in, in, in that field. But also when it comes to, so to say web developers, again, talking about 3D visualization aspects, et cetera. Mm-hmm. When, when, I mean, we all know web assembly is close to native performance. Right. So sometimes with, let's say JavaScript frameworks as such, you might not get the performance you're asking for and when, when looking for, for runtime, basically, which is bound in, in web yeah. In web assembly basically. Mm-hmm. So that's also an advantage when basically to, to develop developers utilizing Q4 web assembly run. Jonathan: Yeah. We had a project project on, I think it was last week, that really surprised me that they were doing web assembly on embedded, and they had this little tiny virtual machine that would run web assembly down on really small embedded devices. And I just never thought about that being a thing. But it, it's, it's, it's essentially it's own bike code, so you can, you can run it in all kinds of places. Yes. Maurice: Web Assem is a super interesting technology I was actually listening to, to, to, to that episode. And was, I was surprised because you were also talking about containerization mm-hmm. In that con context. And I think it was, was it the ex CEO somebody from Docker itself who actually said, I would not have invented Docker if web assembly had existed at that point in time already. Because with Azi you do get all the encapsulation and security related aspects basically in very implicitly and have a runtime. Mm-hmm. So it, it's kind of interesting how all these now blends together and when it comes to orchestration, how even can use containers even in...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39194055
info_outline
Episode 855 transcript
11/27/2025
Episode 855 transcript
FLOSS-855 Jonathan: Hey folks. This week I talked with the guys from Cataclysm, DDA. It's an open source game that you can play over SSH. It's also got a tile set if you want to play it that way. It's all about the apocalypse and trying and failing to survive. It's a lot of fun. You don't wanna miss it. So stay tuned. This is Floss Weekly episode. 855 recorded Tuesday, November the 18th. Get in the mind cart loser. Hey folks, 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 we are gaming. Well, I might be gaming, I don't think I actually got it started in my terminal yet, but I have played the game today. We're talking about cataclysm DDA dark days ahead and interestingly, that's not the only Cataclysm Day game out there. One of the questions I have is, are they all related? But we're talking about an open source game that runs in your terminal. You can literally play it over SSH, but it does have a tile set as well. So if you're not quite nerdy enough to enjoy it in text mode. But it's, it's a lot of fun. I. I warn you it is a little bit addictive. You may, there, I think, I feel like there are two paths that you take. You try this, maybe three paths, three paths. You try it and you go, oh, I just can't, this is not for me. Or you try it and you go, oh, this is great. And then you die 15 times and you rage quit never to play it again. And then there's a few of us that we try it and even though we die, we get hooked. It's like, oh, this is great. And I may be in that category. We'll see. But anyway, I've got three of the developers from the game. I've got Kevin Collin, and Corgen, I believe is how his his handle has said. Welcome to each of you guys to the show. Hi. Thanks for having me. Thank you. Thank you very much. Yeah. Is it, is it cogent? I will just jump in there. Curtis: So it's cogent. Cogent. Yeah. You could a lot of people can call me Corg and that's perfectly fine. For like vent trillo, like I, I do my, my, my actual name is out there. Curtis is fine as well. Okay. For the purposes of the podcast. Jonathan: Okay. Got it. Alright, so what tell, and I'm not sure even which of the three of you are the right one to ask this question. But let's start like at the beginning. What is cataclysm Kevin: at the beginning? So I call it a open world RPG. If you want to add more tags onto it, it's an open world post-apocalyptic survival, RPG. It's not that unlike a lot of things I call the main, influences Ultima and excom and fallout. Jonathan: Okay. Kevin: So some people call it a roguelike, I call it an Ultima Excom fallout, like mm-hmm. That makes sense. But that's mostly just to get people to shut up about it. But you make your character, you get dropped into a post-apocalyptic scenario. The world has ended and you run around struggling to survive and you do not win. That's. That's the long and the short of it. It's you, you, you stick it out as long as you can. Jonathan: It, it's, it's sort of like the old dwarf fortress beam then that fail Failing is part of the fun, I believe is how that absolutely. Curtis: That, that's absolutely a recurring thing in the community channels of this. Is the dwarf fortress kind of fun? Jonathan: Yes. Yes. Absolutely. Now, was there a, the game we're talking about today is cataclysm, DDA dark days ahead. Was there a cataclysm game? Kevin: Yes. 12 years ago. The original version of the game was cataclysm. It was maintained by someone that went by Wales. Okay. And I just happened to come along and be interested in contributing at about the same time that he decided to retire. So I made the fork. Oh, okay. So it was, it was a working game. It was very, very, very different at the time. Probably the biggest thing that I contributed was that the code base was not set up for multiplayer coding at the time. Mm-hmm. And everything was very idiomatic, very single developer hacking things in the way they wanted them. And I brought a. Let's engineer this and make it friendly for a lot of people to contribute. And that turned out very well because we have rolling 50 contributors and a grand total of somewhere in the ballpark of 2000 contributors. Well, that's great. Since I started. Jonathan: Yeah. I, I, I'm not sure I'm familiar with that term. I know what you're talking about, but it's, it's a multiplayer coding experience. The game itself is not multiplayer. Yeah. But hacking around on the code is, I like that. Yeah. Kevin: You, you can, you can do a project for yourself and do whatever and things like tests and, and keeping things consistent is nice, but people will tend to drop it. Jonathan: Mm-hmm. Kevin: But if you want contributors, there's a different kind of work you put into making it friendly. Like one of the huge things is things like the definition of a type of monster mm-hmm. Was hard coded in the game originally. Right. Now there's A-J-S-O-N blob. That says, this is the stats for a monster, which means someone with zero programming ability can, and this is not hypothetical, it's happened hundreds of times, can come along and go, here's a new monster. Here's the stat block, here's how it acts. And you can just pick and choose from the existing ability and drop in your own content. And that's mirrored across map creation items, monsters. And we even have a, a, we accidentally a scripting language that gets used for controlling behavior of things. Jonathan: You, you, you accidentally created a scripting language. Yes. Curtis: What I have a little bit of, I, I have a little bit to add to that too. I would say that I forget how long ago this, this was, but I wanted to make a mod for cataclysm and I wanted to make it a semi hardcoded mod. So I'm like, you know what? I wanna make a magic mod. We're gonna have magic spells and all that stuff. Well, I wanted to do. I took in, in inspiration from what Kevin's laid the groundwork of, and I wanna make this possible for people who don't really know that much coding to continue to contribute to this foundation of the magic system. And it sort of ended up being like a pseudo scripting language, but it didn't quite hit all of the things that we wanted. So I would, I would say that that's almost the precursor to what we call EOCs now Fon conditions, which is all, all in JSOI believe. I think all Colin can speak to that one a lot. Kevin: So what Corg added was spells mm-hmm. As A-J-S-O-N entity, right? So it's like you do a thi, you trigger this thing and it calls into the code for you and can trigger various effects, right? So now we have the funny situation of there's no magic. In the main game. But we have lots and lots and lots of monster abilities that under the hood are called spells. Hmm. Because that's the, the framework. Jonathan: Yeah. That's, that's the way that up, that's the way that goes. You introduce a new tool and the next thing you know, oh man, that would be great to, everything uses the new tool. Yeah. And it, it very rapidly Kevin: back propagated from cogs mod evangelism back into the main game. And then now anytime you add a new ability, the, the first place you go to is make a spell that describes what the effect is and then assign that to the monster. Jonathan: Yeah. Yeah. That's funny. That's great. Okay, so one of the fir one of the things that I really found interesting about Cataclysm DDA was that you can play it over SSH it literally will play in the, and this is one of the things that sort of disappointed me and just a little bit about door Fortress. 'cause Door Fortress, it's all text-based, and then you start looking and it's like, well, I could play this over SSA, I don't know why. I feel so strongly about this, but like being able to play a game over SSH is just cool. Maybe it's because I just think SSH is one of the coolest things anyway. I was very disappointed when Dwarf Fortress, you don't actually play it over. SSH, it's not worked that way. Cataclysm, DDA, you totally can. And which is, you know, you can run it in a screen session and then you can, you know, SSH into your game from anywhere and just pick right up. Is was that sort of in there from the beginning? Kevin: That was how it worked at first. Mm-hmm. And actually many, many years ago I say we, but not me, one of the other co-founders ran a kick start. And which was successful. And part of that was hiring someone briefly but full time to work on a couple of really landmark features. And one of those was bolding, a tile set on top of this curses only game. Jonathan: Mm-hmm. Kevin: And then we've pushed forward with that and it, it's a very, well, okay. It's really Jan, but it's a very capable system. It's hard to modify, but it gets the job done Right. And I'm pretty much the only reason we still have the terminal support because you like me. Anybody else? Jonathan: You are like me. And you believe that SSH is a superpower. Kevin: Well, for about, I can use it for about two years I was doing all of my development for cataclysm. On EC2 Oh, in a remote session. Mm-hmm. So I absolutely needed that to be able to do testing. So yeah, we keep it around. But we, we do, we have very regular, about once every two or three months we'll have a debate about is it time to ax terminal support now? Because basically nobody's using it except for me, that's not actually true. It gets into numbers. It's weird. So we have download stats we can pull from GitHub. Mm-hmm. Which is where our releases live. The thing is, we are in the arch repos, we're in the Debbie and repos, and we can't pull the numbers as easily for those. So we don't actually know how many people are doing. Whatever. And at the same time, we have a lot of Russian and Chinese players and Japanese players, and the game tends to get repackaged. So we have localization support. So they aren't, they aren't doing custom builds and hand editing all the strings anymore, but they do tend to repackage the game. And so we have no visibility into how many, what, what people in the Japanese community are doing. Mm-hmm. So we can see, like, for the most part, the American users are pulling from GitHub directly, either directly or via one of the like five different launchers. And we can see, oh, this many people are pulling the Mac build this. Many people are pulling this windows build, this many people are pulling the Linux tiles, build this. Many people are pulling the Linux curses build. But we don't have great visibility into what a lot of these downstream communities are doing. And I personally, in in the project in general, worry a lot about like just cutting people off because it is a very low spec game that a lot of people are able to play because we keep it very low spec. Mm-hmm. And I worry about cutting those people off. Jonathan: Yeah. Alright, so we've heard from we've heard from Curtis and we've heard from Kevin oh, my, all three of you have very, very similar names. Colin, what, what, where do you fit into this? What do, what do you do with the project? Colin: So I I came in as a content contributor. Are you getting any, any background noise from me in here? We, we, we hear your kid Little bit. That's fine. Okay. Sorry about that. They, both of them are sick home. Let me, let me let him out. 'cause I, I, I, Jonathan: okay, not a problem. So. You, you were talking about possibly dumping the, the command line version of it. I will say, first off, please don't, because it's one of the things that makes the game cool, right? It, it does kind of strike me that I don't know, maybe it's time to modularize the, the, the view system so that nobody else has to worry about the text-based version of it. Kevin: Yeah. And part of that is the fact that the foundation was text-based. So when you get down to primitives, like when you draw a monster, it's, it's saying like, put character. Mm-hmm. And then we like, intercept that and turn it into a tiles, draw a Sprite at this location type thing. So the, the infrastructure there is very messy and it would take quite a bit to to clean that up, but yeah, it, it would, it would be worth doing. I just remembered something in your intro, you mentioned, I mean you were, we're, we're talking about the terminal thing. Mm-hmm. There is a crazy thing that somebody just kind of swooped through and dropped off, which is we have an in script in build, which builds to web I'm blanking on the term, but like web assembly. Yeah, the browser. Yeah. Web assembly. You can run it in the browser. Jonathan: You can run it, it's in the browser. There's also an Android client I've seen. Kevin: There is also an Android client that is actually used quite a bit. It has a decent amount of customization for keyboard help, because we haven't mentioned this because, but this is one of those games that uses the entire keyboard and frequently very needlessly. It's, it's something we know we should probably work on, but for Android, that becomes a bit of a problem. But we do have custom. Interactions with the most recently pressed keys type popup you get. Mm-hmm. And that helps out. And people actually play on Android quite a bit. Jonathan: Yeah. Kevin: It, it's really funny though, somebody will mention our on Android and you have all these other people, like, how, how do you Jonathan: do that? Alright. So we started to ask Colin again, how do you, how do you fit into the project? Where, what's sort of your niche? Colin: Yeah. So I I joined 2019 just trying to, I was, I was, had a, had a new child. We were living in a new place in in Massachusetts. And I was, I was looking for cheap video games and found, found this free game, freeze free Good. And, and played it a couple times and was just like, just sucked in. And then I, I found the community. Mm-hmm. And then they were like, well, if you think things, there are things that are wrong, you can fix it and all. And if you can use an Excel spreadsheet, you can do JSO. Jonathan: Yeah. Colin: And I kept hearing that and, and eventually I was like, well, let me, I work in j in, in Excel all day, every day. Mm-hmm. So let me go try this. And yeah, that was a hundred percent it, it is a hundred percent JSON or a hundred, you know, just, just cells. Mm-hmm. There's, there's, you know, you're, you're sitting there and I have just kind of stuck around and slowly accreted responsibilities in the project. To where now I, I help, I help keep the merge process going. We, we tend to, you know, we're merging. We have, what is it, a hundred PRS a week sometimes. And yeah. Ballpark that come in. And, and it just takes, it takes a lot of people and a lot of work to, to sit there and like shepherd those through. Mm-hmm. To make everything, everything land people have real life events and things like that. And, and we need to be able to sit there and kind of. Play off each other's ability to like develop, devote more time or less time to it, because this is, it's a hobby, you know? Kevin: Okay. I, I pull, I popped up GitHub Insights 80 active pull requests this week. 36 active issues, 62 merged pull requests, 16, 18 that were opened this week. And then this is always my favorite. 14 closed issues this week and 22 opened. Jonathan: I've, okay. I've gotta, I've gotta comment on this because one of the, one of the funniest things that ever happened on Floss Weekly, Curtis' Lights just went off because it's on a timer, and he had to sort of wave his hand over there. One of the funniest things that ever happened was back when Randall was hosting all, Randall Schwartz was hosting all the time, and he would book conference rooms at the place where he was working and. In the middle of one show, his lights went off, the camera was not on him. So when we have when we have fewer people, we'll actually switch between, you know, we'll go to like a, you know, it's just me talking and then everybody talks, right? And the camera was off of him, but the guy that was running the camera saw what had happened and Randall was in this dark room doing this, like, you know, A-G-A-A-A blow up guy at the side of the road. And our guy that was doing engineering at the time swapped over to him without saying anything and just let everybody watch him do that for a moment. And we died laughing. It was the Oh, that's amazing. It was several minutes before we can continue with the show. So, Curtis, you just, you reminded me of that, one of my fond memories of doing the show. Yeah. Okay. We were talking poll requests. And I've gotta ask, has the AI slop come to cataclysm yet? Kevin: Only in gyps and drabs. We have a no AI policy. Okay. A fairly strict one. We actually just recently merged a, I don't remember the name, but a config file that I think it was copilot in particular, is supposed to automatically pick up that if you ask it to make a change, we have overriding instructions that tell it to tell you don't do this with ai. We, we fairly regularly have people going, Hey, I asked Gemini or, or whatever to do this, and it spit out this chunk of JSON isn't that great? And the next like five replies will be like, well, this is a syntax error that won't work. This, this thing, it's referencing doesn't even exist. Mm-hmm. What would, so basically No, don't do that. Jonathan: Yeah. Yeah. Or, or the really great ones because I, I, I work on an opensource project too. And the really fun ones are, here's my pull request. It's 50,000 lines of change code. And oh, by the way, I changed the name of the project for you. Kevin: Really? I think we've only had one of those so far that was like, we pulled in this, pulled in five new dependencies, which we are very against dependencies in general. Like, we don't do the thing where you have like a whole network of them. It was like, here's five new dependencies and I think it was ballpark 10,000 lines of code. Yeah. And it was like to do some dumb little dinky thing that, that didn't even help anything. Jonathan: I made the water tiles a different shade of blue. Kevin: Right. We haven't, we haven't had a flood of those. It hasn't really been a, a spam problem like some projects deal with. Mm-hmm. But I think part of that is the instant we comes up, it comes up, we're just like well go away. I. You, you have a pr, anti profanity thing, so Jonathan: Yeah, yeah. We do. We try my, my kids watch the show sometimes, so we try to keep it clean. Right. No, I, I get that. I think projects that try to open the door a little bit. It's really where it's the hardest. So if you guys just say no 100% no AI written code I think that's easier to keep it out. Whereas like exactly the, the, the project I'm in, we we have a couple of developers that will use copilot when refactoring big files and they know what they're doing and can actually make it work and save some time. That makes it a little more difficult though when someone comes off the street and has what looks like a reasonable pull request and, oh yeah, copilot helped me with this. You know, we can't just, or we, we've chose, we could, we just, we've chosen not to just shut the door in their face. Some days I feel like you guys have the better policy. Kevin: Well, the other issue is it's still very up in the air, but the copyright ability of those contributions actually is everybody's just kind of ignoring that. And I believe we take the license licenses we use a little bit more seriously than most projects. Yeah. So we're like. Copy writes up in the air, we just can't do it. Period. Jonathan: Yeah. Yeah. And that's, that's pretty reasonable too. I, I asked the lawyer about that on the show, actually, and the lawyer goes, yes, that's a valid point, but the genie is outta the bottle and there's no way it's ever going back in the bottle. So, sure. Anyway the, the language, what language is this written in? It's, it's like Pearl or Go or Rust or something. Right. Kevin: 99% c plus plus just just a half million lines of c plus plus. You will...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39194080
info_outline
FLOSS 856: QT: Fix It Please, My Mom is Calling
11/26/2025
FLOSS 856: QT: Fix It Please, My Mom is Calling
This week Jonathan chats with Maurice Kalinowski about QT! That's the framework that runs just about anywhere, making it easy to write cross-platform applications. What's the connection with KDE? And how has this turned into a successful company? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39183680
info_outline
FLOSS 855: Get in the Minecart, Loser!
11/19/2025
FLOSS 855: Get in the Minecart, Loser!
This week Jonathan chats with Kevin, Colin, and Curtis about Cataclysm: Dark Days Ahead! It's a rogue-like post-apocalyptic survival game that you can play in the terminal, over SSH if you really want to! Part of the story is a Kickstarter that resulted in a graphics tile-set. And then there's the mods! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39098040
info_outline
Episode 854 transcript
11/12/2025
Episode 854 transcript
FLOSS-854 Jonathan: Hey folks. This week Ben Meadows joins me and we talk with Jason Shepherd about Adam and Ochre. That is, its containerization on embedded hardware using web assembly. That's a statement I never thought I would say, and I tell you by the end of the show, I'm convinced it's great. You don't wanna miss it. So stay tuned. This is Floss Weekly episode 854, recorded Tuesday, November the 11th, the big Daddy core. Hey folks, it is time for Floss Weekly. That's the show about Free Libre and open source software. I'm your host, Jonathan Bennett, and today we're talking embedded, we're talking virtual machines and embedded we've got Jason Shepherd, we're gonna talk to you here in just a minute about a company called Adam and a technology called Ochre, which I'm looking forward to learning about. And when, when I discovered that this was an embedded thing, it's, it's Linux, it's virtual machines, and it's embedded. And I said to myself, there is a couple of guys, but one guy in particular that would be really, really good to have on. And that's my buddy Ben Mets. Hey Ben. Welcome. Ben: Hey, Jonathan. How's it going? Jonathan: It's good. I appreciate you being here. Yeah. This is, this is something that we both we both, we mess with a lot, these technologies. Ben: Yeah. We, we do. And we do it in some pretty non-standard way. So I'm, I'm interested to hear, hear where, where this technology is different and, I would assume with the naming of the project, that much like Ogers, what's the, what's the the quote from Shrek Ogers are like onions. They have layers. So I'm, I'm assuming ogre is like this as well. Jonathan: Yeah, I'm, I'm sure. Yeah. I was thinking about it earlier today and it kind of reminds me of what we do with the, the Port Eno stuff where we, we take Arduino code and run it on native Linux. Mm-hmm. It sounds like maybe they're doing the opposite, going about this, the opposite direction, taking things built for Native Linux and shrinking it down to making it fit on embedded should be interesting. Ben: Right? Jonathan: Yeah. Alright, well we could take guesses at this, but we've got Jason, we've got the man, so let's bring him on. Welcome to the show, Jason Shepherd. Jason: Yeah, thanks for having me. Jonathan: Yeah. So among, among a lot of things that you do play in a band, you work on guitars here, let's, work on guitars as people can see, which is a very cool collection behind you there. But you've been, you've been sort of in the industry here for, what, 40 years now? You've been doing this for quite a while. Jason: Pushing 30, yeah. Jonathan: Oh, okay. Pushing 30. All right. I, I, I, it's Jason: not quite that great yet. Jonathan: I don't mean to, I don't mean to over date you there? I'm Jason: well on the way. Jonathan: So what, what is, what is the what is the deal with Adam and er, give us kind of the 30,000 foot view to start with. What what problem are you guys trying to solve? Jason: So, at Adam I, I describe it as VMware light or Docker on a diet is another way to put it. You guys said in the intro, virtual machines, it's, it's really kind of more containers, but, you know, we'll kind of get into that. But we're about bringing. Cloud native principles and containerization and continuous delivery of software. You kind of modular software to the embedded space, not just Linux, but also to MCUs. Jonathan: Mm-hmm. Jason: And we're leveraging a technology called WebAssembly to do it which is getting increasing traction outside of the browser Jonathan: web. Okay. So this, I, I saw this and this really fascinated me. Like, of all the things to pick, web assembly seems like an interesting choice. Maybe let's start there. Like what, what is the advantage? Why is Web Assembly gaining traction and why did you guys pick that technology to make this work? Jason: Yeah, well, for starters, it's an awesome technology with a terrible name, and it, it confuses people because it's not really web or assembly. I mean, obviously it started in the browser, but you know, a lot of people, for people that haven't heard of it, which is many, it, they're using it almost every day. And in terms of, you know, browser modules and things like that, as well as it's in the fire stick, you know, from Amazon and, and whatnot. But built for the browser, augment JavaScript, but increasingly being used elsewhere. The Kubernetes crew is, is working with it in the, in kind of data center applications. Why, because it, it's a really light. Virtualization technology that's a compiled target. It's not a programming language. Mm-hmm. So, you know, 30 years ago we had Java, like, you know, write once, run anywhere, but I mean, that's a language and it's, and it's fairly heavy. Web assembly is more of a wrapper and creates like a virtual CPU mm-hmm. From that. And so that alone is not, you know, doesn't, isn't the end all be all for containers and all that, but that's the enabling technology and people are using it because it's secure, it's lightweight and it's code independent. Jonathan: Mm-hmm. You know, I saw, I saw a story just over a week ago that they're working on and they have, they have a working port of the Linux kernel to web assembly. And so there's a page right now where you can go to and you can boot a Linux, CPU in WebAssembly in your browser. And that was, that was kind of a aha moment for me where it's like, oh, you can actually do some really interesting stuff with IX technology. Jason: Yeah. Yeah. It's, it's I think we're just scratching the surface of what we can do. Jonathan: Yeah. So what is, is there an, is there an existing project to run web assembly on embedded platforms or is that the piece that you guys brought with, with Ochre? Jason: Yeah. There, there, there wasn't something specific to embedded before. I mean, we've, we've had there's, there's was wasm edge, there's things in the Kubernetes space, you know, in terms of you know, projects and Linux Foundation. But very resource constrained devices. There wasn't anything, and that was kind of the impetus at Adam for us to create a runtime that leverages web assembly and, and we contributed that runtime to. The, the Linux Foundation, it's the, the Ochre project, or I guess o ogre. We can we can run with that too. No, but yeah, the O Ochre project and Linux Foundation and, and, you know, go drive the container standard and kind of the overall technology. And then, you know, at Adam, we, we have a commercial support model on top of it. Jonathan: Mm-hmm. Yeah, of course. What, what license is ochre and, and this tech under, I'm just curious. Jason: Apache two. Jonathan: Apache two. Okay. Yeah. That makes it fairly, fairly their liberal for folks to be able to come and, and do what they want to with it, which is definitely helpful. Jason: Yeah, I mean, it's, it's the whole point is, is if you wanna be part of an ecosystem, you don't fork it too much, but at the same time, you can add Jonathan: right Jason: value to it. It's not like you, you shouldn't be able to add value on top and differentiate, but you know, it's your choice. Jonathan: Yeah. Sure. I, I saw in your, in your documents, I saw a. A technology term that I kind of, Ben and I both, we, we kind of had a reaction to. It's all built on top of Zephyr. It's like, why, Jason: what's what expand on that. Ben: We have a lot of institutional history with, with Zephyr because the project that Jonathan and I work on the most sort of built is built too well around the Arduino platform where, where the Zephyr stuff is. Like, we would love to explore Zephyr, but we have so many libraries and dependencies in the, in the Arduino yeah. Framework. Well, Jason: I mean, you know, obviously it's early, but they're, they're headed in that direction. Ben: Mm-hmm. Mm-hmm. Jason: Yeah. Can you, and a lot of, a lot of companies. Ben: Yeah, I, one of the things that I heard about Zephyr that was kind of interesting was that a lot of the, a lot of the different MCU vendors are essentially coalescing around, around that framework. Is that kind of one of the reasons why, why you guys chose to build on top of, on top of Zephyr for, for sort of the iot? Jason: Yeah. Yeah. I mean, so, you know, there's two versions of the runtime and we can kind of get more into the specifics. You know, one's Linux, it runs as a service. It could be really any Linux and whatnot. And then when you get into MCUs obviously things get a little more specific and, and all the, the lower level IO and the resource constraints. So it's, it's a bit more board specific, but once you get the runtime going, then everything feels the same on the top, just like, you know, it, it, it feels like a, a Docker container, you know, more on that to come. But we picked Zephyr because it's got a lot of momentum. And that means a very engaged community. There's a lot of board support there. I mean, in the past, you know, we actually prototyped initially on free RTAs. It could be anything. It's not, it's not specific to Zephyr that that is really the you know, it creates the core of the BSP so to speak, or the interface to the hardware. But all of the, the abstraction layer on top makes it to where, just like in the cloud, I don't care what, I shouldn't care what RTAs is below it, just like I shouldn't care what Linux is below it unless I have certain needs or certifications or something like that to the, the app developer. The environment feels the same. In fact, you could develop an app, you know, take existing C code, rust, whatever compile it through the web assembly container technology, and then run the exact same binary on Linux or an MCU on the Zeer runtimes. That's really cool. It's, you know, really, really portable. But, we've seen a lot of companies that are like, that have been on Veritas for a while as an example, that they're like, well, we know we need to move to Zephyr. We're looking at it. But there's kind of internal, kind of some politics or just like inertia. Yes. Like, and even over the course of the past year, we've seen people be like, actually and are now actually actively working with supper. So it's, it's, you know, it's, we think it's a great choice. It's not the only choice. I'm sure we'll see other flavors of, of re in the, you know, longer term, but it's a good, it's a good starting point. Jonathan: Yeah. I'm, I'm super curious. What, what kind of workloads make sense to be able to run on Native Linux or on an MCU? Is it such a wide range of potential hardware? Jason: It's a wide range, so, so we weren't, we actually started with, you know, MCUs, only upfront, you know, the Zephyr run time for Ochre. And and then we, we saw this big opportunity for Linux-based devices because there's a, there's a whole bunch of devices out there that can run Linux, but if you wanna move from embedded Linux to like containers traditional technologies like Docker are pretty heavy. Ben: Mm-hmm. Jason: This is, if you have, you know, five, 12 megs of memory, a gig of memory, you know, your set top box set, top box routers, switches industrial controllers, there's a lot of stuff out there that has a gig or of memory or less. It's cost optimized. And if you use if you move to Docker, you've just, you know, it's 256 megs or so of footprint, you've just used up a half or a quarter of the memory just for the foundation. Ben: Mm-hmm. Jason: This containerization technology using web assembly, you know, through ochre is, is a couple hundred megs less on the Linux side. But it feels like docker the, the, the containers can live in the same repositories. We've done a lot of work to make sure it follows the OCI spec as closely as possible. So if you know Docker, it's gonna feel the same. Ben: Mm-hmm. Jason: So the Linux side, the use case is consolidating workloads of any type and just save me memory space. Let me pick a lower cost bomb, you know, for, for that hardware, you know, less memory cost save some power, something like that. So it's, it's a kind of a bake off with traditional container technologies where it's a, it feels the same, but you can you can free up some space, go to happy hour earlier because you don't have to be as efficient with your coat. Nice. But then, so that's, that's the one side. But then you got on the MCU side, the biggest. You know, alternative right now is do nothing. You know, keep doing what you've always been doing, you know, embedded firmware and kind of hard code things and that's not gonna go away. I mean, you get into like, you know, below M three class processor or like your airbag that's gonna be embedded Jonathan: Right, right. Jason: Quite from time, you know, super, super power sensitive on battery. Although we're gonna see some change there one of the main drivers, a couple of the main drivers to change on the MC side, one is AI on device. Jonathan: Mm-hmm. Jason: The person that knows AI is not the person that knows embedded you know, seed drivers and lower levels. Very not typical. Yes, we have found this and vice versa. So what, what we do and, and then it's a language agnostic, so you could write stuff in Python and rust and go and whatnot and compile it. And so, you know, we're working with folks that are like, I want to do vibration analytics on a sensor. I've got one group that knows, you know, the embedded side. They get the runtime going, and then you, you, the other person, you know, in this other group that knows machine learning, they're like, they know Docker and Linux and all that. And basically it's like, just change the target directory. And so that this whole notion of these different skill sets or the device up and cloud down or the OT and it, you know, in that, in that sense coming together we're basically making both sides feel like what you know, and so it's easier to collaborate. So that's a big driver. One is, you know, just kind of AI and these new technologies. Mm-hmm. Getting further and further into the field. Ben: You mentioned some of kind of the minimum, you know, spec earlier for, for you know, being around like the M three kind of class of, of I'm assuming arm processors. Like what is, what is like the smallest in terms of resources footprint IO OT devices that you've gotten this to run on? Like, are, are you, are you running this on like expressive chips or Jason: It can run on, on ESPs. I mean, technically it can run on any silicon risk five whatnot. We've, we've done, you know, mostly M three class MCUs, like the STMU five analog devices, nxp, it could be anything. The footprint for the Zephyr runtime, so Zephyr plus all the web assembly tooling. You know, web assembly is the virtualization technology, but there's tooling required to start and stop containers and set permissions and all that kind of stuff. All of that, which represents the ochre. Runtime is 128 kilobytes. So pretty small. You know, you know, it's, there's still a tax, but quite small. Ben: Mm-hmm. Jason: So typically, I mean, technically you could run, you know, apps on a device with as little as 256 K, but you're only gonna be able to do so much. That said, the footprint, while it's 128 K for that abstraction layer, the ochre runtime, which now is basically now the firmware and then containerized apps on top, a lot of the tooling is in that runtime. So a simple hello world container on top could be like 300 bytes. So, so very small. But you know, generally if you have like a mega of memory that gives you, you know, plenty of room to do things like, you know, that's what we typically see. And then what you're seeing more and more of is these boards that are having, you know. At the lower end, like, but 4, 8, 16 megs of memory, you know, co-processor. We're seeing trends increasingly like the new Arduino board, you know, from the Qualcomm relationship or acquisition. I got an MCU and a CPO on the same board. Jonathan: Mm-hmm. Jason: Completely different environments, but with, with this approach, you can have the exact same environment at, at the top side. So you can like, kind of float apps between the cores and decide mm-hmm. Where you need it to run for the optimal solution. So you don't have to make a decision on your hardware target upfront. I mean, it's gotta be a, you know, willing, able to run on it, but you're not tied to like, kind of hard tie to a specific silicon set. Jonathan: Yeah, I, I've seen kind of that, that movement towards let's put an MCU and a conventional CPU on the same, in some cases the same die. And I have just, I've always wondered like, what's the, what are people trying to achieve with that? And it sounds like that might be a really interesting opportunity for ochre, because you guys can, you can run on both. Jason: Yeah. The reason a, a big reason for it is MCU u realtime benefits super fast startup for low power. Jonathan: Mm-hmm. Jason: Let me wake up, do something, shut back down. But then in, in certain cases, lemme wake up, oh, I need to go analyze something, then wake up the CPU side or the MPU and, and go, you know, do more. So this kind of hybrid the most efficient processing for the task at hand is, is a, a kind of a core thinking there. Jonathan: Mm-hmm. Yeah. So writing, writing one of these applications for Ochre, what does that, what does that look like? Does it feel more like you doing embedded programming, or does it feel more like you're running a traditional Linux app? What's the, what's that experience look like? Jason: I mean, generally it feels like writing whatever app you were writing before you know, you choose the language Jonathan: mm-hmm. Jason: And then the technology compiles it into by code that then runs on the device. Mm-hmm. So you, you can take existing code and compile it into er containers and you don't have to change the code per se. The only reason you need to change the code is if it requires, you know, specific IO or whatnot on a new device. Mm-hmm. But key there is that the runtime abstracts that io into effectively resources, you know, an API calls, so, you know, you can, you could literally have an abstraction to where very different you know, silicon below that accesses kind of similar IO functions. The app can just be portable across completely different architectures. If you, if you build it right. But generally speaking, it's, it doesn't really change, you know, if you can compile it, you know, playing and, you know, kind of other popular things, it, it, it just works. Jonathan: So is there, is there sort of a, a set of drivers then that live inside of Ochre to be able to do that? So, you know, talking to, let's just say spy talking to SPY on one device might be very different or Bluetooth, you know, that one is even more different from one device to another. Is that, is that sort of a driver in Ochre that then gets abstracted to have an API for your, your application itself? Jason: Yeah. And that's where the, the RTAs comes in, the choice, like, and why we picked Zephyr. There's so much board support. I mean, there's hundreds of, of boards that are, are, you know known to run Zephyr in the community. So it's a combination of, of the core OS or RTAs, you know, the drivers related there. Mm-hmm. And then there's, wie, you know, there's web assembly and there's wie web assembly system interface that helps kind of convert those drivers into system resources. Mm-hmm. And then Ochre as a, on the whole pres, you know, ultimately presents that as APIs that then you can, you can coordinate through the management API coming into Ochre. There are some folks that are, you know, so obviously you've got like lower level hardware drivers that need to be close to the silicon. Mm-hmm. But then you might have you know, take like serial lower level, but then you wanna have Modbus as a application level protocol on top. Mm-hmm. You can actually abstract that application level specific stuff to a container that works together with the lower level support...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39010060
info_outline
FLOSS 854: The Big Daddy Core
11/12/2025
FLOSS 854: The Big Daddy Core
This week Jonathan and Ben chat with Jason Shepherd about Ocre and Atym.io! That's the lightweight WebAssembly VM that lets you run the same containers on Linux and a host of embedded platforms, on top of the Zephyr embedded OS. What was the spark that led to this project's creation, what does Atym.io bring to the equation, and what are people actually doing with it? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/39009250
info_outline
Episode 853 transcript
10/29/2025
Episode 853 transcript
FLOSS-853 Jonathan: Hey folks. This week Rob joins me and we talk with Cody Zla about the Zen Project. That's the hypervisor that probably runs on some something that you use from day to day. It's not the Linux kernel, it's not KVM, it is its own thing, and it does power a large portion of the cloud. You don't wanna miss it, so stay tuned. This is Floss Weekly episode 853, recorded Tuesday, October the 28th. Hardware addiction. Don't send help. Hey folks, it is time for Floss Weekly. That's the show about Free Libre and open source software. I'm your host, Jonathan Bennett. And today, today we have a, a throwback episode. We're gonna revisit someone. Well, the project at least, that we had a long time ago, like six years ago, back when it was Randall running the show, and Aaron Newcomb was the co-host. And I, I pinged both of those guys yesterday in fact, and said, Hey, you ought to come back. And they both said, you waited until the day before. We have stuff going on, we can't. So I went, Rob, can you help? And Rob's here, he's gonna be co-host. Thank you, man. Rob: I'm here to save today. Here Jonathan: to save the day. Yeah. So we're talking Zen, the Zen hypervisor, and we, we sort of talk a lot about hypervisor stuff and Zen in particular. Some of it being over at that other podcast, we do the Untitled Linux show, but also because of our day jobs, we end up doing some hypervisor and virtualization adjacent stuff. Rob: Yeah, I I love VMs and containers too. Sorry, sorry, sorry. Zen. Surely Cody, but Jonathan: surely a container is just as good as a hypervisor and a virtual virtualized machine, right. Surely it's just as good. Rob: Something like that. I, all, all the things technology wise in that realm though, I, they're all fun to play with. Yes. And, and, and they, they help with productivity in many ways. Jonathan: Yes, we have a guest today that I believe has an opinion on this. Cody, Cody Zla, I believe is how his last name. We offended him. We offended him, and he left. He's gone. Well hopefully he'll be back here in just a second. Rob: He looked like he was laughing at our comments. He looked like Jonathan: he was laughing, and then he was gone, Rob: laughed too hard and bumped the connection. That Jonathan: may be what it was. Yeah, it, it's interesting. We were talking before the show about like KVM, the kernel virtual machine and the, the real interesting question we asked is that a type one or a type two hypervisor? I had to go look and rob's like, I know what the difference is between a type one and a type two hypervisor. Rob: Yeah, I would say my, I think my description was maybe a little more accurate, but perhaps my opinion on KVM was, well, it sounds like the actual answer is a little more nuanced than I thought. Jonathan: Y yeah, I did a little bit of, of reading on this, and the technical answer is from what I can tell a type one hypervisor has the hardware ability to trap individual like root level commands, whereas a type two hypervisor, I think I'm, I think I have this the right way around a type two hypervisor. You have to do all that in software. So type one, you can trap privilege commands with hardware and type two, you have to do it in software. So that kind of means that KVM is technically a type one, but sort of skates on the edge between the two. Rob: Yeah, and the way I've always, the, the simplistic way I've always stayed is that type one is close to bare metal where type two is further away, more software related. So Jonathan: yeah I guess we'll have to put a break in here. I was hoping he would jump right back in and we could roll into it. Oh, and of course the moment I say, the moment I give up, there he comes back. Welcome. Crazy. Cody: Yeah, I missed the intro, but I assume it was awesome. It was epic, epic intro. It was. Thank you for that. It was amazing. I don't know what half Had a little, little glitch there and then the screen was still on, but everybody disappeared. But I'm here now. Thanks for, thanks for writing me on. Jonathan: Yeah, it's good to, it's good to have you here now, Cody, I, I took a stab at your last name and I suspect that I got it very wrong. How do you pronounce that? Cody: I would pronounce it Zla. Oh, okay. I didn't do too bad then. And it's, it's German or, or Austrian origin. So the only place I've ever been where people can pronounce it is in Germany. So Jonathan: now you're, you're not calling to us from the us you are over in Europe somewhere, right? Cody: Yeah, I've been located in France, in the, in the Alps of France for, mm-hmm. Well, 14 years now, it's been Oh, that's awesome. It's been a while. Yeah. Yeah. I'm not complaining. Jonathan: Yeah. Rob, Rob and I are both in the US in the central time zone, so, you know, half a quarter of the way around the world. But that's fun. Cody: Yeah. Sun's down here it looks like. Well, judging by Rob's background on his exotic apartment, his, his very, his very Jonathan: fake background. He's actually in his basement. Don't let him fool you. He's in his basement. I know. Rob: It looks like this day or night. Yeah. Jonathan: So, so Cody, you are, you are part of the Zen project. You're what The community manager there. Do you, do you dive into the the code side of things? Where, where do you sort of fit into Zen? Cody: That is a great question. I'm still trying to figure that one out myself too. But as the community manager, I have done so far, I've been the community manager for about six or seven months now. I have done zero code, so I'll just be really honest about that. I come from a developer background, so I'd be happy to do some code, but there's a lot to do. There's a lot to do. So one of these days I keep telling the maintainers like, find me an easy issue and I'll do it. And they found me an easy issue. I just haven't done it. So, Jonathan: yeah, we'll get there. Some of the, some of the projects that I, I work with, we have a a tag, like on GitHub. It's like good first issue. Cody: Yep. They, they sent me like a list of them. Yeah, exactly. So one of these days, maybe for my year anniversary, I'll, right, I'll tackle one of this. Jonathan: It, it sort of seems to me, so Zen is a hypervisor. It lets you run virtual machines and from sort of the outside looking in, I would think. That's kind of a complicated thing to do. There probably is quite a bit of a learning curve to jumping into the project and being able to contribute code. Cody: Is that what you found? I think that's, I think that's a fair assessment and I, I come from a kinda a firmware background from many years ago in a previous life, like 10 or 15 years ago, I did robotics. Okay. And firmware. In the last 10 years I've done kind of web webby stuff web apps. So for me it's been a challenge. But it's also the, they, they model the, it's, it's a mature project, so, you know, changes happen through patches on email lists, and it's, it's kind of done the same way modeled after the Linux ker and, and how things are done with Linux. So me being doing 10, 10 years of web development, like where's, where's my GitHub? You know, code review and all that. And that's, that's not the way things work. So I think your question was like, how, how to get. Is it hard to get involved in? I don't think it's hard, but yeah. You need that kind of low level knowledge and, and kind of understand the workflow. Mm-hmm. How, how patches work on email lists. Jonathan: Yeah. Now are, are you, are you sort of in a position to talk about the whole type one versus type two virtual machine? This is what Rob was, Rob and I were riffing on while you were gone. Yeah. And it's like, surely KVM is a type two virtual machine. Oh, wait, gotcha. No, it's sort of in between and technically a type one. Cody: Yeah. There, there's, it's kind of a, a controversial subject, right? Like they are technically a type one because it runs inside the kernel, the, the Linux ker. Mm-hmm. So it's not running on top, it's not in user space. Right. KVM. But what we like to say, or I like to say, I'll change that a little bit, is being a true type one hypervisor is what Zen is. I feel like KVM is kind of that hybrid because mm-hmm. You know, it's loaded as kernel modules and. Runs in the kernel space. So it's technically type one, but it's still running with the rest of the Linux kernel. So that, that's where I see kinda the difference between type one and type two. Type two being, you know, what we traditionally say is like a virtual box or parallels or whatever you're running inside your, your operating system. Mm-hmm. And so KVM is a bit more low level than that. So it, it strikes a different, a different space than, than than Zen, but I could go deeper on that. If, if people want to know. The, the advantage to, as I see it for, for Zen is that it's built from the ground up to be a hypervisor. Rob: Mm-hmm. Cody: So if you're gonna run KVM, you have all the rest of the Linux kernel that you need to up manage updates. And there's all this other stuff happening in the Linux. Kernel overhead is the word that I would use, but I don't wanna sound too negative about that, but overhead. Yeah, I'm trying to be diplomatic about it. Sure. Whereas if you're running Zen, like it's built for purpose to be a hypervisor, so you're getting a much thinner and, you know, in theory efficient and secure layer to, to run your, your virtual machine. Rob: Yeah. So so when you run KVM, you're running all, all of Linux with KVM in there are what you described. And when you run Zen, that's standalone, you don't have to run Linux and then Zen on with that. It's, it's its own thing. Cody: Yep. I think that that's a good way to, to summarize that. Jonathan: Exactly. Yeah. Mm-hmm. How, how much, how many of the bells and whistles does Zen bring along? Because like, there, there, there's a few things that you have to have, right? You, like, you have to have somebody to have a file system. And one of the neat things you can do with Linux is do like, and KVM is, you can have the Linux os give you a raid underneath all the networking stuff. I've, I've had a lot of fun with Linux. Linux on a, on bare metal, and then running KVM, doing networking things like VLANs and Bridges and the fun ways that you can combine those. What, like, like how sophisticated is Zen when it comes to the rest of the OS type stuff that you might need to do? Rob: Hmm. Cody: That's a good question. You're probably gonna get a little bit beyond my expertise, but it's, it's definitely modular and there's, there's a whole lot of work happening around the different modules for managing storage and network interfaces. Yeah, I, I couldn't go into the technical details on how that compares to KV kvm, but there's all those possibilities are there, right? Like you need to have all that ability to run different types of storage different types of network interfaces and things that we're working on now is like sharing the GPU between virtual machines and stuff like that. Mm-hmm. So, but it's all happening in a modular way, right? That you enable the pieces that you need for, for your instance and your application. Jonathan: Is, is Zen considered like a, a micro kernel? That's a good Cody: question. I, I, let me, let me get back to you on that one. I don't know if I would considered a, a microkernel or not. They had a, there's a sub project, it's called Uni Craft. That's for building micro kernels. But I don't know. Yeah, I don't know if, if Zen, would we consider that a microkernel or not? Yeah, good question. Jonathan: Bringing, I'm bringing the hard ones. I know. Yeah. Let's, Cody: let's get started Jonathan: with the hard Cody: questions. Jonathan: That's, that's fine. And then I'm, I'm also curious, did was Zen sort of, you mentioned built for purpose, so is it not like derived from the BSD kernel or the Linux kernel? It was, it was always intended to be a a, a hypervisor. Cody: Ooh, wow. I, I don't know the history. 'cause you know, Zen, the first commit to Zen was in 2002. Mm-hmm. So I was still in university when that happened. So I don't know that far back in the history, like what they used to start, you know, the initial project, other than it was a research project coming out of Cambridge. Which I think, I think we all know if anyone's watched the previous episodes from 2019 and then back, I think in 20 2009 there was another episode. That's the history. But yeah. Did it, was it derived from someplace that Yeah. Again, another question of the history that I don't have enough context to answer those questions. Yeah. Let's, well, let me Rob: go ahead, Rob. Let me ask a softer, easier question then. Let's get something you can answer. Take it off the spot. Right. So for somebody, you know, I've, I've known about Zen. I've honestly never used it. Hmm. Interested, I'm, I'm gonna have to try. Try it sometime. Yeah. But for somebody who wants to use it, you know, maybe they're familiar with all these other VM options out there. Is this, is there a gooey, how do you use it? Is it all command line? Are there things you plug into it to make it gooey eyes? How, how is that the use of it? All right, Cody: thank you. Thank you for an easy question like that. That's one that I needed and that one I can answer. So there is the, the machine that's running the Zen hypervisor, there is you know, a terminal interface that you can access and there is like a, I want to, it looks like end curses, I don't know if it's incurs or not, but there is like a text based graphical interface that would let you do some basic maintenance and, and control over your system. But what typically happens is you're gonna install. A virtual machine that manages the configuration aspects and it's gonna bring you like a really modern ui. So thinking about you know, a web application that you can connect, kind of what people would be used to if they're using, if they used VMware before. And those types of tools that gives you a really graphic interface and you can, you know, see icons and loads and gauges of how much resources are being used with which machines fire up new virtual machines. So that all happens through an interface, is the word that I like to use, called dom zeros. That's the control, the control domain that's gonna control what happens on the hypervisor. So the typical use case in a data center or a server is you're gonna install a virtual machine that gives you that control that you want, but you can still connect to the server through. SSH or whatever your tool choice is, or connect a monitor and, and actually go into the command line and, and there is a, a terminal that you can access. Rob: Mm-hmm. Jonathan: So your, your background is in sort of embedded development, right. Firmware and stuff. Cody: Originally if I go back, me back in time many years ago. Yeah. I know how that goes. Many years ago. Yeah. I got, I got the gray hairs to prove it. Yeah. I ha I have degrees in computer systems and engineering and software engineering. So at the time we called that the yeah. Embedded, Rob: mm-hmm. Cody: Devices which is now, we would call Jonathan: it internet of things. Yeah, yeah. IOT embedded. It's all sort of the same thing. Oh, my, my connection's getting Cody: crazy again. That's fine. I was acting up, but I'm back. Jonathan: You're back. You're back. Cody: So I. Good. Yeah, I, so, yeah, to your que question about my background. So yeah. And I did, I did a firmware. I did USB firmware for a while. Oh, nice. Writing a USB firmware on a 80 51, so until 80 51. So that puts some dates on on my first job out of, out of college. Which was a fun project because the only time in my career where people told me like, could you make less function calls? 'cause there's like limited stock space. And so they're like, could you refactor your code? Like make less function calls? I was like, okay. No one's ever asked me that before. And then after that I did some robotics work liquid handling robotics, which is interesting. Ooh. Quite interesting job. Yeah. That was in c plus plus. So a step forward of being a little bit more modern than the assembly in the C that we wrote for the 80 51. Rob: Mm-hmm. Cody: And it's right around that time I had an opportunity to, to relocate to France and I really went enterprise software and, and backend software at that time. So I've done a little bit of everything. Yeah. Which is, which is a weird. A weird story for somebody's career. So coming to this Zen project has been kind of going back to my origin, right? Like I come from that low level code is my, my, my roots, right? And I'm going back to my roots as I see this, so, mm-hmm. It's helpful again, as, as the, the cat's outta the bag. Like, I'm not making commit searching code changes yet. But I at least ha I have the base right to understand what people are talking about. I'm talk about registers, right, right, right. IO devices, like I could follow along, right? Like I, I've done that, those things, even if I'm not doing it on a daily basis today. Jonathan: Yeah. Your, your job description there at Zen is technically like community manager. Cody: Yeah. Yeah, exactly. Yeah. That's Jonathan: cool. I, I have this theory, this may be a little controversial but my theory goes that it's better to have community managers that actually have the technical background than not. I think it's really a good call. I think Cody: so. I think so too. Even if I'm not, you know, active in the day-to-day code changes, I go to the maintainers calls and, and I'm there and I, I can follow along, right? Mm-hmm. I know what they're talking about and somebody calls me and says, we got this issue. Can you talk to these other people and, and get them on board or help upstream things like, I got the background, right? Yeah. It's not, Jonathan: it's not gibberish to me. Yeah, absolutely. You also, you also kind of know how people that write code tick. I think that's something that's lacking in a lot of community maintainers is that there's just not necessarily a good understanding of how we're a little different than normal people. Cody: I think that's a fair, a fair assessment and yeah, like knowing how people take is a, is definitely a good way to say that. Mm-hmm. And it's so true, right? Like I don't have like a background in, you know, event management mm-hmm. Like managing conferences and stuff, which is something I do now, right? So I'm having to learn that, but. I just applied my engineering skills to that. Right. Like, show me how to solve problems and I'll solve them. Yeah, absolutely. Jonathan: Absolutely. Okay. So the spend a lot time with telephone. The Yeah, the the embed we're on Skype for Teams in meetings. Yeah. Yeah. That's my new job description. The embedded background is, is real fascinating to me because I went to a conference about a decade ago and it was actually a conference by the open WRT guys, but there was a one, one of the presenters there had this amazing new idea. They thought, we all thought they were a little crazy, and it was on your embedded hardware. The future is virtualization. You're not gonna run anything on the bare metal anymore, you're gonna virtualize it, and that's gonna solve all of our security problems. And everybody there was like, these guys are kind of nuts. That idea is is still around though. It's kind of new again, isn't it? Cody: Yeah, it's the cycles man. Right. Tech, tech works in cycles, so, yeah, absolutely. I'm glad you brought it up because it, it is huge and I can give you a couple reasons why it is actually a good idea and I, I will probably deep dive into this soon. I'd be happy to do so, but Zen is just exploding in the automotive industry right now. Rob: Mm-hmm. Cody: And, and there's a few reasons to that. If, if you're going to run, going to run multiple services processes, I don't know how we want to, but how we want to split that up on the same machine....
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/38826785
info_outline
FLOSS 853: Hardware Addiction; Don't Send Help
10/29/2025
FLOSS 853: Hardware Addiction; Don't Send Help
This week Jonathan and Rob chat with Cody Zuschlag about the Xen project! It's the hypervisor that runs almost everywhere. Why is it showing up in IoT devices and automotive? And what's coming next for the project? Watch to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/38826340
info_outline
Episode 852 transcript
10/22/2025
Episode 852 transcript
FLOSS-852 Jonathan: Hey folks. This week I chat with Robert Wolf from Dev Eco. We talk about, well, discord and what it's like to build open source communities there and other places. We talk about the job market, what's going on with ai and how it has an impact on open source developers. We talk about their portal network. Lots of other stuff. You don't wanna miss it. So stay tuned. This is Floss Weekly, episode 852. Recorded Tuesday, October 21st, sir, this is a Wendy's, it's Time for Floss Weekly. That's the show about Free Libre and open source software. I'm your host, Jonathan Bennett, and we've got something fun Today we're talking with Robert Wolf about Death Eco. I had a quick call with him yesterday and I asked, what, what is this thing? Is it software? Is it a community? And he said yes. A little bit of all of the above. It, it's sort of a community of communities. It's a, it's a really interesting idea and there's a lot of stuff we're gonna get into about this. But first, let, let me, let me bring the man himself on Robert. Welcome. Hey Jonathan, how's it going? Thanks for having me. Yeah, it's great to have you here and thanks for stepping in a little, little late in the week. I think it was it was actually earlier this week that we finally decided that we were gonna do this, so I appreciate that. Robert: It was like yesterday, man. Jonathan: Yes. Robert: Yeah, no, I mean, it just so happens I had this whole morning open and I mean, I love doing stuff like this, so this is great. Thank you. Jonathan: Yeah, for sure. So Devco, so I imagine there are hackaday people, there are floss weekly WI listeners. They have no idea what we're talking about. What is it you guys do? Robert: Yeah, so I guess in short, hi everyone, Robert Wolf. Electrical engineer by study, but I, I've kind of leaned more in terms of, of my career towards developer evangelism, advocacy, the whole kind of community aspect when it comes to like, you know, working in, in the tech industry and around I don't know, halfway through my career. Maybe four years or five years in. I started to kind of realize that, that, you know, when you're working for companies and you're doing just your day to day, kind of walking through life, working for the man, I guess you could say you're, you're building stuff nonstop, right? For, for other people, for the companies you're working for, and rightfully so, they're paying you to do it right. But it kind of dawned on me that I, I felt the space needed a community that was kind of like owned by the community. So people who do work and then leave that job or get let go, have a place to land and feel like it's kind of their own. So dev Eco stands for developers ecosystem or developer ecosystem. And our motto is kind of like. Developer ecosystem built by developers for developers guided by open source principles. We really lean into the whole no hostages, no gatekeeping, no borders. We're happy to kind of let people roam free out of the server, come into the server, share other server links freely, as long as it's relevant because we're all about kind of the value that, that, that each of these communities can bring in independently. And so Debico focuses on the human experience behind the developer experience. Mm-hmm. So, so we're all human beings. Things happen and we've basically been growing. A group of human beings that just so happen to be technically savvy or, or developer oriented folks. But yeah, so, so that's basically the gist of it. A developer community that kind of stemmed or was born from the idea of mm-hmm. Giving people something that they can still own or retain ownership of, or feel like they're a part of, regardless of whether or not they are working for or in transition to or from in between companies. So it's, it's that place. Jonathan: You guys are kind of discord centric. Is that, that, that's at least what I've picked up on. Robert: Yeah. We started on Discord. I, I, you know, I'm, I'm 40 years old at this point. I'm a gamer, so I was all into like vent, trillo and team speak prior to, to, you know, when you're talking about like voiceover IP services discord came. Came up and I was on it immediately. It was adopted by gamers, primarily at the beginning. Mm-hmm. But now it's a massive developer hub. So I mean, if you look at the total amount of users, hundreds of millions of, of of users, I think it's one or 200 million active monthly active users. And then you have estimated 10 to some odd 20 million technically savvy or developer centric folks using Discord at this point. Jonathan: Yeah, well, I mean, it's not, it's not terribly surprising 'cause Discord is basically ye old forum system brought into modern web technology. Robert: Yeah. I mean, forums were, I, I kind of noticed forums were a, a bit on their way out. You think of like Stack Overflow, which was the place to go, you know, you, how many users are actually there now? How many posts are being put up and answered and supported. It's there. But Reddit has actually kind of taken that, that, that piece of the cake at this point. Right. So if you think of like the real time and the forum centric. Type of, of support centers. Mm-hmm. You have Reddit for the forum s esque type, and then you have discord for the real time. Mm-hmm. Communication in terms of community. Yeah. Yeah. Jonathan: And, and so what, what led to the kind of the creation of this, this group of developers, this, this dev ecosystem? So what's the origin story? Robert: Yeah, the origin story. It, it goes back to, so, so I, I graduated from uc, sd uc, San Diego here, California. And it was 2015 I was working in, in academia right out of school. So I worked at a research facility at UCSD. I was building content for like a open, massive, open online course for Coursera. And this was a grant or a sponsorship slash grant by Qualcomm. Okay. So we were working on one of these like, you know, 96 boards. After that. Kind of academic Sprint was over Qualcomm was on a hiring freeze. They wanted to like bring me into the company, but they couldn't, so they put me in a partner company called Linaro and I was working on, in an organization called 96 Boards. Mm-hmm. And so this is where it kind of all started to, to kind of come from the whole open source mentality. Linaro itself, Linux on Arm, all about reducing the redundancies and fragmentation in the Linux on arm ecosystem. Mm-hmm. They kind of won, like they've achieved this, like, you know, Linaro is now searching other methods or services or ways to, to kind of grow. But 96 boards itself, open source, open standard hardware footprint that, you know, we were kind of building out. Guided by a steering committee. Mm-hmm. Anyways, the point of all this is, is, is the open source mindset really kind of like stuck to me, I think. Like, I wanna build something because I need it. So hey, I built it and I won. Like regardless of whatever y'all think, like I built this and I won because I got it now. And then if someone else needs it and I open source it under the right licenses, someone else can come and grab it and they won. Sure. It's like, great. Then they add to it and maybe feed it back, submit a pull request and give me their modifications. Mm-hmm. And like, I won again. So it's, it's like that win-win win mentality has always kind of resonated with me. And this is kind of how devco, the origin of deco started. Again, it's all about finding ways for everyone to identify. A win in, in the system. And sometimes you can't get that when you're working with companies that are for profit. And you know, people have come up to me and companies have come and tried to, to buy this community. I say, it's not for sale. Like, it's more valuable to you if you don't own it. It just, it doesn't make sense. And it's leverage. It, it's, it's an open source community. Anyone. It can, Jonathan: yeah. It's for some people at least, it's a sort of rough time to be a software developer, to be an electrical engineer, maybe even. Do you, do you guys see that as well? Is, is this, is this a a rough patch? Robert: You just mean in terms of the job market? Yeah. Jonathan: Main Robert: mainly. Jonathan: Yeah. Robert: You know, the thing is, is I'm always, I'm working my butt off nonstop. So I don't, I, I do notice that, that, you know, like when the group of my circles of friends mm-hmm. And developers in the community, yes. There, there have been surprisingly more layoffs, or at least I've noticed my friends being laid off. And then also. Adding to this, taking longer to, to get another job. The system seems to, has, seems to have gravitated towards, I don't wanna call it like nepotism. It isn't nepotism, but it's just, it's just, you know, everyone's networks at some point come, becomes so big. If you're talking about like that 10 year mm-hmm. Developer or engineer, well you're applying for jobs from people who have 10 plus years of industry experience, meaning their networks are quite vast. So when you submit an application, they probably already have some idea as to who they wanna bring on someone in their network. Right. So, yeah. You know, it's just, it's just the way it is. And so my recommendation, if anyone is looking for a job or has been suffering from something like this, head on over to Devco, go to the mesh tastic discord server, go to the Hackaday discord server. Be, be, be, remain your re retain your relevance. Right. Like keep doing stuff. But tap your network. Like that's, that's like the key to everything is just tapping your network. Jonathan: Yeah. So one, one of the, one of the guys watching live is Mike Schmalz and he has read my mind. He is following up and he wants to know, and I wanna know too, is vibe coding a factor in that? And I think we could even take a step back further and talk about like, what has AI done to change, I guess, what it means to be a developer and what that experience is like. Robert: My goodness. So, okay. This is a very, very kind of, there's lots of pillars to this. Yes. So let's just talk about like. The standard use of a form of GPT. Right. Okay. You know, you're talking like right now, you're A GPT chat, GPT 5.0. These, these models that you're working with are very much misconstrued. If, if, if you're using AI properly, then it is a fricking lifesaver. It's amazing. Yeah. You can do the work of 10 people and you can do it much better than you would've been able to do it before this existed. Right. If you use it crap, if you use it crappy or if you are bad at using ai, it's very noticeable. I don't read posts or articles that have those darn m dashes or emojis in front of every title. Like it's like at some point, at some point you have to kind of learn the right way to use this. And I question you're are, are you truly a subject matter expert? How do I know you prompted this correctly? What was your prompt? Like, we need to kind of like start questioning inside of things. Yeah. But absolutely huge help. The, the vibe coding factor. I have a, I have a comment on that, but in, in terms of like building out your, your AI usage or how you wanna use it, it's all about, the way I use it is creating custom corpuses, i identifying what your, your context window is, right? And then saying, okay, well I have this many words to work with. So you create the. You put in the most information, in the least amount of words, that's your corpus, and you start building out your custom gpt for any particular task that, that you have. So like every single thing I do that would require more than a certain amount of hours of work, I'll go put the hours in to, to, to create a custom corpus, which can then be modified and, and leveraged for all sorts of different things. But yeah. Jonathan: Yeah. You said you, you had a thought on vibe coating. Robert: Vibe coating. I, I love it. It's great, right? I mean, like, it, it, the, the problem is, is that don't, don't get confused in my opinion, right? I mean, there are people who are really good at coding and they might leverage vibe coating, but don't, don't confuse vibe coating with industry standard, solid, scalable robust end game. Products. So like you can vibe code your way to like a POC vibe code your way to an MVP, get your funding, do whatever you need to get to whatever that seed stage is. But at some point, you know, make sure you don't dig yourself into a technical debt that you can't get out of. Right? Yeah. Identify your stack, make sure you still put in human hours of research to, to make sure you're using it properly. Jonathan: I, I really like what the MESA Project has done with this. So they at first said, no, no AI contributions at all. And then they've come back and said, okay, you can use AI to help you write code, but you the person that is submitting it. Must understand what your submission is doing. You have to understand the code. And I think that's a, a pretty reasonable place to, to land at in, in this weird new world that we find ourselves in. Robert: Yeah. So that's about how they did it back in, in school. But I was taking like, you know, my c programming class, we had labs, we had to write some, solve some problem with C code. Mm-hmm. And then we would go sit in front of a ta, they would look at the code we submitted and they would ask us questions about it. We had to make sure we understood a friend. We could have like a friend write it for us or something. This was pre ai, but you could still get a friend to help you or write it for you if you don't understand it when the TA's questioning you. It's kind of something similar. Jonathan: Yeah, that's true. That's true. Yeah. Have you, have you seen I guess I'm kind of thinking about the job market. Maybe that's not the right, the right direction to go with this. I'm fine with whatever Robert: direction Jonathan: are, are. Are you seeing that like some of your developers that are in, in Dego, that they're making use of AI in their, in their hunt for a job? Or is, or the dead internet theory. The first time I heard the dead internet theory, I thought, well, of course that's the truth. There's, there's a whole bunch of bots out there. And that was years ago. I had that thought. And it's so much more true now. So like, are we, how much are real developers, particularly in the job market, but I guess everywhere else, how much are we competing against essentially AI fakes. Robert: Okay. Okay. The industry is really, really bad right now in terms of, you're talking the debt internet. I actually used GPT to make a pretty interesting image. I'm trying to find it. I, I wanna show it to you. It's, it's basically I have it on my phone. I'll show it to you in a minute. Okay. But basically, we're about like 10 or 15 years into what I kind of call copy paste delusion. Okay. So like 15 years ago someone knew what they were doing, right? And then six months later this company comes in and says like, oh, those guys did something pretty cool. They have a hundred thousand devs, or they have a hundred thousand community members. Like let's do what they did. And the people who executed on that just kind of had to get the number right. And they didn't really know possibly how to get there. Fast forward 15 years and you just have literally every single company copy pasting stuff that's like 15 years diluted and delusional. And so do these companies really have that many developers? No. No. They're bots. There's lots of bots. And I mean, bought in the B-O-U-G-H-T sense and bought in the BOT. Right? Bot bots. Bot bot, right. So like, and. And this is a, I don't wanna say it's a problem, it just depends on what you're after. Mm-hmm. Right? Like if you're after numbers and you need to like, you know, schmooze some investor or get something going for a shareholder, sure. I mean, like, great. But at the end of the day, if you're after like, you know, true developer engagement and conversions, technology adoption, if you want people to actually make it into that conversion funnel to be monetized in some way, shape or form, then your chances are, are better by, you know, playing the true blue community game. Right. Which, which is, has been somewhat just lost in my opinion. Jonathan: Yeah. So you guys, ATCO, you've got, you've got sort of this standalone community, but one of the other things you do, you were telling me about this yesterday, is you help businesses come along and design some of their community tooling, right? Like, what, what all goes into that? Robert: Yeah, so I, in a silly way I, I named, okay, so I'll go I just wanna send this to you real quick here, John, so that, that you, you have this picture. It's just funny you brought it up, but you can, you can post it or whatever. Yeah. I just made this, I don't know, about two weeks ago or something. So developer tooling the question one more time, please. Jonathan: You guys, dev eco is its own thing where you have sort of this independent ecosystem, but like you were telling me yesterday that you have another business essentially that sort of tries to replicate that, but for existing companies, I, I'm curious about that. Robert: Yeah, yeah. So, so when I first kind of started this consultancy, I, I was let go from my previous job. Mm-hmm. Right? I don't wanna get into specifics, that's fine. But I just sat there with a smile and, you know, transitioned the the first. People I called were my mentors. And, and this is where I, I kind of have told myself 10 years in industry, I did not take a single day off between roles or between companies, right? Like, I left one company October 14th, I joined the next company October 14th, and I told myself my entire career, I said, you know what, I would do this even if I wasn't getting paid, right? But the truth of the matter is like, I could never prove that because I've never done it without getting paid, right until the day I was not getting paid. All of a sudden I started gravitating towards the things that I was getting paid for. And it was kind of a beautiful, wonderful experience, right? I was like, okay, well this is great. Now I call my mentors and you know, one's like, Hey man, what did you think that that's where you're gonna end your, your career at? Like, get back on that horse. You know, like, you're not over, you're not done. I'll call you tomorrow. You know, another person was like. Build products. Another person was like, Hey, you know, don't don't submit applications to anywhere. Just tap your network. So I got all this advice, right? Mm-hmm. And I made a new email address. I created a Calendly, and next thing you know, I had like a hundred freaking meetings a month. It, it was the busiest I had been almost in my entire life, was hanging out with friends and networking. And I'm, I'm gonna get to the answer to your question, by the way. So, so, you know, three or four months of this, I started to kind of like, get job offers, just. Naturally from friends or people who needed some help. And yeah, it didn't take anything. I just said, Hey, you know what, I'll just help you for free a couple hours here, a couple hours there. I'm not really done with this kind of like, you know, networking section of my life. And if you need more time, we can put a little contract together. You can pay me for additional hours. Mm-hmm. All of a sudden I had this like stack of fake contracts on my desk, it felt like. Right. And I called the venture. I was like, Hey, this is what's happening. He's like, I was also in the process of interviewing for a pretty big job as well with a five Fortune 500. My, my mentor says, you can get a job in Corpo anytime, but you might not be able to kind of like start a company consultancy. Contracting agency with, with what you kind of have here? Not so often. And turns out those people who were kind of putting these fake contracts in front of me, they started calling me, Hey Robert, do you form your LLC...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/38748630
info_outline
FLOSS 852: Sir, This is a Wendy's
10/22/2025
FLOSS 852: Sir, This is a Wendy's
This week Jonathan talks to Robert Wolff about DevEco! How did this developer group come to be, and what is its purpose? What are the lessons learned about building communities and working with others? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/38742255
info_outline
Episode 851 transcript
10/16/2025
Episode 851 transcript
FLOSS-851 Jonathan: Hey folks. This week I chat with James Cole about Firefly three. It is a personal finance solution that lets you track your money, see where things are going, and coming from lots more. You don't wanna miss it. So stay tuned. This is Floss Weekly, episode 851, recorded Tuesday, October the 14th. Buckets of money. 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 we're going to talk about money and finances and keeping track of those pretty much on a personal level, maybe a little bit on the business level, but doing this with open source software. And the 900 pound gorilla in the room is, of course, new cash, GNU Cash, which I use for a lot of different things. But there is, there are other players in this space, and one of the other ones that's really interesting, in fact, the more I learn about it, the more I'm interested is Firefly, specifically Firefly three. And we came across this and we got in contact with the creator, James Cole, and we said, Hey, we should have you on the show. And James very graciously said. Yeah, let's do it. So we've got James with us today. Welcome to the show. Thank you. Thank you. Happy to be here. Yeah. So we, we heard a, I thought at first it was a small plane buzzing him. Turns out it was a scooter going by, but it, it made me curious where, where are you in the world, sir? James: So I am in Arnam in the Netherlands which is south of Amsterdam, basically, which is usually the only city that people know in the Netherlands. So that's where we are, and yeah. Yeah. It's 6 15, 6 30 here. That's not too, that's not too early in the morning. Right, Jonathan: right, right. Yeah. The, the one that really gets me is when I have calls with people that are in in East Asia. Like in, in China, we, we have some contacts there in Hong Kong and Sheen and, and you know, it's either they're going to bed and we're up first thing in the morning or we are going to bed and they're up first thing in the morning and, you know, there's this little narrow window. So Europe, Europe is not too bad. James: I spent some time in San Diego and I had the exact same thing where if I would call home, it would be either very late or very early. Mm-hmm. So there was very little time to even think about everything. About anything. Jonathan: Yes, absolutely. Alright, so Firefly, Firefly three. First off, what, what is it, why would somebody use Firefly three? What, what problem does it solve? James: Well it, it mainly solves my problem, which is where it started with Firefly one, which was, you know, basically managing your money. And the problem that I had at the time was well, debt, not that much comparatively, but still. And I needed a tool to just see my transactions, maybe charted a little bit. Mm-hmm. And at the time, in the whole personal finance space, you had, like you mentioned K new cash, you had the, the more professional money, Microsoft money kind of stuff. Mm-hmm. And that was basically it. And everybody else was using Google Drive to. Keep a list of their expenses. So I kind of started with, okay, I wanna have some accounts, I wanna have some transactions and maybe a budget, and let's see where it goes from there. Jonathan: Mm-hmm. James: And that's basically how it started with me trying to solve my own money problems in a tool. I was a developer at the time. So what you do when you're a developer is you start building tools and Yeah, basically that's where it started. Yeah. Jonathan: So I, I sort of had the idea. I, I'm very intrigued by this and I had kind of had the idea I would go ahead and install it while we were, while we were talking. So if someone wants to try it out, let's say, so I've got the, the GitHub pulled up and I see that you have a demo site, but let's say somebody actually wants to try this out to use it with live data, and they say, I don't wanna put it on anybody else's machine. What's the easiest way to do the install? How would you recommend somebody start. James: I think Docker basically. So I started building a web tool. I was doing web development, so then everything is a web tool. And after a while, but in the beginning it was very difficult. You know, you had to install Apache, installed Linux somewhere, stuff like that, self-hosted, blah, blah. At some point Docker came up and Docker started to become really user friendly. Mm-hmm. And now we have one Docker compose file and some settings. And basically the, the, the default settings are, are good enough and then it runs. Jonathan: All right. So I will start working on grabbing it from Docker while we talk. Let's, now let's hope it actually works. Yeah, that will be good. We're do, we're doing it live. We're doing it live. What's, what's with the name? I have two questions about the name. Where did Firefly come from and why are we talking about Firefly three? This sort of implies there was a one and a two. James: There were a one and a two. So I had this fad at the time where all my projects were named after, I think British planes from World War ii. You know, you need a theme, so you have server names, dot com, stuff like that. But I had, okay, this is my theme. So it's, and f from, from finance and the original Firefly one never actually left my, my own laptop. It's just a, a piece of software. And at some point I was working at a company programming in Groovy, which is a Java dialect. Mm-hmm. And I, I thought, you know what? I'm gonna build Mark two in Groovy. Well, that lasted like a week. And at that point I was like, okay, I, I wanna also, I wanna start off, I wanna do double bookkeeping, I wanna do more with the database. And I saw myself making mistakes that I want to skip over in the next version. And of course they say never do a rewrite. But I did a rewrite and I started Firefly three basically. And well, much to my surprise as well, that's the one that became popular. So that's probably never gonna be a five flight, four or five or whatever. But yeah, that's basically where it came from. Jonathan: Interesting. And what, what language is Firefly three written in? If, if we're not doing groovy anymore? It's, James: it's, it's in PHP. I think I started way back when in PHP five or maybe four even. And at the ti through the times I, well, you, you upgrade, you go with new versions and new features and new frameworks. Mm-hmm. So now we're very cool at PHP 8.4, which is now the latest, the latest version. Jonathan: Yeah, absolutely. And so it, it's a you said it's a double entry bookkeeping system. So like for those that don't understand, what, what exactly does that mean and why would somebody want it? James: Nowadays it's tricky. The original idea was in finance, that if you have two separate books where you record expenses well as an expense, but separately you record them as income. So you keep a, a double book where every expense that you make or income that you have is recorded twice. Once. For example, if you spend money in a store, you would write it down once as an expense on your end, but you would also record it. In a book for the store as an income on the store side, so you could compare the books and make sure that money isn't stolen or defrauded or whatever. Jonathan: Mm-hmm. James: And it's been a, a financial system for years and years and years. And nowadays in the digital age, it's less of an, an issue. Maybe it's, it could still be an issue. Mm-hmm. But in a single database, technically speaking, it's less of an issue, but it does help forcing the integrity of your database. If a transaction is recorded twice, even if it's in the same database mm-hmm. You can be fairly sure that if you, for example, sum up all of the transactions that you have, you end up at zero. Mm-hmm. You know, for an expense. It's always counted by income. And it's a, a great way to think about how you move money. The fact that you can never really create money outta thin air. Mm-hmm. So even if you get money or an account and a new account starts with a, an opening balance, the money has to come from somewhere. The money always has to come from somewhere. So there's always a withdrawal at some account that ends up in your account, for example. So there's always this money going back and forth. Jonathan: Mm-hmm. James: And that's technically speaking, not really the, the not really interesting when it comes to fraud, but interesting when it comes to how do you let money flow. Jonathan: Right, right. Track. So you, you, you mentioned this idea of where it goes in the database and I, I think. Like that's sort of the, a technical layer to it, but not really what double entry bookkeeping is about. In my mind, double entry bookkeeping is more about having a, like a category for everything that where it comes in and comes out and then you can look at that category as its own account. And so, you know, you could say, how much have I spent on eating out in the last year? And that's at least in the way that I use it. That's what's the most interesting about the, the double entry system. James: Yeah, no, that's absolutely true. And that's also where my accounting knowledge stops. So when I design this, the accounts are more or less or less for me, the, the stores or the shops where you spend money and not really the categories themselves. Jonathan: Mm-hmm. James: So after I realized that I added categories and I added budgets and to, to, to get that level of detail. But yeah, that's also a very great advantage of doing double entry book. Jonathan: Yeah. So I'm ha have you had like an accountant or a CPA that has come along and helped you with this? And I, let me, let me give you a little bit of background on this. So I've, I've done business stuff. I've had conversations with CPAs and I also, I help a client that's a CPA with his computers. And so we talk about a lot of this stuff all the time. And one of the, one of the stories that he's told me is when he's talked to a group that makes accounting software, they've told him, we hire accountants and teach them to program, rather than trying to hire programmers and teach them accounting. Another, that was so fascinating and James: that actually is a very good idea because I didn't, and I don't, so you see in Firefly, and that's one of the, the, the critics about Firefly as well, that technically it's not really accounting, it's not really accountant proof. And whenever somebody who is an accountant uses Firefly three, they are always. Is this actually how you do it? This is terrible. You should really do this and this and this and this. But at the end of the day, I figured, well, if it helps me with my finances, then I'm okay with a little wiggle room in how stuff works. And I, I don't mind that it's well wrong or even broken, somebody called it. As long as you know, I know where my money is going, I know what I'm spending it on. And yeah, this works for me and it's good enough. So there's also a level of financial literacy that if you are a good accountant or even a accountant, then Firefly might not be for you. But you know, if you just wanna keep track of your finances, if you wanna know where stuff is going, then it should be good enough. Jonathan: So this is not intended to run a business off of? James: No, and I had requests about it for a few times, but, you know, drawing invoices or really keeping track of the, the, the real double bookkeeping system. But that's tricky to do. Yeah, I think that's the, the system's li too limited to do that. Jonathan: Got it, got it. Is there, is there anything like creating invoices or, or any of that in there that somebody could use if they really wanted to? James: No, there's an API you, so you could always develop something against an API to, to get what you want. But for the real business stuff, you really have to look at well, invoice media for example, or more of the professional apps, which is also easy for me. So there's less of less pressure to do all this stuff. Exactly right. And have all the details ready, because when you wanna run a business on software like this, software like New Cash or others, the, the, the, the level is also higher. So, yeah. Jonathan: Yeah, yeah. Interesting. And so what is the, and I talked about this, like the fact that I, I am very tempted to use. Firefly three instead of new cash. But what's some of the advantages that, why would somebody want to use Firefly three? Like what are the, what, what's the killer features that you've added in there? James: So what I hope are the killer features are budgeting. So you can keep track of the money you wanna spend per month or per week or whatever period you like. You can add subscriptions and bills, stuff like that so you know what expenses are coming up, which is something that I added at some point where, you know, it's the end of the month and I had this flow where I would manage my money through the month. So really from the first to the last day of the month. And then, you know, at the 22nd or the 25th, a bill hits you and you knew this, you know, oh wait, I was paying for this as well. But I already spent my money. So that's something to, to keep track of. That's something that I added. And there's a really cool way to save money. So like piggy banks you know, you wanna save for something big add it to your savings account, add it to a piggy bank. Jonathan: Mm-hmm. James: And this is something that you see in real banks as well, where they add this like virtual piggy banks. Jonathan: Our, our, but that's in the system. Yeah. Sorry. Our digital bank calls it buckets. We have a high yield savings account and they call it a bucket. But yeah, absolutely the same idea. James: Yeah, same concept where just pouring money to save up for something automatically if you want to. But what for me are the, is are, are, there's a big rule engine so you can categorize your transactions, you can add labels or categories or move money around, stuff like that. And I think that's a big one. There's a big rule engine way that you can use to categorize transactions, to move money to other accounts or to add descriptions, stuff like that. And that's a really strong feature. Jonathan: Yeah, absolutely. So I'm trying to do the installation and I am getting an error and so, haha crap. That's all right. It's probably a problem on my computer 'cause I'm, it's telling when I try to run the Docker compose command, it's telling me unknown shorthand flag F in dash f. It is, it is something missing in, in Docker compose, I'm sure. James: Hmm. So you got the environment files, you copied those. Jonathan: Yes. James: Copy it. Shorthand. It's Windows or Linux? Jonathan: Linux. Papa s James: Strange. Jonathan: I am installing Docker composed packages now to see if I'm missing something. James: That could be it. Is it Docker slash composed or Docker space composed that you're using? Jonathan: I tried space. Okay. Yeah. That should work. Yeah, should work. It's probably just something that I don't have installed, so I will continue abusing apt to make it do the things that I want it to do. And then I also have to see if we've got people mashed potato windows. No, no, James: not for me, but that's all right. I, I, I do know that people run Docker compose and then run the software on Windows, so it should work. Jonathan: Do, do you have like an idea of how many people run Firefly three and, and where they run it? James: No, I got a pretty good idea from the, the pools from Docker Docker hub. But at some point it just starts, you know, you got 1 million pools, so it doesn't really have a good indication of how much per day or per week or whatever. What, for me, it's a very good indication that if I accidentally, and this never happens leave a bug into a new release, people will start complaining after a few minutes. So that's a good sign that people are using the software and they are pretty quick about it. Jonathan: Mm-hmm. James: I had up until, I dunno, last year, maybe the year before the, the software can, can ping for updates, you know, is there a new release, blah, blah, blah, blah. And it, it used, it, it did that to a server that I would control so I could see in the logs how many people were doing that. And at the time I had, I think 200 people a day pulling for new updates. And since they're doing that by default and it's opt in every two weeks, you get a user base of a few thousand installations. So that's pretty good. But now it's an Azure bucket and I'm not really keeping track of it. It's, you know, I don't wanna, I didn't want to track people or, or keep, you know, log somewhere, so it's fine. And so I don't really know, but I know that's a few thousand at least. Yeah. Jonathan: Yeah. That's a, that's a pretty good that's a pretty good user base actually. Now how many. How many of those users have sort of converted themselves to assistant developers? Do you get patches in from them? Is this pretty much a one man show? How does that part work? It's, James: it's pretty much a one, one man show. It's not entirely fair because you do get a lot of patches and a lot of updates, but I I see it's intermittent. So there is every now and then somebody contributes for, you know, a few weeks or a few months or a, a book that they see or an issue that they, they want to get fixed and then they kind of fade out and new people join again. But it's difficult to get a big community to actively help develop stuff, but also fair enough, I can be pretty uptight about the changes that I wanna see in the software and the quality that I wanna see. So I'm not always open to new developers learning PhD, HP, you know, don't do it on my brainchild, you know, find another project to. To play around in. Jonathan: Yes. Yeah, I had, I've had a conversation that goes like this in some of the other open source projects that I'm involved in. And there's a, there's actually, there's a blog post that, that we've pointed people to from d hh back a couple of years ago that basically says, open source is not a community and it's not a governance method, it is a license. And so that we are, we are not required to run our project the way that other open source projects are run. James: Yeah. Yeah. That's also a very interesting one where you get a discussion with people about how well, like, you're running into all kinds of errors and problems and, and stuff right now with, you know, with the installation. Well, it's always been a discussion, you know, how easy do you wanna make this for people to run and install and use? When, you know, I don't necessarily get a lot of energy from building installation wizards, so I don't mm-hmm. At the same time, you want to acknowledge that people do want to use it and are willing to put up with a lot of stuff if you at least show them that you're willing to make it more user friendly. So there's always a balance there. And I remember in the beginning that I was very strict about this stuff. You know, it works for me, end of discussion, but that, that doesn't really work. That also doesn't really work in the open source space. You know, you wanna, if you wanna have support or community or just praise from people for what you're building because you're also proud of what you're making, you gotta give them some leeway in how the software works and runs and is installed. Jonathan: Right. James: And I know I'm saying this while you are running into Docker compose errors, but still Jonathan: No, no, I got past that. Oh, very nice. The next error is that something else is already running on port 80. I know how to fix that one. Now I just have to go back and see, is that Docker thing that I just started still running in the background and just not on the port, in which case I want to kill it first? No. I, I, I, I know enough to be dangerous about CIS ed admitting and running docker. Nice, nice,...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/38606780
info_outline
FLOSS 851: Buckets of Money
10/15/2025
FLOSS 851: Buckets of Money
This week Jonathan talks to James Cole about Firefly III, the personal finance manager! This one itches James' own itch, but brings a great visualization and management tools for your personal finances! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/38594100
info_outline
Episode 850 transcript
10/08/2025
Episode 850 transcript
FLOSS-850 Jonathan: Hey folks. This week Aaron Newcomb joins me and we talk with Pi Finn Lazen about one Rom. It is a ROM replacement open source project for basically anything based on the 65 0 2. So we're talking Commodore 64, even the Commodore Pet, other systems from that era. We ask a lot of well, I ask a lot of dumb questions and Aaron asks a lot of really good questions, and we get to learn all about the project. You don't wanna miss it, so stay tuned. This is Floss Weekly, episode 850, recorded Tuesday, October the seventh. One Rom to rule them all. 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 we are talking about, well, something I don't have a whole lot of experience with. That's retro computing, retro hardware, and sort of mashing together new things and old things. We were talking before the show and my experience with retro hardware is basically limited to the fact that I'm just old enough that when I was a kid we had like a 3 86 and a 4 86 machine and I had some hands-on, hands-on experience with those. That's basic. I had a cousin that had a Commodore 64 and so I got to mess with that a few times and that is basically my experience with retro computing. And so when we had this particular topic, the one rom come up, I went, I know a guy and that guy is Aaron. Welcome to the show, sir. Aaron: Hey, thanks for having me. Yeah, I'm super excited about this one. Jonathan: Yeah. This was the, the one rom from p was kind of already on your radar when I sent you that email and you're like, oh, let's do it. Yeah, I'm totally up for it. Aaron: Yeah, the timing was perfect. I really had just started digging in deep to Pierce's project and the kind of things he, he's building. And yeah, this does, you know, we should say this is also open hardware mm-hmm. As well. So it really does fit in with Floss Weekly from a number of ankle angles, ankles from a number of ankles. All the ankles are here, all the but yeah, this is a really exciting project and it's really pertinent for people that do wanna relive their childhood. Jonathan: Mm-hmm. Aaron: For computers especially, that are maybe a little older than a 3 86, you know, going back into the Commodore 64 days. Because what's happening is, is it's getting difficult to find some of those ROMs, right? Mm-hmm. And that's where you store the information that you need to boot up the computer mostly, or to sometimes contain the character sets that would come up on those old computers. They would be stored in, in ROMs. They would be programmed, and those chips would be in your computer. And if those go bad, then you know, you're, you're kind of up a creek now. You can still find them. If you're like me, you go to e-waste every week. And when you find a, a a, an eprom chip in an old com old motherboard or something that maybe was for some, some controller system or something, but it still could work, you pry that sucker out and bring it home with you. But not everybody can do that. So yeah, we're gonna be talking about a project that aims to solve that scarcity problem today. Jonathan: Yeah. Well, let's go ahead and hit the right buttons here and we will bring peers on. Welcome to the show, sir. So glad to have you. Thank you very much. Great to be here. Yeah. So what did, how, how terribly wrong did we, did we get it? What is the, what is the one rom Is it, can I run it on a 3 86? Piers: Not yet. Okay. Not yet. You, you, between you you did really well. Okay. But perhaps I'll give you a bit of background how I got to one rom it'll also absolutely make a lot of sense to people. About a year ago I got into the hobby of collecting retro systems and my idea of retro systems are really, well I was a Commodore guy as a kid, so I started collecting Commodore 64 Vic 20 Commodore pet, and in particular the dish drives. And I found I have a huge affinity for the big, chunky old dish drives that these systems used. All of these systems are processor based and they have ROMs there and said to, you know, store the, the code on them that the CPU is going to boot from and needs to run from. And anyone who gets into the hobby of collecting retro systems, again, as Erin said, needs to be prepared to get their hands dirty and they're gonna need to fix some things from, from time to time. Mm-hmm. Often these systems were stored in suboptimal conditions, you know, humid or damp conditions, and there's a bunch of rust and some chips have gone bad. And I found myself quite often needing to replace the ROM chips and while superficially the ROM chips in these different devices all look the same. They're not, they have different capacities and they also have other different hardware properties, like the number of chip select lines on a, on a ROM differs between the different models. Now the chip select line for the uninitiated is how the CPU indicates to a ROM that it should actually do something. The CPU activates the ROM chip by activating the chip select line, and different chips have different numbers of those and they can also, sometimes they're active high given a digital logic level high, sometimes they're active low. And I found myself having to have lots of different hardware solutions to try and replace ROMs in all of these different systems. And one day I just had this thought. Hey, can I do this in software? Can I use a modern microcontroller and just, you know, implement all the different behaviors and rom sizes and so on, and have a single PCB and a single micro pro microcontroller based solution that will do everything. So that's really the aim of one Rom, is to be this the most flexible replacement rom for your retro systems that you have. One PCB, it can support all these different systems. And because it's microcontroller based, you can make it really easy to program. You don't need like a $50 Eprom programmer to program the device, and you can also implement other capabilities on it that people would never have even thought of back in the day. And I guess we might get onto some of that later in the show. Jonathan: Yeah. So I, I'm gonna leave the camera on you for just a second because I'm, I, I looked up and I see an Apple two. A Commodore pet, I think. And then is that a Commodore 64 on your other side? Like that's quite the collection. Piers: So, so over there is a, is an Apple Mac classic? I think it is. Okay. I've got a Commodore pet here behind the pet. There's some, a dual disc drives that worked with the pet. There's some more disc drives over this shoulder, and then I've got a Commodore 64 and a Vic 20 hiding behind me. As I said, I'm mostly a Commodore guy. Jonathan: That's great. As, as I alluded to earlier, I don't, I don't have any classic hardware like that. I think that the oldest thing, I'll hook you up, Aaron: Jonathan. I'll hook you up. You tell me what you want. I'll send it to you. Well, Piers: well, okay. The, the really embarrassing thing is, you know, I grew up with these machines and then I ditched them. You know, I sent 'em to ewas 20 years ago and I want them back. But you have to buy different ones now. Jonathan: Yeah, I've, I've heard that. I've heard that, that from many people, and it's sometimes it's, you know, you grow up and your parents tell you it's time to get rid of this old hardware, or you get married and your new spouse tells you it's time to get rid of this hardware, because then 20 years later it's like, why? Aaron: Yeah, exactly. Yeah. The beautiful thing about it though now, especially for me, is you get to you know, you get a little older, you get a little bit more disposable income. Mm-hmm. You know, you turn this into your hobby instead of maybe buying a boat or something. And you know, it, it, it sounds expensive, but you can really go a long way you know, collecting these systems. And for me it's like, oh yeah, I used to go over to my buddy's house and he had a Commodore 64. Mm-hmm. And I never really got to explore the depths of it. We just played, you know, some games on it or whatever. Oh, now I can actually get that system and explore it myself. You know, similar to game systems, people collect these old game systems. It's like, well, I had an Atari, my buddy had an in television. You know, now I can have the in television too, and, and kind of explore, you know, what it's, what it's like and, and really put it through its paces. So it, it, it, it, it's a, it's a fun hobby. I think it's a reasonably accessible hobby, but we are talking about 40-year-old equipment mm-hmm. That they never designed for it to be, to be, have a 40 year lifespan. So this stuff does go bad all the time. Jonathan: Yeah. Yep. So the, the, the one rom how, how similar is that to modern E ROMs? That's what I have experience with doing, doing embedded stuff. Is it basically the same idea? Can you use an rom with an adapter? Is that, is that what you're doing? Piers: Yeah, no, that's you. You can absolutely do that. And you, you can differentiate between Eprom and eeprom. So some of these solutions are using EPROMs, which were erasable, programmable, read only memories. And to erase those, you need a little UV light box. Mm-hmm. And has a little window in the top and you shine UV at it for a few minutes to erase it, and then you can program it with one of these $50 programmers. Then there's EE Proms. Mm-hmm. Which are much more modern and you can actually buy. They're still being manufactured today and you yeah, can erase them electrically with the programmer and you can program them with the programmer, but it's kind of a static thing. Think of it as literally a blob of read only memory, and that is then just, it's being sent some signals on address lines indicating which bite to serve and one or more chip select lines saying you should be active now and actually serve the bite that's at that address location, and then it has data lines and it, it sets those data lines to the correct bits to serve that particular bite. It's a very kind of, I don't wanna say, I don't wanna make it sound stupid, but it is kind of a dumb device, right? You just, you, you give it signals on its pins and then it. Sends. Mm-hmm. Other signals out of other pins. Well, so what I'm Jonathan: do on like a modern ePRO, I'm sorry to cut you off, but Yeah. On a modern eprom, you know, we would talk about like I two CI squared C interfaces. Yeah. Or a spy bus. Yeah. On, on the legacy hardware, the stuff that you wanna support, it's a bit different sort of busing, isn't it? We're not. They, they, they didn't have ITC. They probably didn't have serial buses at all for these, did they? Piers: No, correct. It was literally just, you have these address lines and you have the data lines, and then you have more and more chip select lines and you, you, the, the, there's generally a shared address bus and shared data bus. So you have multiple ROMs and potentially RAM chips and other things. Mm-hmm. And potentially multiple controllers. Right. You might have a CPU and a video chip that can control all of the ROM and RAM chips in your device. And they're all sharing the address bus, they're all sharing the data bus and they're all sharing the chip select lines. So it's really important actually that only one device serves a bite at any one point in time. Mm-hmm. Or you'll get a conflict and the system will end up end up crashing. So yeah, it was a pretty, pretty simple mechanism that was used and it involved a really intricate dance between all the different components in the system with these, you know, Commonwealth 64, there's actually an awful lot going on inside it, despite the fact it's about 45 years old, 30, 45 years old at this point. And I'm kind of still in awe of the engineers. Getting everything working together without the cheap and accessible, you know, oscilloscopes and other equipment that we have today. Jonathan: Mm-hmm. Yeah. One of, one of the interesting things about sort of looking into the way the Commodore is 64 and those other systems worked is whereas today we have system on Chips SOCs, where everything is on one die. And so, you know, you've got, in some cases your, your CPU, your memory, your video chip, and you've just got some GPOs and some serial buses and that's it. Whereas with the Commodore 64 and the older ones, everything was sort of exploded out and you would have individual discreet chips. And I think that's part of why people like these so much. Because you can like actually look at it and go, there's the video card, and I sort of understand what it's doing. There's the memory chip, there's the rom and I, you know, you can actually trace the buses and so you can buy, you know, you can get an oscilloscope or a a logic analyzer and actually watch the data go back and forth. Which, you know, on a, on a modern machine, I mean, good luck. You gotta, you gotta, you know, $10,000 and deli the die and all kinds of other crazy stuff to be able to try to see that. I think that's part of why people like it so much is because it's, it's a, it's a small enough and simple enough system that like you have some hope of being able to understand the whole thing Piers: and you can learn a lot, an awful lot from it. That's still relevant today about how computers work. Absolutely. You know, I've, my, my kids are, you know, quite excited watching my YouTube videos and I think it's actually really educational for them, understanding how these systems work and also teaching them skills. Like you don't need to be afraid of technology. Mm-hmm. It's not actually magic. It's. You know, physics and stuff, you can learn and you can understand, but it's quite an accessible way of getting into the hobby rather than looking at, I don't know, a, a 12th gen, Intel CPU, which will frankly, you know, good luck with that. Jonathan: Right, right. Okay. So the, the one rom what, what all hardware, what systems do you support with it? So like, we've talked about Commodore, but I assume there's some others. Piers: Yeah, what's the post? So, so what I've tested with is mostly the Commodore stuff. So, you know, the pet, the V 20, the Commodore 64, the disc drives. It's been tested by other people on TI 99, Texas Instruments System, Coco two, and I would guess a whole bunch of other systems, but people haven't told me about. But most machines actually from this vintage, around about late seventies and early eighties, tended to use the 23 series. ROM chips, which are 24 pin ROMs that are two kilobytes, four kilobytes, and eight kilobytes. So on the face of it, one rom can support a rom chip in any of those systems, any machines of a similar vintage. I actually have an Atari 800 XL that arrived from eBay the other day that I want to test one rom in. But I've also got some really interesting conversations going on on GitHub with people who want to use them in keyboards, you know, synthesizers from the same generation 'cause they had the same rom chips. Yeah. And also pinball machines. Now I have a few pinball machines myself, but they're, you know, more of your vintage Jonathan and 1990s and and beyond. But the late seventies, early eighties pinball machines, again used the same ROMs. And I've got some people very interested in trying out one rom in those systems as well. So think anything from that sort of vintage late seventies, early eighties is, is one ROMs, you know, sweet spot. Aaron: And it, and I, and I should add that, it, it, it, you know, I. People are probably intuit this automatically, but especially that series, the 2300 series of ROMs are difficult to find. So I can still, like I said, I'll go to e-waste, right? And I can still pull out some, some ROMs from from later series. Pretty easily you can find. And those are, those are larger ROMs. They support, you know you know, 512 mm-hmm. K of, of ROM space, right? So, so you can find those later ones pretty easily, but they're not the same as the 2300 series. And so what people would do to get around that problem of, oh, I can't find this, is they would make adapters to put the newer style ROMs into the older to make them compatible with those older ones so that they could put those in their computers. And that that is a whole fussy mess, kind of in and of itself. So, so, so there's all these workarounds that people have been doing historically to try to make this work because they just can't find these anymore. Mm-hmm. And that's becoming more and more the norm, especially with Commodore stuff. Right. The Sid chips, there's lots of people that make Sid Replacements, the Vic chips, I mean, these were all proprietary chips that MOS made, Moss made for Commodore since they were owned. 'cause Commodore owned them. They could say, go make this chip. But, but when those go bad, they're super hard to find and mm-hmm. And the ROMs are, are kind of in the same boat. Although not quite as bad as those chips, but those 2300 series ROMs are hard to find. Well, Piers: it kind of, and it also depends on, sorry to cut you off, Erin. It kind of depends on the 2300 series chip you're talking about, right? Yep. The, the dual disc drives that, that work alongside the pets actually, while they might have four kilobyte 2300 series ROMs in them, they're not the same as the four kilobyte 2300 ROMs in a C3 64. And that's not the same as the one in Vic 20. They have different hardware behavior that was programmed at the factory and you find yourself with like lots of different you know, adapter boards with different configurations on them for each of these different replacements. And that was, you know, that was the problem that really led me to think, you know, I need, I need one thing. I don't want to have 14 or, or however many different adapters for this solution. Aaron: And how are you getting around the, this is one of the questions I had is how are you getting around the voltage? Requirements of these chips. Yeah, because I think, I don't remember exactly, but isn't there like a 12 volt or a negative 12 volt on the, some of the 2300 series? Because, but but modern chips usually run on like five volts Yeah. Or three volts. So how do you, how do you Piers: make that work? So not on the 23, 16, 23, 32 and 2364, the two, four and eight kilobyte chips that I'm replacing, there's no negative 12 volts. Now there was, there is on, I think it was on the Apple one, possibly on the early versions of the Apple two, one of their character ROMs did have minus 12 volts fed into that. Yeah. And it's actually got a different pin out to the regular 2300 series run. So one run doesn't support that today. There, there are solutions for that, but you would need an additional, you know, hardware on your PCB to, to filter that out and not fry your electronics. But honestly, the voltage is, is actually a great topic because the, these systems are all running on five volt logic and. If you want to have a replacement ROM solution that's the same footprint as the 2300 series ROMs, it has to be really small and you can't, you can't afford, particularly on a, a cheap two layer PCB with components on one side, which is what I was trying to achieve. You can't afford to have level shifting ics 'cause you need to level shift like 22 pins. You just can't fit that on the PCB. So one of the key decisions I had to make when developing one RO was to find a microcontroller that was five volt tolerant natively. 'cause most of them are powered by 3.3 volts. That's fine. You can stick a tiny voltage regulator on one RO to to, to give you 3.3 volts. But the G PIOs have to be capable of receiving five volts and the logic levels that the microcontroller is gonna apply for, you know, digital high and digital low have to be compatible with these retro systems. That's why in the first release of One Rung, I went with the S TM 32 microcontroller. Jonathan: Mm-hmm. Piers: Because it had native five volt tolerant gs. And in...
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/38514980
info_outline
FLOSS 850: One Rom To Rule Them All
10/08/2025
FLOSS 850: One Rom To Rule Them All
This week Jonathan and Aaron chat with Piers Finlayson about One ROM! Why does the retro-computing world need a solution for replacement ROMs? How difficult was it to squeeze a MCU and layout into the original ROM footprint? And what's next for the project? Listen to find out! You can join the conversation in , watch live or get the video version of the show on , as well as getting the full story and show links from . Oh, and follow ! Theme music: "Newer Wave" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 4.0 License http://creativecommons.org/licenses/by/4.0/
/episode/index/show/b27a1a7a-dbb9-4922-ac3e-601e2d6ca1e1/id/38514115