Embedded

View Original

400: A Really Long Time

Transcript from 400: A Really Long Time with Elecia White and Christopher White.

EW (00:00:07):

Welcome to the 400th episode of Embedded. I am Elecia White, here with Christopher White.

CW (00:00:15):

This is it. This is where we close it all up, right?

EW (00:00:19):

I didn't think so.

CW (00:00:19):

Oh. I mean, what more are we going to say?

EW (00:00:25):

Well, today it's mostly going to be looking back, retrospective sorts of things.

CW (00:00:30):

Okay. And we have 400 things we can talk about.

EW (00:00:34):

I was kind of tempted to just say all of the titles, like some poem, 44 lines about, or 88 lines about something.

CW (00:00:44):

Yeah...After the first 100, I think that would start to get a little weird.

EW (00:00:52):

You'd be surprised. Going through them, there were some pretty funny ones. Okay. When do you think we started the podcast?

CW (00:01:00):

I think we started the podcast in 1988. And we shipped out cassette tapes to all our subscribers via first class mail. And back then we had three subscribers, and mostly we talked about 8051s and UV erasable ROMs.

EW (00:01:27):

Okay.

CW (00:01:27):

No? That's not when the show started?

EW (00:01:28):

While it does seem like we've been doing the show for a long time, I don't think it's been that long.

CW (00:01:33):

Okay. Well, when were podcasts invented?

EW (00:01:38):

I don't know.

CW (00:01:40):

Okay. Sometime after that. 2013 or '14.

EW (00:01:45):

May 15th, 2013.

CW (00:01:48):

Okay. So nine years ago almost?

EW (00:01:52):

Yep.

CW (00:01:52):

Well that's too long.

EW (00:01:54):

Well, we do 50 a year, except we -

CW (00:01:57):

Give or take.

EW (00:01:57):

- don't really quite manage 50. And in the last few years since we've replayed them, it's not really 50.

CW (00:02:04):

Every six weeks or so. So we intend to do 50, and we probably hit 45. That's still not bad, but it's still 400.

EW (00:02:12):

Do you remember what the first one was?

CW (00:02:14):

The first one...we just recorded your panel discussion at Embedded Systems Conference.

EW (00:02:19):

Design West, but yes.

CW (00:02:20):

Whatever it was.

EW (00:02:21):

Do you remember what the second one was?

CW (00:02:23):

Second one was, no, no idea what the second one was.

EW (00:02:29):

Jen and I were talking about multimeters and setting up my brand new shiny Saleae.

CW (00:02:34):

Oh God.

EW (00:02:34):

Which I don't believe we knew how to say at that point.

CW (00:02:38):

I don't know how you said it. I wasn't actually speaking on the podcast for a few, quite a few.

EW (00:02:45):

You -

CW (00:02:45):

Maybe a year?

EW (00:02:46):

- were on when we had the you and I ones.

CW (00:02:49):

Yeah.

EW (00:02:50):

And I think 11 was about consulting, and then we had another one that was about imposter syndrome.

CW (00:02:57):

Got you.

EW (00:02:58):

But you weren't regularly on for almost a whole year.

CW (00:03:00):

A whole year. Yeah.

EW (00:03:02):

What made you decide you wanted to be co-host instead of producer?

CW (00:03:05):

I didn't. I don't remember. I don't remember that happening by decision or anything. Do you?

EW (00:03:12):

Yeah.

CW (00:03:12):

Well, I don't remember.

EW (00:03:12):

I remember you saying you wanted to be part of it more.

CW (00:03:16):

I don't remember at all.

EW (00:03:18):

Let's see. 2013 was the "International Year of Quinoa." I don't remember that at all.

CW (00:03:24):

There was a lot of quinoa that year.

EW (00:03:25):

Discord and Slack weren't things, and I think communities were harder to find.

CW (00:03:32):

Yeah, probably. I mean,...what was around then?...Hackaday. Was Hackaday alive?

EW (00:03:42):

Yes, I think so. Yes.

CW (00:03:43):

Okay. That was around and had some sort of a community, but there certain weren't -

EW (00:03:48):

But Hackaday.io was not.

CW (00:03:49):

There certainly weren't IM communities unless you were on IRC or -

EW (00:03:54):

That's true. I bet Tymkrs had an IRC still then.

CW (00:03:56):

Google groups. I don't know. Facebook. Twitter.

EW (00:04:02):

Yeah. Twitter. I was doing Twitter. Let's see. We were both consulting then. I was mostly working for Fitbit, though I had a few other clients. I don't remember who you were working for.

CW (00:04:13):

I was already working at Fitbit at that point, and I...also had some medical device clients...that came in and out.

EW (00:04:23):

Okay.

CW (00:04:24):

I started Fitbit late 2011 or 2012. Yep. Yep.

EW (00:04:30):

Looking at when their products were shipped, that doesn't make sense.

CW (00:04:33):

...Remember I started working on a Wi-Fi thing for the scale -

EW (00:04:36):

[Ah].

CW (00:04:36):

- that didn't go anywhere?

EW (00:04:38):

So maybe that, okay.

CW (00:04:39):

Yeah. So it was earlier than you remember.

EW (00:04:45):

One of the new words in 2013 was bingeable.

CW (00:04:49):

Really? Well that makes sense. I don't remember when streaming really took off. But I think it was starting around then, starting to become a thing where there were original TV shows and stuff instead of just Netflix's collection of old movies that they could buy.

EW (00:05:05):

And you listened to podcasts, some of which you still listen to today.

CW (00:05:09):

Not as many...A lot of them don't exist, the ones I used to listen to. I used to listen to a lot of tech podcasts that were on 5by5, which was Dan Benjamin's thing. And some of those still exist, but not as many...Well, I listen to some. I don't know. It's not the same as when we were driving around a lot.

EW (00:05:30):

Yeah. Yeah. There's not been as many since we were driving around. What do you listen to?

CW (00:05:36):

For podcasts?

EW (00:05:37):

Yeah.

CW (00:05:38):

I listen to the Accidental Tech Podcast, although I find some of the hosts insufferable and some of the topics insufferable.

EW (00:05:48):

Everybody here is nodding along thinking the same about us.

CW (00:05:51):

I listen to Back to Work with Merlin Mann just because it's sort of amusing. Even though it's supposed to be a productivity show, it's generally about comics. I don't know. I don't know what that show's about. That's about it. I don't know.

CW (00:06:09):

...I listen to a couple with some musicians talking about stuff, but it's not like where I had five that I was keeping up with regularly because I was commuting or, yeah.

CW (00:06:21):

I think podcasts have kind of settled into a out of the hype curve...unless you're a hundred million dollar podcast on Spotify or something, which I don't consider podcasts really.

EW (00:06:33):

True. I mean, it has gone up and down, and yet there is a much wider selection with better quality than there used to be. Maybe it's because mics got cheap.

CW (00:06:49):

Mics got cheap and people learned how to do things. But yeah, there's a lot of podcasts out there now.

EW (00:06:55):

Yeah. I didn't even know about The Amp Hour until 23 episodes in -

CW (00:07:00):

Yeah.

EW (00:07:00):

- when they retweeted about Jeri Ellsworth's episode.

