369: More Pirate Jokes

Transcript from 369: More Pirate Jokes with Elecia White and Christopher White.

EW (00:00:06):

Hello, and welcome to Embedded. This is Elecia White, here with Christopher White, and this week we'll be talking about, well, whatever comes up,

CW (00:00:16):

Can we talk about tiredness?

EW (00:00:18):

Are you tired, Christopher?

CW (00:00:18):

I'm tired. Especially tired since getting this podcast recording took a half an hour to get going, and it all came down to unplugging one cable and plugging it back in.

EW (00:00:31):

Have you tried power cycling?

CW (00:00:34):

I did that three times before thinking of unplugging the cable and plugging it back in.

EW (00:00:38):

Okay. So what's up with you? What's new?

CW (00:00:41):

What's new? I don't know. What's new. I don't know. You tell me. What's new?

EW (00:00:49):

Tell us about your album. How's it going?

CW (00:00:50):

Really? Do people want to hear about this? I feel like I -

EW (00:00:53):

I'm going to make them listen to origami, so yeah.

CW (00:00:54):

I feel weird about it.

EW (00:00:55):

Do you want to do listener questions first? And we can save that to the end?

CW (00:00:59):

Yeah.

EW (00:00:59):

Okay.

CW (00:01:01):

Yeah.

EW (00:01:01):

I got an email from Kelsey, who has been a podcast listener, and read some of the blog, enjoyed all the advice and hard work we've put into this. Thank you, Kelsey.

EW (00:01:15):

"That being said, I've been working as an embedded engineer for about five years now, and I've grown tired of the corporate job structure."

EW (00:01:23):

"I'm seriously considering moving into consulting and was wondering if you could provide any advice or things to consider before making the jump. Do you think I need more experience before making that jump?"

CW (00:01:36):

I feel like we answered this question many times, and I'm worried that we answer it differently every time, and that people are going to find out.

CW (00:01:45):

Well, so I mean the first things to be aware of are kind of big life changes that happen if you don't work for a company, like health care, which, I mean, if you're in the United States, that's -

EW (00:02:02):

Exciting.

CW (00:02:03):

It's not, I mean, it's doable, but it does mean being aware of some changes that have to happen. And it's a little bit more expensive, and your options are usually less than what companies will give you.

EW (00:02:19):

Less good, more expensive.

CW (00:02:21):

Yeah.

EW (00:02:21):

Yeah.

CW (00:02:22):

Yeah.

EW (00:02:22):

Not less.

CW (00:02:24):

Well,...yeah. True. True. You might actually have more options to choose from, but they might not be, any of them, as good as what you can get from a company.

EW (00:02:35):

Five years. Let's go to that part.

CW (00:02:36):

Yeah.

EW (00:02:37):

Is five years long enough?

CW (00:02:40):

My flip response is probably not.

EW (00:02:43):

I think it was 10 or 15 for me.

CW (00:02:46):

Yeah. I mean, that's not to say it's not possible, or it's not worth trying, but I would want to try it in a way that was sort of non-destructive. I don't know, it depends on the company and your manager, but sometimes you can get away with moonlighting.

CW (00:03:05):

But that's hard these days because work is already so much work, right? So, yeah, five years is a little short.

EW (00:03:13):

Okay. So the thing is with our consulting, most of our clients, at least for the first many years of our consulting business came from people we knew from industry.

CW (00:03:26):

Or from companies we'd already worked for.

EW (00:03:28):

Or from companies we already worked for. They weren't, just get hired randomly.

CW (00:03:33):

Yeah.

EW (00:03:33):

They were, get hired from people we knew. And so the question isn't about how long have you been in industry, it's -

CW (00:03:39):

How many people do you know that you can get jobs from?

EW (00:03:42):

Yes. And I mean, you worked at Cisco, and Procket, and I worked at HP, and Agilent, and Crossbow, and LeapFrog before we consulted. And all of those people, all of that time, those people went to other companies.

CW (00:04:01):

[Affirmative].

EW (00:04:02):

So it was easier to find jobs at the other companies, because they'd all spread out too.

CW (00:04:08):

Yeah.

EW (00:04:08):

So the five years makes me a little hesitant. That doesn't mean no. It just means it's a concern.

CW (00:04:16):

What would you say about the methods of finding jobs out if you're not going to find a job within a network? What are some of the ways to actually find clients? Because I haven't done a lot of that.

CW (00:04:30):

I've either gotten, like you said, clients through my network, which has grown. Having more clients, you get more people in your network, and that just kind of snowballs...

CW (00:04:38):

Either that, or you've found clients,...you say, "Oh, we need this." And I say, "I can do that." And then, so I'm just joining what you're doing...But you have had success finding clients randomly.

EW (00:04:58):

Well, Fitbit came to me because of the book. We've gotten a few clients from the podcast. I've gotten a few clients from AngelList, which is for startups. Which is always a little scary, because you're not sure that they're going to be able to pay you.

EW (00:05:15):

I have gotten inquiries from LinkedIn, but those are almost invariably contract houses that want to pay minimum wage in order to get engineering work. There's things like Upwork, but again, you're likely looking at minimum wage.

EW (00:05:32):

And there's a little bit of difference between consulting and contracting. Contracting is usually, you're an engineer, you go, and you do the work. Consulting is less about doing the work and more about helping them do the work.

EW (00:05:52):

They're used pretty interchangeably, so it doesn't matter that much, but it's good to have that in your head as you're talking to people.

CW (00:06:00):

It's sort of a continuum too though, right?

EW (00:06:02):

Oh, absolutely.

CW (00:06:04):

I guess they said they were tired of corporate work, is that - ?

EW (00:06:08):

Corporate job structure.

CW (00:06:09):

Corporate job structure. Okay.

EW (00:06:14):

I don't know what that means.

CW (00:06:15):

Yeah. So where I was headed with that is, not all companies are the same.

EW (00:06:21):

Yes.

CW (00:06:21):

And so, let's just say for the sake of argument that they're at a big, giant company. And it's boring, and the work they can get their hands on is limited and small. Smaller companies, you can -

EW (00:06:36):

Do a lot more.

CW (00:06:36):

- do a lot more. And they feel different, and the corporate structure is different. Not all corporate structures are uniform. I mean, everything's a company, and there's always elements of corporate-ness in any sort of company.

CW (00:06:47):

But the smaller they are, the less of that there is, the more influence you have, the more things you might get to work on. So I would say, I guess my advice would be at five years -

EW (00:06:58):

Go to a startup.

CW (00:06:58):

- go to a different company.

EW (00:07:01):

