Embedded - 369: More Pirate Jokes
Episode Date: April 15, 2021Chris 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)
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.
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.
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
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,
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.
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.
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.
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
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.
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.
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
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
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.
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,
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
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,
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...
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.
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,
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.
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.
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.
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.
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
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
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.
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
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.
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
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.
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
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.
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,
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.
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
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.
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,
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.
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.
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
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
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?
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,
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.
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,
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.
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.
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
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.
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
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.
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.
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.
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
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.
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.
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
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
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.
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?
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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,
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.
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.
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.
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.
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
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
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.
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,
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.
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...
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.
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?
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.
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.
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.
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.
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...
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.
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,
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.
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.
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.
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.
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.
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
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.
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
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,
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...
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.
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
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.
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.
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.
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
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
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,
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.
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,
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,
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
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.
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,
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.
I'm sorry about that.
Let's have a look at you.