CW (00:07:03):

I did not either.

EW (00:07:05):

That was kind of cool, to find out...that we had a cousin podcast.

CW (00:07:11):

Yeah...so there weren't too many electronics...The Engineering Commons was around then too. Spark Gap. I think they started a couple years later, and lasted a couple years. But there still aren't a lot of hardcore kind of development podcasts about embedded systems. There's lots of development podcasts, but -

EW (00:07:34):

I see a lot of them get named. Everybody seems to have one. Digi-Key, and ST, and Hackaday has had one and not a couple of times.

CW (00:07:45):

Yeah.

EW (00:07:46):

And I know there are some other good ones out there, but I don't listen to podcasts very often. I mean, The Unnamed Reverse Engineering Podcast. We of course should say that one. That was implied with The Amp Hour.

CW (00:08:00):

No, but they started way later.

EW (00:08:01):

Oh, yeah. Let's see. Why did you want to start podcasting?

CW (00:08:09):

I didn't. You made me do it. You said, "Christopher, I really want to start a podcast that lasts 100s and 100s of episodes that takes our time every single week."

EW (00:08:19):

I don't recall that that's how that happened.

CW (00:08:22):

It wasn't?

EW (00:08:23):

No.

CW (00:08:23):

Oh. Are you saying this was my fault? I don't remember why....I don't remember why. Did we have something we really wanted to talk about?

EW (00:08:35):

No. No, no, no. I took a very bad class in stained glass.

CW (00:08:40):

Oh, right. Yeah. Yeah. Yeah. Yeah.

EW (00:08:41):

And I didn't want to take any more classes from the community center I was taking classes from.

CW (00:08:46):

Got you.

EW (00:08:48):

But I also wanted to have some sort of activity to learn. You were doing a lot of podcasts.

CW (00:08:54):

Listening. Listening to a lot of podcasts.

EW (00:08:54):

You were listening to a lot of podcasts.

CW (00:08:56):

Yeah.

EW (00:08:56):

And you already had a lot of equipment. And you said, "Well, why don't we try it?"

CW (00:09:00):

Yeah.

EW (00:09:01):

"Well, we'll do 6." And then we did 12.

CW (00:09:04):

Yeah. Yeah.

EW (00:09:05):

And here we are nine years later at 400.

CW (00:09:08):

And I remember how excited we were when 50 people listened to an episode.

EW (00:09:11):

Oh my God.

CW (00:09:12):

50 people. Do you know how many people that is?

EW (00:09:15):

Strangers emailed us and said things about the podcast. Good and bad. But strangers. People I didn't know that I hadn't browbeaten into listening to the show.

CW (00:09:28):

Yeah. Yeah. 100 people listened to the show at one point.

EW (00:09:35):

The listeners have been great. It's been really weird though.

CW (00:09:38):

Yeah. I was kind of worried as the show got more popular that we were going to get a lot more "yes actuallys" or weirder people responding to things. But it's been good.

EW (00:09:51):

Well, as a woman in tech, I was terrified.

CW (00:09:54):

Right.

EW (00:09:55):

But it's been okay. Hopefully it will continue to be okay.

CW (00:09:59):

Not a challenge.

EW (00:10:00):

Not a challenge. No, no. The listeners have been nice, and they seem to like us.

CW (00:10:07):

And we've met a lot of -

EW (00:10:07):

And they seem to like that we are nice.

CW (00:10:09):

We've met a lot of people through the podcast, which I think was a thing we weren't expecting. So I think that's been very good.

EW (00:10:16):

It's been extraordinary. I've met people I would never have been able to meet otherwise and people who have become close friends that I wouldn't have known. And...I wouldn't have expected it. But there's something about being able to ask people impertinent questions about their lives and having them enjoy that experience.

CW (00:10:37):

And you said community, we sort of built our own little community accidentally and then deliberately with the Slack and stuff.

EW (00:10:44):

That's really weird for me, because I am not much of a community joiner. I never did study groups. When I had clubs and stuff there was always an ulterior motive.

CW (00:10:56):

What?

EW (00:10:57):

Well, when I did clubs in high school, it was to get into college. And in college, mostly I did Society of Women Engineers. And that was to hang out with some friends, but also because it was a good way to meet people who were networking folks, -

CW (00:11:12):

Okay.

EW (00:11:13):

- people I should be networking with. But...I'm more of a small group type. I had been going to She's Geeky, which was a little conference in Mountain View usually, and that was fun.

EW (00:11:28):

But even then I would manage to get through half the day and then I'd be just like, "Yeah, I don't want any more people around us." Let's see. Has it gotten faster to produce the podcast?

CW (00:11:40):

I mean, it did get faster, but...it's plateaued at a certain point.

EW (00:11:47):

How long do you think it takes you to do the podcast, including recording?

CW (00:11:51):

Oh, including recording? Probably five hours.

EW (00:11:54):

It takes me about five to do the prep and recording.

CW (00:11:57):

I mean, some are easier to edit than others. These are very easy to edit. This'll take me about 45 minutes, no matter how long it is. Ones with guests vary, because it depends on their audio quality.

EW (00:12:08):

And how much they swear.

CW (00:12:09):

No, that doesn't take very much time.

EW (00:12:11):

Yeah.

CW (00:12:11):

But if the audio quality's bad, or marginal, or even if it's good, and there's things I need to improve, that takes a while. Because there's a lot of iteration and some very long processing steps that have to happen. And...it depends on the flow of the conversation.

CW (00:12:29):

If there's a lot of back and forth, sometimes I have to pay more attention. Because sometimes there's times when people talk over each other, and you really want to separate that out to make it more clear. And sometimes you just leave that, because it's kind of the conversation. But I generally have to listen to the whole thing.

CW (00:12:48):

And even if I listen to it while I'm editing at 2x, that just means it takes 1.5x to do it, because I have to stop a lot. So yeah, anywhere from an hour to two hours to edit generally, and then there's a half an hour of data entry, and uploading, and garbage that has to happen to post it.

CW (00:13:10):

So, yeah, it's about five hours a week probably. But I haven't really changed anything about the workflow in years. I have the same tools and same habits I always have. People have asked if, "Oh, you want to outsource editing," or something.

CW (00:13:25):

And I really don't. Because I like how it sounds and comes out. And I'd have to be able to accept that it would be different, and then not micromanage somebody and say, "Hey, here's five plugins I want you to use. And here are the settings," because I don't want to hear somebody, I don't know.

EW (00:13:46):

Plosives?

CW (00:13:47):

Yeah. A lot of plosives, and it's really hard...because of the way we do the podcast, where it's not just us every time.

CW (00:13:55):

It's kind of a crapshoot what the audio quality is going to be, whether the person's going to have the capability to record on their end, which gives a lot better quality than Skype, or whatever we use if we just record that here, whether their mic is good, whether they're sitting too close, whether the room is echoey, whether there's a lot of background noise.

CW (00:14:14):

...It's always different. And so throwing that at an editor, either they're just going to do the same thing every time, in which case the audio quality's gonna be wildly different for guests or, I'm happy to do it. It's fine.

EW (00:14:29):

Do you think it has been good advertising for our consulting company?

