Chris: Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris.
Wes: My name is Wes.
Brent: And my name is Brent.
Chris: Hello, gentlemen. Well, we are back from our trip. And, well,
Chris: as soon as we landed, we each got heads down on our own projects.
Chris: Today, we're back to compare progress and catch you all up on what we've been
Chris: up to. Then we'll round out the show with some great boos, picks, and a lot more.
Chris: So before we get into that, let's say time-appropriate greetings to our virtual
Chris: lug. Hello, Mumble Room. Hello, hello.
Mumble: Hello. Hey, Chris, and hello, Brent.
Chris: Hello. We have a few up there in the quiet listening. Shout out to you,
Chris: too. We're starting a little late today, so it's nice to have a crew in there.
Chris: Also, good morning to our friends over at Defined Networking.
Chris: Go check out Manage Nebula.
Chris: Defined Networking is a decentralized VPN company built on top of the open source Nebula platform.
Chris: And what I love about this is there's no big tech dependency,
Chris: no control plane that might go down, and it is built for speed,
Chris: simplicity, and very serious security.
Chris: They started back in 2017 for Slack, and they had to hit the ground running
Chris: for a global enterprise that had to protect the world's largest company's data.
Chris: It's really robust. And unlike traditional VPNs, Nebula's decentralized design
Chris: makes your network more resilient.
Chris: Whether you're running a home lab or a big infrastructure at scale,
Chris: you can optionally self-host Lighthouse nodes.
Chris: So you get more control, more flexibility, and more reliability,
Chris: you can dial it up and down as you want, and the entire thing is based on a free software project.
Chris: You can get started and support the show with up to 100 hosts for free.
Chris: No credit card required. Just go to defined.net slash unplugged.
Chris: That is defined.net slash unplugged. And by the way, Android and iOS apps now
Chris: have always-on VPN mode. Been going for a little bit now. Just wanted to shout it out.
Chris: Defined.net slash unplugged.
Chris: Well, we really have been building, boys. We have been building.
Chris: Brentley's been building.
Chris: Wes has been building. But I think we should start with Brent because he's been
Chris: getting me a little warmed up, if you know what I mean.
Brent: I know what you like. I know what you like.
Chris: So what have you been up to, B-Rent?
Brent: Well, over the last couple of months, you've been complaining on air,
Brent: on the show, about how I broke your diesel heater and it stopped working.
Chris: Wow.
Brent: It's been, what, two years you've been using that to heat your home?
Brent: And you've loved this thing, right? You've been even convincing me to get my own in the van.
Brent: I did not pull the trigger on one, but I did a ton of research because I think I agree with you.
Brent: These little Chinese diesel heaters, which are really clones of a really good
Brent: Webasto heater, which is, I think it's German and it's excellent,
Brent: excellent build. It's been around forever.
Brent: But the beauty of it is its simplicity.
Brent: They just kind of trickle through fuel. They're very easy to understand.
Brent: Anybody can take them apart and build them again.
Brent: Well, I shouldn't say anybody because it takes away the credit from what I did this week.
Chris: But if you're willing to do the work and the research.
Brent: Mm-hmm.
Chris: Yeah.
Brent: They're also relatively inexpensive to get. So.
Chris: Yeah. They're plentiful, but they're very proprietary by nature in a weird way
Chris: because they're all scamming each other's protocols and communication methods,
Chris: but they don't document any of it.
Chris: And so it's a proprietary way in like the old school sense.
Wes: They're all doing the same thing. They haven't taken advantage of the proper,
Wes: just share the foundation, sort of open sense. But in practice,
Wes: for practicality, it kind of ends up being the same.
Chris: Yeah. And for controls and things like that, they can like modify one of the
Chris: common standard protocols.
Chris: So that's really a tricky thing for somebody who wants to have as much open
Chris: source and control over something as possible. It's bugged me for two years.
Brent: Yeah. And in this particular area of reverse engineering these really nice Webasto
Brent: heaters, it's just a race to the bottom, right?
Brent: So in our research to see, well, how can we possibly, because Chris wants this
Brent: for everything in his life, how can we possibly connect the diesel heater to
Brent: Home Assistant so that you can automate...
Brent: the heating of the whole front side of your home, how do we do that with this
Brent: particular heater? And the answer wasn't that obvious.
Chris: As I've come to say now is like, how do we put some more open source in this?
Chris: This thing needs a little more open source.
Wes: Open source injection.
Brent: Open source and automation.
Chris: Yeah. Put some open source in it and call it good.
Brent: So we've been thinking about how to do that for months. And I think this week,
Brent: since I'm here in studio and near the farm, it was the time to finally put it
Brent: in action. And I was afraid the weather would be too nice, but it turns out it snowed.
Brent: So it was just perfect to have the incentive to get this heater back up and running.
Wes: I assume you locked him in the milkshed and said that he gets heat when he fixed the heater?
Chris: Yeah, exactly. And let me tell you, is that not a motivator?
Brent: Yeah, it is.
Chris: It gets a guy to hustle.
Brent: The issue was the heater completely stopped working and you couldn't use it at all.
Brent: You had a little trick weeks ago of kind of flooding the thing so that it would
Brent: clean itself and then run for a bit. I think you got a couple of weeks out of that.
Brent: and then and then it just gave up.
Chris: So inevitably they have just parts that will expire
Chris: because the way the thing works it carbs up and
Chris: it has a screen in there that atomizes the fuel and when that fuel
Chris: burns it leaves residue behind and just by using the thing it inevitably will
Chris: fail just the design of it and so especially when they're a hundred dollars
Chris: right they're not really making these things to last but like brent was saying
Chris: if you're willing to service on the thing you can open it up you can replace
Chris: these little parts there's kits for 15 online and then it's right back to new again.
Brent: Yeah and they're actually extremely serviceable you can service them in place
Brent: with a couple small little tools.
Chris: That come.
Brent: With these rebuild kits.
Chris: It's kind of incredible so i mean the funny thing right is that brent took that
Chris: on and he had the actual diesel heater probably fixed within two hours once
Chris: he started working on it it was simple mechanical really really so it was great
Chris: because oh like after two weeks of this thing being busted we've got heat again
Chris: and so brent looks at me and he says,
Chris: All right, well, let's take it apart again now.
Brent: Well, you can't stop there. Come on.
Wes: So you got it working, and your first instinct is to just rip it apart?
Chris: And I'm like, whoa, whoa, whoa, whoa, slow down. It's like, no,
Chris: no, I think we can do this. Just take a couple hours.
Brent: It always starts with that, doesn't it?
Wes: So which day was this?
Brent: A couple days ago.
Chris: We were working on it until after the show was supposed to start.
Brent: Yeah. Let's say we were inspired.
Chris: Yeah.
Brent: So the diesel heater is great. We got it back up and running as it was,
Brent: but I mean, being Chris's dear
Brent: friend, I can't just let him suffer with a simple on-off diesel heater.
Chris: No. We got to put some open source in it.
Brent: Exactly. We wanted to get this thing connected home assistant.
Brent: It was an opportunity since we were down and dirty with the diesel heater to
Brent: just make a couple of modifications.
Brent: Luckily, we are not the only ones in the world who want to do this.
Brent: So there are many projects, people reverse engineering the protocols for these
Brent: diesel heaters, seeing how they can modify them to try to connect them using
Brent: ESP32s, which is PJ's dear favorite computer.
Brent: And that led to us being inspired by how we can do this and pushing the envelope a,
Brent: tools we had in our toolbox.
Chris: Thankfully we still to this day had
Chris: a few leftover uh node mcu esp32s
Chris: and a couple of different parts and we found a board that
Chris: you can slot the esp32 in and
Chris: then all of the gpios are exposed as
Chris: just a screw-in wire so you can just you don't have to solder everything and
Chris: that sounds great it makes for troubleshooting and um really learning much faster
Chris: because you're just oh i can connect to white here real quick okay i'll connect
Chris: to this gpio and so we had some of that stuff ready to go kind of we were positioned
Chris: for this project really waiting to happen.
Brent: Then the decision was well how do we get this to happen because we've got these
Brent: projects some of them are written in python most of them are using esp home.
Chris: Yep yep uh.
Brent: But they're not all doing what we want to
Brent: and the hardest part is that these chinese diesel heaters they all have different
Brent: control boards they all have different ecus which control all the logic of you
Brent: know the actual burning of the heater and safety protocols and all that there's
Brent: different like permutations of how those two are connected so some have one
Brent: board but the other control etc so so.
Wes: You can't just flash some generic image.
Chris: It kind of needs to be a pretty good match but there are a couple of
Chris: universal truths yes there are power buttons that we
Chris: know we could short and there is this
Chris: ur protocol that they're likely using but maybe
Chris: slightly modified and maybe they're using a different baud rate
Chris: than the standard bar like there's certain things we can know that are common
Chris: and so we knew at the end of the day we could at least short the power buttons
Chris: but we what we really want is engine data fan speed data chamber temperature
Chris: data it can get all of that the thing's constantly aware of all of that and we wanted to extract it.
Wes: So sort of like a two-pronged mission, you want better control from Home Assistant.
Wes: And then you also want to pull as much info as you can.
Brent: So we settled on using a couple of projects to get started after reading way too much.
Brent: One of them is Pablo Vitaso's ESPHome-Cinbasto, which is, you know, a Chinese webasto.
Brent: That had most of the components we wanted, including how to short the on-off
Brent: button if we couldn't possibly get it working with the serial protocol that's
Brent: built into some of these Chinese heaters.
Brent: And that's the dream, right? Use the data protocol to both control the heater
Brent: and get all of the data from the heater, including whether it's on or not and all the safety.
Brent: So that's the dream, but we had to work our way towards that.
Brent: Luckily, there was a bunch of work by Ray Jones who did some deconstructing
Brent: of the protocol, basically hacking it and learning how this UART protocol on
Brent: these Chinese heaters works.
Brent: not all of it is there however including how to turn it on and off from this
Brent: protocol but you can get a bunch of information and some people have gotten
Brent: this protocol to work with,
Brent: ESPHome and these ESP32s so that was a fabulous place for us to start the trouble is,
Brent: Well, we're just still ESP beginners and, you know, it's not just plug and play.
Brent: So Chris, you had a brilliant idea to bring in a little bit of help.
Chris: Yeah, because, you know, again, like you're saying, we don't really know what
Chris: we're doing. So I thought to myself, if we could establish basic communications
Chris: with the thing, then, you know, over USB,
Chris: then we could at least see if the GPIO ports are turning on and off.
Chris: Maybe we get an idea if the voltage is working.
Wes: You've got a debugging loop you can make some progress on.
Chris: Yeah, and so we got it flashed using ESPHome web connected to my laptop over
Chris: USB, which is super simple now.
Chris: As long as you have Chrome and your user is in like the dial-out group,
Chris: I think it is, then you pretty much have everything you need to flash these
Chris: devices just from a Chromium-based web browser.
Chris: So I went to the ESPHome site, and I got the basic ESPHome image flashed on
Chris: this thing and got it booting with some Wi-Fi, basic Wi-Fi credentials and whatnot.
Chris: And once it was running ESPHome, and it was still connected to my laptop,
Chris: I decided to open up OpenCode, which again is just a fantastic app,
Chris: and took advantage of the Hunter Alpha model, which is available right now,
Chris: which is like a 1 million context model.
Chris: And maybe it's DeepSeq 4, and I don't know.
Wes: We don't know. It's a masked model out there for a review. They train on the
Wes: data. They're kind of, you know, workshopping it before the public release.
Chris: And not something I would use for private information, but when you're just
Chris: hacking on an ESP board, perfs.
Wes: Especially stuff you probably would open source or whatever anyway.
Chris: Yeah. And so it immediately, immediately locked into what we were doing.
Chris: And it started communicating and controlling the ESP32 system.
Chris: Instantly and from that we
Chris: were able to just derive all kinds
Chris: of information like we realized that the baud rate wasn't
Chris: what we expected the communications protocol wasn't we expected we discovered
Chris: a voltage issue because there was a bug in the upstream project like it just
Chris: started opening up all of these problems that we could just start working through
Chris: bit by bit and it would it would uh it would rebuild custom esp home and esp
Chris: troubleshooting firmware Like at one point,
Chris: it built a signal analyzer firmware for us,
Chris: reflashed the ESP device with a signal analyzer so we could start monitoring
Chris: like the voltage and the other information, not just the voltage,
Chris: but the data stream from the diesel heater in real time.
Chris: And then it realized, well, we were getting so much data, it was overloading
Chris: the memory on the ESP home. So then it created a more efficient version of a
Chris: loop and it's out there and sampled the data and it started it started giving
Chris: us so much like direction.
Chris: It was really it was really interesting way because you're sitting there in open code.
Chris: It's talking to an LLM that is then sending commands back down to command line
Chris: tools that are working with the ESP.
Chris: And then it's rebuilding firmware, compiling that to C++ and flashing it.
Chris: And then as we went on, because the context window on this thing is so freaking
Chris: huge, it was remembering, oh, this is a major breakthrough.
Chris: I'll update their agents MD or, hey, if we enable this on the command line,
Chris: we also and even though we would forget, it would remember, I also need to make
Chris: sure it's working in the MQTT layer and it would keep catching stuff that we would forget.
Chris: And we used this for hours, 12 hours maybe, and we got to 21% of the context window.
Chris: So it was so useful. It was bonkers because it took the little bit of knowledge
Chris: we had and extended it away further.
Chris: And we got to a point where this thing was originally we had the upstream image
Chris: wasn't fully functional. It was a bit broken. It had the voltages reversed.
Chris: Instead of not sending voltage, it was sending.
Chris: Instead of not, it was, et cetera. It had it backwards. it fixed
Chris: that but additionally the ability to swap between the different images super
Chris: quick and then figure out where the mistake was
Chris: patch the upstream project recompile
Chris: the image and reflash it it's really helpful
Chris: was it was bonkers the progress we started
Chris: making once we got there because we went from just guessing and guessing
Chris: and guessing to actually being able to work
Chris: with the thing and then it would develop like test
Chris: sequences and it would say okay are you ready
Chris: i'm gonna and then it would it would get your multimeter out we get the multimeter
Chris: out and it would run through test sequences and test sequences and then we realized
Chris: we could do it even more efficient because we kept thinking you know we are
Chris: the slow point here we have to like we have to go get the multimeter and we're
Chris: holding it here and then we're telling the machine what the readings are you're.
Wes: Being its hands.
Chris: And so one of the nice breakthroughs we had was we could actually get the machine
Chris: to read its own voltage levels you want to talk about that a little bit i.
Brent: Was it was such a.
Chris: Bonkers realization esp32 pros they know all this already but yes.
Brent: We are learning thank you for your patience with us uh it was late last night
Brent: and i'm holding this volt meter on these esp pins so that we could try to interpret
Brent: you know how much voltage is on the pins and relay that back to the machine
Brent: who's helping us you know fix all the problems and,
Brent: And I was like, Chris, my hand is getting sore. And he's like,
Brent: I'm tired of like having to give it input the whole time because it was really
Brent: slowing down the feedback loop.
Brent: It was doing great when it was rebuilding ESP to get it working.
Brent: But then when we had to provide it voltage values, everything just slowed to a crawl.
Brent: So it turns out, I don't know how you found this, Chris, but thank you.
Brent: It turns out you can just use the ESP to tell you the voltage.
Brent: So you just do a little jumper to a different pin. And then all of a sudden,
Brent: OpenCode had the ability to modify its software and then do the testing by itself
Brent: and cut out the human completely.
Brent: So the feedback loop was very fast and it was able to work through some of the
Brent: bugs extremely quickly.
Wes: I think Graham's going to be real proud of you boys.
Brent: And Chris and I were just looking at each other with these massive grins,
Brent: just thinking, this is fabulous.
Brent: And it's exactly, Wes, what we saw Graham doing last episode when he described
Brent: that he had a bunch of hardware that he was reverse engineering with microcontrollers to get them,
Brent: like, to make that connection between artificial intelligence helping you with actual real hardware.
Brent: And we accidentally ran into building the same type of machine,
Brent: let's call it, through this diesel heater. It was really, really fun.
Chris: And the reason why it was great to get this voltage information back automatically
Chris: is because the way you can tell if the heater has been triggered or if it's
Chris: shutting down is by reading the voltage levels on one of the pins.
Chris: And so once it could read the voltage level itself, it was able to determine
Chris: if what it had tried had worked or not.
Chris: So the loop of like, try this, does it work? Nope. It would just start speeding up. Yeah.
Wes: You guys had a lunch?
Chris: Well, it was tough. It was like 10.30 last night. We're like,
Chris: we got to pause because we got to go to bed because we got a show to do tomorrow.
Brent: The humans need to rest. It was ready to keep going.
Brent: Another thing it helped with is that we were trying to trigger the heater to
Brent: turn on and off just by shorting one of the micro buttons.
Brent: So it's a little micro switch, and that's what you push your thumb on the controller
Brent: to turn this thing on and off. But we wanted to do that programmatically.
Brent: and so the advice in many of these projects was to use a transistor and i had
Brent: never used a transistor before we on the show have used relays uh turns out
Brent: it's just a itty bitty little relay kind of ish west um yeah.
Wes: Just with more uh quantum physics helping you out.
Brent: Exactly yeah it's more sophisticated yeah i could see jeff now just like i know i know you're.
Wes: Catching up you're getting from like the 1910s to you know yeah.
Brent: Well the thing is i would have never 1960s i would have never tried this without
Brent: like a helping hand so one of the helping hands was these projects having done
Brent: it before and providing a little bit of guidance but the other one was working through,
Brent: my mistakes of implementing the wiring because uh the computer can't do the
Brent: wiring so i had to do the wiring unfortunately but i was learning much doing
Brent: it but you got to water it correctly so that.
Chris: Does help wiring it correctly does help.
Brent: So i was like hey computer um help me diagnose if i did the transistor properly.
Brent: I'm just going to do another jumper to another pin and you tell me if it's firing
Brent: properly by reading more voltage.
Brent: So we had the ESP, you know, give some feedback again to make sure the human
Brent: put the transistor in the right place and the little wires in the right place.
Chris: It's useful.
Brent: And it turned out then it could also know if it pushed the physical button for us.
Brent: So it just made tons of progress and brought us,
Brent: Learning about ESPs in ways that I don't think we would have ran into had we
Brent: just been sitting there like we did a couple of months ago, just tinkering on the ESPs.
Chris: It's such a it's such a fun project because it's a little bit it's like real
Chris: baby electrical stuff and it's a little bit building and it's a little bit of this ESP coding stuff.
Chris: And that in itself is such an educational, rewarding experience that even if
Chris: it didn't work with Home Assistant afterwards, and even if I wasn't automating
Chris: this thing now, it's like I would still do this.
Brent: Yeah.
Chris: You know, it's a lot of fun because you take something that was this total proprietary
Chris: black box, you physically wire into it, and then you begin controlling it with an open source stack.
Brent: It felt like a superpower. It really does. Finally regaining control over what
Brent: was otherwise just a black box that you had an on-off button, and that's about it.
Wes: And it stands out to me like any time in like software development or projects
Wes: that you can have like a short feedback loop where you can try stuff and get
Wes: actual feedback on did that work or not really helps. And it sounds like that's
Wes: exactly what you guys got for yourselves.
Chris: And we just learn more about the device itself. You learn more about how the
Chris: device operates, more about its safety features, which I actually was walked
Chris: away fairly impressed with after this.
Chris: And its simplicity and its design, which is just before it was literally a black
Chris: box. It's really something.
Chris: And the superpowers to be able to kind of work through it and iterate.
Chris: age you know we went from something that initially we thought this is too far
Chris: from the upstream projects we're not going to get this to before we left like
Chris: it was working it was firing up the heater now we just need to get the data
Chris: and stuff like that and sort it out but yeah.
Wes: I was gonna ask what is the where did you leave it exactly.
Chris: Yeah we.
Brent: Just before the show like literally.
Chris: Yeah well probably before the show had started yeah we were running late it was worth it yeah uh.
Brent: Or you tell us audience, was it worth it? We had the ESP, well basically open
Brent: code, was turning the heater on and off.
Chris: Yeah.
Brent: So the ESP was able to turn the heater on and off, transistor worked as expected,
Brent: so that was shorting the little physical button to turn the heater on and turn
Brent: it off with the appropriate amount of push button delay, because as humans we're slow,
Brent: so you push the button for one second and it turns it on, you push it for three
Brent: seconds and it turns it off, it was handling all of that.
Brent: Basic button pushing, check, right? That's completed.
Chris: And that works for anything. Your furnace, fan.
Brent: Think of everywhere there's a microswitch, which is everywhere.
Chris: Anywhere there's, yeah, like all those buttons you have to press,
Chris: you now can remote control. Crazy. You know, a water kettle, like it's crazy.
Brent: Everything. It's so bonkers.
Chris: It's such an unlock at the basic level. It's really exciting.
Brent: Especially when you consider the diagnosis part of it.
Brent: If you can also use an ESP to diagnose electronics, then this takes it to a whole other.
Wes: Yeah, your whole test bench is upgraded.
Brent: Mm-hmm. So we got to the- You know.
Chris: What's funny is not how we expected this to go. No. Did not expect it to go this direction.
Brent: No.
Chris: It was just.
Wes: Totally- You started off very analog, right? Just torn apart regular diesel heater.
Chris: With a, yeah, and a VU meter and some wires, and yeah. VU meter.
Chris: It started very analog. Very dirty.
Brent: It's a multimeter, Chris.
Wes: Yeah, how much diesel did you spell?
Chris: It's a VU meter, and you know it. That's what we call it around here,
Chris: and we're sticking with it.
Brent: Soundboard guy. So we're in the state where it can be turned on and off, which is fabulous.
Brent: I mean, if, Chris, you could live with just that, I think you'd be happy.
Chris: Yep.
Brent: But, you know, we've got to push it a little bit.
Chris: We'll get the data.
Brent: We want this UART protocol to be able to be read in Home Assistant as well.
Brent: There seems to be a little bit more reverse engineering work to do there,
Brent: but OpenCode is sitting there waiting for us when we get back from recording
Brent: the show so that we can continue that reverse engineering.
Chris: It's like a 21% context or 24%, something like that. So, yeah,
Chris: we're good to go for a while.
Wes: Jeff had a question.
Chris: Yeah.
Mumble: Uh, well, it turns out it's not answered yet because you're not finished.
Chris: Oh, I think we're, yeah, go ahead.
Mumble: Okay. I was wondering, uh, where, where do you finish?
Mumble: Like what, what, what, what do you think you end up using as a base on the ESP?
Mumble: Are you going to try to integrate this into ESP home or something else?
Mumble: You know, what, what's the connection point between the ESP and home assistant?
Mumble: How's that going to work? What do you think?
Chris: Yeah. My goal is, is once we kind of get it basically operational to do like
Chris: an ESP home takeover, I'm hoping, you know, that I'll be able to,
Chris: it'll show up in my ESP home dashboard and then I'll just do a takeover and
Chris: control it from there and just do updates as I do them.
Chris: And then, of course, it'll show up, all those will just show up as inputs,
Chris: sensor data and controls to Home Assistant, which is really going to be the big deal.
Chris: You know, I'm in bed and it's cold, hit a button and the heater turns on. I'm going to love that.
Chris: And also it'll be interesting to get, once you have this, I'll have usage data.
Chris: So I'll know how long it runs and those things and maybe even what gear it ran
Chris: in for how long, which is important with these things.
Brent: I was just thinking the exact same thing as we drove from the farm to the studio
Brent: past when the show was supposed to have started because we were playing with this.
Brent: All these ideas of what we could be recording, like you said,
Brent: like hours of service. That's not a piece of data you have currently, but that's trivial.
Chris: It has it. It just doesn't share it.
Brent: Yeah.
Chris: Until now.
Brent: It's so trivial to get in, right? Right. So your maintenance cycle,
Brent: you won't have to wait till it breaks next time.
Brent: You'll kind of have an idea of when you should invite Brent over to rebuild it.
Chris: We really need our society to get to a point where everything is like this.
Chris: And you don't have to use it as a consumer, but it's there if you want to,
Chris: because you put a little open source in it and it just gets so much more useful.
Chris: And honestly, I'm going to maintain the thing better if I have this data, too.
Chris: So that was pretty neat. I have no idea what you've been working on this week,
Chris: Wes. Why don't you regale us with your tails?
Wes: Well, yeah, actually, you're to blame with this.
Chris: Oh, God.
Wes: You know, we have a setup behind the scenes so we can kind of track what the
Wes: rest of us are looking at and share links that we were following.
Wes: You know, most, some, anyway, don't make it to the show, but some of them become segments.
Wes: And this one did. Now, I've been using Firefox primarily.
Chris: A while now.
Wes: Yeah, a long time.
Chris: Before it was cool.
Wes: It's always been cool. but i saw you tag that chrome was working on like a sort
Wes: of native mcp server for itself i.
Chris: Think they've shipped it too.
Wes: They have oh really yeah so that's what i got up to okay.
Chris: So a native mpc npc npc no uh an mcp model context protocol in other words a
Chris: way to remotely connect and communicate with chrome.
Wes: Yeah and you know there's already these things like there's selenium and like
Wes: the newer version of web driver bitty stuff and puppeteer so there's lots of
Wes: ways to like connect to and drive browsers but.
Chris: This is a vendor blessed method really.
Wes: Uh yeah and the other part we should kind of
Wes: like differentiate on is what you're trying to do so i've also
Wes: played with some stuff like just this morning brent was looking at agent
Wes: browser protocol deterministic browser automation uh
Wes: this is another agent in the space uh we had previously
Wes: kind of looked at camo fox which is kind of another player and these are more
Wes: projects in like give your agent its own browser often headless like for its
Wes: own automation use where at least right now i mean you could do either of these
Wes: but what i was interested in is like bringing the agent into your existing current browser.
Chris: Because then I guess it has your credentials, it has your user session information.
Wes: Yeah, and I don't need to do maybe everything, but like there might be some
Wes: stuff I want to automate or some page or just even be able to,
Wes: you know, take a look, double check things.
Chris: I mean, I'll tell you, I don't know if this is a use case you would use,
Chris: but I could see a valid use case being you want to automate some job searches or something like that.
Wes: Totally.
Chris: And you're trying to just create a list of possible job searches.
Chris: I could see that as a very valid use case for this that isn't necessarily abuse.
Chris: And it's just something you're personally doing. You're not doing it at scale.
Wes: Well, and like, yeah, exactly. Right. You could talk about, like,
Wes: scraping at scale and all kinds of stuff that have their own issues, but...
Wes: What you were doing in the last segment, it's kind of like letting a lot of
Wes: these LLMs sort of be your hands, right?
Wes: Like now the agent is the interface and you're still doing the same stuff you would do.
Wes: It's just kind of executing the individual steps and you give it a higher level.
Chris: You've delegated.
Wes: And what is like one of the primary interfaces that we use for like almost all of our tasks every day?
Chris: The web browser.
Wes: That's right. And so to me, it's sort of like extending that where now I can
Wes: talk to the web browser and get tasks done that I would do manually myself anyway.
Chris: Okay. Sounds fair.
Wes: So as an experiment, I often place, pick up grocery orders for myself.
Wes: You know, I go out, I take a dog walk, and it's pretty easy if I've placed an
Wes: order, I can just pick that up on the way back home, then bring it out to the car.
Wes: Works well. And not as many fees as delivery.
Wes: But while the vendor website isn't horrible, it's still kind of a pain to do.
Chris: I can imagine.
Wes: I was looking, they have an API. I just hadn't had time with the trip and all
Wes: that to really look into doing that.
Chris: Your grocery store has an API?
Wes: They do, actually. So props there. Yeah, props. That's nice.
Wes: So that did seem feasible.
Wes: You couldn't place the order, but you could at least build a cart,
Wes: which is probably more than good enough, right? That's the hard part.
Wes: So I thought, you know, Brent and I like this Love Crunch granola.
Brent: Yeah, we do.
Wes: So I've already logged into a Chrome browser here, the latest version,
Wes: which is already in the Upstream Nix packages.
Wes: Yeah. And you could already do this. you
Wes: do need like a little sidecar that's in npm that
Wes: you run that kind of connects and translates mcp so you can drive it with any
Wes: standard ai agent that can do mcp and connects to like the chrome remote debugging
Wes: protocol okay what's new in the current version is that's made much more seamless
Wes: now you turn on remote debugging in chrome and then when you start up,
Wes: If you're using OpenCode, say, and you define in your config the MCP server
Wes: you want to run, when it starts, it can automatically request from Chrome permission,
Wes: and it just pops up a box and you hit OK, and then it's connected.
Wes: And really, if you haven't messed with MCP, it's really just a standard protocol
Wes: that is emitting standardized JSON back and forth that can be done over standard I.O. or over HTTP.
Wes: It's just a way to send requests, and agents can use it to talk to a variety of servers.
Chris: And which method is Chrome using? http i guess.
Wes: Uh no in this case it's a standard io it is using http i believe then to do
Wes: the remote debugging so you could probably do it either way interesting but
Wes: in this case it was easy enough to just run it right from npm did.
Chris: You uh task it to do something interesting or.
Wes: Yeah so i've got it building me a cart here so i thought like.
Chris: Oh you actually had to go through and do the shopping.
Wes: Yeah so i have a started cart and i thought maybe i could see if it would add
Wes: me some granola right here live for us oh.
Chris: Yeah get some granola in there.
Wes: Yeah especially.
Chris: In case Brent visits.
Wes: He loves that so I told it to um to search we'll see if it can manage that it's
Wes: supposed to go search for the granola and so do you see chrome.
Chris: Actually oh so you see it you see chrome actually doing it on the.
Wes: Screen it's the real live oh my god.
Chris: That's so crazy to watch it's typing it out right now in the search box,
Chris: That is, of course, no suggestions came back. It did a perfect search, love crunch canola.
Chris: But no, the search didn't return anything, but that's on the...
Wes: Now it's continuing to the search page, though.
Chris: So it's continuing. It realizes it didn't get results, and it's continuing to troubleshoot.
Wes: Yeah, it's able to take snapshots, which give it sort of like text and what's on the page.
Chris: Like actual pictures?
Wes: Well, so that's like one version. And then, yes, it can take a screenshot.
Chris: So it's getting a version that it can process, some sort of text version it can process.
Wes: Yeah, from the Chrome DevTools sort of setup.
Chris: And then if it needs to, it takes a screenshot. Wow.
Wes: And then from that, it can find stuff to click.
Chris: Does that just litter your file system with screenshots? That's the future West Browse.
Wes: Yeah, that's a good question.
Chris: Security breach. Security breach.
Wes: I am using another testing-free model, Healer Alpha, because it's like a multimodal
Wes: model that includes vision. So it's good at processing the screenshot.
Chris: Oh, interesting. Okay. Right, I guess that would be a thing you'd need.
Wes: Yeah, okay. Added successfully, cart now shows three items, and the Lovecrunch
Wes: shows quantity controls with one in cart.
Wes: And then I could ask it, take me back to the cart and show me my total.
Chris: And now it's going to just connect to the browser and go back to the cart, shopping cart.
Chris: That's pretty fun. I mean, you could definitely see that would be very useful
Chris: also for testing, web testing.
Wes: Oh, sure. Yeah. It's kind of like a puppeteer or a playwright on steroids.
Chris: But now that they've built more of this into Chrome, you're going to see a lot
Chris: of tools standardized around that, I would think.
Wes: So I was curious, like, am I limited to Chrome? I think it might be slightly
Wes: more well built out. But there is another option for Firefox.
Chris: Oh, there is.
Wes: Firefox DevTools MCP, MIT license. Now, I don't think right now this one lets
Wes: you connect to a running instance, or at least that wasn't in their docs.
Wes: You might be able to make it work.
Wes: So right now you can point it at your existing profile, but it launches its own Firefox instance.
Chris: Okay. And it's not upstream from Mozilla.
Wes: Correct.
Chris: Uh-huh.
Wes: But the one I did end up trying, and it didn't quite have, like,
Wes: I think right now it can do stuff with different tabs, but it couldn't make
Wes: or close tabs, which the Chrome one can do.
Wes: But something called LittleFox MCP.
Wes: This one's kind of interesting. So it's, you actually just, I just cloned it
Wes: down and built it locally with NPM.
Wes: And then you set up some sort of Firefox native messaging, a little JSON file
Wes: you copy to your Firefox configuration.
Wes: And then you can, it has an extension that you load as a temporary extension
Wes: in the about debugging area of Firefox.
Wes: And then that's an extension running in Firefox that exposes Firefox's debugging
Wes: capabilities as an MCP server directly. And then you can just connect to it.
Wes: And that actually worked great. I think it was maybe not quite yet as fully
Wes: capable as the Chrome version, but it did also, it was able to take pretty clever advantage.
Wes: It has an inject JavaScript feature. So then the LLM can write its own JavaScript
Wes: that gets run in the context of the page, which you can do a lot with.
Chris: Whoa. Yeah, you could. Huh.
Wes: So it isn't quite as like native and upstream quite as the Chrome version,
Wes: but Firefox isn't totally left behind.
Chris: This is going to be huge for testing. And I hope, you know, these options to
Chris: Firefox, at least you got some options. It's not so bad. That little fox is adorable.
Wes: And, you know, even if you don't want to have, like, it works great with LLMs
Wes: driving it, but even if you don't want to, MCP is a totally standard protocol
Wes: that you can call from regular scripts or CLIs as well.
Chris: Well, that's fun. Thanks for digging into that, Wes. I was very curious about that.
Wes: And, yeah, it's really easy. You don't even need any flags anymore.
Wes: You can just get the latest Chrome and then go into their debugging config,
Wes: remote debugging and turn that on.
Chris: All right. I have a question. I want to ask the audience, what is the most underpowered
Chris: hardware that you're using for something right now?
Chris: And it doesn't have to be this exact moment, but something that was way underpowered
Chris: for the job, but you kept on using it for longer than you should have or something like that.
Chris: Boost in, tell us. It shows a very audience supported at the moment,
Chris: and that could be a great excuse to support us with a boost.
Chris: Your most underpowered hardware you used for the job, boost in and let us know
Chris: because I have a sense it's going to be a great conversation.
Chris: Well, you can help the show reach lucky 13 years old by becoming a member or
Chris: sending a boost, linuxunplugged.com slash membership or support the whole network at jupyter.party.
Chris: You get access to an ad-free version of the show, which that may be of interest
Chris: to you, or you get the bootleg version, which is a lot more show,
Chris: more beginning and after.
Chris: The show keeps on going, did you even know? So you get access to either one
Chris: of those if you become a Jupyter Party member or a Linux Unplugged core contributor.
Chris: You can also support each production. If there was something you liked or you
Chris: want to contribute a little additional value, You can boost in.
Chris: Fountain is making it very, very easy these days. And there's a plethora of
Chris: options over at newpodcastapps.com.
Chris: And the direct audience support will help us get to 13 years of the Unplugged program.
Brent: Well, while I was taking apart your diesel heater and then putting it back together
Brent: again and taking it apart again, you were working on a migration.
Chris: Yeah, a bit of an urgent migration, you might say. So just a quick, quick recap.
Chris: I have been using my custom Hypervibe distribution for about seven months,
Chris: and it now expands across three systems. It's a multi-host Hypervibe,
Chris: and it's worked well for me.
Wes: Some sort of, almost like a Zerg base, it sounds like.
Chris: Yeah. And like a Zerg base, it has a tendency to grow and grow.
Chris: And affect. Maybe it's the user. I'm not quite sure.
Chris: But it had drifted over time, and I started incorporating more server-in-server
Chris: stuff because my B-Link was one of my more robust systems, and it had an AMD, a GPU of types.
Chris: And so I just kept doing more stuff, like local LMs and databases and all kinds
Chris: of little services. And it just was getting way, way out of scope.
Chris: And that's fine. You know, I could deal with it. Didn't really,
Chris: Hypervibe kind of drifted from its purpose as a desktop and had become sort
Chris: of this local desktop server conglomerate.
Chris: I was going to leave it like that for longer than I really should,
Chris: but fate had forced my hand.
Wes: Oh.
Chris: Right before, well, okay, about three months ago, I started having file system issues.
Chris: there was a block on my mvme that butterfs determined was bad but yet the disk
Chris: had not marked bad yet so there was maybe a bit of aggressive precaution on
Chris: butterfs's part and the mvme's firmware had not yet decided i'm going to declare this section bad,
Chris: but it doesn't matter if because or butterfs decided it was that it was and
Chris: so the way around it was to mirror the file system so that way i and then it
Chris: would actually mark that sector bad in the mirroring process.
Wes: And then read from the other...
Brent: This is like another disk, physical solid-state disk?
Chris: So I got an MVME in there, and then I put another, which is one terabyte.
Chris: And then on the bottom, you can install a 2.5 SSD.
Chris: And so I put a 2.5 one terabyte that I had laying around, which at this point
Chris: is precious. So I'd actually had plans for other things. But this way it goes.
Chris: Mirrored it, and I got myself through the holidays to basically right before
Chris: our trip to scale in Planet Nix.
Chris: And I was doing some updates to make sure everything was stable before I left.
Chris: And I started getting read-only file system errors again.
Chris: And the only way to clear it is to reboot. And then just, if you aggressively
Chris: use the system, you know, update packages and really use the hell out of the
Chris: thing, it marks the file system read-only. And then you got to reboot again.
Brent: So you have like a time basically ticking down to when you can't use your system anymore.
Chris: A window of max usage.
Brent: Wow.
Chris: So while we were on the trip.
Wes: That's a good stress test, really. You know, if you can make a system robust
Wes: enough for that, then you'll probably work in any situation.
Chris: So while we were on the trip, I did the right thing and I left it alone and
Chris: just logged out of the desktop, didn't run any desktop apps,
Chris: minimal usage. So the server stuff would still work.
Wes: Wait, but didn't we do some upgrades while we were on?
Chris: Yeah, then we went and did some upgrades because I needed some stuff to work.
Chris: And then it flipped into read-only.
Wes: I was going to say, there was at least one Airbnb night where we were just upgrading open class.
Chris: Yeah, and it forced my system into read-only mode. And then I had to reboot
Chris: this thing remotely when I wasn't sure what state it was in.
Brent: Danger zone.
Chris: Oh, so I had to fix this when I got back. So that was one of my priorities is
Chris: to get working on migrating off this thing.
Chris: And the problem was is this is one of these things like I actually wanted to
Chris: do the right way and not like the sarcastic right way, but the real right way.
Chris: And so I wanted to set up a new host.
Chris: Take all these all these server side services I'd set up, migrate them to the new host and.
Chris: And then start with a fresh, sort of divorce the configurations from Hypervibe
Chris: and start with a new configuration that removes all the desktop and the Wayland
Chris: and all of the desktop applications and is fresh.
Brent: It's like open heart surgery performing over there.
Chris: And so that took a little bit to just kind of, you know.
Wes: I'm thinking it's more like, you know, that Voyager episode where B'Elanna Torres
Wes: is infected with an alien parasite.
Chris: Mm-hmm.
Wes: Sounds kind of more like that.
Brent: Yeah, I think you're right.
Chris: It was. It was like that. And then extracting that took, you know.
Wes: They've kind of grown codependent on things. They're sharing some of the same base infrastructure.
Chris: And much like the doctor, I performed a miracle and saved the day.
Chris: And I'm very proud of it. So I did. I actually, I took the time.
Chris: I started, I think, was it Thursday, Brent? I don't remember now. I think it was Thursday.
Chris: I started at 9 a.m. and I finished at 1130 p.m. And I don't even think I stopped
Chris: for lunch or dinner or anything like that.
Chris: Food was brought to me and I just worked that whole window of time,
Chris: created the new separate configuration a different git repo for it got a clean
Chris: good solid base went through it and tidied up the configuration because there'd
Chris: been a lot of duplicate and drift over time made it really tight you.
Wes: Mean your existing one or the new one.
Chris: Well the new one was based it was forked from the okay i wasn't sure.
Wes: Yeah so you like.
Chris: Then i had to go back afterwards and clean that one up too so that.
Wes: Was that your method was do a fork.
Chris: And then remove.
Wes: The other the complimentary hands from each one.
Chris: Basically yes exactly okay that took a while there's a lot of little edge cases
Chris: and small stuff my own my own fault letting it go this long but it was i was
Chris: using the uh the sync set the think sentry mq970 i think it was a leader yeah
Chris: 920 thank you which already.
Wes: We had nicks on and.
Chris: Like a test setup yeah that.
Brent: Uh came from a listener i think right.
Chris: It did ah thank you oh my gosh came in as the kids would say clutch,
Chris: So I got that all working. And then it was really a matter of migrating the data over,
Chris: figuring all that stuff up and then going through and changing paths and fixing
Chris: all that little stuff and trying to stabilize it out and then get the services
Chris: working the way they should again and connecting to the right things.
Chris: um but while i'm
Chris: doing sort of the last phase of the data migration just
Chris: copying like the files and the services
Chris: and just getting all that over the disk on the b-link starts flipping in a read
Chris: only mode on me and keeps interrupting the migration and i'm like come on i'm
Chris: barely i'm like i'm like these are the last 10 of the migration i'm so close
Chris: and it's fighting me the entire time.
Chris: And I'm like doing everything I can. I'm like booting it into minimal mode with
Chris: no graphical environment, just SSH going.
Chris: And I'm trying to do like an SCP to get the last few files off this thing.
Chris: And it made it, the last two hours take so long.
Chris: But when I was done,
Chris: I got it all working on the new, well, the new to me, Lenovo,
Chris: working really great with a good, tight configuration.
Chris: And when I stopped harassing the machine that I was migrating from and stabilized,
Chris: I went back through, cleaned up all the configs, so it's just a Hypervibe-focused desktop again.
Wes: That must have been nice.
Chris: Oh, it is nice.
Wes: You probably dropped so much from your next store.
Chris: It does feel a little bit faster. Now it's dedicated again, and all that stuff's
Chris: on its own isolated, dedicated hardware, which we have KVM set up for so I can
Chris: fire up a few VMs. It's not going
Chris: to be the final server home of all my stuff, but it's a good stopgap.
Chris: And, you know, now if my desktop does fail on me and goes into permanent read-only
Chris: mode, I don't lose all the server-side stuff when I go to nuke and pave and
Chris: then stand it back up again. Like, all of that's been isolated out.
Chris: But the timing of it, like, it couldn't have been crazier because I had that
Chris: trip, and I didn't want to disrupt before I left, and I could tell it was going
Chris: downhill. And then as I'm working on just, you know, it was a it was a fast
Chris: copy, you know, it's a gigabit network.
Chris: So it's not like it's slow, but like even just getting to the point of reading
Chris: the file system was pushing it.
Chris: So that's rough. Yeah.
Wes: So it was time to move.
Chris: Just in time. I couldn't believe how down to the wire that that became.
Brent: How do you feel about data integrity of your clone?
Chris: Good. I'm very happy with the process because it gave me a chance to recover.
Chris: I have been using Restic to back up to an R2 storage bucket.
Chris: And then so it gave me a chance to do some of that.
Chris: And I found a bunch of like legacy config stuff that was from versions of projects
Chris: that start with one name and then changed or upgraded or have a new image on whatever.
Chris: Like it gave me a chance to go through and find all that stuff that had kind of drifted.
Chris: So at the end of it, it was totally worth it. But always I sore.
Chris: You know, because when you sit there at the computer like that hunched over
Chris: for 12 hours, just like fever hacking.
Chris: You end up like with a sore, at least I do. I ended up with like a sore back and all of that.
Wes: It's especially rough because you sort of like get back to where you were before.
Wes: In a better way, ready to build again, but just, you know.
Chris: Yeah. Yeah, there is that aspect to it. It's.
Wes: It must be done, right?
Chris: It must be done. Yeah. And that Lenovo was the perfect machine for what I'm doing.
Chris: It does have that PCI expansion slot. And so I am pondering,
Chris: could I like drop an external GPU if I could get my hands on one?
Chris: and now I still need to replace my Odroid with something else and I'm thinking
Chris: maybe another ThinkCenter.
Brent: All you need is another disk, Chris. That machine is fantastic.
Chris: Yeah I am running a little baby Olama model on it and when it works it really pushes all the cores.
Chris: There's no room. It's really pushing it.
Wes: Although So you just refurb that to Brantley and then you get the new one leader.
Chris: I have to be honest with you it
Chris: really this hardware the ThinkCenter what is it the 9
Chris: it's the M920Q thank you
Chris: and it's got I think the best thing about it it's got
Chris: 32 gigs of RAM and it has two separate disks it has an NVMe for the system and
Chris: a SATA it's kind of like my B-Link did it has a SATA for the VM images and the
Chris: language models and what not and that's on a compressed BcacheFS file system,
Chris: So it's really snappy and great.
Chris: And it will load, but with 32 gigs of RAM and an i5 8500T,
Chris: It really pushes the limits of what this thing can do.
Chris: But I have to say, you would not know sitting right next to it.
Chris: It doesn't make a bunch of noise. It's totally silent still.
Brent: While I was tinkering with all these electronics and soldering various things
Brent: to Chris's diesel heater, it was right there on the table next to me.
Brent: And it was virtually silent. Like you were pushing that thing like crazy and you would never know it.
Brent: And it was like a foot in front of my ear holes. So it, I think, really impressed me.
Chris: Now, for the listeners that are sick of the AI stuff, I put this just in this
Chris: section. I'll mention it really quick.
Chris: One of the things I've been taking advantage of is an ACP.
Chris: and open code so i can control open code remotely
Chris: and so part of the migration when i had to step away i was literally doing
Chris: through telegram and having to execute bits and
Chris: to check like the scripts to make sure all the paths were updated and when
Chris: we were doing stuff i could just keep working and then i came back for
Chris: a bit and it was not so i could step out go take care of something with
Chris: the kids come back sit back down and i never stopped the migration
Chris: process ever like so the like total
Chris: of two hours i was probably away from the screen i was still working on it and
Chris: and being able to do this where i am delegating to
Chris: a machine this and delegating to a machine and then it's just a matter of coming
Chris: back and checking the work and making sure it all finished and it it really
Chris: made it sort of like a con something i could continually do throughout throughout
Chris: the entire day so that was really neat too and i just thought i'd mention that
Chris: because why not let you step away let me step away and keep the process going which was and.
Wes: Maybe means you could you know on a day you knew you'd be busy you might have
Wes: a little more gumption to take on that task because you know like it can kind
Wes: of run while you're off taking care of necessary things.
Chris: Yeah we had brent at the farm you know you got to keep an eye on him kids are
Chris: running around chasing brent usually usually chasing brent yeah it's.
Wes: All the other way around.
Chris: Yeah but it's pretty it was it was pretty neat to at the end of it be like it's
Chris: totally done you know like a lot of times you do these kinds of projects and
Chris: there's a few things that hang out there for a week or two but kind of doing
Chris: that loop of okay check these paths check these files and doing all that it
Chris: was when i was done at the end of the, at the marathon,
Chris: it was totally done. Job finished.
Brent: Oh, Chris, don't you know nothing around here is totally done?
Chris: Yeah, I probably shouldn't say that.
Chris: Well, we should mention that LinuxFest Northwest is just 40 days away. Just 40 days.
Chris: Bellingham Technical College, the beautiful Pacific Northwest that time of year. April 24th to the 26th.
Chris: So soon. So, so soon.
Wes: We need to talk about our live show.
Brent: Oh, yeah. We're doing a talk. Collective talk. It's not a talk. We're talking.
Chris: Is that the plan? Is that what we're doing?
Wes: Mm-hmm. We signed up.
Chris: Yeah. So here's the thing. We got to decide if we want to do it in a room again
Chris: or a booth. And I kind of vote booth, but then we have a booth.
Chris: But, you know what I mean? But the thing is, is like the room thing hasn't been a great vibe.
Brent: The trick with the room is all of a sudden we have to like filter in there and
Brent: stand up our entire infrastructure, which is hard to do before a talk.
Chris: They're not designed for people at computers. They're designed for people standing
Chris: and doing a presentation. So when we're sitting, nobody can see us and we can't see them.
Brent: But what they do have is loudspeakers. So we'd have to figure out.
Chris: Yeah, and screens.
Brent: That's also true.
Chris: But if we got a booth at the TV screen and we brought a speaker we might be
Chris: able to I don't know well you.
Brent: Should ask the audience what.
Chris: Do they want are you.
Brent: Joining us LinuxFest Northwest just north of Seattle.
Chris: And if so what do you want and if you've been to one what have you preferred
Chris: at the booth or in the room.
Brent: We're not doing both.
Chris: No either one although it's one or the other although I also think it'd be really
Chris: awesome if the weather was great to do it outside just saying wow.
Brent: You're getting ambitious.
Chris: Right just hook up use jupes for power I think that'd be pretty great Anyways,
Chris: LinuxFest Northwest, if you want more details, it is LinuxFestNorthwest.org.
Chris: We hope to see you. We'll be there with our bells on.
Brent: Oh wow while we were busy working a bunch of boosts came
Brent: in including a baller boost here from spooky set
Brent: com two boosts came in for a total of 60 663 sets thank you for the readback
Brent: of scale and planet nix last week sounded like a great time for you guys here's
Brent: some value for your time there Thank you.
Chris: We appreciate that. You know, it's a burden, but somebody has to do it.
Chris: No, they're both actually a bit of a burden, I guess, but also we really enjoy it a lot.
Chris: So we appreciate that. Also, Wes, get yourself ready.
Chris: Grab your map because it is time.
Wes: It's a zip code?
Chris: I know. It's been a minute. There you go, buddy. There you go.
Wes: Okay. So we got two seven...
Brent: We've got to add an ESP to that thing.
Wes: 27330. That looks to be Sanford, North Carolina in Lee County.
Chris: Hello, North Carolina. Thank you for boosting in.
Wes: Tell me if I got that right. I feel rusty. It's been a minute.
Brent: Also, I don't think there was any math in this zip code boost.
Wes: It's so nice.
Chris: It does make it easier.
Wes: I love math. Something about show math. It's a whole other type of math.
Chris: It is. It is. Outdoor Geek comes in with 50,000 SATs.
Chris: Thank you for your coverage of scale in Planet Nix. Guys, thank you for recognizing the work there.
Chris: I don't mean to sound weird about it, but it is a ton of ebbing work,
Chris: and you have to schedule your life and travel, and it's hard on the body.
Chris: It's hard on the family. So thank you very much, Outdoor Geek, 50,000 sats.
Chris: And thank you, Spooky, for that as well.
Wes: Turd Ferguson boosts in with 22,222 sats.
Wes: Sending a McDuck-sized value for your coverage of Planet Nix and scale.
Wes: Thanks for going for those of us who can't.
Chris: Thank you, turd. Again, thank you. We appreciate that very, very much.
Wes: Also, it was wonderful to see all of you who did make it. Seeing our own listeners
Wes: at events like that is always our favorite.
Chris: Names and faces. Names and faces. And it changes it for us. It probably changes
Chris: it for them, too, in a weird way, but for us in a better way.
Brent: Well, Morak boosted in 2,385 Zadoshis.
Brent: long time listener first time
Brent: booster love the show wish i could give more but thank you for what you do.
Chris: Hey first time booster thank you thank you welcome aboard appreciate you very
Chris: much gene bean is here with 4444 sats yeah that was two rows of duckos,
Chris: Okay, guys, who was that extra person on the show for LUP657?
Chris: Although apparently I didn't boost last episode enough, I thought about it several
Chris: times. So here's a little bit extra.
Brent: Oh, sweet.
Chris: So we introduced producer Jason in the pre-pre-show, I believe.
Wes: Classic us.
Brent: Otherwise known as the members feed.
Chris: Yeah. And so that was our bad. I think maybe the best way to get familiar would
Chris: be to check out an old brunch with Brent.
Brent: We do have a brunch with Brent. And if you look up Brunch with Brent,
Brent: that's brunch.show, you can look for the dear old Jason Spizak,
Brent: who we did a split episode. There's two episodes there.
Brent: And Jason is a dear friend of the show and a dear friend of mine and also happens
Brent: to be a professional voice actor, if you didn't notice.
Chris: And part of the fun for us, right, is when we're down there,
Chris: we get to see friends that we don't get to see otherwise. And he was in the
Chris: area and was able to stay with us.
Brent: I also might have been talking to him on the phone on the drive to the show
Brent: today and got a tease that he might join us for LinuxFest Northwest.
Wes: Oh, that'd be great.
Chris: That'd be awesome.
Brent: So we might have some live boost sounds for our live show at LinuxFest.
Chris: Yeah, so we, I guess in our minds, we had checked that box and I apologize about that.
Chris: And it's something we try to be better about. But when we're live and there's
Chris: a lot going on, I think it was a little bit easier for us to lose track.
Chris: Thank you, Gene. I'm glad you asked. and it's good to hear from you. Missed you.
Chris: Magnolia Mayhem's here with a row of ducks.
Chris: I may not be sitting on a pile big enough to send a million sats,
Chris: but I hope this helps you recover from the trip.
Chris: A row of ducks to celebrate the first eggs from our new ducks on the farm.
Brent: That's sweet.
Chris: I saw him in the chat room while we were talking about the ESP32 saying,
Chris: I've got to do something like this for a chicken coop.
Chris: I think that'd be really cool. Thank you for the row of ducks.
Chris: Appreciate it. Thank you, everybody who boosted the show.
Chris: We really do appreciate you. 2,000 sats is the cutoff to get it read on air.
Chris: And, of course, thank you to those of you who stream sats just as you listen.
Chris: And collectively, all of you stacked 36,532 SATs stream it. So it's a pretty
Chris: good boost for this week.
Chris: Really, thank you very much. That brings us to a grand total of 178,568 SATs.
Chris: Not too bad. Thank you, everybody who supports the show. We really,
Chris: really do appreciate it. Of course, shout out to our members as well.
Chris: All right, we have a trifecta of picks to leave you with. And the first one,
Chris: I feel bad. I should have mentioned this a while ago.
Chris: I've been using this app a lot.
Chris: And when you need it, you really need it. Do you know what I'm talking about? One of those?
Brent: Well, I have an admission.
Chris: What's that?
Brent: I really needed it about two years ago and installed it on my system.
Brent: And it's still installed. I forgot to tell you guys about it.
Wes: What?
Chris: Two years?
Wes: What else is he hoarding?
Chris: I'm like two months, and I'm feeling bad here.
Wes: You didn't even have the van there, so where are you hiding all this stuff?
Chris: Unbelievable. So Lossless Cut is a simple, super fast tool to trim and cut video without any loss.
Chris: You want to cut a segment out. You want to cut audio out. You have GoPro footage,
Chris: camera footage, a YouTube clip, a movie. whatever FFMPEG can read,
Chris: it can cut without making any re-encode.
Chris: So not only is it super fast, but you lose zero quality. So that's why it's called lossless cut.
Wes: I also think it has the ability for times when you might have like keyframe
Wes: issues where you might not be able to make a clean lossless cut,
Wes: the ability to just re-encode to like interpolate between those parts.
Chris: I'd say it's even a little more powerful than AvidMux, which is also really great in this category.
Chris: For those of you that maybe you want to cut commercials out of TV shows that
Chris: you've recorded with a DVR or you want to remove an audio or video track and
Chris: discard the other either or it'll do that.
Chris: Or you want to add music without having to re-encode the video or you want to
Chris: add subtitles without having to re-encode the video.
Chris: It will do that. It can read chapters. It can change format of an H.264 TV recording
Chris: to TS or to MP4, whatever it is you might need.
Chris: If you recorded something on the wrong orientation and you need to fix the rotation
Chris: of the video, it can do that without re-encoding. I mean, the list goes on and on.
Chris: It's a great application and GPL2 licensed.
Chris: Now, our next pick, this is not a silver bullet for this problem,
Chris: but you'll hear us talk about local LLMs and local AI from time to time.
Chris: And there is an app on the web that lets you test your system to see what models you could likely run.
Chris: And it's called CanIRun.ai.
Chris: CanIRun.ai. And it's a quick WebGPL test to see which models would most likely
Chris: operate on your hardware.
Chris: And it ranks them for you and tells you what kind of tokens you could expect.
Chris: And if you go to the tier list, it tells you, oh, this machine does better than
Chris: my workstation upstairs.
Chris: All of the models are in the F tier on this station.
Wes: Yeah, so it's able to use WebGPU to detect your graphics card.
Wes: And then from that, it just kind of knows what's going on. And then,
Wes: of course, there's a dropdown here so you can specify if you want to override it, which is great.
Chris: Yeah, but the idea is, now this isn't, like I said, this isn't accounting for
Chris: everything because simply they can't do that with WebGPU and WebGL.
Wes: WebGupu.
Chris: Goopu. They can't really get all of the features and functions,
Chris: but they can tell you this model that supports tools that you can run locally,
Chris: you can expect about this token output at this speed.
Chris: So you get a rough idea if it's even worth it or not. And what I like about
Chris: the tier list is it really puts it in perspective.
Chris: You get S, A, B, C, D, and F tiers.
Chris: And for me, I'm all in the F tier.
Wes: Yeah.
Chris: Oh, I don't even really.
Wes: Or you can see, you know, oh, I can only ever even get to see on models I don't even want to run.
Chris: Yeah. Yeah.
Wes: But.
Chris: Good to know.
Wes: Someday it'll change.
Chris: Yeah, maybe. Maybe. Can I run dot a I.
Chris: And on this same line, if you hate web apps and you want something with more
Chris: detail and more insight into your system.
Chris: LLM fit hundreds of models and providers. One command to find what runs on your
Chris: hardware. a terminal TUI that finds the right-sized LM model for your system's RAM, CPU, GPU.
Chris: It detects your hardware, scores each model across quality, speed,
Chris: fit, and context dimensions, and tells you which ones actually run on your machine.
Chris: And has a flake.
Wes: Okay, okay.
Chris: MIT licensed.
Wes: So I can just run this, and then it'll go tell me info?
Chris: Yeah, and it's a really nice TUI as well.
Chris: And you can search, so it has a search field, so if you know which model you're
Chris: looking for and you just want to go right to that, you can put it in there.
Wes: Written in Rust, a little Python in there.
Chris: The other thing that's really fun is it gives you just a handle on how many
Chris: open source LLMs there are.
Chris: I think in my head there's four. Oh, no.
Wes: Have you ever even been to Hugging Face?
Chris: Yeah, Hugging Face does put it in perspective. But seeing it broken down by
Chris: what my machine could possibly run still, there's so many options for various different jobs.
Chris: It's way broader than I really appreciated. So anyways, you know,
Chris: web app, TUI, whichever you want.
Chris: I think the TUI is a little better. LLM fit. Did you get a chance to try it?
Wes: I think I'm building it right now.
Chris: Oh, you have to build the rest stuff, I imagine.
Wes: But I'm happy to.
Chris: Yeah, yeah. So there you go. We'll have the links in the show notes for all
Chris: of that. Big shout out to the lossless cut project.
Chris: They have really been handy because we deal with large, large recordings and
Chris: we don't want to have to re encode them. That would just make them look more like garbage.
Chris: So the lossless cut project has been fantastic.
Chris: Links at Linux unplugged.com slash six, five, eight.
Chris: Whoa, that's really close to the big seven. Oh, that's really close.
Wes: We're not ready.
Chris: We are not ready. Also, just a reminder, we'd like you to boost in with the
Chris: most underpowered hardware you're using for any particular job.
Chris: Could be a web machine, or maybe it's something in the wall.
Chris: Maybe it's something running actually critical workloads. Fake NAS.
Chris: Oh, fake NAS. You know, that kind of thing. I just think that'd be fascinating
Chris: to see what people are getting out of older hardware these days,
Chris: especially with the prices of things. So do let us know.
Chris: We are back into the groove, and I promise we'll try to be, you know,
Chris: we will be on time next week. So make it a Linux Tuesday on a Sunday.
Chris: Join us Sunday, 10 a.m. Pacific, 1 p.m. Eastern, over at jblive.tv.
Chris: And Wes Payne, before they go, we should let them know there is extra data they could get.
Wes: Oh, yeah. Some of it's even magical structured data.
Chris: JSON.
Wes: Yeah, computers love it.
Chris: JSON.
Wes: Uh-huh, chapter information.
Chris: That's right.
Wes: Yeah, the precise time codes for you to jump right to the content that you want.
Wes: or if you want the entire show as text, we have that too.
Chris: Yep. It's available in our feed. You can get it from there or just get a podcasting 2.0 app.
Chris: Don't forget about our Matrix Room, a huge community going 24-7 and that mumble
Chris: room live during the show before and after as well.
Chris: Thank you so much for joining us on this week's episode of Your Unplugged Program
Chris: and we'll see you right back here next Sunday.
Chris: All right. Did you get it working, Wes?
Wes: I did. Like a madman. I probably have NixLD enabled, which would do it for me,
Wes: but I disabled it for my talk.
Wes: And I could have made a custom plate for it, but I decided to just YOLO,
Wes: and I told OpenCode to use PatchElf to fix it, because it's a Rust binary,
Wes: so it really only needed the dynamic linker part updated to use the Nix one
Wes: and not the standard place for it.
Wes: And in about 10 seconds, it was done. It's working? It's working, yeah.
Chris: It looks great, doesn't it?
Wes: Yeah, it really does look great.
Chris: It's a good UI. It's a good little TUI. And what does it say the best candidate
Chris: for your ThinkPad T480 is there?
Wes: That would be the Microsoft Fi tiny mixture of experts instruct.
Wes: But I would get 140 tokens per second.
Chris: All right. Oh, well, there you go.
Wes: I do think actually they have, I don't know if it's all of them,
Wes: but they have some Fi models that are like trained from, I think like fully
Wes: licensed stuff or as well as like a bunch of kind of curated synthetic data.
Chris: That's cool.
Wes: Yeah. So there's some progress on that front, too.
Chris: The ethical model.