I think go to a startup. Go to a small company.

CW (00:07:03):

Yeah.

EW (00:07:03):

That will give you more insight into how the business works, so that when you're ready to do consulting, -

CW (00:07:07):

Yes.

EW (00:07:07):

- the idea that you need to market in different ways won't be a shock to you.

CW (00:07:15):

And as much as corporate stuff is kind of awful, it does help to understand corporate stuff, even as a contractor.

EW (00:07:23):

Oh yeah. Because...you're still playing the political games. You're just have a different rule book.

CW (00:07:28):

Yeah, well, and to be fair, that's one of the big reasons I started consulting is I was sick of a lot of that stuff, -

EW (00:07:35):

[Affirmative].

CW (00:07:35):

- not to get too specific. And being able to say, "Well, they're paying me hourly. If they want me to do something stupid, then I'll do something stupid." Or get kind of a detachment because...for me, anyway, when I worked for companies, I got an emotional attachment.

CW (00:07:51):

"I work for this company. It's part of my identity. I am an employee of blah, and we work on this and make these amazing things." And I hate it when I'm asked to do something dumb or when the company does something dumb.

CW (00:08:01):

"Or I hate what the company's doing, or this product is dumb. Why am I here anymore?" And it all gets wrapped up and emotional, and I tended to get quite angry about stuff that I had very little influence or control over.

CW (00:08:15):

And sometimes I was angry, because I thought I should have influence, but moving to consulting allowed me, or contracting whatever you want to call it, allowed me more of an emotional distance. "I'm being hired to do this work, they're asking me to do it. I'm doing it."

CW (00:08:30):

My influence is at a remove. I'm getting paid by the hour. If they want me to sit here and listen to somebody blather for an hour, that's on their dime.

CW (00:08:38):

...I know it sounds kind of mercenary, but it all gave me a little bit of a separation to kind of emotionally distance myself from the company I was working for, which was very helpful. And having said, you should try a startup, that's -

EW (00:08:55):

Kind of the opposite.

CW (00:08:57):

- the opposite.

EW (00:08:57):

Yes.

CW (00:08:57):

Which isn't a bad thing...I really enjoyed some of my times at startups, where I was emotionally invested, and things were going well. And that can be some of the most fun, rewarding work that you do. But it doesn't necessarily last.

CW (00:09:10):

And you've just got to be aware of your own connection to things and what you're willing to tolerate. And I don't think that my personal emotional issues with companies is universal.

CW (00:09:24):

...It's something I've tried to stop. It's very difficult, but other people may not have that problem.

EW (00:09:31):

My problem is often that I don't know how many hours to work. People say they work 60-hour weeks.

CW (00:09:39):

People lie.

EW (00:09:39):

And I can't work a 60-hour week and be doing good work the whole time.

CW (00:09:44):

People may jump up and down on me saying this, but I think people who say they're doing 60 hours of actual work in front of a computer writing code a week are either lying or doing terrible, terrible work.

CW (00:09:59):

Because after about 30 to 35 of actual contact work with coding, I am toast, unless I'm just writing boilerplate or something.

EW (00:10:12):

I've pulled some long hours.

CW (00:10:14):

I have too. I have too, but -

EW (00:10:15):

But most, not -

CW (00:10:16):

They're short bursts. Very short bursts.

EW (00:10:17):

It's one or two weeks, not long-term.

CW (00:10:22):

Yeah, exactly.

EW (00:10:22):

But I always felt pressure to do more. And...I mean, I could figure out how to say no, but I couldn't figure out how to say no without feeling guilty.

CW (00:10:32):

Same here.

EW (00:10:33):

And the consulting lets me say, "As long as I get the things done that I've promised, I don't need to promise new things."

CW (00:10:41):

Right.

EW (00:10:41):

And if I want to bake cookies at three o'clock, I can, because I get paid by the hour.

CW (00:10:47):

And there's not that advancement thing. Like, "I've already been hired to do this job as a contractor. I don't feel any need to," I don't want to say go above and beyond, because I do want to do excellent work.

CW (00:11:05):

"I don't see any need to ingratiate myself with other parts of the company and...make sure I'm claiming a ton of credit for what I'm doing to make sure that my performance review is good." All those things that surround being an employee kind of fall by the wayside because you're a third-party.

CW (00:11:23):

And as a third-party, your work is either good, and it's evaluated as good, or it's not, and they'll tell you. But you're not doing quarterly reviews and talking to your manager about your goals. And it's like -

EW (00:11:38):

As long as they're signing checks.

CW (00:11:39):

You know what, I feel like more of an adult.

EW (00:11:40):

As long as they're signing checks, I must be doing a good job.

CW (00:11:41):

Yeah. And the thing on the hours, I've had that too. And...it's really hard, especially, I don't know if things are going to change with remote work, but hopefully becoming somewhat more acceptable. But...at a lot of companies, I used to get in fairly early, later in my career.

CW (00:12:02):

Earlier in my career, I was more of a "get there kind of mid-morning, work late, and then work at home after that." But, later I tended to think "I can get in early and I can be done early."

CW (00:12:16):

And I would get in around when you would. We would commute together sometimes, and get in around eight or whatever, and leave around five, five-thirty. And...almost every day as I was heading out, people would joke at me or harass me for leaving early, say "Half a day?"

CW (00:12:37):

And these were folks who were showing up at 11. So...yeah, that whole pressure about hours is very strange. And it's very strange that engineers buy it, because it's a scam.

EW (00:12:51):

It is a scam. I mean, it's not about time of butt in chair. Although that's important. It's about the time that you learn to do your job.

EW (00:13:06):

I mean, if I have a new chip, I may be sitting at my desk reading the datasheet, or I may put it on my iPad and go sit outside.

CW (00:13:15):

Yeah, but, yeah.

EW (00:13:15):

Either way it's work.

CW (00:13:16):

Yeah.

EW (00:13:17):

One, it looks like work, and one looks like I'm goofing off.

CW (00:13:20):

Yeah. Anyway, I don't know if we've helped them.

EW (00:13:25):

I don't either. Kelsey, what do you think? We suggest a startup, or maybe waiting a little bit longer, or maybe going ahead, we have no idea.

CW (00:13:35):

Well, the other option you mentioned is contracting houses. And that's another possibility. There are lots of those. Which is a full-time job, but you're doing contracting.

CW (00:13:46):

You can learn the ins and outs, and see a lot of other clients and projects, in a short period of time. And then kind of parlay that into your own business later.

EW (00:13:58):

And they usually do the health insurance.

CW (00:14:01):

Oh yeah. Yeah. Because you're an employee.

