Embedded - 112: My Brain Is My Resource
Episode Date: August 4, 2015Chris (@stoneymonster) and Elecia (@logicalelegance) chat with each other about drones, listener emails, conferences, fighting robots, and moonlighting. Elecia's Solid talk, an Introduction to Inerti...al Sensors is on youtube. Washington Post article about Amazon's good drone behavior Apple's IOS security guide (Elecia's security checklist) Photon WiFi Module (Chris' Linker articles part one and part two) DAB+ FM Digital Radio Development Board Sad autonomous fighting robot video and lightning fast autonomous sumo bots video OpenSCAD- CAD tool suggested by a listener Elecia's conference apology Light painting pictures (500px)
Transcript
Discussion (0)
Welcome to Embedded FM, the show for people who love building gadgets.
I'm Alicia White with Christopher White, and it is just us talking to each other.
So what do you want to talk about?
We have a list here of about 4,000 topics.
So if we talk about all of them, we'll be here until Thursday.
Okay.
Nobody knows what day it is now.
Well, if they're listening on Wednesday, then Thursday still seems far.
That's true.
Let's go with firefighters and drones.
So there's been a couple of stories about people having drones near firefighting operations, which in California, that is very, very bad because there are a lot of wildfires right now.
And there's not a lot of water and it's very, very, very dry.
People who fly their drones may be getting great shots.
They may be interested.
They may be even doing science, but if they're grounding the firefighters, then they're pissing me off.
End of rant? back about my idea that there should be jammers, drone jammers.
And you thought it was crazy.
Well, I don't think you're crazy, but I think there's some technical problems with it.
Maybe not out in the sticks where fires are happening, but I don't know what band those
operate.
I think they're 2.4 gigahertz, which is a lot of stuff.
So... Take out your Bluetooth, take out your... those operate, I think they're 2.4 gigahertz, which is a lot of stuff.
Take out your Bluetooth,
take out your... It might be impractical to jam that without screwing
up other emergency communications
or control systems. I don't know.
Maybe they are specific enough that you could
jam them.
But jamming them implies
that they're just going to get no control signal.
And that may not help
because the advanced ones will try to return home,
but that might be a path that's not great for the firefighters either.
What you really want them to do is just self-destruct.
No, that's probably not true either.
Although apparently if you fly over your neighbor's house,
they may self-distract
yeah i don't know what the definitely i think what the solution that that people are moving
forward with is it with the drones and with the intelligent drones to be clear it's a certain
class of drones that can even do this right because the really cheap consumer drones you're
not standing there on the side of the hill flying this, you know, thing 30 feet from
you into a fire. It's the ones that have GPS and some autopilot features that are even able to get
out of line of sight so they can be a problem. So they already have the electronics and the
hardware and the software so that they could know not to be in an area. And so you think they should
solve it more with the drone operating systems
and have the keep-out zones?
I think that's the way they're going.
I'm not sure that's perfect,
because you still have to connect it to the internet to get it.
I mean, a wildfire happens randomly.
So you're still going to have to connect it to something
to download a new map of keep-out zones,
and that's going to have to be updated in real time.
Well, the keep-out zones of airports will be permanent, but you're right.
That's not going to help fires.
So I don't know what the short-term solution is, other than making it extremely clear that
you're going to get in a lot of trouble, but then you have to trace the drone back to the pilot.
Well, San Bernardino County, which was one of the counties affected by the fires offered a
seventy five thousand dollar bounty leading to drone yeah maybe that's enough um yeah maybe we
can just make it so that it's worth turning someone else in of course if anybody posts those
pictures i suspect they will be getting a door knock or two.
Well, you have to, yeah, I guess so.
I don't know.
I mean, I can see wanting to fly a drone over a fire.
That would be fantastic and interesting.
Well, I think people want to fly them over all kinds of things now because you can.
I alluded to if you fly them over your neighbor's house, they self-destruct. That was a news article where it self-destructed with the help of a shotgun from the person
whose house was being fired over.
Yeah.
And you probably shouldn't be discharging firearms randomly, even if there is a drone
over your house.
Yeah.
Anyway, that's another topic.
So what do you think they should do?
I like the idea of jammers because that means they go home.
And I wonder if the keep out zones shouldn't be fixed zones,
but they should have a radio tower that also says,
if you can hear this, go home.
That's tricky.
If you're talking about building infrastructure that that allows for keep-out zones,
you should be able to hear a radio command.
It's hard to discern.
It sounds like you're saying if you can hear this at all, go home.
It's hard to control that.
It is, because it's radio.
It could either be a much smaller area or a much larger area than you intend.
Well, maybe it should be a digital signal that says you cannot...
A keep- out zone is
this box i think um you may not know about this keep out zone because it's not permanent but right
now you may not enter this amazon had a big presentation last week i don't know if you saw
it no i didn't um they're moving forward with their drone stuff and they came out with a huge
plan which basically said we're serious about this this wasn't a joke. And they had, I think they had several tiers
of kind of good behavior.
And in one case, they defined no-go zones.
So they defined an altitude lane
in which drones would be confined.
And I don't remember the exact specifics.
I think it was 500 to 1,000 feet or something like that.
They were completely excluded around airports at all altitudes uh and there were some other exclusion zones they also talked about keeping them from getting in the way of things airplanes
helicopters uh and they i think they had a couple of kind of phases of that or tiers of that that they were looking at like gps uh and
then actual sensing things that you're coming close to and staying away um and i don't remember
the third one i seem to remember the third one was something like what you're saying but from
an airplane saying keep keep away from me um but they're thinking about this and other people are
thinking about this i think the real trouble
is there's this fuzzy area now where it used to be a drone that was capable of actually doing
serious damage by getting to an altitude where they were interfering with stuff was very expensive
and it was in the kind of the pro world now it's a few hundred dollars, maybe $500, to get a very, very capable platform.
And people who aren't thinking clearly are using them, I think.
Sure.
They're fun.
They're awesome.
But they're dangerous to other people.
And they're not always.
You just have to be sensible about what you're using.
It's another ethical problem.
Yeah, but if you don't know you're doing something wrong,
it's hard to be ethical.
If you don't think about...
I mean, they probably...
I'm guessing the fire people,
and maybe this is being too generous,
but I'm guessing they didn't even think,
oh, could I even get to an altitude
or someplace that I'm interfering?
And of course, with those, those planes and helicopters are quite low because they're trying to spread fire retarded on small areas and what have you.
And they run with little margin.
And so if they can be grounded easily.
Right.
Because you don't, okay, my place to land in an emergency is the middle of a fire.
Yeah, I'm not going to go up.
It's just not safe enough.
So, yeah.
It's good to know that Amazon's thinking about that.
I guess that leads to my next thing, which was Apple was thinking about security.
Well, I did find their classification.
Oh, you went, okay.
So, they actually classified drones into four categories.
Basic is radio control, and that's the cheap little things.
Line of sight flight in predefined low-risk locations.
And that's no different than what we've had for decades
with radio-controlled helicopters and airplanes.
Those are just as dangerous.
Calling them drones doesn't change the fact
that we've had line ofsight flight for a long time.
I don't worry as much about those.
No, we see those flying over our school all the time.
A class good is ability to announce and log identity location via V2V.
I'm guessing that's a new acronym for something.
Ability to receive air traffic information.
So this is just the next level up from BASIC.
Weather data, GPS, Wi-Fi, internet connected via ground control,
proximity alerting to operator.
Aerospace access for BASIC+.
Unrestricted daytime line of sight flight less than 200 feet
in rural operating areas, limited operation in suburban areas.
And then they go up from there, and the crazy one is
the best class non-collaborative
saa somebody's situational awareness of some kind automated automated deconfliction great word
reliable on-vehicle internet connection 40 so i guess i mean what we're talking about is having
an always-on internet connection so that they can be updated for areas
they keep out of and have enough um sensing and other radios that they can actually do autonomous
air traffic control and that's the way you get there we should ask dennis the from airware all
of these questions instead of just blathering about them i'm not blathering i just think this
is interesting oh no i think it's super interesting
and I'm happy that
somebody has come out with a
standard. And that class of drones,
I mean, beyond line-of-sight flight, less than 400
feet in all operating areas, including urban.
Vehicle-to-operator ratio
greater than one-to-one. That's the big one for
Amazon because if they want to do deliveries, they can't have
a single operator for every
drone. Yeah.
That would get old. Transiting from between 200 to do deliveries, they can't have a single operator for every drone. Yeah, that would get old.
Transiting from between 200 to 400 feet, daytime and nighttime.
So lots of stuff.
I mean, that's basically your autonomous flying robot that can do anything.
And as long as there's reasonable limits on how to keep everybody safe who's not playing with a drone right now. I think they're going to have to license people, which I'm kind of not in favor
of.
I tend to be in favor of them because then they can't say,
but I didn't know I wasn't supposed to fly
over the fire.
Anyway, your hand motions indicate I've droned on too long
about drones. Thanks for that.
Yes.
And I was happy Amazon thought about it.
I was happy Apple thought
more about security than I did.
I wrote a checklist based on our conversation with Jen,
and I was happy with what I wrote for Element 14
because it felt very usable.
This is a security Bluetooth checklist.
Yeah.
Well, it's an Internet of Things device.
It wasn't Bluetooth-specific.
And it went from what your
device should do to what your
cloud should do to at least think about
these things and to score
yourself. The scores were
totally meaningless, sort of like
the points being meaningless if we play a game.
But
it was, I tried to get everything
in one spot and then I found that Apple
already sort of did this for their devices,
which I should have thought of.
Well, they're generally publishing that stuff.
But I have a link to that.
I will link in the show notes.
And I will link in the show notes for the Amazon good drone behavior stuff.
Good drone citizen.
Good drone citizen.
Well, as long as we're on ethics, should we go to that one next?
Sure.
What do you have for that?
A friend, a co-worker from years ago emailed and said he was thinking about
contracting, though he has a full-time job.
So we're definitely not going to say his name or where he works because that would be rude.
Moonlighting, I believe it was called.
Moonlighting, yes.
And he wondered about the ethics of moonlighting.
Assuming your contract does not explicitly prohibit it,
what do you do and how do you keep it separate?
And I found I had a lot to say about that.
Okay.
But what do you have?
If your contract doesn't explicitly forbid it,
I don't think you're under any obligation
to tell anybody at your main place.
I mean, certainly it would be probably,
I don't want to say ethical,
because that's what we're talking about,
but I certainly would be honest to do that.
On the other hand, you're under obligation,
and if you keep it so that it's not impacting your main work,
and that's the real tricky bit.
Well, then if you're a salaried employee,
don't they get all of your brain cells?
Isn't that what salaried sort of means?
I think salaried still means 40 hours a week.
Somebody out there is about to crash their car
because they're laughing so hard.
You can be exempt from overtime,
but I do believe that the rule is still
that you're supposed to be working 40 hours a week.
Not working, but that's what you're paid for
when you get a W-2 pay stub.
Yeah.
So, yeah, it's tricky.
It's tricky.
And you have to be also careful,
is it anything that's even close to related
to what you're doing at your main job?
Right.
My advice to him boiled down to
they're going to find out.
Don't do something you regret when
everyone finds out. Everyone will
eventually find out. It always happens.
And if you have trouble
explaining it or you'd make
permanent enemies by doing it,
avoid
moonlighting.
But I gave some
other tactical advice
about you need the separation.
You need to show,
I mean, when they all find out,
you need to show
that you didn't use the same materials for both.
Right, laptop,
lab space,
certainly don't do any work at the office.
Don't use your uh company paid for
compiler to compile for your little startup um seriously consider taking pto because then you
can say this time was not paid for by your company but then you're missing out opportunity because
that's unfair i think that's unfair because you end up paying for your moonlighting work effectively yes i don't i don't think you need to go that far
i think if you want to be like super careful that would be one thing to do
um i'd also if i was separate laptops but if i was uh using my home laptop to do the moonlighting, I would want to make sure that none of my
work code was on my home laptop, which given how I work, sometimes that happens.
What about if they were in VMs? I have multiple clients with multiple data shared on a laptop.
They're in separate VMs.
I guess my point is, if it came out out I would want to be able to say
look I didn't look at your code
in order to implement their design
and so multiple VMs doesn't do it for me
but I mean with clients
I agree I do keep them all on the same computer
so I'm not as strict with that
it was just the full time
yeah but you said personal laptops
so that's kind of weird
well I assume full time people have work laptops and personal laptops with that. It was just the full-time. Yeah, but you said personal laptop, so that's kind of weird. Anyway.
Well, I assume full-time people have work laptops and personal laptops,
whereas we have our... Yeah, but
your example, I think, had a personal laptop
with both work stuff in.
Well, yes, but all of my work laptops,
all of my personal laptops, when I worked
full-time, I managed
to smash it all together.
Yeah.
And full-time it was all i managed to smash it all together yeah um and notebooks i know i'm a fanatic about notebooks but i wanted to say uh you should write down the hours you work because that's not
only good as a contractor for being able to say here's what i did in these hours but it's also
good for being able to say to your full-time folks,
these are the hours I worked.
I was not working at you.
I wasn't at work.
Where do you draw the line though?
Is it only the matter that you're getting compensated for other work?
If you were doing a Kickstarter project,
does that count as moonlighting?
If you were making five things for Tindy,
does that count as moonlighting?
Where's the bar?
Because at some point you get to your hobby
and they have no right to say anything about that.
If you are making money through other forums
and you're using their resources.
Well, that's, I thought we already said don't do that.
Well, except the whole brain resource is tough.
My brain is my resource.
I agree.
And that's why we're contractors, because we don't believe that the Kool-Aid they serve
means that they should get our brains.
But some people really, you know, and that comes down to if you, if somebody finds out,
are they going to be really angry?
If you had a really, really awesome manager, I mean, like you were working for a big company and you went to your manager and said, I want to moonlight, or I want to do a Kickstarter,
or I want to sell things on Tindy.
A really awesome, willing to help you develop yourself manager would say, yes, go ahead.
That skill will be useful to me.
And so go off and do it.
If it takes too much time,
we're going to talk about you not getting your work done.
But overall, yes, go off, try it.
I think there's a line.
I think there's a line,
and that's being too generous to the company.
Because if I was in a band that I got paid for
and took a lot of time
I wouldn't tell my boss
I have no obligation
so what's the difference
the only difference I can see is
it's sort of related field
and so there could be a conflict of interest
if you're careful about eliminating the conflict of interest
I don't think that there's anything more you need to do
at a certain level if you're working 20 hours a week for your moonlighting job and 40 for your other job of interest, I don't think that there's anything more you need to do. Yeah, but...
At a certain level.
If you're working 20 hours a week for your moonlighting job and 40 for your other job,
okay, yeah, you're probably pushing it and you need to let them know that you're working
two jobs.
But if it's a weekend thing, I don't know.
I don't know.
Yeah.
Separation.
I mean, having it be a weekend thing, that makes it a lot easier for me to say yes you've separated your work
and your side project
but it was a tough question
it is a tough question
it's also a tough thing to do
I can see wanting to help out friends
but man
if you're doing it for the money
you're going to burn out really soon
okay what's next what's next?
What's next?
Yes.
Just bang, bang, bang.
Yeah, you said we have a long list.
You'd better start going.
What do you got on this?
Code analyzers.
What?
Oh, that wasn't really to talk about static code analyzers.
That was to tell a story about listeners and guests.
Okay. I assume you have the story ready.
It's mostly right there, I thought you'd say.
I don't remember the story.
So Dennis from Airware emailed to ask about Andre's episode where he talked about static code analyzers.
And Dennis wanted some more information.
And so I put them in touch with each other and they talked and they left me on the CCN.
I sort of read through occasionally, but I wasn't part of the conversation.
And at one point, Andre said something about, you need to do this so that Donna in QA doesn't get mad.
Oh, right.
I remember now.
And Dennis actually has a Donna in QA.
And so he freaked out.
He thought it was really, really, you know, one of those bizarre coincidences.
I wouldn't think it was a coincidence.
I'd immediately jump to paranoia.
Well, I don't know.
Dennis certainly phrased it as a coincidence.
Isn't that odd?
Isn't that odd?
It wasn't that Andre had hacked into their employee manifest and found Donna and QA.
No, it was that Donna and QA's picture was on their website.
And so he just looked it up.
It really was a Donna and QA, and Andre knew that.
See, but that's a little further than a coincidence.
Oh, yes, definitely.
It was, yes, eavesdropping on this conversation between them was pretty hilarious.
I actually don't have a lot of listener stuff this time.
I usually go through the listener emails, but I didn't do a great job this time.
No, there's several.
There's this thing from Stuart.
There's this thing from Stephen.
There's more from Andre.
There's complaining about Snoopy Apollo.
No, making it okay that we said Snoopy for the, or whatever, the Beagle.
That's right.
Right.
Pick one.
When you and Jason were very focused on talking about the Beagle that landed on the moon
while I was talking about the Beagle that landed or failed to land on Mars,
there were some actual relevant points there
because the Apollo 10 lunar module was named Snoopy.
And so that there was a beagle on the moon.
But not something named Beagle.
It was just a beagle.
A fictional beagle at that.
Snoopy's pretty famous.
That was from Mark Stevens.
And I would have written you thank you, but you misspelled your email.
So I couldn't do that.
So, thank you for now, here.
Yes.
From that general area of listener things, Stephen Jepson, episode 107, until they're all spaghetti.
Oh, that was Craig.
He wanted to build that radio alarm clock with FM tuner.
Right, right.
There is a digital radio development board pro from monkeyboard.org that was pretty much perfect for the project.
Oh, great.
If you are thinking about doing that same thing, check that out.
Add FM radio to anything.
That's right.
I hear FM radio is a big
growing field.
When I point
to you, that means I need to
take a breath or something, so
it's time for you to talk, not
heckle the
world.
I have to see you point to me.
It's a best effort kind of communication.
You have to retry if I don't respond.
That's awesome. Thank you for that.
Listener Adrian said that
autonomous robot fighting exists, but it is very sad and sent a video that indicated it was indeed quite sad.
And the sadness was that they kind of poke at each other until one falls over.
Yes.
But that there are sumos,
the little,
and I've seen the little sumo bots.
They're all little wedge shaped things.
Oh,
that was amazing.
And those,
the Japanese version of those was
they had to be autonomous
because they happened so fast.
That's what I was thinking when we watched it is
oh, this is what robot fighting
would really look like because they're not
taking their time. They're resolving
this at the speed of a computer.
It was
beautiful to watch. If you blink, you miss it.
Yes, it does show that future fighting robots is going to be It was beautiful to watch. If you blink, you miss it. Yes.
It does show that future fighting robots is going to be showed in slow motion because we won't be seeing any of that.
Maybe the Microsoft.
Microsoft?
Oh, man.
A Microsoft robot's going to be slow?
A microscope because there'll be nanobots.
Fighting nanobots.
I can't believe I conflated microscope and Microsoft.
She's shrugging.
I didn't have anything for that.
You have to verbally
not have anything for that.
I, yeah, well.
Yeah, so, I mean,
that would be fun to work on.
That was more interesting to me
than radio-controlled
quasi-fighting robots
that seemed to only exist to chop each other into little bits.
And this had a goal.
I mean, you didn't have real strategy, but it was sumo wrestling,
so you were trying to get somebody out of a ring
without leaving the ring yourself.
In BattleBots, somebody had clipped things together
so that they didn't have anything.
It was just the fighting.
Kind of like the Olympics without the NBC.
But then that got a takedown notice.
Of course it did.
So we haven't seen a lot more BattleBots.
We haven't seen a lot more Mr. Robot because it turned out it was not about hacking computers.
It was with real-life portrayal of computer situations.
It seemed to be devolving into real-life portrayals of drug use,
which I'm just not that interested.
All right.
I figured we dropped off for a reason.
I kind of have high hopes for it still,
but they probably should be tempered.
You can watch it without me.
If it comes back, I'll think back.
Is there time for that?
Right, right, because Rick and Morty came out, It should be tempered. You can watch it without me. If it comes back, I'll think back. I don't have time for that.
Right, right, because Rick and Morty came out and you have, you know.
That's a 20-minute show.
Okay, something useful.
Something useful.
Well, we have a couple big topics regarding conferences.
I don't know if you want to get into that yet.
Conferences. Sure, let's get into that yet. Conferences.
Sure, let's get into that.
All right.
First, the good news. The good news is that the Solid video is up on YouTube.
And if you want to see me give an introduction to inertial sensors
with extensive use of ridiculous props, you can.
And if you want to play it at 2x speed, you can do that too.
Although I've heard that that is pretty much unintelligible
because I don't speak slowly in the best of cases.
And if you want to feed it to Google Deep Dream and have eyeballs and strange...
Please don't show me that.
If you want to do it, have at, but don't show me.
So yeah, and I'm pretty happy with that talk
i'm happy with it for all sorts of reasons i have not watched it so if i look like a dork don't tell
me someday i will watch it but i'm just not quite ready right now i have the happy glow of i spat
out all this information and people nodded along happily. So I'm just going to stick with that as a mental image.
They sent you a thank you card.
They did send me a thank you card.
It was strange and weird, but an actual physical mailed card.
I don't think you could do that anymore.
Oh, no, the mail still works.
You could buy a 3D printer and have them transmitted on the internet and then you print it out.
Or drone deliveries from Amazon.
So the bad news with Conference Land was that ESC was not what I expected,
not what I'd hoped, and in general, not what I wanted as a speaker,
as an attendee, or even as somebody who wandered around the exhibit hall.
So I wrote a rant on that on my personal blog.
Mostly for everybody who attended or spoke because I encouraged you to do it on the show.
I'm sorry.
It was really not good this year.
It was really just not what I wanted.
So given that and moving from the negative to the positive...
Yes, yes. Let's talk
about that.
So, what would you
like to see in a conference? I have some
things, but...
The whole deal with this was that...
Was that I was going to talk? You were going to tell me
what you wanted in a conference, because I have a whole list, and I was
going to write it out. Well, I just said that I have some things,
and you could have just thrown to me.
Oh, man.
We should do like a professional podcast
where we plan things.
There's a plan. There's this whole text file.
It's very long.
It's the text file I
write in whenever.
It has paragraphs and everything.
So I'm not a big conference
person so what i look for is not going to be applicable to everybody um and i think there
are a couple kinds of conferences even though i'm not a big conference person i've been to
quite a few so i do want to focus on a technical conference oh sure sure an engineering even within
that there's there's many different classes because you've got ones where they're topical
and it's primarily paper presentation or technical talks.
Right, like ION, Institute of Navigation,
where you really go into the algorithms of GPS and inertial systems.
Right, or like IETF, which is kind of a giant working group
for steering the internet where everybody talks about various topics and there are tracks about, oh, we're working on this protocol, do you have comments and feedback? But there's no exhibit floor. There aren't any companies there, except as representatives of their company to talk to other companies. you've got total trade conferences which are entirely vendor-based big show floors lots of
booths presentations generally are by the companies telling you how to use their product or why you
should use their product not somebody else's or you know just demoing stuff and then you got the
ones in the middle and i think esc is kind of ones one of the ones in the middle where there's a trade
show element there's definitely that vendor presentation
element or there used to be and then you have a periphery of talks which can be given by anyone
who's an expert in their field as long as it kind of falls into this is about embedded systems
so for all the for those three classes i think you look for different things right i think
for the show floor you want to have a show floor
where people can demo their wares
in a comfortable manner,
have conversations with customers
and with business partners
in a way that they're not going to be drowned out,
that there's not going to be a lot of foot traffic,
you know, auxiliary foot traffic
going through your booth or whatever that isn't related.
So stuff, you know So just have enough room and have enough
foresight to design it so that people can have little presentation
areas about their company and their products.
You know, one of the things that I've been thinking about is
I get pretty annoyed at the talks that are just
advertisements.
You know, you go to this talk and it's like,
I don't know, I'm trying to think of one,
UI design for limited devices.
And you know, the description's like,
what do you do if you don't have a keyboard?
What do you do if you don't have a screen? And yet you still need to interact with the human.
And I was like okay
that sounds cool but it turned out that it was a talk for a specific company and it was very related
to their company and i did i felt you know bait switched it was an advertisement and i didn't sign
up for an infomercial sure um on the other hand i've been to half-day and day-long courses at ST and Atmel, and usually you go to those and they give you hardware as sort of a payment.
I wouldn't mind having those at the conference, maybe two hours, workshops.
I'm okay with having paid advertisements, but I want them marked as such.
Well, yeah, and that's what I was saying about mixed conferences,
where you have a floor where they can do that on the floor.
And it's about having enough room.
Yeah.
When it starts to bleed into the presentation tracks
and you can't tell, that is a little weird,
and you're kind of breaking that barrier between
this is a technical talk with meaning
and this is a subtly or not-so-subtly failed advertisement
for my company or product.
It's a tough line to walk.
It is, and I think it's a tough line for organizers to walk.
Because everybody's selling something.
Right. I mean, I don't give presentations
truly out of the kindness of my heart
or out of pure boredom.
I do it because it is a good...
Well, I would say it's good for the company, but
please don't hire us.
We're just too busy.
Probably.
Probably. If that contract comes through.
Anyway, it's not a good advertisement
necessarily for a company.
And so really the reason I do talks lately
is it's a good advertisement for this show.
More than
anything, it's like,
okay, now I did this neat little presentation.
If you liked it, you should come listen all the time.
Yeah.
It's not as compelling.
But I mean, as far as infomercials go,
that is my infomercial,
and I try to leave it at that
and still make it interesting about something else.
Yeah, so I think if you're going to have vendors,
you should go all the way and have vendors.
And if you're going to have presentations,
you should make it so that that is well kept too
and have enough space and accommodation to do both.
So the space problem.
Yeah.
I heard someone say that it is better for psychology,
I don't know, some psychology thing,
to have a few number of people in a small space
than a few number of people in a large space.
Because in a small space, a few number of people in a large space. Because in a small space they look
less
sad.
Conferences can look sad if there are only
10 people on the show floor.
But if you made it all
smaller then it wouldn't look as pathetic.
That's probably true.
And yet that fights with the
problem that you can
I hate being crowded.
I mean,
I just don't do well at all.
Well,
and how are you supposed to talk to people?
Even a small room with 10 vendors is going to be really loud.
But how do you balance the whole,
you don't want it to look pathetic with you want enough room to talk?
I don't know.
I'd say if you only have 10 vendors, what's the problem there?
Well, I meant you only have 10 attendees and 100 vendors.
That's pathetic.
Well, I think your conference is probably broken.
Well, that is true.
I think it's worth its path saving.
I think that's a separate issue i don't think you should be solving problems of appearance
by or solving problems of your talk your conference is not successful or your conference is
doing poorly by trying to reorganize it so it looks like it's not i think at that point
i mean you're not talking about anything real. Yeah. I didn't really buy the
we're going to pack everybody in
so that it looks better argument.
I can see why some people would think that.
But most engineers I know,
crowding them is not a good way
to get things done.
Yeah.
I'm a lot more sensitive to that.
Partly you don't know how something's going to look
until you're doing it.
Well, if you have free expo passes,
you really don't because you have no idea
if everyone's going to show up or not.
Right.
So you haven't really said what you want.
Oh.
Well, okay.
Let me ask you some more
because I have more questions here weekend or weekday
well that depends i mean for me weekends is nice because then it doesn't impact other work
um but then people going to conferences usually do it as part of their work or paid to so
you don't necessarily give up a weekend when you're being paid to go somewhere and do something for your company.
Well, I've been a manager and I was thinking about sending people to conferences.
And I thought weekend ones, I wouldn't actually, for some reason, that didn't indicate to me that it was a technical conference.
It seemed like a weekend conference would be a makery thing.
Maker fair, mini maker thing. It would be
a fun conference, because it's on the weekend. That was sort of definitional,
but I'm not sure that that would be true.
I think you could have a serious technical thing on a weekend.
Yeah.
But I'm not sure that that's what I want.
That's a perception problem.
Yeah.
Would you, okay, you are a manager.
Would you pay to have one of your people
go to a reasonably relevant technical conference on a weekend?
Yeah.
So I'm just being neurotic by the way. I'll take that.
Let's see, what else?
I did think about the traditional division of conferences, the expo and the talks. Although I had forgotten about IATF
being all talks, all papers.
And bar. Well, yes.
Actually, networking is a huge part of conferences.
ITF, most of the work got done in the bar.
Well, then that's unconferences.
Have you been to an unconference?
I have not.
So what happens is you get there in the morning
with an idea of what you might talk about
or what you might want to attend,
and you then put together
your conference schedule right there. You don't do it ahead of time. You don't plan a lot. Instead,
you really focus on the idea that the best part of the conferences are the outside, the talks.
You go to talk so that you have icebreakers to talk to the people you need to talk to.
I don't like to pay a lot to attend those because I think organizationally I'm paying for planning.
I guess that falls into, I would like the organizers to consider maybe looking at the talks before they're spoken at the session.
And TED does that extensively.
You don't just give a TED talk once.
But that's kind of hard to do.
So I'm thinking maybe if I was a content provider i would want to do webinars
ahead of time that was essentially the same uh conference material and then put them out later
you know riley put out my inertial video but videoing things is hard so maybe you do the
webinar online and you watch it and you see if it's all advertisements or you see if it's all
it's a lot of work. It is.
It's a lot of work.
If you don't want to know what these people are talking about,
why did you have them speak?
You mean as a conference organizer if you don't want to know?
As a conference organizer or probably in that role,
it would be like a track chair.
Because a lot of the conference organizers ask people who are in the field to look at the submissions.
So shouldn't you be trusting the track chairs?
I think they should ask the track chairs to look closer and to watch these webinars which the organizers put together.
It's a lot more work for a track chair,
so you might need to pay them.
I think also you need to think about
what your goal is for the conference.
I mean, as a conference organizer,
why are you holding it?
What do you want it to do for your industry
or for your trade group
or for your internet organization or whatever?
You know, that's probably the hardest thing for me
because I don't really think about that.
I just think about the conference I want to attend.
Yeah.
And so I don't worry about the organizers.
But you have to think, what is this for?
What is this meant to be for?
Well, I mean, for the Embedded Systems Conference,
and even for Solid, a large part of it is for the exhibitors
to sell their wares to the attendees, and for the attendees to learn enough that they will come next year in order to have their wares sold again.
Does that make sense?
It does not.
It's a cycle.
It's a trade show.
ESC always struck me as a trade show.
Yeah.
This year it didn't strike me as much as a trade show what did it strike you as you don't have to answer that uh not being mean
i think a small a small uh i don't know they didn't have keynotes this year. Yeah, a small set of conference presentation tracks in embedded systems.
I like having keynotes.
I like solid, they did short keynotes.
They did a couple of keynotes in the mornings.
I like my keynotes to be far-thinking.
So a couple of people talking about technologies two to five years out
and maybe one talking about five to ten years out
and then I can go to lectures about practical things
really practical things
I want tracks like robotics
and then in the afternoon that same track would be called drones
that's very specific
medical and security
low power and RF design you're designing a conference called drones or... That's very specific. Medical and security. I mean...
Low power and RF design.
You're designing a conference.
Well, that is my question,
is how do I design a conference
that I want to go to?
Although I don't want to organize it, so...
But that's a trade show, too.
I want both.
I mean, I need the trade show, too.
I don't know.
I don't know.
Okay. Okay.
Well.
I don't want to run a conference.
That's for damn sure.
Oh, no.
Really not.
I would much rather design and play with things.
I mean, for all that you whine about writing code,
I think you'd whine a lot more about putting together a conference.
There's a lot of things I'd whine a lot more about.
Speaking of whining, let's see.
I said people had negative things to say about our logo
and some of you sent logo ideas for which I thank you
very, very, very much. But some of you sent logo ideas for which I thank you very very very much but some of you
also said that the current logo wasn't that bad so right now I'm cruising on this logo. Is the
logo currently injuring or harming anyone that we know of? I don't know those stickers get sharp
sometimes no that not even that but the stickers were on tv thanks to Stuart. That's right, so we can never change it.
I don't think that follows, but okay.
I guess that brings up Stuart's question.
Stuart's question.
How to go from datasheet to library.
He's trying to work out how to communicate with a module.
There was an API document, but it wasn't written with specific examples.
Generic C examples, but the vendor's free tools were only for 8050 ones.
So what's the question here?
How to have a part and then figure out how to talk to it in software?
Given a part with a series of registers and communication over ice grid c or spy yeah how do you write a pretty command structure a pretty api i see not trying to find one but how to write it yourself
right i mean okay so there's the neopixel library for the ws2812s in arduino and that's okay
you can read it um but let's say you come up with a part
that there is no Adafruit library for,
there is no SparkFun library for,
you have to actually do it yourself.
Okay.
What do you do?
Write it.
I mean, generally,
the parts' data sheets have a command structure
defined over I2C or SPY, right?
And so you make a pass-through that is essentially the same as their registers?
A pass-through?
If they have a register saying set gain, you have a function saying set gain?
Usually.
And if I need to do something more complicated,
I build it out of those functions.
Like set up for blah operation,
well that sets the gain here,
that configures these outputs to do this,
and then gets ready to start this transaction.
So you build a layer structure of,
at the lowest level, perhaps manipulate registers,
and then you build functions on top of that
that do actual operations, like you say, set gain or configuration options, and then you
build your higher level functions off of that.
And so if you needed to set the gain and start sampling and get sample, you would go ahead
and make that one higher level function
because that's what most people want to do.
If it's something that's called all the time,
if that's the main entry point into,
I'm using this device to do this big operation, then yes.
Does that make sense?
It does to me.
But that does bring up the other question,
which has been on my books forever,
and I was reminded about it recently.
How do you deal with errors in that situation so let's say you let's say your i squared c occasionally it's an error i feel like i'm in an interview go ahead uh do you retry at the lowest
level do you retry in the level you're talking about where it's you can't retry necessarily at
the lowest level because you might be in a state at that point where you can't continue with that
higher level function and just retry step 13 of 50 you might have already screwed up all the timing
at that point so you have to start over at the top i think i think unfortunately you have to be
conscientious about about that so in your i squared c library you pass back an error and you
say if you don't look at the errors you're going to get what you deserve no well i mean i squared
c has to talk to somebody higher so i was reacting to not looking at your errors. Of course, you should look at the errors. Oh, okay.
Yeah, I think at the higher level,
you have to have some understanding
of what the operation is
to understand what the error means.
And so you pass your errors back
until you get to enough intelligence to handle them.
Yes.
Or you just get an error and reset the darn thing
because it's an embedded system.
But that depends on... It depends on the stupid's an embedded system. Well, but that depends on, yeah.
It depends on the stupidity of your system.
Maybe that's the answer.
If it's something not critical
and that you have the time to do that,
then that's the easy thing to do.
Okay, I'd hire you.
Except...
Please don't.
I already have.
What?
Yeah, you work for me, baby.
I do?
Oh, yeah.
I'm a CFO.
I can just transfer all the money to the Bahamas.
And still 51% will mount.
I may work for you, but I can embezzle better.
I'm not even sure you know the QuickBooks password.
All right.
What?
All right, moving on.
Wait, are we done with that? i'm not sure we answered that i'm not sure we can i mean the short answer is it's hard sorry adafruit does a pretty good
job with theirs go look at what they've done one of the things they do is to encapsulate everything
in c++ if you are a c++ fan sweet sweet. If you are not, then it is still good
to group your functions that way.
You don't have to use classes.
You just have to group your functions.
Yeah, I mean, the way I read this is there's no
free lunch. If there's no support, you have to make it.
And you should start
from the bottom up
one thing at a time and test
those parts individually.
And then if you have a function that is,
if you have 10 things you do always together,
then go ahead and make a function,
because you don't want to cut and paste all the time.
That's bad.
And you let it do that function
and handle any intelligence and timing and errors.
Yeah, I don't really think we covered
how to handle with errors well enough,
but that may be its own show at some point.
It's very specific to the application.
It is.
I mean, if you have a display
and you get an I squared CR,
that's less...
That's a different situation
than if you have an ADC
and you get an I2C error.
Because if you miss a bunch of samples,
the consequences of that are different than
not having written a line on a screen.
You can't go back and get samples you lost.
But you can go back and rewrite a line on a screen.
But you can't make that determination
until you get to a piece of code that knows
what is happening below it.
What a sample is, what a sample means.
Yeah.
What that graphics line meant.
But you can't do it at the register,
read-write register level,
and you can't probably do it at the lowest SPY transaction.
So you, there's, yeah.
Just bubble it up.
There's no free lunch.
You have to do the work.
You have to be as smart as you can.
And no smarter. And encapsulate be as smart as you can. And no smarter.
Encapsulate it as well as you can
and be smart but not clever.
No?
Let's see.
We talked about ESC.
I thought about having an ESC meetup
and couldn't get it quite together
for various reasons.
For one thing, we didn't really figure out where ESC was.
Yes, if we had had the ESC meetup, it would have been at the Santa Clara Convention Center,
because that's where I thought the conference was, up until about 20 minutes before my first presentation.
At which point I said, yeah, Christopher, you're right, I don't think the conference is here, and then we got in the car and drove to the correct location with
minutes to spare.
Yes, I am super prepared.
No, I mean, I was prepared, I just didn't read, never mind.
Photon? I wrote about my Photon garage door opener
first blog post
ended up just being mostly about
Photon versus electric input stuff
Photon is a wifi module
from particle.io
it's very Arduino-y
and yeah I decided to kind of write up the project.
The first post was very general.
The second post was, here's how you build this and talk to it.
And I think I'm going to write one more where I talk about how to write an iOS app
to talk to Photon projects, using this one as an example again.
I'm not sure about that.
It will probably require a lot of prior
knowledge otherwise it'll end up as a book um so you got the photon uh when i brought it home from
solid and you built a garage door monitor and opener and so you can now use your Apple Watch to open our garage door
or close it or to see the
state of the garage door.
And that goes
through Wi-Fi.
It goes through
Wi-Fi, yes. The photon is connected to the house
Wi-Fi and then the phone
gets to it through the cloud.
So you don't have to be home
to do this. I don't have to be home to
crush somebody
standing in the open door.
I think the garage door sensors
still work.
Don't think about it.
It's still scary.
It's a little weird.
Yes.
But it's cool.
I mean, these things exist.
You can go buy them.
And that module
was like 30 bucks.
The photon module?
I think so.
I'm pretty sure.
Something like that.
That one came with a breadboard and some starter parts so you could get to your blinky light without buying anything extra.
I think the bare photons are 19.
So it was fun.
How long did it take you?
The photon part was just a few hours.
Well, the garage door part took you a little bit longer
because you needed the FET and everything.
I needed a relay.
Relay.
FET would work, but I used a relay because there was one in a box.
Sometimes Christopher says, I need this.
And then it's in my hand when he turns around and he gets really freaked out.
It was hilarious.
That was jumpers.
I don't think that part took me very long.
That was the sort of afternoon project.
The harder part was making use of the phone.
That took a lot longer, but that wasn't anybody's fault,
but me trying to learn how to write an iPhone app.
Which was still, I mean, that was a day or two.
I may not have seen it.
A few days in front of the TV.
Okay.
And then you put it as a
test app so that you could get it on
your phone? Because you are a
licensed Apple developer? You paid your
99 bucks? I don't know if you
have to do that anymore. I think you
can put things on devices without paying them now.
That interface is...
There was a company called TestFlight,
and they tried to make it easy for you to deploy betas to people
for iPhone apps because you have to deal with the store
and approval and stuff, so all that gets very complicated.
And so they kind of designed a system that somehow got around
a lot of the complexities, so you could keep track of your beta testers and they just get an email as a new version and they could install it outside the store.
Apple bought that company.
And so now that's integrated into the whole development system.
And so you can work on something and send it to quite a few people, I think hundreds and maybe thousands, to use your app as a beta without putting
it in the store.
So that's kind of what we're doing in the house.
I don't see a need to give it to anybody else, also because my password is in the code.
I thought it was neat, because when I work with companies who want to do prototypes,
those that are sort of in the napkin sketch stage and they just want to know, will this ever work? Can you help me do a bomb?
One of the things I've felt very feeble about was I could build the hardware out of prototype boards and I could write software to do what they wanted.
But they invariably want the phone app and I am not an iPhone programmer. I'm not an Android programmer.
And so I think, well, if they really want it,
I suppose I could figure out Android
and make a bare-bones app for them.
But you're convincing me that I could make an iPhone app instead.
I don't think it's really any worse.
I think they're both, having done both,
and I wrote a more complicated Android app for a client,
they were both equally annoying. both having done both and i wrote a more complicated android app for a client um
they were both equally annoying i think the ui design tools are both crazy and inscrutable and
very complicated um and things happen that just don't make sense until you just kind of
bang at them until and this may just be i've learned it the wrong way but it does seem like there's just interconnections that break and dependencies that get wonky and just a lot of
complexity in the build system on both sides that just through the kind of everything stopped
working and now i have to figure out what's wrong for two hours and i don't even know what i did
yeah but i don't think either platform is better for that I mean you think you look at Android and say oh it's Java
that's easy, but the language isn't really the hard part
of any of this stuff
because they all have nice libraries
syntax is syntax if you're a software developer
and of course Apple now has two choices
Objective-C and Swift
and Swift is more Java-like
than Objective-C
syntax is a lot friendlier.
Yeah, I guess I would want to use Swift.
I don't think picking...
That looks like fun.
Unless there's a hardware element where you need approval from Apple,
like an M5 situation where you're plugging something
into the Lightning port or using Bluetooth Classic,
then it's easier to say, I'll do our prototype on Android
because we don't want to have to deal with them.
But if you're using Bluetooth Low Energy
or if you're doing something that's a pure app
talking to the internet for cloud control stuff,
I don't see a reason to choose one or the other.
You were up running with your app pretty fast.
I was really impressed by that.
I used a lot of example code for Photon.
I was excited by that because it meant
I could probably do that because it meant I could
probably do that in the future
their example code was real good
they had whole example apps
and they have an app that
when you get the out of the box experience
it has firmware on the photon already
or it downloads default firmware
that allows you to interrogate all the pins
and control
them from a very nice looking iphone app that has the the part on it so you can push a pin and say
set this high or set this to an input and read it uh and so that app actually which is very
complicated and does all kinds of things uh is open source so for a really big example, you can go look at that one.
I wish Nordic and TI,
they have their system-on-a-chip BLE things,
and I wish they open sourced their stuff, because that is where I want to stop.
There's no reason not to.
They're not competing with app developers,
so I don't understand why they wouldn't.
I think they just do a hacky job,
and they don't want that to be what they put out.
Except...
I'd take hacky if it got me to the starting point.
And this is not a good app.
I mean, I didn't write a good app.
I don't really know what I'm doing in Objective-C,
so there's all kinds of strange things
that probably are not the right thing to do for a developer.
But I wasn't interested in doing it the right way.
Sometimes that's the fun of hobby projects,
is I don't care about doing it the right way.
I do it the right way all day long,
and damn it, I'm going to just write some really, really hacky code.
Speaking of hacky code...
What have I done now? We listened to that new me oh yeah thing on this
american life yeah and it talked about putting cars together very badly it's kind of an old
it was an old show um they rewrapped it they rewrapped that podcast. Yeah. But it was about GM learning Toyota's quality system.
In the 80s at the Numi plant.
90s?
80s?
It was the 80s.
It was 84 when they...
Okay.
Sometime around 84 when they started doing it.
Because the plant...
I remember when it shut down, but it wasn't...
It went through the nineties,
I think, but yeah.
So Numi's an automobile plant in Fremont and for years there was a Fremont
plant that GM had that if you listen to the story,
it sounded like basically prison or a very bad part of town um and the way things worked there was was kind of a
total free-for-all people would had no pride in their work they didn't care about what was coming
off the line you could never stop the line well that was yes that's an important issue and so
if something was wrong i mean if you did something wrong you dropped your part you
really had to go to whatever you you just you let it go because you couldn't do anything else
and so they piled up cars in their back lot for remediation so there were hundreds and hundreds
of cars that some of which they said wouldn't even run or start and they would do malicious
things too they put coke balls in the doors you know the stuff you usually hear about
horror stories from car customers,
from the American cars.
You know, there's a rattle.
Oh, I opened it up and there was, you know, some trash and stuff in the door, whatever.
So they were a terribly run plant.
And then, long story short, they shut the plant down.
And then Toyota came in.
It was closed for like a year yeah toyota came in fired everybody
uh toyota came in and i don't remember the details of how they got together but gm and
toyota decided to do a joint deal where they would reopen this plant as a joint toyota gm
facility toyota wanted to do this because they needed to produce cars in the United States, or there would be export-import issues. And at least some part of GM wanted to learn how to
build cars better. Because they heard that Toyota cars were more reliable. So they sent some people,
they sent a lot of the workers over to Japan, rehired them, and they basically made a really,
really well-run plant using different methods from Toyota and turned it around.
And the people had a lot of pride in their work.
The quality of the car coming off went up.
It totally kind of changed the whole thing and the whole feeling of working there from a prison to someplace where, oh, I'm making a difference.
I'm making a good product.
Lots of worker pride in the after stories
so having recapped the entire podcast it was pretty good podcast because people were pretty
in depth about i thought about software while i was listening to it because the thing you said
about not being able to stop the line kind of resonated with me where so much of that podcast
resonated with software it wasn't it wasn't just that you couldn't stop the line.
It was that the attitude toward quality was,
we will deal with quality on finished product.
Yes.
So once the car is done, then we'll go fix any problems
that were introduced while it was being constructed.
And I feel like software is a lot of that way in a lot of companies where
we have to get the features out.
We have to get the...
It's all about the user stories, man.
All about the user stories.
About the user stories.
It's about getting the features done.
It's about...
Minimum viable product.
Right.
At every stage.
Well, that's kind of mixing stuff up.
I mean, that's Agile.
I mean, I don't want to...
Yes, that's a problem with some implementations of Agile,
but it happens in non-Agile places too.
Well, no.
MVP isn't in Agile.
I haven't heard that until I started doing Agile.
Yeah, I'm hearing it elsewhere.
Well, somebody stole it from somewhere.
Probably.
But it was...
You don't think about quality while you're doing your code
because you're in too big a hurry.
The line can't stop. You've got to meet these deadlines, which are arbitrary to get your code out. And that kind of goes back to James Grenning and test-driven development. you can stop at each point and make sure that each part is working and if something's not working you shouldn't proceed past it
file a ticket and then say well we'll get back to that
because it does create this really kind of antagonistic and painful
way of working where you're always you're always kind of looking over your
shoulder that well shoot i know that's in the past and
it's going to get me you know technical debt you hear that word a lot now uh and it also
creates antagonism they were talking about antagonism between unions and management
which is a different separate issue but it does create antagonism between the developer
and product management and management i think think you're QA engineers.
Because the pressure is you're going too slow.
And so, well, how do I go faster?
The first thing to go is I'm not going to worry about quality.
I can get this feature working faster by not thinking about good practices.
By not thinking about how it's going to work in the system.
By just getting my part done and to heck with everybody else,
I'm going to use the memory I need to use. Yeah. I mean, I don't think there's any analogy exactly to software developers putting
Coke bottles in their code. Really? I can make up some analogies. You can make them up, but I
haven't heard any stories about that actually happening. I'm sure it happens, but those people
probably don't last long. Well, the workers were angry.
We don't have unions to keep from firing us.
And I have met some angry software engineers,
so I suspect there are Coke bottles in doors.
Maybe in Flash.
In Flash is all Coke bottles.
Oh my God.
It's Coke bottles and a pile of Coke bottles.
Yeah.
And not Flash memory.
We're talking about Flash that might run in your browser
if you're willing to have it.
Nothing against flash memory.
So it was interesting, and it got me thinking
to test your development and software methodologies again.
And I think there's only so many ways to make anything.
Everything is a pipeline.
And you need to decide what that pipeline looks like
and what you're allowed to do with it. And I think it's important to be able to say the pipeline must
stop. Because if we get past a certain point, we're burying a problem that we're going to have
to unbury later at great cost. And at the Numi plant plant they admitted that if they had a problem deep in the
car they had to take the car all apart and that the person who was doing the repair would not be
as good at precisely as everybody who was doing it in order and so you ended up with bad trim because
the person who repaired this didn't know how to do all this other stuff. They were a generalist who was bug-fighting,
not the really deep person who knew how this worked.
And that's great. I hadn't thought of that.
But now it's reminding me of working as a junior engineer.
In some places I won't mention,
very senior people would do the work.
They'd do the hard-thinking work.
And they'd usually do it
late at night.
And so you'd come in and the bugs would get
assigned, and the junior people were usually
the people who were assigned to fix bugs.
Because it was a great way to learn the code,
it was a great way to have them be busy,
and they weren't
experienced enough to be developing features necessarily
or these kinds of features yet.
And so you get really sloppy stuff
from the senior people that worked,
but, you know, had serious integration problems
or corner cases and big bugs.
And so you'd have these junior people
who are fresh out of college,
myself being one of them who were fixing these bugs
and I didn't know what the hell I was doing half the time,
and it would take me a really long time to figure it out.
Great for me, because I get to figure out
how the code works at a deep level.
Not so great for the company, probably,
because that person who developed the code,
A, probably could have fixed it in five minutes,
or if they'd been more conscientious
and a little more proactive about it,
wouldn't have introduced the problem at all.
But it seemed like it was just, this is the accepted way to do things.
Here's this code, it's got holes in it, you down the line, you fix the holes.
I don't think that's healthy.
Well, and I was really surprised at how much happier people were when they were empowered, when they could have good quality, when they didn't have to put out crap. And personally, I understand. I mean, if somebody asks me to do a bad job, I can say no, take my ball and go home.
But not everybody can.
And yeah, well, like we said at the beginning, it sounded like prison at NUMI.
But at the end, GM couldn't bring in what they learned.
They were too big.
They could do it in a microcosm,
but the whole organization,
there was too much.
It sounded like there was too much bureaucracy,
too many plants vying for resources
and not trusting it.
And because they hadn't,
so they tried to reintroduce it
at a couple of other plants,
it sounded like.
Yeah.
And it didn't work
because people fought against it.
They were skeptical.
And they did things like take pictures of the new me plant and say, here, make it like this.
Make it look exactly the same.
Exactly like this.
Which really misses the point.
It's like taking a picture of the outside of a computer and saying, okay, make me a computer that works like that.
But none of the other plants worked.
I thought it was because, and I think they said,
none of the other plants were shut down.
Yeah, you thought that was important,
that the people who worked at NuMe had a year off
where they were unemployed,
which meant that when you rehired them,
there was some excitement.
And there was a break.
Having a job.
And there was a break, and there was some excitement. And there was a break. Having a job. And there was a break.
And there was some fear.
Yeah.
But also, you weren't trying to introduce something into a working system.
You destroyed the system and rebuilt it.
You didn't try to patch it onto something that was up and running.
And I think that's a lot harder.
But that's sort of depressing from a...
I think changing culture is really, really hard.
And I think it has to be at the high levels.
I think you have to get it to someone who can say,
yes, we are going to slow down for a while as we adopt this,
but we are going to adopt this,
and we are going to continue adopting it until it has been adopted.
I mean, looking at the tech companies,
there's companies trying to do this all the time.
Microsoft.
Microsoft has been struggling for years.
They got rid of Balmer, brought in Satya Nadella,
and they're really trying to change their whole organization
into a different kind of company.
But it's not working in some areas.
It's working better in others,
but they're trying to move a ship that's on course,
and it's hard to turn a big, big ship.
Apple did it, but they almost died doing it.
When do you mean?
97, when they brought in Steve Jobs and Next.
I mean, they were on the verge of total collapse.
Well, yes, and you had a captain there who was going to do
what he was going to do.
And that cult of personality makes it a little easier
to change culture because you're all following one thing.
You don't get to choose.
Yeah, I thought it was a good story
for lots of reasons,
but if you think about it
as a parallel to software,
it's depressing and good.
Or any technology.
It doesn't have to be software.
I mean,
hardware is the same.
No,
any.
So moving along,
I apparently indicated
that someone who used QNX
was not making an
embedded system. That is not true.
If you're using an RTOS, you're definitely an embedded system.
It's not true that you insinuated it, or it's not
true that they're not making an embedded system?
I'm
not even going to parse that.
I did not
intend to
say that
you are embedded only if you're on bare metal.
I don't believe that.
I have never believed that.
It was a youthful indiscretion.
I don't know that woman.
Yeah, okay.
So my definition of embedded is resource constrained and purpose built for an application.
And so if you ask me if your phone is embedded, I will say, do you use it as a phone or do you use it as a way to play with the internet, interact with everybody you know, and seldom actually use it as a phone?
When you say, yeah, I have a smartphone, I would say it's not embedded.
If you say, I have a dumb phone,
that might be embedded, but I don't really care.
What about microcontrollers within a smartphone?
Like the motion sensor in a phone?
Yes, I mean, that is purpose-built for its application
and its resource constraint.
Whether it has an RTOS or not.
So you might have a big device that's general purpose
that has embedded parts.
Yes. And you might have
a huge device that is embedded
like some of these big routers
are very resource-constrained.
They're very purpose-built.
And yet they are using
processors that are
huge and beyond my scope of understanding.
Maybe.
They didn't used to.
Andre asked when it is good to use an RTOS.
And I promised him a blog post and then I totally slacked on that one.
I think...
I can give some quick answers.
When you have a display, an RTOS usually is handy because you have multiple threads there.
Not necessarily, depending on the complexity of the display.
Absolutely.
But I mean, if you have LCDs like that.
Anytime you need some multiple threads, that becomes...
I would say anytime you're using networking.
Oh, networking, yeah.
Because you have timing, you have asynchronous events,
you have queues and buffers and things.
TCPIP equals RTOS.
We'll take that, yeah.
BLE.
I think you need it, don't you?
It's a networking stack.
Yeah.
Most of the little processor system on our chips that I've been using have some sort of RTOS on them, but they often hide it.
File system? If you have a file system, you might want one.
I've done file systems without, but I kind of regretted it, so I'd give 50-50 on that one.
I kind of think, I mean, if you have,
you can look at the kinds of functions your thing needs to do,
and if those are provided by an operating system.
Well, operating systems, the core functionality is the scheduler.
Scheduler and messaging.
Yeah.
Well, I mean, why have messaging if you don't have multiple threads that get scheduled?
I guess, yeah, okay.
And so you need multiple things to be happening at the same time.
Sort of.
Sort of.
Interleaved.
And you get sick of interrupts because you can't have your interrupts be that long.
Right.
And really, your interrupts should never have been that long.
What were you thinking?
Wait, no, that was something else.
Yeah, so I don't know that I have a good answer for that.
Does anybody have an article that's already written?
I won't plagiarize it, but I would, you know, spread it around.
Well, and I don't know if the question is,
when is it good to use an RTOS versus a general purpose OS?
Oh, I think it was RTOS versus bare metal.
Okay.
Oh, look, another listener email. Wow, it was artos versus bare metal okay oh look another listener email wow it was good
that i organized these notes uh scott miller episode 100 we had a discussion of various 3d
modeling software for use in 3d printing none of us mentioned open scad that's with a D, not a B, because that would be yucky.
Open SCAD? Open SCAD. Okay, I like that better. Open SCAD. We're going to call it Open SCAD.
He said, if you are looking for
a full-featured CAD software, it's not a good choice.
What? What is this?
But if you don't need bells and whistles, he loves OpenSCAD.
It uses a scripting language to define the 3D models,
and so you can apply Git version management to models.
Oh, nice.
And he likes it.
I'm not going to read all of the ways he likes it,
but I will put a link in the show notes in case you want
OpenSCAD
or OpenSCAD.
Cool.
So, Christopher, do you have any
more questions? I think
we can wrap it up.
You can tell when I
get back to my standard outros.
I'm there.
So, I guess now is the point where I say thank you.
Thank you, Christopher, for being on the show.
I've enjoyed it.
Just enjoyed it, not enjoyed it immensely.
I've enjoyed it.
Well, thank you for listening.
We'll all thank Christopher for being here and producing oh we
didn't talk about the the thing we did with the oh that's actually a good point that should have
been in my notes uh so instead of closing at that point uh thank you also to aaron lore for
letting us play with his lightsaber thing 60 neo pixel lightsaber thing. 60 neopixel lightsaber thing.
60, wow.
And we went out and did pictures.
Light painting. Light painting.
Had just a really good time
running around a park after dark
pretending to be ninjas.
That's what you were pretending.
Well, yeah, I was totally pretending.
But,
yeah, I guess I'll put a picture in the show notes.
Yeah, pick a good one.
It was really fun.
And for me, it was one of those, Aaron had that big thing,
but I also wanted to be able to test the camera ahead of time.
So I picked up a little NeoPixel stick, and I had my little trinket,
and I put it together, and it went together pretty fast.
And I got to play with this thing
and it was a good excuse to build something small
and to fight with some of the tools
and to get it all done and looking the way I wanted
and then to go out and run around.
So yeah, I would recommend trying out
the whole light painting thing.
It was quite amusing.
You do need a camera that can do long exposures, and that's about it.
Or you need a husband who has a camera.
And a tripod.
You definitely need a tripod.
And probably some flash.
Okay, so you're going to need a photographer.
You don't need a flash.
You don't need a flash.
A flash is nice because then you can illuminate the area at the end of the exposure
so you can see stuff, but you can still do light painting without a flash.
All right. Oh, and if you've still do light painting without a flash. Alright.
Oh, and if you've never seen light painting,
well, there'll be a picture. Put some links in.
Okay.
Yeah, okay.
Okay, we now return to your
regularly scheduled outro.
Alright, well then
I guess I will talk to you next week.
And I do have a final
thought before I go.
I might have known, said Eeyore.
After all, one can't complain.
I have friends.
Somebody spoke to me only yesterday.
And it was last week or the week before
that Rabbit bumped into me and said,
Bother.
The social round.
Always something going on. And that's,
of course, from Milne and Winnie the Pooh.