[go: up one dir, main page]

Changelog & Friends – Episode #119

The 4 DIMM problem

featuring Lars Wikman

All Episodes

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.

Featuring

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.

Depot10x 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 CHANGELOG for a free month of Pro.

Notes & Links

📝 Edit Notes

Chapters

1 00:00 Let's talk! 00:37
2 00:37 Sponsor: Tiger Data 01:38
3 02:15 Karate & Friends 04:04
4 06:19 Why Karate 03:54
5 10:12 35 00:55
6 11:07 Karate Kid 05:35
7 16:42 Switching teams 00:55
8 17:38 Sponsor: Augment Code 01:38
9 19:16 Not Arch btw 04:16
10 23:32 Arch kills SV 01:27
11 24:59 The 4 DIMM problem 02:25
12 27:23 Fedora 43 01:23
13 28:46 KDE things 00:46
14 29:33 Queueing a stop 03:33
15 33:06 Adobe alternatives 05:21
16 38:27 Mac-like Linux 01:11
17 39:38 Blender 01:36
18 41:14 Linux on the rise 01:52
19 43:06 Distro "hopping" 03:36
20 46:42 Ricing 03:00
21 49:41 Indie Mac software 04:26
22 54:07 Sponsor: Depot 02:43
23 56:50 Sponsor: Framer 01:51
24 58:41 Not a power user 01:38
25 1:00:19 Jerod wears a shirt 00:39
26 1:00:58 Lars on Nerves 10:16
27 1:11:13 ZimaBoard 03:57
28 1:15:10 Greenhouse sensor 00:57
29 1:16:07 Home Assistant 01:41
30 1:17:48 Why Raspberry Pi 02:08
31 1:19:56 Tinker time 04:08
32 1:24:04 Older Pis 00:24
33 1:24:28 Jerod's Pi use case 01:21
34 1:25:48 Observability 04:02
35 1:29:50 Adam's Plex idea 02:47
36 1:32:37 n8n 02:01
37 1:34:38 Muddy license waters 01:55
38 1:36:33 Stand-ups 01:20
39 1:37:52 Getting started 05:33
40 1:43:26 Freedom to play 03:28
41 1:46:54 Lars URLs 01:48
42 1:48:42 Bye, friends 00:16
43 1:48:57 Next week on the pod 01:27

Transcript

📝 Edit Transcript

Changelog

Play the audio to listen along while you enjoy the transcript. 🎧

We have Lars Wikman with us. We’re friendsing with Lars.

He missed the #define champs game…

Oh, yeah. That was a bummer.

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.

[laughs]

But welcome. Welcome anyways.

Thank you.

You’re fresh off of – what is this, ninjutsu class, or something?

Karate.

Karate.

Karate. It’s different, right? Jujitsu and karate is way different.

They are.

Yeah, a fair bit…

Similar, but different.

Right. What’s the difference?

Yeah, it’s all from the vicinity of Japan, I would say.

Right.

No. Wrong.

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.

Brazilian jujitsu, yes.

Brazilian jujitsu. Is that a flavor?

Yeah, the Gracie family.

Now, I don’t claim to be an expert. So when I say that, I’m not arguing…

Well, let’s let Lars tell us the…

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.

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?

Oh, my goodness…

But… Do you get that, Lars? Do you understand that six, seven reference?

Oh yeah, yeah. I’ve got traces of it. I don’t –

He has little kids. Right, Lars? You’ve got like toddlers, right?

Yeah, but six, seven is a specific internet thing and I don’t recall what it is.

It’s an internet thing, but it also went beyond the internet, to where almost everybody now, at least in the States…

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.

Have you ever snickered at a 69 reference, or a 420?

Uh, yeah.

Of course.

I mean, I’m 46, dude. Yeah, of course.

It’s like, numbers…

Those are our generation’s “six, seven”, basically, you know?

Yeah. I mean, I can’t look at the number 69 without thinking like a child, like an adolescent.

Nice. [laughs]

There’s one proper response. There’s just one proper response.

Yeah. Absolutely.

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.

That’s right. Well, 42 - we have our own nerdy reference there, right? 42.

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.