EW (00:14:03):

But as a consultant by yourself, or as a consultant for one of these companies, there's a good chance that the part of the corporate structure that is in charge of educating you, the one that will send you to a conference once a year, or "We'll buy books for you," or "We'll provide brown bag lunches," that all goes away.

EW (00:14:27):

You're in charge of your own education. And it goes back to feeling like an adult, but sometimes it's nice when somebody else says, "Hey, do you want to go here? I'll pay for you to spend a week at the Grace Hopper Conference in Colorado."

CW (00:14:43):

I guess. Yeah, I guess...But paradoxically, some of those things are more important when you're a consultant and trying to network.

EW (00:14:53):

I paid for myself to go to the Grace Hopper Conference.

CW (00:14:55):

Yeah.

EW (00:14:58):

Okay. So next question from Sahil, on the Patreon Slack, would like to know...how you go about architecting a project and the personal lessons along the way that shaped the thought process. Okay, go. That is quite the look.

CW (00:15:20):

Am I actually supposed to answer this question?

EW (00:15:24):

I actually wrote it because I could talk about origami and Python scripts.

CW (00:15:30):

Well, okay.

EW (00:15:31):

But I also -

CW (00:15:31):

...I mean,...each of those words is ill-defined. So, architecting. I'm going to put that to the side. What was it? Project or product?

EW (00:15:44):

Project.

CW (00:15:45):

Project. Project is also ill-defined. What was the rest of the question? Oh, lessons learned along the way. Alright.

EW (00:15:52):

Personal lessons. Shaped the thought process.

CW (00:15:54):

I mean, I don't know what kind of project he's talking about. Is he talking about personal projects? Is he talking about small subprojects at companies? Is he talking about products? Is he talking about, yeah.

CW (00:16:09):

And then architecting, okay. That's a big word. Architecting tends to be talking about large projects...I don't think about architecting when I'm playing around with a microcontroller or something.

EW (00:16:22):

Okay. So I'm going to answer this question.

CW (00:16:24):

Because you hate my answer, because I haven't answered anything. I've just questioned the premise.

EW (00:16:28):

The premise. So one of the projects I have agreed to do is to give a talk at the Embedded Online Conference. Remember, we had Jacob on a few weeks ago to talk about the Embedded Online Conference. He'll be talking about RTOSs.

EW (00:16:43):

I will be talking about map files, because I love map files. And I'm always surprised when people don't know them.

CW (00:16:49):

You love map files?

EW (00:16:52):

I like map files.

CW (00:16:54):

You're backing away pretty quickly.

EW (00:16:56):

I like map files more than I like link files.

CW (00:17:00):

Well, yeah.

EW (00:17:02):

I like introducing people to map files, because it's one of those things where embedded is actually a little better than normal software development, that you can actually see all these things.

EW (00:17:12):

And it's just neat to see how the memory goes together. But when you start, it's just a ball of HEX, and numbers, and weirdly-formatted file names, and horror. It's just confusion and horror. So map files, I'm going to give a talk about that.

EW (00:17:36):

I started with that idea, which was kind of a kernel leftover from having introduced a couple of people to it. And I thought, "Next time I need to give a talk, I should think about map files, because these people don't know about it, and it was fun to go over."

EW (00:17:52):

And then I agreed to do it. I wrote up the abstract, thinking about the most important things I wanted to cover. And then I spent a lot of time looking up pirate jokes, because that's part of my personal process for architecting a project.

EW (00:18:07):

Shaking his head at me. I wish you could see it. But actually, there is a part of my process that is, "Go off and do something silly as you think about what it is you really want to do."

EW (00:18:22):

So I also actually looked in my own book about how it said to use map files, because it's been a long time. But I knew that in the book, "Making Embedded Systems," there was a section about using map files to reduce RAM space and code space usage.

EW (00:18:44):

So I looked at that to make sure it was what I wanted. And I thought about other ways to use map files with debugging really hard problems that deal with memory or deal with crashes. And then bootloaders. I spend a lot of time looking at my map file when I have to put in a bootloader.

EW (00:19:04):

So I thought about that. And then more pirate jokes. And then I wanted to think, what could I bring to this that is different than looking at a wall of hex? I definitely will want to look at some map files during the presentation.

EW (00:19:24):

But when I think about putting together a project like this, it's the idea that you need as much sugar as spice. You need as much fun as you do painful details. At least as much fun. And so, I mean, it couldn't all be pirate jokes.

EW (00:19:52):

So I started thinking about, "Okay, what else can I play with? What else can I make interesting and useful?" Now I started reading about how to make actual fantasy Dungeons and Dragons-style maps, thinking I could have RAMlandia, and the Federation of Flash, and talk about what things go in what areas.

EW (00:20:15):

Because map files look different based on their compilers. So I wanted to make sure that you knew what would be in the map file at the end of the presentation. You would know what to expect.

EW (00:20:26):

Even if your map file looks nothing like mine, you would know that if you wanted to reduce your RAM usage, that diff is an important thing, and to find the biggest users of RAM, because those are the ones you can cut the most.

EW (00:20:40):

Finding the one byte of RAM, asking can you cut it, is just pointless. So that was my process, is to start with, "Okay, this is what I want to do in short form." Go off and think about it. Do some research in longer form. Kind of get an overview of what I want to do.

EW (00:21:02):

And then, and this is really for personal projects, and then think about, "What can I bring to it that is different than what I've done before or what anybody else has done before?"

EW (00:21:13):

And then try to make sure that that all fits together. ...I don't have to do my presentation for another three weeks. So I've got some space there. You have a comment on that?

CW (00:21:26):

I mean...I don't know that, yeah.

EW (00:21:33):

You're telling me I didn't answer the project, err the question?

CW (00:21:36):

I think you answered the question. I don't think you answered the question that they wanted to be answered, but that's fine.

EW (00:21:45):

I mean, with origami Python scripts, I have these Python scripts that generate different patterns that I can then fold. And I play with them to make edges curved so that my snails are not flat. Or I have a new pattern that is for conch-type shells.

EW (00:22:09):

And I know how to do it with all flat folds, because that's in a book, but it still took a lot of math to generate stuff. And then I want to add curves to it because I like the curvy, foldy things.

CW (00:22:23):

You're saying you random walk amongst things.

EW (00:22:26):

And that is actually what I'm saying, is that the -

CW (00:22:30):

But how, yeah.

EW (00:22:30):

- architecture there is truly just a random walk -

CW (00:22:34):

I don't think there's any architecture.

EW (00:22:34):

- towards what I want to do.