CW (00:14:34):

I think so. I feel like we've probably gotten a few clients through it. Although I don't know. I don't think I have. Certainly I have people mention it once I start jobs, which is disconcerting.

EW (00:14:52):

Yes.

CW (00:14:52):

I wish... -

EW (00:14:55):

Remember, if you meet us in person, don't mention the podcast.

CW (00:14:58):

And of course, people who've recently mentioned this to me are going to hear this now and feel bad. Don't feel bad. It's fine. It's just a little odd.

CW (00:15:05):

And I have to be careful not to vent about work too much or too specifically,...because there's always somebody at some place that listens so I'm always trying to be careful about not complaining too much.

CW (00:15:21):

And I would never complain about anything bad at any place very specific, but even if I just complain too much about an IDE, sometimes I feel like that's accusation. "Why did you choose this IDE, client?" I was like, "You can choose whatever IDE you want."

EW (00:15:35):

So I hear you've been using PSoC Creator a bit.

CW (00:15:39):

Why are you doing this to me?

EW (00:15:39):

Compare and contrast with IAR.

CW (00:15:41):

Yeah. This is not for any particular client. Yeah. It's not great. It's another one of those things...It's like CubeMX, or STMCubeIDE, the vendor decided, "Hey, cool. We can put some of our custom SoC tools into Eclipse. Check it out."

CW (00:16:03):

And so STM put in CubeMX, and they took that external application, and jammed it into their IDE. So it's kind of cool. You can set up your thing, and whatever, and set up your chip, and -

EW (00:16:13):

So every time I do that, I push a button. It takes forever. It doesn't beachball. So I don't even know it's doing stuff. So I end up doing the same thing five times. And then the first one comes in and my computer now is -

CW (00:16:25):

And it generates the code, and people get confused. And sometimes it generates code, and clobbers your code, whatever. Cypress has a similar IDE. It's also based on Eclipse, and they've also put their own custom thing in it. With Cypress, the PSoC chip, it's kind of a unique design. There's a block of configurable logic on it.

EW (00:16:45):

Kind of like an FPGA.

CW (00:16:46):

Yeah.

EW (00:16:46):

A small FPGA.

CW (00:16:47):

I think it's exactly like an FPGA with basically cells, and that's what they use to set up all the peripherals and stuff. So if you say, "I'll want three SPIs, and I2C, and blah, blah, blah," you drop those into the FPGA thing. And they've got a bunch of pre-made things you can drop in in a visual manner.

EW (00:17:07):

Like SPI with DMA.

CW (00:17:09):

Sort of.

EW (00:17:10):

Okay.

CW (00:17:10):

DMA is a separate thing, but yes. And then you can edit those blocks, change the frequency, what pins it goes to, and all that stuff. And that all gets generated in a very FPGA-like manner. I think it's Verilog. Because it takes a very long time to do that part, and then once that's done you don't need to rebuild.

CW (00:17:26):

So they've integrated that into the IDE. So that's great. But the IDE is still not great. It's very slow. I cannot make it building in parallel. It doesn't do it. So I've been mostly editing in VS Code and then compiling in PSoC Creator. But I just wish they'd just take their custom stuff and leave it somewhere else...Because it's very weird.

CW (00:17:51):

I mean, it's very weird, especially with the Cypress stuff. It's very weird to have a Verilog editor, which you can have. You don't have to. At the top level, you're just doing stuff that feels a lot like CubeMX, where you're configuring peripherals -

EW (00:18:04):

Dragging and dropping.

CW (00:18:04):

- and hooking them up. Yeah. And there's a middle layer where you can build your own blocks. And...they have a visual state machine thing, and you can set inputs and outputs, and connect FIFOs up. So you can build some logic blocks that way without Verilog. And then it generates the Verilog for you.

CW (00:18:26):

Then you can go look at it, or you can go all the way down to Verilog and write that. But it just feels weird to me having that stuff in the same place I'm writing C code. It's just...these are not the same things.

EW (00:18:37):

Well, they wanted it to be that you could change your peripherals at the drop of a hat, but I think you and I are just so used to -

CW (00:18:44):

Well, that's fine, but...that could be a separate thing.

EW (00:18:48):

Yeah.

CW (00:18:48):

Right? They...don't have to expose the way they do it, which is what they did. For most embedded developers, they're not going to touch the customizable Verilog, or the UDBs? Universal Digital Blocks? I don't know. I just made that up. Which is the middle way.

CW (00:19:04):

But most developers are just going to drag and drop stuff and just hide that. But they don't hide it. So you always feel like you're doing hardware stuff. But it's okay. Their tools are fine. The build stuff is fine. The auto-generated code seems fine. Their HAL seems like a HAL. That's PSoC, it's a fine chip.

EW (00:19:31):

So the question was, do you think this has been good advertising for our company?

CW (00:19:34):

No. No. Yeah. How did I get there? I don't know.

EW (00:19:42):

I mean, the truth is no.

CW (00:19:45):

I don't know. I have no idea.

EW (00:19:46):

We've gotten a couple of small contracts. But the bulk of our contracts over the last five years, well, over the last nine years since the podcast started, have either followed from each other or have come from friends we'd made from other places.

CW (00:20:05):

Okay. Maybe. Yeah. I don't know.

EW (00:20:09):

As advertising for my book, it has been pretty great.

CW (00:20:11):

Yeah. Yeah.

EW (00:20:12):

It's kind of surprising to me that the royalties I get now are almost the same royalties I got in 2013. It hasn't really gone down.

CW (00:20:23):

Yeah. But you've got to adjust for inflation now.

EW (00:20:27):

As a money-making thing on its own, it's terrible.

CW (00:20:32):

The podcast?

EW (00:20:32):

Yeah.

CW (00:20:33):

Oh, no. Yeah.

EW (00:20:35):

I mean -

CW (00:20:35):

It's very nice to have patrons, because that helps with -

EW (00:20:38):

It really is.

CW (00:20:38):

- some of our time and there are expenses.

EW (00:20:42):

I mean that pays for mics, and transcription, and a little bit of social media upkeep.

CW (00:20:52):

Well, and our time.

EW (00:20:55):

No, actually it doesn't pay for our time.

CW (00:20:57):

It doesn't pay for our time, but it's at least helpful to -

EW (00:21:00):

It indicates that it's a valuable service.

CW (00:21:01):

Yes. That's what I'm trying to say.

EW (00:21:02):

And that is really nice.

CW (00:21:03):

Yeah.

EW (00:21:04):

As a way to stay current with trends -

CW (00:21:08):

Which trends?

EW (00:21:09):

Everything that happens.

CW (00:21:11):

Oh.

EW (00:21:12):

I mean, I might not have noticed Rust.

CW (00:21:14):

Yeah. You would've noticed Rust, because people would've still been emailing. No. Even without a podcast, Rust people would be emailing you.

EW (00:21:25):

But there were other trends.

CW (00:21:27):

Yeah.

EW (00:21:28):

And...having people come and talk to us, it's pretty cool. I do hear about things...I wouldn't have heard about before.

CW (00:21:40):