Tell me why karate for you, Lars, because you’re not a child… Adam consigned it to children, but he was not being…

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.

[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.

For now.

For now.

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.

Oh, I’m very sorry –

No, very good. I love three, five.

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.

I think Mike Tyson said that, right?

Sun Tzu, actually.

Okay. [laughs] The art of children in war.

Way off.

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.

I think it’s the punch in the face. Everyone says something until you get punched in the face…

Yeah. Tyson. “Everyone has a plan until they get punched in the face”, or something to that effect.

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.

Unfortunately, my children will grow out of it and eventually it’ll be 6-7, I suppose.

Yeah, 6-7 is coming. Well, at least for a certain part of the year. Then it’ll be 6-8, right?

That’s right.

From inside the karate community, perhaps - I’m not sure if you consider yourself inside at this point, or just visiting, or…

Barely, but…

Barely.

…I’m getting there.

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?

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.

Right.

Where they even pull in all the original actors for reprising their roles.

Totally.

[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.

Yeah. Johnny got his comeuppance…

Right.

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.

Oh, the new one.

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…

Right.

I mean, in Karate Kid 2 they go to Okinawa… The crane kick, and that kind of stuff… They’re references.

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.

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 –

Jean-Claude Van Damme, yeah.

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?

I don’t remember that one.

Yeah… Because that references older Muay Thai history and the Muay Boran, which is a [unintelligible 00:14:56.16] version of Muay Thai.

Was Kickboxer the one where Jean-Claude does the splits, and his feet are like up on something?

Oh, yes. I mean, he does a lot of splits in that one. And he also dances.

Oh. Can a guy dance?

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.

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 –

I would say I prefer him to Steven Seagal.

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.

And the thing is I come from the same town as Dolph Lundgren.

Oh, really?

And he’s terrible.

Yeah. Tell us [unintelligible 00:15:53.03] Well, say more about him living in your town. Is he still around?

I don’t believe so… I mean, he probably has some touch points there, family there…

Is he the most famous person from your town?

I don’t know. No, probably hockey players from that region…

Yeah. We have some decent hockey players we’ve exported. NHL players.

Like Jaromír Jágr?

[00:16:18.27] No. He’s Czech, I believe.

Oh, he’s Czech. Gosh.

But the Sandin brothers…

Mario Lemieux? No, he’s Canadian. [laughter]

Peter Forsberg.

It’s Mario, not Mario.

Now let’s do Wayne Gretzky and then we’ll have named all of the real hockey players that we can think of.

Peter Forsberg is one –

Oh, Forsberg. Red Wings, right?

Yeah. He’s been around a few different places.

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…

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.

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?

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.

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.

Mm-hm.

Didn’t come up during the install process, let’s just say…

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.

And then that was your experience.

Yeah. But I did read a lot of forum threads where people said I should have read the news. So that was helpful.

Right.

I was not aware that that was how that system operated. It was like a read-first of type upgrade cycle.

But the wiki is so good, you know? You might as well…

The wiki is really good. I solved a lot of problems in other Linux distros by reading the Arch wiki.

Where there’s overlap?

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.

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…

But you could grab Ubuntu to get a non-stale Debian.

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.

Yeah, I’d say so.

Adam, you’ve been playing around…

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…

It’s like a rabbit hole?

[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…

How dare you…?

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.

It’s like, ostensibly, they shipped this mainboard architecture.

Yeah. So one would expect…

This is the first time I’ve heard the four DIMM problem. I mean, is this a thing?

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.

Oh, right, right.

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.

So if you did slower RAM, you’d be fine at four sticks, but…

I could dial it back… But what’s the point? What’s the point, right?

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?

I mean, never underestimate Honda Speeds, is what I’ve learned from the internet.

Okay, sorry about that. Bad reference.

It’s like, pick any other car brand…

Honda Civic speeds. Let me be specific on that front then. Honda Civic Speeds.

There you go.

Although some Civics can burn, too.

Yeah. I mean, that’s probably the modder’s favorite car, next to a Miata.

Okay, the stock Honda Civic speed. Okay, there we go. Three layers of specificity.

Just pick a different car, man. Like a Prius, or something. Something that we know…

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.

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…”

Right.

“Arch, by the way…” Clip that.

Yeah, there it is.

I feel like Arch has kind of played out. If you want to be like a braggy Linux nerd, isn’t Nix the thing?

Gosh… Isn’t that even worse, though? Better, but worse?

More pretentious. But also, it does something different…

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.

Why don’t you like Ubuntu?

I do like Ubuntu.

Well, then there you go.

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.

Is that with Gnome, I assume?

Uh, yes… I don’t know. It’s got the cool stuff, man. It’s whatever comes with Fedora 43.

[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.

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 –

I loved Amarok.

Yeah, Amarok.

I believe Amarok is gone.

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…

But that’s true for Gnome as well.

Yeah, maybe I just don’t realize it with Gnome, because it’s the default. At least in the [unintelligible 00:29:27.27]

Yeah, it’s the default for the Linuxes you use, yeah.

Yeah, exactly.

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.

Queuing a stop? What do you mean? Like, stop after this song?

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.

So like autoplay – it like ends in autoplay.

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.

It sounds like such a simple thing.

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.

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?

Yeah. I mean, it’s just like, when you hit this part of the play queue, stop.

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?

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.

Gotta curate that list…

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…

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?

But usually that would be the end of the session, as it were.

Oh, so you get your sessions timed out using Pomodoro, or what’s going on here? [laughs]

Not Pomodoro-ing my music, no.

“I’ve got three songs and then I’m done coding”, yeah.

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…

Right.

…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.

Or it would just go from A, and keep playing.

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.

It’s really kind of wild.

And how tightly they optimize for the common case, which…

Right.

…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.

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.

Yeah. It’s a professional standard, let’s say.

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…

I hear – oh, what’s the competitor that just turned free because they got bought by Canva? Affinity.

Right, Affinity. What do you use at Adobe for?

Podcasts, video…

Video production. Premiere Pro…

Oh, do you use Audition?

We use Audition, we use Premiere Pro… Those are the two tools that we use the most.

Yeah. Because you can get DaVinci Resolve for essentially free, or you can pay like a one-time cost.

And guess what? DaVinci Resolve runs on Fedora.

Linux.

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…

There at Adam Studio, yeah.

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.

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.

[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…

What would you use for podcasts then, if you’re not thinking of Reaper?

I would probably use Reaper, because it’s a better option… Or possibly even Resolve, because you can.

What is the open source one? It’s on Mac as well, but it’s on Linux…

Audacity?

Audacity, yeah. Thank you.

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…

But that was years ago. And I believe Tantacrul got involved - a YouTuber - in music.

Oh, okay. You said that very cool. I think it’s a cool person.

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.

Not even a regular viewer and you’re still getting the melody. He must have a pretty good thing going on.

I looked at it way back and there was a lot of controversy as well, because they kind of took over –

“Whenever you reference my name, I want you to use this particular connotation” – or no [unintelligible 00:37:52.12]

Jerod Santo…!

Only say my name, or I’ll sue you.

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.

I remember Gnome 2.

Wow. Showing your age, Lars.

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.

I hear some people use Blender for video editing as well. Blender is open source.

Yeah. But that’s like a 3D thing, wasn’t it?

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.

[00:39:56.29] And much like a video –

It’s a superset of a podcast.

It’s a superset of a podcast.

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?

I mean, I produced a conference mostly using open source design tools for all the visual bits…

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.

How did you do it? I paid Adobe for Illustrator, because that’s the standard for print shops…

Oh, no… [laughs]

Sheesh…

Yeah… See, there they are. The standard, you know?

Yeah. It was fine up to that point… As a pro tip, never use a gradient in your logo for a conference.

That was the problem, was the gradient. Yeah.

Well, it wasn’t the only problem, but the gradient was a problem. It was a challenge.

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 –

I also hear you can’t use four sticks anyways, so…

That’s right.

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…

Yeah, I hear good things about the distro as an experience.

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…

It sounds like you might be hopping a little bit…

Yeah, it sounds like you might be a hopper, Adam.

Is that a hopper, though? I mean, a sampler…

What’s wrong with being a hopper? I mean, you make it sound like a bad thing.

Is it a bad thing? I don’t know. Maybe I am hopping. I would call it sampling, but sure. I’ll hop.

Hopping is – it comes in phases, and it seems like you might be in a hopping phase.

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.

So I think you’re in a perfectly normal “I am trying the Linux desktop” phase.

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.

Oh, I definitely did that.

Yeah. Until they started gluing them shut.

[laughs]

The CD drives.

The CD drives were being glued shut?

Yeah, that was a thing. Mostly to prevent installing games. They didn’t care about Linux, let’s be clear.

They didn’t know what that was.

You weren’t even on the radar. It was all about the gamers.

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.

You didn’t say the term ricing. Would you consider what you do ricing?

Ricing?

I’ve never heard that one.

Oh… Well, let me educate you guys. I’m barely educating myself, okay?

Please do.

Apparently – I think this is a phenomenon on Linux in particular. It’s when you dial in your desktop environment. It’s called ricing.

I don’t know. Let me look it up real quick.

I have not heard that.

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.

I need the etymology of this term, though. Like, why are we calling it ricing?

The term ricing was inherited from car modification culture, where it was originally a derogatory term for race-inspired cosmetic enhancements, aka rice.

Oh, race-inspired cosmetic enhancements. So just looking cool.

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.

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 –

No, no. My OS looks terrible.

[00:48:19.16] [laughs] Okay, I take it back.

But it does work.

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?

And it’s also an opinionated configuration.

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…

Why do you do it then? [laughs]

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.

Sure. Dropbox.

Yeah, Dropbox…

Quicktime.

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.

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.

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.

It’s ridiculously good sometimes.

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.

Compared to the Windows experience, I prefer the weirdness of Linux, the type of weird that the Linux app environment is…

…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.

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?

Yeah, like “What is this happening here?” Yeah, it was very challenging.

[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.

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.

What was their choice? I’m not familiar with the choice.

Yeah, so they’re funding Omarchy development and also some other controversial developers.

So it’s not so much technical, but social.

No, no, no. It’s ideological and political, from my perspective.

Break: [00:53:52.23]

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…

You’re just a developer style user.

Yeah, yeah, I’m dicing.

You have developer tools, but it’s not exactly a niche. It’s a very common user.

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 –

It doesn’t really affect you.

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 –

Really hard to get four DIMMs into a [unintelligible 01:00:10.29]

Oh, gosh…

[laughs] Yeah, man, the four DIMM problem is real on the Mac side, for sure.

Also, Jerod, I’ve got to acknowledge… Thank you for wearing a shirt that I produced.

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?

So that design is the official Elixir logo, so I did not make it…

Okay. But somehow you had to send this to the printer.

Yeah. I sent the original that I got from Jose to the printer… Printed with permission, and all that.

Cool. Yeah, so you’ve been doing Elixir stuff… I guess we could hard transition that way via this shirt, which makes it –

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…

Yeah, not really.

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.

I do not run Docker, for that reason…

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.

[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?

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?”

Oh… So a pecking order.

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.

Yeah, you’re still embedding that.

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.

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.

[01:06:16.05] Right. Nerves AI Hub, and now you’re talking.

Yeah, yeah. Nervescloud.ai.

Exactly.

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.

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?

Right…

Send someone on a two-week trip to the middle of Africa confident? It’s like, embedded devices end up in weird places.

Good excuse for a vacation though, right? “I gotta go to…”

Yeah. Okay, let’s go with [unintelligible 01:07:40.15] confident. It’s just a big problem if your updates fail.

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.

It should switch back. Does it always switch back?

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.

So Nerves provides that, or there’s a distro that’s non-Debian that provides that, and then Nerves sits on top?

So Nerves builds on top of an embedded Linux project called Buildroot.

Okay, that’s Buildroot. Okay, gotcha.

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.

Okay…

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.

It’s the ClockworkPi uConsole.

Can you show that more? Can you do some flipping around with it? Show me the back of it, if you don’t mind.

Oh, yeah. It’s weird. It has a sort of thing you can hang it on. I don’t know why.

A little heatsink… Is that a heatsink?

This? No, it’s just space for the batteries.

Okay, cool.

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.

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…?

I mean, if it’s Intel – we have a system for generic x86, so you could probably just run that on top of it.

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.

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.

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.

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?

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.

That’s right. Yeah, gosh…

There’s a lot of details to hardware.

Is central lane the Raspberry Pi then?

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…

What’s serious to you?

So one of my clients recently, when they’re talking about deployment, it’s more than 100,000 devices.

Wow. Yeah, that’s a lot.

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.

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?

Entirely custom board.

Yeah. So they’ve designed a fully custom board. I don’t have one within reach, but they have a few different thermostats.

Interesting.

Smartfront is the company in question.

So you can do serious business with it, but you can also do side business, which is just fun business.

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.

Right. So where is she getting her notifications, and how?

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.”

Describe the architecture of Home Assistant in a house.

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.

Mm-hm.

Ikea’s stuff is Zigbee, so I’m living the Swedish dream, I guess.

Ikea’s coming out with a whole new set of smart stuff.

Yeah. But I don’t have to buy their hubs. I just connect their devices to my controller.

Right. Zigbee lets it be compatible, right? It’s about Zigbee, not so much the hub itself.

Yeah. Usually, you pick Zigbee or Z-Wave, and that’s your life.

Are you Zigbee for life then?

I think I’m pretty – right now, I’m definitely Zigbee. I’d need to make a serious investment to switch.

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…”?

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…”

[laughs] Yes.

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.

[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.

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.

Oh, really?

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.

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.”

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.

It’s going to eat all of your time.

Oh, gosh…

It is such a tinker hole. It is amazing, but also terrifying.

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.

Yeah, yeah. I’ve kind of optimized my life so that I get to tinker with hardware professionally at this point.

Sounds like it, yeah.

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.

That’s sick.

Yeah, that was kind of wild.

[01:22:05.21] Could you send them messages? Could you broadcast, and everybody’s E Ink display updates at the same time?

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.

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?

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.

How about older RPis? Can you do like RPi 3’s, or even older generations? Do you have to be current, like 4 plus?

Yeah, I mean, we still support the RPi 1.

Oh, wow. Okay.

But it’s a pain in the rear again, because it does not have networking built in. You need a Wi-Fi USB adapter.

There you go.

I have a Raspberry Pi that’s not doing anything… Maybe I should dive into this world.

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…

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?

Yeah, pretty much.

Just send me a link to your repo. I’ll just deploy that sucker.

What do you do for metrics and observability? Do you get into dashboarding this stuff at all, or Prometheus?

[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.

What about a dead man’s switch?

So if –

Well, if my device failed –

If someone lets go of the device. No, you –

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.

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.

Exactly.

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…

Yeah, that’s interesting.

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.”

[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?

Yeah, yeah.

But how does that – what could I do in the Nerves world, or in this world? Is that even a fit for this?

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.

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.

That’s true, yeah.

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.”

Yeah. I’m even thinking about like N8n. Have you played with that at all?

N8n, no.

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.

Do you want to sing his name for us? Can you sing his name?

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.

[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.

This might be a curveball, but I don’t think this thing’s open source, Adam. I think it’s just like source available…

It’s fair source, sustainable source license something…

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.

It’s open. The code is available to see.

They call it fair code…

Oh gosh, yes…

Yeah. Their license looks somewhat proprietary.

It sounds like it’s a BSL type deal. It seems free for personal use.

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.

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.

How do you sing that, though?

You know, I don’t sing, Jerod… I just speak very eloquently. Mellifluously, as they may say.

They might.

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…

This is his idea.

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.

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.

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…

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.

[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.

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.

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?

No, the moment they want FFmpeg, probably…

Haah…!

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.

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.

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.

So that’s probably like a minute loop, maybe 45-second loop, from end to end…

Yeah, it depends on your image size, it depends on your boot times…

It’s not too bad.

…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.”

“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.”

That’s cool. Stability.

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.

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.

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.

All things embedded. Love it.

Always great to catch up…

Yeah. Stay cool…

It’s been a long time.

…because you can’t help it… And stay even cooler as a person.

There you go. Alright. Bye, friends. Bye, Lars.

Bye, friends.

Bye now.

Changelog

Our transcripts are open source on GitHub. Improvements are welcome. 💚

Player art
  0:00 / 0:00