CW (00:22:35):

There's no architecture. Architecture is planning. Then if there's no planning, there's no architecture.

EW (00:22:43):

At each step, I have to sit down and figure out the math.

CW (00:22:47):

Make a decision, sure.

EW (00:22:47):

Figure out which parts I'm following from the book that has the straight line version.

CW (00:22:52):

Yeah.

EW (00:22:52):

And figure out if I understand the curved nature. And then for the conch shells,...I knew when I started, I had a whole bunch of different parameters, like how the base and mouth work.

EW (00:23:08):

And so I put those all in, but they were all just parameters and thinking about, "How do I inherit the path, patch things from matplotlib, or do I encapsulate it?" It wasn't a sit down and design at all.

CW (00:23:29):

It's not, because then you're not making anything. You're doing research.

EW (00:23:32):

Okay. That's actually true. I am doing research on that one. That is why it is more random walk. And why I sit down, and scribble out two pages of math, and then write some code, and then fold some stuff, and then -

CW (00:23:45):

Yeah. Yeah.

EW (00:23:46):

- do some math.

CW (00:23:46):

...Yeah, that's natural for research. Research and architecture, I think, are often completely at odds. You...wouldn't start the beginning of this origami process and draw a block diagram. That doesn't make any sense.

CW (00:24:01):

What would you draw a block diagram of except a square with the word origami in the middle of it, right?

EW (00:24:06):

Well, now I could.

CW (00:24:06):

But if you were going to make a gadget, or a product, probably the first thing you would do, after kind of coming up with a concept, is start to block diagram it, right?

EW (00:24:18):

There's actually a whole chapter in my book about this, isn't there?

CW (00:24:20):

Yeah. That's where I was headed, but you've been doing machine learning research and origami too long, and you don't remember how to do it.

EW (00:24:32):

Well, no. I mean with -

CW (00:24:33):

I'm kidding. I'm totally kidding.

EW (00:24:34):

With the conference preparation, that is more along the lines of -

CW (00:24:40):

Yeah.

EW (00:24:40):

I could have drawn a block diagram at the very beginning.

CW (00:24:42):

Yeah, yeah. Totally.

EW (00:24:42):

I kind of did with the abstract.

CW (00:24:44):

Yeah.

EW (00:24:44):

I knew I wanted to hit this, this, and this points.

CW (00:24:47):

Yeah.

EW (00:24:48):

And I do like the drawing of things, especially embedded systems where you have physical things you're drawing. And...you can draw them proportional to each other, based on how complicated they are, and you can draw them next to each other based on what things need to touch each other.

EW (00:25:07):

And that gives you an idea of how to architect the code, because if something is big, and complicated, and only touches one point, don't make it have globals that are used across the system.

CW (00:25:20):

Yeah. But I think to answer his question for myself, for a technical project,...starting from the top down and big blocks, and moving down from there, making sure that things that are modules with areas of concern, or areas of ownership, are truly modules.

CW (00:25:46):

And then from there working on figuring out how things are interconnected and figuring out how they need to communicate. That's going to be a map to guide you to implementation. You pick a piece, and you do it, and you pick another piece, and you do it.

CW (00:26:02):

You get them to talk, you do unit tests between them, that kind of thing. That's what I usually think about with architecture, and the mistakes I've made usually come down to not fully understanding the requirements, or not fully understanding something that that's been diagrammed incorrectly.

CW (00:26:21):

There's a module, and it needs to do something that hasn't been described yet. I thought it needed to do this, but it needs to do this and this, and it communicates with this person. And now there is some deadlock or inner communication problem, because it wasn't fully expressed.

CW (00:26:41):

But that kind of thing applies to all kinds of projects. But it does seem to only apply to things where there's kind of an end point, or at least big milestones. Even if you may iterate on it multiple times, there's a, "Okay, I'm at this stage, and...this version of it is done."

CW (00:27:00):

"I can do more sophisticated things, and then draw more complicated block diagrams, and delve in." And each of those block diagrams, each of the blocks might have a block diagram, but I like hierarchical thought about building things.

CW (00:27:13):

And that definitely can work for talks, because you can break it down into sections. You have your overarching talk and its point. And then the topic sometimes will divide itself up into sections or things to talk about.

CW (00:27:27):

And those sections will intersect with other sections. So I think that that works. But research, research is a different animal. And maybe that's why research,...for me, it's very difficult, because there is often very little guidepost. It's like -

EW (00:27:45):

And I don't know what -

CW (00:27:46):

And you can get into cul-de-sacs.

EW (00:27:48):

Yes. I don't know that what I want to do with the conches is possible. I have some ideas, and I thought I had a really good idea, and it turned out to be not a good idea. But...I guess that is why it is a random walk, because I know that I'm going to hit points that I can't continue on.

CW (00:28:08):

Yeah. And the determining things that aren't good ideas.

CW (00:28:11):

It's interesting, because the difference between traditional engineering R&D, which has research in the word, and research research, like mathematical research, or physics research, or the stuff you're doing, there's a real disincentive to find things that don't work, right?

CW (00:28:33):

If you're building a product, you want to design up front to give yourself the maximum chance that things are going to work,...so you want to limit risk. You want to design things up front. You want to know all the answers as much as you can before you embark on a direction.

CW (00:28:52):

Whereas with research, oftentimes the point is to do something novel, and novel things entail risk. And you might be wrong, and it might not work, but you might learn something in the process which guides you to the next idea.

EW (00:29:10):

Which might also be wrong, but -

CW (00:29:11):

Which might also be wrong.

EW (00:29:11):

- you might learn something in the process.

CW (00:29:15):

So yeah, it's kind of sad in a way that company work can't do that, but there's a goal in mind. There's a thing, you have to make this thing, and we have to sell it. Otherwise we can't keep the lights on and keep our stock price high, or whatever.

CW (00:29:29):

And some companies try to build those little bubbles where you can experiment like that. But I've never personally been, okay, I've been involved in one that was like that, but I didn't enjoy it because it shouldn't have been like that.

CW (00:29:42):

It was more like, "We don't know what to build, but we're all mad at you, and you need to work a lot longer until we figure it out."

EW (00:29:48):

We have a client, my favorite client, who I ended up presenting a null result, a path that was totally bogus. And it was a path that I had said we definitely needed to travel. And I kind of was not looking forward to presenting the, "This was bogus, don't do this."

EW (00:30:11):

And it turned out they really liked it. They really liked that there were no results, and that I could show them. And I think that's probably why they're my favorite client.

CW (00:30:21):

But they're a research client.

EW (00:30:22):

