Embedded - 112: My Brain Is My Resource

Episode Date: August 4, 2015

Chris (@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)
Starting point is 00:00:00 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.
Starting point is 00:00:32 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.
Starting point is 00:01:28 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
Starting point is 00:01:50 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,
Starting point is 00:02:08 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
Starting point is 00:02:40 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,
Starting point is 00:03:13 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
Starting point is 00:03:34 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.
Starting point is 00:04:14 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.
Starting point is 00:04:37 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,
Starting point is 00:05:05 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
Starting point is 00:05:25 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.
Starting point is 00:06:00 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
Starting point is 00:06:45 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.
Starting point is 00:07:19 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,
Starting point is 00:07:37 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.
Starting point is 00:08:00 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.
Starting point is 00:08:25 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.
Starting point is 00:08:48 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.
Starting point is 00:09:13 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
Starting point is 00:09:45 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
Starting point is 00:10:13 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.
Starting point is 00:10:31 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
Starting point is 00:10:55 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.
Starting point is 00:11:14 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
Starting point is 00:11:31 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.
Starting point is 00:11:47 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.
Starting point is 00:12:06 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,
Starting point is 00:12:38 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,
Starting point is 00:13:01 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?
Starting point is 00:13:21 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
Starting point is 00:13:43 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.
Starting point is 00:13:59 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,
Starting point is 00:14:19 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
Starting point is 00:14:35 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
Starting point is 00:15:08 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
Starting point is 00:15:48 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.
Starting point is 00:16:08 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.
Starting point is 00:16:24 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?
Starting point is 00:16:50 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.
Starting point is 00:17:09 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.
Starting point is 00:17:35 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,
Starting point is 00:18:09 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
Starting point is 00:18:26 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...
Starting point is 00:18:45 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.
Starting point is 00:19:01 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
Starting point is 00:19:21 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?
Starting point is 00:19:37 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.
Starting point is 00:20:05 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.
Starting point is 00:20:36 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.
Starting point is 00:20:59 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.
Starting point is 00:21:25 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.
Starting point is 00:21:48 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.
Starting point is 00:22:16 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.
Starting point is 00:22:42 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.
Starting point is 00:23:08 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.
Starting point is 00:23:24 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.
Starting point is 00:23:55 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
Starting point is 00:24:05 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
Starting point is 00:24:21 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.
Starting point is 00:24:39 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,
Starting point is 00:24:59 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
Starting point is 00:25:17 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.
Starting point is 00:25:37 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.
Starting point is 00:26:01 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.
Starting point is 00:26:22 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.
Starting point is 00:26:45 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
Starting point is 00:27:11 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.
Starting point is 00:27:42 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.
Starting point is 00:28:19 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...
Starting point is 00:28:38 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.
Starting point is 00:28:56 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
Starting point is 00:29:20 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
Starting point is 00:30:16 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,
Starting point is 00:30:50 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
Starting point is 00:31:13 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,
Starting point is 00:31:38 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.
Starting point is 00:32:22 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
Starting point is 00:32:41 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.
Starting point is 00:33:00 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.
Starting point is 00:33:18 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.
Starting point is 00:33:34 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
Starting point is 00:33:59 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
Starting point is 00:34:26 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
Starting point is 00:34:41 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,
Starting point is 00:34:59 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.
Starting point is 00:35:22 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,
Starting point is 00:35:57 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
Starting point is 00:36:12 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
Starting point is 00:36:36 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.
Starting point is 00:37:23 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?
Starting point is 00:37:44 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.
Starting point is 00:38:13 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,
Starting point is 00:38:35 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
Starting point is 00:39:26 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?
Starting point is 00:39:58 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
Starting point is 00:40:28 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.
Starting point is 00:40:47 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.
Starting point is 00:41:17 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.
Starting point is 00:41:49 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
Starting point is 00:42:13 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,
Starting point is 00:42:30 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.
Starting point is 00:42:47 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,
Starting point is 00:43:01 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
Starting point is 00:43:38 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.
Starting point is 00:44:13 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.
Starting point is 00:44:52 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?
Starting point is 00:45:17 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.
Starting point is 00:45:36 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.
Starting point is 00:46:09 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.
Starting point is 00:46:31 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.
Starting point is 00:47:27 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
Starting point is 00:47:43 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.
Starting point is 00:47:58 Except... Please don't. I already have. What? Yeah, you work for me, baby. I do? Oh, yeah. I'm a CFO.
Starting point is 00:48:06 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
Starting point is 00:48:35 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
Starting point is 00:48:57 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.
Starting point is 00:49:16 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
Starting point is 00:49:35 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.
Starting point is 00:49:55 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.
Starting point is 00:50:11 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.
Starting point is 00:50:25 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
Starting point is 00:50:44 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.
Starting point is 00:51:23 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.
Starting point is 00:51:46 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
Starting point is 00:52:26 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.
Starting point is 00:52:42 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.
Starting point is 00:52:54 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?
Starting point is 00:53:03 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.
Starting point is 00:53:26 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.
Starting point is 00:53:43 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.
Starting point is 00:54:08 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
Starting point is 00:54:24 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.
Starting point is 00:54:50 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?
Starting point is 00:55:28 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,
Starting point is 00:56:01 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
Starting point is 00:56:47 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
Starting point is 00:57:04 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
Starting point is 00:57:23 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.
Starting point is 00:57:40 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
Starting point is 00:58:00 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,
Starting point is 00:58:37 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.
Starting point is 00:58:56 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.
Starting point is 00:59:14 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?
Starting point is 00:59:52 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,
Starting point is 01:00:06 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
Starting point is 01:00:51 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.
Starting point is 01:01:17 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,
Starting point is 01:02:01 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
Starting point is 01:02:35 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
Starting point is 01:03:06 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.
Starting point is 01:03:18 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.
Starting point is 01:03:30 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.
Starting point is 01:03:44 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
Starting point is 01:04:40 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
Starting point is 01:05:09 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.
Starting point is 01:05:39 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
Starting point is 01:05:53 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
Starting point is 01:06:31 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.
Starting point is 01:07:08 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
Starting point is 01:07:23 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,
Starting point is 01:07:41 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,
Starting point is 01:07:59 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.
Starting point is 01:08:52 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
Starting point is 01:09:15 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.
Starting point is 01:09:26 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,
Starting point is 01:09:47 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.
Starting point is 01:10:04 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...
Starting point is 01:10:26 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.
Starting point is 01:10:49 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,
Starting point is 01:11:08 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
Starting point is 01:11:34 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.
Starting point is 01:11:53 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
Starting point is 01:12:04 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
Starting point is 01:12:19 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.
Starting point is 01:12:41 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
Starting point is 01:13:21 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.
Starting point is 01:13:38 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.
Starting point is 01:14:00 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.
Starting point is 01:14:22 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.
Starting point is 01:14:40 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.
Starting point is 01:15:20 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.
Starting point is 01:15:35 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.
Starting point is 01:15:56 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.
Starting point is 01:16:34 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.
Starting point is 01:17:00 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.
Starting point is 01:17:18 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.
Starting point is 01:17:40 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.
Starting point is 01:18:12 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.
Starting point is 01:18:28 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
Starting point is 01:18:53 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.
Starting point is 01:19:11 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.
Starting point is 01:19:26 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.
Starting point is 01:19:42 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,
Starting point is 01:20:01 Bother. The social round. Always something going on. And that's, of course, from Milne and Winnie the Pooh.

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