Definitely. Yeah. And even though I'm an embedded developer, I don't spend a lot of time following embedded stuff on blogs and stuff. I generally follow general purpose computing stuff on blogs and tech, but...for some reason I don't keep up with what the latest haps are in the embedded world.

EW (00:22:03):

I don't either. I mean, I'm more of a digger. If there's something -

CW (00:22:07):

I need, yeah.

EW (00:22:09):

- I want to know more about, I'll dig into it. But if I don't get that initial, "I want to know more about it," then the chances are, I won't find out. And the podcast has been good about making me want to know more about everything, -

CW (00:22:24):

Yeah. Yeah.

EW (00:22:24):

- giving me more breadth.

CW (00:22:25):

Yeah. And we hear about stuff that is new too. All the IoT management stuff and the device management stuff, that's all relatively new. And it's been good to have people on to talk about that and all that stuff.

CW (00:22:40):

And we hear about fringe stuff too, which is great. And I think that's important too, because sometimes fringe stuff becomes non-fringe and -

EW (00:22:48):

And the maker community, I was way more on the outside. And now I have a lot more respect for the people who are doing awesome things and able to do art with the technology I see as technology. And I find that fascinating. I guess that's why we end up having quite a few artists on the show.

CW (00:23:08):

Well, yeah. The show is weird, and -

EW (00:23:13):

Oh, yes.

CW (00:23:13):

- to a large degree, we talk to people who we want to talk to.

EW (00:23:16):

That's all we talk to.

CW (00:23:20):

Yeah. But by that, I mean, it's not always going to be a show about wires.

EW (00:23:27):

Well, that's the thing. The show is about people.

CW (00:23:29):

Yeah.

EW (00:23:29):

It's really about the people who are working with the wires, and the wires come in because you're talking to them about working with it. But it was never supposed to be a show about, "How do you use I2C?"

CW (00:23:48):

I thought you were going to say IAR.

EW (00:23:50):

Or IAR.

CW (00:23:52):

Now next week's show is all about how to use IAR.

EW (00:23:56):

Actually next week's show is an in-depth look at state machines.

CW (00:24:00):

You didn't need to correct me. You knew I was kidding.

EW (00:24:02):

I knew you were kidding, but I also wanted to point out that we were going to have a technology show soon.

CW (00:24:05):

No, maybe somebody's excited about learning to use IAR.

EW (00:24:10):

If you are the sole person who is excited about learning to use IAR, who would listen to a full podcast about the key commands behind IAR, and other fantastic things, like being able to copy registers out of the debug window, just let us know. Drop us a line and say, "I want the IAR show."

CW (00:24:30):

This week's show, by the way, is sponsored by IAR.

EW (00:24:36):

I don't think so.

CW (00:24:36):

Oh, no?

EW (00:24:37):

No.

CW (00:24:37):

Oh.

EW (00:24:38):

No, I don't think so. I think we'd have to say nicer things.

CW (00:24:41):

Those were fine things.

EW (00:24:45):

Let's see. Things that have changed between 2013 and now. Other than your age.

CW (00:24:53):

Nothing has changed. It's all been great. It's been a wonderful time in the last two years.

EW (00:25:00):

Well, I'm going to ignore the giant pandemic in the room.

CW (00:25:06):

What has changed in the world of embedded systems since 2013 or just generally? I don't know. I think the tools, even though it's still feels like things are pretty behind, it feels like there's a lot of things that are getting better and people working hard to try to improve from where things were then.

CW (00:25:32):

I mean, there's a lot of people actually thinking about these problems instead of complaining about them. I'm definitely on the complaining side.

EW (00:25:40):

I mean, people use GCC and Clang now.

CW (00:25:42):

Yeah.

EW (00:25:43):

And that was not really, I mean, you could, but you were definitely kind of out there for it.

CW (00:25:51):

Yeah. And that works much better. There's been a lot more open source kind of momentum in embedded.

EW (00:26:01):

How so? I was actually thinking about open source lately.

CW (00:26:04):

Well, I mean there's all the RTOSs. There's -

EW (00:26:07):

That's true. FreeRTOS. I mean, even if it wasn't RTOS then, and Mynewt, and Zephyr.

CW (00:26:13):

Yeah.

EW (00:26:13):

Those are all pretty magical.

CW (00:26:16):

But yeah, there's a lot of open source stuff, and even Newlib, and alternatives to libc, and stuff. The development tools have gotten better...Not just GCC, but you can have a very good editor that is not Eclipse.

EW (00:26:36):

VS Code. VS Code is really very cool.

CW (00:26:40):

Yeah.

EW (00:26:42):

I don't know how often I need to say that, but as somebody who tends to try not to fall in love with an editor, you can pry my VS Code from my cold hands.

CW (00:26:53):

I feel like it's easier to find sample code about almost anything

EW (00:26:57):

Driver sample code, all the peripherals. You want to put in an accelerometer and a gyro, there's code for that. Yeah. You wanna put in a custom TFT, okay. You have to deal with the custom part. But other than that, there's there's code for that.

EW (00:27:13):

That's been really amazing. I never thought we would get to the point where we were using other people's code so easily.

CW (00:27:22):

Well, I think for most company work, there's total reluctance to kind of do that. I don't see a lot of people bringing in open source peripheral drivers into products.

EW (00:27:34):

But it's such a good starting point.

CW (00:27:37):

You can at least see where you're making a mistake.

EW (00:27:39):

And if they're Apache-licensed, or something very open, it's really nice.

CW (00:27:46):

The problem with those though is, generally they're general purpose drivers. So it's like, "Here's the whole chip, and you can configure it however you want. We've exposed every single register and have a function for setting every register, and mode, and all this stuff." And it's a lot of code.

CW (00:28:00):

And if you're trying to save on code space, and you have a single purpose thing you're doing, and you know the configuration's never going to change, you don't need that whole driver. So that's a reason to use them as starting points and then pare everything out.

EW (00:28:13):

But that's another thing that's changed. I mean, we have bigger processors, more flash, more RAM, more processing cycles, more options.

CW (00:28:19):

Yeah. Well, we don't. We can't buy anything.

EW (00:28:24):

Yeah.

CW (00:28:25):

But on paper, all of that stuff is better.

EW (00:28:29):

When I do a parametric search in a vendor's website, it's all perfect as long as I don't select for in stock.

CW (00:28:35):

In stock in 18 months. Better hardware tools too, I think.

EW (00:28:42):

Oh, yeah. Cheap -

CW (00:28:44):

...The first logic analyzer I used in 2004 when I was first doing actual hands-on embedded instead of off in a corner and a big piece of data center hardware, I think it had this HP thing that weighed 80 pounds.

EW (00:29:00):

Oh, yeah.

CW (00:29:00):

It was probably old at that point, but it was all we had at the company. And it was probably $8,000 or something.

EW (00:29:08):

Well, and the Saleae in episode two was pretty new.

CW (00:29:13):

Yeah.

EW (00:29:13):

And it was their four-channel -

CW (00:29:15):

Yeah.

EW (00:29:15):

- digital Saleae long before. And we had Mark Garrison on the show, we kept trying to ask him, "Are you going make an oscilloscope? Are going to make one that isn't just digital?" And he was desperately trying not to answer, because they totally were.