They are a research client. Although they are trying to produce something, there is a -

CW (00:30:27):

Through research though.

EW (00:30:27):

- large component of research.

CW (00:30:31):

Yeah. And the thing is not particularly well-defined. I mean, there's a goal, but it's not, "We will deliver to you a compact disc with the software, and the inputs, and the outputs that do this."

CW (00:30:42):

It's, "We're going to try this, and we're going to see if we can get it to work."

EW (00:30:44):

Yeah.

CW (00:30:45):

And, however we get there is not defined by a block diagram.

EW (00:30:52):

I wonder if that means that I really want to do more research than development.

CW (00:30:55):

That's kind of what I was laughing about, because I think if you'd answered this question two and a half years ago, or three years ago on this podcast, I think you would have launched into stuff about top-level design.

EW (00:31:12):

Yeah. Yeah. And I mean, that's actually why my book is good, and it is useful. And it is one that I go and look at sometimes, because I know there are different ways to put things together.

EW (00:31:24):

And if I can find the right words to describe how I don't think this thing is going together correctly, if we just look at it this way, but working on my own projects tends to be a lot more free-form, of course. Okay. New topic. Hardware or social media?

CW (00:31:47):

Am I supposed to say which one is bad?

EW (00:31:51):

Which one we're going to talk about next.

CW (00:31:52):

Oh, I thought it was a lightning round question. Hardware.

EW (00:31:56):

Analog Discovery folks sent me their latest in awesomeness. Did you get to see it at all?

CW (00:32:07):

Just very briefly.

EW (00:32:09):

So there's the Analog Discovery Pro. It's a 3000 series, let me see, let me look, what is it? It is the ADPro 3450, and I got a pre-production unit. So that was kind of exciting. And it wasn't what I expected.

CW (00:32:34):

What did you expect?

EW (00:32:34):

Well, Analog -

CW (00:32:35):

You expected the Analog Discovery 3?

EW (00:32:37):

The Analog Discovery 2 and the Analog Discovery have both been pucks -

CW (00:32:42):

Yeah.

EW (00:32:42):

- that plug into your computer, and they've been clear, and they've been cute. They've been just adorable, because they're slick and small. But this was not. And so when I first got it, I was like, "What is this?"

EW (00:33:01):

But it turns out to be a mixed signal oscilloscope, pretty high resolution, although not any more high resolution than the things I already had in the house. So that was kind of a bummer. The thing that made it interesting in the end was the fact that you can program it. You can already program the Analog Discoveries -

CW (00:33:27):

Well, you can script them from the host computer.

EW (00:33:29):

Right. But this has a Linux mode, where you can script it from inside the device. And I started thinking about, "Where would I use this?" And it's not just because it's less cute, but I immediately went to manufacturing line.

CW (00:33:48):

[Affirmative].

EW (00:33:48):

It has that rugged quality that would fit there. But looks aside, if you could script it in Linux mode to do all of your final tests on your board, it would be really helpful. I didn't figure out whether or not I could actually use a JTAG and program from it as well.

CW (00:34:11):

Oh, wow. That'd be pretty amazing.

EW (00:34:13):

But wouldn't it be pretty amazing? And I mean, J-Link works with Linux, so there's no reason why it wouldn't work.

CW (00:34:21):

Are there any limitations on the, I mean, I didn't look deeply. Were there any limitations on the Linux support? Would you have to script in a particular thing or...do you just get a shell prompt and you do whatever you want?

EW (00:34:35):

No, command line.

CW (00:34:35):

Wow...I mean, people can do a lot with that.

EW (00:34:37):

Yeah. But I ran out of time to look at it. So I sent it along to a friend, Peter, who somehow sent me a bunch of emails I didn't get. And so I'm not up to date on exactly what he's been doing, but it sounds kind of cool from the email I finally did get.

EW (00:34:59):

And there'll probably be a little bit more about that. And I think in a couple months, a couple weeks, we might be giving one away.

CW (00:35:05):

Okay.

EW (00:35:07):

So that's the hardware update. Social media. We are on Facebook, and Instagram, and Twitter, and LinkedIn now. As well as the internet, and Google Podcasts, and Spotify, and iTunes, and wherever else you get your podcasts from.

CW (00:35:31):

Anyone listening to this already knows that.

EW (00:35:33):

Well, those last few, yes. But the Instagram, and the Facebook, and the LinkedIn are all kind of new.

CW (00:35:40):

Yep.

EW (00:35:42):

They get slightly different content. Which is a word that I cannot believe I say with any seriousness, but they do get slightly different views of what's going on. Different pictures, or different quotes, and -

CW (00:35:56):

Different tone.

EW (00:35:57):

Different tone. And aside from all of those, we also ended up on Reddit. I guess it was one of Svec's old ESE 101 posts from the blog, ended up on Reddit, and we got a pretty big boost to the website from that.

EW (00:36:22):

It was kind of weird, because it was a bit of an old post. Which is to say, if you feel like putting the show on Reddit, feel free. I'm good with that.

CW (00:36:31):

Yeah. We're not going to do it, because it's not usually allowed. And also, I'm not going to do it.

EW (00:36:37):

I would do it when we have guests. I'm willing to do it for the guests, but I also don't want to get that self-promotion thing.

CW (00:36:44):

Yeah.

EW (00:36:46):

Our social media person has also asked that we do a pitch video. So I wondered if we could record that. 30 seconds of what the show is about. Are you ready? Go.

CW (00:36:56):

Go ahead. I'm recording. Still recording. I didn't stop recording. So you can just go anytime.

EW (00:37:03):

Hi, we're the hosts of Embedded.

CW (00:37:06):

Hi, I'm Christopher White.

EW (00:37:08):

I'm Elecia White.

CW (00:37:10):

We talk about stuff that no one cares about for hours.

EW (00:37:15):

We talk about the how and why of engineering and the people and dogs who cough through it.

BW (00:37:22):

[Small dog cough].

CW (00:37:27):

[Laughter]. This is staying in the show, right?

EW (00:37:28):

Oh yeah.

CW (00:37:31):

I don't think we can record a promo on the fly. No.

EW (00:37:34):

Okay.

CW (00:37:35):

I don't think I'm capable of doing that.

EW (00:37:39):

So the album.

CW (00:37:41):

Yeah.

EW (00:37:41):

Tell me about the album.

CW (00:37:43):

Oh my God.

EW (00:37:44):

First of all, a question from a listener. Why vinyl?

CW (00:37:49):

Why vinyl? Yes, that's a very good question. So, the thing about music, over the last couple of decades, I don't know if people have noticed, but most of it has become free. And free in the sense of, you're not buying a record for $10, a CD, for $10 or $15 anymore, and then ripping it at home.

