Embedded - 487: Focus on Fizzing
Episode Date: October 17, 2024Chris and Elecia chat about simulated robots, portents in the sky, the futility of making plans, and grad school. A problem with mics led us to delay the show with Shimon Schoken from Nand2Tetris (c...o-author of Elements of The Elements of Computing Systems: Building a Modern Computer from First Principles). Look for that later in the year. Elecia is playing with Webots, a robotics physics simulator. Simpler than ROS’s Gazebo, it also can run in an online mode where you can run it on a browser, selecting between many different robots. Chris talked about processing his photos of Comet C/2023 A3 (Tsuchinshan–ATLAS) using PixInsight and Siril. Then we talked about grad school (including Georgia Tech’s reasonably affordable CS Master’s Degree). Tony sent in this insect detector: Mothbox. If you want links like this or de facto letters to the editor, please sign up for the Embedded.fm newsletter. Transcript  Photo of Comet C/2023 A3 (Tsuchinshan–ATLAS), taken from Seacliff Beach in Aptos, CA by Chris White
Transcript
Discussion (0)
Hello and welcome to Embedded.
I am Alicia White, here with Christopher White.
We promised you a show full of NAND to Tetris, and we aren't delivering right yet.
We will soon, actually end of November, but this is really because of you, actually.
Me?
No, no, the listeners.
Oh, it is because of me, because I'm very picky.
I mean, it's because of me too. It's because of everyone. But yeah. So our guest, Shimon,
had a microphone that was part of his computer. And there was some question of whether or not
it would be good enough. And in the end, it was not good enough for your lovely ears.
So we decided to postpone until a proper microphone could be used.
But NAND to Tetris is coming and I'm still excited about it.
And we might even talk about it some today.
Cool.
How are you?
I'm okay. I'm all right.
Having fun with work?
I'm okay. I'm all right. Having fun with work? I'm okay. I'm all right.
So one of my gigs right now is having me learn WeeBots.
These are very tiny, small robots. It's W-E-E-Bots?
No, it's just one E.
Oh.
But it's simulation, physics simulation, kind of like the Roscoe Zeebo,
except Roscoe Zeebo is impossibly difficult to use.
Unless you know how, in which case it's still pretty impossibly difficult to use.
WeBots is more what ROS 2 is using.
And so it's less confusing, a few more easily adapted examples, and there is an online component,
so you could just run robots online,
or you can download a program and run them locally.
You played with it a little bit.
Yeah, just for a few minutes,
because I didn't know what it was.
It's a web page.
Well, what you're presented with when you first go there
is just a gallery of robot thumbnail images
of 3D renderings of robot arms and robot cars and
robot stuff and you click on one and it pulls up the simulator for it and it's got all thousands
some of them have thousands of parameters it seemed like with sliders and you can do stuff
like flip the arm around and but it just seemed really nice if you were building some sort of
robotic product um yeah it was surprisingly cool.
And you can change out the controller
so that it's C or Python or C++ or I think MATLAB,
but I'm not sure if that's just NumPy.
And I am so looking forward to playing with this.
I know I have a lot of work to do with it,
but first I want to play with it before I get started on the work.
But this is something you're doing for your newest client.
Right. Do you want to talk about full-time work?
If you want to, sure.
So I mentioned when we talked to Rick at the end, I kind of surprised you with the idea that I was looking at a full-time job. And I mean, I've been a contractor for a long time. I mean, it feels like a really long time. And I've enjoyed contracting. There are a lot of things I really enjoy about contracting. I work the hours I'm contracted to work. And when
I'm not working, I'm not feeling guilty about if I should work. Ideally, sometimes I do. And
I like the freedom of always seeing new projects. And I'm well enough connected in the industry
that I don't worry too much about the next contract, although occasionally it gets in my head. But I don't get to bond with a team.
Okay. Yeah, that makes sense.
I do some mentoring and I enjoy it. And I do some paid for client companies to help their folks or to provide a sounding board and directions to their folks.
And I enjoy that.
And I do some unpaid, which is more along the lines of career development.
And I enjoy that. where my role was to be a technical expert and to help engineers in their careers.
Not a role that exists in most companies, except as a side task for very senior people to mentor.
It's not a defined role. It would also be all of the technical stuff of architecture and planning and keeping up
to date on the industry so that you can bring in the right technologies for different products.
And in my head, I was calling it the fairy godmother role, where I could do the things I do naturally, like trying to stay up to date with the industry and trying to read a book often enough to be well-read in the technical industry and mentoring and trying to understand tools so that I can recommend good tools
and steer people away from tools that aren't ready.
Somebody who could step back from the whole thing and not necessarily impose a vision,
but at least see everything that's going on at a level that you could correct imbalances,
correct miscommunications, or to say it positively, facilitate communication.
Yeah, yeah.
And note that, oh, you're doing it this way, but did you know that the other team's doing this?
And maybe if we settled on this together, you wouldn't have conflict or whatever.
And at HP, when I started, there was the technical track and the management track.
Yeah.
And there were individual contributors, which are most engineers, but there were also higher level individual contributors that were manager level.
They had similar responsibilities, they just didn't have a team.
And then even as you went up to director level, there were individual contributors at that level.
And Cisco had them until you got up to fellows who were almost, I think, VPs.
Maybe they were directors. I don't remember what the level was.
It was high, but it was basically, you know, you can walk into any meeting and derail it if you'd like.
Kind of level, you know.
I'm the technical genius kind of thing.
Yeah.
I mean, it was good and bad.
I don't even know it needs to be technical genius.
It was also distinguished engineer, which was sort of similar at many companies.
And Fitbit had technical directors, which was supposed to be the level beyond principal that was at the director level, but it was engineering.
And there used to be a staff as engineer, but now that actually just means regular engineer.
It was very confusing to me.
It depends on the company.
I tend to think of it as just a level above senior.
It's kind of, I don't know, staff is sometimes principal, slightly below principal.
Well, and I've been reading too many Space Navy things, so Staff Sergeant has a particular, anyway.
Well, and the General Staff, which are, you know.
Yeah.
So an opportunity came up that looked like it was going to be like this.
And I have to admit, I got pretty excited.
It turned out that the company wasn't really ready to have somebody do that.
And so that kind of went away.
And I interviewed, or no, I'm sorry, I applied to a couple other jobs that look similar, but actually didn't hear back from anyone except one who just
turned me down flat. So when I was contacted by the robotics thing, robotics company, because I had mentioned it on the show and they were familiar with the show, I was like, you know, what am I giving up by going to a full-time? Yeah, I am taking contracts because I think while there are many things I would like with
a full-time job, including really understanding the problems and not having tools change every
month and the people, like really bonding with people.
Anyway, I took the contract, it's a multi-year contract, so I'm contracting for a while.
And if you want me to be your embedded system,
fairy godmother,
basically it's going to have to be on a contract basis.
All right.
But it was...
You had convinced yourself you wanted to do...
And there's benefits to full-time
that we were both kind of like,
we had both talked ourselves into,
which I think still are true and exist,
that are just purely practical,
like medical insurance that doesn't cost multi-thousand dollars a month.
But yeah, I mean, and maybe I'll go full-time.
You couldn't even say that with a straight face.
I can, yeah. Yeah.
Well, we can talk about my problem some other time.
But we're 10 minutes in and we've got a lot to go through.
Okay, that's true.
I'm sorry, I just kind of wanted to clarify where I was.
We can keep talking about that.
I was just being, I don't know.
It was, I don't know.
I guess if I had heard somebody else having kind of a crisis of what do I want to do, it would have been nice to hear that sometimes difficult decisions are difficult because both options are pretty good.
Yes, and sometimes those decisions are taken away from you. But it was still a good mental exercise. It was good for my burnout, actually, to think about the advantages of what I'm doing now.
Yeah, yeah.
I think it was kind of bad for your burnout because the paths you would have taken if I was working full-time are different.
Mm-hmm.
But that's selfish.
Okay, so let's see.
The comet.
We saw the comet.
We did see the comet.
Tsuchin-Chen Atlas?
C-2023A3 Tsuchin-Chen Atlas.
So this was the comet that was...
Still is.
That is still, well, was more visible before the middle of October and is still somewhat visible, but now there's a full moon, so it's bright, which makes it hard to see.
It's close to the sun, so it's a little challenging.
Will we see it on the other side of the sun do you know i don't know if it's already done that or
yeah well it's hard to see it on the other side of the sun unless you want to get up at
five in the morning indeed um anyway but if it does that it would be in the morning
uh but i don't know if it already did that and this is the this other side yeah the other way
you took some pictures i did uh so in, there was another comet, and I did some astrophotography of that, breaking out my old astrophotography skills.
I haven't done anything else since then, and this was another opportunity to try that.
But this was a little more of a challenge.
So with the comet in 2023, it was very faint, a little smaller in terms of how much it went across the sky.
And that required long exposures and something that would track the stars so that it could take really long exposures.
And was that eyesight visible?
No, not really.
Not here anyway.
This one was.
This one was eyesight visible.
Although you had to know where to look, at least for me, at least on the nights we went to go.
As it got later, it got easier to see.
The sky glow went down some um but yeah i just stuck my camera on a tripod and
took took a collection of five six second exposures which i've since processed and made one image and
then i got some feedback on mastodon from someone who said well you could do better if you process
it this way and i'm thinking about spending some more time on it this weekend
or going back out and getting some more photos tonight or tomorrow.
But it's very, you can easily get photos with a modern phone.
That was the thing.
The picture I took live and I couldn't, I could barely see it.
Like I kind of knew where it was, partially because I had the binoculars,
so I knew where to look um and i took my phone and i took a picture and it's got the wide field of view so even if i
was a little off it didn't matter and it came out really good yeah you can get some really good
photos with uh newer phones that have a night mode or a long exposure mode like the iphone
has a long exposure mode when it's really dark.
And it basically does what astrophotographers do.
It takes many, many photos and stacks them,
but it has the information to line the photos up
really, really well in real time.
So it'll take three seconds worth of many exposures,
but not much longer than that.
So you can get some pretty good wide photos that way.
And I didn't have a tripod, although I did try to steady the camera.
The camera camera or your phone?
My phone.
Yeah, well, phones are, like I said, they're tracking your motion so they can subtract it out.
They're magical.
So you can get pretty good photos with the phone.
I was trying to get really good photos with an SLR camera.
Or actually, it's technically not an SLR, but a camera with a big lens.
And so I posted that on Mastodon.
We linked to it or something, but I'm going to reprocess it.
It was cool.
You can kind of see the tail is extremely long, and you can kind of see the anti-tail coming out the front, which I went and looked up.
What's an anti-tail?
There's actually two tails that come off comets.
There's the
dust tail,
and then there's a gas tail.
I think the gas tail interacts with the
solar wind a little bit more, and the dust tail also
does. But the
anti-tail is
an illusion. It's actually from
You can see his
hands moving around wildly. It's actually from behind
it, like it turned, like if it
as the orbit came around, we're in a different
place, we're actually seeing something behind the comet,
but it sticks out the front of it like a
needle.
So it looks kind of weird, but...
Yeah, I'm just going to nod along. Anyway, there's lots of photos
you can find online of this comet and see the
anti-tail, but it's not
actually something that's coming out of the front of the comet.
It's something that, you know, if you imagined an exhaust trail of a car that's turning in front of you,
and it came back so that it was pointing against the exhaust trail that it left behind.
That's kind of what's happening.
Anyway, so yeah.
So, yeah, astrophotography is really hard.
Especially, it's really challenging when there's any kind of sky problems.
Sky glow from—
And the comets are very close to the sun, so it was best to see around—between, like, 730 and 8, I think, seemed to be pretty good.
But sunset was at 630, so there's still a lot of sky glow, especially if you're taking long exposures and stacking them, because that all adds up and stuff you can't see with your eye becomes apparent.
And then it was over towards Santa Cruz, Capitola, which there's a lot of glow coming from that too.
Yeah, there were lights.
In fact, as we were at the beach when we did this and people would come up and say, are you looking for the comet?
And we'd be able to say, yeah, you look over at Arcturus and then at that height.
And then you look over at the point. Everybody knew where the point was because it's local and and then people could see it and
they got really excited that part was fun um so it turns out if you can kind of programmatically
adjust for that gradient you know the brightness gradient and the glow you can get the contrast
of the comet to come out more and see more of it.
But it's a real challenge to subtract that in a way that doesn't screw up and like add a little bit or miscalculate. And so you get unevenness. So I'm working on that, but I played around with
it some and I was able to get way more of the comet tail and the anti-tail, but everything,
everything else in the picture was screwed up. So it's kind of like, ah. Not blurry. In movement?
In motion?
Nothing motion.
Just like the background.
Imagine you're trying to subtract a gradient, but you don't subtract it exactly right.
And so now there's bright and dark patches.
Lines, patches, patches. Patches, yeah.
So it's doing that because I'm not subtracting the gradient correctly.
Anyway, it's something that's funny because i have a very powerful
uh mac macbook pro um with like tons of ram like 64 gigs of ram and doing image processing for
astrophotography is the only thing that has ever slowed this computer down so when it's processing
is it takes 15 minutes to align and stack the images and do all its garbage and it's just i
can't use the computer during that time
because it's like the browser takes.
And you're using an astrophoto thing.
You're not doing a Python.
No, God, no.
Are you kidding?
It would take a decade to write the code
to do all this stuff these things do.
So I'm using a program called PixInsight,
which is kind of the premier astrophotography processing program. It's got
probably 150 different processing algorithms you can use, but there's a certain workflow that most
people use, but it's extremely complicated, not very friendly in terms of user interface. Like
you're just, there's no tutorial or walkthrough or here's the thing to do.'s like you're presented with you know it's kind of like being jumped into photoshop and never
using photoshop before and there's all the menu options and stuff but worse um and somebody
suggested a different newer open source one that i've been playing with that's a little simpler
um it's it's simpler i don't know if it's quite as powerful because when I just threw my images at it and said, stack these, it could not align them automatically. Like PixInsight could, like PixInsight finds all the stars and just says, okay, you've got 15 images and the, here's star 2 to align on, here's star 3 to align on, here's a bounding box where they probably
move. And for all the other
images, look for those stars and hope to
God you can align them.
And most of the time that works, but PixInsight
just throw it at it. It's like, yep, I found 500 stars
and I'll align
on all of those. And it just does it.
Why can't my phone
do this? Your phone?
I mean, if it's going to slow down your processor, even if my phone isn't doing such a good job.
Phone is aligning video frames.
It has more information about the motion of the camera because it has the IMU.
It's not the case the entire frame is moving on the phone whereas sometimes with astrophotos
there's something things are moving like the horizon in this case was not moving right but
the stars were a little bit even though you weren't only taking four or five seconds yeah
i don't know why they're good at it um you know they probably have dedicated hardware
and stuff to do some of that um but they're not they're the precision that the astrophotography program is
trying to achieve in alignment is not what the phone is trying to achieve so i think if you
zoomed in on those real far i bet the stars aren't oh no and i don't care because i was just taking
pictures of the comet for astrophotography where people really care, you want everything to be extremely
precise because the goal is to enhance detail by stacking, not just to enhance exposure.
I've been thinking some about algorithms and how algorithms that when I graduated from
college years and decades ago, they were new and impossible and difficult.
Not like PID.
PID has been around forever.
But the Kalman filters.
I worked with a guy around the year 2000
who pretty much had gotten a PhD
developing the application of Kalman filters
for navigation systems.
And some of the work that he was still doing was, I mean, we published quite a few papers.
And it was super cool.
But now Kalman filters are, I'm not going to say they're easy because they're definitely not.
But you can find them online and you can find tutorials on how to tune them and they aren't
magic and there are other algorithms like that that uh are are things that i don't know that
just seemed magic and impossible and now we're finding ways not only of explaining them more easily, but
implementing them on small devices. And I am not talking about keyword detection using
machine learning because I'm tired of that. I'm talking about algorithms, not neural networks.
Neural networks may apply here, but I just don't want to think about them today.
Yeah, no, it's the same. I mean, the astrophotography stuff, like very fancy academic stuff like wavelets, deconvolution.
There's a thing called drizzle that came out of the Hubble Space Telescope.
Drizzle, really?
You actually can enhance resolution by taking images that shift a little bit, one from another.
And by doing that, I don't even know exactly how it works, but...
I want to shout, ADC dithering!
I think it's very similar, yeah.
But it's spatial.
Interferometry is something that used to seem impossibly cool, and now it's like, yeah.
I mean, that's... Put it in an Arduino. All that OCC stuff I was doing
was interferometry. But yeah, I mean,
now it's just a menu item. Do
wavelet decomposition, you know.
And the thing is,
sometimes you don't even have to understand them.
You just put it, do it,
and move the slider around
until something looks good.
Or there are now chips that will,
I mean, I'm thinking more motion control.
I was surprised.
I was surprised to discover
there were so many motor control chips that had built-in algorithms for control.
They took in the encoders and all you had to do was spy, send it a message to say, go here.
It magically took care of it.
Now, when those dev boards arrive, I know it's not going to be as magic as I want it to be.
But their advertising is that you just
poof. And that's the way it
should be. You're a robot. It's just
Lego blocks.
As things advance, more advanced
things should be
come easier to use and become
encapsulated.
Nobody should be...
If you want to build a something, I'm not going to say
products, I'm getting tired of that word, but if you want to build an artifact, a thing that does something, do you want to build a something, I'm not going to say products, I'm getting tired of that word.
But if you want to build an artifact, a thing that does something, do you want to build that thing?
Or do you want to build a motor controller?
Because it has motors.
Let's say you're building something with motors and you need motion control.
Do you want to build the motion controller and learn about all that theory?
Or do you want to concentrate on the thing you're making?
And sometimes that's a choice, right?
Absolutely.
And it's a difficult choice that companies sometimes fall on the wrong side of.
Startups, please buy everything you can.
If they can afford it.
I mean, sometimes there is a cost-benefit.
But if you're trying to make the new widget that fizzes things, you need to focus on fizzing and not all of the other things.
The fizz widget?
But not the other things. The fizz widget, but not the, nope.
Okay, so.
So, I'm actually surprised to hear that advice from you.
I always give that advice.
Not really from products, but from a personal standpoint. Oh, it's totally contrary to my first principles annoyance with physics, yes.
That you need to know things from first principles.
I don't, you know, I've been thinking about that because you talked to me about that in regard to the Natatestris book.
And I said, and you said, you know, in physics you had this problem, let's put it mildly, that I had difficulty, I'm switching pronouns to I now because that was confusing.
I had difficulty in basic physics, you know, the GALA GNM course, college mechanics course,
because it felt like it was taught at a level that you were expected to understand what was going on.
But there were no explanations for what was going on.
I wonder if it was a cookbook. So here's an integral that computes magnetic flux.
And that means this and this. And that was just like, here it is. And I get really stuck on that
stuff. And that that's kind of a bad example. But there were other examples where I would have
trouble solving problems because I didn't have the why I didn't have a way to remember things.
This is the real hard thing. I didn't have a way to remember things. This is the real hard thing.
I didn't have a way to remember things so that if I forgot how something worked,
I could work it back out.
And this doesn't always apply, but...
No, no.
Like, if I forget how to do a multiplication, I can do addition.
Yes, yes.
And so I think what happened was, it was a combination of things, but I think I didn't do enough homework, and there was a lot of memorization, and I didn't understand that. Because from doing calculus, I felt like when I learned calculus in high school, it wasn't memorization.
There were a few rules that you built things up.
Right. And from physics, it was like…
You had to memorize the chain rule, but after that, there weren't that many. Right. And from physics way it was taught and the way I had processed it, there was nothing I could do.
I took physics in grad school.
It was built up differently.
And I did take all the undergrad stuff again, but with a different attitude.
And some of the upper division physics, upper division undergraduate courses did not work that way, like the freshman classes, sophomore classes.
And so I got an understanding from basic stuff about, like, mechanics.
Like, if you've got a basic mechanical problem with things in motion, okay, now I know, you know, these base things.
Newton's laws and how that works and energy and how that works in relation to motion and potential and momentum and all those building blocks.
And I could build like, okay, I've got a problem.
Well, I can build this equation of motion out of that without memorizing it.
And so that felt better and I felt like I understood stuff.
So that was a basic problem.
But you said you were reminding me that and what about computers?
And I really never had that problem with computers.
And I don't know if it was because I didn't care or because I was so used to computers from a young age, not understanding them at first principle level, but just they were things around me all the time.
It was a black box.
Partially a black box.
But I kind of understood the Apple II.
I knew what RAM was.
I knew what a disk drive
did and how that all works. So maybe I already kind of knew the first principles of that stuff
by osmosis and didn't bother me so much. I don't know.
So we've said this a couple of times, but let me say it slowly. NAND to Tetris.
Right. This is taking NAND gates and building them up using Boolean logic to create a simple ALU, arithmetic logic unit, and then a little processor. And then making it so that that can have instruction codes and machine code, which is just the instruction codes, you know, put in another format.
And then assembly language that can be compiled to machine code.
And then an object-oriented set code that can be compiled all the way through this and a virtual machine
in there because it's easier to compile things from object-oriented to virtual bytes to machine
code.
And then a little operating system that can have an input and output and games. And so this book, The Elements of Computer Systems, is really good as a textbook for this whole curriculum.
And this curriculum is available online, nandtetris.org, and it's got simulators for everything.
I mean, the book, fine. We'll talk more about the book at some point.
I didn't love it.
I didn't hate it.
It was a textbook.
But the curriculum, it's got an HDL simulator.
So if you actually want to try building up a NAND gate-based system so that you can add two numbers together, it's got it for you.
You don't need hardware.
You don't have to worry about FPGAs or trying to physically build up this system.
It's all simulated.
It's kind of like WalkWe, but at a much lower level. And so that was, as
I was reading that, we were having these conversations about, well, why don't you need to know how
these things work?
Yeah. But for someone who does want to learn how these things work, that sounds like an
interesting...
Oh, yeah. There's always that person who's like, well, why?
That was me.
How do pointers work? Well, why do they work that way? How do stacks work? And the book actually, if you get to the chapter where they start talking about how RAM works as you call functions, it was really good.
Much better explanation than I've managed to give. So I want to recommend it,
but I want to recommend it as a year-long program because it was dense. And if you do the projects,
it's going to be a lot of material. I don't think I could have learned Boolean logic
from the material, or I don't think I could have learned programming from the material,
but as a way to take a CS degree and make it tangible and understandable,
it would be really magical. Even if you didn't understand Boolean logic, you didn't have to
understand every chapter because even though it built on each chapter before it,
it also kind of gave you the answers in the next chapter.
Or the
simulator would give you the answers if you looked at
how the simulator was built.
So yeah, I really liked it
and so I invited the
professor who, one of the co-authors
of the book on the show and
microphone, blah blah blah, we already did that part.
I have a few listener responses.
Responses? Oh, no.
Tony emailed today, actually, and pointed me towards an insect detector,
the moth box that actually looks at moths and what kind they are.
And it was really cool to see somebody built that, which, of course, was totally unrelated
to my desire for a wasp detector.
But still, it was fun.
But somebody did have a wasp detector, because I posted that in the newsletter.
Oh, right.
Our newsletter link finder pointed us to that.
So some sort of, yeah. Actually, I was looking for
the Asian hornets, I think, or other
harmful... A particular type of wasp.
It wasn't a general wasp.
Yeah, it was a wasp counter.
Which reminds me, we do have a newsletter.
And
it is...
It gives you the show notes
in case you missed a show so you know what it's going to be about.
And then there's usually some links.
And then on the weeks where we don't have a show, there is...
Something random.
Something purely random, yes.
Yes, it is not a long newsletter.
No, and we won't share your news with anybody else.
Or we won't share your email.
Anyway.
I wouldn't even know how I would
that would take too much effort
it would take far too much effort
I just can't be bothered
well and one of the newsletters
set of links
was after our show
with Antoine where we
didn't talk about
the greatness of USB
enough. And
Timon wrote a little thing
up for us.
Well, I don't think he did it for us. I think
he did it against us.
I stole it anyway and put it in the newsletter
because it was a good collection of ways
to learn USB.
And USB tools.
That was on the Patreon. That's when we decided to be wrong about everything
and have people write in to us to correct us
and then I'll just put those corrections in the newsletter.
It's much simpler.
And then I won't have to write anything.
So you can think of the newsletter as the letter to the editor for the show.
That would be fun.
I wonder if we could get enough people writing in letters to the editor for the show. That would be fun. I wonder if we could get enough people
writing in those letters to the editor
and put that in as a whole section of the newsletter.
If you feel like we're wrong, please tell us at length
and
yeah, we'll just post that.
Can I mention hugs and kisses?
I don't want to talk about that again.
Okay, okay.
I mean, you can.
So Chris and I were watching a TV show.
Doesn't matter what.
It was Ghosts, the UK version.
And the X for hugs and kisses came into the show.
It doesn't matter how, but it was silly.
And there was a question of whether an ex is a hug or a kiss.
Now, stop right here. I mean, you don't really have to stop, but right now you have an opinion.
Is an ex supposed to be a kiss and an O a hug, or is an ex and hug and the O is the kiss. You probably are 100% confident in whatever you think is true.
What was weird is that Chris and I thought opposite things,
both with 100% confidence.
I mean, how else am I supposed to think things?
I'm me.
I'm 100% confident until somebody proves me wrong.
There are a great number of words that I have no confidence in how I pronounce.
I have no confidence in anything, but yes.
And we were both kind of surprised that the other was so wrong.
And I think it's a good exercise to be wrong sometimes.
I'm frequently wrong.
And in this case, we went to the internet because we should never really have
invented computers because how can we argue about trivially stupid things when there's authority to
apply to situations? So it turns out that there is no etymological definitive answer to this.
And that they are probably all X's and O's
are all kisses.
It was confusing, yes.
I mean,
looking up the history of it, we also had
like it came from like several different places
at once. Yes, it was
super confusing. So there's no answer.
There's no answer. Everybody's wrong.
Or everybody's right.
And yet, moments ago, you were 100% certain you knew the answer to which ones were hugs and which ones were kisses.
We're talking to you, the people in your cars.
Right.
Chris and I have known this for several days now.
Yeah.
Why did I start that?
Oh, the importance of being wrong.
Okay, yes.
I actually can't remember now. What were we talking about? Oh, we were talking about USB.
And then people writing in.
Okay, so it was the importance of being wrong.
Yeah, yeah.
Okay, so, and which we are often wrong. Let's see. Okay, more last time it was just Christopher and me. He was not enthusiastic about the idea of getting graduate-level education in computer science.
No, that's not accurate.
I want you to insert here, right here, what you said, which was...
You can quote one sentence from what I said, but I do think I hedged multiple times and said I don't know what a graduate degree in computer science entails.
Or embedded.
And so that my opinion is probably garbage.
So I don't think I said it that strongly, but I'm pretty sure I said I didn't know what I was talking about and needed more information.
But I also said that it is a big time investment, and so you need to balance that against what you would be
doing instead. I don't think I ever came out and said, this is a terrible idea, and no matter
what anybody says, I cannot be convinced otherwise. I'm just going to snip that and have it say,
no matter what anybody says, I can't be convinced otherwise.
Well, I'm the one with the podcast editor, so.
This is true, so who knows what I'm saying now.
Both Ryan and Nathan had some points about after you take a CS set, in order to get the embedded stuff, you need some more school.
Right.
But you don't really want to do another undergraduate degree, of course.
Right.
And there are things that get more detailed and more, well, broader as well as more detailed
for operating systems and networking and computer architecture and compilers.
These are all things that you don't necessarily get a full picture of when you're doing an
undergraduate degree.
Right. If you're lucky, you might get to take a Pilers course, but it's an upper-level course, and it won't be as detailed or as thorough as a graduate-level course.
Security was another thing that really came up. Because, you know, four years seems like a long time to learn just one or two programming languages.
Maybe three, but it's not because you're taking all these other courses.
So Rust and Zig may actually be useful.
I don't know.
But it definitely is useful for people to be flexible in their programming.
Oh, sure.
But I wouldn't spend a lot of time taking courses in programming languages.
It isn't about the...
It's not...
You're not taking Rust 101.
Right.
You're taking programming languages as a course.
That makes sense, yes.
And learning how to learn programming languages.
Exactly, yeah.
And then, of course, as a CS person,
you don't necessarily get signal processing or DSP or digital design.
See, part of the problem is none of this stuff, I don't think this stuff existed when we could have gone to graduate school.
It would have been an EE.
It would have been a purely EE thing.
I thought about doing the master's degree at Mudd.
They had a little one-year extra master's degree.
But that would have been engineering, right?
It would have been in engineering.
Right.
But there were some...
I ended up taking the signal processing courses my senior year.
But there was a microprocessors course that I really wanted to take.
And it was kind of like Nandatetris, I think, where you start...
But it was all physical, which I'm not as excited about because, you know, as soon as you pour your coffee on it, it all just goes zzzz.
I don't think you're supposed to have coffee in the lab.
Anyway.
Point is.
Point is.
Go ahead.
Go to school, kids.
Go to school if you want to go to school.
A lot more options than when we were 20-something.
And John pointed out that probably when you and I think about master's degrees,
we're thinking about a two-year...
Terminal master's degree, yeah.
Terminal master's degree that costs as much as two years in college.
Okay.
So like 60K.
Sure.
But Georgia Tech has their online program for 10K, and you can take six years to do it.
Yeah, that's all fine.
I mean, my master's degree did not cost that much because I went to a state school in state.
The cost is, there's not just the cost, there's the opportunity cost. That's all I'm saying. If you can do it while you work, that's great. But I know that the economic environment
is different than it used to be. So not earning any money for two years and trying to struggle along when you could also could also
or instead have a job that pays you well is it is it is a choice that you need to make especially if
i mean if you're going to go and fully commit to a master's program and do it in two years or three
years uh that that's the level of intensity that you probably can't work at the same time, unless you're, you know, superhuman, which some people are.
But, and so you're not going to be earning money.
You're not going to be putting money away.
You might be incurring debt.
You might be incurring debt.
You're not going to be saving money, putting money towards 401k or whatever,
or a house down payment or something.
And so that shifts you back a few years.
That's my major point is to balance those factors.
But you may come out of there and earn so much more afterward
or get better opportunities that it doesn't matter.
But I took forever to do my master's degree
because I did go back to school.
Well, I took forever because they made me take
the entire undergraduate cycle again.
Which I thought you should have fought against.
But what do I know?
I would have died.
I would have, I wouldn't have made it.
You needed the refresher.
I needed to take the courses.
Okay.
I had taken physics.
I had taken undergraduate mechanics and E&M.
That was it.
There's a lot more.
There's a lot more.
So, you know, there's all the upper division courses. There's quantum. There's modern. more. There's a lot more. So, you know, there's all the upper division courses.
There's quantum.
There's modern.
Anyway.
Yeah, so that took me at least a year, year and a half to do all of that, which was pretty fast. Because I wasn't taking any core classes.
It was all physics.
And then started my master's degree program.
So it should have taken me three years, and it took me a lot more.
Because after two years, I
went back to work and then
my course load went down a lot.
But you can do it that way.
You can do it that way.
But,
I mean, yeah.
Okay, we had another person
on the Slack ask
about becoming a better
embedded software engineer?
And I don't remember the exact information.
I do remember my response was pick up a book every once in a while.
And I think I said quarterly.
And some of this is because I have been reading a lot because we've been having some authors
on.
And I try to read the books before they come.
I try to at least read half of them, but actually, I haven't started the next one yet.
I have to do it.
Anyway, it is hard to stay up to date, and it is hard to engage in the practice of learning.
And so even if your master's degree is in physics or something that isn't necessarily directly related to your work, the practice of learning is worthwhile on its own.
So here's the thing.
The thing that has probably been unstated is I didn't intend to just go get a master's degree in physics.
Right.
I was going to get a PhD.
Why were you doing that? Because I wanted to do astrophysics.
That's what I wanted to get out of software, like I repeatedly have tried to do for my entire life with no success.
And I wanted to go do something else that was interesting, and astrophysics was interesting. And so that. And I wanted to go do something else that was interesting
and astrophysics was interesting.
And so that's what I wanted to go do.
And I burned out on the master's program pretty fast
and decided I didn't want to stick for a PhD
because it was really hard
and I wasn't going to be able to go somewhere close by
or anything.
And also everybody who I had in astrophysics
or astronomy or physics PhD I knew
was a software engineer working at a company
doing normal, boring software
engineering. So I gave up on that.
So I didn't
take it to enhance my
career. I took it to shift
careers and
abandoned that. But if you're a CS
person and you want to
shift careers into embedded,
a master's degree with some CS might help.
It's a little shift.
It depends on if you want to do control theory
and signal processing,
or if you just want to do more along the lines of embedded Linux.
It's not changing sciences.
No.
Okay.
Anyway, both of us are wrong.
When I talked to Rick offline about going to full-time uh one of the things he i signed up for
one of his mentoring hours and um half hour i don't remember uh but it was really useful in
general and then it was also really useful because we were talking about how do you figure out if you
want to work somewhere oh that, that sentence was going to be a lot shorter.
Not a lot shorter.
One word shorter.
Oh, if you...
Christopher is so ready to retire.
So ready.
I'm sorry.
I'm sorry.
I never really thought I would be.
What do you ask as you're interviewing to figure out if you want to be at this company?
Now, there's a whole lot of other stuff going on here.
Like, do they want you?
Do you have other needs for why you have to have a job right this second?
It doesn't matter what it is.
But let's just say you're in an ideal situation where you have a good job that you don't want forever
and you are interviewing for a new job that you're hoping more aligns with your values, goals, career plans.
I haven't interviewed at a company for so long
that I feel completely unqualified to answer.
I haven't.
That's true. That's fair.
I mean, I know my job as podcaster is to opine on everything.
Every time a podcast comes up in TV,
Chris and I laugh and laugh because it's just so true. It's all so true. Okay, sorry. So Rick, who doesn't have a podcast, but I will represent here.
And has interviewed places. Yes. Gave me some questions that I thought were really useful.
How do projects get started?
It would be nice to know if projects just come in, swoop in from outside where you don't really get any visibility into the selection process.
Or if there's one founder, visionary person who's the one whose only idea, only that person's ideas are the ones that get any follow through.
And it would be nice to hear, and we sometimes pitch projects internally.
Sometimes there's a formal process for that, like, or a formal or informal process. Like many places have, you know,
I didn't really like them,
but there were like hack days where everybody get together
and they do a little quick project in a day or two
and present them.
And the way it worked at some places
you would get buy-in and say,
okay, that's now a new project.
We're actually going to do that.
But it's cool, but it's not, you know,
doing something in a day
is perhaps not the best way to... I mean, you know, doing something in a day is perhaps not the best way to...
I mean, you're not finishing something in a day.
No, but...
You're starting it and presenting it.
Right, but sometimes ideas take longer to develop, is all I'm saying.
That's what next quarter's Hack Day is about.
If you're thinking ahead to next quarter.
The next of Rick's questions was, how do decisions get made?
Especially the ones that the executives need to make.
For me, that was all about how do decisions get made and how often do they get changed back and forth, back and forth, back and forth?
Because that is a pet peeve.
It's a common thing.
Oh, indeed.
Used to call it thrashing.
Well, yeah.
And it's really demoralizing to people who are working on stuff,
the rank and file engineers, it's really demoralizing because it's like,
get halfway through on something and it's like your priority changes,
and I get halfway through on that.
And I went back and forth like that places six or seven times.
It's like, okay, I'm just going to sit here until something settles down.
At LeapFrog, you know, I got ready to ship products
and then they canceled them.
Yeah.
There was one year where they canceled my whole line
and one of my coworkers' lines.
And we just took off from work that day
and went to the mall.
And then mostly, it was just very, very frustrating and demoralizing because we put in so much work.
Okay, so next of Rick's questions.
Are there conflicts between departments and how do they get resolved?
Can you give me an example?
This is a good question because if there are no conflicts between departments, they're just lying to you.
And an example of how they get resolved, I mean, if the engineers always get their way, that's bad.
If the marketers always get their way, that's bad.
And the last one, do you see your leadership following the roadmap they explained?
And I have to say, I think the answer is no on almost all companies I've ever worked for, except maybe HP.
But that was, I mean, remember, this is 90s HP, not HP and Compaq, whatever.
Yeah, I think it's a mixed bag for my history.
But there are certainly ones where it was like,
we have a new roadmap every six months,
and they'd unveil it with great fanfare.
But we just started the old one.
It's like, well, that one was no good.
I mean, it's fine if roadmaps change and shift.
They should.
Oh, no, no, these weren't shifts.
These were like, we threw the old one in the trash.
This is the new roadmap.
Yeah.
Anyway.
But yeah, those kinds of questions are useful to try to figure out.
They're trying to suss out without saying, what's wrong with your company?
What's wrong with the company?
Because there's always something wrong with the company because there's always something wrong with the company and it depends on how much you are bothered by or or have trouble navigating you know indecision or bad project management
and so those kinds of questions are good at getting at okay how do things generally work here
how does conflict get resolved how many conflicts are there do things generally follow the plan or is there no plan or is there a plan that people just
glance at but gleefully ignore because the wrong answers to those questions often mean
there's a lot of interpersonal conflict and other kinds of conflicts that arise out of people not
being in agreement about what we're building or or how to build it okay we have one more from pedro
about skills um and expectations did your expectations of a successful career change from when we were younger?
Specifically, did I envision writing a book or teaching when you were a grad student?
Were there times when you reached further than you expected in pay, prestige, or passion?
I can't remember how I thought it would go.
I don't know.
I don't really know.
Like, did I think I was just going to be an engineer getting more and more seniority?
Did I think I would shift into management?
I did shift into management for a bit.
I don't know.
I mean, I had people telling me,
oh, you have to go into management
the more senior you got,
which I always kind of did not take well to.
I don't know,
because I couldn't,
I don't feel like I really wanted to be a CTO or something
or run a company.
I did.
I wanted to be a CTO,
and I wanted to be a startup founder
until...
Until you met one?
No.
Oh.
No, until I had
problems that were unidentifiable
and I spent years
dealing with stupid medical...
Right.
Yeah, I don't think I anticipated the shift to consulting,
which has now been a long time.
Yeah.
So that's been good.
I don't know if you anticipated the shift to consulting,
because you did that first.
I didn't know.
I mean, this is kind of like in high school, I didn't know what an engineer was.
Yeah, well, I mean, going back to high school, I had no idea what I was going to do.
In college, I didn't really know what an engineering consultant did.
There were so many times I didn't know what the path in front of me could hold.
And so I couldn't envision myself being
there. I could see a lot of paths I didn't want. I've never really wanted to be CEO.
I've never wanted to sell things. I've never wanted to process anything. Sorry.
Yeah, yeah. Yeah, no, I mean, I'm thinking back to high school, like,
okay, I knew I wanted to go to a science and engineering school and get an engineering degree,
but I didn't know what I was going to do with it. Like, I figured I'd find something.
Build underwater cities.
Well, yeah. I figured I'd find something interesting there. And I found out
that I didn't like engineering very quickly and went to a different degree. Yeah, I don't know. I mean. So I actually responded this, a type responded since this was
on the slide. So I'll give a little bit of my response from then. And the first part,
all of my five-year plans have lasted months, not years. Mostly because what I learned changed what I wanted, or the things that looked impossibly hard weren't write a book. It was accidental.
I was pushed a little by a throwaway comment at a Grace Hopper celebration dinner where an Australian CS professor listened to me run down about my career, Schatzbader, and Leigh Broggan, you know, burble, burble, and said something like, all you need to do for a PhD is write a dissertation.
So I kind of think my book was like that.
That comment throwaway for her ended up being something that I heard a lot in my head.
And success as I defined it when I was 12 to 20, I achieved beyond my wildest dreams before I was 30. If I went back in time and talked to 16-year-old me,
she would not believe the salary possibilities or the latitude I have to work on the things I choose and care about.
So I'm way more famous than I want to be.
I never wanted for my name to be known.
And that was one of the hardest things about
having the podcast grow.
That's okay. It's not growing anymore.
I sometimes
think now, if I try
to plan ahead,
I don't quite
know what I want in my life because I've gotten so much already
and it feels greedy to want more.
And it's bewildering to consider what more I could want other than books that I always
want to read.
So plans.
It's funny we talk about companies should have roadmaps, but the truth is I don't really. I'm coming off this realization that I was thinking I might have a roadmap last summer that might be really interesting, and it didn't turn out. And now, do I want to make a new one, or do I want to keep doing what I'm doing?
Because I do enjoy it.
Well, you just signed up for three years with a contract.
So guess what?
You have a three-year plan.
Well, I mean, I can do other things.
Yeah, I know.
I think now having thought about this for a minute, and I think, you know, that tracks
with what I remember, but I think what I didn't predict, and this is me being me again,
I was always a cynic when I was a kid
and didn't like authority or organizations
or things like that, groups of people.
But companies were okay for a while
and I enjoyed working at them.
So I didn't anticipate becoming
so down on companies
writ large
and the organizations
and executive structures
and things. And I didn't expect to start
feeling anti-tech. Not anti-tech
but anti-tech application.
Let's put it that way.
Anti-gratuitous tech?
No, that's too... I mean, there's places for gratuitous things in the world.
Harmful.
Harmful tech.
Yeah, or seeing the consequences of things that perhaps I didn't anticipate that I'd worked on in the past.
But anyway, yeah, no, I'm not a Luddite, okay,
even though that term is misappropriated.
You do believe there is good space for technology.
Of course.
I'm sitting in a room of it.
I buy technology, probably more technology than the average person
who actually likes technology.
So I'm not an anti-technologist,
but I am, and maybe this is a consequence of getting older and having seen a lot, I am more
skeptical, more willing to push back on things that I think shouldn't be pursued or I think are being pursued not for positive reasons and more
apt to pay attention to the people who are behind things and the words they say and their behaviors
and other things than I used to be. So like when I was 20, 23 at some company, I didn't think much
about the CEO or what they were doing or anything like that or pay structure or fairness and justice and diversity or why are we selling these to these
people or you know this country or yeah anyway what does this product really do what is it really
for it didn't matter as much then yeah beyond oh this is fun to work on. So I think you could call it being jaded or cynical or whatever,
but I didn't anticipate getting to a point where I was actually sick of some stuff in technology.
Not just attitudes and things, but actual products.
Like, I'm tired of hearing about X, Y, or Z.
I don't think that's interesting.
I wish it would go away.
I think earlier it was like, all tech
is cool. We should just be making all kinds of things.
Everything has an application. We just have to find the
right application for this neat technology.
Yeah, yeah.
Fair.
Do you want to end on some other note?
Well, I can
see that.
And yeah, we're out of time.
So I'm going to go play with robot simulators, which I think will be really fun.
And the application is neat.
Can't really talk about it, but it still is really cool.
But truthfully, today, I'm just about the robots themselves being cool,
or the robot simulators, the simulated robots being cool.
You know, one of the things in the WeBot was that you could have a robot that was a motorcycle, and you could have a robot that was a motorcycle rider.
I thought you were going to talk about a transformer.
You have a robot that was a motorcycle transformed into a motorcycle.
Are there any transformers on WeBot?
I don't think so, but there's no reason we can't build one.
We just have to figure out the linkages properly.
Okay.
Okay, so let's close the show on that.
Thank you for listening.
Thank you to our Patreon listener Slack group
for their commentary and their continued questions.
Thank Christopher for producing and co-hosting.
Thank the dog for being quiet.
Thank our sponsors.
If we have any sponsors this week,
thank Memfault for sponsoring the show.
Even if they didn't sponsor this week,
they're sponsoring sometimes.
So yay Memfault.
Thank Christopher for this really pained look he has on his face right now.
And of course, thank A.A. Milnes for Winnie the Pooh, which I forgot to bring up.
So if you'll hang on a second, I'll go get Winnie the Pooh.
Okay, we have left Winnie the Pooh with Kanga and Baby Roo coming.
There's just one thing, said Piglet, fidgeting a bit.
I was talking to Christopher Robin, and he said that a Kanga was generally regarded as one of the fiercer animals.
And I am not frightened of fierce animals in the ordinary way,
but it is well known that if one of the fiercer animals is deprived of its
yang, it becomes as fierce as two of the fiercer animals, in which case, aha is perhaps a foolish
thing to say. Piglet, said Rabbit, taking out a pencil and licking the end of it,
you haven't any pluck. It's hard to be brave, said Piglet, sniffing slightly, when you're only a
very small animal. Rabbit, who had begun to write very busily, looked up and said,
it is because you are a very small animal that you will be useful in the adventure before us.
Piglet was so excited at the idea of being useful that he forgot to be frightened anymore,
and when Rabbit
went on to say that Kangas were only fierce during winter months, being at other times
of an affectionate disposition, he could hardly sit still. He was so eager to begin
being useful at once. What about me? said Pooh sadly. I suppose I shan't be useful.
Never mind, Pooh, said Pig comfortingly.
Another time, perhaps?
Without Pooh, said Rabbit solemnly as he sharpened his pencil,
the adventure would be impossible.
Oh, said Pig, and tried not to look disappointed.
But Pooh went into a corner of the room and said proudly to himself,
Impossible without me, that sort of bear.
Now listen, all of you, said Rabbit when he had finished writing
and Pooh and Piglet sat listening very eagerly with their mouths open.
This is what Rabbit read out.
Plan to capture Baby Roo.
Which we'll get to next time.