CW (00:29:35):

Yeah. That thing saved my butt last week. I had to decode a 8-bit TFT parallel bus, because the vendor didn't bother to share with us the initialization sequence.

EW (00:29:50):

Yeah. If they had put it in a manual, you wouldn't have read it anyway. What difference does it make?

CW (00:29:53):

That is false. When I'm trying to get something done, I am highly incentivized to read the manual.

EW (00:30:05):

I wonder, in class I've been going through optimizations, processor optimizations, math, and even the memory map, and talking about how to find more RAM and processor space. And now that we have so many more options for processors, it doesn't seem as important anymore. And they're so cheap.

CW (00:30:26):

Well, I mean, yes and no.

EW (00:30:29):

Now it's about power.

CW (00:30:30):

Yeah. There's still ways to burn a lot of money making a product so it's nice that the processors are cheaper, but other things fill in for that, expensive sensors or displays.

EW (00:30:44):

Displays. Yes.

CW (00:30:45):

It's no longer acceptable to have a monochrome LCD display without a backlight, okay?

EW (00:30:50):

And if you really want to be able to get rid of all your RAM in one go, just buffer some display stuff.

CW (00:30:57):

Yeah. I mean, since Apple has pushed the limit on resolution, even the silliest devices -

EW (00:31:04):

[Ah], geez.

CW (00:31:05):

- everybody expects very high resolution displays, and they're hard to push from a Cortex.

EW (00:31:10):

Let's see. TinyML is a thing.

CW (00:31:14):

Yeah...I don't mean this in a derogatory way. That's one of those sort of fringe things that I was talking about. I don't think it's fringe as in loony tunes. I think it's not mainstream yet, and it's probably going to become mainstream.

CW (00:31:27):

But that's one of those kind of new things that's really exciting to talk to people about that I wasn't really aware of, even though I'd been doing machine learning at the time. So it's great to hear about stuff like that when it's just kind of starting.

CW (00:31:40):

Because then you can look back five years later and say, "Wow, I talked to this person when this was just this little project, or idea, or a small company, and now it's a big part of the embedded world."

EW (00:31:55):

It's a scary part for me still, even though I mean, I've done machine learning. I kind of understand how it works. I could put a whole system together. I could train it and yet I'm still pretty chickeny about wanting it to go on a system I'm working on. And I don't know why.

CW (00:32:11):

It just depends on what you're trying to do.

EW (00:32:14):

Well, yeah. But I would still rather go for a heuristic method.

CW (00:32:20):

I still think if a heuristic method works, you should go for the heuristic method first, because it's much easier to debug and understand. But there's a lot of things that doesn't work as well for.

EW (00:32:34):

I don't remember CMSIS-DAP, Debug Access Port, that makes it possible for almost any Cortex-M to become a debugger for another Cortex-M.

CW (00:32:49):

Oh, right. Yeah.

EW (00:32:51):

I mean that made it so you could make your own programmers for nothing. And that was kind of magical. And I mean, that's kind of why we get ST-LINKs. I wonder how much that's affected the bigger programmer manufacturers.

CW (00:33:08):

I don't know. Because...you can see my Cypress port there has a very similar programmer attached with the perforated -

EW (00:33:18):

Yeah.

CW (00:33:18):

- PCB edge where you can pull it off, and it's a programmer. I think they did a very similar thing.

EW (00:33:22):

But that's because the Cortex-M -

CW (00:33:24):

Yeah.

EW (00:33:24):

- has the DAP -

CW (00:33:26):

Yep.

EW (00:33:26):

- as part of, I mean, you can just go to their website and download firmware. And suddenly you have created your own debugger.

CW (00:33:33):

Yeah.

EW (00:33:34):

I haven't used that, but I've thought about ways that that might be useful if I was looking for some specific thing to happen. But I don't know if it's -

CW (00:33:42):

I could see it's useful in the manufacturing and stuff.

EW (00:33:45):

Oh, yeah.

CW (00:33:45):

And for testing, for some sort of automated testing, if...you want a big bank of them or something. But yeah, that's a scenario that I haven't really touched.

EW (00:33:54):

Would you have been surprised then how much Python development you've done?

CW (00:34:00):

I don't know. Even in 2007 or '08 I was in groups where a lot of Python development was happening. So I was aware of it, and I probably should have been doing what I was doing in Python at that company.

CW (00:34:14):

But yeah, probably I would be surprised by how much I'm doing now. But that's because...that's the ML stuff I'm doing. I don't know that I would've been doing a ton of Python without being in that area. I did some at Fitbit when I was just writing little tools and stuff, but I was very not good at it. Now I'm just marginally bad at it.

EW (00:34:39):

There's no way you started in 2011 at Fitbit. Because I didn't start until after 2011.

CW (00:34:44):

No...I'll find the email. I have the first email from you know who. It was November of 2011. I remember...driving up. You were already there. I drove up, and we had a meeting with everybody. And they wanted stuff with the scale, because you didn't want to do the scale.

EW (00:35:04):

I did the scale.

CW (00:35:05):

You didn't wanna do the Wi-Fi on the scale.

EW (00:35:07):

Well, yeah but then I -

CW (00:35:08):

And back then they were using WICED, which had not even really come out yet. And so I spent a lot of time with the WICED development kit discovering that there were big pieces of code that were just empty functions in the WICED development kit. Yeah. It was cool.

EW (00:35:22):

To be fair, that was the second scale.

CW (00:35:24):

Yeah. Yeah. No, that one never came out.

EW (00:35:26):

Right.

CW (00:35:26):

That project was canceled. They did a second scale later, much later. But the one I started with was canceled. And then I switched over to the first smartwatch thing. The Surge or whatever it was called.

EW (00:35:41):

I think it was later than that, because my book came out in 2011. And they found me from my book in the spring, so that would've been 2012. So that's why -

CW (00:35:54):

So maybe it was November, 2012, but it was not 2013. I know that for a fact. Why are we arguing about this?

EW (00:36:02):

I don't know.

CW (00:36:03):

Hey folks, you want to argue about dates with us? Call in now at when did Chris start working at Fitbit.com?

EW (00:36:16):

Do you think this is important?

CW (00:36:18):

No, I don't. I don't think this is important at all or interesting.

EW (00:36:24):

Oh, and I lied. My first email from them is 2011.

CW (00:36:27):

[Uh-huh].

EW (00:36:28):

But it was right after my book came out.

CW (00:36:29):

[Uh-huh].

EW (00:36:29):

Because that was how they found me.

CW (00:36:30):

[Uh-huh. Uh-huh. Uh-huh].

EW (00:36:33):

Okay. Okay. Sorry. We talk more about software stuff, like unit testing and continuous integration. So that's good.

CW (00:36:45):

Well, that was one of those things that I felt like got better too. Things weren't really happening too much in the pre-2010 era with embedded. Certainly with regular software it was.

EW (00:37:01):

Prototypes are faster, much faster than they used to be. And -

CW (00:37:05):

Too fast.

EW (00:37:05):

- dev kits are cheaper.

CW (00:37:08):

Yeah. Yeah.

EW (00:37:10):

Let's see. And more IoT stuff. Although now I can actually say that without barfing.