CW (00:38:17):

Most people are getting their music from Spotify, or iTunes, or whatever. And they pay 10 bucks a month to them, and then they get the entire catalog.

CW (00:38:27):

And what happens with that is the musicians, in theory, get paid every time you listen to one of their songs. And the amount that you get paid per listen to a song is a fraction of a fraction of a penny.

EW (00:38:44):

It was like three hundreds of a penny or something.

CW (00:38:46):

Yeah. So, if you would imagine an artist trying to make, I'm not even talking about making a lot of money here, I'm not even talking about really making money. I'm going to address why I...don't care about the money aspect so much.

CW (00:38:59):

But just for now to explain, I think I calculated you need a million listens to earn under a thousand dollars, like $900 or $800. So if you think about a million listens, that's a major artist, right?...That's a big indie artist or something.

CW (00:39:17):

That's not your local band that's producing a record every once in a while. I would be happy to get a thousand listens a month. That would make me really happy that people were listening to my music.

EW (00:39:29):

Let's see, thousand listens in a month -

CW (00:39:29):

But it would be about five bucks a month.

EW (00:39:33):

Oh, I was going to try to figure out how many months it would take to get to a million dollars.

CW (00:39:37):

Forever.

EW (00:39:37):

Or to a million listens.

CW (00:39:38):

But the money is beside the point. It's the, how do I express this? You kind of get lost in the sea of music too.

EW (00:39:52):

There's a lot of music out there.

CW (00:39:53):

You can put the music up on Spotify. And I've done this. We have some songs up there, and I have done no promotion for them. And they get no listens. None. Zero. And that's not unexpected, because nobody can find it. They're not looking for it.

CW (00:40:07):

The only information is our band bio, and the genre, and what have you. And...Spotify doesn't surface that stuff. They have their own weird system of playlists and things, which I have to learn about and deal with when the album releases.

CW (00:40:19):

But promotion is very difficult. One of the ways to connect with people is to give something physical. And back when there were CDs,...that was a physical item. And album art, and you got the little thing. But it was small and there wasn't much to it.

CW (00:40:40):

Vinyl is kind of the last sort of real, physical artifact, music thing, that people can buy from a band and enjoy having as just the thing in itself, even if they don't put it on a record player. Because it's this big format. The cover art is a foot by a foot wide.

CW (00:41:03):

It's almost a picture-sized thing. You can play with that as a visual artist and put cool stuff on it. And it's just neat. And you have this thing that the band made, and it makes you feel like you have some ownership of the music.

CW (00:41:19):

The actual playback, so I bought her a turntable last year in prep for producing this record, because I wanted to get familiar with the format. I'd never had vinyl before. And I wanted to have a record player, so I could test the pressings that come back and make sure that everything's okay before we go to production.

CW (00:41:39):

And I'm a major skeptic of vinyl in terms of sound quality. Of course, CDs sound better. Of course, streaming sounds better objectively from just a technical point of view. It's a perfect reproduction for the most part of what was recorded.

CW (00:41:56):

Having said that, putting a record on, and sitting and reading, I am much more likely to enjoy that and relax, than if I connect my phone to the receiver, and plunk around on Spotify, and try to find a bunch of songs or a record to listen to.

CW (00:42:15):

There's just something about, it's almost like reading a hardcover book, a printed book instead of reading on your iPad. And that's the kind of feeling. It's like, "Okay, I'm doing this now." The record is going to go. It's a huge pain to change songs.

CW (00:42:30):

So it's going to go from, start to end until I flip the side, and I don't have to worry about it. And you know what, they don't sound that bad. They sound a little different than CDs, but I was really shocked...I was expecting noise all over the place and clicks and pops.

EW (00:42:45):

Hissing.

CW (00:42:46):

There's a little bit of that, but not a lot on a well-pressed record. And they sound really good. And maybe my ears are shot because I've been playing drums for 20 years too, and listening to a lot of loud rock music, but is this what people tune in to the show for?

EW (00:43:00):

Oh, yeah.

CW (00:43:00):

Anyway, but they sounded really good. And...if you A/B'd it back and forth, and said, "Here's the CD," or "Here's Spotify," and "Here's the record," yeah, I'm going to be able to tell the difference.

CW (00:43:12):

But two songs in, listening to the record, my brain adjusts and I don't care. It just sounds good. So that part bothered me less.

CW (00:43:20):

And when I asked people if they'd be interested in vinyl, I got a pretty big response of people saying, "Yeah," and they'd be more apt to support the band that way than just throwing it up on iTunes, and saying, "Please give us $9," or whatever. That's the theory. That's the theory.

EW (00:43:44):

There is the ritual and physicality of listening to the vinyl.

CW (00:43:48):

Yeah. Yeah.

EW (00:43:49):

I thought it was silly, but I have come to enjoy it, because it's something that's happening. It's not background noise.

CW (00:44:00):

Yeah. Yeah. And pulling the record out, it's this big thing, and it's got the art on it, and you can see the grooves. It's...a weird thing. And I know maybe it's just because I'm old, but temper that with I didn't have vinyl when I was younger.

CW (00:44:16):

So there's no nostalgia here. I started with cassette tapes, which are truly an awful format, the worst format, except maybe Edison cylinders or something. I don't know. Tapes were awful.

CW (00:44:29):

Except, the cool thing about tapes is you can make mix tapes, which allowed them to be way cooler than they deserved to be...And then CDs, which were cool, but not as cool in terms of physicality as vinyl turns out to be.

CW (00:44:47):

So that's the main reason is to have produced, and it's kind of selfish too. It's not just, "I want people to buy this," because I don't expect to sell very many of these, to be perfectly honest. It's to have that artifact for myself of this work, this thing that I made, and my brother and I made together that we spent years on.

CW (00:45:08):

We didn't spend years on it in the sense of we've been working every day on it. If we'd gone to a studio, it probably would have taken us a month, six weeks, start to finish, but we've done it over the period of a couple years. And it's been a lot of work, and it's been very difficult.

CW (00:45:22):

And I feel like we've accomplished something. And having that to keep for myself, and say, "This is what we made," is way more exciting than going to the Apple music store, and seeing a little thumbnail for the artwork, and the list of tracks.

CW (00:45:38):

Which is all I've got for the previous records we've done, except for some CDs, but I wouldn't put a CD on a wall, right? I might...frame a vinyl record and put it on a wall. That'd be pretty cool. So that's the long, long, long answer about why vinyl.

EW (00:45:57):

