Embedded - 369: More Pirate Jokes

Episode Date: April 15, 2021

Chris and Elecia talk with each other about contracting, architecture, origami research, Digilent’s new oscilloscope, TensorFlow, map files, conference talks, art and the upcoming 12AX7 album. Digil...ent sent us a pre-production Analog Discovery Pro ADP3450. Elecia’s Origami Github. Embedded Patreon Embedded Online Conference talk Buried Treasure and Map Files (Note: the coupon code from Jacob’s show is still valid and Elecia will put up a copy of her talk on YouTube.) 12XA7, we’ll let you know when the Kickstarter goes live.

Transcript
Discussion (0)
Starting point is 00:00:00 Hello, and welcome to Embedded. This is Elysia White, here with Christopher White. And this week we'll be talking about, well, whatever comes up. Can we talk about tiredness? Are you tired, Christopher? I'm tired. Especially tired since getting this podcast recording took a half an hour going to get going. And it all came down to unplugging one cable and plugging back in.
Starting point is 00:00:30 Have you tried power cycling? I did that three times before thinking of unplugging the cable and plugging it back in. Okay, so what's up with you? What's new? What's new? I don't know. What's new? I don't know. You tell me What's new? What's new? I don't know. What's new? I don't know. You tell me. What's new? Tell us about your album. How's it going? Really? Do people want to hear about this? I'm going to make them listen to Origami, so yeah.
Starting point is 00:00:54 I feel weird about it. Do you want to do listener questions first and we can save that to the end? Yeah. Okay. I got an email from Kelsey, who has been a podcast listener and read some of the blog. It enjoyed all the advice and hard work we've put into this. Thank you, Kelsey. 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. I'm seriously considering moving into consulting
Starting point is 00:01:25 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? I feel like we answer this question many times, and I'm worried that we answer it differently every time and that people are going to find out. Well, so, I mean, the first things to be aware of are kind of like big life changes that happen if you don't work for a company, like healthcare, which, I mean, if you're in the United States,
Starting point is 00:02:01 that's... Exciting. It's not, I mean, it's doable, but it does mean that, you know, 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. Less good, more expensive. Yeah. Yeah. Yeah. Not less.
Starting point is 00:02:24 Well, yeah, true, true. You might have, 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. Five years. Let's go to that part. Yeah. Is five years long enough? My, my flip response is probably not. I think it was like 10 or 15 for me. 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.
Starting point is 00:02:59 You know, it depends on the company and your manager, but sometimes you can get away with moonlighting. But that's hard these days because work is already so much work, right? So, yeah, five years is a little short. 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. Or from companies we'd already worked for. Or from companies we'd already worked for. They weren't just get hired randomly. Yeah.
Starting point is 00:03:33 They would get hired from people we knew. And so the question isn't about how long have you been in industry, it's... How many people do you know that you can get jobs from? 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. So it was easier to find jobs at the other companies
Starting point is 00:04:05 because they'd all spread out too. So the five years, it makes me a little hesitant. That doesn't mean no. It just means it's a concern. What would you say about the methods of finding jobs 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.
Starting point is 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. But either that or you've found clients, and you say, oh, we need this. And I say, I can, I can do that. And then, so I'm just joining, joining what you're doing. So, 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. I've 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. 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.
Starting point is 00:05:53 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. It's sort of a continuum too, though, right? Oh, absolutely. I guess they said they were tired of corporate work. Is that? Corporate job structure. Corporate job structure. Okay. I don't know what that means. Yeah. So where I was headed with that is not all companies are the same. Yes. And so let's just say for the sake of sake of argument that they're at a big giant
Starting point is 00:06:26 company uh and it's boring and they're they're the work they can get their hands on is this is limited and small uh smaller companies you can do a lot more and they feel different and the corporate structure is different not all corporate structure is a uniform i mean everything's a company and there's always elements of corporateness in any sort of company. 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, go to a different company. I think go to a startup, go to a small company that will give you more insight into how the business works so that when you're ready to do consulting, the idea that you need to
Starting point is 00:07:11 market in different ways won't be a shock to you. And as much as corporate stuff is kind of awful, it does help to understand corporate stuff even as a contractor. Oh yeah, because you're still playing the political games. You just have a different rule book. And to be fair, that's one of the big reasons I started consulting is I was sick of a lot of that stuff, 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.
Starting point is 00:07:44 Or get a kind of a detachment. Because for me anyway, when I worked for companies, I got an emotional attachment. 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 or I hate what the company's doing or this product is dumb. Why am I here anymore? And it all gets wrapped up in emotional. And I tended to get quite angry about stuff that I had very little influence or control over. And sometimes I was angry because I thought I should have influence. But moving to consulting allowed me, or contracting,
Starting point is 00:08:22 whatever you want to call it, allowed me in a more of emotional distance. Like I'm being hired to do this work. They're asking me to do it. I'm doing it. 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. It all kind of just, I know it sounds kind of mercenary, but it all gave me a little bit of 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 the opposite, 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 doesn't necessarily last. And you just got to be aware of your own, you know, your own connection to things and what
Starting point is 00:09:15 you're willing to tolerate. And, um, you know, I, I don't think that, uh, my personal emotional issues with companies is universal. I think it's think it's something I've tried to stop. It's very difficult, but other people may not have that problem. My problem is often that I don't know how many hours to work. People say they work 60-hour weeks. People lie. I can't work a 60-hour week and be doing good work the whole time. People may jump up and down on me saying this,
Starting point is 00:09:53 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. Because after about 30 to 35 of actual contact work with coding, I am toast. Unless I'm just writing like boilerplate or something. I've pulled some long hours. I have too. I have too. But most...
Starting point is 00:10:16 They're short bursts. Very short bursts. One or two weeks, not long term. But I always felt pressured to do more. And I couldn't figure out, I mean, I could figure out how to say no, but I couldn't figure out how to say no without feeling guilty.
Starting point is 00:10:32 Same here. 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. Right. And if I want to bake cookies at three o'clock, I can because I get paid by the hour. And there's not,
Starting point is 00:10:47 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. I don't see any need to ingratiate myself with other parts of the company and, and, you know, claim a lot of, make sure I'm claiming a ton of credit for what I'm doing to make sure that my performance review is good.
Starting point is 00:11:17 All those things that surround being an employee kind of fall by the wayside because you're a, you're a third party. 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, I just, you know, I feel like more of an adult. As long as they're signing checks, I must be doing a good job. Yeah.
Starting point is 00:11:43 And the thing on the hours, you know, I've had that too. And it's just, it's really hard, especially, I don't know if things are going to change with remote work, but being, hopefully becoming somewhat more acceptable. But, you know, I used to, at a lot of companies, I used to get in fairly early, later in my career. Earlier in my career, I was more of a, you know, get there kind of mid-morning, work late, and then work at home after that. But later, I tended to think, yeah, I can get in early and I can be done early. And I would get in around when you were. We would commute together sometimes and get in around 8 or whatever and leave around 5, 5.30.
Starting point is 00:12:25 And people would, almost every day as I was heading out, people would joke at me or harass me for leaving early, you know, say half a day. And, you know, these were folks who were showing up at 11. So it's like, yeah, that whole pressure about hours is very strange. And it's very strange that engineers buy it. Because it's a scam. It is a scam. I mean, it's not about time of butt in chair, although that's important.
Starting point is 00:13:00 It's about the time that you learn to do your job. I mean, if I have a new chip, I may be sitting at my desk reading the data sheet, or I may put it on my iPad and go sit outside. Either way, it's work. One, it looks like work, and one looks like I'm goofing off. Anyway, I don't know if we've helped them. I don't either. Kelsey've helped them 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 well the other option you mentioned is contracting houses
Starting point is 00:13:37 and that's another possibility there are lots of those which is a full time job but you're doing contracting. 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
Starting point is 00:13:55 business later. And they usually do the health insurance. Oh yeah, because you're an employee. But as a consultant by yourself or 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 will buy books for or we'll provide brown bag lunches.
Starting point is 00:14:25 That all goes away. 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. I guess. Yeah, I guess. And some of those things, but paradoxically, some of those things are more important when you're a consultant and
Starting point is 00:14:50 trying to network. I paid for myself to go to the Grace Hopper Conference. Yeah. Okay, so next question from Sahil on the Patreon Slack, would like to know about how you go about architecting a project and the personal lessons along the way that shape the thought process. Okay, go. That is quite the look. Am I actually supposed to answer this question? I actually wrote it because I could talk about origami and Python scripts. Well, okay.
Starting point is 00:15:30 But I also... How you go about architect... I mean, all others... Each of those words is ill-defined. So, architecting, I'm going to put that to the side. Was it project or product? Project. Project. Project is also ill-defined uh what was the rest of the question uh lessons learned along the way personal lessons shape the thought process i mean i don't know what kind of project he's talking about he's talking about personal projects is he talking about
Starting point is 00:15:58 uh small sub-projects at companies? Is he talking about products? Is he talking about, yeah. And then architecting is, it's okay. That's a big word. Architecting tends to be talking about large projects, not, I don't think about architecting, you know, when I'm playing around with a microcontroller or something. Okay, so I'm going to answer this question. Because you hate my answer because I haven't answered anything.
Starting point is 00:16:26 I've just questioned the premise. 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, but he'll be talking about RTOSs. I will be talking about map files because
Starting point is 00:16:46 I love map files and I'm always surprised when people don't know about them. You love map files? I like map files. You're backing away pretty quickly. I like map files more than I like link files. Well, yeah. 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 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.
Starting point is 00:17:35 I started with that idea, which was kind of a kernel leftover from having introduced a couple of people to it. And I thought, you know, 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. 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. He's 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. So I also actually looked in my own book about how it's said to use map files,
Starting point is 00:18:30 because it's been a long time, you know. 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. 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. So I thought about that.
Starting point is 00:19:06 And then, you know, 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. 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. 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, you know, fantasy Dungeons and Dragons style maps, thinking I could have like Ramlandia and the Federation of Flash and talk about what things
Starting point is 00:20:13 go in what areas 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. 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.
Starting point is 00:20:42 Finding the one byte of RAM and asking, can you cut it, is just so that's 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 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. And then try to make sure that that all fits together, which, you know, that's going to,
Starting point is 00:21:18 I don't have to do my presentation for another three weeks. So I've got some space there. You want to comment on that? I mean, that's, I don't know that. Yeah. You're telling me I didn't answer the project or the question? I think you answered the question. I don't think you answered the question that they wanted to be answered, but that's fine. I mean, with origami Python scripts, I have these Python scripts that generate different patterns that I can then fold.
Starting point is 00:21:54 And I play with them to make edges curved so that like my snails are not flat. Or I have a new pattern that is for conch-type shells. And I know how to do it with all flat folds because it'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. You're saying you random walk amongst things.
Starting point is 00:22:26 And that is actually what I'm saying. The architecture there is truly just a random walk towards what do I want to do. There's no architecture. Architecture is like planning. And if there's no planning, there's no architecture. At each step, I have to sit down and figure out the math sure figure out which parts i'm following from the book that has the straight line version and figure out if i understand the curved nature and then for the conch shells
Starting point is 00:23:01 um i have a whole bunch of different i knew when i started i had a whole bunch of different, I knew when I started I had a whole bunch of different parameters, like how the base and mouth work. 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. It's not because you're not making anything. You're doing research. Okay, that's actually true. I am doing research on that one. That is why it is more random walk
Starting point is 00:23:37 and why I sit down and scribble out two pages of math and then write some code and then fold some stuff and then do some math that's that's yeah that's natural for research and architecture i think are often completely at odds you can't like you wouldn't start the beginning of this origami process and draw a block diagram that doesn't make any sense what would you draw a block diagram of except a square with the word origami in the middle of it?
Starting point is 00:24:05 Right. Well, now I could, 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. That's actually a whole chapter in my book about this,
Starting point is 00:24:20 isn't there? Yeah. That's why I was headed. But you've been, you've been doing machine learning research and origami too long and you don't remember how to do it well no i mean i'm kidding i'm totally kidding with with the conference preparation that is more along the lines of yeah i could have drawn a block diagram at the very beginning. I kind of did with the abstract. I knew I wanted to hit this, this, and this points. 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.
Starting point is 00:25:03 And you can draw them next to each other based on what things need to touch 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 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 yeah but but I think to answer his question for myself, for like a technical project, getting a starting from the top down at 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. 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, you pick another piece and you do it,
Starting point is 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 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 like there's a module and it needs to do something that hasn't been described yet. You know, 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 intercommunication problem because it wasn't fully expressed.
Starting point is 00:26:42 But that kind of thing applies to all kinds of projects but it does it does seem to only apply to things where there's kind of an endpoint or at least big milestones even if you may iterate on it multiple times there's a okay i'm at this stage and i have this this this version of it is done 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.
Starting point is 00:27:13 And that definitely can work for talks because you can break it down into sections. You know, you have your overarching talk and its point, and then, you know, the topic sometimes will divide itself up into sections or things to talk about and those sections will intersect with other sections so i think that that works but research research is a different different animal and maybe that's why research is
Starting point is 00:27:37 such for me it's very difficult because there is often very little guidepost. It's like... And I don't know... And you can get into cul-de-sacs. Yes. I don't know that what I want to do with the conscious 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.
Starting point is 00:28:08 Yeah, and the determining things that aren't good ideas, like, 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 um there's a real disincentive to find things that don't work right if you're if you're building a product you want to design up front to give yourself the maximum chance that things are going to work which you know 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. 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 um which might also be wrong but which might also you might learn
Starting point is 00:29:13 something in the process and so it's yeah it's it's kind of sad in a way that company work can't do that but there's a you know 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. 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, uh, I didn't enjoy it because it shouldn't have been like that. It's 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.
Starting point is 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. And it turned out they really liked it. They really liked that there were no results and that I could show them.
Starting point is 00:30:18 And I think that's probably why they're my favorite client. But they're a research client. They are a research client. Although they are trying to produce something, there is a large component of research. 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 disk with the software and the inputs and the outputs that do this. We're going to try this, and we're going to see if we can get it to work.
Starting point is 00:30:44 Yeah. software and the inputs and the outputs that do this it's we're going to try this and we're going to see if we can get it to work yeah and however we get there is not you know defined by a block diagram i wonder if this means that i really want to do more research than develop that's kind of laughing about because i i think if you'd 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. Yeah. Yeah. And I mean, that section of 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 and if I can find the right words to describe
Starting point is 00:31:26 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 freeform, of course. Okay, new topic. Hardware or social media? Like, am I supposed to say which one is bad? Which one we're going to talk about next. Oh, I thought it was like a lightning round question. Hardware.
Starting point is 00:31:57 Analog Discovery folks sent me their latest in awesomeness. Did you get to see it at all? Just very briefly. So there's the Analog Discovery Pro. It's a 3000 series. Let me see. It is the AD Pro 3450. And I got a pre-production unit, so that was kind of exciting.
Starting point is 00:32:29 And it wasn't what I expected. What did you expect? Well, you know... You expected the Analog Discovery 3? The Analog Discovery 2 and the Analog Discovery have both been pucks. Yeah. That plug into your computer
Starting point is 00:32:45 and they've been clear and they've been cute. They've been just, you know, adorable because they're slick and small. But this was not until I first got it. I was like, what is this? 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
Starting point is 00:33:13 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 only program the analog discoveries. Well, you can script them from the host computer. 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. It has that rugged quality that would fit there.
Starting point is 00:33:53 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. Oh, wow, that would be pretty amazing. But wouldn't it be pretty amazing?
Starting point is 00:34:14 And, I mean, JLink works with Linux, so there's no reason why it wouldn't work. Are there any limitations on the... I mean, I didn't look deeply. Were there any limitations on the Linux support? Did you have to script in like a particular thing or did you just get a shell prompt and you do it? Wow. I mean, people can do a lot with that.
Starting point is 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. And there'll probably be a little bit more about that, and I think in a couple months, couple weeks, we might be giving one away. Okay. 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. Anyone listening to this already knows that. Well, those last few, yes, but the Instagram and the Facebook and the LinkedIn are all kind of new. Yep.
Starting point is 00:35:41 They get slightly different content, which is a word that I cannot believe I say with any seriousness. Yep. And aside from all of those, we also ended up on Reddit. I guess it was one of Svek's old ESC 101 posts from the blog. Ended up on Reddit and we get a pretty big boost to the website from that. 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. Yeah, we're not going to do it because it's not usually allowed. And also, I'm not going to do it. 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.
Starting point is 00:36:44 Yeah. Our social media person has also asked that we do a pitch video. So I wondered if we could record that, like 30 seconds of what the show is about. Are you ready? Go. Go ahead. I'm recording. Still recording. I didn't stop recording, so you can just go anytime.
Starting point is 00:37:03 Hi, we are the hosts of Embedded. Hi, I'm Christopher White. I'm Alicia White. We talk about stuff that no one cares about for hours. We talk about the how and why of engineering and the people and dogs who cough through it. This is staying in the show, right? Oh, yeah. I don't think we can record a promo on the fly, no.
Starting point is 00:37:34 Okay. I don't think I'm capable of doing that. So the album. Tell me about the album. Oh, my God. First of all, a question from a listener. Why vinyl? 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.
Starting point is 00:38:07 And free in the sense of you're not buying a record for $10, a CD, you know, for $10 or $15 anymore and then ripping it at home. Most people are getting their music from Spotify or iTunes or whatever, and they pay $ bucks a month to them, and then they get the entire catalog. 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. It was like three hundredths of a penny or something. 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'm not, I don't care about the money aspect so much, but just for now to explain. I think I calculated you need a million listens to earn
Starting point is 00:39:07 under $1,000, 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. 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. But it would be about five bucks a month. Oh, I was going to try to figure out how many months it would take to get to a million dollars. Forever.
Starting point is 00:39:37 Or to a million listens. Anyway, but the money is beside the point. It's the... It's the... How do I express this um you kind of get lost in the sea of of music too there's a lot of music 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. You know, the only information is our band bio and the genre and what have you.
Starting point is 00:40:11 And so, 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 their album releases. 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, you got the little thing. But it was small, and there wasn't much to it. 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. It's almost a picture-sized thing. You can play with that, you know, as a visual artist and put cool stuff on it.
Starting point is 00:41:11 And, you know, 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. The actual playback, I, so I bought 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. And I'm a major skeptic of vinyl in terms of sound quality. Of course CDs sound better. Of course, CDs sound better. Of course, streaming sounds better objectively, you know, from a, just a technical point of view. It's,
Starting point is 00:41:51 it's a perfect reproduction for the most part of what was recorded. Um, 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. There's just something about... It's almost like reading a hardcover book, a printed book instead of reading on your iPad.
Starting point is 00:42:24 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. 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 that, you know, I was expecting noise all over the place and clocks and clicks and pops. 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.
Starting point is 00:42:57 But is this what people tune into the show for? Anyway, but they sounded really good and i you know if you if you a beat it back and forth and said here's the cd or here's here's spotify and here's the record yeah i'm gonna be able to tell the difference but two songs in listen to the record my brain adjusts and i don't care it just sounds good so that part bothered me less 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, you know, please give us $9 or whatever. That's the theory. That's the theory.
Starting point is 00:43:43 There's the ritual and physicality of listening to the vinyl. Yeah, yeah. I thought it was silly, but I have come to enjoy it, it's this big thing, and, you know, it's got the art on it, and you can see the grooves. It's just a weird, 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. There's no nostalgia here. which were truly an awful format the worst format except maybe edison cylinders or something i don't know if the tapes were awful except the cool thing about tapes is you can make mixed tapes which allowed them to be way cooler than they deserve to be but um and then cds which were cool but uh not as cool in terms of physicality as vinyl turns out to be. So that's the main reason is to have produced. And, you know, it's kind of selfish too.
Starting point is 00:44:52 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. You know, 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, you know, we've done it over the period of a couple of years and it's been a lot of work and it's been very difficult. And I like we've accomplished something and and having that to keep for myself and say this is what we made
Starting point is 00:45:29 is way more exciting than going to the apple music store and seeing a little thumbnail for the artwork and the list of tracks which is all i've got for the previous records we've done except for you know some cds but yeah i wouldn't put a cd on a wall right i might put i, you know, some CDs, but I wouldn't put a CD on a wall, right? I might put, I might, you know, 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. The follow-up question is, will that be the only way it is available? No, 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 and it's going to be
Starting point is 00:46:14 on iTunes and it's going to be on Spotify and it's going to be on whatever. Every music story you can think of. So, yeah. I mean, it's going to be a normal release. It's just that's going to be the primary physical option. We're not making CDs this time. So nobody buys CDs.
Starting point is 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. That's my fault. It's your fault? You were like, you and Matthew were saying, okay, the music's done. Somebody needs to. No, I, so it's the album art she's talking about. I spent a lot of time on the album art,
Starting point is 00:46:55 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 had kind of, I guess I had kind of a concept idea. 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.
Starting point is 00:47:26 You had a concept. I mean, you started out with a good concept. But the concept was very broad. And you kept expanding it. It's like, you know, electronics is a concept. No, you... It was a genre. You wanted a comic book looking...
Starting point is 00:47:40 Yeah, cover. That was it. Cover. That was the whole concept. With a giant wave attacking a surfer. Sort of. No, that was the whole concept with a giant wave attacking a surfer sort no that was later you wanted a giant wave and a surfer yeah i mean a wave and a surfer in a comic book style was the and went through a bunch of iterations and yeah which i might post sometime once the album's released it's it's my my journey through learning digital art, which has been enlightening.
Starting point is 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 who cares, you know, the size of what you see on iTunes is, you know, an inch or two wide. Who cares?
Starting point is 00:48:25 And you did the back? I mean, it's all the art. It's all the art. And it went from like three panels in a comic book, three partial panels to pages. Yeah. Well, it's mostly silly. Yeah, but it's neat. It's neat that you enjoyed it so much. It was a good place to put my brain for the last year of whatever this has been.
Starting point is 00:48:52 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. But I am going to have to do some marketing and I'm learning about that too. We're going to, we've got one music video that somebody's doing for us. I'm going to try to do one, yet another learning experience. Somebody else has expressed interest. In doing a music video.
Starting point is 00:49:19 Yeah. And then we've got, we're planning on doing a Kickstarter, an actual Kickstarter. And I have to learn all about that. And that's somewhat daunting. I mean, the good news is that this isn't like, you know, we're not making a company. We're not making a product.
Starting point is 00:49:36 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. 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.
Starting point is 00:49:55 What are your tiers going to be? I haven't really thought about it. I mean, I have thought about it, but I haven't really. We haven't settled on stuff. So, you know, they'll be signed test pressings and signed versions of the record they'll be special make matthew and christopher sing happy birthday to you if you want to sign up for that we'll do that um but uh but you know there'll be special colored vinyl that's special and a limited run of that and um, you know, we thought about other stuff like...
Starting point is 00:50:25 Stickers, postcards. Yeah, little things like that. Or, you know, if you want drum lessons or guitar lessons or something like that, you know, maybe an hour lesson. Yeah, I mean, we're still toying with ideas and stuff. I don't really know how that will go. But, yeah, that's... I mean, I don't think this is what people tune into the show for.
Starting point is 00:50:46 So. I think people are interested when I, when I asked someone what they thought we should talk about when it was just us, the questions were all about the album. So. All right. You should,
Starting point is 00:50:57 I mean, we, we have a podcast. You should tell them when you're doing other things that they might find industry. It's interesting. Yeah, well, I also don't want to, I mean, it's going to be a month or six weeks before I really start pushing it, so I don't want to push too hard. Not to say I'm going to push it here, but yeah, I expect to be much louder about it in various other fora.
Starting point is 00:51:27 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, and it was pretty funny. I mean, I didn't re-listen to the show, but I did do the transcript, and you know what? It was good. And if you've already listened this far, or maybe you're reading the transcript. How weird.
Starting point is 00:52:07 You've already listened 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 slash transcripts. Or embedded.fm and then you just click the transcript button. That's all I had. Do you have anything? No, I guess not. I should probably do some paying work today.
Starting point is 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 like four bugs. Yeah, I have to, I have to, TensorFlow. In C++. Oh no, no, no. Do you want me to go on about this? Oh sure.
Starting point is 00:52:59 Sorry, people who are 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. So, let me try to describe 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 sub-client.
Starting point is 00:53:20 I mean, we like most of our clients. That's true. We like you all equally. What was I talking about? Right. They have a sub-client. And so the deal is we're doing a research project to try to do a
Starting point is 00:53:37 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. And all along the platform that this is going to run on has been NVIDIA Xavier. It's the little, not quite hockey puck, it's a small square obelisk that NVIDIA makes that's an ARM-based Linux computer with, I wouldn't say a high-end GPU, but a high-end embedded GPU for machine learning applications.
Starting point is 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. It's the big brother to the TX2s. 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 feed-forward step, the step where you take an input to the network, run it through the network, and then get
Starting point is 00:54:47 the answer out, whether it's a classification or whatever, or detection. They've been doing that with something called GStreamer. Like half the people out there just sighed and groaned. And I've been using GStreamer too. But GStreamer is this, if you haven't heard of it,
Starting point is 00:55:04 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... Add a time code. Add a time code. 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 there's a... You can write your own plugin for it to make your own node in the graph. And a lot of people take...
Starting point is 00:55:41 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. The next node is 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. And the pipeline methodology in GStreamer is very well understood. Very well understood, but it works really, really brittly.
Starting point is 00:56:10 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. 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
Starting point is 00:56:31 with a GStreamer plugin. Okay. So I have to write the GStreamer plugin that loads our model and executes it. I thought this would be easy. What could possibly go wrong? Problem number one was assuming the client would want the ARM version that would run on Xavier.
Starting point is 00:56:52 That turns out to have been false. So, TensorFlow, 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. You have to build it yourself. It's extremely difficult to build it yourself.
Starting point is 00:57:21 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 pound defines. And even then, I haven't finished doing that. Turns out I didn't need to do that. So fine, whatever. But then I get this C++ skeleton I'm 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. So I'm using the C API. Now, the C API for TensorFlow, my God, I'm just going on.
Starting point is 00:57:57 The C API for TensorFlow is this really low-level thing. It's more like if somebody handed you, like, god, I don't know, like, a device driver with iOctals and told you that they really want you to build a video game. 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 people just, the people who make these products, these packages, don't build the damn things and ship it with it because they've got, 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
Starting point is 00:58:44 tool chain dependent. I don't know if the client's then even if I do that, it's going to be tool chain dependent. I don't know if the client's going to have a problem. Anyway, it's just, it's very tiresome. Life is hard for you, isn't it? Anyway, what I'm going to do is I'm going to try to put all the code I was going to write
Starting point is 00:59:03 into the neural network model itself. So I don't have to do anything outside the model, but that is very difficult. Everything is very difficult. 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. I'm still going to laugh at you. I mean,
Starting point is 00:59:28 they pay you to do this, right? Your time is coming. I know. I know. TensorFlow is really hard for me because my brain does not work that way. TensorFlow is hard for everybody.
Starting point is 00:59:41 It's both. It's almost an FPGA like like yeah 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 they are allocating nodes and connecting them together. It's very painful. It's very powerful. It's incredible. And it's very big,
Starting point is 01:00:10 but it's just... And it's got that... Nobody's going to understand this reference. It reminds me of the X Windows API from Unix in the mid-90s where there's a lot of function calls and they're all very long, named things with lots of... And they're complicated from Unix in the mid-90s, where there's a lot of function calls, and they're all very long, named things, and they're complicated,
Starting point is 01:00:32 and the documentation is, yeah. Somebody out there has TensorFlow with eager execution on, and they have no idea what we're talking about. Yeah, well, that just came out. Shall I? Oh, please, make me stop talking. Thank you for listening. Please let us know why
Starting point is 01:00:51 if you would like to. Show at embedded.fm and thank Christopher for producing and co-hosting. Thank our Patreon Slack folks for supporting the show. You can join our Slack or just support the show through Patreon.
Starting point is 01:01:14 The link will be in the show notes. And now a little bit of Winnie the Pooh. Are you ready? Yes. Chapter four, in which Eeyore loses a tail and Pooh finds one. The grey old donkey Eeyore stood by himself in a thistly corner of the forest, his front feet well apart, his head on one side and thought about things. Sometimes he thought sadly to himself,
Starting point is 01:01:44 Why? And sometimes he thought, wherefore? And sometimes he thought, inasmuch as which? And sometimes he didn't quite know what he was thinking about. So when Winnie the Pooh came stumping along, Eeyore was very glad to be able to stop thinking for a little, in order to say, How do you do? in a gloomy manner to him. And how are you? said Winnie the Pooh. Eeyore shook his head from side to side. Not very how, he said. I don't seem to have felt how at all for a long time. Dear, dear, said Pooh.
Starting point is 01:02:31 I'm sorry about that. Let's have a look at you.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.