CW (00:37:17):

That's good. That's an improvement.

EW (00:37:18):

It's just a pause now. There were words that were invented.

CW (00:37:25):

Okay. What does that have to do with anything?

EW (00:37:27):

Nothing. Except that Zoom as in video conference -

CW (00:37:30):

Yeah.

EW (00:37:30):

- didn't become a word until 2014.

CW (00:37:33):

That seems way early.

EW (00:37:35):

I know. I had to look it up, but yes, it really was.

CW (00:37:38):

Wait, they put that in the dictionary in 2014?

EW (00:37:40):

Yes.

CW (00:37:42):

[Huh].

EW (00:37:43):

And they put Zoomer in the dictionary in 2017, but it has nothing to do with the program. It's a person born in the late 1990s and early 2000s, which could be people who are listening to us.

CW (00:37:56):

Wow. What? No.

EW (00:37:58):

And for some reason, murder hornet didn't make the list until 2020.

CW (00:38:04):

It was a busy year. Wow. NFT was 2017. I could have been hating on that for a lot longer.

EW (00:38:15):

Cryptocurrency started getting into the language sooner than that.

CW (00:38:19):

Way sooner than that. I remember. Yeah. That was a long time ago.

EW (00:38:23):

Yeah. So it's been a really long time. It's been fun. I's still weird that the shows that listeners like aren't necessarily the shows that we think are the best. And that's been very eye-opening to me. You know nobody can see you nod, right?

CW (00:38:43):

Sorry. Nod, nod, nod, nod.

EW (00:38:48):

And it was interesting to find, at one point I was trying to figure out people wanted from the show. And if I could ask the questions they wanted asked, be an in-depth, investigative reporter style thing. And then I realized that the shows that people like are the ones that I'm asking what I want to ask and pretty much ignoring -

CW (00:39:13):

I think it's an enthusiasm thing, right? I mean, if they feel like we're interested, then we ask better questions and people respond to that.

EW (00:39:23):

Yeah. Maybe it's just the level of enthusiasm, of choosing my own questions versus other people's. That's all I have. Should we do Winnie the Pooh for the rest?

CW (00:39:33):

No.

EW (00:39:36):

But Owl is here.

CW (00:39:38):

[Uh-huh].

EW (00:39:41):

Okay. If we did this until say episode 512, that's only three more years.

CW (00:39:49):

Okay. Yeah.

EW (00:39:51):

What else would you want out of it? Who do you want to interview?

CW (00:39:56):

Didn't we already do this, "Who do you want to interview?"

EW (00:39:58):

Yes. And you said Teenage Engineering. And I said, "Didn't you email someone?" And you said, "No." And then I was supposed to email somebody and I got a referral.

CW (00:40:06):

That was five years ago. Five years ago we did that.

EW (00:40:09):

No, it wasn't that long ago, but I'm still hoping. I haven't dealt. I'm way behind.

CW (00:40:14):

I don't know. I kind of like delving back into some of the in-depth tech stuff. So I don't mind just having episodes where either we talk or have one of the regulars on to talk about some specific topic. I enjoy those.

EW (00:40:30):

What topics would you want?

CW (00:40:32):

I don't know.

EW (00:40:34):

I was thinking about doing one about machine learning?

CW (00:40:37):

I always like hearing about people solving difficult problems. So it's a little hard sometimes to ask people about that, because it's usually a company-related thing that they can't talk about. But there's some other areas that we could get into that we haven't touched on that are not basic things, I suppose.

EW (00:40:57):

I feel like he's avoiding the question.

CW (00:40:58):

No. I'm trying to think on the fly, which I'm not good at. Well, for instance, we've talked about debugging and we talked about, what?

EW (00:41:15):

Interrupts.

CW (00:41:16):

Interrupts and those big common topics, but there's uncommon stuff too. Like how do you do DMA?...We've talked about low power. That was good. It's hard. Because I don't know what we've already covered.

EW (00:41:29):

When did we talk about low power?

CW (00:41:31):

With the Joulescope -

EW (00:41:31):

Oh, with the Joulescope, yeah, -

CW (00:41:33):

- creator.

EW (00:41:34):

- creator. Cool. Whose name I should remember. [Matt Liberty]

CW (00:41:38):

That's okay. 400. Yeah. I don't know. It's so hard. That's a hard question to answer after...having 400 shows. It's like saying, "Well, what are you going do to spice things up and make it new?" It's like, "We did 400 shows. We pretty much covered it." So the actual hard part is how do we not kind of feel like we're repeating ourselves?

EW (00:42:02):

I think a little bit of repetition on some topics is good, because there's always the chance that someone will have a different perspective -

CW (00:42:10):

Sure.

EW (00:42:10):

- or time passes and our perspectives change. I was realizing that my perspectives have changed regarding how to set up a main loop and that I have never really talked much about that...

EW (00:42:25):

I know this is a little weird, because we're we did this out of order, but next week's guest, Miro, talks about that. And I just have a lot more to talk about on that subject that I didn't realize that I had more on.

CW (00:42:41):

I mean, I have a lot to complain about. We talked about the things that have changed. I'm more upset about the things that haven't changed.

EW (00:42:50):

Alright. What things haven't changed?

CW (00:42:53):

We're still using serial communication protocols from the '70's.

EW (00:42:58):

Command line debugging forever.

CW (00:43:02):

What?

EW (00:43:03):

Oh, you weren't complaining about UART?

CW (00:43:05):

No. I'm complaining about I2C and SPI.

EW (00:43:08):

How would you improve them?

CW (00:43:10):

I don't know. I don't have an offhand improvement, but it feels like there might be something better we could do 40 years later.

EW (00:43:17):

They are the pinnacle of simple elegant protocols with a minimum of fuss. Your expression is awesome. I wish that I could take a picture. So great. You're like Grover.

CW (00:43:33):

Yeah. And the way we communicate stuff is bad. Datasheets, they're bad. Datasheets are bad. I don't care how good you are reading them. They're still bad, because they're always wrong. And if they're not wrong, they're at least misleading.

EW (00:43:50):

I've been going through a chip that had datasheets that were all online, and there was no single PDF. And half of it was doxygen-generated things that were unreadable. And the other half I had to dig through five links to find stuff. And I hated it.

CW (00:44:12):

And there's no excuse. There is no excuse as far as I'm concerned for peripheral vendors to not supply sample drivers with their devices. ST should be supplying a driver with their accelerometers. Even if it's only for STM32, it could be adapted.

CW (00:44:31):

If they wrote it nicely, they could abstract away the SPI, and whatever read and writes, and just have a nice register API that's implemented, because that is not hard. And every single time you get a new peripheral for a client, they want you to implement a driver for it.

CW (00:44:50):

And that's fine, but it's error prone. And it's just like, how many drivers have been written for every single peripheral chip that's out there.

EW (00:45:02):

It's a waste of time.

CW (00:45:03):

It's a complete waste of time. And...the job of your company's to make the thing your company's making. It's not to write device drivers.

EW (00:45:14):

Well, I fear that's what the vendors of the peripherals feel like is what they're saying. It's not their job to write the drivers.

CW (00:45:23):

That's like saying -