The follow-up question is will that be the only way it is available?

CW (00:46:02):

Absolutely not. That would be a very bad choice. No, the vinyl records are going to have download cards with them. So everybody's going to be able to download high quality digital.

CW (00:46:13):

And it's going to be on iTunes and it's going to be on Spotify. And it's going to be on whatever, every music store you can think of. So, yeah, I mean, it's going to be a normal release.

CW (00:46:23):

It's just that's going to be the primary physical option. We're not making CDs this time...Nobody buys CDs.

EW (00:46:31):

You did more than the music, and you spent quite a lot of effort, quite a lot of time, on more than the music.

CW (00:46:40):

That's my fault.

EW (00:46:45):

It's your fault?

CW (00:46:45):

Well, I kind of -

EW (00:46:45):

You and Matthew were saying, "Okay, the music's done. Somebody needs to - "

CW (00:46:50):

No. It's the album art she's talking about. I spent a lot of time on the album art. But I started looking for people to do it. And then, I don't know, I just started playing around thinking I could do it myself maybe. And...I guess I had kind of a concept idea.

CW (00:47:11):

It wasn't a very clear idea to start with. And then I just kept running with that, but I spent a lot of time on it. But mostly because I didn't know what I was doing, and I was learning as I went. So there was a lot of learning.

EW (00:47:26):

You had a concept. I mean, you started out with a good concept -

CW (00:47:31):

But the concept was very broad.

EW (00:47:32):

- and you kept expanding it.

CW (00:47:33):

It's like, electronics is a concept. It was a genre.

EW (00:47:37):

No, you wanted a comic book-looking -

CW (00:47:40):

Yeah, cover. That was it.

EW (00:47:41):

- cover.

CW (00:47:41):

That was the whole concept.

EW (00:47:41):

- with a giant wave attacking a surfer.

CW (00:47:47):

No, that was later.

EW (00:47:48):

You wanted a giant wave and a surfer.

CW (00:47:50):

Yeah. I mean, a wave, and a surfer in a comic book style...And went through a bunch of iterations, and yeah, which I might post some time, once the album is released. It's my journey through learning digital art, which has been enlightening.

CW (00:48:06):

It's fun, but it's hard. Art is hard. All kinds of art are hard. Music was hard too, but I wouldn't have spent that much time if we weren't doing vinyl, because...the size of what you see on iTunes is an inch or two wide. Who cares?

EW (00:48:25):

And you did the back.

CW (00:48:26):

I mean, it's all the art. Yeah.

EW (00:48:29):

It's all the art...And it went from three panels in a comic book, three partial panels to -

CW (00:48:33):

Yeah, yeah.

EW (00:48:35):

- to pages.

CW (00:48:37):

Yeah. Well, it's mostly silly.

EW (00:48:41):

Yeah, but it's neat. It's neat that you enjoyed it so much.

CW (00:48:45):

It was a good place to put my brain for the last year of whatever this has been. So yeah. Anyway, I don't know. I don't know if people are going to be interested. I don't really want to sell it here. I feel very funny about self-promotion of any kind.

CW (00:49:03):

But I am going to have to do some marketing, and I'm learning about that too...We've one music video that somebody is doing for us. I'm going to try to do one. Yet another learning experience. Somebody else has expressed interest -

EW (00:49:19):

In doing a music video.

CW (00:49:20):

Yeah. And then...we're planning on doing a Kickstarter, an actual Kickstarter. And I have to learn all about that. And that's somewhat daunting.

CW (00:49:30):

I mean, the good news is that...we're not making a company, we're not making a product, the risk for Kickstarter failing isn't that we're going to be out of money or anything. We're making the records no matter what.

CW (00:49:44):

So the Kickstarter is mostly to kind of get people interested, and generate some buzz. And sell some cool tiers if we can think of fun things to connect with the band.

EW (00:49:57):

What are your tiers going to be? Do you know?

CW (00:49:57):

I haven't really thought about it. I mean, I have thought about it, but...we haven't settled on stuff. There'll be signed test pressings and signed versions of the record. There'll be special -

EW (00:50:07):

Make Matthew and Christopher sing "Happy Birthday to You."

CW (00:50:11):

If you want to sign up for that, we'll do that. But there'll be special colored vinyl, that's special, and a limited run of that. And we thought about other stuff.

EW (00:50:24):

Stickers, postcards.

CW (00:50:24):

Yeah, little things like that. Or if you want drum lessons, or guitar lessons, or something like that, maybe an hour lesson. Yeah. I mean, we're still toying with ideas and stuff.

CW (00:50:38):

I don't really know how that will go. But yeah, I mean, I don't think this is what people tune into the show for.

EW (00:50:47):

I think people are interested. When I asked someone what they thought we should talk about when it was just us, the questions were all about the album.

CW (00:50:56):

Alright.

EW (00:50:56):

...I mean, we have a podcast. You should tell them when you're doing other things that they might find interesting.

CW (00:51:07):

Yeah. Well,...I mean, it's going to be a month or six weeks before we really start pushing it.

EW (00:51:13):

Okay.

CW (00:51:13):

So I don't want to push too hard right now. Not to say I'm going to push it here, but, yeah, I expect to be much louder about it in various other fora.

EW (00:51:26):

Fair enough. That does remind me, I want to push something. Transcripts. We are still doing transcripts. Now they have a spot on the website that makes them much easier to find. I reviewed the transcript from last week's repeat show, "Yolo Snarf."

EW (00:51:49):

And it was pretty funny. I mean, I didn't re-listen to the show, but I did do the transcript, and it was good. And if you've already listened this far, or maybe you're reading the transcript. How weird.

EW (00:52:08):

You've already listened to this far, so you probably aren't one of the people who really prefers reading to listening. But if you know somebody who is, maybe point them there, embedded.fm/transcripts, or embedded.fm, and then you just click the transcript button.

EW (00:52:27):

That's all I had. Do you have anything?

CW (00:52:29):

No, I guess not. I should probably do some paying work today.

EW (00:52:37):

Yeah. I did a little bit of it. I fixed a bug, and then I decided that was enough, but really I needed to fix four bugs.

CW (00:52:47):

Yeah. I have to...TensorFlow.

EW (00:52:54):

And C++. And C.

CW (00:52:55):

Oh, no. No, no. Do you want me to go on about this?

EW (00:52:59):

Oh, sure.

CW (00:52:59):

Sorry, people who were expecting to be able to stop listening. You can still stop listening. Man, I am just learning stuff about TensorFlow in the last few weeks that I didn't want to know.

CW (00:53:09):

