
The 4 DIMM problem (Friends)
The Changelog: Software Development, Open Source
1hr 50min Nov 28, 2025
Our old friend Lars Wikman returns to the show to discuss Linux distro hopping, Elixir, Nerves, embedded systems, home automation with Home Assistant, karate, and more.
Changelog++ members save 8 minutes on this episode because they made the ads disappear. Join today!
Sponsors:
- Tiger Data – Postgres for Developers, devices, and agents The data platform trusted by hundreds of thousands from IoT to Web3 to AI and more.
- Augment Code – Developer AI that uses deep understanding of your large codebase and how you build software to deliver personalized code suggestions and insights. Augment provides relevant, contextualized code right in your IDE or Slack. It transforms scattered knowledge into code or answers, eliminating time spent searching docs or interrupting teammates.
- Depot – 10x faster builds? Yes please. Build faster. Waste less time. Accelerate Docker image builds, and GitHub Actions workflows. Easily integrate with your existing CI provider and dev workflows to save hours of build time.
- Framer – Design and publish in one place. Get started free at framer.com/design, code
CHANGELOGfor a free month of Pro.
Featuring:
- Lars Wikman – Website, GitHub, X
- Jerod Santo – Website, GitHub, LinkedIn, Mastodon, X
- Adam Stacoviak – Website, GitHub, LinkedIn, Mastodon, X
Show Notes:
Something missing or broken? PRs welcome!
Jerod Santo
We have Lars Wikman with us. We're friendsing with Lars.
Adam Stacoviak
Yes...!
Jerod Santo
He missed the \#define champs game...
Lars Wikman
Oh, yeah. That was a bummer.
Jerod Santo
But so did Carol. So you know, was it really a champs game if Carol Lee PhD isn't there? I mean... She's been wiping the floor with most people. It was a good game, though. It came all the way down to the wire. We had to do a last second tiebreaker, which we weren't ready for... And Matthew outlasted Taylor in the tiebreaker. But you're here now, so here's a word that you must define -- no, just kidding.
Lars Wikman
\[laughs\]
Jerod Santo
But welcome. Welcome anyways.
Lars Wikman
Thank you.
Jerod Santo
You're fresh off of -- what is this, ninjutsu class, or something?
Lars Wikman
Karate.
Jerod Santo
Karate.
Adam Stacoviak
Karate. It's different, right? Jujitsu and karate is way different.
Jerod Santo
They are.
Lars Wikman
Yeah, a fair bit...
Adam Stacoviak
Similar, but different.
Jerod Santo
Right. What's the difference?
Lars Wikman
Yeah, it's all from the vicinity of Japan, I would say.
Jerod Santo
Right.
Adam Stacoviak
No...
Jerod Santo
No. Wrong.
Adam Stacoviak
Jujitsu has roots, I believe, in Japan. I think it originated there, but it's resurgence, to my knowledge - and I could be wrong - is from Greece; the guy who went to Argentina, or South America somewhere, and had this whole new resurgence for jujitsu.
Lars Wikman
Brazilian jujitsu, yes.
Jerod Santo
Brazilian jujitsu. Is that a flavor?
Lars Wikman
Yeah, the Gracie family.
Adam Stacoviak
Now, I don't claim to be an expert. So when I say that, I'm not arguing...
Jerod Santo
Well, let's let Lars tell us the...
Lars Wikman
So jujitsu, to my knowledge, comes entirely from Japan, and most fighting in Japan comes from China, so it's history all the way back... But that's usually called traditional jujitsu at this point, because BJJ, Brazilian jujitsu, has been so popular. And yeah, that's what's dominating the MMA, and all that.
Adam Stacoviak
Precisely. A much better version than I gave. My son was in jujitsu for a little bit. He loved it, I loved it for him... I love it especially for young folks, because -- I think in particular it trended for us because kids don't have a lot of... There's a lot of bullying, confidence, and just knowing how to stand up for a friend even, was a lot of it. It wasn't about fighting, it was about how to deal with an attack on you, and really how to disarm somebody; really how to squash a scenario versus escalate it into something that shouldn't be. And I think for kids, in particular my kid and the kids that were around there, it was super-cool with just giving them some confidence at like six, seven, eight years old. I said six, seven, okay?
Jerod Santo
Oh, my goodness...
Adam Stacoviak
But... Do you get that, Lars? Do you understand that six, seven reference?
Lars Wikman
Oh yeah, yeah. I've got traces of it. I don't --
Jerod Santo
He has little kids. Right, Lars? You've got like toddlers, right?
Lars Wikman
Yeah, but six, seven is a specific internet thing and I don't recall what it is.
Jerod Santo
It's an internet thing, but it also went beyond the internet, to where almost everybody now, at least in the States...
Adam Stacoviak
Here in America, man, you can't say the digits six and then the digit seven afterwards without getting some kids saying "six, seven". And I'm not going to do it, because I'm not a child, but there you go.
Lars Wikman
Have you ever snickered at a 69 reference, or a 420?
Adam Stacoviak
Uh, yeah.
Jerod Santo
Of course.
Adam Stacoviak
I mean, I'm 46, dude. Yeah, of course.
Lars Wikman
It's like, numbers...
Jerod Santo
Those are our generation's "six, seven", basically, you know?
Adam Stacoviak
Yeah. I mean, I can't look at the number 69 without thinking like a child, like an adolescent.
Jerod Santo
Nice. \[laughs\]
Lars Wikman
There's one proper response. There's just one proper response.
Adam Stacoviak
Yeah. Absolutely.
Jerod Santo
And now they've added "six, seven" to the list. Eventually, all numbers will have been covered by memes, and we won't even be able to say any number without some sort of reference.
Adam Stacoviak
That's right. Well, 42 - we have our own nerdy reference there, right? 42.
Jerod Santo
Yeah, 42. That's what we need, is a big lookup table in the sky. Just like -- well, we have one. It's called "Know your meme", or whatever that website is. There's your lookup table.
Adam Stacoviak
Yeah.
Jerod Santo
Tell me why karate for you, Lars, because you're not a child... Adam consigned it to children, but he was not being...
Lars Wikman
Yeah. I've done martial arts a little bit in the past. I've done Muay Thai, which is more sports-oriented, but I mostly did for exercise... But I really enjoyed it. Went to Thailand, trained for a month there... Tons of fun. Then kind of fell out of it for a long time. My wife, after giving birth to two kids, wanted to sort of find a way to consistently work out and get back into shape, and she flourishes in a group training scenario. So she looked around for karate. Went to a club, has really enjoyed it, she's done for like three years now... And something I've come to realize about karate specifically, and some martial arts are like this, some are not, where they build a bit of community around the club. Some sports are like this, some are not. For some things you just show up, do the thing, and then you leave... And sure, you connect with a few people there, but there's part of karate which is cultural, and the intent is to also change how you are as a person a little bit. It's like, we take care of each other, there's a lot of respect involved, we take care of the place we are at... There's a culture that is -- you're just trying to build a very small, specific community, with just some shared values, which is a tricky thing to find sometimes.
Jerod Santo
Yeah.
Lars Wikman
\[00:07:58.25\] And I saw that that was part of it. And I'd heard people talk about karate this way before. Karate has never been top of the list of what I wanted to learn... But I figured I'd give it a shot because I think it would benefit me and my wife, but also because I saw the potential for -- so I have a kid, three and five; two kids, three and five. Those numbers are probably safe still.
Jerod Santo
For now.
Lars Wikman
For now.
Jerod Santo
Yeah.
Adam Stacoviak
They mean something to me, actually. Three, five. I'll leave that out of here for now, but I'll tell you later. They do mean something for me. They're really emotionally triggering for me, in a positive way.
Lars Wikman
Oh, I'm very sorry --
Adam Stacoviak
No, very good. I love three, five.
Lars Wikman
Okay. Yeah, you're welcome. But I see -- like, in a few years, one of them can start; or maybe they can start early. It depends. But essentially, get them into something which is a circumstance that has a little bit of discipline to it. It's a very soft discipline, but it's like, you line up, you bow; there's ritual to it. That's something that a lot of kids -- like, I would have benefited from that as a young one, because it's just not how I typically behave... But I would respect it in that circumstance. And it would have been beneficial to me to get into exercise that early, to get into learning how to control my own body, how to behave, figuring that stuff out in a fairly safe environment early on. And it can be something that we potentially can do as a family. But we'll see how that pans out. No plan survives contact with children.
Adam Stacoviak
Right.
Jerod Santo
I think Mike Tyson said that, right?
Lars Wikman
Sun Tzu, actually.
Jerod Santo
Okay. \[laughs\] The art of children in war.
Adam Stacoviak
Way off.
Jerod Santo
Tyson said something similar. Yeah, that's a fact... You certainly never know what's going to happen, what they're going to like, what they're going to not like.
Adam Stacoviak
I think it's the punch in the face. Everyone says something until you get punched in the face...
Lars Wikman
Yeah. Tyson. "Everyone has a plan until they get punched in the face", or something to that effect.
Adam Stacoviak
Yeah, there you go. We're a good team then. We all had half of it. Yeah. For me, 3-5 was -- just to close the loop. When I was in the military, I was part of a team, I suppose... We had armor, and we had fuel. And fuel was 3, and armor was 5. The classification, in terms of how you classify those resources. And so the unit I was in was a 3-5 unit. And so for me, it was very core to my military experience, and really my entire career there was part of a 3-5 unit and what we did. And so that's why it was cool for me. I like 3-5. I'm down for 3-5, man.
Lars Wikman
Unfortunately, my children will grow out of it and eventually it'll be 6-7, I suppose.
Jerod Santo
Yeah, 6-7 is coming. Well, at least for a certain part of the year. Then it'll be 6-8, right?
Adam Stacoviak
That's right.
Jerod Santo
From inside the karate community, perhaps - I'm not sure if you consider yourself inside at this point, or just visiting, or...
Lars Wikman
Barely, but...
Jerod Santo
Barely.
Lars Wikman
...I'm getting there.
Jerod Santo
How do people react to Karate Kid? Is it beloved? Is it hated because it's not real karate, or is it real karate, and they like it? Because my whole experience as a child with karate was through Daniel LaRusso, and that whole experience. I would have never even had a touchpoint with karate had it not been for that movie. And so to a certain extent, I think it probably brought it to a lot of people who didn't know about it otherwise. But maybe sometimes if you're trying to build a small community of people that care about a certain thing, here comes a bunch of people who wouldn't necessarily care about it, and now they're trying to do it... Do you have any insight into that, or would you just be guessing?
Lars Wikman
I mean, I think karate has probably benefited a bunch from Cobra Kai. I don't know if you've seen the TV series, but that is a phenomenal sort of revisit of Karate Kid.
Jerod Santo
Right.
Adam Stacoviak
Yeah.
Lars Wikman
Where they even pull in all the original actors for reprising their roles.
Jerod Santo
Totally.
Adam Stacoviak
\[00:12:03.24\] They did a great job with that. They closed the loop on so many desires I had for that storyline... They revisited it, they gave backstory, where we don't normally have backstory to the villain... So there was even a lot of theories that were proven correct, or proven false by the traversing of the history, and even fleshing it out and whatnot... So I think that's kind of cool.
Lars Wikman
Yeah. Johnny got his comeuppance...
Jerod Santo
Right.
Lars Wikman
But I think Karate Kid is generally decently appreciated. I think opinions vary a lot, and I think a lot of people really don't like the Will Smith's kids version.
Jerod Santo
Oh, the new one.
Lars Wikman
But the original one - it at least had done some research, because Mr. Miyagi... I mean, one of the forefathers of karate, if not the forefather - it's the one we have a picture of in the dojo. Chojun Miyagi is his name. Or was his name. And that's not an accidental reference...
Jerod Santo
Right.
Lars Wikman
I mean, in Karate Kid 2 they go to Okinawa... The crane kick, and that kind of stuff... They're references.
Jerod Santo
Why would you standing on one foot and then jumping to the other foot cause so much power to come out of your body? That was always what I wanted to know.
Lars Wikman
You can always take that as a metaphor for like "Balance is the key to successfully doing karate", or whatever. But I think people have a soft spot for that movie. I did Muay Thai. Kickboxer is probably the most seen '80s iteration of that. That one is terrible. Jean-Claude Van Damme --
Jerod Santo
Jean-Claude Van Damme, yeah.
Lars Wikman
Yeah. His brother gets killed in the beginning. Then he goes to train with a -- I believe it's an old Chinese man in the jungles of Thailand, who teaches him... I mean, Jean-Claude does karate, actually. And he was a kickboxer, so fair enough. That's what that is, usually. But he's supposedly learning Muay Thai by doing Kung Fu, with a Chinese man in Thailand. It's very strange. And then he fights a very scary, apparently Thai fighter... But I believe that actor is Mongolian, and huge, which is not typical of Thai people. It's a wild, wild sort of mismatch. Muay Thai people tend to like -- is it Ong Bak it's called?
Jerod Santo
I don't remember that one.
Lars Wikman
Yeah... Because that references older Muay Thai history and the Muay Boran, which is a \[unintelligible 00:14:56.16\] version of Muay Thai.
Jerod Santo
Was Kickboxer the one where Jean-Claude does the splits, and his feet are like up on something?
Lars Wikman
Oh, yes. I mean, he does a lot of splits in that one. And he also dances.
Jerod Santo
Oh. Can a guy dance?
Lars Wikman
You should look at the clip and determine for yourself. \[laughter\] He certainly can do a type of dance... I don't know if I appreciate it, but it's... I kind of appreciate it now. I don't know if I did then.
Jerod Santo
Right. He was one of my least favorite action heroes of that time period. I just never -- I just didn't feel like the guy had very much charisma compared to the others... But that was just my --
Lars Wikman
I would say I prefer him to Steven Seagal.
Jerod Santo
Okay, but does he count even? \[laughter\] Okay, if we're counting Steven Seagal, then I can't put Jean-Claude down to the bottom. You're right.
Lars Wikman
And the thing is I come from the same town as Dolph Lundgren.
Jerod Santo
Oh, really?
Lars Wikman
Yes.
Adam Stacoviak
Wow.
Lars Wikman
And he's terrible.
Jerod Santo
Yeah. Tell us \[unintelligible 00:15:53.03\] Well, say more about him living in your town. Is he still around?
Lars Wikman
I don't believe so... I mean, he probably has some touch points there, family there...
Jerod Santo
Is he the most famous person from your town?
Lars Wikman
I don't know. No, probably hockey players from that region...
Jerod Santo
Okay.
Lars Wikman
Yeah. We have some decent hockey players we've exported. NHL players.
Adam Stacoviak
Like Jaromír Jágr?
Lars Wikman
\[00:16:18.27\] No. He's Czech, I believe.
Adam Stacoviak
Oh, he's Czech. Gosh.
Lars Wikman
But the Sandin brothers...
Adam Stacoviak
Mario Lemieux? No, he's Canadian. \[laughter\]
Lars Wikman
Peter Forsberg.
Adam Stacoviak
It's Mario, not Mario.
Jerod Santo
Now let's do Wayne Gretzky and then we'll have named all of the real hockey players that we can think of.
Lars Wikman
Peter Forsberg is one --
Jerod Santo
Oh, Forsberg. Red Wings, right?
Lars Wikman
Yeah. He's been around a few different places.
Jerod Santo
Here's another thing. Let's complain about the kids, for a moment. And not the kids, but just this current age. Why do the athletes switch teams so much anymore? It used to be you could just have an athlete, he was stuck to a team, whether he liked it or not, and he had to just be a Chicago Bull, or he had to be a Detroit Lion... And you could just rely on that guy being there. Like, Barry Sanders was going to be on the hapless Detroit Lions his entire career, whether he liked it or not, and we could just rest in that, you know? And now it's like, they just change constantly. It's hard to even keep up. Alright, old man yells at sports...
Lars Wikman
Yeah, I don't follow any sports these days, but I did follow hockey a little bit in my youth. It was more or less mandatory. And fairly interesting at times.
Jerod Santo
What do you follow? Are you keeping up with Omarchy? Are you keeping up with Arch? Are you keeping up with Nerves? Have you seen the latest Tidewave?
Lars Wikman
I think I promised that we'd talk about my Arch experience. I wouldn't touch Omarchy because I'm a radical idealist, and I don't appreciate DHH's whole deal. But we don't have to get into that, because no one's happy by getting into that. But Arch I used for a hot minute, many, many years ago. So this would be prior to introducing SystemD, probably.
Jerod Santo
Okay.
Lars Wikman
Because I think -- I was dual-booting Windows, and I was like "I want a Linux running." So I installed Arch, because people had spoken really well and highly of it. So I installed Arch, had a good time setting stuff up, things worked, the package manager seemed cool... And I think it felt faster than the Ubuntus I'd been doing. I was like "Yeah, this is promising, it seems straightforward." I didn't use it for a bit, because I ended up staying in Windows, I guess, for a while. And then I switched back to it and was like "Yeah, I still have this. Oh, I should probably run some updates." But I was not aware that the rule and the law of the Arch land is that you have to read all the news about the updates before you apply the updates.
Jerod Santo
Mm-hm.
Lars Wikman
Didn't come up during the install process, let's just say...
Adam Stacoviak
Yeah...
Lars Wikman
So I essentially did whatever Pac-Man upgrade, or whatever; did a full-on system upgrade and nothing worked. Then I found some guides and it's like, okay, I can get now from the prompt to... And if I manually launch it, I can get back into the UI and things. But I could never get GDM, so the GNOME Display Manager to work ever again. And then I left Arch.
Jerod Santo
And then that was your experience.
Lars Wikman
Yeah. But I did read a lot of forum threads where people said I should have read the news. So that was helpful.
Jerod Santo
Right.
Adam Stacoviak
Yeah.
Lars Wikman
I was not aware that that was how that system operated. It was like a read-first of type upgrade cycle.
Jerod Santo
But the wiki is so good, you know? You might as well...
Lars Wikman
The wiki is really good. I solved a lot of problems in other Linux distros by reading the Arch wiki.
Jerod Santo
Where there's overlap?
Lars Wikman
Yeah. I mean, there's tons. Even when I work on embedded systems, there's stuff in the Arch wiki that just explains "Oh, this tool works like this, and these are good commands to use for this and that." It's very comprehensive, so it's very good reference documentation, even if it's not accurate to exactly your system.
Jerod Santo
I tried Arch one time on a server, and I've always been running Debian servers. And all of these people were saying nice things about Arch, and I was like "Well, I'll just set up this new server with Arch." And this was probably back in the same time period, because I don't remember SystemD being there... And of course, I knew SystemD pretty well, and I didn't know what Arch was doing very well... And I started setting it up and I'm like "What benefits am I gaining from this, besides having tried Arch Linux, versus...?" I think on the desktop, perhaps, and I'm sure the further you go in, the more differences you find, but they were so similar enough where it's like I can't think of a single advantage I have. Maybe fresher software, because Debian does stay a little bit stale on its official packages...
Lars Wikman
But you could grab Ubuntu to get a non-stale Debian.
Jerod Santo
Right. And normally, all I need is what's there and it's fine. Maybe back then the MySQL wasn't up to date with what Rails was using... Because this was like Ruby on Rails servers. I remember I couldn't get a system service to set up, and when I rebooted the machine, it just wouldn't come back online... And I'm just like "Ah, I'm just going to wipe this and start with Debian." And that was my only Arch experience. It lasted probably four to six hours, and I just was like "Nope, this is a waste of my time." But I think on the server side, especially back then - it was probably like 2010-ish timeframe, 2012 - there just wasn't much of a difference. I'm sure on the desktop there's probably more dramatic differences.
Lars Wikman
Yeah, I'd say so.
Jerod Santo
Adam, you've been playing around...
Adam Stacoviak
Yeah, that's why my monitor behind me is not on right now, because that's an Arch Linux system... \[laughter\] I also did not realize that you had to dedicate at least a half hour or what could be longer than that - because if you're a shiny objects person, then for me, I am that person, so it might be like a typical 15-minute requirement, 20...
Jerod Santo
It's like a rabbit hole?
Adam Stacoviak
\[00:23:53.25\] Well, it might derail my brain. It might give me ideas that take me down the Arch lane, versus like -- well, similar to what you said, Jerod; like, while I want to use Arch - and I think you should. I think if you're in the world of Linux, you should try out the distros, and see what works for you. I think that's part of the Linux journey, is building systems, learning which distros support the system you want to build, and finding the system that best supports what you're trying to actually accomplish. And I did not know the requirement of Arch, of the hour-ish of weekly maintenance required... The requirement to read the news prior to even applying the updates, and then the bug that can bite you if you don't, which is what bit me... I also have too much memory in the system. I'm using four DIMMs versus two, and...
Lars Wikman
How dare you...?
Adam Stacoviak
Yeah. I mean, why -- I should, I should, but the CPU doesn't have... The AM5 for AMD, that architecture, I guess, has an issue with reading four DIMMs, versus two DIMMs of RAM... Which - I don't understand how you're AMD, and you're beating Intel, and you can't solve the four DIMM problem? That doesn't compute with me. I don't get that at all.
Lars Wikman
It's like, ostensibly, they shipped this mainboard architecture.
Adam Stacoviak
Yeah.
Lars Wikman
Yeah. So one would expect...
Jerod Santo
This is the first time I've heard the four DIMM problem. I mean, is this a thing?
Adam Stacoviak
Yeah. I mean, it doesn't make any sense. Especially at -- okay, so this is a DDR5, 6,000 megatransfer per second problem. So this is a really fast RAM scenario. And the power requirement, from what I understand, the voltage requirement and the architecture of the CPU to control that is the challenge.
Lars Wikman
Oh, right, right.
Adam Stacoviak
Yeah. It's not a four DIMM issue generally, it's because of -- it's the boundary at which the RAM is pushing it. It's just so fast. I mean, it really is so fast.
Lars Wikman
So if you did slower RAM, you'd be fine at four sticks, but...
Adam Stacoviak
I could dial it back... But what's the point? What's the point, right?
Jerod Santo
Yeah.
Adam Stacoviak
Like, get in a Ferrari and drive at Honda Speeds. No, thank you. Okay? That doesn't make any sense to me. So why would I spend the money on that?
Lars Wikman
I mean, never underestimate Honda Speeds, is what I've learned from the internet.
Adam Stacoviak
Okay, sorry about that. Bad reference.
Lars Wikman
It's like, pick any other car brand...
Adam Stacoviak
Honda Civic speeds. Let me be specific on that front then. Honda Civic Speeds.
Jerod Santo
There you go.
Adam Stacoviak
Although some Civics can burn, too.
Lars Wikman
Yeah. I mean, that's probably the modder's favorite car, next to a Miata.
Adam Stacoviak
Okay, the stock Honda Civic speed. Okay, there we go. Three layers of specificity.
Jerod Santo
Just pick a different car, man. Like a Prius, or something. Something that we know...
Adam Stacoviak
Yeah. So the monitor's not on because that's an arch system. I didn't apply updates, I got bit... Now it won't even stay on. The fans boot up and it just goes to crazy, and it crashes. And I know it's a memory issue, it's not an Arch issue... But it's Arch, plus memory, plus time I don't have to fix it and make you all have silicon value there. I will fix it, though, next week. It will be back.
Lars Wikman
We can just have -- you do thumbnails for these, I hope... So you can just have you pointing at the monitor and going "I run Arch, actually..."
Jerod Santo
Right.
Adam Stacoviak
"Arch, by the way..." Clip that.
Jerod Santo
Yeah, there it is.
Lars Wikman
I feel like Arch has kind of played out. If you want to be like a braggy Linux nerd, isn't Nix the thing?
Adam Stacoviak
Gosh... Isn't that even worse, though? Better, but worse?
Lars Wikman
More pretentious. But also, it does something different...
Adam Stacoviak
Yeah, it does something different. So I don't want something different. I just want Linux. I want good, solid, stable Linux, with I would say as close to tip packages that are stable.
Jerod Santo
Why don't you like Ubuntu?
Adam Stacoviak
I do like Ubuntu.
Jerod Santo
Well, then there you go.
Adam Stacoviak
My actual favorite desktop right now - don't punch me - is Fedora 43. I'm loving it, man. Fedora 43 is as close as you can get to macOS. It is so nice. I love it.
Jerod Santo
Is that with Gnome, I assume?
Adam Stacoviak
Uh, yes... I don't know. It's got the cool stuff, man. It's whatever comes with Fedora 43.
Lars Wikman
\[00:27:56.09\] Last I tried the Gnome window manager, I did not enjoy it... But it's been a minute. I run an absolutely bastardized -- it's like, I installed Pop!\_OS originally... So that came with a Gnome variant at the time. And then I was like "But I hear good things about Regolith." And you can just install Regolith, and it will kind of slap on top of your Linux system and modify it in various ways.
Regolith was cool, but it wasn't exactly right for me. I tuned it a bunch, and then I was like "Yeah, there's some stuff about Gnome that I'm annoyed with. Let's try KDE." Like, my system is real weird now, because there's a lot of Gnome, and there's a little bit of Regolith, but I'm mainly using KDE. And at some point, I should just switch to - if it's still a thing - Neon, which is like the KDE project, I believe, maintains an Ubuntu variant that is running KDE.
Jerod Santo
Oh, okay. Interesting. And does KDE still come with a bunch of other desktop apps? Like Conqueror, for instance? Yeah. That was always my experience back when I was trying different stuff. It was like Gnome --
Lars Wikman
I loved Amarok.
Jerod Santo
Yeah, Amarok.
Lars Wikman
I believe Amarok is gone.
Jerod Santo
They all had Ks in them somewhere. And I felt like when I installed or I chose KDE, I wasn't just getting like a windowing system and some Chrome, I was getting like a suite of apps. And some of them I liked, and other ones I was like...
Lars Wikman
But that's true for Gnome as well.
Jerod Santo
Yeah, maybe I just don't realize it with Gnome, because it's the default. At least in the \[unintelligible 00:29:27.27\]
Lars Wikman
Yeah, it's the default for the Linuxes you use, yeah.
Jerod Santo
Yeah, exactly.
Lars Wikman
I mean, Amarok still had the feature that I wish to see in every music app ever, which is, I guess, just Spotify now. But you could hit -- I think you long-pressed or right-clicked the Stop button, and you had the option of queuing a stop to your playlist.
Jerod Santo
Queuing a stop? What do you mean? Like, stop after this song?
Lars Wikman
Yeah, it would essentially be like a song, but... Because if you start a playlist, but it's like "Yeah, I want this song, and then I queue a few songs, and then actually stop after that." But no. No one wants that.
Jerod Santo
So like autoplay -- it like ends in autoplay.
Lars Wikman
It's like, if I want to do that in Spotify now, I'd have to build a playlist, add things to that, start the playlist, and probably disable some smart shuffle that keeps switching on. But it's just like being able to stop after a few things play back.
Jerod Santo
It sounds like such a simple thing.
Lars Wikman
Yeah. But I've only ever seen it in Amarok. And Amarok was an amazing music management thing. But no one wants power user features anymore.
Adam Stacoviak
It feels like the same thing as a timer. Just say "Stop after 20 minutes." But you're saying "Stop after a certain song." Right?
Lars Wikman
Yeah. I mean, it's just like, when you hit this part of the play queue, stop.
Jerod Santo
Can you give me an example use case of this? Like, when are you -- I'm just curious. When are you going to use this?
Lars Wikman
So whenever I start a playlist on -- yeah, let's say Spotify. I hit the song I want to hear from the playlist first. Then I scroll through the playlist and queue up some other bangers I want. I don't just randomly listen, usually.
Adam Stacoviak
Gotta curate that list...
Lars Wikman
If I see that the rest of the list is kind "Meh...", not what I want right now, I'd love to just queue a stop after that. Then I don't have to bother about like turning anything off, or...
Jerod Santo
But then what happens is you get to silence. And don't you go think "Ah, I've gotta go queue some more stuff"? Is that what you want to do, or are you going to leave?
Lars Wikman
But usually that would be the end of the session, as it were.
Jerod Santo
Oh, so you get your sessions timed out using Pomodoro, or what's going on here? \[laughs\]
Lars Wikman
Not Pomodoro-ing my music, no.
Jerod Santo
"I've got three songs and then I'm done coding", yeah.
Lars Wikman
I think it was also a consequence of you were scrolling around your music library, and just navigating your collection, queuing things up that you wanted to hear...
Jerod Santo
Right.
Lars Wikman
...and then it's like "After these, stop." So it doesn't keep playing your entire library because you never knew what ended up in there.
Jerod Santo
\[00:32:07.07\] Gotcha.
Lars Wikman
Or it would just go from A, and keep playing.
Jerod Santo
Yeah, 100%. Or go based on recency, or that kind of stuff. What's amazing to me is how differently we all use these things.
Lars Wikman
Yeah.
Jerod Santo
It's really kind of wild.
Lars Wikman
And how tightly they optimize for the common case, which...
Jerod Santo
Right.
Lars Wikman
...this is something I've always appreciated about KDE. Everything's configurable. It's a curse, of course. It's probably hard to maintain, it's tricky, it requires a particular mindset... But if I want to find a shortcut, you can bet it's there. If I want to customize the padding of some corner of the world - yeah, sure. You're going to find it. And there's just infinity options. I have a tiling window manager set up and it's just -- KWin, I believe the name is. It's just like the default window manager, and I added a bunch of keyboard shortcuts. I believe that's what I have, at least.
Jerod Santo
This is what drives me nuts about Adobe software, which we are stuck with in many ways, is that -- and this is a publicly-traded company, right? These guys are making good money, and have been "the best" for years in their particular Pro Tools suite.
Lars Wikman
Yeah. It's a professional standard, let's say.
Jerod Santo
Yeah, exactly. Exactly. There's all kinds of keyboard shortcuts, and you can configure them to the hilt. However, it's not going to remember them for very long... \[laughs\] It's going to just lose them in some sort of point upgrade, and some sort of like bad memory, or like cache clear... And everything you put in there is gone. Not just your keyboard shortcuts, but your window configurations, and... Everything. Your templates are gone. Whatever you saved, it's just gone. And you're like "Do you know how much money we're paying for this software on the annual?" It's insane that they get away with this. But I don't know where else to go...
Lars Wikman
I hear -- oh, what's the competitor that just turned free because they got bought by Canva? Affinity.
Jerod Santo
Right, Affinity. What do you use at Adobe for?
Adam Stacoviak
Podcasts, video...
Jerod Santo
Video production. Premiere Pro...
Lars Wikman
Oh, do you use Audition?
Jerod Santo
We use Audition, we use Premiere Pro... Those are the two tools that we use the most.
Lars Wikman
Yeah. Because you can get DaVinci Resolve for essentially free, or you can pay like a one-time cost.
Adam Stacoviak
And guess what? DaVinci Resolve runs on Fedora.
Lars Wikman
Linux.
Adam Stacoviak
And Linux. Of course, Linux. Which I'm excited about. That's what I'm trying -- I'm trying to make it the year of the Linux desktop here in the Stacoviak household, because...
Jerod Santo
There at Adam Studio, yeah.
Adam Stacoviak
Yeah. Because you've got Reaper for audio... And I haven't played with these enough yet to have the mileage to really advocate for them yet, but I'm hopeful. One, you could build your own system in the Linux world. You don't have to be stuck with the... I mean, I love Mac hardware, don't get me wrong. It's, bar none, some of the most phenomenal innovations ever. It just sucks that you can't upgrade the system, you don't own the system, it owns you in lots of ways... I mean, even for an older system, they don't maintain current operating system support for it, so you've got an older, really great system that should still have modern support; it doesn't have support. So it just frustrates me. But yeah, DaVinci is supported on Linux, and so that's very hopeful. And DaVinci is really well regarded. I mean, I have lots of friends who swear by it only... Colorists were the first few who migrated. Like, coloring from S-Log, or whatever you might be shooting in, if you're in a Sony camera, or even in like a Canon log format, going from that log format having a full dynamic range of the color... Coloring in DaVinci is really, really proper. And so it started there. Probably about five or six years ago there was a revolution of migration away from the current standard to DaVinci.
Lars Wikman
Premiere is known for crashing, so people were -- even if they were super-comfortable and knew their workflow super-well, it's like, but really, they hate this piece of software deeply.
Jerod Santo
Yeah.
Lars Wikman
\[00:36:19.06\] At like a visceral level. Yeah, I've used DaVinci... Some of the keyboard shortcuts drive me nuts. And some of the workflows absolutely seem bad \*bleep\* to me. But overall, it's very capable. It's very competent. It's just not always wired the same way I am; which is, I suppose, fine. I've used Reaper for podcasts. Reaper is fine. It's more suited to music production, but it works fine for podcasts. Podcasts demand fewer things than music, so...
Adam Stacoviak
What would you use for podcasts then, if you're not thinking of Reaper?
Lars Wikman
I would probably use Reaper, because it's a better option... Or possibly even Resolve, because you can.
Adam Stacoviak
What is the open source one? It's on Mac as well, but it's on Linux...
Lars Wikman
Audacity?
Adam Stacoviak
Audacity, yeah. Thank you.
Lars Wikman
Maybe that has gotten improved. They were supposed to do a bunch of UX work, and stuff... I've found Audacity completely incomprehensible most of the time...
Adam Stacoviak
Same.
Lars Wikman
But that was years ago. And I believe Tantacrul got involved - a YouTuber - in music.
Jerod Santo
Oh, okay. You said that very cool. I think it's a cool person.
Lars Wikman
I believe there's this particular melody I should use, but I'm not a regular viewer of his... So it's like Tantacrul, or something to that effect. I don't know.
Adam Stacoviak
Wow.
Jerod Santo
Not even a regular viewer and you're still getting the melody. He must have a pretty good thing going on.
Lars Wikman
I looked at it way back and there was a lot of controversy as well, because they kind of took over --
Jerod Santo
"Whenever you reference my name, I want you to use this particular connotation" -- or no \[unintelligible 00:37:52.12\]
Lars Wikman
Jerod Santo...!
Jerod Santo
Only say my name, or I'll sue you.
Adam Stacoviak
Just to close the loop too here - I pulled back the release notes for Fedora 43, just to give proper... Because I didn't give it proper -- it is using GNOME... It is Wayland only. So Fedora 43 is Wayland only. Deprecated X11 support... Looks like Gnome 49, if I can recall that correctly. Maybe Gnome 50, if I'm grokking this stuff.
Lars Wikman
I remember Gnome 2.
Jerod Santo
Wow. Showing your age, Lars.
Adam Stacoviak
What I liked about it so far at least is that it feels a lot like if you said "I like the general user experience of a Mac, but I want Linux." It's like that. It's got a lot of similarities... But not the kind of similarities where you're like "Oh, I can tell you're copying, and not doing a good job." It's like, no, you're being inspired by and you're doing a good job. Like, the gestures and the motions are very smooth. And I've just been very impressed with Fedora 43, honestly... And I'm encouraged to try Reaper, potentially, just to see how it flows for me. There's a lot of things that keep me liking Audition and just DaVinci... Because, Jerod, I really hate the fact that we feel that way. Like, while I love having a workflow, it sucks that we're strangled by the beast, let's just say, and we're stuck to a platform, and we're stuck to our workflow... Which is all good things you want to have in a systematized world, but the lack of freedom in that and the ability to change feels like extreme lock-in, that is expensive at worst and just sad at best. It's just not cool to be like that.
Lars Wikman
I hear some people use Blender for video editing as well. Blender is open source.
Jerod Santo
Yeah. But that's like a 3D thing, wasn't it?
Lars Wikman
Yeah. I mean, originally. But it's kind of like -- okay, so if you're doing a full-on 3D movie production application, that's a superset of video production.
Adam Stacoviak
Yeah.
Jerod Santo
Sure.
Lars Wikman
\[00:39:56.29\] And much like a video --
Jerod Santo
It's a superset of a podcast.
Lars Wikman
It's a superset of a podcast.
Jerod Santo
Yeah, exactly. I'm with you. Yeah, every once in a while I start looking around and thinking "What does better look like?" But then - what's her name, from the meme - gets in my head, "Ain't nobody got time for that." She just starts singing her song, and I'm just like "Nah, I've got other stuff to get done", you know?
Lars Wikman
I mean, I produced a conference mostly using open source design tools for all the visual bits...
Jerod Santo
Yeah?
Lars Wikman
And then we had to print things. I did almost everything in Inkscape. I like Inkscape, it's very competent... And then they were like "Yeah, give me that in CMYK color space", and it's like "Nope." And I'm like "Yeah, maybe I can shift it over to Gimp and do it?" No.
Jerod Santo
How did you do it? I paid Adobe for Illustrator, because that's the standard for print shops...
Oh, no... \[laughs\]
Adam Stacoviak
Sheesh...
Jerod Santo
Yeah... See, there they are. The standard, you know?
Lars Wikman
Yeah. It was fine up to that point... As a pro tip, never use a gradient in your logo for a conference.
Jerod Santo
That was the problem, was the gradient. Yeah.
Lars Wikman
Well, it wasn't the only problem, but the gradient was a problem. It was a challenge.
Adam Stacoviak
I feel like there's a lot of things happening at the Linux front on this front. It's going to be a shift, and I think the moment you can actually get creators - and I'd say meaning like graphics, obviously, like you were just suggesting there... But like video and audio - the moment you can get those folks fully over to the Linux world, that's where the tides change. That's where the tides change... Because being able to -- I mean, now, if you're trying to buy RAM this moment, and it's November 25th right now, not a good time to buy RAM, or really any computer parts. They're an astronomical price right now. Some good deals because of --
Lars Wikman
I also hear you can't use four sticks anyways, so...
Adam Stacoviak
Yeah.
Jerod Santo
That's right.
Adam Stacoviak
I mean, you know, the AM5... And I have a friend who works for AMD. I'm going to ask him about that, because that's super-sad... And see if I can get the behind the scenes. Maybe we can even pod about that. We'll see. But a good friend of mine is an engineer for AMD. But I think there's a lot of things happening for Linux that's just really, really good... And I know you kind of said what you said about DHH and Omarchy, but I think even that - I think it's cool that what he was able to do with it is cool, that you can make your own Linux distro. You can't do that with macOS. You have none of that freedom at all. And absolutely none of that freedom with Windows. And the fact that you can is really cool. But you've got to get people to believe in your opinions. Now, a lot of people are liking Arch because of Omarchy...
Lars Wikman
Yeah, I hear good things about the distro as an experience.
Adam Stacoviak
It's got a lot of good taste in it, but it's not for me either. And I also don't want to be -- I feel like that's DHH world, and I don't dislike the guy... I don't know what your feelings are on him. I don't have a really -- I'm like a centrist, I suppose, on DHH. Neither positive or negative. I think he's got a lot of cool opinions in our world in terms of tech and stuff like that, but when it comes to Omarchy - I tried it, just because you literally have to if you're a Linux distro - I wouldn't say hopper, but...
Lars Wikman
It sounds like you might be hopping a little bit...
Jerod Santo
Yeah, it sounds like you might be a hopper, Adam.
Adam Stacoviak
Is that a hopper, though? I mean, a sampler...
Jerod Santo
What's wrong with being a hopper? I mean, you make it sound like a bad thing.
Adam Stacoviak
Is it a bad thing? I don't know. Maybe I am hopping. I would call it sampling, but sure. I'll hop.
Lars Wikman
Hopping is -- it comes in phases, and it seems like you might be in a hopping phase.
Adam Stacoviak
So server - Ubuntu, all the way. All my flows are around Ubuntu. I'm not changing on that front really at all. I'm not tempted to. I know Fedora is flexible enough to be both desktop or server... Same with Ubuntu... But I know Ubuntu very well, and so I'm happy for that to be my server.
On the desktop front, I feel like you kind of have to hop around, especially before you really get to your final resting place, maybe, in the Linux world and the distro world... Because I'm still learning a lot about -- I would say pretty much learning all brand new stuff when it comes to desktop Linux, which I've never done before.
\[00:44:07.28\] And so I started with Omarchy just because, there you go... Then it was Arch itself, which - you can see the remnants behind me... And then Fedora 43, which is really awesome... So I'm happy with that exploration so far. That's been the extent of it. A little Ubuntu desktop, but I didn't think it was -- it didn't feel super-polished comparative to, say, Fedora. But it was nice. I like Fedora 43, I like Wayland, I like what they're doing with Gnome, I like the UI design of it, it feels smooth and buttery... So I'm happy there. But I guess I am a hopper in that regard.
Lars Wikman
So I think you're in a perfectly normal "I am trying the Linux desktop" phase.
Jerod Santo
Yeah.
Lars Wikman
So when I was introduced to Linux and got some help getting started with Linux from a friend - this was in my teens - I ran through it. I started with Slackware. He kind of forcibly had me try OpenBSD and FreeBSD, because he was sort of done with Linux for now... He was playing with Solaris and the BSDs. But then I tried -- let's see. Gentoo, Mandrake, Debian... A few others. And then you had all the KNOPPIX, and the live CDs that you could just boot into RAM... So you could have Linux at school, because you had it on a CD, and you could boot it.
Jerod Santo
Oh, I definitely did that.
Lars Wikman
Yeah. Until they started gluing them shut.
Jerod Santo
\[laughs\]
Lars Wikman
The CD drives.
Jerod Santo
The CD drives were being glued shut?
Lars Wikman
Yeah, that was a thing. Mostly to prevent installing games. They didn't care about Linux, let's be clear.
Jerod Santo
Yeah.
Lars Wikman
They didn't know what that was.
Jerod Santo
You weren't even on the radar. It was all about the gamers.
Lars Wikman
But yeah, I ran through a bunch of distros in the beginning, and then I settled into one for a period of time. Then I've -- when I set up a new work computer for a new company I'm at for Linux, it's just been like Ubuntu, completely stock. I installed the things I'm missing that are critical. And then I live in an editor and a web browser, and don't care very much about the OS. But this workstation that I live at now that I run my own business and can screw around more of my time - it's weird and custom, but at a certain point I just got fed up with poking the desktop and moved on. So it is in whatever state it is, and I could never reproduce this. \[laughs\] It is not reproducible.
Adam Stacoviak
You didn't say the term ricing. Would you consider what you do ricing?
Lars Wikman
Ricing?
Jerod Santo
I've never heard that one.
Adam Stacoviak
Oh... Well, let me educate you guys. I'm barely educating myself, okay?
Jerod Santo
Please do.
Adam Stacoviak
Apparently -- I think this is a phenomenon on Linux in particular. It's when you dial in your desktop environment. It's called ricing.
Jerod Santo
Why?
Adam Stacoviak
I don't know. Let me look it up real quick.
Lars Wikman
I have not heard that.
Adam Stacoviak
Ricing refers to the extensive customization of a system's appearance and functionality. So a lot of people would just rice to show off how it can look and how uniquely different it can look... Not so much its functionality.
Jerod Santo
I need the etymology of this term, though. Like, why are we calling it ricing?
Adam Stacoviak
The term ricing was inherited from car modification culture, where it was originally a derogatory term for race-inspired cosmetic enhancements, aka rice.
Jerod Santo
Oh, race-inspired cosmetic enhancements. So just looking cool.
Adam Stacoviak
This referred to adding cosmetic parts to inexpensive Asian import cars to make them look -- now, I've riced, okay? I've riced at least once one car, okay? Now that I'm reading this... Not a Linux desktop, but I riced a Honda Del Sol. I added a really cool muffler to it. And it sounded cool. Same engine. Still burned oil, too.
Jerod Santo
So ricing is similar to like a Rhino or a Dyno. These are what they call a Republican in name only, or a Democrat in name only, where it's like, you say you're this, but you're not. If you're ricing your car, you're saying you're doing it to make it faster, but you're actually not. You're doing it to make it look nicer, or to make it look fast. So when you're ricing your OS, like Lars has just done over the course of many years... He's got it perfectly --
Lars Wikman
No, no. My OS looks terrible.
Jerod Santo
\[00:48:19.16\] \[laughs\] Okay, I take it back.
Lars Wikman
But it does work.
Adam Stacoviak
Yeah, I crossed the wires. Apparently, it's a cosmetic thing and not so much just dialing it in, which - he's talking about dialing it in for him. It's also cosmetic, and I think it leans more cosmetic. Actually, I think Omarchy is a big, old rice. Like, that's DHH rice right there, you know?
Lars Wikman
And it's also an opinionated configuration.
Jerod Santo
Yeah.
Lars Wikman
My setup, I would say, is highly tuned for certain utility functions. And that's stuff like -- I actually do a bunch of audio and video stuff from Linux, which is generally inadvisable...
Jerod Santo
Why do you do it then? \[laughs\]
Lars Wikman
I know a ton of people that go "Oh, I use my Mac whenever I record a podcast." But I made it work, and to me it's been fairly reliable, but I also paid too much for gear. But I do have a script that resets all my USB controllers, because sometimes they just fail. This also can happen on macOS. Sometimes it's just like "I've got to reboot something", because something is just up.
Jerod Santo
Sure. Dropbox.
Lars Wikman
Yeah, Dropbox...
Adam Stacoviak
Quicktime.
Jerod Santo
Oh, yeah. Adam's had a problem with QuickTime Player, which is a 30-year-old Apple software that you'd think would be stable by now. But no.
Lars Wikman
Yeah, not the way they're treating their OS. Something I miss on Linux for media production is that there is no Rogue Amoeba, if you know the Rogue Amoeba set of audio apps, for example. There's Pipewire, and Jack, and all these things... So the whole infrastructure for making the Rogue Amoeba apps is probably more accessible in Linux, because it's already there. It's already a Node-based system where you can connect things, and yada-yada. And there's UIs for playing around with it, sort of, but nothing to the degree of polish and stability that you find, like these hardcore Mac apps are doing. And it's tricky, because of course, there's not a market for it until there's more people attracted to doing that. It's a catch-22, which is always the case with Linux.
Jerod Santo
That's what brought me to the Mac originally, was the third-party indie small software, such as Quicksilver, such as Transmit, such as Rogue Amoeba. These small software shops that just create the most polished little tools that I loved.
Lars Wikman
It's ridiculously good sometimes.
Jerod Santo
Yeah. And you're like "This is just really good software." Whereas over in Windows, where I previously was, you could find something that does everything, but it was like the wild, wild west of UIs, and the quality was massively varying, and there was shareware, and there was lots of other stuff, like shovelware... And none of that existed.
Lars Wikman
Compared to the Windows experience, I prefer the weirdness of Linux, the type of weird that the Linux app environment is...
Jerod Santo
Yeah.
Lars Wikman
...where it's like, either you find a script, or you might find a UI, and it has all the options, and all the knobs, and all the weird things, and it's kind of hard to understand sometimes. But I prefer that to "Oh, this is a weird Windows UI that is quirky, and downloaded from a weird website." Some of those are awesome, though. Like PuTTY, or whatever. It's like... Legends, but also freaky.
Jerod Santo
Yeah, PuTTY is legendary. And such a weird interface, too. For me, the first time I SSH-ed was through PuTTY. And - I mean, I think figuring out PuTTY's UI was the hardest part of the SSH process there, you know?
Adam Stacoviak
Yeah, like "What is this happening here?" Yeah, it was very challenging.
Jerod Santo
\[00:52:06.15\] But it was cool once you figured it out. I mean, it made sense eventually... I guess all software kind of does, if you just rewire your brain to use it.
Lars Wikman
Yeah, I don't feel like macOS is going in the right direction... Both in terms of encouraging this phenomenal grassroots in the app movement that they have, but also just where they're taking things. They don't care about that. They don't care about the power users. There are parts of Apple that care about the power users. But what I use my Mac for - the Mac I have that I use is an M2 MacBook Air. It's covered in stickers, it goes with me when I travel or when I go to work at other places... It's a phenomenal dumb terminal type of browser machine. It has ridiculous battery life, and everything. It has a Unix underneath it, so I can do terminal things... I'm perfectly happy with that. Eventually, the macOS might eject me. It has in the past, where I essentially abandoned it... But it's just -- it's very good laptops.
I was very hopeful about Framework, but I'm not thrilled about -- well, that gets us back into Omarchy. But yeah, they're making choices that I disagree with, which is a bummer, because on the whole, Framework was doing what I'd like to see from hardware.
Adam Stacoviak
What was their choice? I'm not familiar with the choice.
Lars Wikman
Yeah, so they're funding Omarchy development and also some other controversial developers.
Jerod Santo
So it's not so much technical, but social.
Lars Wikman
No, no, no. It's ideological and political, from my perspective.
**Break**: \[00:53:52.23\]
Jerod Santo
Here's a thought I've had recently, and I think Adam's made me think this thought. I don't think I'm a power user anymore. I just feel like I'm a regular user...
Lars Wikman
You're just a developer style user.
Jerod Santo
Yeah, yeah, I'm dicing.
Lars Wikman
You have developer tools, but it's not exactly a niche. It's a very common user.
Jerod Santo
No, it's not anymore, is it? I just don't do weird stuff that much. Like, I'm just trying to write software. That's the weirdest thing I do, is I like code. But everything else I do is pretty normal computer stuff. And so I don't bump up against the limitations that macOS... I see the headlines, and I definitely see the direction they're heading, and I know about the gatekeeper stuff, and now I'm talking technical gatekeeper, not the social or political gatekeeping... Like, I know that they're definitely moving more and more away from tinkerers and power users, and my ability to call it my own computer... And intellectually, I despise that. That I can have a computer that I can't control and do whatever I want on it. But practically, I just don't care, because I just don't ever --
Lars Wikman
It doesn't really affect you.
Jerod Santo
No, it doesn't. It just doesn't really... And so I don't have the -- I mean, wanderlust is the wrong word to it... But Adam is ricing, or he's hopping. He's... Whatever he's doing. He's sampling, because he wants to do stuff that macOS is holding him back from. Which is mostly like hardware stuff, but it's stuff he wants to do. And I just --
Lars Wikman
Really hard to get four DIMMs into a \[unintelligible 01:00:10.29\]
Adam Stacoviak
Oh, gosh...
Jerod Santo
\[laughs\] Yeah, man, the four DIMM problem is real on the Mac side, for sure.
Lars Wikman
Also, Jerod, I've got to acknowledge... Thank you for wearing a shirt that I produced.
Jerod Santo
Oh, I'm glad you noticed it. I put it on for you. I've got my Elixir T-shirt on... Now, did you make this design in Linux land?
Lars Wikman
So that design is the official Elixir logo, so I did not make it...
Jerod Santo
Okay. But somehow you had to send this to the printer.
Lars Wikman
Yeah. I sent the original that I got from Jose to the printer... Printed with permission, and all that.
Jerod Santo
Cool. Yeah, so you've been doing Elixir stuff... I guess we could hard transition that way via this shirt, which makes it --
Lars Wikman
Hard to swerve. Actually, I can bring us there. Because you're saying you do development and you don't hit weird quirks with macOS, and stuff...
Jerod Santo
Yeah, not really.
Lars Wikman
So I used to mostly do Elixir development, like straight up web dev, and generally did not have problems, because a lot of Elixir development happens on macOS. It's pretty straightforward. But I've increasingly been doing embedded Linux and Elixir development, and that takes me straight out of the mainstream. I compile Linux kernels multiple times a day. Buildroot, the thing I use for building Linux kernels, does not run on macOS. You can run it in Docker, but it's a lot slower.
Jerod Santo
I do not run Docker, for that reason...
Lars Wikman
Yeah. And in this case, it's just like raw compiles and the disk abstractions for Docker slows everything down. Actually, Macs are super-fast at doing all these compiles, if you just put a Linux virtual machine in them. So abstracted, they're very fast.
Jerod Santo
\[01:02:04.12\] So what have you been working on then? You're making some embedded systems here? What have you been working on?
Lars Wikman
Yeah, so there is an embedded Linux framework... It's an IoT framework, but I have to say embedded Linux, so that the embedded microcontroller people don't get mad... Because they'll go "Oh, you call that embedded these days?"
Jerod Santo
Oh... So a pecking order.
Lars Wikman
Yes, I know you're dealing with kilobytes and I'm dealing with gigabytes. It's fine. It's still called embedded by some people.
Jerod Santo
Yeah, you're still embedding that.
Lars Wikman
It's still a single-purpose device, and everything's locked down, and yada-yada. So the Nerves project and the Nerves framework, so nerves-project.org - it's an open source framework, and it's a very opinionated framework for building IoT devices and smart devices. It's ideal for anything that would already run Linux, so smart home hubs, smart thermostats, that kind of thing. Usually, things that have power, and usually, things that need to do a lot of networking, or where it makes sense to do higher level of abstraction development because you have a lot of stuff to connect and build. So it kind of lines up with what Erlang and Elixir consequently was originally for. Erlang was for telecom systems, and telecom switches are single-purpose devices. They're just meant to do a ton of things. They're not like an air quality sensor. They do a lot more. But fundamentally, it's just like, you want a thin layer of OS, and then you have the Beam virtual machine, which is like an OS unto itself. It does a lot of stuff, and you can operate it much like an OS. You can stop and start things, it does a lot of the concurrency, you can introspect what's going on in the system... And you get that on top of a very slim Linux system. So it's just an embedded, very tiny Linux system, and then on top of that, you build your app. In Elixir, or in Erlang, or - I believe you should be able to do it in Gleam as well, though I don't think anyone's really pushed that path... But any Beam language will run on it.
And I started using Nerves when I was getting curious about Elixir. So that was like seven, eight years ago, or something like that. And I poked around and I implemented a little E Ink display on a Raspberry Pi, and... It was a ton of fun, and super-friendly community. And it got me sort of practiced with Elixir in just hobbyist projects. And then I worked Elixir, did web systems, and stuff... But I kept coming back to Nerves off and on, and tracked it, and I started doing the Nerves newsletter to keep people posted about what's happening in Nerves, and stuff.
Eventually, I fell into the Nerves core team, and I started doing a lot more Nerves projects. And I've found -- my first Nerves-oriented client that wanted me to help them get from... They were spinning up a new hardware product, and they wanted to use Nerves, but they wanted some reassurance about how they were going about it, because they were new to Elixir.
Jerod Santo
Sure.
Lars Wikman
And then I picked up other clients that are also Nerves-centric and I've done a lot of talks on Nerves at this point. I've done a lot of library development, I've worked with multiple companies on their Nerves devices. So that's kind of what I do now. And I've started -- so Nerves comes with... There's a sibling project called Nerves Hub, which is over-the-air firmware updates. So it's a service that you can spin up. So you can self-host it, or you can go to nervescloud.com, which is our little venture, completely bootstrapped at this point... We were considering VC backing, but then we looked at the market and realized "No. No, that's not happening right now", because it's not an AI play.
Jerod Santo
\[01:06:16.05\] Right. Nerves AI Hub, and now you're talking.
Lars Wikman
Yeah, yeah. Nervescloud.ai.
Jerod Santo
Exactly.
Lars Wikman
But it's essentially for keeping your fleet up-to-date, checking in on the health of devices, making sure that you can send updates to devices, and recover them if there are issues, that kind of thing. So Nerves comes with a lot of solid opinions about how to set up embedded devices, stuff you don't necessarily think about when you're new. So it's actually a pretty good learning experience for getting into embedded. I come from web dev, so I didn't know embedded.
Jerod Santo
Yeah.
Lars Wikman
And my first impulse for building an embedded system would have been slap Debian on it. But it's kind of a tricky thing to live with, to have Debian -- like, there are definitely products that do this, and they can absolutely work. But how consistent is apt-get update, apt-get upgrade? Are you confident that the system will come back if you reboot after that? How confident? Drive a thousand miles confident?
Jerod Santo
Right...
Lars Wikman
Send someone on a two-week trip to the middle of Africa confident? It's like, embedded devices end up in weird places.
Jerod Santo
Good excuse for a vacation though, right? "I gotta go to..."
Lars Wikman
Yeah. Okay, let's go with \[unintelligible 01:07:40.15\] confident. It's just a big problem if your updates fail.
Jerod Santo
Yeah.
Lars Wikman
So typically, what embedded devices do is like they have an A and B partition. This is a blue/green deploy essentially, where you write to the unused partition, you flip a flag that says "Try to boot that one." It reboots, it comes up, and if it succeeds, it marks that as "Good, we're staying on this." And if it doesn't, it should switch back, automatically.
Jerod Santo
It should switch back. Does it always switch back?
Lars Wikman
So there's a bunch of different mechanisms, and it depends on bootloader support, and if you are making good choices about health checks, and stuff. But the mechanisms are there for making a very reliable switch back and forth.
Jerod Santo
So Nerves provides that, or there's a distro that's non-Debian that provides that, and then Nerves sits on top?
Lars Wikman
So Nerves builds on top of an embedded Linux project called Buildroot.
Jerod Santo
Okay, that's Buildroot. Okay, gotcha.
Lars Wikman
Yeah. It builds your Linux kernel, it builds your root file system, so all the various binaries and things you need for running... So usually, a BusyBox with a bunch of commands like ls, and cat, and all the good stuff. And usually a bootloader. So U-Boot is a very popular one, but if you're running Raspberry Pis, for example, you just use their kind of strange bootloader setup, which goes through the GPU for some reason, video core. It's strange, but it's a Broadcom thing. And right now I'm working with a project which uses something called Mboot, which is different. And I don't love it, but it works.
Jerod Santo
Okay...
Lars Wikman
But it's like, embedded devices are very finicky, and it's very hardware-dependent. So when you pick up Nerves, you should look at the list of supported systems to start with. Once you get deeper into it, you can actually bring up a new board, or something... But we support all the Raspberry Pi boards, all the sort of Linux-level ones; not the Pi Pico, because that's a microcontroller. BeagleBone Black is an old classic, we have a bunch of newer ones, and then there's a bunch of community contributed ones as well. So I have a bunch of various accidental Linux device purchases. Like, this is a Raspberry Pi, but it has a - I'm holding it up to the camera, which is great podcast... But it has a display, and it has a keyboard, and actually a trackball.
Jerod Santo
\[01:10:26.27\] Wow.
Lars Wikman
It's the ClockworkPi uConsole.
Adam Stacoviak
Can you show that more? Can you do some flipping around with it? Show me the back of it, if you don't mind.
Lars Wikman
Oh, yeah. It's weird. It has a sort of thing you can hang it on. I don't know why.
Adam Stacoviak
A little heatsink... Is that a heatsink?
Lars Wikman
This? No, it's just space for the batteries.
Adam Stacoviak
Okay, cool.
Lars Wikman
But it's a neat thing. And then there's like -- Seed Studio who does a nice industrial kiosk, which is also just a Raspberry Pi, but extra hardware on top. It's just a ton of fun stuff. So I have a ridiculous amount of embedded hardware at home right now. Tons of fun, but this also leads to me compiling the Linux kernel very frequently.
Adam Stacoviak
Yeah... Do the ZimaBoard approach that world? I know it competes with Raspberry Pi's to some degree as a single board computer, but does ZimaBoard kind of...?
Lars Wikman
I mean, if it's Intel -- we have a system for generic x86, so you could probably just run that on top of it.
Adam Stacoviak
It's got a cool design to it. It's got a heatsink built into it, it's got power, you can plug drives into it, SATA drives into it, for example... I think it's got a PCIe slot, where you can throw on a GPU or a little bonus thing if you want to throw it on a 10 gigabit network, or something like that... I just wondered if that was supported as part of that world too, or if it's just like Raspberry Pi-type things.
Lars Wikman
This is cute. No, this would probably work. It might be that the -- it might require some driver here and there... It depends on the Linux support, essentially.
Adam Stacoviak
Right.
Lars Wikman
And depending on how new everything is, you might need to pull in a slightly newer or a slightly patched Linux. There's always a bunch of details.
Adam Stacoviak
You're embedding your own though, so can you -- it sounds like you're compiling your own kernel, so couldn't you just not depend on? Just make your own kernel kind of thing?
Lars Wikman
Yeah, essentially what happens if you have a slightly off the golden path setup is that you might have to tweak it. And that is somewhere in between straightforward or terrible, depending on your experience with Linux, and your luck, essentially. There's a fair chance that this, just because it's an x86 board, just works. But it might not work at full speed, for example, if it's like "Oh, this processor is so new", or "This RAM needs extra drivers to run at full speed", or whatever. Or maybe four sticks doesn't work.
Adam Stacoviak
That's right. Yeah, gosh...
Lars Wikman
There's a lot of details to hardware.
Adam Stacoviak
Is central lane the Raspberry Pi then?
Lars Wikman
A Raspberry Pi is the absolutely easiest way to get started. Like, just grab a Pi 4 or 5 and -- you essentially just start up one of our sample projects, or you can grab something like Nerves Livebook, which is a cool project. You've had Jose Valim on the show, he's probably mentioned Livebook. It's like code notebooks. So you can get the Nerves device to start with a code notebook, so you can run a bunch of things and a bunch of examples on the device through your browser, to sort of try things and get started.
\[01:13:54.05\] But yeah, people build very real products with this, but there are entry points for hobbyists. But the focus of the framework is actually the very serious end of things. It's like, we try to be very friendly and welcoming, because a lot of people seem to learn this...
Adam Stacoviak
What's serious to you?
Lars Wikman
So one of my clients recently, when they're talking about deployment, it's more than 100,000 devices.
Adam Stacoviak
Wow. Yeah, that's a lot.
Lars Wikman
It's smart thermostats across homes in the US. So if you screw them up, people would be pretty mad, especially if their thermostat starts misbehaving... Very noticeable.
Adam Stacoviak
Is that Picos then in that case, or is that still a Raspberry Pi of sorts in that deployment? Or is that custom PCBs kind of thing?
Lars Wikman
Entirely custom board.
Adam Stacoviak
Gotcha.
Lars Wikman
Yeah. So they've designed a fully custom board. I don't have one within reach, but they have a few different thermostats.
Adam Stacoviak
Interesting.
Lars Wikman
Smartfront is the company in question.
Adam Stacoviak
So you can do serious business with it, but you can also do side business, which is just fun business.
Lars Wikman
I can do incredibly silly things with it. I have a sensor in my greenhouse right now that runs Nerves, that I integrate with my Home Assistant, so my wife can get notifications when the greenhouse is too warm or too cold. Right now it's always too cold, because it's the winter in Sweden, or starting to become winter in Sweden. But we've set it up for the coming season. I just recently discovered that we have a way to build Home Assistant things with Nerves, and now I'm abusing it.
Jerod Santo
Right. So where is she getting her notifications, and how?
Lars Wikman
On the phone, because she has the Home Assistant app, so her phone is addressable within Home Assistant. And then I can just go "Okay, when the temperature is below this, send a notification to her. If it's above this, send a notification to her."
Jerod Santo
Describe the architecture of Home Assistant in a house.
Lars Wikman
You have one device that runs Home Assistant somewhere. That's kind of your server, in some sense... Minus a Raspberry Pi that only runs Home Assistant. And then in my case, I've slapped in some Power over Ethernet Zigbee controllers, to be able to use Zigbee devices. So that's radio control lights, and stuff.
Jerod Santo
Mm-hm.
Lars Wikman
Ikea's stuff is Zigbee, so I'm living the Swedish dream, I guess.
Jerod Santo
Ikea's coming out with a whole new set of smart stuff.
Lars Wikman
Yeah. But I don't have to buy their hubs. I just connect their devices to my controller.
Adam Stacoviak
Right. Zigbee lets it be compatible, right? It's about Zigbee, not so much the hub itself.
Lars Wikman
Yeah. Usually, you pick Zigbee or Z-Wave, and that's your life.
Adam Stacoviak
Are you Zigbee for life then?
Lars Wikman
I think I'm pretty -- right now, I'm definitely Zigbee. I'd need to make a serious investment to switch.
Jerod Santo
So what's the -- did you do the Zigbee/Z-Wave compare and contrast? Did you shop it hard, or are you just like "Well, Zigbee is..."?
Lars Wikman
Well, Frank Hunleth stared hard at me... So he's the guy who created Nerves, because the company that he worked at, SmartRent - they use Z-Wave. And he was like "You're not using Z-Wave?" I'm like "Well, I've heard good things about Zigbee, and also IKEA, so I can afford lamps... Lots of lights..."
Jerod Santo
\[laughs\] Yes.
Adam Stacoviak
I'm curious why you choose to run that on a Raspberry Pi versus, say, a virtual machine, or something like that, where you can have like maybe a beefy machine.
Lars Wikman
\[01:17:58.24\] I don't really have a server set up at home. I'd like to, but I haven't bothered yet.
Adam Stacoviak
Okay.
Lars Wikman
And also, one of the nice things about setting up Home Assistant OS on a Raspberry Pi is that it takes up sort of the entire Pi, but it can also update. Actually, it is built on Buildroot, and uses an A/B partition type setup for updates.
Jerod Santo
Oh, really?
Lars Wikman
It is very close to a Nerves device, but it runs Python instead. But yeah, it seemed like a reasonable setup for my needs. At some point I might migrate it, but... This is also like -- Home Assistant is new to me.
Adam Stacoviak
Okay.
Lars Wikman
I never bothered getting into it, but I've listened to the Self-hosted podcast for years... Eventually, I'm like "Yeah, okay. It's time. I need somewhere to report this information where my wife can get at it."
Adam Stacoviak
I like that you're using it -- that makes me think more like just having Home Assistant in obviously a home, but I would say a home lab, or some sort of lab environment, where you're experimenting and building things... Having Home Assistant be that conduit that you can -- I know it has a voice assistant built into it... These are all things I want to do eventually, I just haven't gotten there yet; so I'm sure you'll nod on the things you're probably getting tickled with, but you can have an API key to a local LLM, so maybe you run Ollama somewhere in your network, or on the actual device itself, your mileage may vary... You know, this Home Assistant world becomes a centerpiece. And it sounds like you've tapped into the notification ability, because you don't have to run a service or pay an external service to map a notification up to the cloud and back down to your wife, just because your greenhouse's temperature goes up or down as you want to. The Home Assistant world is really, really interesting to me. I haven't had time to tinker with it yet, but I am curious, though.
Lars Wikman
It's going to eat all of your time.
Adam Stacoviak
Oh, gosh...
Lars Wikman
It is such a tinker hole. It is amazing, but also terrifying.
Adam Stacoviak
I want to do stuff with E Ink, too. You got me excited about this. Buildroot, E Ink, Nerves, notifications, Home Assistant... All those things to me is just just like -- just forget the entire thing, whatever else is out there, and just do that. Sleep a little tiny bit, and then do that all the time.
Lars Wikman
Yeah, yeah. I've kind of optimized my life so that I get to tinker with hardware professionally at this point.
Jerod Santo
Sounds like it, yeah.
Lars Wikman
Yeah, it's not a bad scheme. But actually, on the E Ink part, the little E Ink display I did for my first Nerves project - that was way back. But with the conference that we did - it was Goatmire Elixir, so it was here in tiny little \[unintelligible 01:20:50.20\] vaudevalley. I pulled in nearly 200 people, 150 attendees, about 30 speakers, and a bunch of volunteers, and stuff. And we did three days of Elixir. One of the days were dedicated to Nerves... And it was a great time, and something we managed to score a sponsorship for; actually, specifically from Tigris. You're familiar with them. They supported us with some budget for hardware. So we made custom hardware for the conference. Big shout-out to Gus Workman. He's also on the Nerves core team. He wasn't at the time, but... He designed an E Ink display that could also -- with a battery, a few buttons and a tiny little processor, a pretty cheap one that he'd been working with, an all-winner of some sort... And made it run Nerves. And it has a Wi-Fi chip on it. So every attendee got a little E Ink display as part of the conference.
Jerod Santo
That's sick.
Lars Wikman
Yeah, that was kind of wild.
Jerod Santo
\[01:22:05.21\] Could you send them messages? Could you broadcast, and everybody's E Ink display updates at the same time?
Lars Wikman
Yeah. I mean, it would pull down the schedule and show that, and if you futz around for long enough, you'd find a Rickroll... And there were a few things in it. It worked really well. The software and the networking could have needed more work, but Gus already put in a heroic effort to get it out at all. It was real, real, real good. People enjoyed it. And we'll probably -- I hope to make more of these conferences, and if so, we'll probably iterate on the concept, because it was a blast. E Ink displays are so satisfying to people and so interesting to people, and just getting devices into programmers' hands where they can show something in the real world, and interact with button presses and stuff... It's a very, very special feeling for a group of professionals that generally just do intangible web stuff, or backend things. It's just like, suddenly things are happening in the real world, and it's wild.
Adam Stacoviak
Yeah, your display is E Ink. I mean, even in a home you could do a lot of cool stuff that you would normally maybe buy an expensive, or be tempted to buy an expensive iPad for, when you really just want a trusty display and maybe a stable OS to broadcast to, and Wi-Fi accessible etc... You can do it with low-powered E Ink displays, or RPi, or even a Pico maybe... Do Picos tap into stuff like that, or are they limited?
Lars Wikman
A Pico could drive an E Ink display, but programming a Pico is more of a pain in the rear than the larger Pi's. But they can run very well off a battery, so there's a trade-off there.
Adam Stacoviak
How about older RPis? Can you do like RPi 3's, or even older generations? Do you have to be current, like 4 plus?
Lars Wikman
Yeah, I mean, we still support the RPi 1.
Adam Stacoviak
Oh, wow. Okay.
Lars Wikman
But it's a pain in the rear again, because it does not have networking built in. You need a Wi-Fi USB adapter.
Jerod Santo
There you go.
Lars Wikman
Yeah.
Jerod Santo
I have a Raspberry Pi that's not doing anything... Maybe I should dive into this world.
Lars Wikman
Yeah. I mean, spin up Nerves on it, and then think about what you might do with it, and then... My expectation is that you're going to put it back in the drawer, because I don't think you have a plan for what you want to do with any particular hardware...
Jerod Santo
I still have one project that I never did, that I should do. I think the last time I talked about it was when we had a fellow on talking about automating your house with Python, or something like that... Which is very similar to yours - a greenhouse temperature detector, and icebox temperature detector. So if the icebox holds a bunch of frozen meat, breaks - it's down in our storage room, so we don't go down there enough to actually happen upon it, and we might lose all that meat. And so if I can detect anomalies in temperature, although I want too warm, not too cold necessarily.
Too cold is just fine... I just want to know about it before my meat all goes bad. So that would require a temperature sensor, and probably Home Assistant, I suppose, to be able to get the notification. Basically, the exact setup you have, with different code, right?
Lars Wikman
Yeah, pretty much.
Jerod Santo
Just send me a link to your repo. I'll just deploy that sucker.
Adam Stacoviak
What do you do for metrics and observability? Do you get into dashboarding this stuff at all, or Prometheus?
Lars Wikman
\[01:25:55.29\] So the way I keep track of how my device is doing is actually Nerves Cloud, because I know the guy who runs it. It's me and my co-founder. But I don't track like "Oh, what's the CPU of my sensor over like the last three months?", because I don't care. But I have whatever history -- I don't remember what our retention is. It's probably like a couple of weeks. But Nerves Cloud will, by default, track a bunch of health metrics for your devices as they connect and stay connected. But that's about it. But I also don't need more than like "Is it reporting or not?" If it's reporting in with data that looks reasonable, I'm perfectly happy. But if I have a problem with my device, I can go to Nerves Cloud, I can open a console into it and get the IX prompt, and operate it as any Beam system. So I can go "Hey, actually, what processes are running? Hey, why is this not running? Oh, let's check the logs. Let's check the kernel logs. Let's investigate." It's like, I get access both to the Linux system and the higher level Beam system, and I can poke around with that from my OTA platform in a web browser. So that's kind of convenient.
Jerod Santo
What about a dead man's switch?
Lars Wikman
So if --
Jerod Santo
Well, if my device failed --
Lars Wikman
If someone lets go of the device. No, you --
Jerod Santo
Well, I'm thinking about your greenhouse now. Or I'm thinking about my freezer, which is my device is measuring temperature and reporting anomalies, but if the device itself fails, it's no longer reporting. But if there was some sort of dead man's switch that's like "Hey, your device is no longer active", that's a notification that I want.
Lars Wikman
I believe you could set up an automation in Home Assistant that goes "Hey, if you haven't seen this device for this long..." I haven't looked at that, but that's something worth looking at. Because the greenhouse thing does run out of battery frequently, because we don't have power in the greenhouse currently.
Jerod Santo
Exactly.
Lars Wikman
Ideally, these things just run on power. Or maybe I will actually at some point bother with a microcontroller, because those sip power, and can run for a couple of years off of a couple of AA batteries, if you're lucky. It depends kind of what you're setting up, but...
Adam Stacoviak
Yeah, that's interesting.
Lars Wikman
It took me all of like four hours to essentially fully set up sensors with Nerves. It would take me more than four hours with microcontrollers, because I'm not as well versed with them. I think with ESPHome you could do it pretty quick if you know what you're doing. I don't know ESPHome yet, so... But I might get there. But something I really like about working with Nerves is that it lets me take all the know-how I have from like web development, and my Elixir development, and just apply it on top of hardware. So I can still do my web requests, I can talk to the internet, I can do all that stuff. I can set up a web server and then that's my local web UI for that device. But it's doing something that's much more embodied, I guess. It's in the real world, it can help me switch relays... We're probably going to get a watering system that we can integrate with Home Assistant, so that we can actually go "Hey, this moisture sensor says things are getting a bit dry. Let's run the water for a while." Or "We have this level in the tank, we might as well run some water."
Adam Stacoviak
\[01:29:50.03\] That's cool stuff. I mean, that's a garden. So tell me how this does or does not fit into this world. So I run Plex, and I don't have any time to do this, but I have the idea mostly in my brain. I'd like to have a digital display outside of my media room that has a "Now showing", and it's data from Plex. So I don't want to go and pull down the album art. I've already chosen it inside of Plex for my stuff. I want that kind of thing there. I've got some other ideas for it too that are more like a mailing list, or at least a page I can send people to to say "Hey, if you want to come watch a movie at my house, here are all the movies we have available." That way I'm not like "Well, if you could just sit down with me for an hour, let's decide what movie to watch" or whatever, and then we're just looking around my playlist, or whatever... A little bit more user-friendly on that front, but more so the "Now showing." E ink doesn't sound fun for that, because this is more visual, right?
Lars Wikman
Yeah, yeah.
Adam Stacoviak
But how does that -- what could I do in the Nerves world, or in this world? Is that even a fit for this?
Lars Wikman
I mean, if you find a tablet that you would like to set up in your home, that you can run off of a Raspberry Pi essentially, or just any display and just smuggle a Pi behind it... Like, if you have a small TV, a large TV on your wall, it's fairly easy to just shove a Pi behind it. And then it's a matter of starting up a kiosk. And Nerves - we have a bunch of kiosk systems right now... The most up-to-date ones are for the Pi 4 and 5. And with them, you get like a minimal web browser and a minimum compositor, like a Wayland alternative, essentially. It's Weston plus Cog, which is less demanding than like Chromium on top of a full Wayland. And then you just can just tell it "Oh, load this webpage." And whether you want to build that webpage yourself with the Phoenix web framework, that's one option. Or you can vibe code it, I guess. They actually do pretty well on design, typically, those things. And I believe Plex has all the APIs you would need.
Adam Stacoviak
Yeah.
Lars Wikman
But I think the fastest path to success for just like Now Playing is probably Home Assistant. Because I think Plex can probably shove any information you want into Home Assistant.
Adam Stacoviak
That's true, yeah.
Lars Wikman
People will have built all the integrations. And then there's probably just a dashboard you can build up and go "Hey, open this URL to show my dashboard, please."
Adam Stacoviak
Yeah. I'm even thinking about like N8n. Have you played with that at all?
Lars Wikman
N8n, no.
Adam Stacoviak
Yeah. Gosh, this will break your mind... N8n, I believe -- yeah, n8n.io. It's like Zapier, it's like "if this, then that", but it's open source. I've seen some people really do some cool stuff. You can feed things into LLMs, you can go and pull back linear tickets and git commits and fake your standup by shoving all your activity into an LLM and be like "This is what I did yesterday", kind of thing. I just saw a cool dude on YouTube mention it. It's actually his idea, not mine.
Jerod Santo
Do you want to sing his name for us? Can you sing his name?
Adam Stacoviak
I don't know... Let me see if I can sing his name. I'll keep talking while I search this, but... That seemed pretty interesting to do that kind of thing, where you can like n8n something. Like, "Now Plex is playing" or "Now something is happening", and then it's more of a reactive display, versus me having to program it on there. I was just thinking what kind of smarts do I need to do to build out the display that isn't going to be a Mac, it's going to be a Linux? RPi sounds like it should be, but I've never done anything beyond just the RPi sitting there, doing its RPi thing, with no display. Really, the most of it has been a PoE hat, to just avoid the additional power brick, or maybe network, and run Pi-hole. That's about the extent I've ever utilized my RPis. And I've got two Raspberry Pi 4s, one with 4 gigs and one with 8 gigs. So they're both very capable, and I have no use case for them currently.
Lars Wikman
\[01:34:09.06\] Yeah. I mean, you could fairly quickly install a little bit of the Elixir tooling, flash -- well, grab the Nerves kiosk example repo and build \[unintelligible 01:34:22.20\] And the only thing you probably want to edit is which URL does it open. And that's a mighty easy Find and Replace.
Adam Stacoviak
Yeah.
Jerod Santo
This might be a curveball, but I don't think this thing's open source, Adam. I think it's just like source available...
Lars Wikman
It's fair source, sustainable source license something...
Adam Stacoviak
Oh, gosh... Well, they said it was open source. Like I said, I'm not versed in it yet, but I heard good things about it.
Jerod Santo
It's open. The code is available to see.
Lars Wikman
They call it fair code...
Adam Stacoviak
Oh gosh, yes...
Jerod Santo
Yeah. Their license looks somewhat proprietary.
Lars Wikman
It sounds like it's a BSL type deal. It seems free for personal use.
Jerod Santo
Yeah. Certain files are not licensed, other files are like sustainable use license. And then other files, if they contain .ee in their file name, you have to hold a valid N8n and enterprise license. So... Some muddy waters on this one.
Adam Stacoviak
Okay. Muddy the waters on that one. I thought they said it was core open source, like an open core. Like, some of it was and some of it wasn't. To close the loop though, it's Dreams of Code. Dreams of Code on YouTube is the channel.
Jerod Santo
How do you sing that, though?
Adam Stacoviak
You know, I don't sing, Jerod... I just speak very eloquently. Mellifluously, as they may say.
Jerod Santo
They might.
Adam Stacoviak
Dreamsofcode.io, cool stuff there... I've watched their videos. I don't know -- I can't remember the fella's name. Trying to find it... But Dreams of Code is the...
Jerod Santo
This is his idea.
Adam Stacoviak
Yeah, it's his idea. He did this. He's like "Hey, I've gotta do standup. Standup sucks. I always forget what I did." And so he built a thing with N8n, to pull back data from Git from the previous day... So whichever repos may be in the spectrum that he'd give standups on. Pull back some linear details from like linear tracking their engineering practices or whatever... And I think maybe a couple more sources. And then fed that to the LLM, and the LLM messaged him via Slack, personally, what he did yesterday. And I thought that was interesting. It kind of gave me some ideas.
Lars Wikman
I'm very glad that I currently only work with clients who don't have the time to have standups with me... I work in weird corners of their efforts, so it's like - yeah, it's usually me and one or two other people that chat when we need anything.
Adam Stacoviak
Yeah... No need for standups. Awareness, but not standups. Gosh... And even like a standing standup every day is -- especially in like a company, I would say really of any size, is almost like a waste of time, that could totally be not a meeting... Now, if you're doing it for the personal reasons, for the interpersonal relationships, it's a different story. But I think even then, your mileage may vary...
Lars Wikman
It can be done well, especially in physical office situations. It's like -- yeah, it can be kind of neat to just all be face to face and share what you're working on so people can resolve things. But yeah, I'm glad to not be pulled into that, because my schedule is scattershot as it is. It's like spread out all over the place. I do a lot of different things and I kind of like it that way... And spending any time on coordinating would eat through it quickly.
Adam Stacoviak
\[01:37:53.00\] Maybe as a close, could you map out in like, let's say a minute or a minute and a half, someone who's uninitiated, they've listened, they've been curious, maybe they're like me and they've got an RPi sitting around with no use... What's a good first next step? What are some good resources? Can you just rattle those off? Give somebody a map to satiate that curiosity.
Lars Wikman
Yeah, so the best place to go would be nervesproject.org, or search for Nerves Project... And you can click Learn, and then you can go to installation or Getting Started. You'll end up needing to do the installation, even if you go to Getting Started, so maybe start there. And then you can run through that. That has good getting started instructions.
And depending on kind of what you want to do - if you just want to noodle around, I would aim for Nerves Livebook, which is like an interactive code notebook experience, where you can get something that does something onto your device pretty quick. But it's not for any specific purpose, it's mostly for noodling around and getting a little bit situated. If you want to build a specific project, I would follow the guide for setting up a Nerves project. And that usually means doing Elixir development. So then you kind of hit a fork in the road... Do you know Elixir? If you know Elixir, it's just an Elixir project. Figure out the Nerves parts, have fun. If you don't know Elixir, you should probably also look into Elixir a little bit. So Elixir-lang.org is pretty good for that. Also, I have a YouTube channel with a few videos. You can look at my YouTube videos. I don't think they're the probably best introduction to Elixir, but they're alright. It depends on sort of how you like to learn as well. I'm born and raised on text tutorials. I don't put too many pictures in my tutorials, or I get annoyed. But people are different, and want different things.
Also, you can join -- the Elixir Discord is pretty good to join, and we have a Nerves channel that's pretty active, and we're happy to have new people come in, ask questions. You can also ask your questions on the Elixir forum, if you want sort of the more async cycle. And it's also very helpful to other people, because it's searchable.
But yeah, dive in, try it. It's not dangerous. It doesn't bite. And depending on sort of where you're coming from, it might feel straightforward, or it might feel slightly challenging. But it has taught me embedded Linux development over time, because Nerves contains a lot of accumulated embedded wisdom that's encoded in opinions. And you might swear at it at certain points, and then you're like "Yeah, okay. I know why they did this. This makes sense", as you earn your wisdom.
Adam Stacoviak
At what point will they have to compile their own Linux kernel? Only if they go to your level where they're helping clients deploy updated devices across a thousand hardware devices kind of thing? Is that the scenario where you have to compile your own kernel?
Lars Wikman
No, the moment they want FFmpeg, probably...
Jerod Santo
Haah...!
Lars Wikman
No, you don't have to compile the kernel. You probably end up compiling a kernel at that point. But you don't actually have to touch the kernel to install FFmpeg. But you do have to touch the sort of underpinnings. Or when you need some particular supporting library for some particular specific thing you're doing... So we pack in a lot of the default Raspberry Pi tooling... So for example, if you want to work with a Raspberry Pi camera, the tools are already there, and there's a superb OpenCV bindings library for Elixir called Evision. If you install that one, that one just pulls in OpenCV without you needing to touch the Nerves system. But not everything is that nice.
\[01:42:10.09\] So you can find places where it's like "Oh yeah, we don't have this built in." Why don't we have FFmpeg built in? Well, FFmpeg is huge, comparatively. So a Nerves default image, I believe, is about 30 megs. Maybe 40 at this point, but it's in that range. So it's not a big install. Like, the entire image for the Nerves device is 30 to 40 megs. And that's very good for when you're building devices, and especially when you need to ship updates to devices. It makes the updates faster, safer, all that good stuff. So it's a good thing to keep things lean...
The Raspberry Pi images actually have some fat that we could definitely trim if we were optimizing... But we're actually optimizing those a little bit more for our adoption, so that the things you want to try are more likely to work. But it's a balancing act. So I would say it's a beginner-friendly ecosystem, but it's focused on production-grade things. So production-grade wins over ease of use in the end, in the trade-offs.
Adam Stacoviak
I like the idea of going to a world like this where you can play, and have the freedom to play, but if you were like "Well, I'm kind of serious about this", well, you're already in a place where you could easily just get serious about what you're playing with, and either just migrate your mindset, or just change what you're doing and now you're actually working on something serious, versus like just this play world. Those are cool, but when you want to graduate to the next thing, you're kind of already in the professional mindset of being able to deploy serious stuff.
Lars Wikman
Yeah. And the development loop of embedded devices can be pretty annoying... It's just like, you build some more code, you ship it over to the Pi, you run it there... Or you develop on the Pi, but how do you do your -- do you do proper source control when you're doing that? It's like, the workflow is kind of weird, but for Nerves, you develop on your host machine, like your laptop or regular computer, and then you ship updates over. And when you're iterating on something where you need to cycle really fast, you might actually just be pasting code over the REPL, because you can do that in Elixir... But when you need to build something and then ship it over, it's just like mix upload, and then it goes and it ships over SSH, and the device reboots and comes back with the new code.
Adam Stacoviak
So that's probably like a minute loop, maybe 45-second loop, from end to end...
Lars Wikman
Yeah, it depends on your image size, it depends on your boot times...
Adam Stacoviak
It's not too bad.
Lars Wikman
...but it's a pretty quick loop for embedded. But what I've found most compelling about this whole setup -- I've set up Raspberry Pi's with Raspberry Pi OS, and then I followed this tutorial to install this thing, and I set up the camera using this tutorial, and then I set up OpenCV and some ML thing with this tutorial... And it's like "Oh, I have it all working." Okay, let's make a copy of this image, because I could never ever get to this state again without retracing all those steps, because it's not reproducible in that way. It's an entire desktop OS. And the next time you would install it, it would be different. But if you build a Nerves project, you have locked dependencies. So it's like, it's this version of Nerves, this particular system that you're using for the Raspberry Pi... So you're always getting the same Linux kernel, yada, yada, yada. It's all deterministic.
\[01:45:54.07\] And next time you pick up your Nerves project, the only thing that can break sort of your build for that is either if there's something weird about the build tooling that has happened in between, like "Oh, your macOS has a hard time building your Erlang version", or something... But that's very rare, but it can happen. But if you can build it, you have your old working thing, and you can just ship it.
I talked to one of the Nerves core team members and he's like "Yeah, I just realized I haven't updated this thing in a while. It's like on an eight-year-old version of Nerves and Elixir."
Adam Stacoviak
Gosh...
Lars Wikman
"It's still running fine, it's doing everything it's supposed to be doing... I should probably update it, but I don't have to."
Adam Stacoviak
That's cool. Stability.
Lars Wikman
Yeah. And it would probably still build. He might have to jump through some hoops to get the older build to work... It would be fine on Linux, I expect.
Adam Stacoviak
You've got a podcast about this, you said, you've got a newsletter, you've got your own blog... We'll have all those things in the show notes, of course... But rattle off a couple of URLs and we'll call this show done.
Lars Wikman
Yeah. So for podcast listeners, Beam Radio, so beamrad.io. That is where we talk about the Beam, Elixir, Erlang, Gleam, the new hotness in the Beam ecosystem... Then there's underjord.io, which is my website and blog. I actually plan to write something about this whole Home Assistant setup I've been doing, and just sort of run through a basic tutorial of what I've done, so that people can reproduce it... Because I think it'll be interesting to a subset of people out there. And there's a YouTube channel, you can find it from my website. And otherwise, nervesproject.org, and if you want to do over-the-air updates for very serious usage, or for hobbyist usage - it's free for hobbyist usage, and you can try it for free if you're a commercial user. But nervescloud.com is what we're trying to make happen, I suppose. It is active. People are using it. We have production customers... So - happy to talk over-the-air updates. And actually, that extends to wider than just Nerves. We are looking to support more. So if you want to update Android devices, or Yocto devices, there's so much out there. It's a funny world. Embedded is incredibly fractured. There are no standards. It's like the Linux desktop popping, but weirder.
Adam Stacoviak
All things embedded. Love it.
Jerod Santo
Always great to catch up...
Adam Stacoviak
Yeah. Stay cool...
Jerod Santo
It's been a long time.
Adam Stacoviak
...because you can't help it... And stay even cooler as a person.
Jerod Santo
There you go. Alright. Bye, friends. Bye, Lars.
Adam Stacoviak
Bye, friends.
Lars Wikman
Bye now.