EW (00:45:23):

...They're just creating the sensor. You're going to use it however you're going to use it.

CW (00:45:29):

But that's the application level. That's not the driver. The driver is their product. The driver is the embodiment of their datasheet. It's a short step from their datasheet to a driver.

EW (00:45:42):

It should be. And if it isn't, that's why we're all confused.

CW (00:45:47):

So it just irritates me that not only that we're using the same protocols from a million years ago, and we're going to be, not me, cause I'm gonna retire in 15 minutes, but we're going be using SPI and I2C in 2075, which is completely insane.

EW (00:46:05):

And yet I do stand by what I sort of snarkily said before, which is they are what they are, because it's pretty efficient. And they do most of what we need them to do.

CW (00:46:21):

Pretty, most, I'm just checking out -

EW (00:46:24):

Qualifiers.

CW (00:46:24):

- your qualifiers here.

EW (00:46:27):

I mean, I can't come up with a better way to have a minimum number of wires going to a whole bunch of devices.

CW (00:46:36):

Oh, I'm not saying the electrical interface should change. Of course a minimum of wires is desirable. I think the bus protocols and stuff could probably be improved on.

EW (00:46:48):

I mean, SPI doesn't really have any bus protocols, other than you have to read and write at the same time. And you have to know about CPOL and CPHA.

CW (00:47:00):

Go on...I'm sure an electrical engineer is going to jump down my throat, but there is no reason for there to be 50 million different slight variations of this serial protocol.

EW (00:47:17):

But don't you want the puzzle -

CW (00:47:19):

No. No.

EW (00:47:19):

- of figuring out whether -

CW (00:47:21):

No. No.

EW (00:47:21):

- it's read on the rising edge or the falling?

CW (00:47:23):

No, I don't care. It doesn't matter. It doesn't matter.

EW (00:47:29):

I've had some pretty good luck when I can't or don't want to be bothered with the datasheet, putting it on a Saleae, and just changing the parameters there, -

CW (00:47:39):

Oh, yeah. Yeah.

EW (00:47:39):

- and trying to see things.

CW (00:47:40):

That's great, but it's a pain in the butt.

EW (00:47:42):

And that's not great engineering. I want to be able to say, "I read the datasheet. This is why I did this." But it doesn't you're right.

CW (00:47:49):

So one of the cool things about the last ten years has been a gradual shift towards modular development, at least for prototypes, where you can piece things together in really easy ways at a hardware level. You can buy this base board, and...they have a lot of different connector systems from the Arduino, what do they call them?

EW (00:48:14):

Headers?

CW (00:48:14):

Shields.

EW (00:48:14):

Shields.

CW (00:48:14):

Raspberry Pi hats, all that stuff, which are just basically connectors, pin connectors, to other stuff like the quick connector and all the things that Adafruit and SparkFun have. So that's...really great where you can just kind of piece together a system without doing any board design to start with and try out ideas.

CW (00:48:33):

...I think the software from those people works that way. I don't think software for professional development has gotten to that step. And I think that's the piece that I want is, I want to be able to piece software together a little easier without having to reinvent the wheel all the time.

EW (00:48:56):

I didn't used to read very much code. I always have liked writing code better than reading code. But one of the things that has shifted over the years has been my willingness and ability to read other people's code and not just want to write it all myself, which inevitably means writing new bugs.

CW (00:49:21):

I mean, we're paid hourly. So writing drivers, I'm talking against interest here.

EW (00:49:26):

That's true.

CW (00:49:28):

But -

EW (00:49:28):

We should be like, "It should be as slow as possible." But no. I don't want to be bored.

CW (00:49:32):

...Maybe this is my bias. I know people enjoy that sort of work, so that's fine. But I generally enjoy at least being around the application level a little bit, doing some of the stuff that's specific to the product.

CW (00:49:48):

And if there's a device driver that's specific to the product, which often there is, there's some weird sensor or some new thing, that's fun.

EW (00:49:57):

Yeah.

CW (00:49:57):

I don't expect every piece of hardware in the universe to come with a device driver, because that's not practical. But yeah,...I feel like, having worked in the application side of thing for a couple years, it's still a very, very different world.

CW (00:50:13):

It's still much easier to not have to reinvent the wheel on the application development side of things, iOS, Android, whatever. Because there's just a huge, huge library of stuff that works that people use. 90% of the time it's great.

EW (00:50:33):

How do you find what people are using? And do they -

CW (00:50:36):

Because most of the time it's built into the thing that the vendor supplies. Apple has 80 frameworks for whatever you can imagine. And I don't have to go grab -

EW (00:50:46):

Yeah, but 80 is too many. No, that is -

CW (00:50:49):

It's not the number...There aren't 80 for each kind of thing.

EW (00:50:56):

What I'm saying is that sometimes it is hard to find what you want. I mean, I've been looking at CMSIS for class. And I have realized that there's a lot in there that I used to use and I still should. But I don't, because I have other example code and the other example code uses a different path.

EW (00:51:19):

And so...I can't use this, I'll call it a framework, although it's more of a library. Because it's all a house of cards. A is built on B and B is built on C and all the way down.

CW (00:51:34):

Yeah. Yeah. That's a major problem, is dependencies and things. I'm not saying it's easy.

EW (00:51:40):

Okay. But we do need more standardization and modularity.

CW (00:51:44):

Yeah. It feels very different. I think the excuse has been, "Oh, we're resource-constrained."

EW (00:51:52):

And now we're not nearly as resource-constrained.

CW (00:51:54):

We're not nearly as resource-constrained. And there are ways around that. There are ways around that.

EW (00:51:58):

Totally.

CW (00:51:58):

Not just in terms of writing more efficient code, but the build systems can be better about bringing stuff in, but yeah.

EW (00:52:07):

But #defs, oh.

CW (00:52:09):

Well,...C needs to go.

EW (00:52:12):

I don't have a problem with C, but I do have a problem where they write one file and it's supposed to work on 97 different things. And so you have a hundred #defs that mark in and out different pieces, and it's impossible to follow.

CW (00:52:29):

Yep.

EW (00:52:30):

I would like to be able to take that file and say, "This is the #def I have. Just make me a new file that is all the code that's going to run."

CW (00:52:38):

Well, that's the problem with my driver's idea is it's a monkey paw, because somebody would deliver that, and it would look just like that. Because it would be a continually accreting, there you go everyone, file with different tweaks and platform. That's not what I want. That's not what I want.

EW (00:52:57):

No. But if you had that, and you had a way to say, "Just give me this version of it - "

CW (00:53:04):

Yeah. Filter it out.

EW (00:53:06):

Filter out everything else.

CW (00:53:08):

...There are things that do that, right?

EW (00:53:12):

Well, I think about the SVD files that are XML, and they describe the processors -

CW (00:53:17):

Yeah.

EW (00:53:17):

- so that things like Mbed and PlatformIO can deal with different processors, can know about different processors without having to deal with all the vendors.

CW (00:53:28):

But wasn't that CMake's claim to fame is that it can manage some of that stuff better? But I guess it still has to be done with #defines in the code.

EW (00:53:35):

I don't know...I wasn't part of the book club on -

