Welcome to Embedded. I am Elisio White, alongside Christopher White. We are happy to welcome back Nathan Jones to talk about writing a book proposal and some end-of-year retrospection. Retrospection? Is that a word? Introspection? Hi, Nathan. Welcome back. How are you two? It's so great to be back. We're doing pretty well.
Could you tell us about yourself as if we met at a table at Supercon? Yeah, I'd say hi, I'm Nathan. I'm here because I love electronics and hopefully I'm presenting something cool. I've been serving in the military for about 14 years now, but I'm excited next summer to transition to civilian life and maybe to get into teach and play with electronics full time. Are you ready for lightning round? Okay. Talking fast, talking fast. Best dorm at Harvey Mudd College.
No, because at least you forgot that I went to Mudd. Oh, okay. My favorite was Atwood. I spent freshman and senior year there. Oh, boy. Boy, that says so much about you. I'm sorry. No, it doesn't. I was there freshman, first semester freshman year and sophomore year. And the freshman was not as much fun, but that was mostly about the people. Next question. Were you before or after Platt was eliminated as a place to eat? After. After I ate all four years at the Hawk, and it was awesome.
All right. Well, then I'm not going to ask you about the worst food at Platt. What was the best food at the new place? Once I got over... the vast array of options i did enjoy me a good salad bar um but there was the freshman 15 well i don't know if i've if i really gained like 15 but like Going to the dining hall and having so much food there was hard to turn down. I developed a bad habit of showing up and then walking through the grill counter and grabbing a slice of pizza to decide.
As I was eating that, what I wanted for lunch. Appetizer pizza. Yeah. And then one day I grabbed it, not realizing that it had just come out of the oven. And it was it was scalding. And instead of like trying to find a place to put it down, I told myself I just needed to ingest this thing as fast as possible. So I'm like standing in the middle of the hawk like.
chewing on these super hot bites of pizzas trying to like blow it through my mouth and like juggle it between my two hands and five minutes later i'm just like covered in pizza sauce i'm like sweating because it was a little bit of an ordeal I guarantee you that kind of thing never happened at Platt because nobody was indecisive about or overwhelmed with options. So the Puddingstone Monster, did you have that?
It's not ringing a bell. Yeah, that's fine. I think that was a us thing. No, no, I had heard. Anyway. Really? Oh, all right. Okay. Do you have any New Year's resolutions? Yeah, I've been thinking about that. And not that I like to call them resolutions, but I do like to take kind of the turning of the year to kind of reevaluate and just make sure that my priorities are in order.
um i think um what were the two um i think i oh i had a kind of a difficult um uh military detail over the summer that threw off my schedule a bit so i'm looking forward to getting back into a more regular um physical fitness kind of schedule um and I am looking forward to doing more fun stuff with my kiddos. My daughter and I are going to be doing a Spartan race in June. So planning that, hopefully planning just a fun little...
Fun little outings to make the most of the end of our time here in New York and a fun kind of start to our time in Tennessee. What about you two? I have not thought about it at all. I did a New Year's resolution one year that was a resolution every month to do something new and different. Was it every month or every week? It was every month? Every month. Okay. And so like one month, no sugar. One month, go out every week after dark. One month, just doing things I don't normally do.
And so I'm thinking about that again. It was kind of chaotic and fun. I used to challenge myself with like 40 days, see if I could go like 40 days, like no hot showers or 40 days. you know, no alcohol or something like that. And it was always a fun challenge because the first, you know, the first 10 or 20 days, it's just like, this is cool. I got this. And then towards the end, you're like, oh man, 40 days is long. I don't know if I could go.
No, no, yeah. You didn't say without a shower. I know, but I mean, I'm just thinking how cold it is right now. Don't do that in December. Yeah, no, I don't really have, I don't do the resolution thing so much, but... If I do have resolutions, they're more like I should try to be nicer to myself or stuff like that. That's a good one. Measurable, actionable. What is that? Oh, measurable, actionable resolutions? Yeah.
Then I'll just be mad at myself for not making the resolutions and fail the first resolution. Okay, so moving on, since we're failing at lightning round. You've got plenty of questions here. Go ahead then. I dare you to ask that next one. You've been working with the VOHA 4. What are the worst ways you've heard that pronounced? Was it that one? Yep, that was the one. Okay. Very briefly, what is it and how do you pronounce it? I would go with Voya since it's named after Voya Antonish.
Yeah, and that's kind of like the unofficial name, actually. It was the conference badge for the 2022 Hackaday Super Conference. So, like, kind of officially it's just the 2022 Supercon badge. But, yeah, folks started calling it the Voya 4 because it emulated a 4-bit computer that Voya kind of created. I did see that. Okay, yeah.
That's very cool. Yeah, it was a lot of fun. And actually, that is a good thing to transition on. Segway. Segway, yes. Because you like it so much, you're thinking about writing a book about it? i am um yeah i feel a little crazy for it but uh at the time it's a normal feeling when thinking of writing any book i think yeah yeah that's fair you have to be a little bit crazy to kind of embark on an adventure like that
I was teaching – I was actually teaching computer architecture at West Point right then, right when I went to the 2022 Supercon. And the – I had – I hugely mistakenly completely overhauled the curriculum and was like totally flying by the seat of my pants and showed up to the conference. And here it is. The badge is a little four-bit computer. I thought this was super cool. And it was neat. It was really neat over the conference to see folks, you know, having a ton of fun with it.
Doing things you never thought you could do with 192 nibbles of RAM, which is what's on the architecture supports. And I thought, man. someone needs to write a book about this. Like there's, this should be the centerpiece of a computer architecture course. Cause it was just, it was so cool to put, kind of put your hands on it and, and, and, and not have to learn about this sort of, you know.
fake computer that you simulate on a computer, maybe a little bit, but to actually have it in your hands was neat. And that idea kind of always stuck with me. And then thinking about the transition next summer, I thought, well... I'm probably the only one in the world that thinks this needs to be a thing, and I'll have some free time next summer, so why not give it a shot? Are they still available such that people could work through the book? Yeah, after the conference at some point.
There were definitely some folks that wished they could have had one, but were unable to attend and couldn't get one or something. And Voya, his design files were freely available. The components are, there's nothing super complicated about it. So I just contacted a PC fabrication company and said, hey, how much would it cost to put this together?
And Voya was super kind in not only sharing those design files, but in helping me as I was working back and forth with the assembler to figure out which parts we were going to use and those sorts of things. And so, um, so I started, I sent out an order and started selling them, um, with this blessing. Okay. So, um, I've got a little Tindy store folks can go to if they want to buy their own little, um, Hackaday Supercon Voya 4 badge. Cool.
That link will be in the show notes. And so you mentioned this to me and I was like, okay, I'm happy to introduce you to the O'Reilly acquisitions editor I worked with. But here's the proposal. Now you have written the very start of the proposal, and your proposed book title is Introduction to Computer Architecture and Assembly Language Programming with the Voya 4, or Hands-On Computer Architecture with the Voya 4.
Okay, so we have the Nanta Tetris book by Shimon Shoken. And I know you're familiar with that, right? Yep. Because you mentioned that yours would be an actual board and not a simulation of a chip. True. How is yours better? In truth, I don't know that it will be. If yours were better, how would it be better? So I'm excited to really explore this with the two of you, number one, because I feel like, especially teaching computer architecture, it's not...
It's not what it used to be even 10, 20 years ago. And I'm curious what your thoughts would be on what would be the objectives of a computer architecture course. What's the important stuff to learn? I think the biggest differentiator for me is that physical device. There's just something so gratifying about holding the badge. Um, it's, it's, it's made to mimic, uh, sort of mimic, uh, the Altair 8800, which was the, one of the first personal computers you could buy. You had like a whole bunch of.
you know, lights on the front indicator panel and switches. that you had to manually toggle to enter instructions into the actual machine. So the badge has a row of 17 buttons at the bottom that you can kind of hit and toggle to enter instructions. It has over 270 LEDs on the front of the badge.
A whole chunk that show you the actual bits that matriculate through the ALU. So you can actually watch, you know, two 4-bit numbers get added or shifted or what have you. There's a whole section in the middle that highlights. for each of the opcodes. You can kind of watch the instructions, which instructions being executed. And then there's like 96 or something on the right hand, kind of third of the badge.
that show you the contents of the memory. And by switching to like a spot in memory, you can make your own graphics pretty much. And I've been thinking about this. I mean, I think folk... really took to it because you could enter all your programs in by hand. You didn't need any actual connection to a computer in order to do it.
When you want to run your program, you could step through a clock cycle at a time. You could actually be the one to toggle the clock button if you wanted to, to watch your program execute one instruction and then jump around and see what effect it had on memory and what happened in the ALU. or change the clock speed faster or slower. So it was, I think it made for a really engaging educational experience.
Like any good author, I've already thought about a second edition, even though the first one hasn't been accepted yet. I've already decided I wasn't going to change anything about the board for the first book. But doing something kind of like this, making a board... for the computer that's in Nanta Tetris, you know, with those same, you know, features that you could actually manipulate the thing by hand and step through it a little bit at a time, I think would be a neat kind of follow-on.
Why wouldn't you do that for the first one? I've spent a lot of my life biting off more than I could chew. And I know enough at this point that, you know, to... To take what I think I can do and cut that down by three quarters, and then what's left with is probably going to be already way more than I'm ready to sign up for. I mean, you've gone through this twice now, right?
I mean, writing the first book and then updating it for the second edition, isn't it always like way longer than you ever thought it would take? I never was going to write a second edition. I was never going to write a book again. It was... After the first one, it was just so hard. So no, I didn't think that way. And I thought that way. Like I said, I completely overhauled the computer architecture course because they were using Patterson and Hennessy.
which I felt like just spent way too much time on pipelining and memory caching. And for at least at West Point, the computer architecture course was the prerequisite for the embedded systems course. So I said, hey, I think we need to get more into... maybe showing a gate level implementation of a computer, but talking a lot more about memory mapped IO and, and the interrupt system. And so I, and I was really excited about modern classrooms at the time. So I completely changed it. And I,
How long did it take before I started regretting it? I think it was, I started, I think I spent all, I spent a spring semester like picking the textbook and kind of proposing it. I spent all summer. rewriting all the lessons and planning out my homeworks and things like that. I think it was probably a month in the class when I, you know, I still had 20% of the course left to write and hadn't made any progress because I was just trying to keep up with the students. I was like, this was a mistake.
When you taught the class, did you provide the boards? Other than having too much work, what did they think of it? How did it go? How did it go compared to past ones? I think overall I got positive comments. There's definitely some folks, a couple of folks that I spoke to. I didn't take any actual data, but anecdotally some folks who, in taking the previous iterations of the course, were...
Didn't quite understand why some of the course material was there. Didn't see necessarily the reason for it. I went with a book called Introduction to Computing Systems by Patton Patel because it was one of the few that I found that actually... had what I felt like was an appropriate discussion of how memory mapped IO works and how an interrupt system works. And I think it was well received. I think they liked it. They put up with me. They were very kind.
What is the goal of teaching computer architecture? What kinds of, beyond just having an understanding of how computers work for developers and people working with electronics, which is a fine goal.
baseline. Is there something else that people should be getting out of it or that certain kinds of people should be looking at? And then that's going to depend on, that's going to make what you write depend on kind of are we targeting people who are going to work on computer architecture are we targeting just giving people a background um not articulating well what i'm saying here but no i think you're right because it's not like
I've ever really done computer architecture other than some chip design, but that was still pulling Lego blocks. I mean, at its most direct, you know, knowing how to debug a program. involves a lot of computer architecture sometimes, right? Especially on a microcontroller. Um, so I guess the question is, who's it all for? And yeah. Yeah. So, um,
So we've identified a couple, right? I mean, clearly, if you intend to actually design chips, right, design a processor or something like that, then knowing intimately how that... happens is very important. You said when you debug a program, sometimes it's important to know the architecture of the computer. Alicia kind of mentioned needing a little bit of that. when when when programming the microcontroller i share these thoughts but i'm curious like if
If I could throw sort of the question back at the two of you, like when has a knowledge of computer architecture helped you in your careers? And what would you say? Like, okay, going back, if I had to take a course on computer architecture, here's what I would want in it. Let me answer that a couple of ways. First off, the analogy I'm thinking of is like physics, right? Because physics keeps growing.
And in order to become a physicist, you have to learn more than you did, say, 20, 30, 40, 50 years ago. But the basics are the same. You've still got to learn Newtonian mechanics. You've still got to learn electrodynamics. You've still got to learn quantum mechanics and all that stuff that was invented in the early 20th century. But then after that, you've got to learn everything else. And I feel like computer architecture is very similar.
You could start with the 70s, which is kind of what your approach is here with the 4-bit computer. But to get to modern... computer there's a bunch of stuff now right yeah that's super complicated and advanced and weird and you know modern physics level of complexity and even involves physics at some level
Um, so I guess that's the hard part is like, what do you, what do you include and what do you take out? And that's why I was asking about the audience because some of that stuff, you don't need to talk about it if it's for basics. So for me, the basics are all I've ever really needed. And I got the basics from computers from the 70s. And yeah, the application of that has almost always been...
Knowledge about how the processor works to a sufficient level that if I had to organize a program to be more optimal, I could take a stab at it. So things like... this processor has a cache and it's this big and this is the working set for this problem and i should try to keep it you know keep the cache full of that as much as possible because that's faster than going to ram or um or like i mentioned with debugging like okay
there are these registers what do the registers mean and and what are the levels of memory and how is the memory on this chip architected and that kind of stuff so yeah beyond that not not a lot because i'm not you know right building my own systems very often and if i'm involved with somebody who's building a system they're more of an expert on computer engineering and architecture than i am and i'm just kind of keeping an eye out for what might be impacting me i guess
Having gone through the Nanta Tetris book I mentioned earlier recently, the thing that really struck me as things I wish... My junior engineers knew were more in the how to put a program together. It was actually less in the processor architecture and more in the... How do you build a compiler? Not because I want them to build compilers, but because I want them to be able to identify where problems happen. Yeah. Yeah. So I don't...
I don't know. I didn't take microprocessors at MUD. So most of my knowledge is from reading user manuals of many, many different processors. And I think the AVR ones, the tiny AVR ones, have manuals that are just basically the course on how to... understand computer architecture, and then you can build upon that. But yeah, I didn't take a class like this. I didn't either. And I wasn't CS at school, so I wasn't forced to.
Yeah. I mean, I don't know if I took a specific computer architecture course. I mean, I did take micro piece at Mudd. That's pretty close, right? Yeah, I think so. You know, it probably could have been, and I was so sleep deprived. I don't know if I could say how much I actually retained from that class. And that one, you actually had to wire things together. Yeah, yeah, yeah.
Yeah, looking back, I wasn't sure that that was the right way to go for that. I didn't think. Oh, for like a micro piece glass? Yeah. Because every week you added like a hundred wires. And at some point, the first wire breaks and you're just hosed. What department was that? That was engineering. Oh, well, you guys. Yeah, the engineering department liked to do things the hard way. Weird way. Oh my goodness.
Yeah. Well, I mean, to me, that's the drug that is embedded systems, right? Like it's so hard to get working that when it is, it's like this enormous dopamine rush. Not anymore. Man, yesterday, let me tell you what I did yesterday. I'm trying to make a GPS data logger, and I'm trying to do it as fast as possible because I don't care. And I have an off-the-shelf GPS that I got from Amazon, some no-name thing. I have a Raspberry Pi 2040.
And I've been fighting with this for a week, and I finally said, because I want, well, long story short, I want really high accuracy and precision timestamps for the data, which you can't get without using the PPS pin on the GPS. Pulse per second pin. Pulse per second pin.
But it's really hard to find anything in the stupid embedded space that does that without you cobbling it together yourself and getting the interrupt and keeping track of things. And I didn't want to do any of that because I'm in a hurry and I don't care. Christopher went on winter holiday early. I looked at CircuitPython, CircuitPython. There's a lot of CircuitPython does GPS. Nothing does PPS.
And there was a conversation on the Slack where somebody said, I've been using MicroPython and it's great. And I was like, I should try to check out MicroPython to make sure. And lo and behold... There's a library that's part of the AsyncIO thing, which is in MicroPython, that does the PPS thing, has a whole time thing where you can grab a timestamp with microsecond accuracy. It's like they thought of this. And from start to finish yesterday...
Nathan, from start to finish, finding this code, finding the parts around my house, putting it together, including the time where I had to figure out how to get MicroPython to work at VS Code, because I didn't know. And the time I had to go solder a wire on the board because the PPS wasn't brought out to the header. Just to an LED. Was one hour, and I had it working. That's modern embedded systems, man.
And, you know, he and I are talking about this, and I'm flashing back to crossbow days where we had inertial measurement systems and integrated them with GPS. And that was... Before GPS was fine-grained, that was when there was a military system and a civilian system. And, of course, we had pulse per second, and we had all this timing, and I'm just like... That's all just really, you know, it's not that hard. Oh, it's not that hard. It would have taken me a couple of days to do it from scratch.
But it took me an hour. I know. And MicroPython is totally the way to go. I mean, CircuitPython is awesome for starting. MicroPython is how you get the thought. I should say this is against my interests because I bill by the hour. Right. So I really should have built it from scratch. That aside. Yeah, no, I mean, things are changing and it's weird. There's a lot of Lego block things. Do you think this book will help people learn?
to work in that world? No. How important is it for us to understand the underpinnings when a lot of what we do is putting things together? I love that question. I think it's... It's definitely kind of at the heart of this. I would say, from what I've read, discipline-wide. Folks that teach computer architecture and that study it have this very same question. And like Chris was saying,
The modern processors are so advanced. You know, at what point do you sort of pick as your entry into that world? Do you start from first principles or do you just assume that? Hey, we're just, you know, we're beyond that. I think, personally, I think knowing that computers are really fast, dumb things is really important.
I like the term I use sometimes with my students is I just call them their automated calculators. If you take like a Mickey Mouse calculator that can do like addition and subtraction and you just, instead of having one spot to store a number, you have 4 billion and you can do. 40 gazillion instructions a second of those little math operations and a couple of those memory locations that you can store to are mapped to like a keyboard and display. That's all a computer is. And I think knowing that.
Knowing that's really valuable and not just like having someone tell it to you, but, you know, knowing a little bit about binary and digital logic signals and then having someone kind of say, check it out. Here's, you know, here's how we can construct. A digital circuit that adds, here's how we can construct a digital circuit that pulls data out of memory and pushes it to memory. And then to say this, this thing is a computer that's, that's valuable.
And then I'm inclined to think, you know, that the next most important part might be just kind of like we've hinted at a couple of times. And knowing just enough below what you're doing that you can understand what's happening. You can debug it if it goes weird. And I feel like with Embedded, you tend to need to know a few more than just a couple layers deep. But the point is that if I'm working at some level of abstraction, I can go a little bit deeper if I need to. Joel Spolsky.
Kind of gave me that idea, this idea that abstractions are useful, but they're often leaky. And so it's important to know a little bit lower than what you're actually working in, in order to... um to do that effectively you not get stuck when when something doesn't work and so i think like for for a real general computer science audience um you know especially folks that are are going on to to write
maybe just web applications or, or, or enormous server programs or things like that. You, you don't necessarily need to know like what the move instruction does or what all of the like different operands are in, in x86. Um, but. But I think definitely for embedded, it's important to know, like you said, Alicia, and Chris mentioned it too, when I'm writing my C code, what...
Why, why am I, you know, how does that, how does my C code map to the assembly that's being spit out? And, and, and not just instructions to registers, but also knowing how. the application binary interface works and, you know, knowing that certain assembly instructions are part of the function preamble or the postamble or, you know, knowing why.
My processor has an eight clock cycle interrupt latency and that sorts of stuff. Those start to get a lot more important. Yeah, yeah, yeah, definitely agree with that. And, you know, MicroPython aside, most development is still not, it's still done.
the old-fashioned way you know with just better tools so no knowledge of that stuff is important i think it's also important you kind of touched on it for people working in technology to have computers be demystified a little bit because you did say they're fast dumb
And they are fast and dumb. We're getting faster all the time, but no smarter. And people are talking about AI and all that stuff. And I think there's a lot of mysticism around that. Like, wow, look at what computers can do now. And it's like, no, they're still just adding. That's it.
they're still just adding that's all they do for the most part add things and move things right and just because we can do complicated things with that by doing those a billion times a second doesn't make computers any smarter a priori or more powerful, you know, as entities on the world. So, um, and I think, I think that's important to just for people to not think of them as magic, both to not be afraid of them.
but also not to be afraid of breaking things and that kind of stuff. If you understand something at a deeper level, you're less afraid of it, I think. Yeah, yeah. And I would say that's definitely like the transition. When you start to transition out of kind of a beginner hobbyist. setting, like I'm thinking of the Arduino, you start to advance when, or I think that the biggest reason to learn more is because if I'm following a tutorial, but I don't know what's going on.
The first time something doesn't work out, I'm hosed. I'm stuck. And so, you know, learning how to start to do some of those things yourself, right, helps me understand. why I'm looking at step number four in my tutorial. And if it doesn't exactly match the picture, then how do I, you know, do I need to be concerned about that or how do I work around it? Yeah. In the O'Reilly book proposal.
It asks you to talk about your audience, as we've been doing. Some of the questions they ask is for you to note the roles of your audience. You've been teaching college, but O'Reilly is trying more to sell to industry. Although I love that my book is used as a textbook. It's just so awesome. So what provision... What professional positions does your audience hold? What positions are they considering next in their career? And what knowledge do you assume they already have? I think...
I think I was coming from my perspective primarily. So my first thought was this being the book that someone who was teaching an introductory computer architecture course might pick. Because they like the idea of teaching to something to be able to give the students a physical object to interact with. I think, I mean, at least you kind of led the conversation off with...
talking about an anti-Tetris enemy. And honestly, I like where that's kind of built in terms of, I would say that's like the kind of the minimum set of knowledge that a general computer science, computer programming population should know about computers. So I think...
You know, that's kind of the... Is that a prerequisite to you? Or is that in parallel with you? Nah, I mean, I... The... I love Nantichetris, and the biggest things that I feel like I would still kind of want to fix about it are... The computer that they sort of build up, it has very kind of a limited I.O. and they don't talk at all about interrupts. Very much. So I love the fact that...
After you built the processor, in the second half of the book, you're writing the assembler, you're writing the little virtual machine that your compiler targets. Seeing that built... you know, all the way up is, is, is really, really cool. And I, and I think an important, uh, important, um, picture to get that I would love, you know, students to have if they were to graduate college, right, as a computer scientist or something like that.
to know how the software I'm writing, at least conceptually, how it all gets translated down into the instructions get executed by the computer. So you brought this up. uh at some point at least here in terms of like how much assembly to to discuss and it definitely sounds like you're on the on the fence of like man i'm going to talk about assembly as little as i can and then we're going to get to we're going to talk more about how a language like c is
is converted into assembly. Maybe we'll talk about reading assembly. What would be that piece for you that, you know, whatever computer architecture course you'd want to take? I mean, the important part about assembly is that... It does make sense if you learn it. I mean, if you compile your code into a list file and then you try to read the list file without having the C lines next to it.
And you don't know the assembly language. It's not going to make any sense. It's like compiling into German. Why? You have to learn German first. So building up the. assembly language from the machine code, from the byte and byte codes and all of that, that... is good for people to understand that there is a process to this. It isn't random. There are choices people made and the choices are explainable.
When you go out to a processor that isn't 4-bits, they're going to be different, but all the same things are going to be there. So, I don't know. When I started, I had you... There were... times when I programmed entirely an assembly pick. But for a long time, the only time I really...
had to deal with assembly was if I had to do fine-tune optimizing in a loop. And even that was a matter of reading the assembly and modifying the C code until I got the assembly to be what I wanted. Now, I mean... I guess my talk last summer at EOC did have some assembly in it because... It had to do with hard faults and looking at the stack and understanding how to put all that together. And I guess that's what I would like from a computer architecture course. People don't always understand.
what happens when things go wrong such that they can look at the stack. So, you know, R1 is usually this and there's a return register and... And you can build up the stack frame and how you build that up depends on your compiler and your processor. And all of that, I guess I want to be in the computer architecture course. And you need everything in a computer architecture course before you can understand that. It is very, yes, it's very, like, do you start at the gate level?
Well, okay. I mean, Nan to Tetris did, and I appreciate it, and yet I would not have learned Boolean logic from that. Yeah, I mean, the book is awesome, and they do a great job.
tackling what, what otherwise, like if someone had pitched this book to me, like, Hey, we're going to, we're going to start within the end gate and we're going to finish like writing base, like essentially operating system routines. And we're going to show everything in between. I'd be like, you're crazy. That's going to be how many books.
Yeah. So like they, they managed to eke out this incredibly optimistic and ambitious objective, but yeah, it's very like they, I mean, I think they covered digital logic in like one or two chapters. I mean, and that's, that's a full. you know, three credit hour, four credit hour in many institutions, semester long course. There was a lot of, and then draw the rest of the owl in the book. Yeah. Which as a, as a course.
that is at the end of a curriculum, that builds in, that puts things together, that would be great. If this was your first introduction to compilers, at some point you're going to want to just, I don't know. spend all night in the CS lab. And then that's a mistake. Yeah. No, that you can't teach people that way. But that's like having a synthesis course at the beginning. I can see it as like, you know, kind of the book.
In my head, you're using... it you're chunking it up into like probably three different three or four different courses and we're saying hey we're going to work through the first two chapters on this is our in our for our digital logic course but we're gonna we're gonna you know we're gonna build up these components so that there's a common theme
And so at the end, if you get to your operating systems course, you're actually writing operating system routines for a processor that you built, basically. And they mentioned that it was better as a year-long course. Okay, let me go back to this book proposal. A marketing description.
One to two paragraphs. Summarize what the book is about like you would pitch it to a potential reader on the back cover. I have to warn you, this actually is what ended up on my back cover because they never came back to me and said... No way. Do you want to update this? So be careful with this one. So, yeah, how are you going to pitch this book to potential readers who don't know what the VOJA4 is?
Real quick, I had a similar experience. Actually, so I gave a talk at... the 2023 hackaday supercon about this badge i thought it was cool and you know i wanted folks who had never had never had a computer architecture course and didn't maybe know what they were doing when they were punching buttons to know yeah this is what goes into it and here's how it all works
Um, the proposal, the deadline was almost due and I was like, oh shoot, I think I was on vacation at the time. And, uh, so I submitted it on my phone and they needed a speaker picture. And the most recent picture that I'd taken was a super goofy one of me, like. like screaming with my kids, like pretending we were, I don't know, warriors or something like that. And I was like, I'll fix this later. And, uh, I, I completely forgot to. And so
There's a YouTube video of that conference talk, and the little splash screen on the slide is me, the most ridiculous face. I'm screaming at your toolbar, basically. Did you write your own marketing description, Alicia? Because I feel like that would be a real challenge to have to... Physically remove yourself from your own perspective and put yourself in the perspective of someone who's going to make it sound like just the greatest book ever. I mean, the whole book proposal is kind of a test.
Like if you can't fill in all the boxes, you probably can't write a book. So it doesn't have to be great. It isn't the end. But they do need to know. that you can pitch it in a way that is approachable. I think I would really, I would, I would highlight what we kind of talked about so far. I mean, the fact that the book is pitched to be an introductory. piece on computer architecture and really emphasize the ability to interact with the computer as you're holding it in your hands.
The other thing I thought about putting in there just kind of for my own personal interest, because I thought it was really cool when I was reading a lot about computer architecture, is showing all the different kind of design trade-offs in terms of... You know, the instruction set architecture, you know, what instructions do we include? Do we exclude? What are the consequences of that? How do we encode all of these into our, you know, the actual ones and zeros of our instruction?
uh to you know do do we do our our instructions that they operate on values in memory? Are they restricted to just what's in a register? Or is it even a register machine? Is it just operating on a stack? I think some of that stuff was, I don't know, the utility. Well, the utility might be just the fact that...
With advances in computing technology, we might find ourselves circling back around to first principles and asking ourselves, is this the most effective means of constructing a computing device, especially with... quantum computing and photonic circuits and things like that. I think there's potentially a need to, you might find that computers are...
constructed completely differently to take advantage of those technologies. So that's the other thing I was thinking about putting in the book. One of the things that I wanted for my book, because it was how I read. nonfiction was that I wanted it to be something you could take to the beach. It was an enjoyable read. That was a big thing for me. It sounds like the...
physicality of the board is a big thing for you. Yeah. Is there anything else? No, I mean, I think that is the big one. That's kind of the central selling point. We'll see if anyone else likes it. What if somebody doesn't... Get the board. Is the book not useful? That is an excellent question that I'm currently kind of thinking options through on. And I think the best answer is going to be that they're... uh if they'll interact in that case through a simulator um i i believe uh someone
who attended the conference did, did write a full simulator for it. And I think that would probably just be something that I would make sure I sort of take, you know, I suck up and becomes part of the book materials is, Hey, if you don't want to, you know, don't have the funds to spend on the board or something like that, then you can still interact with this little piece of software. You need to get one of those little envelopes in the book where it comes with the board.
Like the CDs used to come with the boards? When was the last time they did that? It's been a while. One of the things that O'Reilly told me that I found very useful was that... Dumb people don't read books. And so you never really, while you need to explain it to someone, you have to be really careful not to make them feel dumb.
And you have to be aware that they may be reading this for their own personal enrichment. It may not be in a signed college textbook. So how are you going to keep them engaged without... baby talking you know and I think you it's it's neat that they that you brought that up because it is hard I feel like with a static medium like like the book you it's it's hard to
to find, find where to start. Cause you, you, and I think some folks find themselves in positions where they're, they're kind of moving that first goalpost further and further. towards fundamental concepts because there's just this concern that wherever spot I'm going to pick, someone's going to jump in and be feel like they're over their heads. Um, I think, uh, I think.
Building off of what we discussed, I'm going to assume that the reader, if not having taken a digital logic course, is aware of some basic digital logic. A lot of computer architecture books will, if they're worried about that, will put an appendix in the back where it's sort of like, hey, here's a review of Boolean logic and binary numbers. I like to think my conversation... or my writing style is pretty conversational anyways. So I think that's a gift that I got from...
My parents, my dad is a psychologist and my mom's taught middle school, or she taught middle school English her whole career. And I used to gripe and moan because I would score higher on the verbal portions of my... SATs and GRE than I would on the math stuff. And I was like, I'm an engineer. This is, what's going on here? And she actually, a couple of weeks ago, she was like, hey, you're pretty happy about that now, aren't you? And I was like, yeah.
I think one of my strengths at this one is that I can communicate the difficult concepts more effectively than others. It is a skill, yes. And it's one that... Harvey Mudd College does try to encourage. Yeah. What did you concentrate in? I mean, I got my degree in engineering. No, no, no. What was your humanities concentration? Oh, God. Other colleges call them minors, but... It was probably something music-related. Cool. I played the drums going through...
High school and college. I still have a little electronic kit in the back that I haven't pulled out in years. Okay, last question I've got for you, Alicia. In terms of timeline, how long did you need to budget for the first book? A year. Okay. I mean, it was a strange year. And I worked about half time, maybe a little more. And I worked on the book a lot because...
personal life meant I didn't really want to leave the house. Yeah. I take as much, take, you know, consider how much work you think it will be after you do the outline and then like, multiply it by three. And then when that seems like an absurdly long time, know that you are still underestimating. It's like how I order food for a party. I just, like, I figure, like, I plan a number of amount of food and then I...
I figure I need to go 20% over. And then I forget that I did the 20% over. So I do 20% over that. And I do that a couple more times. And then there's way too much food for the party. Yeah, it's, I mean, it's, it's tough. You have to stay motivated, but I think you're already really good at that. You'll have to figure out how to balance that. At the time, I was doing engineering work as well.
If you're also doing writing work or teaching work, well, teaching work actually would help because it, for my second edition, having taught making embedded systems a few times, I got a lot more material and I knew what the questions were. I think overall the weakest part of your book is the name of the board. What would you call it? I mean... Well, it's a very specific thing. I would call it with a 4-bit processor.
Or with hardware or something that didn't look like, I mean, you know, a lot of the O'Reilly books are like, react with sparkle fun unicorn poop. And if I don't know what unicorn poop is, I just don't look. Yeah, but those are all real things that people will recognize. Yeah, but definitely in this case, though, right? No offense. No offense to the VOIA 4, but...
People are going to see that and they mean nothing to most people. Right, right. Specificity helps if the specificity causes recognition. And if it doesn't, then it alienates. And I think that, yes, that is alienating. It was alienating to me, and I didn't want to tell you that before the show because I wanted to understand more what you were coming from. You wanted to surprise me with it in the middle of the show. Hands-on computer architecture.
Computer architecture from... With blinking lights. From... With... From... Something. From scratch. I mean, from scratch. Except scratch is a thing. We can't say that. Computer architecture, we win. Computer architecture for fun and profit. Okay, I have edited your book proposal with notes I took during the show. Good luck with that. Thanks. She means with her notes. With my notes. No, I think the book proposal is good.
And I think you have a lot of really good points to make. And while I like the Nanda Tetris curriculum, the book... was repetitive and yet didn't have the information I wanted. So there was some difficulty there and I would absolutely look forward to reading your book. I did put my name down as a potential reviewer. Oh, thanks for that. But I hear that you took a survey of our Patreon supporters regarding this very show. Well, not this show. Yeah. But embedded as a whole.
What did you ask and what did you find out? You had to have looked at it. No? No, I didn't look at it. I did open the link, but I didn't read it other than to make sure that it was legit. I mean, not that I didn't. I wasn't like rickrolling people. Just, yeah, basically. I mean, I'm fine if you rickroll people. I just want to know so I can watch. Yeah, I don't know. I just thought it'd be a fun thing to do kind of here at the end of the year.
to just do a fun little survey. It was, every question was very serious though. So, I mean, this might be a kind of a warning segment for, there's lots of data, lots of data. The first thing I wanted to know. I wanted to know what people's favorite episode title was because that's, that's an important kind of grabber to get them into the episode. What did, did you, did the two of you have a favorite from the last year?
See, the problem with things like this is that people assume that we have any memory of anything that's happened on this show beyond the show we're currently recording. I could not tell you a single title offhand. Nope, I can't even tell you last week's. Yep, no, I got nothing. Sidetracked by Mining the Moon. Oh no, it's all chaos and horror. That one was...
That was one of my favorites. We do have an Excel sheet that lists all of the episodes, which is really helpful for questions like these. What did you have on your list? I put them all from 2024. And the crowd favorite was Wait Until Physics Has Happened. Yeah. Okay. That was really recent, too. Yeah, yeah. About the robot course, right? Yeah. Yeah. Yeah, I think a close second was math is not the answer. So seldom is. Yes.
That is always the answer. Right. Sometimes the question too. That was, uh, Philip Copeman. My personal favorite was collecting my unhelpful badge. I just loved the visual. All right. Next, I was, again, very serious, was curious if in the future, Alicia, you were arrested for raising an army of ferocious animals on your house. What animal do people think you would be raising? And the options were octopi, snails, squirrels, or cats. And overwhelmingly...
If people were going to dine you out for raising your own army, it would be an army of octopi. Well, that's good. Yeah, that would be. That's a good, we're going to add that to the lightning rotation. I may be influenced by your recent art installation, right? That was very octopi influenced. Yeah. It's a great, I mean, honestly, it's a great choice. They're highly intelligent animals.
They, with the suctions and the camouflage, I think you had a very terrifying arm. Oh, yeah. Yeah. And they have some, yeah, they're cool. Octopus. Yes. Okay. Octopus Army. Next, I asked if folks had a favorite quote or moment or guest from 2024. And there was lots of great feedback from folks just seeing that it was hard to pick. They liked it all. A couple of folks singled out. Philip Coopman and Helen Lay and Dr. Colleen Lewis, who was on reference the same dog objects. And Kirk.
just a week ago or two weeks ago on electronic music. And there's a great reference that someone put here from... from uh colleen lewis's episode where they just they just typed out the transcript where they said uh elicia You talk about a dog hardware running cat software. Chris, I think that's not going to help. Alicia, no, it's definitely not. Foxes are cool. Okay, changing subjects. I wonder if we should have named that show Foxes are Cool.
Just a stupendous moment. Wonderful. Next, I wanted to ask which quote best describes Chris. Oh, no. I'm going to take my headphones off. No, stick with me. The options were, those people who think they know everything are a great annoyance to those of us who don't.
Wait, am I supposed to be somebody who thinks they know everything? Because I do not. I think the ambiguity is fun. Like, we don't know at this point if you're the one speaking. Well, either way, I mean, I'm not super happy with the implication there, but okay. All right. Number two, don't anthropomorphize computers. They hate that. Number three, I was taught that the way of progress was neither swift nor easy.
Or four, beware of bugs in the above code. I have only proved it correct, not tried it. Okay, which one of those did folks think best represented Christopher? I think I'm going to be unhappy no matter what. All good things, Chris. All good things. With 50% of the answers, it was don't anthropomorphize computers. They hate them. Okay, good. Which I think I get that from Andre.
from the Great White North on the Slack channel. There was also a write-in response, because folks could do that. One person decided to attribute the quote to you, I hate computers. I do say that frequently. More frequently than people realize, because Alicia has to hear it verbally quite often. I mean, we spent five minutes in the middle of this episode talking about that.
It's an endearing quality, Chris. Yeah, you can't anthropomorphize them, but you shouldn't like them either. That's right. Keep a healthy distance. Next was, what was something you learned from the podcast this year, or how did it benefit you? There's some great answers here. Someone said there's more to checksums than I knew. Yes, well, that was true for all of us. No idea on that one. Yeah, right.
I think you actually said at the start of that, you're like, I don't know exactly how we're going to fill an hour on checksums and hashes, but here we go. Someone said they love seeing just the... The real stories of professional engineers, engineers that struggle in their work, they feel like they were pretty new to embedded software. So they say it really helps them with imposter syndrome. Someone said it makes their time doing dishes fun.
let's see what's a good one someone said the Slack community is great they learn as much from the podcast as from the Slack someone said they liked learning just the importance of taking care of themselves So that was cool. And I'll send you this whole thing, of course, so you can kind of read through them all if you want. Next, I said, in 2025, Embedded.fm podcast listeners and Alicia are shocked to hear Chris admit on air.
that he actually likes... God, no. Let's see. AI, computers, rust. This is too easy. Oh, I didn't think of Rust. I had Tabasco, Chet, GPT, computers, or Bob Ross. Bob Ross is easy. Two of those are easy. The other two are not likely. like tabasco it's fine i mean it's fine but i don't reach i don't like it reach for it but i'm not you know there are far better hot sauces yeah it's the only thing available and i you know need a hot sauce i guess bob ross yeah we watch a ton of bob ross when we
When the pandemic started, it was on YouTube, you know, it was like eight o'clock at night and we were all stressed out. It was like, there's a marathon at Bob Ross. Let's watch an hour at Bob Ross. That feels like it would be very relaxing. It was. It was very weird. Yes, it was weird, but relaxing. Happy little trees. Nice. What's this? The other one is...
Like a wonderful accident or something like that? Happy accidents. Happy accident. There you go. Okay, so what did people choose? Overwhelmingly, Chris, folks would have been floored. Nearly 60% said they would be floored next year if you admitted to actually liking computers. Well, it's complicated. Relationship status, it's complicated. Yeah.
This one also had some really good write-in answers too, by the way. Oh, okay. Someone said they'd be really surprised if you admitted to liking writing drivers. Someone was surprised if you'd admit to liking Swift. Oh, I do like Swift. Yeah, I know. I like Swift a lot. All right. So the last person was really surprised or would be surprised if you admitted to liking pick 16s. Never used one in my life.
So I don't know. But yeah, no, Swift. Swift I really like, so you can be surprised. No, I did a lot of Swift development a couple, three years ago. I haven't done any since, but it was cool. Is it when... Do they consider that one one of the memory-safe languages, or is that not? Yeah. Okay. Yeah, and they have a very clever, well, not clever, but a very interesting way of solving that problem that is cleaner than other things, but it requires it to be object-oriented.
pretty much top to bottom so that it can keep track of stuff. But anyway, yes. Right. Pretty funny. Yeah, no. And chat GPT, that's not happening. I think there's a lot of neat uses in education. I was talking to one of my students the other day about them using ChatGPT to summarize long readings that they didn't have the time for to help them kind of like...
come to class somewhat prepared. I've had students say that they use that to, they ask ChatGPT to generate practice problems for them and then to kind of help check their work or walk them through the solutions. I'm sure that's all useful. I can actually hear you biting your tongue. All right. Next, I asked, what topics do you think Alicia and Chris should explore next year? And is there anyone that would be cool for them to have on the podcast? Oh, cool.
Yeah. Someone said it'd be really interesting to explore higher level languages on embedded devices, which is also something that came up a little bit ago in this episode. This is somebody who wanted to trust, wasn't it? Swift is coming. Swift is coming. There's an embedded Swift. They've got a pilot project for a few processors. I think it's a great question, right? As things get faster and... Yeah. Oh, and I really enjoyed working with MicroPython and I recompiled it and added drivers to...
to some of my hardware. So I got pretty deep into MicroPython and I really enjoyed supporting the scientists who were using the Python aspect of it. Yeah. Yeah. And I feel like, I mean, even it's getting to the point where, I mean, even if you are, you know, making a big you know a large product and you're you're going for one of the cheaper processors it's still going to be capable of running you know something like this so um
Someone wanted to know if Pooh will ever find the North Pole. I think that's an important question that should get answered. I don't think so. They find a pole. Oh, yeah, yeah, yeah. I remember that. It's definitely not the North Pole. I don't know. It's a slow going, you know, two pages, five pages a year is a pretty slow pace. I have both books sitting there. I have two books, two books sitting there.
Because I wanted to make sure I'd have the second one when I finished the first. We're only like halfway through the first. It's like 500 episodes. We're still not really that far. It's like the flip book. Yeah, it's the flip book. Chris, it's like you got to start on page one, and then we'll just finish at some point in the future. Next, I wanted to know how folks...
I think Alicia would answer this question. And so I'll pose this to you, Alicia. Would you rather have to speak in rhyme for the rest of your life or have to speak in riddles for the rest of your life? I think... It's time to admit to rhyme. For riddles are fun less than punts. Oh, that didn't work. Sorry. Admirable. That was phenomenal. It's like you were a crime in there somewhere. Oh, I shouldn't think.
Yeah, 55%. So just over half thought you'd prefer to speak your mind. Riddles are hard because you've got to come up with a lot of stuff. I mean, if you'd had puns in there, if you'd had like every sentence has to have at least one pun. I could have done that over rhyme. Okay. Yeah. Which you should know since you got some puns in some of your emails, which you started. Yeah. Well, I've got.
I'm a dad now. I've got to have my arsenal of dad jokes. All right. And the last I asked if there was anything else that they'd like to share with the two of you. And overwhelmingly, folks just wanted to share. One person said a beer and another one said a cab ride. Cab ride. I don't know exactly why.
Overwhelmingly, folks wanted to share with you that they just really appreciate the work that the two of you do to bring this podcast to air and keeping the Slack community going. And I'm sure that you would say, well, I don't know. I don't know. It just kind of has its own momentum. But like you've heard from several people.
And speaking for myself, too, we learn a lot from the community that you've created. And I'm sure there are weeks when it's more work than it's worth. But we all appreciate. you to making great experiences for us listeners and being honest with what you're learning and what you're struggling with. And we just, we love that we get to be part of this learning journey with you. I'm sorry, Nathan. Skype cut out there. Thank you. Thank you. That is really very nice. Yes.
Yes. Very, very nice. Thank you. It's very weird to have this community out there that we don't actually see. It's just sort of there. I mean, we do talk to folks sometimes. But it's all, you know, out of remove from a computer. Which, as we know, I do not like. And I do like the Slack community because...
while I can jump in there when I want to. Oh, yeah, the Slack community is great. I've learned a ton from the Slack community. I've gotten a lot of help just watching people solve their own problems on there. It's been great. That's been the single best professional decision I've ever made was to join and be active in the Slack community.
Yeah, no, I mean, selfishly, the podcast has been a pretty big help to our careers. I don't know how well we would have pulled off being consultants without having... I don't know. The guy I've been working with for... Six years. Consistently. Noticed in my origami postcard that I have a podcast. Yeah, yeah, but we've gotten several good clients.
Through your podcast or through your book or things that are all kind of tied together. I just couldn't believe he didn't know I had a podcast. It's better that way. I guess so. It's very awkward when you start a contract and then a couple months later, oh yeah, I was listening to your latest episode. I was like, oh no. What did we say? How much did I complain about picks? I didn't expect you to be listening to me.
Yeah, this is just a professional thing. You're not supposed to listen to me speak in my other capacity. I'm sure it's weird for those two worlds to cross because in your head, they're like very distinct. Yeah.
And occasionally, like at Fitbit, somebody would say, are you the Chris White on the embedded show? I'm like, no. Occasionally, for me, I will start talking to someone, and they'll recognize my voice, and then they'll like... not be able to talk for a second because they can't get over the mental disconnect between I mean, you can't really talk back to the podcast and expect me to answer, but now I'm on the phone, so I do answer and it's really weird. Yeah, don't know. Kind of weird.
Well, thank you for doing that. That was very amusing. That was very nice, Nathan. Thank you. My pleasure. It was a ton of fun. Do you have any thoughts you'd like to leave us with? The one I'm going to go with is... Something I've shared with a few folks recently, which is there, I believe there are vanishingly few circumstances in life that aren't made better with a little bit more compassion.
And, and, and especially when that's hard. Uh, so, uh, I, I would just, I would say to your, especially as we get into, you know, what's for a lot of folks is can be a rough, stressful season. Uh, have some compassion for yourself. And if you're getting frustrated, remember that, or a parenting phrase my wife and I like to say is, they're not giving you a hard time, they're having a hard time. And so just, yeah.
I would encourage everyone to have a little more compassion. Our guest has been Nathan Jones, an active duty Army officer and instructor at West Point. Look for his articles coming on DigiKey soon. Thanks, Nathan. Thank you so much. Thank you to Christopher for producing and co-hosting. Thank you to our Patreon listener Slack group for their questions and answers.
And thank you for listening. You can always contact us at showatembedded.fm or at the contact link on Embedded FM. And now a quote to leave you with. This one's attributed to Albert Einstein. It may actually be by him. Computers are incredibly fast, accurate, and stupid. Human beings are incredibly slow, inaccurate, and brilliant. Together they are powerful beyond imagination.