So, let me try to this in as vague a way as possible. I have a client. It is the client you talked about that we like. And they have a subclient.

EW (00:53:21):

I mean, we like most of our clients.

CW (00:53:23):

That's true. We like you all equally. What was I talking about? Right. They have a subclient.

CW (00:53:32):

And so the deal is we're doing a research project to try to do a machine learning model, to do some kind of detection, and deliver it to another organization, so that they can get experience with it, use it, whatever.

CW (00:53:49):

And all along the platform that this is going to run on has been NVIDIA Xavier. It's the little not quite hockey puck. Small square obelisk -

EW (00:54:04):

Brick.

CW (00:54:04):

- that NVIDIA makes that's a ARM-based Linux computer with, I wouldn't say a high end GPU, but a high-end embedded GPU for machine learning applications.

CW (00:54:14):

And so the idea is it's a small industrial box that you can put in a thing, a car, an aircraft, and do machine learning stuff on it.

EW (00:54:25):

It's the big brother to the TX2.

CW (00:54:27):

Yeah, the TX2s. So that's ARM. So...the client has been doing stuff with their own networks, and...they've been doing the inference step, the feedforward step.

CW (00:54:43):

The step where you take an input to the network, run it through the network, and then get the answer out. Whether it's a classification or whatever, or detection. They've been doing that with something called GStreamer.

EW (00:54:56):

Half the people out there just sighed and groaned in sadness.

CW (00:55:01):

And I've been using GStreamer too. But GStreamer..., if you haven't heard of it, it's this massive open source video processing system that's organized around the concept of a pipeline. So you create this GStreamer pipeline out of blocks that do things like take your image in, and change its format, and resize it, and then -

EW (00:55:24):

Add a timecode.

CW (00:55:24):

- add a timecode, decode video into individual frame. You can do all this stuff, and you build these pipelines, graphs. And then one of the things that you can do is...you can write your own plugin for it to make your own node in the graph.

CW (00:55:40):

And a lot of people create a plugin that loads a neural network model and runs it as part of this video processing graph. So you don't have to do anything new, theoretically, in your system. You just make your graph, you take your video in, you convert it.

CW (00:55:53):

The next node is a neural network thing. And then the next node is maybe, "Okay, I take those results and draw a box around the thing I'm detecting." And you're good.

EW (00:56:02):

And the pipeline methodology in GStreamer is very well understood.

CW (00:56:06):

Very well understood, but it works really, really brittle-ly. But I won't talk about that right now. So anyway, that's what they're doing. We've been not doing that with our research.

CW (00:56:17):

We've been doing most stuff in Python, even though we're using GStreamer to feed video into our network. We leave GStreamer and don't come back. So the goal is to kind of take what we're doing and make it so the client can load models that we've created with a GStreamer plugin.

CW (00:56:35):

Okay. So I have to write the GStreamer plugin that loads our model and executes it. I thought this would be easy.

EW (00:56:45):

What could possibly go wrong?

CW (00:56:46):

Problem number one was assuming the client would want the ARM version that would run on Xavier. That turns out to have been false. So, NVIDIA, TensorFlow. I mean, I know they're different people. It's difficult to get a build. The plugin has to be written in C or C++. it's difficult to get a build of the C++ libraries for TensorFlow for ARM.

CW (00:57:17):

You have to build it yourself. It's extremely difficult to build it yourself. And to build it for ARM or Xavier, you have to go find patches that random people have done on the internet to change the build files, to change some of the C files, some of the #defines.

CW (00:57:29):

And even then I haven't finished doing that. It turns out I didn't need to do that so fine, whatever. But then, I get the C++ skeleton I was supposed to put my stuff in, but it turns out that getting the C++ libraries for TensorFlow is difficult no matter what. Even if you're on x86, which I now am.

CW (00:57:52):

So I'm using the C API. Now the C API for TensorFlow. my God, I'm just going on. The C API for TensorFlow is this really low-level thing. It's more like if somebody handed you, God, I don't know, a device driver with ioctls and told you that they really want you to build a video game.

CW (00:58:16):

So I've got this very low-level thing. I can load models, but there's other stuff I need to do. And it's just very painful. And I don't understand why...the people who make these products, these packages, don't build the damn things and ship it with it.

CW (00:58:33):

Because...I want the C++ API, and I can't get it without building it myself. And that's a major pain in the butt. And then even if I do that, it's going to be toolchain dependent. I don't know if the client's going to have a problem, anyway. It's...very tiresome.

EW (00:58:58):

Life is hard for you, isn't it?

CW (00:59:00):

Anyway, what I'm going to try to do is I'm going to try to put all the code I was going to write into the neural network model itself so they don't have to do anything outside the model, but that is very difficult. Everything is very difficult.

CW (00:59:13):

And it's not that I'm complaining it's difficult. I just would like to know which difficult I need to address. And so I can focus on that one instead of bouncing around between difficults.

EW (00:59:25):

[Laughter]. I'm still kind of laughing at you. I mean, they pay you to do this, right?

CW (00:59:29):

Your time is coming.

EW (00:59:30):

I know. I know. TensorFlow is really hard for me, because my brain does not work that way.

CW (00:59:39):

TensorFlow's hard for everybody. It's...almost an FPGA-like -

EW (00:59:47):

Yeah.

CW (00:59:47):

- thought process change, but you're still writing it in C++ or Python in a normal language way. So it's very distracting for me to write TensorFlow and remember that each of the calls I'm making aren't actually calls.

CW (01:00:01):

They are allocating nodes and connecting them together. It's very painful. It's very powerful. It's incredible. And it's very big,...and it's got that, nobody's going to understand this reference.

CW (01:00:16):

It reminds me of the X Windows API from Unix in the mid-nineties, where...there's a lot of function calls, and they're all very long, named things,...and they're complicated. And the documentation is, yeah.

EW (01:00:34):

Somebody out there has TensorFlow with eager execution on, and they have no idea what we're talking about.

CW (01:00:39):

Yeah. Well, that just came out.

EW (01:00:43):

Shall I, shall I - ?

CW (01:00:44):

Oh, please, make me stop talking.

EW (01:00:47):

Thank you for listening. Please let us know why, if you would like to, show@embedded.fm. And thank Christopher for producing and co-hosting. Thank our Patreon Slack folks for supporting the show.

EW (01:01:09):

You can join our Slack or just support the show through Patreon. The link will be in the show notes. And now a little bit of Winnie the Pooh. Are you ready?

CW (01:01:20):

Yes.

EW (01:01:22):

[Winnie the Pooh excerpt: Meeting Eyeore].