CW (00:53:39):

CMake?

EW (00:53:40):

Patreon, our Slack group that did the CMake. Although I think that's finished now.

CW (00:53:48):

Yeah.

EW (00:53:48):

And they're about to choose a new book.

CW (00:53:49):

Yeah. Yeah. So, I mean, I don't want to just complain, but I do feel like a lot of things have changed for the better. Things are improving, but I still feel like there's just a lot of stuff...It's like a Ferrari engine attached to a horse and buggy sometimes.

EW (00:54:07):

And I don't mind writing interesting new code, but I don't want to write the same code over and over again.

CW (00:54:13):

Yeah. That's what I'm saying.

EW (00:54:15):

It was kind of fun to write the...first three serial drivers. But after that it gets old.

CW (00:54:23):

And stuff like containers, like link lists, or circular buffers, or -

EW (00:54:29):

Vectors.

CW (00:54:30):

Any language except for C now, you don't have to do that. It's just there. It's part of the language. And maybe you don't trust it. That's a separate issue. But I mean the things you can do with a few lines of code in languages that were developed in the last decade are astounding compared to C.

CW (00:54:57):

But...I mean, I like working with all this stuff. It's fun to make lights blink. And so that's a big piece that makes up for a lot of this, is making things work that are real.

EW (00:55:10):

I mean, they wouldn't pay you if you didn't have to do some icky bits.

CW (00:55:16):

They're paying you?

EW (00:55:19):

Yes.

CW (00:55:20):

Oh, shoot.

EW (00:55:22):

They're paying you too. I promise.

CW (00:55:24):

Alright. The "they."

EW (00:55:31):

"They." So -

CW (00:55:31):

So what have we learned?

EW (00:55:34):

Well, in the last month we've learned that my idea of a vacation has absolutely nothing to -

CW (00:55:38):

You have to work twice as much.

EW (00:55:39):

- do with vacation.

CW (00:55:40):

As I predicted, I believe on a show.

EW (00:55:45):

Yeah. I mean -

CW (00:55:47):

But you didn't sign up for anything additional. I will give you credit for that. It's just that the stuff that you had left over after you dropped a couple clients was still more than enough to take up all your time.

EW (00:56:01):

Dropped? I finished up.

CW (00:56:02):

Finished, whatever.

EW (00:56:04):

Yeah. Yeah. The Classpert class grows to fill all available time. Although to be fair, I also hadn't really started a couple of lessons. And now I have to write the outline, write the slides, write the lesson, write the homework, write the quizzes. It's a lot.

EW (00:56:30):

Also, apparently they want me to have mini lectures on the live class. I thought with the live class, it'd be mostly discussion, and talking amongst themselves, and maybe going over homework or whatever. But they actually want more information. I'm also preparing little bonus mini lectures.

EW (00:56:50):

Let's see. And I haven't done much origami, although I did write a very long program and then put together a very interesting table of how connectors work. And then I did not use it to generate anything interesting. Yeah. It was kind of sad. I mean, I will, because I don't think I'm fishing for a contract yet.

CW (00:57:17):

You better not be.

EW (00:57:21):

I've moved my vacation back to ending around Valentine's day.

CW (00:57:27):

I see. When's it going to start? March?

EW (00:57:33):

Well, not today. Not tomorrow. Not next week. Maybe the week after.

CW (00:57:39):

So you're going to have a five day vacation?

EW (00:57:42):

Oh, man. I can't believe it's February.

CW (00:57:46):

It's not, but it will be.

EW (00:57:48):

It will be very soon.

CW (00:57:50):

Well, anything you'd like to change about the podcast?

EW (00:57:55):

I remember at show 100, we changed the name.

CW (00:57:59):

Right. Should we change the name again? See who else we can get to have a legal conversation with?

EW (00:58:08):

What would you change it to?

CW (00:58:13):

You can't ask me that. I don't know.

EW (00:58:18):

I was hoping you would say whatever most recent band name or song title you had marked as something was interesting. Was it Monkey Funk?

CW (00:58:30):

No, I wrote two songs accidentally, and I didn't remember. One was Monkey Funk, and one was Funky Duck.

EW (00:58:38):

Monkey Funk and Funk -

CW (00:58:40):

Don't. You can't do it.

EW (00:58:44):

You really can't, can you?

CW (00:58:47):

But I'm not very good at naming things, especially when I'm just putting sketches in. So I just type -

EW (00:58:51):

You should put those sketches together.

CW (00:58:54):

Probably.

EW (00:58:57):

How is music going?

CW (00:58:59):

It's music. I play it. I'm...trying to get myself to write even one, get an idea down on tape.

EW (00:59:11):

Tape. Videotape?

CW (00:59:12):

Yeah.

EW (00:59:12):

Cassette tape? An 8-track tape?

CW (00:59:15):

It's an expression. I try to get an idea down on flash cells, one at least verse chorus verse level of song with drums, and some harmonic, and melodic idea, one thing a week. I've been trying to do that.

EW (00:59:37):

Are you going to have like They Might Be Giants had a dial-a-song, where people can come and get the song of the week?

CW (00:59:43):

No, because that means I have to finish each of these songs, and that will take me more than a week. So I'm just trying to collect ideas.

EW (00:59:50):

So you're going for the start a dozen instead of finishing one.

CW (00:59:53):

Yes.

EW (00:59:54):

Cool.

CW (00:59:54):

Yeah, it's not that interesting to me to spend a month on one song, but yeah. I don't know. I don't know if any of them will see the light of day. At least one of them I'm going to ship to my brother, and we're going to probably work up.

CW (01:00:11):

Well, two. One I already sent to him, but that's not for general use. It's a Kickstarter bonus item for somebody.

EW (01:00:19):

Right. The person who got a song written for them.

CW (01:00:21):

Yes. Alright. I think if the last listener hasn't left yet, then we should probably tell them to go home. The show's over.

EW (01:00:31):

You can listen to one show every day of the year and still have extras left over.

CW (01:00:36):

That is how 400 minus 365 works.

EW (01:00:39):

It's just kind of cool. Although didn't we set a limit to how many shows you can listen to in a week?

CW (01:00:45):

I don't think anybody should listen to more than one of these a week.

EW (01:00:48):

I'm okay with two, but the person who said they were listening to four or five a day for a couple of weeks, that's not a good level of us in your head. Alright. So you want me to go back to Winnie the Pooh?

CW (01:01:04):

Yes. It is time to end the show, our spectacular 400th episode, everyone.

EW (01:01:10):

I didn't even get cake. I thought about getting the cake that we got for the 300th episode, the one from Costco that was the chocolate, with the chocolate mousse, with the chocolate cake, with the frosting. And then I could have a piece, and you could have a piece. And then the other 48 pieces, I didn't know what to do with.

EW (01:01:32):

So I didn't order that. Although we could get the vegan one. That one was small. Anyway, listeners, thank you for hanging out with us for the 400th episode. We really appreciate you, and thank you to Christopher for producing and co-hosting. If you would like to talk to us, it's show@embedded.fm, or hit the contact link on embedded.fm.

EW (01:02:00):

And now for a little bit of Winnie the Pooh. [Winnie the Pooh excerpt].