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